diff --git a/src/primitives/transaction.cpp b/src/primitives/transaction.cpp index 59865a5eab89..937112e06a79 100644 --- a/src/primitives/transaction.cpp +++ b/src/primitives/transaction.cpp @@ -43,6 +43,40 @@ std::string CTxIn::ToString() const return str; } + +bool CTxIn::SpendsNestedPayToWitnessPubKeyHashOutput(CScript spentScriptPubKey) const { + if ((!spentScriptPubKey.IsPayToScriptHash()) || scriptWitness.IsNull()) { + return false; + } + + return scriptSig.IsNestedPayToWitnessPubKeyHashScriptSig(); +} + +bool CTxIn::SpendsNestedPayToWitnessScriptHashOutput(CScript spentScriptPubKey) const { + if (!(spentScriptPubKey.IsPayToScriptHash()) || scriptWitness.IsNull()) { + return false; + } + + return scriptSig.IsNestedPayToWitnessScriptHashScriptSig(); +} + +bool CTxIn::SpendsNativePayToWitnessPubKeyHashOutput(CScript spentScriptPubKey) const { + if (scriptWitness.IsNull()) { + return false; + } + + return spentScriptPubKey.IsNativePayToWitnessPubKeyHash(); +} + +bool CTxIn::SpendsNativePayToWitnessScriptHashOutput(CScript spentScriptPubKey) const { + if (scriptWitness.IsNull()) { + return false; + } + + return spentScriptPubKey.IsPayToWitnessScriptHash(); +} + + CTxOut::CTxOut(const CAmount& nValueIn, CScript scriptPubKeyIn) { nValue = nValueIn; diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index fb9db508d25e..688f3d6bf4f4 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -123,6 +123,11 @@ class CTxIn } std::string ToString() const; + + bool SpendsNestedPayToWitnessPubKeyHashOutput(CScript spentScriptPubKey) const; + bool SpendsNestedPayToWitnessScriptHashOutput(CScript spentScriptPubKey) const; + bool SpendsNativePayToWitnessPubKeyHashOutput(CScript spentScriptPubKey) const; + bool SpendsNativePayToWitnessScriptHashOutput(CScript spentScriptPubKey) const; }; /** An output of a transaction. It contains the public key that the next input diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index 51bc218d390c..3f8f35f6dccb 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -1679,6 +1679,8 @@ static inline bool SetHasKeys(const std::set& set, const Tk& key, const Args& // outpoint (needed for the utxo index) + nHeight + fCoinBase static constexpr size_t PER_UTXO_OVERHEAD = sizeof(COutPoint) + sizeof(uint32_t) + sizeof(bool); +static constexpr int CONSOLIDATION_THRESHOLD = 3; +static constexpr int BATCHING_THRESHOLD = 3; // If the transaction has at least 3 outputs, it's considered batching. static UniValue getblockstats(const JSONRPCRequest& request) { @@ -1733,6 +1735,33 @@ static UniValue getblockstats(const JSONRPCRequest& request) " \"txs\": xxxxx, (numeric) The number of transactions (excluding coinbase)\n" " \"utxo_increase\": xxxxx, (numeric) The increase/decrease in the number of unspent outputs\n" " \"utxo_size_inc\": xxxxx, (numeric) The increase/decrease in size for the utxo index (not discounting op_return and similar)\n" + " \"nested_p2wpkh_outputs_spent\": xxxxx, (numeric) The total number of nested P2WPKH outputs spent\n" + " \"nested_p2wsh_outputs_spent\": xxxxx, (numeric) The total number of nested P2WSH outputs spent\n" + " \"native_p2wpkh_outputs_spent\": xxxxx, (numeric) The total number of native P2WPKH outputs spent\n" + " \"native_p2wsh_outputs_spent\": xxxxx, (numeric) The total number of native P2WSH outputs spent\n" + " \"txs_spending_nested_p2wpkh_outputs\": xxxxx, (numeric) The total number of transactions spending nested P2WPKH outputs\n" + " \"txs_spending_nested_p2wsh_outputs\": xxxxx, (numeric) The total number of transactions spending nested P2WSH outputs\n" + " \"txs_spending_native_p2wpkh_outputs\": xxxxx, (numeric) The total number of transactions spending native P2WPKH outputs\n" + " \"txs_spending_native_p2wsh_outputs\": xxxxx, (numeric) The total number of transactions spending native P2WSH outputs\n" + " \"new_p2wpkh_outputs\": xxxxx, (numeric) The total number of new native P2WPKH outputs\n" + " \"new_p2wsh_outputs\": xxxxx, (numeric) The total number of new native P2WSH outputs\n" + " \"txs_creating_p2wpkh_outputs\": xxxxx, (numeric) The total number of transactions creating new P2WPKH outputs\n" + " \"txs_creating_p2wsh_outputs\": xxxxx, (numeric) The total number of transactions new P2WSH outputs\n" + " \"txs_signalling_opt_in_rbf\": xxxxx, (numeric) The total number of transactions that signal RBF\n" + " \"txs_consolidating\": xxxxx, (numeric) The total number of consolidating transactions (defined as at least 3 inputs and 1 output)\n" + " \"outputs_consolidated\": xxxxx, (numeric) The total number of outputs created by a consolidating transaction\n" + " \"txs_batching\": xxxxx, (numeric) The total number batching transactions (defined as at least 3 outputs)\n" + " \"outcount_bins\": xxxxx, (numeric_array) The numbers of transactions that have certain numbers of outputs\n" + " \"dust_bins\": xxxxx, (numeric_array) The total number of outputs that are dust at several fee-rates\n" + " \"mto_consolidations\": xxxxx, (numeric) The total number of transactions with at least 3 inputs and exactly 1 output\n" + " \"mto_output_count\": xxxxx, (numeric) The total number of outputs spent in all mto_consolidation transactions\n" + " \"mto_total_value\": xxxxx, (numeric) The sum of values of all outputs from mto_consolidation transactions\n" + " \"value_of_nested_p2wpkh_outputs_spent\": xxxxx, (numeric) The total value of spent nested P2WPKH outputs\n" + " \"value_of_nested_p2wsh_outputs_spent\": xxxxx, (numeric) The total value of spent nested P2WSH outputs\n" + " \"value_of_native_p2wpkh_outputs_spent\": xxxxx, (numeric) The total value of spent native P2WPKH outputs\n" + " \"value_of_native_p2wsh_outputs_spent\": xxxxx, (numeric) The total value of spent native P2WSH outputs\n" + " \"value_of_native_p2wpkh_outputs_created\": xxxxx, (numeric) The total value of new native P2WPKH outputs\n" + " \"value_of_native_p2wsh_outputs_created\": xxxxx, (numeric) The total value of new native P2WSH outputs\n" "}\n" "\nExamples:\n" + HelpExampleCli("getblockstats", "1000 '[\"minfeerate\",\"avgfeerate\"]'") @@ -1778,14 +1807,15 @@ static UniValue getblockstats(const JSONRPCRequest& request) } const CBlock block = GetBlockChecked(pindex); - const bool do_all = stats.size() == 0; // Calculate everything if nothing selected (default) const bool do_mediantxsize = do_all || stats.count("mediantxsize") != 0; const bool do_medianfee = do_all || stats.count("medianfee") != 0; const bool do_feerate_percentiles = do_all || stats.count("feerate_percentiles") != 0; const bool loop_inputs = do_all || do_medianfee || do_feerate_percentiles || - SetHasKeys(stats, "utxo_size_inc", "totalfee", "avgfee", "avgfeerate", "minfee", "maxfee", "minfeerate", "maxfeerate"); - const bool loop_outputs = do_all || loop_inputs || stats.count("total_out"); + + SetHasKeys(stats, "utxo_size_inc", "totalfee", "avgfee", "avgfeerate", "minfee", "maxfee", "minfeerate", "maxfeerate", "nested_p2wpkh_outputs_spent", "nested_p2wsh_outputs_spent", "native_p2wpkh_outputs_spent", "native_p2wsh_outputs_spent", "txs_spending_nested_p2wpkh_outputs", "txs_spending_nested_p2wsh_outputs", "txs_spending_native_p2wpkh_outputs", "txs_spending_native_p2wsh_outputs", "dust_bins", "txs_signalling_opt_in_rbf", "mto_total_value", "value_of_nested_p2wpkh_outputs_spent", "value_of_nested_p2wsh_outputs_spent", "value_of_native_p2wpkh_outputs_spent", "value_of_native_p2wsh_outputs_spent"); + const bool loop_outputs = do_all || loop_inputs || stats.count("total_out") || + SetHasKeys(stats, "new_p2wpkh_outputs", "new_p2wsh_outputs", "txs_creating_p2wpkh_outputs", "txs_creating_p2wsh_outputs", "value_of_native_p2wpkh_outputs_created", "value_of_native_p2wsh_outputs_created"); const bool do_calculate_size = do_mediantxsize || SetHasKeys(stats, "total_size", "avgtxsize", "mintxsize", "maxtxsize", "swtotal_size"); const bool do_calculate_weight = do_all || SetHasKeys(stats, "total_weight", "avgfeerate", "swtotal_weight", "avgfeerate", "feerate_percentiles", "minfeerate", "maxfeerate"); @@ -1810,18 +1840,104 @@ static UniValue getblockstats(const JSONRPCRequest& request) std::vector fee_array; std::vector> feerate_array; std::vector txsize_array; + int64_t native_p2wpkh_outputs_spent = 0; + int64_t native_p2wsh_outputs_spent = 0; + int64_t nested_p2wpkh_outputs_spent = 0; + int64_t nested_p2wsh_outputs_spent = 0; + int64_t value_of_native_p2wpkh_outputs_created = 0; + int64_t value_of_native_p2wsh_outputs_created = 0; + int64_t value_of_native_p2wpkh_outputs_spent = 0; + int64_t value_of_native_p2wsh_outputs_spent = 0; + int64_t value_of_nested_p2wpkh_outputs_spent = 0; + int64_t value_of_nested_p2wsh_outputs_spent = 0; + int64_t txs_spending_nested_p2wpkh_outputs = 0; + int64_t txs_spending_nested_p2wsh_outputs = 0; + int64_t txs_spending_native_p2wpkh_outputs = 0; + int64_t txs_spending_native_p2wsh_outputs = 0; + int64_t new_p2wpkh_outputs = 0; + int64_t new_p2wsh_outputs = 0; + int64_t txs_creating_p2wpkh_outputs = 0; + int64_t txs_creating_p2wsh_outputs = 0; + int64_t txs_signalling_opt_in_rbf = 0; + int64_t txs_consolidating = 0; + int64_t outputs_consolidated = 0; + int64_t txs_batching = 0; + + std::vector high_consolidation_addrs; + std::vector cons_in_count; + int64_t many_to_one_consolidating_txs = 0; + int64_t many_to_one_consolidated_outputs = 0; + CAmount many_to_one_total_value = 0; + + // Batch ranges = [(1), (2), (3-4), (5-9), (10-49), (50-99), (100+)] + constexpr int NUM_OUTCOUNT_BINS = 7; + int64_t output_count_bins[NUM_OUTCOUNT_BINS] = {0}; + const int64_t out_counts[NUM_OUTCOUNT_BINS+1] = {1, 2, 3, 5, 10, 50, 100}; + + constexpr int NUM_DUST_BINS = 22; + int64_t dustbin_array[NUM_DUST_BINS] = {0}; + const CFeeRate dust_fee_rates[NUM_DUST_BINS] = {CFeeRate(1*1000), CFeeRate(3*1000), CFeeRate(5*1000), CFeeRate(8*1000), CFeeRate(10*1000), CFeeRate(15*1000), CFeeRate(20*1000), CFeeRate(25*1000), CFeeRate(30*1000), CFeeRate(40*1000), CFeeRate(50*1000), CFeeRate(60*1000), CFeeRate(70*1000), CFeeRate(80*1000), CFeeRate(90*1000), CFeeRate(100*1000), CFeeRate(150*1000),CFeeRate(200*1000), CFeeRate(250*1000), CFeeRate(350*1000), CFeeRate(500*1000), CFeeRate(1000*1000)}; for (const auto& tx : block.vtx) { - outputs += tx->vout.size(); + int64_t tx_outputs = tx->vout.size(); + outputs += tx_outputs; + + // Place number of outputs for this transaction into the corresponding bin. + for (int64_t i = 0; i < NUM_OUTCOUNT_BINS; i++) { + if (i == NUM_OUTCOUNT_BINS - 1) { + ++output_count_bins[i]; + break; + } + + if (tx_outputs >= out_counts[i] && tx_outputs < out_counts[i+1]) { + ++output_count_bins[i]; + break; + } + } + + if (tx_outputs >= BATCHING_THRESHOLD) { + ++txs_batching; + } + bool creates_p2wpkh_output = false; + bool creates_p2wsh_output = false; CAmount tx_total_out = 0; if (loop_outputs) { for (const CTxOut& out : tx->vout) { + CScript scriptPubKey = out.scriptPubKey; + + // Check what kinds of output is being created. + if (scriptPubKey.IsPayToWitnessScriptHash()) { + ++new_p2wsh_outputs; + creates_p2wsh_output = true; + value_of_native_p2wsh_outputs_created += out.nValue; + } else if (scriptPubKey.IsNativePayToWitnessPubKeyHash()) { + ++new_p2wpkh_outputs; + creates_p2wpkh_output = true; + value_of_native_p2wpkh_outputs_created += out.nValue; + } + tx_total_out += out.nValue; utxo_size_inc += GetSerializeSize(out, SER_NETWORK, PROTOCOL_VERSION) + PER_UTXO_OVERHEAD; + + // Check if output is dust at any of the set fee rates. + for (int64_t i = 0; i < NUM_DUST_BINS; i++) { + if (IsDust(out, dust_fee_rates[i])) { + ++dustbin_array[i]; + break; + } + } } } + if (creates_p2wpkh_output) { + ++txs_creating_p2wpkh_outputs; + } + + if (creates_p2wsh_output) { + ++txs_creating_p2wsh_outputs; + } + if (tx->IsCoinBase()) { continue; } @@ -1829,6 +1945,19 @@ static UniValue getblockstats(const JSONRPCRequest& request) inputs += tx->vin.size(); // Don't count coinbase's fake input total_out += tx_total_out; // Don't count coinbase reward + if (tx->vin.size() >= CONSOLIDATION_THRESHOLD) { + ++txs_consolidating; + outputs_consolidated += tx->vin.size(); + } + + bool tx_is_many_to_one = false; + // Look for transactions with high number of inputs and low outputs + if ((tx->vin.size() >= CONSOLIDATION_THRESHOLD) && tx->vout.size() == 1) { + ++many_to_one_consolidating_txs; + many_to_one_consolidated_outputs += tx->vin.size(); + tx_is_many_to_one = true; + } + int64_t tx_size = 0; if (do_calculate_size) { @@ -1854,11 +1983,16 @@ static UniValue getblockstats(const JSONRPCRequest& request) } if (loop_inputs) { - if (!g_txindex) { throw JSONRPCError(RPC_INVALID_PARAMETER, "One or more of the selected stats requires -txindex enabled"); } + CAmount tx_total_in = 0; + bool spends_nested_p2wpkh_output = false; + bool spends_nested_p2wsh_output = false; + bool spends_native_p2wpkh_output = false; + bool spends_native_p2wsh_output = false; + bool signals_opt_in_rbf = false; for (const CTxIn& in : tx->vin) { CTransactionRef tx_in; uint256 hashBlock; @@ -1866,12 +2000,59 @@ static UniValue getblockstats(const JSONRPCRequest& request) throw JSONRPCError(RPC_INTERNAL_ERROR, std::string("Unexpected internal error (tx index seems corrupt)")); } + // Copied from inner loop of CTransaction::SignalsOptInRBF + if (in.nSequence < std::numeric_limits::max()-1) { + signals_opt_in_rbf = true; + } + CTxOut prevoutput = tx_in->vout[in.prevout.n]; + // Check what kind of output is being spent.. + CScript scriptPubKey = prevoutput.scriptPubKey; + if (in.SpendsNestedPayToWitnessPubKeyHashOutput(scriptPubKey)) { + spends_nested_p2wpkh_output = true; + ++nested_p2wpkh_outputs_spent; + value_of_nested_p2wpkh_outputs_spent += prevoutput.nValue; + } else if (in.SpendsNestedPayToWitnessScriptHashOutput(scriptPubKey)) { + spends_nested_p2wsh_output = true; + ++nested_p2wsh_outputs_spent; + value_of_nested_p2wsh_outputs_spent += prevoutput.nValue; + } else if (in.SpendsNativePayToWitnessPubKeyHashOutput(scriptPubKey)) { + spends_native_p2wpkh_output = true; + ++native_p2wpkh_outputs_spent; + value_of_native_p2wpkh_outputs_spent += prevoutput.nValue; + } else if (in.SpendsNativePayToWitnessScriptHashOutput(scriptPubKey)) { + spends_native_p2wsh_output = true; + ++native_p2wsh_outputs_spent; + value_of_native_p2wsh_outputs_spent += prevoutput.nValue; + } + tx_total_in += prevoutput.nValue; utxo_size_inc -= GetSerializeSize(prevoutput, SER_NETWORK, PROTOCOL_VERSION) + PER_UTXO_OVERHEAD; } + if (signals_opt_in_rbf) { + ++txs_signalling_opt_in_rbf; + } + + // Sanity check: any transaction with a witness must have spent one of these SW output types. + if (tx->HasWitness()) { + assert(spends_native_p2wsh_output || spends_native_p2wpkh_output || spends_nested_p2wsh_output || spends_nested_p2wpkh_output); + } + + if (spends_nested_p2wpkh_output) { + ++txs_spending_nested_p2wpkh_outputs; + } + if (spends_nested_p2wsh_output) { + ++txs_spending_nested_p2wsh_outputs; + } + if (spends_native_p2wpkh_output) { + ++txs_spending_native_p2wpkh_outputs; + } + if (spends_native_p2wsh_output) { + ++txs_spending_native_p2wsh_outputs; + } + CAmount txfee = tx_total_in - tx_total_out; assert(MoneyRange(txfee)); if (do_medianfee) { @@ -1888,6 +2069,10 @@ static UniValue getblockstats(const JSONRPCRequest& request) } maxfeerate = std::max(maxfeerate, feerate); minfeerate = std::min(minfeerate, feerate); + + if (tx_is_many_to_one) { + many_to_one_total_value += tx_total_out; + } } } @@ -1899,6 +2084,11 @@ static UniValue getblockstats(const JSONRPCRequest& request) feerates_res.push_back(feerate_percentiles[i]); } + // If an output is dust at fee rate x s.t. x < y, then it is dust at y. + for (int64_t i = 0; i < NUM_DUST_BINS - 1; i++) { + dustbin_array[i+1] += dustbin_array[i]; + } + UniValue ret_all(UniValue::VOBJ); ret_all.pushKV("avgfee", (block.vtx.size() > 1) ? totalfee / (block.vtx.size() - 1) : 0); ret_all.pushKV("avgfeerate", total_weight ? (totalfee * WITNESS_SCALE_FACTOR) / total_weight : 0); // Unit: sat/vbyte @@ -1929,6 +2119,45 @@ static UniValue getblockstats(const JSONRPCRequest& request) ret_all.pushKV("txs", (int64_t)block.vtx.size()); ret_all.pushKV("utxo_increase", outputs - inputs); ret_all.pushKV("utxo_size_inc", utxo_size_inc); + ret_all.pushKV("nested_p2wpkh_outputs_spent", nested_p2wpkh_outputs_spent); + ret_all.pushKV("nested_p2wsh_outputs_spent", nested_p2wsh_outputs_spent); + ret_all.pushKV("native_p2wpkh_outputs_spent", native_p2wpkh_outputs_spent); + ret_all.pushKV("native_p2wsh_outputs_spent", native_p2wsh_outputs_spent); + ret_all.pushKV("txs_spending_nested_p2wpkh_outputs", txs_spending_nested_p2wpkh_outputs); + ret_all.pushKV("txs_spending_nested_p2wsh_outputs", txs_spending_nested_p2wsh_outputs); + ret_all.pushKV("txs_spending_native_p2wpkh_outputs", txs_spending_native_p2wpkh_outputs); + ret_all.pushKV("txs_spending_native_p2wsh_outputs", txs_spending_native_p2wsh_outputs); + ret_all.pushKV("new_p2wpkh_outputs", new_p2wpkh_outputs); + ret_all.pushKV("new_p2wsh_outputs", new_p2wsh_outputs); + ret_all.pushKV("txs_creating_p2wpkh_outputs", txs_creating_p2wpkh_outputs); + ret_all.pushKV("txs_creating_p2wsh_outputs", txs_creating_p2wsh_outputs); + ret_all.pushKV("txs_signalling_opt_in_rbf", txs_signalling_opt_in_rbf); + ret_all.pushKV("txs_consolidating", txs_consolidating); + ret_all.pushKV("outputs_consolidated", outputs_consolidated); + ret_all.pushKV("txs_batching", txs_batching); + + UniValue outcount_res(UniValue::VARR); + for (int64_t i = 0; i < NUM_OUTCOUNT_BINS; i++) { + outcount_res.push_back(output_count_bins[i]); + } + ret_all.pushKV("output_count_bins", outcount_res); + + UniValue dust_res(UniValue::VARR); + for (int64_t i = 0; i < NUM_DUST_BINS; i++) { + dust_res.push_back(dustbin_array[i]); + } + ret_all.pushKV("dust_bins", dust_res); + + ret_all.pushKV("mto_consolidations", many_to_one_consolidating_txs); + ret_all.pushKV("mto_output_count", many_to_one_consolidated_outputs); + ret_all.pushKV("mto_total_value", many_to_one_total_value); + + ret_all.pushKV("value_of_nested_p2wpkh_outputs_spent", value_of_nested_p2wpkh_outputs_spent); + ret_all.pushKV("value_of_nested_p2wsh_outputs_spent", value_of_nested_p2wsh_outputs_spent); + ret_all.pushKV("value_of_native_p2wpkh_outputs_spent", value_of_native_p2wpkh_outputs_spent); + ret_all.pushKV("value_of_native_p2wsh_outputs_spent", value_of_native_p2wsh_outputs_spent); + ret_all.pushKV("value_of_native_p2wpkh_outputs_created", value_of_native_p2wpkh_outputs_created); + ret_all.pushKV("value_of_native_p2wsh_outputs_created", value_of_native_p2wsh_outputs_created); if (do_all) { return ret_all; @@ -1942,6 +2171,7 @@ static UniValue getblockstats(const JSONRPCRequest& request) } ret.pushKV(stat, value); } + return ret; } diff --git a/src/script/script.cpp b/src/script/script.cpp index 9bdf3ed808da..98d234602b34 100644 --- a/src/script/script.cpp +++ b/src/script/script.cpp @@ -211,6 +211,31 @@ bool CScript::IsPayToWitnessScriptHash() const (*this)[1] == 0x20); } +bool CScript::IsNativePayToWitnessPubKeyHash() const +{ + // Extra-fast test for native pay-to-witness-pubkey-hash CScripts: + return (this->size() == 22 && + (*this)[0] == OP_0 && + (*this)[1] == 0x14); +} + +bool CScript::IsNestedPayToWitnessPubKeyHashScriptSig() const +{ + return (this->size() == 23 && + (*this)[0] == 0x16 && + (*this)[1] == 0x00 && + (*this)[2] == 0x14); +} + +bool CScript::IsNestedPayToWitnessScriptHashScriptSig() const +{ + return (this->size() == 35 && + (*this)[0] == 0x22 && + (*this)[1] == 0x00 && + (*this)[2] == 0x20); +} + + // A witness program is any valid CScript that consists of a 1-byte push opcode // followed by a data push between 2 and 40 bytes. bool CScript::IsWitnessProgram(int& version, std::vector& program) const diff --git a/src/script/script.h b/src/script/script.h index 00065a24be66..9a5c9871ec2b 100644 --- a/src/script/script.h +++ b/src/script/script.h @@ -532,6 +532,10 @@ class CScript : public CScriptBase bool IsPayToScriptHash() const; bool IsPayToWitnessScriptHash() const; + bool IsNativePayToWitnessPubKeyHash() const; + bool IsNestedPayToWitnessPubKeyHashScriptSig() const; + bool IsNestedPayToWitnessScriptHashScriptSig() const; + bool IsWitnessProgram(int& version, std::vector& program) const; /** Called by IsStandardTx and P2SH/BIP62 VerifyScript (which makes it consensus-critical). */ diff --git a/src/test/script_standard_tests.cpp b/src/test/script_standard_tests.cpp index bf57272ab2fe..e572c098df01 100644 --- a/src/test/script_standard_tests.cpp +++ b/src/test/script_standard_tests.cpp @@ -99,6 +99,8 @@ BOOST_AUTO_TEST_CASE(script_standard_Solver_success) BOOST_CHECK_EQUAL(whichType, TX_WITNESS_V0_KEYHASH); BOOST_CHECK_EQUAL(solutions.size(), 1U); BOOST_CHECK(solutions[0] == ToByteVector(pubkeys[0].GetID())); + BOOST_CHECK(s.IsNativePayToWitnessPubKeyHash()); + BOOST_CHECK(!s.IsPayToWitnessScriptHash()); // TX_WITNESS_V0_SCRIPTHASH uint256 scriptHash; @@ -111,6 +113,8 @@ BOOST_AUTO_TEST_CASE(script_standard_Solver_success) BOOST_CHECK_EQUAL(whichType, TX_WITNESS_V0_SCRIPTHASH); BOOST_CHECK_EQUAL(solutions.size(), 1U); BOOST_CHECK(solutions[0] == ToByteVector(scriptHash)); + BOOST_CHECK(s.IsPayToWitnessScriptHash()); + BOOST_CHECK(!s.IsNativePayToWitnessPubKeyHash()); // TX_NONSTANDARD s.clear(); diff --git a/test/functional/data/rpc_getblockstats.json b/test/functional/data/rpc_getblockstats.json index b8cabe1e5e58..327efc8e08d9 100644 --- a/test/functional/data/rpc_getblockstats.json +++ b/test/functional/data/rpc_getblockstats.json @@ -1,109 +1,109 @@ { "blocks": [ "0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4adae5494dffff7f20020000000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000", - "0000002006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f1cd16b94f20a8a3dda91027c888025f2ec1a07ddcb2786bdff5916e66c00406f194ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03510101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002014341131c18d3b3aa30056a0f7a97c9ac852d3fd0ec9c76f7a25e83c01e7f821bf83574fb606f25c59200c844443201faf923ef5284fd4401f3104a323c601491a4ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03520101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002078616da95299bd42cd8f813c8043816ec5741de466be3162e16bfff471808461f671e694afaf534d37df484f1990fc19a65fc26964b38141b7f8ecf61b8a50241a4ae75affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03530101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020a08613f37d305835a3a1553e77a479eba0f34c06c52e429ece54f5973cd77a7086a1efcaf75f1cd5be2c9deb6a7850225757a2cfc3031a91cc1330b3af4acc891b4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03540101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000203b304fa1ce0505c2366982939ac148d9124c5ac747cc9aea133cea9916484966305de0e8d049f2be65c68d64d2c45746def5a9b4fcb8e298692b53b83b4690241b4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03550101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020fbdf49978ec4f0b23704b6772a614336872587e29c463f375836ffd775248837fed9f3fdfc33f076c6663ae78070fad7263c1e24161f3ee1a4857b8931815e2c1b4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03560101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020c37548b9ca256b9ff17187d4d4309cf3143845b0a5811d3ca5427b2fddf000731a10985dfd473561c070c3527c3fe3941834cf51b3dfbacb501b44c69c9745ce1b4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03570101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020383dd3766c0675440f26370ad62d687e335ea3a650dec9b02fe544107cc1823a13b98696d41562945457d655f4c6921f736068f7a72afd1ad6b335f2857d16631c4ae75affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03580101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000207476dd96d81f53e63934ce28c9e89022e0f24d040ec3c838443e925fc3a2f230a94d0cbcefb4a151191dd7664153944d9eee3b7b46d4ba997f397ed2b72c3afe1c4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03590101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000209e425c73eea16cce98c0d47d6070aca29f0524eab4b97af84c386aa5322dd43055002f097e929bc6ad88ce869968e1b049aab7f6e45a5b869cf4349afd5d43e01c4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035a0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000202090e16a514fad40386413a100bbaa4fc14086a8d3501ac64c91fdef922e834a369e409444d0ec496eb0dd9a47f1fe81a7ab974bab28c50a912b994acf13b5f91c4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035b0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020777b767e42624c52775b331f19e81ba03be2f51a0608166cd5388c1a47d5e776473570bb9bba553a7db4a9a3083533027c54af1fea3ef6ef67757ef2255d64631c4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035c0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002076bb2bf3251a51ec367a42f8584043171a5d53157394cd776ebd017e2982127653d953aca3e2217f56533c043c07b9a926a30672ebce2562f1d06a6dc5044e7b1c4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035d0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020e6d7f02292655b73fc1f1958b09633ba07265d71d2a2784060b354cbbf1900202e9c9b02b63170002a94a0c9d8d787e2faa4c074a1ebdeb2855555347321dd101d4ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035e0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020d61f077b0ed326e17f0a3d5af3fa876b72b434a252c9c3248d20130ed744287fcb10da470222dd29c7a07e2da7eb25d6499ed3919676df89cc630bd1b23fbb411d4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035f0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000205efa9741cf51533ed6e07a97c71768372f53ca9c6df83894d64fe94c718eee23a207441e79ecdcf99ef3326385f5f675e2dea84c85ab8973219c63f92847ed5b1d4ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03600101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020368386b0a0f46b2a2c4648eb9cb5dd1380c4f22e437e0bd49420670993361e5b9026632c2ddbb4b31b3c3118c51e43ea4d78e05c0aca0956278ead26a263d1521d4ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401110101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020dd0a1594bbff6345a3e34f326e5ee605c855f5e0a5c363fc39615a8b1539b736200b51297dbee4aadf9b536cd2afe7617651e0a1d0f0610f436518a2a4dc54621d4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401120101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020f302a1092709dc27a32d7229d391b90824a75828692c4bb2ca8f0ca5c88b3613c2e18797ffe8b367336338f90b2cf8c3f66277eb1e1ddbe18c052977294f10691d4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401130101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000203dcc77aac703a8cd0e799384b74383c1d5f236426f77d516694607fc88fe85581276a20ceb98d02e6355c9dba4312e2fdc9832f4302cc307e1263f2df0aadd6a1e4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401140101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020dfe109704a0b2801aee4232c31fb744145a7c80dd91a7727e16d4057719d5c3730f8296243521d82d96ed75c5af800a722fc9dde2e02af95c8c9822190ba07b21e4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401150101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000201ef9ef2699bc36fd646bb9ba8629644bc98396122f6753710caf0315d7539f751382d3d85f17eb8b42cf17e54baa327886dcf6fa63207e097df8f9b84cc5422f1e4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401160101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020834c91f23cd91b727be08b892f1c1a2f33c1e66d66f35607925fa1be4bca2c25b4145a73b1c71b945f5bb9ede3d8d95c9a3b12a0a81b7b14f440ec5146dd4ec71e4ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401170101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000205743202bf1e543a9be2a59b62be6a5a494511fab96968007b8d7199ea60a524697227ba473ceaf48d4f48ee17f8ee6cd2f1f5ddff03a641642ece240e7872f8f1e4ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401180101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000207469f5c1841bf57275d82db23e5a8f0e8512af1eb10119c238519cdd6cdced34fd96dc659a874b3f5d30fbe6ea421a6b9791dfce8450f8851e4b90d80f0f794e1e4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401190101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020b6338f55fcc473b744d53d675b4a83dcd80ddec9d02ad3323cf1ff50ac0412239d986ec20885d772fdc67803273aaec43871426ac93d3815846a8cd13dea5af11f4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011a0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020a19d9edf2d22415cf226b4e1416c8a3097e0af222efac2bfeab15fa1f07b3f24c18580c4004de6d6244a30ce431c4be3ca44731509fc6b11710c792efed5e9191f4ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011b0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000208f9f29a27424ec01ce77485617088506ca8faeef69300f0a474ad63ca5d32972d6049609fa3588d6ffab4d9d89a90636ac94c0ca1995f7768163abeb25dbf2bc1f4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011c0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020fbd87d530a9ec3835ab579337fd16e512cec6c4779ab4d84e7256b3333dece28de1065c8c3d3d166e057139ac59af6f4f2c0d241b6269bbea6f61c5eff3dba431f4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011d0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020dc6ef4f436baab2d6880f242a2588313a2739ac694e30319344045ee318c9524d0ec7fbcaca30ce85392cb03b64015ece769afb50fd07db05c15ec49abf7d71c1f4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011e0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020386bf4cbb3708ae6345b9f2459bdd99d07422b05f9b005d2d4d1d3bf87d47359ebb22b3a15c8e94ddd8129527873b9bebfa10c54d11196961376efbcaad3c4681f4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011f0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020600e892f12ad82a23ce12684d3ffa0887eab5e3e97804fa651050b23366cc55ef2468e65c3d3cf49650657eb47d0b0b7949c71dcc0922eb824523157b7eff478204ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401200101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002068e4aec52a3f4e44279e3a65cd476237bdfcc2328390bb31b8a903f89ddfa70e8d669f61b469acb31b1d4ecdc238e6616a83a30644a5d06fc2ca1aad6449d09b204ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401210101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020cf2428ae9a5014b910275807f54a8bbbeec47d462f9d284ada60329b4955ff10cf83c44ddde39a709aef54fb302c7f1cb36db8fe7c3befce20dcc3729767518c204ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401220101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000205801eef8cca082407ce4798648c4d3ba0fc4dd2d4459eccfe5300c7960760d16cb3dd78a2f22fb88717a175e45c53d34f970b94ef9f7cd1b6c279294d427d163204ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401230101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002088320983a4bcb95b9f342994c6943c227f3102d3b16282f048ceb8e15748662a52d1207591a0a364bc9245a76e36530f147ec4d1b4e1917676b4071f542c3b19204ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401240101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020acd85b6d8087d3b6bd2a208a2e39b75da459c0e0eb14088075a23a2e043e8a4ed5a1754491f8180d293b42e6c04ec3f82e29c1f2600dc8607616f69a4a464e6e204ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401250101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204873bcb379f78da4497ce1e22f6bfb63537b89c8c522257a7b7bef74e515ed1b6b235faab048fa73a76c68fdbdde6a4ee7ebe0a3b7b23df24ce75dbd2cf49c33214ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401260101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020a87f6d13bae8e2e07996c3316e8e0da6aec7d1aee6b80aa5883018e4d136db3e9a498ff7d322ad93863e0a5318af7e7d0ed683fd2e4ecf523f2b7369106dbe4a214ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401270101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020d9b0618450a51c08f43187c479e20d351f0466464409bb3071dc0af7c51d65498a198cef23dddd2c4b93d9d3288ae922584e221a9ef1ded3dba5a2ad494d9237214ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401280101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020167dff31847b8dcad472bb6bb7d0af53b245f0f1d4c9f83d4ce14a0f05d42d7f0f2638ffc0e6896230f28df1865ef133dccb1f027545c6a1177dffd1fecf8a01214ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401290101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000208236c04424573692504e777e179b9247e54622b118239311413812f13cefbf6e39a639143f599dc76208b2014de12a364716df2918af9186453e3676dca743d7214ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012a0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020fab7b55aeb59f63315dbc10784c55e55635a7600cc4f3b94a00003007e7fc90b4af016248e9908882f8a7f0bd8743c8da82da119446e8b02e4d3b8d1d938a3aa214ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012b0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020794b4160d8fd4ebe7611d0fc9d3e04f3038a485669f74075aa153852ed181121c577f4c0b7151f6d78a16e3c21ab291b53ced8a5c4f05a22caf24a25ed029d56224ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012c0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204a8acdb549d2ed922360ae0e81de6c913c3fd84b0de51abacbf97162a99f7c26c656b252d3259c33ffc7e5d403843accc6ace9b7e60e911e2347a6a0b0abd122224ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012d0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020dee6d00c7058b3422e4273c98c16181e04ea93116496a8442de546c2ee9fd86b550013f39e004b3829dc3717b17fcfedc87de9450315fcca540963119cb264c1224ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012e0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000202ebca471f5fb2226a790233c3d0bc323f73d935872f3e15b66bd5fdcb822101d7b68788ed61d3fb8cb746f627e09db2fc09d8a07672747709d92ae400e053e78224ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012f0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020ee500470fc1c71a82f2cbb9f8d5723bcdf57b8051fc458a8dbd8d0dbf60d0e40d1a0be0e50f3312d4830e3900186e5a6760d44006c164b4f0758218ef2b2de8e224ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401300101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000205057e8d8a7451d79325851dc8e0f4dfdb1dfaaab637509d9e61f0e064af5ee5c185221c53c0cf43261b3c238c0e8117da5d6ac60085615f7a3d8027726cb2143224ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401310101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000200907f01d9c5c872296796ca77feb62eb414cc080e13a93e59e181528bc19c336eaabacb1ebcbd20b26f6bacdc712ffe17d4c8131e7f99b9cac309c0683737c04234ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401320101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000209bd6a4ec962d9e6199c0a2f39481a7ecc322fedbd2320cbe7dc984c6ab958421fe7a5c7f2513a3c3de9ddf7b211f5bfe85675b31183c4bb98ae79ab28cd055ac234ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401330101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000202b8a6381b7c9476fd77be379a929863db6b7edd9858d6eca0f68a430dc87cc3a9c6c8b34bfadfdacbe95cb1d4ae5ce4e4f4ccf0300171d7a91cdc97f620c7b37234ae75affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401340101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000203d3e9a0b4decf12b4402a2178b60599311c8a9c7d50ece365a61ca29530da7056754ddf7d77a11cc8ce680a74fae01d851bda024fc9c51712c55b4a190caef24234ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401350101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002067fa05082d4f7a29a3985f30798940cd854c76a2b20e9560b2047f7753193f71ac61b8df17a8a63f099c8f55869301fc2a0aa37355a4a2f89078135ee72a1362234ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401360101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020249684272865fec3ad62ecb73dfd930500e32e475306c9e5d4b6d545e3687b0a48deaeebfafa213f0a560994b3f4000d5e2b93951d7e5be40073503877292dc7234ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401370101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204671db1df91098669bb03c3e8504d432da99853601366c7de7585bb8f23a6e1e2996a16c11a0f9ae87d937f566c8bbd919040528c1bf8dae4e22a8f0ac5f935a244ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401380101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000203046500cabfee552ed114c505279cd75c28faa811adcb5010c53c14df5de3216d265321a4168c70fff1c85fd83bd976cc03c8c1fb6567398cc24053e343ad137244ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401390101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020591533cf8dd1fa1872c7e6d62ef714b28886f38f7921ee614e13b748eaf923282a96287277f18b1113a9c3ac384fd7b43bccd0e45114908ca5396a76cbd736fd244ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013a0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000205286b5747d0244a55e1dce435fdbb9f300d7138fff3b16767bc09196eb00256c6795e3f372a2d5d137244a4fd72fd799e8de913f868f22269eaa628d7d2970a1244ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013b0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000209649b55f6a5ff0d5db73aeb7089fcce605fb9dd23971e577b73747ffab586f4edf84581240223e2d8912a6eca049e06aa46ddbf271af08e9ac9605505311418b244ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013c0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020fe7ff82c11ad3a3db3dc11a03a67e0b86b727d232c80f37209b028bc2689296c0da76fb756e1c9833f38b198cfe843ab820fbc0c38e30f8f858f6ffdbd64e834244ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013d0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020c02e6109b6aaf6643cac109ad5b5be7f7ec47c7993335bdceea6e0e490ae9067eb1fcee49ecc40a61477f934e3b9821f2cc7ada429fcca2cd645866742854c40254ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013e0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020956c46fce0adfc8a30d91c7b7f328f17c2a90771083884c4fdb7f24640598f6fa69c4e5971bd3b6cdc7e3ee98e03a969b28c3220fdc685cc2eb77293763ca4ba254ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013f0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000203eec7d0ea9c539f47e684eec9dba900e27c805b8200f237924c7df8065957726c83caf659fa341bf45f733a92cf76daf2cfb6bccbf969a2753f5f7d9cda4bd1e254ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401400101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000203c022b42283bf651ee4d536fe71b7e5382e9783d4a85f8bc159f00b97f16d82d312ac4f89f1b1496de576811f2ff17de44b512db0beddae59e030e2ce3eba4df254ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401410101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000205da9709dea4bea4f3229d0eed439a4820a0e817f9fbbcd8bb355cd8052702973403358080a2881b823a740f58b6b0c922b42189e06326478cc33390f2c704743254ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401420101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020447c49f664916cc13a839e27f7cbe0b09dea990dec71dd479b537ecfb771c7159ae6241727c2645ce00817909ba97d43447fe2e146bce55b7dccd5bcd27d2e3d254ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401430101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020ae3b214b1495953eea3b99af7ade4b8d22d615d598dd6c790c6576d6453ef35d37fbd3446f8431f00052f278c3e0359beba54a2f5064bc6be4990478fcf4e086264ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401440101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204cc68f9f571f59145e1f7505550d56da13a797fbc7e5a178dd7f6f9241d91f007f2400f7aa1b32b30bf869e4da86f75eaf2baae182efc45c42c6245f06aba675264ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401450101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002096d55714a83c3d030cc72141eac3577b8a394b8366b2c93354fcecdafeab025022f5e26de7e4eba3f8e4a09f243b55ea6f08bfd013e2051cf1d5df20dcb3331b264ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401460101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000202ccf49665bd46e4915dcc9221f5fc72124bb73fb11fed8869dc5862a47950c0d654693a1d86098212d68fa9a27f9df0faafea4aecebd8b203f2ab8f3f0b86196264ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401470101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000205d0be5aea546eab7734cbee757ea5f4983ab3a3f202323c1c88590bdbc8b561974cb0de6549bfdec92322ad53d8a4192433edab0e33a10e7561d2e27c7759f8a264ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401480101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020fc3d70d4f690d7d7da90b1c832a51c2a92940cdd9fccda6a909c7256ad567160550e1089b48fe75f0f1e6f712cc2a1d4aad384a4ceacf1c71576420fe8e7de46264ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401490101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020995ab1f2293e3aa1e7bef418919bdce60032e89e60223b8c12b17488c50af83b3a360b4f89551aa0ced646a6210b0c3d3f7d0464faa248b9d252c89615babc9f274ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014a0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020e02dd5e1201ebe7ef453e77df3021cffde1b5447b9eced017963489e005ac247e1f2b80e91180cd9744c3e126eb8a0fb34ced45587da6b0fa9fd1c6946f049bf274ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014b0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002081b265800d61feb37525c58aacc7e6d32cfc6b6579784f9952dca51c3addeb37da900ae4ec1b2075056001a361c0fc8f9ac1ca018bde2a2bd8fc587424dfe18f274ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014c0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000207daba0dc6fccc067a19dec46770d1443fc715b50540242ff26073a6748bcd9583804c315b783d4f9aac4dc8f109fa60bcbf1c3cf98a7e1e593fcb969e88aafae274ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014d0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204a35ab2d9c4656c4992d2445ee566e4f5cd0468358292c94839de2b270ba0628de9148db03da59ca2eb727a4f7a03f2b9ee1e4045f37bdaa4b75a89de56b63ee274ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014e0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020215ed7b31d118a45a06407133e41f3f9d25c913ff98f3e798144f981d9145305266efc9274f7c836aa0f8b831732aec2c1d85c5bb9176af4c889a707cca380fc274ae75affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014f0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020425321a1f12ed4613b63b3cc5b4c7674242c3de67ea86984f2d9bb2766f6220a5c460ce6840832b7ef05f206c5d255bc2d8ea83753a7f5ef5c0bf3dbcbc7c74a284ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401500101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204e088cfd312091bf589f0fc24131dba20ed83f716530a7b033356e9ec803be23a73c4af5b64fc631d20aa1f646c7c61c4cc5d4be6e2fa29570030d72219726a0284ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401510101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204287a2bf40300e39b45d6667d6e17abba37d98c41efc7023fd21b643fb2f6b76d915d10e1f9e224d3bfdf5203da57173f0b8d8eedc92ed9ff23372927e86073b284ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401520101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002083137929ca902f409a1f35385b4d31e0f5163d488d71b00ade724d7831986a280a187c13fe0db45aed5fa4f5089d544a617da9f4f80fe6ce1d0711b228f3a6bd284ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401530101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020b38c074d78cbcc8bbbf20c48e30639c2dcf444488efee59f5aa01c48322a30418009c11df7e14de6a6d0d72cc22f20ff5fdba3a7dbe409409ff92b1302340fb8284ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401540101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020a6865148220c7f5ac3259f57fa381676d6be5fdab56eed8e060808fcce4118492476fe6d5ecc681e7a18c20a04239143de1c2cddefbb08f15153b8e9b0c22f62284ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401550101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020ae146263f4087106b8c51ffb5cdddb03a4e593ea1a22a8f6580eaa374185126db2187dbe694a1b17b7c5664115307965407274c25bf6ae02049817685f923256294ae75affff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401560101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020718abe22705f33134812b56d04c129d453da890e27caf6e77d2bfb3f9be460083634f35fc8ea4a29b0f30d6c6b4926455a31de62d2f763bc95c8cd1a7a425599294ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401570101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002084537c50520f4e6b0173926320c3193f6b4259c9a724fe202337d3d5cf7da70b1104e1d6f25c411165a856a0bfdd5ddbe168238425c05271962aa6e5ebb676fb294ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401580101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204bae65b948c9790468cfc8fbf78a81e7aec5407dbab18c18ef1ab37a13f0c257792cd1246dac5ce265a8439e539db1aebe4776535d422315bac8e57a51605aa6294ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401590101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000201e68985b2a15920524c3c2da77354c0ccfb202c3ab4005128eb2743aa33f0a5b0527a624a6d1f808c896d8cd1552c251a4ae5310e6c62493977b0965d17f580d294ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015a0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020ab1d90854505caa1ee748c1987f4cb6674844b84d17224bc3983fdd6e44a930b2edf3e5a90be7a9080ad15014ce796b38b6c19ddd3754443243fc277bcd2368a294ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015b0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002062242f316efa083c17e2173d9f9831afc1465f3fe84431d8e52fec71ae358b243e29246e0db770708987f2cff380920321636926d9c66c2c808d2d5f0ed27d672a4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015c0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020258c1a9b0ca17819d8d7fea5178e9c72c2e7c6769696f70098e0d5d2a9dc0e5cf039f5f686d727c6158ef5405ee8794ec2f89c641093a1dff0f5240263a441bc2a4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015d0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020434ce26cddae99571a1d663419d715f88e6ff0e413c45f21c44b1991d041fd2745534db221054e2233052aaffe7d7232a91b3f0918c14eac74b2f704b37bfb8e2a4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015e0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020ec94475f112ea37dddd84f066e61446b431d28d2d9b6fbb336d16295e7eece52f1dc01abb3b27e71d8a25c3ed2d6fbbc5900bf954738ed63d57689ba5e68f6532a4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015f0101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000206188cca18a2be3b7f0b500a724f1b73312873488f04c5082abd81ca0b2250a75ec0efb2fa994ad23e1f39416e69976e66fc4ef9f101bd4f60fcee1f8c45a2b802a4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401600101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000202384b91bd0bfb1385ef42bda9b2fa43930aa8889214bb14f63c61a74f380dc7f9d547f2925ad39b9161fa55b9cd258463fd058234778a7c7b3061113d64179812a4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401610101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204c266a3008c3bd95ae4bc8228bf878595cabf76cc2ef3fed32936777fe37833a1a13ea016868b2352a8d6d1eb35d0aee784cef06ed50655b8d84c089324351df2b4ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401620101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020ab2c78d1249de8482cf26bfb1616ac04f7b8404eafcae3e0654f398943fd41571b4d7549862be0b06ed1408ddc3e7c01b07af24c203a18fe9744e214b14d2d652b4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401630101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002031aa0fc5e0242a9c9d91024b6b7e67544da72c4773537f881ee5caacd45a3c38c650ff5fa0ffd080b3e5f9752527b718e8c6b731467028e14b0b009d4e7406ee2b4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401640101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000200418c57609fc6ea3f24f569dc3afe163538a6aab940fe8c3d73c72cd781221380482c6f8ef2c19429da2f7a842bb811496aa86247c55f7ecb3337718b694d9472b4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401650101ffffffff0200f2052a01000000232103836d350d84c3782a7579c5f542c7e70fe628d3062c6bac563d2264c21e56f70eac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204f36abaf10d6a8b3113103f3413475db0640c89a39f02a718e8bd2190fe87f1d6ffaf2b9fdbed67ebae4b36c97f9582814c99c90d0b5123f14da4861bf3e4f742b4ae75affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401660101ffffffff02b000062a01000000232102f6869601b2b9980b07fc047e309c1fc1433e08c5bf0498115c5c0e117ef59bfdac0000000000000000266a24aa21a9ed5896cd6a40cd126b09e317cbd179f39e2bcef2f9d423751d980258396416e671012000000000000000000000000000000000000000000000000000000000000000000000000002000000011cd16b94f20a8a3dda91027c888025f2ec1a07ddcb2786bdff5916e66c00406f0000000048473044022046d00465c4508cfd02fcb878b19d120e28be28e40658b1f15458828891ed1541022036aac054f36a42666dfb7b42a20506315a0b72232ce7704406e23c7a9515178701feffffff0200286bee0000000017a91481ddd4a9708ba8088cdcfeab9583ede8d83a298c8750bb9a3b0000000017a91484e16967722289584257803688aae36cd64480688765000000", - "00000020cc7c39992f2dae21e0ebd958f6ba77a6d0bcc568e044b9b61ca4d77536a4214e7b4ade79dd733ea72d97993aaac27f2263b91b1500467350ff35ea40c2850d392b4ae75affff7f200100000004020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401670101ffffffff0230d0062a01000000232102f58ba54b2d51c4e2a6096f9d266261b45f1026a86ba88c29ed8070dfe3f5ec6bac0000000000000000266a24aa21a9edb824d92cb231c2366f0726aedf8bfc2705239a40ae6b10a106534e8b5395a09d01200000000000000000000000000000000000000000000000000000000000000000000000000200000000010196bac2a0f6212b8e5710f8c7214dd32c393d38d20b7703cf0b7b25276bb6ab8001000000171600144f8a6c8d4c6c309b1e2b725b7496859e172ea367feffffff02781ef5050000000017a9149f00bafb542049fe32d532b0ea7494ebb7ae41398750daa4350000000017a9147794e6dc43de332ca7a095e582478c331446686d8702483045022100bd85ed3954f1151c2fde32c4021a32c96d7defa4a57c14b1a056be9b361a8e49022054947bf6fdb535c46cbee62efc1262cc0389a6eaa19afbcfa98fb1fb30c3ef230121031b2371df07fb88dddf590b246dc74defc265fdbfe258e4b168250859b806f5ce660000000200000001bf83574fb606f25c59200c844443201faf923ef5284fd4401f3104a323c601490000000049483045022100d1c4b09b488f6375ee4540a531a13b5549e88e2459bd88c84867e293c54862740220222e8af70c8d8b1139c2a7b616d9132bde94244edca7eee3c7a783b12839dadc01feffffff0250196bee0000000017a91490e5e33cfedf18d5cf911d6f853770c62e1f5d028700ca9a3b0000000017a91422311ee58518edf3a2289012461dc66bc8739d2687660000000200000000010196bac2a0f6212b8e5710f8c7214dd32c393d38d20b7703cf0b7b25276bb6ab800000000017160014b81faaafa52f7723f539f8d595147b1a112b38ecfeffffff0208bd9a3b0000000017a9146b2e611708a94d9c674dd08c7c4c1fbb97bcdba987005ed0b20000000017a914933a20f07bab1d8f341f391819466a271f0cfd648702483045022100dfa8b0052c7825e6abcea05d10fc82550a8d6538681ffc8188d48ba789e4d9b40220697371cdf527a6ecd1887f87da3c87dca3419e4a1aa2683e5c4e035199084d100121021cc37c2ec090f30ea0b49508ae8a7d65d9759903932666da56671c1faa445d5d53000000" + "0000002006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f0fb6f5d1e88fce42a57ca56c7649caf28754a0ec6e5dffa2418b085ccd16e98e194ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03510101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020dc786bb3cb337bc7ecd00f391f0beff015606762a863192998ee2777908ab018255bbda3fde73f0de8a1320c45e3cc297e1d64930f9f85683315711c2543ea021a4ae75affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03520101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020349bc7057fc197853203849fdc1a46d9576a559ea372cd1a4b63fe0f2e81f96fb1012b5b85b1c8288bddd08b2365af2fd38fb3e4ec20e8d4d66c76804d09cfa81a4ae75affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03530101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000201bb2ea5f8fe0e82463d14b2a77477d0ca938651eab3f60e697a9b39c520ed6751047a5e834be6843d7e241abc1d4dc2d787656edb9fcb9ade9f66347ea8d718c1b4ae75affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03540101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020281cc653081ecae410cfea174bb285825e4355d1ee467f5e0ff7a81b0a1b8b18c4b9c6eaa6246150b719f84788b8b17784268b920f27b97653cad12f81fa59f11b4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03550101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002014077a47019dfe88e9b838500c81ee2dfe919914d70f159901c3a7aa0d7a757e8f2461538344a6d7af157baa66e7e86038bb49a5a4b5c841018888d1855fba9a1b4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03560101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020baa692a77f582b5505ab3385b202b378d8410ec8cf4f3cbde76cfb091b7c8e5bc1eb6483e6e4aedec1df0d4416aac304f772246a39ec5732ff6dcd62dbd8c7ef1b4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03570101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020cd0146f89ca3f3ea7bf6065f5618b4f01921c7552dbfed27706c663917825c137d874253dd9aaaaae743af52b861a81b2c0800f631f8fd8c0ec8f79761b2df401c4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03580101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002068b27e9d9a6c108bbde4c6aa0e51d066cf159eaf29ecd7fab0bc0c4a46617a7d70b9ad9ce0ca49b955e060093b6da12f636917b7de3ff3e0e89c131c82d18fe11c4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03590101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020bd6bfc13208d0bed1a377046f2091ebeb8a916c833a73046a4461373fdc700564676fab85f5d5b37991cde1c2811f6982ed1302e092fb28fff983ba1565a93c21c4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035a0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002080b8cc037b1e3de594b33a65da22f09c26f54dd7ec8653e86021d394bf73411865c620f0ed480b0e858a6746fbde3a199c0230edddd9bd88a7925118a1b57c121c4ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035b0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000209751e8e97875a225786e3ab5e5e8b3cbca83804b96311add298938fae1fbed7c5be4227e477c2516244fca28caf4c1083296b5e13b78bb5dc84be97494515dbd1c4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035c0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020d630997ceda879cb2db8c90bcc98a5781b555dce2b0b9a9164dd3d101b228d221bb22a100e2e5578c48229bd4cd9b56fb3d7e783981dc3eb2b934e00dfd04fa31c4ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035d0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002023fb5fcee0ae3730ab5b3a56e4f664798687496d4dfedeac29f687a9cd1add13127faaf044476b3aebcd9834424297860518a9bbaca8a095c08c284959f6de3a1d4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035e0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020fb8ffc4ef54c28d211f690cb3910133f8ba202b2a06be96761c99dcfbdb5537ffa1e2c8affc70756d212df573b9c19a8514645257f317635d27ba8a9a2b172f11d4ae75affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035f0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002095a5094ba9c0bd2b3ad000ccead045fc275bb9de3770f6769178332b8ccf6c61f509957f456d41c5d766edb8372826a9995ea5be3b4aa057c20cdb4efb4271f71d4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03600101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002015a5feb6d47e0eaedff6db4927bd69b2a73bd649672313acd14a5121fc7c682b2a8839abbcc27d68cffcdbd167d631b30a217d010e1941d490cb5a922b658f241d4ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401110101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002007ab71e4ab5843395e4912066094b09c216aedd1d9cf1474d27799444735f85a22c7dcc746af166c4c1a97ed37ee3456e2a9c0df6fcecdb976e8b2837330819b1d4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401120101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002076bced80edd197ff59a9d7ba987829ca6679c8d868350abb4d0dd5a02e5a250e3d0164e058b05cbc2c3aaad738af218a2e5fbc9687cb7ec796a1e909303ec3c41d4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401130101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020e12bce4a5fdce1532aea9cdac227ca386a7fcc3765d4854a91b0228b3e3e7b443877f176af8fe184d8a8387779da751ddf517a9c05cda5fcdfdd0d2815797caf1e4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401140101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002005f76cd3d7ad3e6d2cd19033aa9850a4cf80c7249392e4a748890786f6d9260787c0bc7698e2af1332938d5c7053ad435c100d22af3ec5127d4171db65c1669c1e4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401150101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000204f8f9e81fee25955aca2bbf77ddf64e3ea840d70d2003082a7eccbfd4381ca3e1b3bffbe47135bb4c13b8ffecdaead8c0cbb4f6f8f3c24fa83629d644cd1fa1c1e4ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401160101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200bbec95e45589244f05acad7116406b0bd5871768a03c6e10a1f598cc5fa85092f7697312cefb165f95afb57b7fde76026f2211765524c4f6a5c95ffd24eaa7a1e4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401170101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020776ae1daf637b3db72046c2455cff61d8be830aaa399ba45d3fe7ef3479de53daa0e055bce9b2ac409a24ab35299f84eb75ca1d9ef13969284eac69fac516d821e4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401180101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002089ac09b32ae384e8f0aafbba66b62bdf7dfb45ab932509b5be86a3517dd01c76299f5cdc3f0c6688333d6e468da743e97c15d2a4b38d06858be7fceac89c445e1e4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401190101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020b08885e3992647bebc4fd55b47a29c70b4797213307c3928d8782c32ce58f05969873ae653b41fab8532790e489a5d541a8bb463859ee7b3ba664c5f9838b9931f4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011a0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020618cd1163701603ad45d7f972d89c3450f836c056965a73549de4641ffab43569e6d6b85db9ed921a1e4decd8ee97aaa60ab48d650b7f20bc658daff6735241a1f4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011b0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020631bea2dfd509c918c16161900f8778b96f80721fe43163e2ce483e0f0a39c5df9da0bbd956905bb90703f48a609c0acd60e3b5f459bd3a22a41db376a1ab45d1f4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011c0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020b6a1d9d038c18169a9d38d115f6f57c447d7a8049854fb24ec4c1f9bb066a3347ffab102bff612f5b9d403c20ef1841b6c1f2eb9d26545de32a58b38146ca6141f4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011d0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020b4df5bf239d23884713d5877a9ef640386a7b43ad7817cdd9dc180adea6485788ae53fcde68c9a2347ac3894d3bbc5cc15b7e2ef18e76cb37ad42bd3f00d189b1f4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011e0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f6889c4101938f696283fefb06c96cdf235b05d5976dcb59ccc26af860e96b30a774ee90d00c6a8506f7a7f38dce5a8777c9ac41f8365201858a68e9a876d66b1f4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011f0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020a9dcf583a18b486b875b108f14d081b45ea6b9ddaa54cbd2f21f0ee82d92ac5589714f96039cb795cef9df4917d48b03ad145b231c95c6fc4939a12dd2868168204ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401200101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020ba97688d7455e2c556fa478f339bceeb76b097ac2e8ded07e4ef4330273e033494fa66d57bbb8a1001410616f29d05f179d59f0ba4118f3ddc025d536860cc6a204ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401210101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020ec9f8fb2b66236622857fae2150837f9790bb5a6abce1e85fe6ae499ccb5453c847b24cc926ce8e9ed7facddf7ea9487f82d92c635185c13d66abb4441f3ccc9204ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401220101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000203d50f8fc6255febb603ea08634f9117312cfe277970c5eb2c22149f4c9cac675c11ed065a3af4e7e1c1b76eb35681b42431c00dedd420d196df6ae577dde2bda204ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401230101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020252f60ad75d08af8e006c335c42b1875a2e3ff895843a5c4d26ed88cae22e9228b366d6076b9b5be9189a9cef8484e54e66e6bdd0ac37adc263598bde97dff8b204ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401240101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000206fe002488f4de5767a266b87c204220b29de5e25e02bd559a8c060d513aa9e0bf865c1fab41a50c03a69978f7420cb4f7fe6700b8988038b6ac05ea5508fc0bd204ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401250101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020285d32f2de9cb3231f75760b3b0195371c6108fe341f792c7da34bc887a33b79b6fc2d60babb6303fc70fe9df4309f5f47bf59fee3ad4cdc9a9eca387bf70050214ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401260101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002003d9c1ab4317cd4e1fa913de761a43271b928e92de4e5686f598e5fb6c8e2f41cc864e6748790c814ab57bd35b8d9482593a9d4935d015da42283fc540a4792a214ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401270101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000203b96e5589995ac3c8c552df8eec1a2f6c419e1d58a18590e10d322b6b00b537e18f79eb19a696219f131ba9b6d2ff850b2af84b90f0499a11692cbaeb4d61d46214ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401280101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000206b78feaf1b750203822ad6cffcb8d04bfda0ef3c945e02ad51f3f90b445c5315bfa67454d79eafde487f1046ada4e3c0efe8a7b27c1819a3cc355a0a394c65d7214ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401290101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020e9253bd9e836d2efee058807e5f681998939a28b6fb6a9542318e0203aa0fc0f90f9a019ef1f20c4a9bfb381399b5db42b25bd4ef4d672a54150a105e3b1fae8214ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012a0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020ec74830e88e253007aefa0c9ade52d21f1419665049db13bd706727d5175322b4dea01aa83330ab6686a7c07e5ff6360c4dd528576b8fa9a9abaf4ae60acb5bd214ae75affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012b0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020e418754d464648ae4511218eb793c9b148fbfd9e870a0a7fefb15c070c1c4a3de373d44009bec3a610e239c8f41da091a8bbbd5bf6405b4c7dc5ca8c3d254061224ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012c0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020d40f8aff73d57cd0324e1cfa5b36845111e38886f2cafdbd77e5bf5e549185166a087fc0f0e977683914fe17ef55a3631541de1f94843c24abc7564ed608c3e5224ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012d0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000207836dd6fc41b9d4e2889a71dda11f9cc0f430e73077f52983549e71adfe14e29a7a4382158fbf6ebaefec23545c3d8737109ab9c7abc50968c0f3e88a6960e99224ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012e0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020786ec8c12c610cf41bd38981588dd1f300a3f453c46a76fb108c3e3cb8ce0a2d2d4765f9305215624f0352055bd2f2e247741f4ecfaf441ab78bd58866effaaf224ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012f0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000208b359e70be95934bc64a8cfff9f63fbcfe554c1226e0ba3b88a9be8fa214be7d07269ef67711d296e8bbb051b98ae016d76d4a1beddb845b0eaf40e25ffbaf1a224ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401300101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000205e14997706a476ed3e8ee6c927dfa26a7e337e183ce324b90cf7bfbf285cea000b56d8532e11a9be0d596cec5a88b032bb19fce43ad7e16f1ffb81a546c2c9c2224ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401310101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000201b8ee6329fbb84242e8d6569f3077631794e2430f83965290615f95d2c18f040ade4224ae355774e6b1c3477f4298a4558d48079b2d20024ddf64bda3841cd73234ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401320101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200a60ba3e9d150253d9bd638505d9c38ad8ee26f7fd03b12df79205e661b0636a58d7ed4a6ee3b9f714b2f1b5f66c9eba3eba2439f64b79027e30ebcfa415ba6e234ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401330101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002029bb51ad3517362a59271b03cc783cc7bae040ee1dcde77e7744ce52f44e4f448e3271f9d0eb599a4d7b5e3604df47c332b4d1ed74ff312cde3e972d6bac7019234ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401340101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000207a71453923552d4992f121fc4d014abb0eb1abf8cdfc9ec83f8ccbbb0dbbd3727d92a5c0358f85ace8aaa0a1b7df1b97ed2d4768082879f294d4dc8a9c1be5b2234ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401350101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200d2af89fba412c53f7adbf84ec195af36ee719761926b140c79a1997e9ae6f0fab5d75c76095f15e9609510123e658b6bfc3a2e98d1ffa32c97860957081a795234ae75affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401360101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002075702671dc659ed7a921dbbb3ccf778c6f6fa279a4d0834c28f46bf9ec8a6d1bf25ffd4225b6f913568a5294a935aeaecd27c1c2c020012a1305172489f65120234ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401370101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f27475bf1212042e7c0f9269cc041eaa28ad5bd95b547663c48cfa4ab39de2528e7d5275be41bb0386ed3102b2d233985e4ef2eab3d36af82cb8574866f254ec244ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401380101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002010e72560bd61c53c5dfbee0e8cf8811edf6a1b5eb38677451d3398893efa0710a03713f34d722b80f56129f576f9db0e69b0116ae4e47606427b5ba7482756ba244ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401390101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000204223c53d91c9285f559aaf0a1ba3a71b6df6c4fab863f8776dd777e44e2f9d63bf1320e908387a88c3da2355a5f347621d148a1ff6031a81e8a4747e030dd584244ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013a0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000206903bd92cc28168069930bb235cd69ddabc593f32b29f9a69cd0452f7caa285a91ca0e0e8fa212e519835505f320ad733e5be1e333729094c2fba66f3f6d001f244ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013b0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020b2d64463c6e9c95ef2726785247ae2762cd6c8acb79de98334f257811c8a38310becefe2888d9e7d19f873143d49925312988eae851e2cc5cac3b32313091e06244ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013c0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000203e9f90825ce97145f81ba5ccc19b936e23da619b243412c0eaf16fb109dac949e32263020202bff1ab3f5a6e8b57d2ece4e718c344102b62acc9098f8905e79d244ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013d0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000204742a39b529026ce78bf07bc924c74d1f1f48ac2efdf0e809dbbd65e4d9e4a1618a502c824a6caf7d2d19657bdd4c11cff39b2498875e99416d1a3a547b71620254ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013e0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002003a21bf83753d4f572bc73a9e638a9ea3f89cd6d1c20f2ce4f1ef5026b836943c011a63d6fcf3f7fe6501f1faa7823cd79dbe8c68025fd7ad969b0537e65efbc254ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013f0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000206aef8a16aab41a5f31c2b2dbbd1acc42eaab16c4fa92fa948ca657f44e11e5414600ae319f6aa06cb27d7ec9bee9b09de7be8973fea3d6a9e9a82bd0cc5eeb65254ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401400101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000203560d43e71c98c9e2f39b81e8c2413beade88d6398e232f9af16eff155374427bd16e6cc646774e588d1e0a6db863a1b94a4fba1411b585b4841800e4e3dfd35254ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401410101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002095eeed0c7e76e93139a3b49407d848982c2075bcf00da4d37c7e66e5fdc2d23355fef0e2f1003c0b9950b082f8811c96ac91b0bfa9da6514ed6de3c73036a077254ae75affff7f200700000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401420101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f107992d897f5bc1ec4da735bf927b84561fb850885b9f1a479ca2691b63b71be5f09df18d9c42f97deb0d4d1ac42d082ec3ccbda4c058f867b23746711bd17f254ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401430101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000201c72eb592b25b68525217db0420cb2c48f2c27599aa35eb85bdce9e96d0dee308675777e121f6b43639256426e01ac9a022fb8517185ad4611dac8cbc7fea7ef264ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401440101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002091aade569324ae26acf33b0a07aff7d1823c74c0456942d377fe3e2aea7384221073c59f49f2bd8a78f0a290e4f9f1bc906b969181bc64f052face388cf62d14264ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401450101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000205d40db7b4a7b131c74fee435cec84fc49f4dff0b2858fc8e336c8d70590b0e442e032c79bca748b6718b6c41a72f8fd255a8bc6120e03f7ffe377b2e859067e7264ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401460101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020d9a7775760c1e53b5068cdb856acd4060bc6735a8e425ee410b54ab02fe6d76270481ae294fd7666e8bfaffa234c3113490e58685cc667988d46c4076426da7f264ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401470101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002036602630f62ca86665cbb0ba90bd49768666c9e23edb99e5e27576e60405691dd28ad6840673dff51937062647d1bddf7f7fa57d121b6ab7533630b9ce2da7e4264ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401480101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020ed735b62f6b3e71453f64139e0ad11ba205790b798086c3cd712b57dae456f750683f6c35ed400f700f1fa1af83592ff4729c33acb7d5d4237783e7f4a7d6064264ae75affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401490101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020e7c2a6353440c98a43fb278a943cc0c7370ec0849da40347c7b7adfda59fee022fc90bd08402b68d8c88004ba183e9de037f20a55d422f549f5be1b980dc94f8274ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014a0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020503138229f381401e0710cb863a752d73665032ec33022229fcf21fff1c8b53f7673cd9462b89343e0471ac59850bfcc3bc06fd02e4ccb8438873beaffa80cf5274ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014b0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002019115b9ec6e443a5b4d0edcd65a9fa11df521841a8680fb33db79245cb562c71f7ebad496b5a05992674477495ecaecce01b1b6cc860ad7ad826a8208e068ab9274ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014c0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f54e20cc10d1cb6ad07244e129a4d98a3e0495f2c1c3d4f2d5939524f00c0727afb369c2dfb6ff8619d8d631542de8fb71a49d133c75a3105bf564ee44cc856e274ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014d0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000206f54725de15a8aaa09b861c45409875a9f039e5a37f54db6651db11b0b4636163baa7a488545426b7b00b0e2958d12dea9282ac5510668dae6ecb00d2dc64871274ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014e0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000205aee575afe69d3fd576d7cfdc6758e24a01731692f87aca521e671bece876713ffd2a951ce7c4fe3744097bea0ad60a86ba9658c2752336e51a263d5d6412c0c274ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014f0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020d513e1715167d322f35d7a64d4ec4a5aaeaccc7ca2a143a6f1958ef0434ded2e588fa6ada5ea88e7f41ea0938443a426f8c80e4c725e559e04216cc9991905f4284ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401500101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020c4e92ff8b4c89da355744b531c60bcc31d9933d9af36f0b409b75cad49bed97dc99bc7aa8638b9d6933559b355338db8d4b583c4ce21ca7c2a07348af5b175b0284ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401510101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000202aeab99289cd8532dc15d489b1e402868c95ca810ec951666fd00906e2e4bf008a2406f52e4bd68a00d712ec5c64603186550a7bb660715f2d13e9208df04ad8284ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401520101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200e3bf121f802eeb0bbdd92589815168eb1b784a9c49daa41080bf9afd36f4d499cd9a303220804346548bcc24bf218bfa7344941c581fa1aa706833d361aeddd284ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401530101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f123700fd50d3bfa796cce0e76fda19613104a823ecbab29738c9c48f34e427c122464b945cb943a51177b030a44395c60677f52c12d6781386eead9122baad4284ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401540101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000208c94701a3955d5e655508dddca233d8f40724f8de654838e91cfa0593a01e45f0c657409208b346c2aae98a4e365e3bb530ddbcfcf838801bb55726fed1d9c3b284ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401550101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000207678709c3903c6fe105f94740e651d8adb23e3e49b736b9ae80676d3fb6d2f73941d97f782b967bc577d7853abba80c1ac3c3ff565aba5ef87a66c51d84af252294ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401560101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020ebe42766946e013b3214e7258a1f8eb4d3cccb9b556510dc03c983cd4796be3c1fb8c38be187d40ebc2953b8bce771c82b0f46e42ff1238aa30dc847fb58f978294ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401570101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000203969924b49a33a4f3f9da24cf020461e45a5fc49634a346b5dc91ccd4e39354130d9ee0d70d355341406eaf2b5ba2bd76f6068fadf3beceed3c8ab564ec3288f294ae75affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401580101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020c1c18725cbc93b243db1139e73f7aa1b1df69d9d30732c6659dcf9c5d6ee2d369ab8f9baa2c72409b406048a498ec2fabe3bfd6492a0f41071323d7bcd5ff069294ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401590101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002020909e00f8a317ad2a53e11f6256b79249d166026ad13c9dacb38a440ca8746d83e88d16b59834d3b9f8b42b26b6ab91412fdd491b5490865d150a894cb49765294ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015a0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020c881266ee25a85049d79f50055b1ad5d3e1bcbff2af37f213996ded87a72e60895731255db99b685410571f4dd53386da5c03de3d6dace8d4b79381cc8dcc88f294ae75affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015b0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000201eff21114e00217730380facba3cdcea9f789256df8f3fe0622838bebf6263445c829b55d73fe65c3381c2453a35da9b97cc022de888ce04a990c2c73e00b8a62a4ae75affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015c0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000204126721c7cb490889a5af39e6398da658c36898853c64a78cedd7be901d83935a8bd457d813620d2b0ac8c82cc819865f480aeafcfbc23e6d55b95f53b556ca12a4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015d0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f3ffa7cafdbf10742b6a61baf4636f2a6858d35427ea3cc40b39e812ddd25f07710891903220d173a1a2eec5f51f24bb2ae424b833207a180cc3731e684cc0b32a4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015e0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020e68d30569ab0b885d9cddd354c4df5f31639ef8e5c55f3bcbf1d792eb64e435dc72225741cab6462c2b11b96f9f3faee96ad59ce384d332ee8c73cf15d1f1ab42a4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015f0101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f4e22259ba48f4740d85a54eb31edb375192eb25490f3ce5bc57b149b901152e4dbfa9fd43470407699222bc08fb7483491c4c54a04423e97399a8b76f67e3122a4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401600101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000202d8013bd03c403558c143c645e41e6403ebb0d72303eadf6c356463fd8f5595fda84904a907211d75e35025c9e10b707668ebf69a6fb5c47dac9ed1f5ce694a52a4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401610101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000201986059a907ff7a353686d9cb9ffb2a3993fd12e657058babf09b62a2b39ab65c114224539562760a8ce1705690f94cb596fb395452c7c381cba69d14e3cec482b4ae75affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401620101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020e28166677d196d978b3152281379c2e109abc0ba63b4a3ba0e6fe7a21cabca735fd85acf72e95df2f778ef32edbe47eb6eec2f9d54e6a84780f441120de0f4e02b4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401630101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020d3f4e468b34da651b243ad4d4ad334acb33ef8a1a87e0651bcc4d7235b08c622cbc74d1c172bdc283c8d147a914424e3bdb8845800188b7bcdaab8ea65ec81762b4ae75affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401640101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020978041fea8ceaa160c01fba5831eea3bb435d2d399a79ae3ad155febaea3d34941c5f8706cbf252072e5d87ccc6f70754e9c90f0e9039d0952327a851d67eef92b4ae75affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401650101ffffffff0200f2052a0100000023210208cbbeeab67e08ae20bdc177091139f780f44fee7979cc0089c4fd01d8e82114ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000202f62805ea362f8600f33ea52284ea1c194d7854fccea35c721644c02097cf63238f26ff58275de5388a23bddffaaf666f540ba66e92e55c86781e6cd614c14872b4ae75affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401660101ffffffff020c09062a01000000232103c60b0c1e0f9fddcd39a273a3ac813a0a17102cd7bf7bb3638d272e2160188434ac0000000000000000266a24aa21a9ed7bf6240f303ec53742510d71f4bf2151d22810429dbcfeab88d04ded9917d0c9012000000000000000000000000000000000000000000000000000000000000000000000000002000000010fb6f5d1e88fce42a57ca56c7649caf28754a0ec6e5dffa2418b085ccd16e98e000000004847304402200d97fcbf79f151ccaa06878ed6eef4a00c0904813d21f5c6186d79333691896102205b379bb8701527ccd242f952edd7f77f1256efa7aa7e4d6b44bc9a542273c29b01feffffff0500c2eb0b00000000220020fec1dcdd8a7e07d67cb10ba045c5c4ff5eb676489e1e27e2f795273001a2fa25e8030000000000001976a914f9fcc0ab91e24b7341ee56037eb43ba7bc629c0e88ac0084d7170000000017a91467cda83495d9a033a3bad76c0b24b0b61bfebcb087005ed0b20000000017a914dfad8fd897c020966ea8911b2b981cdf75d1a9c5870c337253000000001600148d4d674ef7d2c2925453030612fe2f8578bce70365000000", + "000000206b2a31aeac46c6de5f3bc10214b03dacba457dfd333de0f71b5d36caa7f86144e615a2f16c978daf4b3d928cdba1048013991c61c66228cce7319e07784a305d2b4ae75affff7f200000000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401670101ffffffff023420082a010000002321039e1ceeac10a81abf85d1973d20edc4118c257eb0749542f6106119b84bba6f9bac0000000000000000266a24aa21a9ed89a2311e01557e8ebf6d493e9b95de8e114870f93ee72f5d58f1ed6b853cd947012000000000000000000000000000000000000000000000000000000000000000000000000002000000000106255bbda3fde73f0de8a1320c45e3cc297e1d64930f9f85683315711c2543ea02000000004847304402207dda7c1d326979a1f68d75072c42165c939f1dab035808b18eeb6af7e298e55d02203054c59fb398a8c50f27c85b31593c36209c5b9daf4568cff3717934051c204301fdffffffead1d2b4d04d66ce138761e49997325edead6a8cb156bde4fd8cfa0be3aba4bc0000000000fdffffffead1d2b4d04d66ce138761e49997325edead6a8cb156bde4fd8cfa0be3aba4bc010000006a473044022066a5e8ed0a4e3be8c295ab4c8cbbb9c36a4c086561739f840d67de8e13a743a902203c7225213132937e1ab2dfe26181a5dc7266a4e75c2f961138d1ee57e907b9ce012102d0af2f5c91572b0556cb6eb72ee0eb461a79e727d782f5d114dec8147af76e1efdffffffead1d2b4d04d66ce138761e49997325edead6a8cb156bde4fd8cfa0be3aba4bc0200000017160014f09806b8af8e35ca2e872819ee22d47b6c765118fdffffffead1d2b4d04d66ce138761e49997325edead6a8cb156bde4fd8cfa0be3aba4bc0300000023220020fec1dcdd8a7e07d67cb10ba045c5c4ff5eb676489e1e27e2f795273001a2fa25fdffffffead1d2b4d04d66ce138761e49997325edead6a8cb156bde4fd8cfa0be3aba4bc0400000000fdffffff0154460a5402000000160014f5e16ebae36cd1bb0ced10edb9f9e8de5cac0098000400473044022062f1b85eafc94ccb3a51e5ba114f1e67b7355284aff3e9a56460d886660beb37022044c5c09ffe328032a9c7a90a1030f92268e8c26bdc91f5db7578de4aaef622350147304402201d35c60783802305bc44ddf976273c29d4d08502001c15a3ed65a7e0f1652f0c02205839fc257f432ae9ddd6109cbf6d2d6bfc4765faf776070371b78dcd1a3c664601475221032afc9dd320f09115a3a7a8fa8ce494fb12f6c6be5cbb6bb24b2887dc6307b55221024f5f8c7d42c23bd309a433bf835c5722dbb77280fbcd5a7ccf8804105bb24e9f52ae0002473044022041223bc56049db6b38b6eec63d5094cf90d7a5c98f12629c65d32c27db42f8f602200b81329e92bcb80e7ab711892f1b1aaa0b1ebb65dcbd595641e8998a2d2c5c91012102e2036467928fca908223339df70811bdd92c064a5204abd0ee1adedd6fdead3c040047304402201571105b9ee67bdb5789421669fcdd4217af2fb501d068135b59d11871758af9022017b62c8a99d9cbb41cc3713f3920846c999932b1d2b9e6788bad99eb286ac74d014730440220521016621a3232da94ca4cda7eba38a8ff1610ed979366894c06ccb4dc9fb8ec0220357ca7627ed3c84d4656f6e4e8fa7d3ed6e5142cf62c0747820674bcbadbd47501475221032afc9dd320f09115a3a7a8fa8ce494fb12f6c6be5cbb6bb24b2887dc6307b55221024f5f8c7d42c23bd309a433bf835c5722dbb77280fbcd5a7ccf8804105bb24e9f52ae024730440220705006f3c1a091ba1acfa512053ac577e4ab80b26831234e7459890ed677af7502206e8ac1e1672834101c10b8d34ad0dbe4e26676d84a3fe9150cecde8d55ca639501210237b27745b8e8419664a5aa4fb7705530199ed0c053ab6266a0152353a558ccf000000000020000000001016ddb4d14c0a52df0fc1724b63a24040ad2f3809f9c490a606973e1d924b5b1510000000000feffffff025465144e0200000017a9149f1ed904c0d7f5963bad6aea979a84456581d110876c39f5050000000017a91467cda83495d9a033a3bad76c0b24b0b61bfebcb0870247304402207092949a14b9b44336a8cc7e99a9d147e95fe56fea3ac0c5ba2762b4e571af6c02207ed8d4003fd110340d6f0d19894cb021f0269ed60be91c8d3ccc5a16c30d29c501210355d30c920c0fc6679974cf8e21e1ada2affde46efc1e904ccb0302431e5c243766000000" ], "mocktime": 1525107225, "stats": [ @@ -111,7 +111,31 @@ "avgfee": 0, "avgfeerate": 0, "avgtxsize": 0, - "blockhash": "1d7fe80f19d28b8e712af0399ac84006db753441f3033111b3a8d610afab364f", + "blockhash": "32f67c09024c6421c735eacc4f85d794c1a14e2852ea330f60f862a35e80622f", + "dust_bins": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], "feerate_percentiles": [ 0, 0, @@ -130,6 +154,25 @@ "minfee": 0, "minfeerate": 0, "mintxsize": 0, + "mto_consolidations": 0, + "mto_output_count": 0, + "mto_total_value": 0, + "native_p2wpkh_outputs_spent": 0, + "native_p2wsh_outputs_spent": 0, + "nested_p2wpkh_outputs_spent": 0, + "nested_p2wsh_outputs_spent": 0, + "new_p2wpkh_outputs": 0, + "new_p2wsh_outputs": 0, + "output_count_bins": [ + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + "outputs_consolidated": 0, "outs": 2, "subsidy": 5000000000, "swtotal_size": 0, @@ -141,15 +184,53 @@ "total_weight": 0, "totalfee": 0, "txs": 1, + "txs_batching": 0, + "txs_consolidating": 0, + "txs_creating_p2wpkh_outputs": 0, + "txs_creating_p2wsh_outputs": 0, + "txs_signalling_opt_in_rbf": 0, + "txs_spending_native_p2wpkh_outputs": 0, + "txs_spending_native_p2wsh_outputs": 0, + "txs_spending_nested_p2wpkh_outputs": 0, + "txs_spending_nested_p2wsh_outputs": 0, "utxo_increase": 2, - "utxo_size_inc": 173 + "utxo_size_inc": 173, + "value_of_native_p2wpkh_outputs_created": 0, + "value_of_native_p2wpkh_outputs_spent": 0, + "value_of_native_p2wsh_outputs_created": 0, + "value_of_native_p2wsh_outputs_spent": 0, + "value_of_nested_p2wpkh_outputs_spent": 0, + "value_of_nested_p2wsh_outputs_spent": 0 }, { - "avgfee": 3760, + "avgfee": 5900, "avgfeerate": 20, - "avgtxsize": 187, - "blockhash": "4e21a43675d7a41cb6b944e068c5bcd0a677baf658d9ebe021ae2d2f99397ccc", - "height": 102, + "avgtxsize": 295, + "blockhash": "4461f8a7ca365d1bf7e03d33fd7d45baac3db01402c13b5fdec646acae312a6b", + "dust_bins": [ + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], "feerate_percentiles": [ 20, 20, @@ -157,66 +238,159 @@ 20, 20 ], + "height": 102, "ins": 1, - "maxfee": 3760, + "maxfee": 5900, "maxfeerate": 20, - "maxtxsize": 187, - "medianfee": 3760, + "maxtxsize": 295, + "medianfee": 5900, "mediantime": 1525107242, - "mediantxsize": 187, - "minfee": 3760, + "mediantxsize": 295, + "minfee": 5900, "minfeerate": 20, - "mintxsize": 187, - "outs": 4, + "mintxsize": 295, + "mto_consolidations": 0, + "mto_output_count": 0, + "mto_total_value": 0, + "native_p2wpkh_outputs_spent": 0, + "native_p2wsh_outputs_spent": 0, + "nested_p2wpkh_outputs_spent": 0, + "nested_p2wsh_outputs_spent": 0, + "new_p2wpkh_outputs": 1, + "new_p2wsh_outputs": 1, + "output_count_bins": [ + 0, + 1, + 0, + 1, + 0, + 0, + 0 + ], + "outputs_consolidated": 0, + "outs": 7, "subsidy": 5000000000, "swtotal_size": 0, "swtotal_weight": 0, "swtxs": 0, "time": 1525107243, - "total_out": 4999996240, - "total_size": 187, - "total_weight": 748, - "totalfee": 3760, + "total_out": 4999994100, + "total_size": 295, + "total_weight": 1180, + "totalfee": 5900, "txs": 2, - "utxo_increase": 3, - "utxo_size_inc": 234 + "txs_batching": 1, + "txs_consolidating": 0, + "txs_creating_p2wpkh_outputs": 1, + "txs_creating_p2wsh_outputs": 1, + "txs_signalling_opt_in_rbf": 0, + "txs_spending_native_p2wpkh_outputs": 0, + "txs_spending_native_p2wsh_outputs": 0, + "txs_spending_nested_p2wpkh_outputs": 0, + "txs_spending_nested_p2wsh_outputs": 0, + "utxo_increase": 6, + "utxo_size_inc": 465, + "value_of_native_p2wpkh_outputs_created": 1399993100, + "value_of_native_p2wpkh_outputs_spent": 0, + "value_of_native_p2wsh_outputs_created": 200000000, + "value_of_native_p2wsh_outputs_spent": 0, + "value_of_nested_p2wpkh_outputs_spent": 0, + "value_of_nested_p2wsh_outputs_spent": 0 }, { - "avgfee": 18960, - "avgfeerate": 109, - "avgtxsize": 228, - "blockhash": "22d9b8b9c2a37c81515f3fc84f7241f6c07dbcea85ef16b00bcc33ae400a030f", + "avgfee": 71450, + "avgfeerate": 172, + "avgtxsize": 700, + "blockhash": "453a688e208c74d940a63190fc580166da3cc8ebe880ea94ebf3ffda6a5e9980", + "dust_bins": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], "feerate_percentiles": [ - 20, - 20, - 20, - 300, - 300 + 145, + 145, + 145, + 145, + 301 ], "height": 103, - "ins": 3, - "maxfee": 49800, - "maxfeerate": 300, - "maxtxsize": 248, - "medianfee": 3760, + "ins": 7, + "maxfee": 100000, + "maxfeerate": 301, + "maxtxsize": 1177, + "medianfee": 71450, "mediantime": 1525107243, - "mediantxsize": 248, - "minfee": 3320, - "minfeerate": 20, - "mintxsize": 188, - "outs": 8, + "mediantxsize": 700, + "minfee": 42900, + "minfeerate": 145, + "mintxsize": 224, + "mto_consolidations": 1, + "mto_output_count": 6, + "mto_total_value": 9999894100, + "native_p2wpkh_outputs_spent": 2, + "native_p2wsh_outputs_spent": 1, + "nested_p2wpkh_outputs_spent": 1, + "nested_p2wsh_outputs_spent": 1, + "new_p2wpkh_outputs": 1, + "new_p2wsh_outputs": 0, + "output_count_bins": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "outputs_consolidated": 6, + "outs": 5, "subsidy": 5000000000, - "swtotal_size": 496, - "swtotal_weight": 1324, + "swtotal_size": 1401, + "swtotal_weight": 3315, "swtxs": 2, "time": 1525107243, - "total_out": 9999939360, - "total_size": 684, - "total_weight": 2076, - "totalfee": 56880, - "txs": 4, - "utxo_increase": 5, - "utxo_size_inc": 380 + "total_out": 19999745300, + "total_size": 1401, + "total_weight": 3315, + "totalfee": 142900, + "txs": 3, + "txs_batching": 0, + "txs_consolidating": 1, + "txs_creating_p2wpkh_outputs": 1, + "txs_creating_p2wsh_outputs": 0, + "txs_signalling_opt_in_rbf": 1, + "txs_spending_native_p2wpkh_outputs": 2, + "txs_spending_native_p2wsh_outputs": 1, + "txs_spending_nested_p2wpkh_outputs": 1, + "txs_spending_nested_p2wsh_outputs": 1, + "utxo_increase": -2, + "utxo_size_inc": -143, + "value_of_native_p2wpkh_outputs_created": 9999894100, + "value_of_native_p2wpkh_outputs_spent": 11399887200, + "value_of_native_p2wsh_outputs_created": 0, + "value_of_native_p2wsh_outputs_spent": 200000000, + "value_of_nested_p2wpkh_outputs_spent": 400000000, + "value_of_nested_p2wsh_outputs_spent": 3000000000 } ] } \ No newline at end of file diff --git a/test/functional/rpc_getblockstats.py b/test/functional/rpc_getblockstats.py index b24bed6adf76..c1e39cdb1712 100755 --- a/test/functional/rpc_getblockstats.py +++ b/test/functional/rpc_getblockstats.py @@ -11,9 +11,9 @@ assert_equal, assert_raises_rpc_error, ) +from decimal import Decimal import json import os -import time TESTSDIR = os.path.dirname(os.path.realpath(__file__)) @@ -21,18 +21,6 @@ class GetblockstatsTest(BitcoinTestFramework): start_height = 101 max_stat_pos = 2 - STATS_NEED_TXINDEX = [ - 'avgfee', - 'avgfeerate', - 'maxfee', - 'maxfeerate', - 'medianfee', - 'feerate_percentiles', - 'minfee', - 'minfeerate', - 'totalfee', - 'utxo_size_inc', - ] def add_options(self, parser): parser.add_argument('--gen-test-data', dest='gen_test_data', @@ -44,24 +32,45 @@ def add_options(self, parser): help='Test data file') def set_test_params(self): - self.num_nodes = 2 - self.extra_args = [['-txindex'], ['-paytxfee=0.003']] + self.num_nodes = 1 self.setup_clean_chain = True + self.extra_args = [['-txindex']] def get_stats(self): - return [self.nodes[0].getblockstats(hash_or_height=self.start_height + i) for i in range(self.max_stat_pos+1)] + return [self.nodes[0].getblockstats(hash_or_height=self.start_height + i) for i in range(self.max_stat_pos + 1)] def generate_test_data(self, filename): - mocktime = time.time() + mocktime = 1525107225 + self.nodes[0].setmocktime(mocktime) self.nodes[0].generate(101) - self.nodes[0].sendtoaddress(address=self.nodes[1].getnewaddress(), amount=10, subtractfeefromamount=True) + pk1 = self.nodes[0].getaddressinfo(self.nodes[0].getnewaddress())['pubkey'] + pk2 = self.nodes[0].getaddressinfo(self.nodes[0].getnewaddress())['pubkey'] + + nested_p2wpkh_address = self.nodes[0].getnewaddress('', 'p2sh-segwit') + native_p2wpkh_address = self.nodes[0].getnewaddress('', 'bech32') + native_p2wsh_address = self.nodes[0].addmultisigaddress(2, [pk1, pk2], '', 'bech32')['address'] + nested_p2wsh_address = self.nodes[0].addmultisigaddress(2, [pk1, pk2], '', 'p2sh-segwit')['address'] + + # testing batching, nested p2wpkh, dust, native p2wsh, and nested p2wsh metrics + outputs = {nested_p2wpkh_address: 4, + self.nodes[0].getnewaddress('', 'legacy'): 0.00001, + native_p2wsh_address: 2, + nested_p2wsh_address: 30} + self.nodes[0].sendmany('', outputs) + self.nodes[0].generate(1) self.sync_all() - self.nodes[0].sendtoaddress(address=self.nodes[0].getnewaddress(), amount=10, subtractfeefromamount=True) - self.nodes[0].sendtoaddress(address=self.nodes[0].getnewaddress(), amount=10, subtractfeefromamount=False) - self.nodes[1].sendtoaddress(address=self.nodes[0].getnewaddress(), amount=1, subtractfeefromamount=True) + # testing RBF, consolidation, native_p2wpkh and spending metrics + inputs = self.nodes[0].listunspent() + outputs = {native_p2wpkh_address: sum(i['amount'] for i in inputs) - Decimal('0.001')} + rawtx = self.nodes[0].createrawtransaction(inputs=inputs, outputs=outputs, locktime=0, replaceable=True) + signed_tx = self.nodes[0].signrawtransactionwithwallet(hexstring=rawtx) + self.nodes[0].sendrawtransaction(hexstring=signed_tx['hex']) + + self.nodes[0].settxfee(amount=0.003) + self.nodes[0].sendtoaddress(address=nested_p2wpkh_address, amount=1, subtractfeefromamount=True) self.sync_all() self.nodes[0].generate(1) @@ -93,11 +102,12 @@ def load_test_data(self, filename): # Set the timestamps from the file so that the nodes can get out of Initial Block Download self.nodes[0].setmocktime(mocktime) - self.nodes[1].setmocktime(mocktime) + self.sync_all() for b in blocks: self.nodes[0].submitblock(b) + def run_test(self): test_data = os.path.join(TESTSDIR, self.options.test_data) if self.options.gen_test_data: @@ -107,9 +117,6 @@ def run_test(self): self.sync_all() stats = self.get_stats() - expected_stats_noindex = [] - for stat_row in stats: - expected_stats_noindex.append({k: v for k, v in stat_row.items() if k not in self.STATS_NEED_TXINDEX}) # Make sure all valid statistics are included but nothing else is expected_keys = self.expected_stats[0].keys() @@ -127,10 +134,6 @@ def run_test(self): stats_by_hash = self.nodes[0].getblockstats(hash_or_height=blockhash) assert_equal(stats_by_hash, self.expected_stats[i]) - # Check with the node that has no txindex - stats_no_txindex = self.nodes[1].getblockstats(hash_or_height=blockhash, stats=list(expected_stats_noindex[i].keys())) - assert_equal(stats_no_txindex, expected_stats_noindex[i]) - # Make sure each stat can be queried on its own for stat in expected_keys: for i in range(self.max_stat_pos+1): @@ -168,10 +171,6 @@ def run_test(self): # Make sure we aren't always returning inv_sel_stat as the culprit stat assert_raises_rpc_error(-8, 'Invalid selected statistic aaa%s' % inv_sel_stat, self.nodes[0].getblockstats, hash_or_height=1, stats=['minfee' , 'aaa%s' % inv_sel_stat]) - - assert_raises_rpc_error(-8, 'One or more of the selected stats requires -txindex enabled', - self.nodes[1].getblockstats, hash_or_height=self.start_height + self.max_stat_pos) - # Mainchain's genesis block shouldn't be found on regtest assert_raises_rpc_error(-5, 'Block not found', self.nodes[0].getblockstats, hash_or_height='000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f')