From e108566c004173caa70744f9a0475c16c77be548 Mon Sep 17 00:00:00 2001 From: Muharem Ismailov Date: Mon, 5 Jun 2023 07:50:33 +0200 Subject: [PATCH 01/56] descend first (#7327) --- xcm/xcm-builder/src/pay.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xcm/xcm-builder/src/pay.rs b/xcm/xcm-builder/src/pay.rs index 504ec837751e..77c082e2f25b 100644 --- a/xcm/xcm-builder/src/pay.rs +++ b/xcm/xcm-builder/src/pay.rs @@ -106,13 +106,13 @@ impl< let query_id = Querier::new_query(asset_location, Timeout::get(), Interior::get()); let message = Xcm(vec![ + DescendOrigin(Interior::get()), UnpaidExecution { weight_limit: Unlimited, check_origin: None }, SetAppendix(Xcm(vec![ReportError(QueryResponseInfo { destination, query_id, max_weight: Weight::zero(), })])), - DescendOrigin(Interior::get()), TransferAsset { beneficiary, assets: vec![MultiAsset { id: asset_id, fun: Fungibility::Fungible(amount) }] From 99b093bcd034cf3b3733e10437a3f70378db1804 Mon Sep 17 00:00:00 2001 From: Gavin Wood Date: Mon, 5 Jun 2023 12:00:53 +0100 Subject: [PATCH 02/56] XCM: Remove & replace XCM `Convert` trait (#7329) * Introduce an extensible location-to-hash-account * Convert becomes RevFallRefConvert * Use ConvertLocation trait * Remove Convert usage * Builds * Fix warnings * Remove unused types * Bump lock * No need for aliasing * Remove unused * Deprecate legacy conversion * Fixes * Fixes * Update Cargo.toml Co-authored-by: Muharem Ismailov * Update xcm/xcm-builder/src/location_conversion.rs Co-authored-by: Liam Aharon * Update xcm/xcm-builder/src/location_conversion.rs Co-authored-by: Liam Aharon * Update xcm/xcm-builder/src/location_conversion.rs Co-authored-by: Liam Aharon * Update xcm/xcm-builder/src/location_conversion.rs Co-authored-by: Liam Aharon * Update xcm/xcm-builder/src/location_conversion.rs Co-authored-by: Liam Aharon * Update xcm/xcm-builder/src/location_conversion.rs Co-authored-by: Liam Aharon --------- Co-authored-by: Muharem Ismailov Co-authored-by: Liam Aharon --- Cargo.lock | 367 ++++++++------- .../src/fungible/benchmarking.rs | 10 +- xcm/pallet-xcm-benchmarks/src/lib.rs | 6 +- xcm/pallet-xcm-benchmarks/src/mock.rs | 12 +- xcm/pallet-xcm/src/lib.rs | 16 +- xcm/xcm-builder/src/asset_conversion.rs | 106 +++-- xcm/xcm-builder/src/currency_adapter.rs | 16 +- xcm/xcm-builder/src/fungibles_adapter.rs | 26 +- xcm/xcm-builder/src/lib.rs | 8 +- xcm/xcm-builder/src/location_conversion.rs | 427 ++++++++++-------- xcm/xcm-builder/src/nonfungibles_adapter.rs | 24 +- xcm/xcm-builder/src/origin_conversion.rs | 28 +- xcm/xcm-executor/src/traits/conversion.rs | 118 +---- xcm/xcm-executor/src/traits/mod.rs | 17 +- xcm/xcm-simulator/example/src/lib.rs | 12 +- xcm/xcm-simulator/example/src/parachain.rs | 4 +- 16 files changed, 588 insertions(+), 609 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 640ca1ca3222..162bd76a76c0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -523,7 +523,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "hash-db", "log", @@ -2531,7 +2531,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", ] @@ -2554,7 +2554,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-support-procedural", @@ -2579,7 +2579,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "Inflector", "array-bytes", @@ -2626,7 +2626,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2637,7 +2637,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2654,7 +2654,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-system", @@ -2683,7 +2683,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-recursion", "futures", @@ -2704,7 +2704,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "bitflags", "environmental", @@ -2739,7 +2739,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "Inflector", "cfg-expr", @@ -2756,7 +2756,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2768,7 +2768,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "proc-macro2", "quote", @@ -2778,7 +2778,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-executive", @@ -2805,7 +2805,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-system", @@ -2817,7 +2817,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "cfg-if", "frame-support", @@ -2836,7 +2836,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -2851,7 +2851,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "sp-api", @@ -2860,7 +2860,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "parity-scale-codec", @@ -3042,7 +3042,7 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "chrono", "frame-election-provider-support", @@ -4988,7 +4988,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "futures", "log", @@ -5007,7 +5007,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "anyhow", "jsonrpsee", @@ -5590,7 +5590,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5605,7 +5605,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-system", @@ -5621,7 +5621,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-system", @@ -5635,7 +5635,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5659,7 +5659,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5679,7 +5679,7 @@ dependencies = [ [[package]] name = "pallet-bags-list-remote-tests" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-election-provider-support", "frame-remote-externalities", @@ -5698,7 +5698,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5713,7 +5713,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-system", @@ -5732,7 +5732,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -5756,7 +5756,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5774,7 +5774,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5793,7 +5793,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5810,7 +5810,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5827,7 +5827,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5845,7 +5845,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5868,7 +5868,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5881,7 +5881,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5899,7 +5899,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "docify", "frame-benchmarking", @@ -5918,7 +5918,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5941,7 +5941,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5957,7 +5957,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5977,7 +5977,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -5994,7 +5994,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6011,7 +6011,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6030,7 +6030,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6047,7 +6047,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6063,7 +6063,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6079,7 +6079,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-system", @@ -6096,7 +6096,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6116,7 +6116,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6127,7 +6127,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-system", @@ -6144,7 +6144,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6168,7 +6168,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6185,7 +6185,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6200,7 +6200,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6218,7 +6218,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6233,7 +6233,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6252,7 +6252,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6269,7 +6269,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-system", @@ -6290,7 +6290,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6306,7 +6306,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-system", @@ -6320,7 +6320,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6343,7 +6343,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6354,7 +6354,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "log", "sp-arithmetic", @@ -6363,7 +6363,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "sp-api", @@ -6372,7 +6372,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6389,7 +6389,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6404,7 +6404,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6422,7 +6422,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6441,7 +6441,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-support", "frame-system", @@ -6457,7 +6457,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6473,7 +6473,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6485,7 +6485,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6502,7 +6502,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6517,7 +6517,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6533,7 +6533,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -6548,7 +6548,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-benchmarking", "frame-support", @@ -9675,7 +9675,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "log", "sp-core", @@ -9686,7 +9686,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "futures", @@ -9715,7 +9715,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "futures", "futures-timer", @@ -9738,7 +9738,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9753,7 +9753,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9772,7 +9772,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9783,7 +9783,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "chrono", @@ -9823,7 +9823,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "fnv", "futures", @@ -9850,7 +9850,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "hash-db", "kvdb", @@ -9876,7 +9876,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "futures", @@ -9901,7 +9901,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "fork-tree", @@ -9937,7 +9937,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "futures", "jsonrpsee", @@ -9959,7 +9959,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "async-channel", @@ -9995,7 +9995,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "futures", "jsonrpsee", @@ -10014,7 +10014,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10027,7 +10027,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "ahash 0.8.2", "array-bytes", @@ -10067,7 +10067,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "finality-grandpa", "futures", @@ -10087,7 +10087,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "futures", @@ -10110,7 +10110,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -10132,7 +10132,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -10144,7 +10144,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "anyhow", "cfg-if", @@ -10162,7 +10162,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "ansi_term", "futures", @@ -10178,7 +10178,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -10192,7 +10192,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "async-channel", @@ -10238,7 +10238,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-channel", "cid", @@ -10259,7 +10259,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "async-trait", @@ -10286,7 +10286,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "ahash 0.8.2", "futures", @@ -10304,7 +10304,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "async-channel", @@ -10326,7 +10326,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "async-channel", @@ -10360,7 +10360,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "futures", @@ -10378,7 +10378,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "bytes", @@ -10408,7 +10408,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10417,7 +10417,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "futures", "jsonrpsee", @@ -10448,7 +10448,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10467,7 +10467,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "http", "jsonrpsee", @@ -10482,7 +10482,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "futures", @@ -10508,7 +10508,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "directories", @@ -10574,7 +10574,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "log", "parity-scale-codec", @@ -10585,7 +10585,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "clap 4.2.5", "fs4", @@ -10601,7 +10601,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10620,7 +10620,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "futures", "libc", @@ -10639,7 +10639,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "chrono", "futures", @@ -10658,7 +10658,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "ansi_term", "atty", @@ -10689,7 +10689,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10700,14 +10700,13 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "futures", "futures-timer", "linked-hash-map", "log", - "num-traits", "parity-scale-codec", "parking_lot 0.12.1", "sc-client-api", @@ -10727,7 +10726,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "futures", @@ -10743,7 +10742,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-channel", "futures", @@ -11291,7 +11290,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "hash-db", "log", @@ -11311,7 +11310,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "Inflector", "blake2", @@ -11325,7 +11324,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "scale-info", @@ -11338,7 +11337,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "integer-sqrt", "num-traits", @@ -11352,7 +11351,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "scale-info", @@ -11365,7 +11364,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "sp-api", @@ -11377,7 +11376,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "futures", "log", @@ -11395,7 +11394,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "futures", @@ -11410,7 +11409,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "parity-scale-codec", @@ -11428,7 +11427,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "parity-scale-codec", @@ -11449,7 +11448,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11468,7 +11467,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "finality-grandpa", "log", @@ -11486,7 +11485,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "scale-info", @@ -11498,7 +11497,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "bitflags", @@ -11542,7 +11541,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "blake2b_simd", "byteorder", @@ -11556,7 +11555,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "proc-macro2", "quote", @@ -11567,7 +11566,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11576,7 +11575,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "proc-macro2", "quote", @@ -11586,7 +11585,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "environmental", "parity-scale-codec", @@ -11597,7 +11596,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11612,7 +11611,7 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "bytes", "ed25519", @@ -11638,7 +11637,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "lazy_static", "sp-core", @@ -11649,7 +11648,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "futures", "parity-scale-codec", @@ -11663,7 +11662,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11672,7 +11671,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11683,7 +11682,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11701,7 +11700,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "scale-info", @@ -11715,7 +11714,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "sp-api", "sp-core", @@ -11725,7 +11724,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "backtrace", "lazy_static", @@ -11735,7 +11734,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "rustc-hash", "serde", @@ -11745,7 +11744,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "either", "hash256-std-hasher", @@ -11767,7 +11766,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11785,7 +11784,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "Inflector", "proc-macro-crate", @@ -11797,7 +11796,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "scale-info", @@ -11811,7 +11810,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "scale-info", @@ -11824,7 +11823,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "hash-db", "log", @@ -11844,7 +11843,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "log", "parity-scale-codec", @@ -11862,12 +11861,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11880,7 +11879,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "futures-timer", @@ -11895,7 +11894,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "sp-std", @@ -11907,7 +11906,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "sp-api", "sp-runtime", @@ -11916,7 +11915,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "log", @@ -11932,7 +11931,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "ahash 0.8.2", "hash-db", @@ -11955,7 +11954,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11972,7 +11971,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11983,7 +11982,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11996,7 +11995,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "parity-scale-codec", "scale-info", @@ -12237,7 +12236,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "platforms", ] @@ -12245,7 +12244,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12264,7 +12263,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "hyper", "log", @@ -12276,7 +12275,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "jsonrpsee", @@ -12289,7 +12288,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "jsonrpsee", "log", @@ -12308,7 +12307,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "array-bytes", "async-trait", @@ -12334,7 +12333,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "futures", "substrate-test-utils-derive", @@ -12344,7 +12343,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12355,7 +12354,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "ansi_term", "build-helper", @@ -13200,7 +13199,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#2577379be50ec2738174d70740c6c3a8d8eb815b" +source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" dependencies = [ "async-trait", "clap 4.2.5", diff --git a/xcm/pallet-xcm-benchmarks/src/fungible/benchmarking.rs b/xcm/pallet-xcm-benchmarks/src/fungible/benchmarking.rs index 844b2f68795e..82d28a7f63c9 100644 --- a/xcm/pallet-xcm-benchmarks/src/fungible/benchmarking.rs +++ b/xcm/pallet-xcm-benchmarks/src/fungible/benchmarking.rs @@ -24,7 +24,7 @@ use frame_support::{ use sp_runtime::traits::{Bounded, Zero}; use sp_std::{prelude::*, vec}; use xcm::latest::prelude::*; -use xcm_executor::traits::{Convert, TransactAsset}; +use xcm_executor::traits::{ConvertLocation, TransactAsset}; benchmarks_instance_pallet! { where_clause { where @@ -75,7 +75,7 @@ benchmarks_instance_pallet! { // this xcm doesn't use holding let dest_location = T::valid_destination()?; - let dest_account = T::AccountIdConverter::convert(dest_location.clone()).unwrap(); + let dest_account = T::AccountIdConverter::convert_location(&dest_location).unwrap(); >::deposit_asset( &asset, @@ -101,7 +101,7 @@ benchmarks_instance_pallet! { transfer_reserve_asset { let (sender_account, sender_location) = account_and_location::(1); let dest_location = T::valid_destination()?; - let dest_account = T::AccountIdConverter::convert(dest_location.clone()).unwrap(); + let dest_account = T::AccountIdConverter::convert_location(&dest_location).unwrap(); let asset = T::get_multi_asset(); >::deposit_asset( @@ -171,7 +171,7 @@ benchmarks_instance_pallet! { // our dest must have no balance initially. let dest_location = T::valid_destination()?; - let dest_account = T::AccountIdConverter::convert(dest_location.clone()).unwrap(); + let dest_account = T::AccountIdConverter::convert_location(&dest_location).unwrap(); assert!(T::TransactAsset::balance(&dest_account).is_zero()); let mut executor = new_executor::(Default::default()); @@ -197,7 +197,7 @@ benchmarks_instance_pallet! { // our dest must have no balance initially. let dest_location = T::valid_destination()?; - let dest_account = T::AccountIdConverter::convert(dest_location.clone()).unwrap(); + let dest_account = T::AccountIdConverter::convert_location(&dest_location).unwrap(); assert!(T::TransactAsset::balance(&dest_account).is_zero()); let mut executor = new_executor::(Default::default()); diff --git a/xcm/pallet-xcm-benchmarks/src/lib.rs b/xcm/pallet-xcm-benchmarks/src/lib.rs index ba6541d373de..c6a963435953 100644 --- a/xcm/pallet-xcm-benchmarks/src/lib.rs +++ b/xcm/pallet-xcm-benchmarks/src/lib.rs @@ -22,7 +22,7 @@ use codec::Encode; use frame_benchmarking::{account, BenchmarkError}; use sp_std::prelude::*; use xcm::latest::prelude::*; -use xcm_executor::{traits::Convert, Config as XcmConfig}; +use xcm_executor::{traits::ConvertLocation, Config as XcmConfig}; pub mod fungible; pub mod generic; @@ -39,7 +39,7 @@ pub trait Config: frame_system::Config { type XcmConfig: XcmConfig; /// A converter between a multi-location to a sovereign account. - type AccountIdConverter: Convert; + type AccountIdConverter: ConvertLocation; /// Does any necessary setup to create a valid destination for XCM messages. /// Returns that destination's multi-location to be used in benchmarks. @@ -104,7 +104,7 @@ fn account_id_junction(index: u32) -> Junction { pub fn account_and_location(index: u32) -> (T::AccountId, MultiLocation) { let location: MultiLocation = account_id_junction::(index).into(); - let account = T::AccountIdConverter::convert(location.clone()).unwrap(); + let account = T::AccountIdConverter::convert_location(&location).unwrap(); (account, location) } diff --git a/xcm/pallet-xcm-benchmarks/src/mock.rs b/xcm/pallet-xcm-benchmarks/src/mock.rs index 5cb7dc8f4df5..e02c5bf08615 100644 --- a/xcm/pallet-xcm-benchmarks/src/mock.rs +++ b/xcm/pallet-xcm-benchmarks/src/mock.rs @@ -47,18 +47,14 @@ impl xcm_executor::traits::OnResponse for DevNull { } pub struct AccountIdConverter; -impl xcm_executor::traits::Convert for AccountIdConverter { - fn convert(ml: MultiLocation) -> Result { +impl xcm_executor::traits::ConvertLocation for AccountIdConverter { + fn convert_location(ml: &MultiLocation) -> Option { match ml { MultiLocation { parents: 0, interior: X1(Junction::AccountId32 { id, .. }) } => - Ok(::decode(&mut &*id.to_vec()).unwrap()), - _ => Err(ml), + Some(::decode(&mut &*id.to_vec()).unwrap()), + _ => None, } } - - fn reverse(acc: u64) -> Result { - Err(acc) - } } parameter_types! { diff --git a/xcm/pallet-xcm/src/lib.rs b/xcm/pallet-xcm/src/lib.rs index 61243c7d682b..c53c9119bbd2 100644 --- a/xcm/pallet-xcm/src/lib.rs +++ b/xcm/pallet-xcm/src/lib.rs @@ -40,7 +40,7 @@ use sp_runtime::{ }; use sp_std::{boxed::Box, marker::PhantomData, prelude::*, result::Result, vec}; use xcm::{latest::QueryResponseInfo, prelude::*}; -use xcm_executor::traits::{Convert, ConvertOrigin, Properties}; +use xcm_executor::traits::{ConvertOrigin, Properties}; use frame_support::{ dispatch::{Dispatchable, GetDispatchInfo}, @@ -52,8 +52,8 @@ use frame_system::pallet_prelude::*; pub use pallet::*; use xcm_executor::{ traits::{ - CheckSuspension, ClaimAssets, DropAssets, MatchesFungible, OnResponse, QueryHandler, - QueryResponseStatus, VersionChangeNotifier, WeightBounds, + CheckSuspension, ClaimAssets, ConvertLocation, DropAssets, MatchesFungible, OnResponse, + QueryHandler, QueryResponseStatus, VersionChangeNotifier, WeightBounds, }, Assets, }; @@ -247,7 +247,7 @@ pub mod pallet { type TrustedLockers: ContainsPair; /// How to get an `AccountId` value from a `MultiLocation`, useful for handling asset locks. - type SovereignAccountOf: Convert; + type SovereignAccountOf: ConvertLocation; /// The maximum number of local XCM locks that a single account may have. type MaxLockers: Get; @@ -1750,7 +1750,7 @@ impl xcm_executor::traits::AssetLock for Pallet { owner: MultiLocation, ) -> Result, xcm_executor::traits::LockError> { use xcm_executor::traits::LockError::*; - let sovereign_account = T::SovereignAccountOf::convert_ref(&owner).map_err(|_| BadOwner)?; + let sovereign_account = T::SovereignAccountOf::convert_location(&owner).ok_or(BadOwner)?; let amount = T::CurrencyMatcher::matches_fungible(&asset).ok_or(UnknownAsset)?; ensure!(T::Currency::free_balance(&sovereign_account) >= amount, AssetNotOwned); let locks = LockedFungibles::::get(&sovereign_account).unwrap_or_default(); @@ -1765,7 +1765,7 @@ impl xcm_executor::traits::AssetLock for Pallet { owner: MultiLocation, ) -> Result, xcm_executor::traits::LockError> { use xcm_executor::traits::LockError::*; - let sovereign_account = T::SovereignAccountOf::convert_ref(&owner).map_err(|_| BadOwner)?; + let sovereign_account = T::SovereignAccountOf::convert_location(&owner).ok_or(BadOwner)?; let amount = T::CurrencyMatcher::matches_fungible(&asset).ok_or(UnknownAsset)?; ensure!(T::Currency::free_balance(&sovereign_account) >= amount, AssetNotOwned); let locks = LockedFungibles::::get(&sovereign_account).unwrap_or_default(); @@ -1787,7 +1787,7 @@ impl xcm_executor::traits::AssetLock for Pallet { NonFungible(_) => return Err(Unimplemented), }; owner.remove_network_id(); - let account = T::SovereignAccountOf::convert_ref(&owner).map_err(|_| BadOwner)?; + let account = T::SovereignAccountOf::convert_location(&owner).ok_or(BadOwner)?; let locker = locker.into(); let owner = owner.into(); let id: VersionedAssetId = asset.id.into(); @@ -1815,7 +1815,7 @@ impl xcm_executor::traits::AssetLock for Pallet { NonFungible(_) => return Err(Unimplemented), }; owner.remove_network_id(); - let sovereign_account = T::SovereignAccountOf::convert_ref(&owner).map_err(|_| BadOwner)?; + let sovereign_account = T::SovereignAccountOf::convert_location(&owner).ok_or(BadOwner)?; let locker = locker.into(); let owner = owner.into(); let id: VersionedAssetId = asset.id.into(); diff --git a/xcm/xcm-builder/src/asset_conversion.rs b/xcm/xcm-builder/src/asset_conversion.rs index 5db425a75b8b..583231d792dd 100644 --- a/xcm/xcm-builder/src/asset_conversion.rs +++ b/xcm/xcm-builder/src/asset_conversion.rs @@ -17,9 +17,10 @@ //! Adapters to work with `frame_support::traits::tokens::fungibles` through XCM. use frame_support::traits::{Contains, Get}; -use sp_std::{borrow::Borrow, marker::PhantomData, prelude::*, result}; +use sp_runtime::traits::MaybeEquivalence; +use sp_std::{marker::PhantomData, prelude::*, result}; use xcm::latest::prelude::*; -use xcm_executor::traits::{Convert, Error as MatchError, MatchesFungibles, MatchesNonFungibles}; +use xcm_executor::traits::{Error as MatchError, MatchesFungibles, MatchesNonFungibles}; /// Converter struct implementing `AssetIdConversion` converting a numeric asset ID (must be `TryFrom/TryInto`) into /// a `GeneralIndex` junction, prefixed by some `MultiLocation` value. The `MultiLocation` value will typically be a @@ -27,12 +28,15 @@ use xcm_executor::traits::{Convert, Error as MatchError, MatchesFungibles, Match pub struct AsPrefixedGeneralIndex( PhantomData<(Prefix, AssetId, ConvertAssetId)>, ); -impl, AssetId: Clone, ConvertAssetId: Convert> - Convert for AsPrefixedGeneralIndex +impl< + Prefix: Get, + AssetId: Clone, + ConvertAssetId: MaybeEquivalence, + > MaybeEquivalence + for AsPrefixedGeneralIndex { - fn convert_ref(id: impl Borrow) -> result::Result { + fn convert(id: &MultiLocation) -> Option { let prefix = Prefix::get(); - let id = id.borrow(); if prefix.parent_count() != id.parent_count() || prefix .interior() @@ -40,18 +44,18 @@ impl, AssetId: Clone, ConvertAssetId: Convert ConvertAssetId::convert_ref(id), - _ => Err(()), + Some(Junction::GeneralIndex(id)) => ConvertAssetId::convert(id), + _ => None, } } - fn reverse_ref(what: impl Borrow) -> result::Result { + fn convert_back(what: &AssetId) -> Option { let mut location = Prefix::get(); - let id = ConvertAssetId::reverse_ref(what)?; - location.push_interior(Junction::GeneralIndex(id)).map_err(|_| ())?; - Ok(location) + let id = ConvertAssetId::convert_back(what)?; + location.push_interior(Junction::GeneralIndex(id)).ok()?; + Some(location) } } @@ -61,8 +65,8 @@ pub struct ConvertedConcreteId( impl< AssetId: Clone, Balance: Clone, - ConvertAssetId: Convert, - ConvertBalance: Convert, + ConvertAssetId: MaybeEquivalence, + ConvertBalance: MaybeEquivalence, > MatchesFungibles for ConvertedConcreteId { @@ -71,18 +75,17 @@ impl< (Fungible(ref amount), Concrete(ref id)) => (amount, id), _ => return Err(MatchError::AssetNotHandled), }; - let what = - ConvertAssetId::convert_ref(id).map_err(|_| MatchError::AssetIdConversionFailed)?; - let amount = ConvertBalance::convert_ref(amount) - .map_err(|_| MatchError::AmountToBalanceConversionFailed)?; + let what = ConvertAssetId::convert(id).ok_or(MatchError::AssetIdConversionFailed)?; + let amount = + ConvertBalance::convert(amount).ok_or(MatchError::AmountToBalanceConversionFailed)?; Ok((what, amount)) } } impl< ClassId: Clone, InstanceId: Clone, - ConvertClassId: Convert, - ConvertInstanceId: Convert, + ConvertClassId: MaybeEquivalence, + ConvertInstanceId: MaybeEquivalence, > MatchesNonFungibles for ConvertedConcreteId { @@ -91,10 +94,9 @@ impl< (NonFungible(ref instance), Concrete(ref class)) => (instance, class), _ => return Err(MatchError::AssetNotHandled), }; - let what = - ConvertClassId::convert_ref(class).map_err(|_| MatchError::AssetIdConversionFailed)?; - let instance = ConvertInstanceId::convert_ref(instance) - .map_err(|_| MatchError::InstanceConversionFailed)?; + let what = ConvertClassId::convert(class).ok_or(MatchError::AssetIdConversionFailed)?; + let instance = + ConvertInstanceId::convert(instance).ok_or(MatchError::InstanceConversionFailed)?; Ok((what, instance)) } } @@ -105,8 +107,8 @@ pub struct ConvertedAbstractId( impl< AssetId: Clone, Balance: Clone, - ConvertAssetId: Convert<[u8; 32], AssetId>, - ConvertBalance: Convert, + ConvertAssetId: MaybeEquivalence<[u8; 32], AssetId>, + ConvertBalance: MaybeEquivalence, > MatchesFungibles for ConvertedAbstractId { @@ -115,18 +117,17 @@ impl< (Fungible(ref amount), Abstract(ref id)) => (amount, id), _ => return Err(MatchError::AssetNotHandled), }; - let what = - ConvertAssetId::convert_ref(id).map_err(|_| MatchError::AssetIdConversionFailed)?; - let amount = ConvertBalance::convert_ref(amount) - .map_err(|_| MatchError::AmountToBalanceConversionFailed)?; + let what = ConvertAssetId::convert(id).ok_or(MatchError::AssetIdConversionFailed)?; + let amount = + ConvertBalance::convert(amount).ok_or(MatchError::AmountToBalanceConversionFailed)?; Ok((what, amount)) } } impl< ClassId: Clone, InstanceId: Clone, - ConvertClassId: Convert<[u8; 32], ClassId>, - ConvertInstanceId: Convert, + ConvertClassId: MaybeEquivalence<[u8; 32], ClassId>, + ConvertInstanceId: MaybeEquivalence, > MatchesNonFungibles for ConvertedAbstractId { @@ -135,10 +136,9 @@ impl< (NonFungible(ref instance), Abstract(ref class)) => (instance, class), _ => return Err(MatchError::AssetNotHandled), }; - let what = - ConvertClassId::convert_ref(class).map_err(|_| MatchError::AssetIdConversionFailed)?; - let instance = ConvertInstanceId::convert_ref(instance) - .map_err(|_| MatchError::InstanceConversionFailed)?; + let what = ConvertClassId::convert(class).ok_or(MatchError::AssetIdConversionFailed)?; + let instance = + ConvertInstanceId::convert(instance).ok_or(MatchError::InstanceConversionFailed)?; Ok((what, instance)) } } @@ -155,8 +155,8 @@ impl< AssetId: Clone, Balance: Clone, MatchAssetId: Contains, - ConvertAssetId: Convert, - ConvertBalance: Convert, + ConvertAssetId: MaybeEquivalence, + ConvertBalance: MaybeEquivalence, > MatchesFungibles for MatchedConvertedConcreteId { @@ -165,10 +165,9 @@ impl< (Fungible(ref amount), Concrete(ref id)) if MatchAssetId::contains(id) => (amount, id), _ => return Err(MatchError::AssetNotHandled), }; - let what = - ConvertAssetId::convert_ref(id).map_err(|_| MatchError::AssetIdConversionFailed)?; - let amount = ConvertBalance::convert_ref(amount) - .map_err(|_| MatchError::AmountToBalanceConversionFailed)?; + let what = ConvertAssetId::convert(id).ok_or(MatchError::AssetIdConversionFailed)?; + let amount = + ConvertBalance::convert(amount).ok_or(MatchError::AmountToBalanceConversionFailed)?; Ok((what, amount)) } } @@ -176,8 +175,8 @@ impl< ClassId: Clone, InstanceId: Clone, MatchClassId: Contains, - ConvertClassId: Convert, - ConvertInstanceId: Convert, + ConvertClassId: MaybeEquivalence, + ConvertInstanceId: MaybeEquivalence, > MatchesNonFungibles for MatchedConvertedConcreteId { @@ -187,10 +186,9 @@ impl< (instance, class), _ => return Err(MatchError::AssetNotHandled), }; - let what = - ConvertClassId::convert_ref(class).map_err(|_| MatchError::AssetIdConversionFailed)?; - let instance = ConvertInstanceId::convert_ref(instance) - .map_err(|_| MatchError::InstanceConversionFailed)?; + let what = ConvertClassId::convert(class).ok_or(MatchError::AssetIdConversionFailed)?; + let instance = + ConvertInstanceId::convert(instance).ok_or(MatchError::InstanceConversionFailed)?; Ok((what, instance)) } } @@ -286,13 +284,13 @@ mod tests { // ConvertedConcreteId cfg struct ClassInstanceIdConverter; - impl Convert for ClassInstanceIdConverter { - fn convert_ref(value: impl Borrow) -> Result { - value.borrow().clone().try_into().map_err(|_| ()) + impl MaybeEquivalence for ClassInstanceIdConverter { + fn convert(value: &AssetInstance) -> Option { + value.clone().try_into().ok() } - fn reverse_ref(value: impl Borrow) -> Result { - Ok(AssetInstance::from(value.borrow().clone())) + fn convert_back(value: &ClassInstanceId) -> Option { + Some(AssetInstance::from(value.clone())) } } diff --git a/xcm/xcm-builder/src/currency_adapter.rs b/xcm/xcm-builder/src/currency_adapter.rs index 2c83049c879c..32db840858a9 100644 --- a/xcm/xcm-builder/src/currency_adapter.rs +++ b/xcm/xcm-builder/src/currency_adapter.rs @@ -22,7 +22,7 @@ use sp_runtime::traits::CheckedSub; use sp_std::{marker::PhantomData, result}; use xcm::latest::{Error as XcmError, MultiAsset, MultiLocation, Result, XcmContext}; use xcm_executor::{ - traits::{Convert, MatchesFungible, TransactAsset}, + traits::{ConvertLocation, MatchesFungible, TransactAsset}, Assets, }; @@ -64,7 +64,7 @@ impl From for XcmError { /// pub CheckingAccount: AccountId = PalletId(*b"checking").into_account_truncating(); /// } /// -/// /// Some items that implement `Convert`. Can be more, but for now we just assume we accept +/// /// Some items that implement `ConvertLocation`. Can be more, but for now we just assume we accept /// /// messages from the parent (relay chain). /// pub type LocationConverter = (ParentIsPreset); /// @@ -92,7 +92,7 @@ pub struct CurrencyAdapter, Matcher: MatchesFungible, - AccountIdConverter: Convert, + AccountIdConverter: ConvertLocation, AccountId: Clone, // can't get away without it since Currency is generic over it. CheckedAccount: Get>, > CurrencyAdapter @@ -133,7 +133,7 @@ impl< impl< Currency: frame_support::traits::Currency, Matcher: MatchesFungible, - AccountIdConverter: Convert, + AccountIdConverter: ConvertLocation, AccountId: Clone, // can't get away without it since Currency is generic over it. CheckedAccount: Get>, > TransactAsset @@ -196,7 +196,7 @@ impl< // Check we handle this asset. let amount = Matcher::matches_fungible(&what).ok_or(Error::AssetNotHandled)?; let who = - AccountIdConverter::convert_ref(who).map_err(|()| Error::AccountIdConversionFailed)?; + AccountIdConverter::convert_location(who).ok_or(Error::AccountIdConversionFailed)?; let _imbalance = Currency::deposit_creating(&who, amount); Ok(()) } @@ -210,7 +210,7 @@ impl< // Check we handle this asset. let amount = Matcher::matches_fungible(what).ok_or(Error::AssetNotHandled)?; let who = - AccountIdConverter::convert_ref(who).map_err(|()| Error::AccountIdConversionFailed)?; + AccountIdConverter::convert_location(who).ok_or(Error::AccountIdConversionFailed)?; Currency::withdraw(&who, amount, WithdrawReasons::TRANSFER, AllowDeath) .map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; Ok(what.clone().into()) @@ -225,9 +225,9 @@ impl< log::trace!(target: "xcm::currency_adapter", "internal_transfer_asset asset: {:?}, from: {:?}, to: {:?}", asset, from, to); let amount = Matcher::matches_fungible(asset).ok_or(Error::AssetNotHandled)?; let from = - AccountIdConverter::convert_ref(from).map_err(|()| Error::AccountIdConversionFailed)?; + AccountIdConverter::convert_location(from).ok_or(Error::AccountIdConversionFailed)?; let to = - AccountIdConverter::convert_ref(to).map_err(|()| Error::AccountIdConversionFailed)?; + AccountIdConverter::convert_location(to).ok_or(Error::AccountIdConversionFailed)?; Currency::transfer(&from, &to, amount, AllowDeath) .map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; Ok(asset.clone().into()) diff --git a/xcm/xcm-builder/src/fungibles_adapter.rs b/xcm/xcm-builder/src/fungibles_adapter.rs index d2fdf28c760f..bcb0e9c870b3 100644 --- a/xcm/xcm-builder/src/fungibles_adapter.rs +++ b/xcm/xcm-builder/src/fungibles_adapter.rs @@ -24,7 +24,7 @@ use frame_support::traits::{ }; use sp_std::{marker::PhantomData, prelude::*, result}; use xcm::latest::prelude::*; -use xcm_executor::traits::{Convert, Error as MatchError, MatchesFungibles, TransactAsset}; +use xcm_executor::traits::{ConvertLocation, Error as MatchError, MatchesFungibles, TransactAsset}; /// `TransactAsset` implementation to convert a `fungibles` implementation to become usable in XCM. pub struct FungiblesTransferAdapter( @@ -33,7 +33,7 @@ pub struct FungiblesTransferAdapter, Matcher: MatchesFungibles, - AccountIdConverter: Convert, + AccountIdConverter: ConvertLocation, AccountId: Clone, // can't get away without it since Currency is generic over it. > TransactAsset for FungiblesTransferAdapter { @@ -50,10 +50,10 @@ impl< ); // Check we handle this asset. let (asset_id, amount) = Matcher::matches_fungibles(what)?; - let source = AccountIdConverter::convert_ref(from) - .map_err(|()| MatchError::AccountIdConversionFailed)?; - let dest = AccountIdConverter::convert_ref(to) - .map_err(|()| MatchError::AccountIdConversionFailed)?; + let source = AccountIdConverter::convert_location(from) + .ok_or(MatchError::AccountIdConversionFailed)?; + let dest = AccountIdConverter::convert_location(to) + .ok_or(MatchError::AccountIdConversionFailed)?; Assets::transfer(asset_id, &source, &dest, amount, Preserve) .map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; Ok(what.clone().into()) @@ -149,7 +149,7 @@ pub struct FungiblesMutateAdapter< impl< Assets: fungibles::Mutate, Matcher: MatchesFungibles, - AccountIdConverter: Convert, + AccountIdConverter: ConvertLocation, AccountId: Clone, // can't get away without it since Currency is generic over it. CheckAsset: AssetChecking, CheckingAccount: Get, @@ -184,7 +184,7 @@ impl< impl< Assets: fungibles::Mutate, Matcher: MatchesFungibles, - AccountIdConverter: Convert, + AccountIdConverter: ConvertLocation, AccountId: Clone, // can't get away without it since Currency is generic over it. CheckAsset: AssetChecking, CheckingAccount: Get, @@ -282,8 +282,8 @@ impl< ); // Check we handle this asset. let (asset_id, amount) = Matcher::matches_fungibles(what)?; - let who = AccountIdConverter::convert_ref(who) - .map_err(|()| MatchError::AccountIdConversionFailed)?; + let who = AccountIdConverter::convert_location(who) + .ok_or(MatchError::AccountIdConversionFailed)?; Assets::mint_into(asset_id, &who, amount) .map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; Ok(()) @@ -301,8 +301,8 @@ impl< ); // Check we handle this asset. let (asset_id, amount) = Matcher::matches_fungibles(what)?; - let who = AccountIdConverter::convert_ref(who) - .map_err(|()| MatchError::AccountIdConversionFailed)?; + let who = AccountIdConverter::convert_location(who) + .ok_or(MatchError::AccountIdConversionFailed)?; Assets::burn_from(asset_id, &who, amount, Exact, Polite) .map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; Ok(what.clone().into()) @@ -320,7 +320,7 @@ pub struct FungiblesAdapter< impl< Assets: fungibles::Mutate, Matcher: MatchesFungibles, - AccountIdConverter: Convert, + AccountIdConverter: ConvertLocation, AccountId: Clone, // can't get away without it since Currency is generic over it. CheckAsset: AssetChecking, CheckingAccount: Get, diff --git a/xcm/xcm-builder/src/lib.rs b/xcm/xcm-builder/src/lib.rs index 124e83d3c338..5ad7cc025029 100644 --- a/xcm/xcm-builder/src/lib.rs +++ b/xcm/xcm-builder/src/lib.rs @@ -27,10 +27,14 @@ mod tests; pub mod test_utils; mod location_conversion; +#[allow(deprecated)] +pub use location_conversion::ForeignChainAliasAccount; pub use location_conversion::{ Account32Hash, AccountId32Aliases, AccountKey20Aliases, AliasesIntoAccountId32, - ChildParachainConvertsVia, GlobalConsensusParachainConvertsFor, ParentIsPreset, - SiblingParachainConvertsVia, + ChildParachainConvertsVia, DescribeAccountId32Terminal, DescribeAccountIdTerminal, + DescribeAccountKey20Terminal, DescribeAllTerminal, DescribeFamily, DescribeLocation, + DescribePalletTerminal, DescribeTerminus, GlobalConsensusParachainConvertsFor, + HashedDescription, ParentIsPreset, SiblingParachainConvertsVia, }; mod origin_conversion; diff --git a/xcm/xcm-builder/src/location_conversion.rs b/xcm/xcm-builder/src/location_conversion.rs index a5e6b55824e8..dc327c08d067 100644 --- a/xcm/xcm-builder/src/location_conversion.rs +++ b/xcm/xcm-builder/src/location_conversion.rs @@ -16,12 +16,155 @@ use crate::universal_exports::ensure_is_remote; use frame_support::traits::Get; -use parity_scale_codec::{Decode, Encode}; +use parity_scale_codec::{Compact, Decode, Encode}; use sp_io::hashing::blake2_256; -use sp_runtime::traits::{AccountIdConversion, TrailingZeroInput}; -use sp_std::{borrow::Borrow, marker::PhantomData}; +use sp_runtime::traits::{AccountIdConversion, Convert, TrailingZeroInput}; +use sp_std::{marker::PhantomData, prelude::*}; use xcm::latest::prelude::*; -use xcm_executor::traits::Convert; +use xcm_executor::traits::ConvertLocation; + +/// Means of converting a location into a stable and unique descriptive identifier. +pub trait DescribeLocation { + /// Create a description of the given `location` if possible. No two locations should have the + /// same descriptor. + fn describe_location(location: &MultiLocation) -> Option>; +} + +#[impl_trait_for_tuples::impl_for_tuples(30)] +impl DescribeLocation for Tuple { + fn describe_location(l: &MultiLocation) -> Option> { + for_tuples!( #( + match Tuple::describe_location(l) { + Some(result) => return Some(result), + None => {}, + } + )* ); + None + } +} + +pub struct DescribeTerminus; +impl DescribeLocation for DescribeTerminus { + fn describe_location(l: &MultiLocation) -> Option> { + match (l.parents, &l.interior) { + (0, Here) => Some(Vec::new()), + _ => return None, + } + } +} + +pub struct DescribePalletTerminal; +impl DescribeLocation for DescribePalletTerminal { + fn describe_location(l: &MultiLocation) -> Option> { + match (l.parents, &l.interior) { + (0, X1(PalletInstance(i))) => + Some((b"Pallet", Compact::::from(*i as u32)).encode()), + _ => return None, + } + } +} + +pub struct DescribeAccountId32Terminal; +impl DescribeLocation for DescribeAccountId32Terminal { + fn describe_location(l: &MultiLocation) -> Option> { + match (l.parents, &l.interior) { + (0, X1(AccountId32 { id, .. })) => Some((b"AccountId32", id).encode()), + _ => return None, + } + } +} + +pub struct DescribeAccountKey20Terminal; +impl DescribeLocation for DescribeAccountKey20Terminal { + fn describe_location(l: &MultiLocation) -> Option> { + match (l.parents, &l.interior) { + (0, X1(AccountKey20 { key, .. })) => Some((b"AccountKey20", key).encode()), + _ => return None, + } + } +} + +pub type DescribeAccountIdTerminal = (DescribeAccountId32Terminal, DescribeAccountKey20Terminal); + +pub type DescribeAllTerminal = ( + DescribeTerminus, + DescribePalletTerminal, + DescribeAccountId32Terminal, + DescribeAccountKey20Terminal, +); + +pub struct DescribeFamily(PhantomData); +impl DescribeLocation for DescribeFamily { + fn describe_location(l: &MultiLocation) -> Option> { + match (l.parents, l.interior.first()) { + (0, Some(Parachain(index))) => { + let tail = l.interior.split_first().0; + let interior = Suffix::describe_location(&tail.into())?; + Some((b"ChildChain", Compact::::from(*index), interior).encode()) + }, + (1, Some(Parachain(index))) => { + let tail = l.interior.split_first().0; + let interior = Suffix::describe_location(&tail.into())?; + Some((b"SiblingChain", Compact::::from(*index), interior).encode()) + }, + (1, _) => { + let tail = l.interior.into(); + let interior = Suffix::describe_location(&tail)?; + Some((b"ParentChain", interior).encode()) + }, + _ => return None, + } + } +} + +pub struct HashedDescription(PhantomData<(AccountId, Describe)>); +impl + Clone, Describe: DescribeLocation> ConvertLocation + for HashedDescription +{ + fn convert_location(value: &MultiLocation) -> Option { + Some(blake2_256(&Describe::describe_location(value)?).into()) + } +} + +/// This is a describer for legacy support of the `ForeignChainAliasAccount` preimage. New chains +/// are recommended to use the more extensible `HashedDescription` type. +pub struct LegacyDescribeForeignChainAccount; +impl DescribeLocation for LegacyDescribeForeignChainAccount { + fn describe_location(location: &MultiLocation) -> Option> { + Some(match location { + // Used on the relay chain for sending paras that use 32 byte accounts + MultiLocation { + parents: 0, + interior: X2(Parachain(para_id), AccountId32 { id, .. }), + } => LegacyDescribeForeignChainAccount::from_para_32(para_id, id, 0), + + // Used on the relay chain for sending paras that use 20 byte accounts + MultiLocation { + parents: 0, + interior: X2(Parachain(para_id), AccountKey20 { key, .. }), + } => LegacyDescribeForeignChainAccount::from_para_20(para_id, key, 0), + + // Used on para-chain for sending paras that use 32 byte accounts + MultiLocation { + parents: 1, + interior: X2(Parachain(para_id), AccountId32 { id, .. }), + } => LegacyDescribeForeignChainAccount::from_para_32(para_id, id, 1), + + // Used on para-chain for sending paras that use 20 byte accounts + MultiLocation { + parents: 1, + interior: X2(Parachain(para_id), AccountKey20 { key, .. }), + } => LegacyDescribeForeignChainAccount::from_para_20(para_id, key, 1), + + // Used on para-chain for sending from the relay chain + MultiLocation { parents: 1, interior: X1(AccountId32 { id, .. }) } => + LegacyDescribeForeignChainAccount::from_relay_32(id, 1), + + // No other conversions provided + _ => return None, + }) + } +} /// Prefix for generating alias account for accounts coming /// from chains that use 32 byte long representations. @@ -35,6 +178,39 @@ pub const FOREIGN_CHAIN_PREFIX_PARA_20: [u8; 37] = *b"ForeignChainAliasAccountPr /// from the relay chain using 32 byte long representations. pub const FOREIGN_CHAIN_PREFIX_RELAY: [u8; 36] = *b"ForeignChainAliasAccountPrefix_Relay"; +impl LegacyDescribeForeignChainAccount { + fn from_para_32(para_id: &u32, id: &[u8; 32], parents: u8) -> Vec { + (FOREIGN_CHAIN_PREFIX_PARA_32, para_id, id, parents).encode() + } + + fn from_para_20(para_id: &u32, id: &[u8; 20], parents: u8) -> Vec { + (FOREIGN_CHAIN_PREFIX_PARA_20, para_id, id, parents).encode() + } + + fn from_relay_32(id: &[u8; 32], parents: u8) -> Vec { + (FOREIGN_CHAIN_PREFIX_RELAY, id, parents).encode() + } +} + +/// This is deprecated in favour of the more modular `HashedDescription` converter. If +/// your chain has previously used this, then you can retain backwards compatibility using +/// `HashedDescription` and a tuple with `LegacyDescribeForeignChainAccount` as the first +/// element. For example: +/// +/// ```nocompile +/// pub type LocationToAccount = HashedDescription< +/// // Legacy conversion - MUST BE FIRST! +/// LegacyDescribeForeignChainAccount, +/// // Other conversions +/// DescribeTerminus, +/// DescribePalletTerminal, +/// >; +/// ``` +/// +/// This type is equivalent to the above but without any other conversions. +/// +/// ### Old documentation +/// /// This converter will for a given `AccountId32`/`AccountKey20` /// always generate the same "remote" account for a specific /// sending chain. @@ -68,145 +244,58 @@ pub const FOREIGN_CHAIN_PREFIX_RELAY: [u8; 36] = *b"ForeignChainAliasAccountPref /// /// Note that the alias accounts have overlaps but never on the same /// chain when the sender comes from different chains. -pub struct ForeignChainAliasAccount(PhantomData); -impl + Clone> Convert - for ForeignChainAliasAccount -{ - fn convert_ref(location: impl Borrow) -> Result { - let entropy = match location.borrow() { - // Used on the relay chain for sending paras that use 32 byte accounts - MultiLocation { - parents: 0, - interior: X2(Parachain(para_id), AccountId32 { id, .. }), - } => ForeignChainAliasAccount::::from_para_32(para_id, id, 0), - - // Used on the relay chain for sending paras that use 20 byte accounts - MultiLocation { - parents: 0, - interior: X2(Parachain(para_id), AccountKey20 { key, .. }), - } => ForeignChainAliasAccount::::from_para_20(para_id, key, 0), - - // Used on para-chain for sending paras that use 32 byte accounts - MultiLocation { - parents: 1, - interior: X2(Parachain(para_id), AccountId32 { id, .. }), - } => ForeignChainAliasAccount::::from_para_32(para_id, id, 1), - - // Used on para-chain for sending paras that use 20 byte accounts - MultiLocation { - parents: 1, - interior: X2(Parachain(para_id), AccountKey20 { key, .. }), - } => ForeignChainAliasAccount::::from_para_20(para_id, key, 1), - - // Used on para-chain for sending from the relay chain - MultiLocation { parents: 1, interior: X1(AccountId32 { id, .. }) } => - ForeignChainAliasAccount::::from_relay_32(id, 1), - - // No other conversions provided - _ => return Err(()), - }; - - Ok(entropy.into()) - } - - fn reverse_ref(_: impl Borrow) -> Result { - Err(()) - } -} - -impl ForeignChainAliasAccount { - fn from_para_32(para_id: &u32, id: &[u8; 32], parents: u8) -> [u8; 32] { - (FOREIGN_CHAIN_PREFIX_PARA_32, para_id, id, parents).using_encoded(blake2_256) - } - - fn from_para_20(para_id: &u32, id: &[u8; 20], parents: u8) -> [u8; 32] { - (FOREIGN_CHAIN_PREFIX_PARA_20, para_id, id, parents).using_encoded(blake2_256) - } - - fn from_relay_32(id: &[u8; 32], parents: u8) -> [u8; 32] { - (FOREIGN_CHAIN_PREFIX_RELAY, id, parents).using_encoded(blake2_256) - } -} +#[deprecated = "Use `HashedDescription` instead"] +pub type ForeignChainAliasAccount = + HashedDescription; pub struct Account32Hash(PhantomData<(Network, AccountId)>); impl>, AccountId: From<[u8; 32]> + Into<[u8; 32]> + Clone> - Convert for Account32Hash + ConvertLocation for Account32Hash { - fn convert_ref(location: impl Borrow) -> Result { - Ok(("multiloc", location.borrow()).using_encoded(blake2_256).into()) - } - - fn reverse_ref(_: impl Borrow) -> Result { - Err(()) + fn convert_location(location: &MultiLocation) -> Option { + Some(("multiloc", location).using_encoded(blake2_256).into()) } } /// A [`MultiLocation`] consisting of a single `Parent` [`Junction`] will be converted to the /// parent `AccountId`. pub struct ParentIsPreset(PhantomData); -impl Convert - for ParentIsPreset -{ - fn convert_ref(location: impl Borrow) -> Result { - if location.borrow().contains_parents_only(1) { - Ok(b"Parent" - .using_encoded(|b| AccountId::decode(&mut TrailingZeroInput::new(b))) - .expect("infinite length input; no invalid inputs for type; qed")) - } else { - Err(()) - } - } - - fn reverse_ref(who: impl Borrow) -> Result { - let parent_account = b"Parent" - .using_encoded(|b| AccountId::decode(&mut TrailingZeroInput::new(b))) - .expect("infinite length input; no invalid inputs for type; qed"); - if who.borrow() == &parent_account { - Ok(Parent.into()) +impl ConvertLocation for ParentIsPreset { + fn convert_location(location: &MultiLocation) -> Option { + if location.contains_parents_only(1) { + Some( + b"Parent" + .using_encoded(|b| AccountId::decode(&mut TrailingZeroInput::new(b))) + .expect("infinite length input; no invalid inputs for type; qed"), + ) } else { - Err(()) + None } } } pub struct ChildParachainConvertsVia(PhantomData<(ParaId, AccountId)>); impl + Into + AccountIdConversion, AccountId: Clone> - Convert for ChildParachainConvertsVia + ConvertLocation for ChildParachainConvertsVia { - fn convert_ref(location: impl Borrow) -> Result { - match location.borrow() { + fn convert_location(location: &MultiLocation) -> Option { + match location { MultiLocation { parents: 0, interior: X1(Parachain(id)) } => - Ok(ParaId::from(*id).into_account_truncating()), - _ => Err(()), - } - } - - fn reverse_ref(who: impl Borrow) -> Result { - if let Some(id) = ParaId::try_from_account(who.borrow()) { - Ok(Parachain(id.into()).into()) - } else { - Err(()) + Some(ParaId::from(*id).into_account_truncating()), + _ => None, } } } pub struct SiblingParachainConvertsVia(PhantomData<(ParaId, AccountId)>); impl + Into + AccountIdConversion, AccountId: Clone> - Convert for SiblingParachainConvertsVia + ConvertLocation for SiblingParachainConvertsVia { - fn convert_ref(location: impl Borrow) -> Result { - match location.borrow() { + fn convert_location(location: &MultiLocation) -> Option { + match location { MultiLocation { parents: 1, interior: X1(Parachain(id)) } => - Ok(ParaId::from(*id).into_account_truncating()), - _ => Err(()), - } - } - - fn reverse_ref(who: impl Borrow) -> Result { - if let Some(id) = ParaId::try_from_account(who.borrow()) { - Ok(MultiLocation::new(1, X1(Parachain(id.into())))) - } else { - Err(()) + Some(ParaId::from(*id).into_account_truncating()), + _ => None, } } } @@ -214,21 +303,17 @@ impl + Into + AccountIdConversion, AccountId: /// Extracts the `AccountId32` from the passed `location` if the network matches. pub struct AccountId32Aliases(PhantomData<(Network, AccountId)>); impl>, AccountId: From<[u8; 32]> + Into<[u8; 32]> + Clone> - Convert for AccountId32Aliases + ConvertLocation for AccountId32Aliases { - fn convert(location: MultiLocation) -> Result { - let id = match location { + fn convert_location(location: &MultiLocation) -> Option { + let id = match *location { MultiLocation { parents: 0, interior: X1(AccountId32 { id, network: None }) } => id, MultiLocation { parents: 0, interior: X1(AccountId32 { id, network }) } if network == Network::get() => id, - _ => return Err(location), + _ => return None, }; - Ok(id.into()) - } - - fn reverse(who: AccountId) -> Result { - Ok(AccountId32 { id: who.into(), network: Network::get() }.into()) + Some(id.into()) } } @@ -237,8 +322,7 @@ impl>, AccountId: From<[u8; 32]> + Into<[u8; 32]> /// network (provided by `Network`) and the `AccountId`'s `[u8; 32]` datum for the `id`. pub struct AliasesIntoAccountId32(PhantomData<(Network, AccountId)>); impl<'a, Network: Get>, AccountId: Clone + Into<[u8; 32]> + Clone> - sp_runtime::traits::Convert<&'a AccountId, MultiLocation> - for AliasesIntoAccountId32 + Convert<&'a AccountId, MultiLocation> for AliasesIntoAccountId32 { fn convert(who: &AccountId) -> MultiLocation { AccountId32 { network: Network::get(), id: who.clone().into() }.into() @@ -247,22 +331,17 @@ impl<'a, Network: Get>, AccountId: Clone + Into<[u8; 32]> + Cl pub struct AccountKey20Aliases(PhantomData<(Network, AccountId)>); impl>, AccountId: From<[u8; 20]> + Into<[u8; 20]> + Clone> - Convert for AccountKey20Aliases + ConvertLocation for AccountKey20Aliases { - fn convert(location: MultiLocation) -> Result { - let key = match location { + fn convert_location(location: &MultiLocation) -> Option { + let key = match *location { MultiLocation { parents: 0, interior: X1(AccountKey20 { key, network: None }) } => key, MultiLocation { parents: 0, interior: X1(AccountKey20 { key, network }) } if network == Network::get() => key, - _ => return Err(location), + _ => return None, }; - Ok(key.into()) - } - - fn reverse(who: AccountId) -> Result { - let j = AccountKey20 { key: who.into(), network: Network::get() }; - Ok(j.into()) + Some(key.into()) } } @@ -285,31 +364,24 @@ pub struct GlobalConsensusParachainConvertsFor( PhantomData<(UniversalLocation, AccountId)>, ); impl, AccountId: From<[u8; 32]> + Clone> - Convert - for GlobalConsensusParachainConvertsFor + ConvertLocation for GlobalConsensusParachainConvertsFor { - fn convert_ref(location: impl Borrow) -> Result { + fn convert_location(location: &MultiLocation) -> Option { let universal_source = UniversalLocation::get(); log::trace!( target: "xcm::location_conversion", "GlobalConsensusParachainConvertsFor universal_source: {:?}, location: {:?}", - universal_source, location.borrow(), + universal_source, location, ); - let devolved = ensure_is_remote(universal_source, *location.borrow()).map_err(|_| ())?; + let devolved = ensure_is_remote(universal_source, *location).ok()?; let (remote_network, remote_location) = devolved; match remote_location { X1(Parachain(remote_network_para_id)) => - Ok(AccountId::from(Self::from_params(&remote_network, &remote_network_para_id))), - _ => Err(()), + Some(AccountId::from(Self::from_params(&remote_network, &remote_network_para_id))), + _ => None, } } - - fn reverse_ref(_: impl Borrow) -> Result { - // if this is ever be needed, we could implement some kind of guessing, if we have - // configuration for supported networkId+paraId - Err(()) - } } impl GlobalConsensusParachainConvertsFor @@ -323,6 +395,9 @@ impl mod tests { use super::*; + pub type ForeignChainAliasAccount = + HashedDescription; + use frame_support::parameter_types; use xcm::latest::Junction; @@ -441,11 +516,11 @@ mod tests { for (location, expected_result) in test_data { let result = - GlobalConsensusParachainConvertsFor::::convert_ref( + GlobalConsensusParachainConvertsFor::::convert_location( &location, ); match result { - Ok(account) => { + Some(account) => { assert_eq!( true, expected_result, "expected_result: {}, but conversion passed: {:?}, location: {:?}", @@ -465,7 +540,7 @@ mod tests { ) } }, - Err(_) => { + None => { assert_eq!( false, expected_result, "expected_result: {} - but conversion failed, location: {:?}", @@ -477,23 +552,23 @@ mod tests { // all success let res_gc_a_p1000 = - GlobalConsensusParachainConvertsFor::::convert_ref( - MultiLocation::new(2, X2(GlobalConsensus(ByGenesis([3; 32])), Parachain(1000))), + GlobalConsensusParachainConvertsFor::::convert_location( + &MultiLocation::new(2, X2(GlobalConsensus(ByGenesis([3; 32])), Parachain(1000))), ) .expect("conversion is ok"); let res_gc_a_p1001 = - GlobalConsensusParachainConvertsFor::::convert_ref( - MultiLocation::new(2, X2(GlobalConsensus(ByGenesis([3; 32])), Parachain(1001))), + GlobalConsensusParachainConvertsFor::::convert_location( + &MultiLocation::new(2, X2(GlobalConsensus(ByGenesis([3; 32])), Parachain(1001))), ) .expect("conversion is ok"); let res_gc_b_p1000 = - GlobalConsensusParachainConvertsFor::::convert_ref( - MultiLocation::new(2, X2(GlobalConsensus(ByGenesis([4; 32])), Parachain(1000))), + GlobalConsensusParachainConvertsFor::::convert_location( + &MultiLocation::new(2, X2(GlobalConsensus(ByGenesis([4; 32])), Parachain(1000))), ) .expect("conversion is ok"); let res_gc_b_p1001 = - GlobalConsensusParachainConvertsFor::::convert_ref( - MultiLocation::new(2, X2(GlobalConsensus(ByGenesis([4; 32])), Parachain(1001))), + GlobalConsensusParachainConvertsFor::::convert_location( + &MultiLocation::new(2, X2(GlobalConsensus(ByGenesis([4; 32])), Parachain(1001))), ) .expect("conversion is ok"); assert_ne!(res_gc_a_p1000, res_gc_a_p1001); @@ -510,7 +585,7 @@ mod tests { parents: 1, interior: X2(Parachain(1), AccountId32 { network: None, id: [0u8; 32] }), }; - let rem_1 = ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(); + let rem_1 = ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(); assert_eq!( [ @@ -528,13 +603,13 @@ mod tests { ), }; - assert_eq!(ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(), rem_1); + assert_eq!(ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(), rem_1); let mul = MultiLocation { parents: 1, interior: X2(Parachain(2), AccountId32 { network: None, id: [0u8; 32] }), }; - let rem_2 = ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(); + let rem_2 = ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(); assert_eq!( [ @@ -553,7 +628,7 @@ mod tests { parents: 1, interior: X2(Parachain(1), AccountKey20 { network: None, key: [0u8; 20] }), }; - let rem_1 = ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(); + let rem_1 = ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(); assert_eq!( [ @@ -571,13 +646,13 @@ mod tests { ), }; - assert_eq!(ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(), rem_1); + assert_eq!(ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(), rem_1); let mul = MultiLocation { parents: 1, interior: X2(Parachain(2), AccountKey20 { network: None, key: [0u8; 20] }), }; - let rem_2 = ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(); + let rem_2 = ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(); assert_eq!( [ @@ -596,7 +671,7 @@ mod tests { parents: 1, interior: X1(AccountId32 { network: None, id: [0u8; 32] }), }; - let rem_1 = ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(); + let rem_1 = ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(); assert_eq!( [ @@ -611,13 +686,13 @@ mod tests { interior: X1(AccountId32 { network: Some(NetworkId::Polkadot), id: [0u8; 32] }), }; - assert_eq!(ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(), rem_1); + assert_eq!(ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(), rem_1); let mul = MultiLocation { parents: 1, interior: X1(AccountId32 { network: None, id: [1u8; 32] }), }; - let rem_2 = ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(); + let rem_2 = ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(); assert_eq!( [ @@ -636,7 +711,7 @@ mod tests { parents: 0, interior: X2(Parachain(1), AccountKey20 { network: None, key: [0u8; 20] }), }; - let rem_1 = ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(); + let rem_1 = ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(); assert_eq!( [ @@ -650,7 +725,7 @@ mod tests { parents: 0, interior: X2(Parachain(2), AccountKey20 { network: None, key: [0u8; 20] }), }; - let rem_2 = ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(); + let rem_2 = ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(); assert_eq!( [ @@ -669,7 +744,7 @@ mod tests { parents: 0, interior: X2(Parachain(1), AccountId32 { network: None, id: [0u8; 32] }), }; - let rem_1 = ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(); + let rem_1 = ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(); assert_eq!( [ @@ -687,13 +762,13 @@ mod tests { ), }; - assert_eq!(ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(), rem_1); + assert_eq!(ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(), rem_1); let mul = MultiLocation { parents: 0, interior: X2(Parachain(2), AccountId32 { network: None, id: [0u8; 32] }), }; - let rem_2 = ForeignChainAliasAccount::<[u8; 32]>::convert(mul).unwrap(); + let rem_2 = ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).unwrap(); assert_eq!( [ @@ -712,6 +787,6 @@ mod tests { parents: 1, interior: X1(AccountKey20 { network: None, key: [0u8; 20] }), }; - assert!(ForeignChainAliasAccount::<[u8; 32]>::convert(mul).is_err()); + assert!(ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).is_none()); } } diff --git a/xcm/xcm-builder/src/nonfungibles_adapter.rs b/xcm/xcm-builder/src/nonfungibles_adapter.rs index 0becb2608b46..6cf5980df0e9 100644 --- a/xcm/xcm-builder/src/nonfungibles_adapter.rs +++ b/xcm/xcm-builder/src/nonfungibles_adapter.rs @@ -23,7 +23,9 @@ use frame_support::{ }; use sp_std::{marker::PhantomData, prelude::*, result}; use xcm::latest::prelude::*; -use xcm_executor::traits::{Convert, Error as MatchError, MatchesNonFungibles, TransactAsset}; +use xcm_executor::traits::{ + ConvertLocation, Error as MatchError, MatchesNonFungibles, TransactAsset, +}; const LOG_TARGET: &str = "xcm::nonfungibles_adapter"; @@ -33,7 +35,7 @@ pub struct NonFungiblesTransferAdapter, Matcher: MatchesNonFungibles, - AccountIdConverter: Convert, + AccountIdConverter: ConvertLocation, AccountId: Clone, // can't get away without it since Currency is generic over it. > TransactAsset for NonFungiblesTransferAdapter { @@ -53,8 +55,8 @@ impl< ); // Check we handle this asset. let (class, instance) = Matcher::matches_nonfungibles(what)?; - let destination = AccountIdConverter::convert_ref(to) - .map_err(|()| MatchError::AccountIdConversionFailed)?; + let destination = AccountIdConverter::convert_location(to) + .ok_or(MatchError::AccountIdConversionFailed)?; Assets::transfer(&class, &instance, &destination) .map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; Ok(what.clone().into()) @@ -73,7 +75,7 @@ pub struct NonFungiblesMutateAdapter< impl< Assets: nonfungibles::Mutate, Matcher: MatchesNonFungibles, - AccountIdConverter: Convert, + AccountIdConverter: ConvertLocation, AccountId: Clone + Eq, // can't get away without it since Currency is generic over it. CheckAsset: AssetChecking, CheckingAccount: Get>, @@ -115,7 +117,7 @@ impl< impl< Assets: nonfungibles::Mutate, Matcher: MatchesNonFungibles, - AccountIdConverter: Convert, + AccountIdConverter: ConvertLocation, AccountId: Clone + Eq, // can't get away without it since Currency is generic over it. CheckAsset: AssetChecking, CheckingAccount: Get>, @@ -215,8 +217,8 @@ impl< ); // Check we handle this asset. let (class, instance) = Matcher::matches_nonfungibles(what)?; - let who = AccountIdConverter::convert_ref(who) - .map_err(|()| MatchError::AccountIdConversionFailed)?; + let who = AccountIdConverter::convert_location(who) + .ok_or(MatchError::AccountIdConversionFailed)?; Assets::mint_into(&class, &instance, &who) .map_err(|e| XcmError::FailedToTransactAsset(e.into())) } @@ -234,8 +236,8 @@ impl< maybe_context, ); // Check we handle this asset. - let who = AccountIdConverter::convert_ref(who) - .map_err(|()| MatchError::AccountIdConversionFailed)?; + let who = AccountIdConverter::convert_location(who) + .ok_or(MatchError::AccountIdConversionFailed)?; let (class, instance) = Matcher::matches_nonfungibles(what)?; Assets::burn(&class, &instance, Some(&who)) .map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; @@ -254,7 +256,7 @@ pub struct NonFungiblesAdapter< impl< Assets: nonfungibles::Mutate + nonfungibles::Transfer, Matcher: MatchesNonFungibles, - AccountIdConverter: Convert, + AccountIdConverter: ConvertLocation, AccountId: Clone + Eq, // can't get away without it since Currency is generic over it. CheckAsset: AssetChecking, CheckingAccount: Get>, diff --git a/xcm/xcm-builder/src/origin_conversion.rs b/xcm/xcm-builder/src/origin_conversion.rs index 22a79d0f8028..0810b1ce2f8b 100644 --- a/xcm/xcm-builder/src/origin_conversion.rs +++ b/xcm/xcm-builder/src/origin_conversion.rs @@ -19,18 +19,17 @@ use frame_support::traits::{EnsureOrigin, Get, GetBacking, OriginTrait}; use frame_system::RawOrigin as SystemRawOrigin; use polkadot_parachain::primitives::IsSystem; +use sp_runtime::traits::TryConvert; use sp_std::marker::PhantomData; use xcm::latest::{BodyId, BodyPart, Junction, Junctions::*, MultiLocation, NetworkId, OriginKind}; -use xcm_executor::traits::{Convert, ConvertOrigin}; +use xcm_executor::traits::{ConvertLocation, ConvertOrigin}; /// Sovereign accounts use the system's `Signed` origin with an account ID derived from the `LocationConverter`. pub struct SovereignSignedViaLocation( PhantomData<(LocationConverter, RuntimeOrigin)>, ); -impl< - LocationConverter: Convert, - RuntimeOrigin: OriginTrait, - > ConvertOrigin for SovereignSignedViaLocation +impl, RuntimeOrigin: OriginTrait> + ConvertOrigin for SovereignSignedViaLocation where RuntimeOrigin::AccountId: Clone, { @@ -45,7 +44,7 @@ where origin, kind, ); if let OriginKind::SovereignAccount = kind { - let location = LocationConverter::convert(origin)?; + let location = LocationConverter::convert_location(&origin).ok_or(origin)?; Ok(RuntimeOrigin::signed(location).into()) } else { Err(origin) @@ -244,14 +243,14 @@ where /// `EnsureOrigin` barrier to convert from dispatch origin to XCM origin, if one exists. pub struct EnsureXcmOrigin(PhantomData<(RuntimeOrigin, Conversion)>); -impl> +impl> EnsureOrigin for EnsureXcmOrigin where RuntimeOrigin::PalletsOrigin: PartialEq, { type Success = MultiLocation; fn try_origin(o: RuntimeOrigin) -> Result { - let o = match Conversion::convert(o) { + let o = match Conversion::try_convert(o) { Ok(location) => return Ok(location), Err(o) => o, }; @@ -281,12 +280,13 @@ impl< RuntimeOrigin: OriginTrait + Clone, AccountId: Into<[u8; 32]>, Network: Get>, - > Convert for SignedToAccountId32 + > TryConvert + for SignedToAccountId32 where RuntimeOrigin::PalletsOrigin: From> + TryInto, Error = RuntimeOrigin::PalletsOrigin>, { - fn convert(o: RuntimeOrigin) -> Result { + fn try_convert(o: RuntimeOrigin) -> Result { o.try_with_caller(|caller| match caller.try_into() { Ok(SystemRawOrigin::Signed(who)) => Ok(Junction::AccountId32 { network: Network::get(), id: who.into() }.into()), @@ -305,12 +305,12 @@ pub struct BackingToPlurality( PhantomData<(RuntimeOrigin, COrigin, Body)>, ); impl> - Convert for BackingToPlurality + TryConvert for BackingToPlurality where RuntimeOrigin::PalletsOrigin: From + TryInto, { - fn convert(o: RuntimeOrigin) -> Result { + fn try_convert(o: RuntimeOrigin) -> Result { o.try_with_caller(|caller| match caller.try_into() { Ok(co) => match co.get_backing() { Some(backing) => Ok(Junction::Plurality { @@ -331,10 +331,10 @@ pub struct OriginToPluralityVoice( PhantomData<(RuntimeOrigin, EnsureBodyOrigin, Body)>, ); impl, Body: Get> - Convert + TryConvert for OriginToPluralityVoice { - fn convert(o: RuntimeOrigin) -> Result { + fn try_convert(o: RuntimeOrigin) -> Result { match EnsureBodyOrigin::try_origin(o) { Ok(_) => Ok(Junction::Plurality { id: Body::get(), part: BodyPart::Voice }.into()), Err(o) => Err(o), diff --git a/xcm/xcm-executor/src/traits/conversion.rs b/xcm/xcm-executor/src/traits/conversion.rs index c33269a6566f..2f584a900f69 100644 --- a/xcm/xcm-executor/src/traits/conversion.rs +++ b/xcm/xcm-executor/src/traits/conversion.rs @@ -15,122 +15,26 @@ // along with Polkadot. If not, see . use frame_support::traits::{Contains, OriginTrait}; -use parity_scale_codec::{Decode, Encode}; use sp_runtime::{traits::Dispatchable, DispatchErrorWithPostInfo}; -use sp_std::{borrow::Borrow, marker::PhantomData, prelude::*, result::Result}; +use sp_std::{marker::PhantomData, result::Result}; use xcm::latest::prelude::*; -/// Generic third-party conversion trait. Use this when you don't want to force the user to use default -/// implementations of `From` and `Into` for the types you wish to convert between. -/// -/// One of `convert`/`convert_ref` and `reverse`/`reverse_ref` MUST be implemented. If possible, implement -/// `convert_ref`, since this will never result in a clone. Use `convert` when you definitely need to consume -/// the source value. -/// -/// Can be amalgamated into tuples. If any of the tuple elements converts into `Ok(_)` it short circuits. Otherwise returns -/// the `Err(_)` of the last failing conversion (or `Err(())` for ref conversions). -pub trait Convert { - /// Convert from `value` (of type `A`) into an equivalent value of type `B`, `Err` if not possible. - fn convert(value: A) -> Result { - Self::convert_ref(&value).map_err(|_| value) - } - fn convert_ref(value: impl Borrow) -> Result { - Self::convert(value.borrow().clone()).map_err(|_| ()) - } - /// Convert from `value` (of type `B`) into an equivalent value of type `A`, `Err` if not possible. - fn reverse(value: B) -> Result { - Self::reverse_ref(&value).map_err(|_| value) - } - fn reverse_ref(value: impl Borrow) -> Result { - Self::reverse(value.borrow().clone()).map_err(|_| ()) - } +/// Means of converting a location into an account identifier. +pub trait ConvertLocation { + /// Convert the `location` into `Some` account ID, or `None` if not possible. + fn convert_location(location: &MultiLocation) -> Option; } #[impl_trait_for_tuples::impl_for_tuples(30)] -impl Convert for Tuple { - fn convert(value: A) -> Result { - for_tuples!( #( - let value = match Tuple::convert(value) { - Ok(result) => return Ok(result), - Err(v) => v, - }; - )* ); - Err(value) - } - fn reverse(value: B) -> Result { - for_tuples!( #( - let value = match Tuple::reverse(value) { - Ok(result) => return Ok(result), - Err(v) => v, - }; - )* ); - Err(value) - } - fn convert_ref(value: impl Borrow) -> Result { - let value = value.borrow(); - for_tuples!( #( - match Tuple::convert_ref(value) { - Ok(result) => return Ok(result), - Err(_) => (), - } - )* ); - Err(()) - } - fn reverse_ref(value: impl Borrow) -> Result { - let value = value.borrow(); +impl ConvertLocation for Tuple { + fn convert_location(l: &MultiLocation) -> Option { for_tuples!( #( - match Tuple::reverse_ref(value.clone()) { - Ok(result) => return Ok(result), - Err(_) => (), + match Tuple::convert_location(l) { + Some(result) => return Some(result), + None => {}, } )* ); - Err(()) - } -} - -/// Simple pass-through which implements `BytesConversion` while not doing any conversion. -pub struct Identity; -impl Convert for Identity { - fn convert(value: T) -> Result { - Ok(value) - } - fn reverse(value: T) -> Result { - Ok(value) - } -} - -/// Implementation of `Convert` trait using `TryFrom`. -pub struct JustTry; -impl + Clone, Dest: TryFrom + Clone> Convert - for JustTry -{ - fn convert(value: Source) -> Result { - Dest::try_from(value.clone()).map_err(|_| value) - } - fn reverse(value: Dest) -> Result { - Source::try_from(value.clone()).map_err(|_| value) - } -} - -/// Implementation of `Convert<_, Vec>` using the parity scale codec. -pub struct Encoded; -impl Convert> for Encoded { - fn convert_ref(value: impl Borrow) -> Result, ()> { - Ok(value.borrow().encode()) - } - fn reverse_ref(bytes: impl Borrow>) -> Result { - T::decode(&mut &bytes.borrow()[..]).map_err(|_| ()) - } -} - -/// Implementation of `Convert, _>` using the parity scale codec. -pub struct Decoded; -impl Convert, T> for Decoded { - fn convert_ref(bytes: impl Borrow>) -> Result { - T::decode(&mut &bytes.borrow()[..]).map_err(|_| ()) - } - fn reverse_ref(value: impl Borrow) -> Result, ()> { - Ok(value.borrow().encode()) + None } } diff --git a/xcm/xcm-executor/src/traits/mod.rs b/xcm/xcm-executor/src/traits/mod.rs index cac9c73ee277..a9439968fa6c 100644 --- a/xcm/xcm-executor/src/traits/mod.rs +++ b/xcm/xcm-executor/src/traits/mod.rs @@ -17,9 +17,7 @@ //! Various traits used in configuring the executor. mod conversion; -pub use conversion::{ - CallDispatcher, Convert, ConvertOrigin, Decoded, Encoded, Identity, JustTry, WithOriginFilter, -}; +pub use conversion::{CallDispatcher, ConvertLocation, ConvertOrigin, WithOriginFilter}; mod drop_assets; pub use drop_assets::{ClaimAssets, DropAssets}; mod asset_lock; @@ -44,14 +42,17 @@ pub use should_execute::{CheckSuspension, Properties, ShouldExecute}; mod transact_asset; pub use transact_asset::TransactAsset; mod weight; +#[deprecated = "Use `sp_runtime::traits::` instead"] +pub use sp_runtime::traits::{Identity, TryConvertInto as JustTry}; pub use weight::{WeightBounds, WeightTrader}; pub mod prelude { pub use super::{ - export_xcm, validate_export, AssetExchange, AssetLock, ClaimAssets, Convert, ConvertOrigin, - Decoded, DropAssets, Enact, Encoded, Error, ExportXcm, FeeManager, FeeReason, Identity, - JustTry, LockError, MatchesFungible, MatchesFungibles, MatchesNonFungible, - MatchesNonFungibles, OnResponse, ShouldExecute, TransactAsset, VersionChangeNotifier, - WeightBounds, WeightTrader, WithOriginFilter, + export_xcm, validate_export, AssetExchange, AssetLock, ClaimAssets, ConvertOrigin, + DropAssets, Enact, Error, ExportXcm, FeeManager, FeeReason, LockError, MatchesFungible, + MatchesFungibles, MatchesNonFungible, MatchesNonFungibles, OnResponse, ShouldExecute, + TransactAsset, VersionChangeNotifier, WeightBounds, WeightTrader, WithOriginFilter, }; + #[allow(deprecated)] + pub use super::{Identity, JustTry}; } diff --git a/xcm/xcm-simulator/example/src/lib.rs b/xcm/xcm-simulator/example/src/lib.rs index bd5ebb0b472f..704d24c3fc71 100644 --- a/xcm/xcm-simulator/example/src/lib.rs +++ b/xcm/xcm-simulator/example/src/lib.rs @@ -19,7 +19,7 @@ mod relay_chain; use frame_support::sp_tracing; use xcm::prelude::*; -use xcm_executor::traits::Convert; +use xcm_executor::traits::ConvertLocation; use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain, TestExt}; pub const ALICE: sp_runtime::AccountId32 = sp_runtime::AccountId32::new([0u8; 32]); @@ -67,27 +67,27 @@ decl_test_network! { pub fn parent_account_id() -> parachain::AccountId { let location = (Parent,); - parachain::LocationToAccountId::convert(location.into()).unwrap() + parachain::LocationToAccountId::convert_location(&location.into()).unwrap() } pub fn child_account_id(para: u32) -> relay_chain::AccountId { let location = (Parachain(para),); - relay_chain::LocationToAccountId::convert(location.into()).unwrap() + relay_chain::LocationToAccountId::convert_location(&location.into()).unwrap() } pub fn child_account_account_id(para: u32, who: sp_runtime::AccountId32) -> relay_chain::AccountId { let location = (Parachain(para), AccountId32 { network: None, id: who.into() }); - relay_chain::LocationToAccountId::convert(location.into()).unwrap() + relay_chain::LocationToAccountId::convert_location(&location.into()).unwrap() } pub fn sibling_account_account_id(para: u32, who: sp_runtime::AccountId32) -> parachain::AccountId { let location = (Parent, Parachain(para), AccountId32 { network: None, id: who.into() }); - parachain::LocationToAccountId::convert(location.into()).unwrap() + parachain::LocationToAccountId::convert_location(&location.into()).unwrap() } pub fn parent_account_account_id(who: sp_runtime::AccountId32) -> parachain::AccountId { let location = (Parent, AccountId32 { network: None, id: who.into() }); - parachain::LocationToAccountId::convert(location.into()).unwrap() + parachain::LocationToAccountId::convert_location(&location.into()).unwrap() } pub fn para_ext(para_id: u32) -> sp_io::TestExternalities { diff --git a/xcm/xcm-simulator/example/src/parachain.rs b/xcm/xcm-simulator/example/src/parachain.rs index 39a2e27470b2..504af0018698 100644 --- a/xcm/xcm-simulator/example/src/parachain.rs +++ b/xcm/xcm-simulator/example/src/parachain.rs @@ -47,7 +47,7 @@ use xcm_builder::{ SovereignSignedViaLocation, }; use xcm_executor::{ - traits::{Convert, JustTry}, + traits::{ConvertLocation, JustTry}, Config, XcmExecutor, }; @@ -160,7 +160,7 @@ impl EnsureOriginWithArg for ForeignCreators { if !a.starts_with(&origin_location) { return Err(o) } - SovereignAccountOf::convert(origin_location).map_err(|_| o) + SovereignAccountOf::convert_location(&origin_location).ok_or(o) } #[cfg(feature = "runtime-benchmarks")] From bfb9e87a6d9964a8769c01b2019c30db48f5349d Mon Sep 17 00:00:00 2001 From: Keith Yeung Date: Mon, 5 Jun 2023 22:39:01 +0800 Subject: [PATCH 03/56] Implement AliasOrigin processing in XCVM (#7245) * Implement AliasOrigin processing in XCVM * add builder types and first test * switch to more general builder types * clone target for RemovePrefixAccountId32 * change builder types * change AliasForeignAccountId32 and add test for AliasCase * add Aliasers type to xcm configs * add benchmark * benchmark fix * add benchmark function for runtimes * fix alias_origin result types * fix benchmark test * add runtime-benchmarks feature in pallet-xcm-benchmarks * fmt * remove AliasCase, add test and fmt * address feedback * ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::generic * ".git/.scripts/commands/bench/bench.sh" xcm westend pallet_xcm_benchmarks::generic * ".git/.scripts/commands/bench/bench.sh" xcm rococo pallet_xcm_benchmarks::generic * address feedback * lock * ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::generic * ".git/.scripts/commands/bench/bench.sh" xcm westend pallet_xcm_benchmarks::generic * ".git/.scripts/commands/bench/bench.sh" xcm rococo pallet_xcm_benchmarks::generic * change doc * fmt --------- Co-authored-by: Just van Stam Co-authored-by: Just van Stam Co-authored-by: command-bot <> --- runtime/kusama/src/lib.rs | 5 + .../xcm/pallet_xcm_benchmarks_generic.rs | 118 +++++++++--------- runtime/kusama/src/xcm_config.rs | 1 + runtime/polkadot/src/xcm_config.rs | 1 + runtime/rococo/src/lib.rs | 5 + .../xcm/pallet_xcm_benchmarks_generic.rs | 118 +++++++++--------- runtime/rococo/src/xcm_config.rs | 1 + runtime/test-runtime/src/xcm_config.rs | 1 + runtime/westend/src/lib.rs | 5 + .../xcm/pallet_xcm_benchmarks_generic.rs | 118 +++++++++--------- runtime/westend/src/xcm_config.rs | 1 + xcm/pallet-xcm-benchmarks/Cargo.toml | 1 + .../src/fungible/mock.rs | 1 + .../src/generic/benchmarking.rs | 13 ++ xcm/pallet-xcm-benchmarks/src/generic/mock.rs | 19 ++- xcm/pallet-xcm-benchmarks/src/generic/mod.rs | 5 + xcm/pallet-xcm/src/mock.rs | 1 + xcm/xcm-builder/src/lib.rs | 3 + xcm/xcm-builder/src/origin_aliases.rs | 37 ++++++ xcm/xcm-builder/src/tests/aliases.rs | 85 +++++++++++++ xcm/xcm-builder/src/tests/mock.rs | 22 +++- xcm/xcm-builder/src/tests/mod.rs | 1 + xcm/xcm-builder/tests/mock/mod.rs | 1 + xcm/xcm-executor/src/config.rs | 4 + xcm/xcm-executor/src/lib.rs | 10 +- xcm/xcm-simulator/example/src/parachain.rs | 1 + xcm/xcm-simulator/example/src/relay_chain.rs | 1 + xcm/xcm-simulator/fuzzer/src/parachain.rs | 1 + xcm/xcm-simulator/fuzzer/src/relay_chain.rs | 1 + 29 files changed, 397 insertions(+), 184 deletions(-) create mode 100644 xcm/xcm-builder/src/origin_aliases.rs create mode 100644 xcm/xcm-builder/src/tests/aliases.rs diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 35dc79a4b5ef..aebc53fbec10 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -2202,6 +2202,11 @@ sp_api::impl_runtime_apis! { // Kusama doesn't support exporting messages Err(BenchmarkError::Skip) } + + fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + // The XCM executor of Kusama doesn't have a configured `Aliasers` + Err(BenchmarkError::Skip) + } } let whitelist: Vec = vec![ diff --git a/runtime/kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/runtime/kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index e4790634faea..86932b997562 100644 --- a/runtime/kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/runtime/kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 @@ -68,8 +68,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3676` - // Minimum execution time: 31_951_000 picoseconds. - Weight::from_parts(32_879_000, 3676) + // Minimum execution time: 32_102_000 picoseconds. + Weight::from_parts(33_749_000, 3676) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -77,8 +77,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_691_000 picoseconds. - Weight::from_parts(2_783_000, 0) + // Minimum execution time: 2_624_000 picoseconds. + Weight::from_parts(2_714_000, 0) } /// Storage: XcmPallet Queries (r:1 w:0) /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) @@ -86,58 +86,58 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 10_819_000 picoseconds. - Weight::from_parts(11_035_000, 3634) + // Minimum execution time: 10_599_000 picoseconds. + Weight::from_parts(10_882_000, 3634) .saturating_add(T::DbWeight::get().reads(1)) } pub(crate) fn transact() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_035_000 picoseconds. - Weight::from_parts(12_454_000, 0) + // Minimum execution time: 11_985_000 picoseconds. + Weight::from_parts(12_274_000, 0) } pub(crate) fn refund_surplus() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_874_000 picoseconds. - Weight::from_parts(2_981_000, 0) + // Minimum execution time: 2_739_000 picoseconds. + Weight::from_parts(2_862_000, 0) } pub(crate) fn set_error_handler() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_632_000 picoseconds. - Weight::from_parts(2_703_000, 0) + // Minimum execution time: 2_533_000 picoseconds. + Weight::from_parts(2_646_000, 0) } pub(crate) fn set_appendix() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_554_000 picoseconds. - Weight::from_parts(2_642_000, 0) + // Minimum execution time: 2_563_000 picoseconds. + Weight::from_parts(2_647_000, 0) } pub(crate) fn clear_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_642_000 picoseconds. - Weight::from_parts(2_761_000, 0) + // Minimum execution time: 2_512_000 picoseconds. + Weight::from_parts(2_574_000, 0) } pub(crate) fn descend_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_406_000 picoseconds. - Weight::from_parts(3_535_000, 0) + // Minimum execution time: 3_307_000 picoseconds. + Weight::from_parts(3_448_000, 0) } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_568_000 picoseconds. - Weight::from_parts(2_647_000, 0) + // Minimum execution time: 2_524_000 picoseconds. + Weight::from_parts(2_614_000, 0) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -157,8 +157,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3676` - // Minimum execution time: 27_298_000 picoseconds. - Weight::from_parts(27_716_000, 3676) + // Minimum execution time: 27_275_000 picoseconds. + Weight::from_parts(27_861_000, 3676) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -168,8 +168,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `226` // Estimated: `3691` - // Minimum execution time: 14_960_000 picoseconds. - Weight::from_parts(15_461_000, 3691) + // Minimum execution time: 14_731_000 picoseconds. + Weight::from_parts(15_006_000, 3691) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -177,8 +177,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_667_000 picoseconds. - Weight::from_parts(2_736_000, 0) + // Minimum execution time: 2_446_000 picoseconds. + Weight::from_parts(2_581_000, 0) } /// Storage: XcmPallet VersionNotifyTargets (r:1 w:1) /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) @@ -200,8 +200,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3676` - // Minimum execution time: 34_532_000 picoseconds. - Weight::from_parts(35_207_000, 3676) + // Minimum execution time: 34_319_000 picoseconds. + Weight::from_parts(34_708_000, 3676) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -211,8 +211,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_196_000 picoseconds. - Weight::from_parts(5_283_000, 0) + // Minimum execution time: 4_974_000 picoseconds. + Weight::from_parts(5_155_000, 0) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -233,8 +233,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3676` - // Minimum execution time: 31_259_000 picoseconds. - Weight::from_parts(31_897_000, 3676) + // Minimum execution time: 30_858_000 picoseconds. + Weight::from_parts(31_858_000, 3676) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -242,36 +242,36 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_102_000 picoseconds. - Weight::from_parts(4_197_000, 0) + // Minimum execution time: 4_059_000 picoseconds. + Weight::from_parts(4_125_000, 0) } pub(crate) fn expect_asset() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_758_000 picoseconds. - Weight::from_parts(2_870_000, 0) + // Minimum execution time: 2_657_000 picoseconds. + Weight::from_parts(2_741_000, 0) } pub(crate) fn expect_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_629_000 picoseconds. - Weight::from_parts(2_755_000, 0) + // Minimum execution time: 2_585_000 picoseconds. + Weight::from_parts(2_653_000, 0) } pub(crate) fn expect_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_639_000 picoseconds. - Weight::from_parts(2_713_000, 0) + // Minimum execution time: 2_552_000 picoseconds. + Weight::from_parts(2_632_000, 0) } pub(crate) fn expect_transact_status() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_842_000 picoseconds. - Weight::from_parts(2_928_000, 0) + // Minimum execution time: 2_682_000 picoseconds. + Weight::from_parts(2_763_000, 0) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -291,8 +291,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3676` - // Minimum execution time: 34_560_000 picoseconds. - Weight::from_parts(34_859_000, 3676) + // Minimum execution time: 34_316_000 picoseconds. + Weight::from_parts(34_682_000, 3676) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -300,8 +300,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_179_000 picoseconds. - Weight::from_parts(8_362_000, 0) + // Minimum execution time: 7_938_000 picoseconds. + Weight::from_parts(8_071_000, 0) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -321,8 +321,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3676` - // Minimum execution time: 27_036_000 picoseconds. - Weight::from_parts(27_743_000, 3676) + // Minimum execution time: 28_002_000 picoseconds. + Weight::from_parts(28_184_000, 3676) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -330,35 +330,35 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_614_000 picoseconds. - Weight::from_parts(2_688_000, 0) + // Minimum execution time: 2_520_000 picoseconds. + Weight::from_parts(2_617_000, 0) } pub(crate) fn set_topic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_551_000 picoseconds. - Weight::from_parts(2_656_000, 0) + // Minimum execution time: 2_506_000 picoseconds. + Weight::from_parts(2_560_000, 0) } pub(crate) fn clear_topic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_597_000 picoseconds. - Weight::from_parts(2_708_000, 0) + // Minimum execution time: 2_503_000 picoseconds. + Weight::from_parts(2_605_000, 0) } pub(crate) fn set_fees_mode() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_610_000 picoseconds. - Weight::from_parts(2_758_000, 0) + // Minimum execution time: 2_511_000 picoseconds. + Weight::from_parts(2_597_000, 0) } pub(crate) fn unpaid_execution() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_766_000 picoseconds. - Weight::from_parts(3_372_000, 0) + // Minimum execution time: 2_617_000 picoseconds. + Weight::from_parts(2_715_000, 0) } } diff --git a/runtime/kusama/src/xcm_config.rs b/runtime/kusama/src/xcm_config.rs index 28c65cdddbc9..c2fa52a59b4d 100644 --- a/runtime/kusama/src/xcm_config.rs +++ b/runtime/kusama/src/xcm_config.rs @@ -357,6 +357,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = WithOriginFilter; type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; } parameter_types! { diff --git a/runtime/polkadot/src/xcm_config.rs b/runtime/polkadot/src/xcm_config.rs index d154959781f9..54696f47ee6b 100644 --- a/runtime/polkadot/src/xcm_config.rs +++ b/runtime/polkadot/src/xcm_config.rs @@ -344,6 +344,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = WithOriginFilter; type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; } parameter_types! { diff --git a/runtime/rococo/src/lib.rs b/runtime/rococo/src/lib.rs index 7614617d1738..e096a6642b4d 100644 --- a/runtime/rococo/src/lib.rs +++ b/runtime/rococo/src/lib.rs @@ -2299,6 +2299,11 @@ sp_api::impl_runtime_apis! { // Rococo doesn't support exporting messages Err(BenchmarkError::Skip) } + + fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + // The XCM executor of Rococo doesn't have a configured `Aliasers` + Err(BenchmarkError::Skip) + } } let whitelist: Vec = vec![ diff --git a/runtime/rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/runtime/rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 1687fa44ed4a..11abc4666050 100644 --- a/runtime/rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/runtime/rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 @@ -70,8 +70,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `565` // Estimated: `4030` - // Minimum execution time: 36_529_000 picoseconds. - Weight::from_parts(37_116_000, 4030) + // Minimum execution time: 36_305_000 picoseconds. + Weight::from_parts(37_096_000, 4030) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -79,8 +79,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_948_000 picoseconds. - Weight::from_parts(3_074_000, 0) + // Minimum execution time: 2_831_000 picoseconds. + Weight::from_parts(2_904_000, 0) } /// Storage: XcmPallet Queries (r:1 w:0) /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) @@ -88,58 +88,58 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 12_012_000 picoseconds. - Weight::from_parts(12_426_000, 3634) + // Minimum execution time: 11_769_000 picoseconds. + Weight::from_parts(12_122_000, 3634) .saturating_add(T::DbWeight::get().reads(1)) } pub(crate) fn transact() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_498_000 picoseconds. - Weight::from_parts(12_765_000, 0) + // Minimum execution time: 12_293_000 picoseconds. + Weight::from_parts(12_522_000, 0) } pub(crate) fn refund_surplus() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_103_000 picoseconds. - Weight::from_parts(3_194_000, 0) + // Minimum execution time: 2_858_000 picoseconds. + Weight::from_parts(2_965_000, 0) } pub(crate) fn set_error_handler() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_827_000 picoseconds. - Weight::from_parts(2_925_000, 0) + // Minimum execution time: 2_623_000 picoseconds. + Weight::from_parts(2_774_000, 0) } pub(crate) fn set_appendix() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_808_000 picoseconds. - Weight::from_parts(2_906_000, 0) + // Minimum execution time: 2_664_000 picoseconds. + Weight::from_parts(2_752_000, 0) } pub(crate) fn clear_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_857_000 picoseconds. - Weight::from_parts(2_904_000, 0) + // Minimum execution time: 2_646_000 picoseconds. + Weight::from_parts(2_709_000, 0) } pub(crate) fn descend_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_673_000 picoseconds. - Weight::from_parts(3_753_000, 0) + // Minimum execution time: 3_602_000 picoseconds. + Weight::from_parts(3_669_000, 0) } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_803_000 picoseconds. - Weight::from_parts(2_888_000, 0) + // Minimum execution time: 2_609_000 picoseconds. + Weight::from_parts(2_721_000, 0) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -161,8 +161,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `565` // Estimated: `4030` - // Minimum execution time: 31_532_000 picoseconds. - Weight::from_parts(32_226_000, 4030) + // Minimum execution time: 31_776_000 picoseconds. + Weight::from_parts(32_354_000, 4030) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -172,8 +172,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `226` // Estimated: `3691` - // Minimum execution time: 15_956_000 picoseconds. - Weight::from_parts(16_320_000, 3691) + // Minimum execution time: 15_912_000 picoseconds. + Weight::from_parts(16_219_000, 3691) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -181,8 +181,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_846_000 picoseconds. - Weight::from_parts(2_928_000, 0) + // Minimum execution time: 2_704_000 picoseconds. + Weight::from_parts(2_777_000, 0) } /// Storage: XcmPallet VersionNotifyTargets (r:1 w:1) /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) @@ -206,8 +206,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `565` // Estimated: `4030` - // Minimum execution time: 38_534_000 picoseconds. - Weight::from_parts(39_292_000, 4030) + // Minimum execution time: 38_690_000 picoseconds. + Weight::from_parts(39_157_000, 4030) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -217,8 +217,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_212_000 picoseconds. - Weight::from_parts(5_337_000, 0) + // Minimum execution time: 4_943_000 picoseconds. + Weight::from_parts(5_128_000, 0) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -241,8 +241,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `565` // Estimated: `4030` - // Minimum execution time: 35_468_000 picoseconds. - Weight::from_parts(35_805_000, 4030) + // Minimum execution time: 35_068_000 picoseconds. + Weight::from_parts(36_124_000, 4030) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -250,36 +250,36 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_606_000 picoseconds. - Weight::from_parts(4_706_000, 0) + // Minimum execution time: 6_438_000 picoseconds. + Weight::from_parts(6_500_000, 0) } pub(crate) fn expect_asset() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_012_000 picoseconds. - Weight::from_parts(3_133_000, 0) + // Minimum execution time: 4_773_000 picoseconds. + Weight::from_parts(4_840_000, 0) } pub(crate) fn expect_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_926_000 picoseconds. - Weight::from_parts(3_038_000, 0) + // Minimum execution time: 2_818_000 picoseconds. + Weight::from_parts(2_893_000, 0) } pub(crate) fn expect_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_803_000 picoseconds. - Weight::from_parts(2_865_000, 0) + // Minimum execution time: 2_611_000 picoseconds. + Weight::from_parts(2_708_000, 0) } pub(crate) fn expect_transact_status() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_037_000 picoseconds. - Weight::from_parts(3_124_000, 0) + // Minimum execution time: 2_870_000 picoseconds. + Weight::from_parts(2_958_000, 0) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -301,8 +301,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `565` // Estimated: `4030` - // Minimum execution time: 38_632_000 picoseconds. - Weight::from_parts(39_255_000, 4030) + // Minimum execution time: 40_735_000 picoseconds. + Weight::from_parts(66_023_000, 4030) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -310,8 +310,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_570_000 picoseconds. - Weight::from_parts(8_634_000, 0) + // Minimum execution time: 8_293_000 picoseconds. + Weight::from_parts(18_088_000, 0) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -333,8 +333,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `565` // Estimated: `4030` - // Minimum execution time: 31_792_000 picoseconds. - Weight::from_parts(32_271_000, 4030) + // Minimum execution time: 31_438_000 picoseconds. + Weight::from_parts(32_086_000, 4030) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -342,35 +342,35 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_861_000 picoseconds. - Weight::from_parts(2_967_000, 0) + // Minimum execution time: 2_676_000 picoseconds. + Weight::from_parts(2_746_000, 0) } pub(crate) fn set_topic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_929_000 picoseconds. - Weight::from_parts(2_995_000, 0) + // Minimum execution time: 2_629_000 picoseconds. + Weight::from_parts(2_724_000, 0) } pub(crate) fn clear_topic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_861_000 picoseconds. - Weight::from_parts(2_961_000, 0) + // Minimum execution time: 2_602_000 picoseconds. + Weight::from_parts(2_671_000, 0) } pub(crate) fn set_fees_mode() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_826_000 picoseconds. - Weight::from_parts(2_901_000, 0) + // Minimum execution time: 2_681_000 picoseconds. + Weight::from_parts(2_768_000, 0) } pub(crate) fn unpaid_execution() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_603_000 picoseconds. - Weight::from_parts(4_653_000, 0) + // Minimum execution time: 2_764_000 picoseconds. + Weight::from_parts(2_865_000, 0) } } diff --git a/runtime/rococo/src/xcm_config.rs b/runtime/rococo/src/xcm_config.rs index e0e73bf3c4a3..b488ba73e6a7 100644 --- a/runtime/rococo/src/xcm_config.rs +++ b/runtime/rococo/src/xcm_config.rs @@ -331,6 +331,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = WithOriginFilter; type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; } parameter_types! { diff --git a/runtime/test-runtime/src/xcm_config.rs b/runtime/test-runtime/src/xcm_config.rs index 8d7c57224ea6..45e7956d45ba 100644 --- a/runtime/test-runtime/src/xcm_config.rs +++ b/runtime/test-runtime/src/xcm_config.rs @@ -115,6 +115,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = super::RuntimeCall; type SafeCallFilter = Everything; + type Aliasers = Nothing; } #[cfg(feature = "runtime-benchmarks")] diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index 7963e911d010..d7850dcdd27d 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -1989,6 +1989,11 @@ sp_api::impl_runtime_apis! { // Westend doesn't support exporting messages Err(BenchmarkError::Skip) } + + fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + // The XCM executor of Westend doesn't have a configured `Aliasers` + Err(BenchmarkError::Skip) + } } type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; diff --git a/runtime/westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/runtime/westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index d125e8bf88f9..7cf3f50bde6a 100644 --- a/runtime/westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/runtime/westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 @@ -68,8 +68,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 31_799_000 picoseconds. - Weight::from_parts(32_268_000, 3634) + // Minimum execution time: 30_790_000 picoseconds. + Weight::from_parts(31_265_000, 3634) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -77,8 +77,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_114_000 picoseconds. - Weight::from_parts(3_209_000, 0) + // Minimum execution time: 2_741_000 picoseconds. + Weight::from_parts(2_823_000, 0) } /// Storage: XcmPallet Queries (r:1 w:0) /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) @@ -86,58 +86,58 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 11_350_000 picoseconds. - Weight::from_parts(11_664_000, 3634) + // Minimum execution time: 10_848_000 picoseconds. + Weight::from_parts(11_183_000, 3634) .saturating_add(T::DbWeight::get().reads(1)) } pub(crate) fn transact() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_740_000 picoseconds. - Weight::from_parts(12_997_000, 0) + // Minimum execution time: 12_145_000 picoseconds. + Weight::from_parts(12_366_000, 0) } pub(crate) fn refund_surplus() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_182_000 picoseconds. - Weight::from_parts(3_258_000, 0) + // Minimum execution time: 2_837_000 picoseconds. + Weight::from_parts(2_939_000, 0) } pub(crate) fn set_error_handler() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_909_000 picoseconds. - Weight::from_parts(2_973_000, 0) + // Minimum execution time: 2_526_000 picoseconds. + Weight::from_parts(2_622_000, 0) } pub(crate) fn set_appendix() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_967_000 picoseconds. - Weight::from_parts(3_042_000, 0) + // Minimum execution time: 2_603_000 picoseconds. + Weight::from_parts(2_642_000, 0) } pub(crate) fn clear_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_980_000 picoseconds. - Weight::from_parts(3_041_000, 0) + // Minimum execution time: 2_500_000 picoseconds. + Weight::from_parts(2_573_000, 0) } pub(crate) fn descend_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_798_000 picoseconds. - Weight::from_parts(3_877_000, 0) + // Minimum execution time: 3_323_000 picoseconds. + Weight::from_parts(3_401_000, 0) } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_884_000 picoseconds. - Weight::from_parts(2_951_000, 0) + // Minimum execution time: 2_557_000 picoseconds. + Weight::from_parts(2_620_000, 0) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -157,8 +157,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 26_538_000 picoseconds. - Weight::from_parts(27_107_000, 3634) + // Minimum execution time: 25_828_000 picoseconds. + Weight::from_parts(26_318_000, 3634) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -168,8 +168,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `226` // Estimated: `3691` - // Minimum execution time: 15_633_000 picoseconds. - Weight::from_parts(15_851_000, 3691) + // Minimum execution time: 14_794_000 picoseconds. + Weight::from_parts(15_306_000, 3691) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -177,8 +177,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_873_000 picoseconds. - Weight::from_parts(2_998_000, 0) + // Minimum execution time: 2_534_000 picoseconds. + Weight::from_parts(2_574_000, 0) } /// Storage: XcmPallet VersionNotifyTargets (r:1 w:1) /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) @@ -200,8 +200,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 33_283_000 picoseconds. - Weight::from_parts(33_682_000, 3634) + // Minimum execution time: 32_218_000 picoseconds. + Weight::from_parts(32_945_000, 3634) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -211,8 +211,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_240_000 picoseconds. - Weight::from_parts(5_345_000, 0) + // Minimum execution time: 4_983_000 picoseconds. + Weight::from_parts(5_132_000, 0) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -233,8 +233,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 30_487_000 picoseconds. - Weight::from_parts(30_935_000, 3634) + // Minimum execution time: 29_375_000 picoseconds. + Weight::from_parts(30_320_000, 3634) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -242,36 +242,36 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_584_000 picoseconds. - Weight::from_parts(4_658_000, 0) + // Minimum execution time: 4_101_000 picoseconds. + Weight::from_parts(4_228_000, 0) } pub(crate) fn expect_asset() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_112_000 picoseconds. - Weight::from_parts(3_203_000, 0) + // Minimum execution time: 2_740_000 picoseconds. + Weight::from_parts(2_814_000, 0) } pub(crate) fn expect_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_033_000 picoseconds. - Weight::from_parts(3_095_000, 0) + // Minimum execution time: 2_716_000 picoseconds. + Weight::from_parts(2_795_000, 0) } pub(crate) fn expect_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_945_000 picoseconds. - Weight::from_parts(3_014_000, 0) + // Minimum execution time: 2_550_000 picoseconds. + Weight::from_parts(2_601_000, 0) } pub(crate) fn expect_transact_status() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_117_000 picoseconds. - Weight::from_parts(3_204_000, 0) + // Minimum execution time: 2_762_000 picoseconds. + Weight::from_parts(2_849_000, 0) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -291,8 +291,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 32_939_000 picoseconds. - Weight::from_parts(33_499_000, 3634) + // Minimum execution time: 31_709_000 picoseconds. + Weight::from_parts(32_288_000, 3634) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -300,8 +300,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_781_000 picoseconds. - Weight::from_parts(7_881_000, 0) + // Minimum execution time: 7_209_000 picoseconds. + Weight::from_parts(7_332_000, 0) } /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) @@ -321,8 +321,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 26_864_000 picoseconds. - Weight::from_parts(27_419_000, 3634) + // Minimum execution time: 26_161_000 picoseconds. + Weight::from_parts(26_605_000, 3634) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -330,35 +330,35 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_000_000 picoseconds. - Weight::from_parts(3_061_000, 0) + // Minimum execution time: 2_539_000 picoseconds. + Weight::from_parts(2_647_000, 0) } pub(crate) fn set_topic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_881_000 picoseconds. - Weight::from_parts(2_968_000, 0) + // Minimum execution time: 2_494_000 picoseconds. + Weight::from_parts(2_588_000, 0) } pub(crate) fn clear_topic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_902_000 picoseconds. - Weight::from_parts(2_976_000, 0) + // Minimum execution time: 2_510_000 picoseconds. + Weight::from_parts(2_590_000, 0) } pub(crate) fn set_fees_mode() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_907_000 picoseconds. - Weight::from_parts(2_981_000, 0) + // Minimum execution time: 2_491_000 picoseconds. + Weight::from_parts(2_546_000, 0) } pub(crate) fn unpaid_execution() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_136_000 picoseconds. - Weight::from_parts(3_184_000, 0) + // Minimum execution time: 2_696_000 picoseconds. + Weight::from_parts(2_816_000, 0) } } diff --git a/runtime/westend/src/xcm_config.rs b/runtime/westend/src/xcm_config.rs index c3c28e8c3fe7..d6a3feb3bc0f 100644 --- a/runtime/westend/src/xcm_config.rs +++ b/runtime/westend/src/xcm_config.rs @@ -268,6 +268,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = WithOriginFilter; type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; } /// Type to convert an `Origin` type value into a `MultiLocation` value which represents an interior location diff --git a/xcm/pallet-xcm-benchmarks/Cargo.toml b/xcm/pallet-xcm-benchmarks/Cargo.toml index c9c04d533cd5..34a5a8fa9c88 100644 --- a/xcm/pallet-xcm-benchmarks/Cargo.toml +++ b/xcm/pallet-xcm-benchmarks/Cargo.toml @@ -49,6 +49,7 @@ std = [ runtime-benchmarks = [ "xcm-builder/runtime-benchmarks", "xcm-executor/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks", diff --git a/xcm/pallet-xcm-benchmarks/src/fungible/mock.rs b/xcm/pallet-xcm-benchmarks/src/fungible/mock.rs index a6dd469a868f..6f99ac60fc7b 100644 --- a/xcm/pallet-xcm-benchmarks/src/fungible/mock.rs +++ b/xcm/pallet-xcm-benchmarks/src/fungible/mock.rs @@ -159,6 +159,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; + type Aliasers = Nothing; } impl crate::Config for Test { diff --git a/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs b/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs index 9a4519937aea..fa062ce0f84d 100644 --- a/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs +++ b/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs @@ -634,6 +634,19 @@ benchmarks! { executor.bench_process(xcm)?; } + alias_origin { + let (origin, target) = T::alias_origin().map_err(|_| BenchmarkError::Skip)?; + + let mut executor = new_executor::(origin); + + let instruction = Instruction::AliasOrigin(target.clone()); + let xcm = Xcm(vec![instruction]); + }: { + executor.bench_process(xcm)?; + } verify { + assert_eq!(executor.origin(), &Some(target)); + } + impl_benchmark_test_suite!( Pallet, crate::generic::mock::new_test_ext(), diff --git a/xcm/pallet-xcm-benchmarks/src/generic/mock.rs b/xcm/pallet-xcm-benchmarks/src/generic/mock.rs index 9110d55f800a..2d1df0164ab4 100644 --- a/xcm/pallet-xcm-benchmarks/src/generic/mock.rs +++ b/xcm/pallet-xcm-benchmarks/src/generic/mock.rs @@ -19,7 +19,7 @@ use crate::{generic, mock::*, *}; use codec::Decode; use frame_support::{ - parameter_types, + match_types, parameter_types, traits::{Everything, OriginTrait}, weights::Weight, }; @@ -33,7 +33,7 @@ use xcm_builder::{ Assets, TestAssetExchanger, TestAssetLocker, TestAssetTrap, TestSubscriptionService, TestUniversalAliases, }, - AllowUnpaidExecutionFrom, + AliasForeignAccountId32, AllowUnpaidExecutionFrom, }; use xcm_executor::traits::ConvertOrigin; @@ -105,6 +105,13 @@ parameter_types! { pub const MaxAssetsIntoHolding: u32 = 64; } +match_types! { + pub type OnlyParachains: impl Contains = { + MultiLocation { parents: 0, interior: X1(Parachain(_)) } + }; +} + +type Aliasers = AliasForeignAccountId32; pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; @@ -131,6 +138,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = TestUniversalAliases; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; + type Aliasers = Aliasers; } impl crate::Config for Test { @@ -191,6 +199,13 @@ impl generic::Config for Test { // No MessageExporter in tests Err(BenchmarkError::Skip) } + + fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + let origin: MultiLocation = + (Parachain(1), AccountId32 { network: None, id: [0; 32] }).into(); + let target: MultiLocation = AccountId32 { network: None, id: [0; 32] }.into(); + Ok((origin, target)) + } } #[cfg(feature = "runtime-benchmarks")] diff --git a/xcm/pallet-xcm-benchmarks/src/generic/mod.rs b/xcm/pallet-xcm-benchmarks/src/generic/mod.rs index 17e8aa6de95f..e5fce008a0f2 100644 --- a/xcm/pallet-xcm-benchmarks/src/generic/mod.rs +++ b/xcm/pallet-xcm-benchmarks/src/generic/mod.rs @@ -80,6 +80,11 @@ pub mod pallet { /// If set to `Err`, benchmarks which rely on `export_message` will be skipped. fn export_message_origin_and_destination( ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError>; + + /// A `(MultiLocation, MultiLocation)` that is one of the `Aliasers` configured by the XCM executor. + /// + /// If set to `Err`, benchmarks which rely on a universal alias will be skipped. + fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError>; } #[pallet::pallet] diff --git a/xcm/pallet-xcm/src/mock.rs b/xcm/pallet-xcm/src/mock.rs index 6cfc1447e2b4..2d3cc385c230 100644 --- a/xcm/pallet-xcm/src/mock.rs +++ b/xcm/pallet-xcm/src/mock.rs @@ -310,6 +310,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; + type Aliasers = Nothing; } pub type LocalOriginToLocation = SignedToAccountId32; diff --git a/xcm/xcm-builder/src/lib.rs b/xcm/xcm-builder/src/lib.rs index 5ad7cc025029..984ace84dc69 100644 --- a/xcm/xcm-builder/src/lib.rs +++ b/xcm/xcm-builder/src/lib.rs @@ -101,5 +101,8 @@ pub use universal_exports::{ SovereignPaidRemoteExporter, UnpaidLocalExporter, UnpaidRemoteExporter, }; +mod origin_aliases; +pub use origin_aliases::AliasForeignAccountId32; + mod pay; pub use pay::{FixedLocation, LocatableAssetId, PayAccountId32OnChainOverXcm, PayOverXcm}; diff --git a/xcm/xcm-builder/src/origin_aliases.rs b/xcm/xcm-builder/src/origin_aliases.rs new file mode 100644 index 000000000000..d9e3ee3dfc4f --- /dev/null +++ b/xcm/xcm-builder/src/origin_aliases.rs @@ -0,0 +1,37 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Implementation for ContainsPair. + +use frame_support::traits::{Contains, ContainsPair}; +use sp_std::marker::PhantomData; +use xcm::latest::prelude::*; + +/// Alias a Foreign AccountId32 with a local AccountId32 if the Foreign AccountId32 matches the `Prefix` pattern. +/// +/// Requires that the prefixed origin AccountId32 matches the target AccountId32. +pub struct AliasForeignAccountId32(PhantomData); +impl> ContainsPair + for AliasForeignAccountId32 +{ + fn contains(origin: &MultiLocation, target: &MultiLocation) -> bool { + if let (prefix, Some(account_id @ AccountId32 { .. })) = origin.split_last_interior() { + return Prefix::contains(&prefix) && + *target == MultiLocation { parents: 0, interior: X1(account_id) } + } + false + } +} diff --git a/xcm/xcm-builder/src/tests/aliases.rs b/xcm/xcm-builder/src/tests/aliases.rs new file mode 100644 index 000000000000..f686926a2522 --- /dev/null +++ b/xcm/xcm-builder/src/tests/aliases.rs @@ -0,0 +1,85 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +use super::*; + +#[test] +fn alias_foreign_account_sibling_prefix() { + // Accounts Differ + assert!(!AliasForeignAccountId32::::contains( + &(Parent, Parachain(1), AccountId32 { network: None, id: [0; 32] }).into(), + &(AccountId32 { network: None, id: [1; 32] }).into() + )); + + assert!(AliasForeignAccountId32::::contains( + &(Parent, Parachain(1), AccountId32 { network: None, id: [0; 32] }).into(), + &(AccountId32 { network: None, id: [0; 32] }).into() + )); +} + +#[test] +fn alias_foreign_account_child_prefix() { + // Accounts Differ + assert!(!AliasForeignAccountId32::::contains( + &(Parachain(1), AccountId32 { network: None, id: [0; 32] }).into(), + &(AccountId32 { network: None, id: [1; 32] }).into() + )); + + assert!(AliasForeignAccountId32::::contains( + &(Parachain(1), AccountId32 { network: None, id: [0; 32] }).into(), + &(AccountId32 { network: None, id: [0; 32] }).into() + )); +} + +#[test] +fn alias_foreign_account_parent_prefix() { + // Accounts Differ + assert!(!AliasForeignAccountId32::::contains( + &(Parent, AccountId32 { network: None, id: [0; 32] }).into(), + &(AccountId32 { network: None, id: [1; 32] }).into() + )); + + assert!(AliasForeignAccountId32::::contains( + &(Parent, AccountId32 { network: None, id: [0; 32] }).into(), + &(AccountId32 { network: None, id: [0; 32] }).into() + )); +} + +#[test] +fn alias_origin_should_work() { + AllowUnpaidFrom::set(vec![ + (Parent, Parachain(1), AccountId32 { network: None, id: [0; 32] }).into(), + (Parachain(1), AccountId32 { network: None, id: [0; 32] }).into(), + ]); + + let message = Xcm(vec![AliasOrigin((AccountId32 { network: None, id: [0; 32] }).into())]); + let hash = fake_message_hash(&message); + let r = XcmExecutor::::execute_xcm( + (Parachain(1), AccountId32 { network: None, id: [0; 32] }), + message.clone(), + hash, + Weight::from_parts(50, 50), + ); + assert_eq!(r, Outcome::Incomplete(Weight::from_parts(10, 10), XcmError::NoPermission)); + + let r = XcmExecutor::::execute_xcm( + (Parent, Parachain(1), AccountId32 { network: None, id: [0; 32] }), + message.clone(), + hash, + Weight::from_parts(50, 50), + ); + assert_eq!(r, Outcome::Complete(Weight::from_parts(10, 10))); +} diff --git a/xcm/xcm-builder/src/tests/mock.rs b/xcm/xcm-builder/src/tests/mock.rs index b87e78df5b12..66a676369a67 100644 --- a/xcm/xcm-builder/src/tests/mock.rs +++ b/xcm/xcm-builder/src/tests/mock.rs @@ -19,8 +19,9 @@ use crate::{ test_utils::*, }; pub use crate::{ - AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowTopLevelPaidExecutionFrom, - AllowUnpaidExecutionFrom, FixedRateOfFungible, FixedWeightBounds, TakeWeightCredit, + AliasForeignAccountId32, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, FixedRateOfFungible, + FixedWeightBounds, TakeWeightCredit, }; use frame_support::traits::{ContainsPair, Everything}; pub use frame_support::{ @@ -28,9 +29,9 @@ pub use frame_support::{ DispatchError, DispatchInfo, DispatchResultWithPostInfo, Dispatchable, GetDispatchInfo, Parameter, PostDispatchInfo, }, - ensure, parameter_types, + ensure, match_types, parameter_types, sp_runtime::DispatchErrorWithPostInfo, - traits::{Contains, Get, IsInVec}, + traits::{ConstU32, Contains, Get, IsInVec}, }; pub use parity_scale_codec::{Decode, Encode}; pub use sp_io::hashing::blake2_256; @@ -646,6 +647,18 @@ impl AssetExchange for TestAssetExchange { } } +match_types! { + pub type SiblingPrefix: impl Contains = { + MultiLocation { parents: 1, interior: X1(Parachain(_)) } + }; + pub type ChildPrefix: impl Contains = { + MultiLocation { parents: 0, interior: X1(Parachain(_)) } + }; + pub type ParentPrefix: impl Contains = { + MultiLocation { parents: 1, interior: Here } + }; +} + pub struct TestConfig; impl Config for TestConfig { type RuntimeCall = TestCall; @@ -671,6 +684,7 @@ impl Config for TestConfig { type MessageExporter = TestMessageExporter; type CallDispatcher = TestCall; type SafeCallFilter = Everything; + type Aliasers = AliasForeignAccountId32; } pub fn fungible_multi_asset(location: MultiLocation, amount: u128) -> MultiAsset { diff --git a/xcm/xcm-builder/src/tests/mod.rs b/xcm/xcm-builder/src/tests/mod.rs index 62172005a0cf..6daf1872f055 100644 --- a/xcm/xcm-builder/src/tests/mod.rs +++ b/xcm/xcm-builder/src/tests/mod.rs @@ -26,6 +26,7 @@ use xcm_executor::{traits::prelude::*, Config, XcmExecutor}; mod mock; use mock::*; +mod aliases; mod assets; mod barriers; mod basic; diff --git a/xcm/xcm-builder/tests/mock/mod.rs b/xcm/xcm-builder/tests/mock/mod.rs index 2cee366742ce..6c2c8f222add 100644 --- a/xcm/xcm-builder/tests/mock/mod.rs +++ b/xcm/xcm-builder/tests/mock/mod.rs @@ -203,6 +203,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; + type Aliasers = Nothing; } pub type LocalOriginToLocation = SignedToAccountId32; diff --git a/xcm/xcm-executor/src/config.rs b/xcm/xcm-executor/src/config.rs index 2672eb41502f..1fc5cef39215 100644 --- a/xcm/xcm-executor/src/config.rs +++ b/xcm/xcm-executor/src/config.rs @@ -45,6 +45,10 @@ pub trait Config { /// Combinations of (Asset, Location) pairs which we trust as teleporters. type IsTeleporter: ContainsPair; + /// A list of (Origin, Target) pairs allowing a given Origin to be substituted with its + /// corresponding Target pair. + type Aliasers: ContainsPair; + /// This chain's Universal Location. type UniversalLocation: Get; diff --git a/xcm/xcm-executor/src/lib.rs b/xcm/xcm-executor/src/lib.rs index 16f53fd6503b..050d73837085 100644 --- a/xcm/xcm-executor/src/lib.rs +++ b/xcm/xcm-executor/src/lib.rs @@ -914,7 +914,15 @@ impl XcmExecutor { self.context.topic = None; Ok(()) }, - AliasOrigin(_) => Err(XcmError::NoPermission), + AliasOrigin(target) => { + let origin = self.origin_ref().ok_or(XcmError::BadOrigin)?; + if Config::Aliasers::contains(origin, &target) { + self.context.origin = Some(target); + Ok(()) + } else { + Err(XcmError::NoPermission) + } + }, UnpaidExecution { check_origin, .. } => { ensure!( check_origin.is_none() || self.context.origin == check_origin, diff --git a/xcm/xcm-simulator/example/src/parachain.rs b/xcm/xcm-simulator/example/src/parachain.rs index 504af0018698..875904ddecd9 100644 --- a/xcm/xcm-simulator/example/src/parachain.rs +++ b/xcm/xcm-simulator/example/src/parachain.rs @@ -250,6 +250,7 @@ impl Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; + type Aliasers = Nothing; } #[frame_support::pallet] diff --git a/xcm/xcm-simulator/example/src/relay_chain.rs b/xcm/xcm-simulator/example/src/relay_chain.rs index 10ad9b68c634..6f64249b40fc 100644 --- a/xcm/xcm-simulator/example/src/relay_chain.rs +++ b/xcm/xcm-simulator/example/src/relay_chain.rs @@ -194,6 +194,7 @@ impl Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; + type Aliasers = Nothing; } pub type LocalOriginToLocation = SignedToAccountId32; diff --git a/xcm/xcm-simulator/fuzzer/src/parachain.rs b/xcm/xcm-simulator/fuzzer/src/parachain.rs index 4934bd6ab1c1..26438f02f45f 100644 --- a/xcm/xcm-simulator/fuzzer/src/parachain.rs +++ b/xcm/xcm-simulator/fuzzer/src/parachain.rs @@ -163,6 +163,7 @@ impl Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; + type Aliasers = Nothing; } #[frame_support::pallet] diff --git a/xcm/xcm-simulator/fuzzer/src/relay_chain.rs b/xcm/xcm-simulator/fuzzer/src/relay_chain.rs index 6b0023a78965..75b42e300316 100644 --- a/xcm/xcm-simulator/fuzzer/src/relay_chain.rs +++ b/xcm/xcm-simulator/fuzzer/src/relay_chain.rs @@ -158,6 +158,7 @@ impl Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; + type Aliasers = Nothing; } pub type LocalOriginToLocation = SignedToAccountId32; From cab7ae5c06049e58eabf828df2a09e0329de3be4 Mon Sep 17 00:00:00 2001 From: ordian Date: Mon, 5 Jun 2023 18:21:42 +0200 Subject: [PATCH 04/56] dispute-coordinator: past session dispute slashing (#6811) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * runtime/vstaging: unapplied_slashes runtime API * runtime/vstaging: key_ownership_proof runtime API * runtime/ParachainHost: submit_report_dispute_lost * fix key_ownership_proof API * runtime: submit_report_dispute_lost runtime API * nits * Update node/subsystem-types/src/messages.rs Co-authored-by: Marcin S. * revert unrelated fmt changes * dispute-coordinator: past session dispute slashing * encapsule runtime api call for submitting report * prettify: extract into a function * do not exit on runtime api error * fix tests * try initial zombienet test * try something * fix a typo * try cumulus-based collator * fix clippy * build polkadot-debug images with fast-runtime enabled * wip * runtime/inclusion: fix availability_threshold * fix wip * fix wip II * revert native provider * propagate tx submission error * DEBUG: sync=trace * print key ownership proof len * panic repro * log validator index in panic message * post merge fixes * replace debug assertion with a log * fix compilation * Let's log the dispatch info in validate block. * fix double encoding * Revert "Let's log the dispatch info in validate block." This reverts commit a70fbc51b464d7f4355dbada5e16cd83cf71eab4. * Revert "Let's log the dispatch info in validate block." This reverts commit a70fbc51b464d7f4355dbada5e16cd83cf71eab4. * fix compilation * update to latest zombienet and fix test * lower finality lag to 11 * bump zombienet again * add a workaround, but still does not work * Update .gitlab-ci.yml bump zombienet. * add a comment and search logs on all nodes --------- Co-authored-by: Marcin S. Co-authored-by: Bastian Köcher Co-authored-by: Javier Viola --- .../dispute-coordinator/src/initialized.rs | 168 ++++++++++++++++-- .../dispute-coordinator/src/scraping/mod.rs | 34 +++- .../dispute-coordinator/src/scraping/tests.rs | 14 ++ node/core/dispute-coordinator/src/tests.rs | 6 + node/subsystem-util/src/lib.rs | 9 +- node/subsystem-util/src/runtime/mod.rs | 60 ++++++- primitives/src/vstaging/slashing.rs | 5 + runtime/parachains/src/disputes/slashing.rs | 41 ++--- scripts/ci/gitlab/pipeline/build.yml | 2 +- scripts/ci/gitlab/pipeline/zombienet.yml | 32 ++++ ...0004-parachains-disputes-past-session.toml | 45 +++++ ...004-parachains-disputes-past-session.zndsl | 37 ++++ 12 files changed, 407 insertions(+), 46 deletions(-) create mode 100644 zombienet_tests/functional/0004-parachains-disputes-past-session.toml create mode 100644 zombienet_tests/functional/0004-parachains-disputes-past-session.zndsl diff --git a/node/core/dispute-coordinator/src/initialized.rs b/node/core/dispute-coordinator/src/initialized.rs index 1b90a9d865e1..25bbcde6ee7f 100644 --- a/node/core/dispute-coordinator/src/initialized.rs +++ b/node/core/dispute-coordinator/src/initialized.rs @@ -39,9 +39,11 @@ use polkadot_node_subsystem::{ }, overseer, ActivatedLeaf, ActiveLeavesUpdate, FromOrchestra, OverseerSignal, }; -use polkadot_node_subsystem_util::runtime::RuntimeInfo; +use polkadot_node_subsystem_util::runtime::{ + key_ownership_proof, submit_report_dispute_lost, RuntimeInfo, +}; use polkadot_primitives::{ - BlockNumber, CandidateHash, CandidateReceipt, CompactStatement, DisputeStatement, + vstaging, BlockNumber, CandidateHash, CandidateReceipt, CompactStatement, DisputeStatement, DisputeStatementSet, Hash, ScrapedOnChainVotes, SessionIndex, ValidDisputeStatementKind, ValidatorId, ValidatorIndex, }; @@ -52,6 +54,7 @@ use crate::{ import::{CandidateEnvironment, CandidateVoteState}, is_potential_spam, metrics::Metrics, + scraping::ScrapedUpdates, status::{get_active_with_status, Clock}, DisputeCoordinatorSubsystem, LOG_TARGET, }; @@ -348,27 +351,167 @@ impl Initialized { }, } + let ScrapedUpdates { unapplied_slashes, on_chain_votes, .. } = scraped_updates; + + self.process_unapplied_slashes(ctx, new_leaf.hash, unapplied_slashes).await; + gum::trace!( target: LOG_TARGET, timestamp = now, "Will process {} onchain votes", - scraped_updates.on_chain_votes.len() + on_chain_votes.len() ); - self.process_chain_import_backlog( - ctx, - overlay_db, - scraped_updates.on_chain_votes, - now, - new_leaf.hash, - ) - .await; + self.process_chain_import_backlog(ctx, overlay_db, on_chain_votes, now, new_leaf.hash) + .await; } gum::trace!(target: LOG_TARGET, timestamp = now, "Done processing ActiveLeavesUpdate"); Ok(()) } + /// For each unapplied (past-session) slash, report an unsigned extrinsic + /// to the runtime. + async fn process_unapplied_slashes( + &mut self, + ctx: &mut Context, + relay_parent: Hash, + unapplied_slashes: Vec<(SessionIndex, CandidateHash, vstaging::slashing::PendingSlashes)>, + ) { + for (session_index, candidate_hash, pending) in unapplied_slashes { + gum::info!( + target: LOG_TARGET, + ?session_index, + ?candidate_hash, + n_slashes = pending.keys.len(), + "Processing unapplied validator slashes", + ); + + let inclusions = self.scraper.get_blocks_including_candidate(&candidate_hash); + if inclusions.is_empty() { + gum::info!( + target: LOG_TARGET, + "Couldn't find inclusion parent for an unapplied slash", + ); + return + } + + // Find the first inclusion parent that we can use + // to generate key ownership proof on. + // We use inclusion parents because of the proper session index. + let mut key_ownership_proofs = Vec::new(); + let mut dispute_proofs = Vec::new(); + + for (_height, inclusion_parent) in inclusions { + for (validator_index, validator_id) in pending.keys.iter() { + let res = + key_ownership_proof(ctx.sender(), inclusion_parent, validator_id.clone()) + .await; + + match res { + Ok(Some(key_ownership_proof)) => { + key_ownership_proofs.push(key_ownership_proof); + let time_slot = vstaging::slashing::DisputesTimeSlot::new( + session_index, + candidate_hash, + ); + let dispute_proof = vstaging::slashing::DisputeProof { + time_slot, + kind: pending.kind, + validator_index: *validator_index, + validator_id: validator_id.clone(), + }; + dispute_proofs.push(dispute_proof); + }, + Ok(None) => {}, + Err(error) => { + gum::debug!( + target: LOG_TARGET, + ?error, + ?session_index, + ?candidate_hash, + ?validator_id, + "Could not generate key ownership proof", + ); + }, + } + } + + if !key_ownership_proofs.is_empty() { + // If we found a parent that we can use, stop searching. + // If one key ownership was resolved successfully, all of them should be. + debug_assert_eq!(key_ownership_proofs.len(), pending.keys.len()); + break + } + } + + let expected_keys = pending.keys.len(); + let resolved_keys = key_ownership_proofs.len(); + if resolved_keys < expected_keys { + gum::warn!( + target: LOG_TARGET, + ?session_index, + ?candidate_hash, + "Could not generate key ownership proofs for {} keys", + expected_keys - resolved_keys, + ); + } + debug_assert_eq!(resolved_keys, dispute_proofs.len()); + + for (key_ownership_proof, dispute_proof) in + key_ownership_proofs.into_iter().zip(dispute_proofs.into_iter()) + { + let validator_id = dispute_proof.validator_id.clone(); + + gum::info!( + target: LOG_TARGET, + ?session_index, + ?candidate_hash, + key_ownership_proof_len = key_ownership_proof.len(), + "Trying to submit a slashing report", + ); + + let res = submit_report_dispute_lost( + ctx.sender(), + relay_parent, + dispute_proof, + key_ownership_proof, + ) + .await; + + match res { + Err(error) => { + gum::warn!( + target: LOG_TARGET, + ?error, + ?session_index, + ?candidate_hash, + "Error reporting pending slash", + ); + }, + Ok(Some(())) => { + gum::info!( + target: LOG_TARGET, + ?session_index, + ?candidate_hash, + ?validator_id, + "Successfully reported pending slash", + ); + }, + Ok(None) => { + gum::debug!( + target: LOG_TARGET, + ?session_index, + ?candidate_hash, + ?validator_id, + "Duplicate pending slash report", + ); + }, + } + } + } + } + /// Process one batch of our `chain_import_backlog`. /// /// `new_votes` will be appended beforehand. @@ -475,10 +618,11 @@ impl Initialized { validator_public.clone(), validator_signature.clone(), ).is_ok(), - "Scraped backing votes had invalid signature! candidate: {:?}, session: {:?}, validator_public: {:?}", + "Scraped backing votes had invalid signature! candidate: {:?}, session: {:?}, validator_public: {:?}, validator_index: {}", candidate_hash, session, validator_public, + validator_index.0, ); let signed_dispute_statement = SignedDisputeStatement::new_unchecked_from_trusted_source( diff --git a/node/core/dispute-coordinator/src/scraping/mod.rs b/node/core/dispute-coordinator/src/scraping/mod.rs index 2d2096f62614..3ec03dd18bb3 100644 --- a/node/core/dispute-coordinator/src/scraping/mod.rs +++ b/node/core/dispute-coordinator/src/scraping/mod.rs @@ -27,9 +27,12 @@ use polkadot_node_subsystem::{ messages::ChainApiMessage, overseer, ActivatedLeaf, ActiveLeavesUpdate, ChainApiError, SubsystemSender, }; -use polkadot_node_subsystem_util::runtime::{get_candidate_events, get_on_chain_votes}; +use polkadot_node_subsystem_util::runtime::{ + get_candidate_events, get_on_chain_votes, get_unapplied_slashes, +}; use polkadot_primitives::{ - BlockNumber, CandidateEvent, CandidateHash, CandidateReceipt, Hash, ScrapedOnChainVotes, + vstaging, BlockNumber, CandidateEvent, CandidateHash, CandidateReceipt, Hash, + ScrapedOnChainVotes, SessionIndex, }; use crate::{ @@ -64,11 +67,16 @@ const LRU_OBSERVED_BLOCKS_CAPACITY: NonZeroUsize = match NonZeroUsize::new(20) { pub struct ScrapedUpdates { pub on_chain_votes: Vec, pub included_receipts: Vec, + pub unapplied_slashes: Vec<(SessionIndex, CandidateHash, vstaging::slashing::PendingSlashes)>, } impl ScrapedUpdates { pub fn new() -> Self { - Self { on_chain_votes: Vec::new(), included_receipts: Vec::new() } + Self { + on_chain_votes: Vec::new(), + included_receipts: Vec::new(), + unapplied_slashes: Vec::new(), + } } } @@ -120,7 +128,7 @@ impl Inclusions { .retain(|_, blocks_including| blocks_including.keys().len() > 0); } - pub fn get(&mut self, candidate: &CandidateHash) -> Vec<(BlockNumber, Hash)> { + pub fn get(&self, candidate: &CandidateHash) -> Vec<(BlockNumber, Hash)> { let mut inclusions_as_vec: Vec<(BlockNumber, Hash)> = Vec::new(); if let Some(blocks_including) = self.inclusions_inner.get(candidate) { for (height, blocks_at_height) in blocks_including.iter() { @@ -256,6 +264,22 @@ impl ChainScraper { } } + // for unapplied slashes, we only look at the latest activated hash, + // it should accumulate them all + match get_unapplied_slashes(sender, activated.hash).await { + Ok(unapplied_slashes) => { + scraped_updates.unapplied_slashes = unapplied_slashes; + }, + Err(error) => { + gum::debug!( + target: LOG_TARGET, + block_hash = ?activated.hash, + ?error, + "Error fetching unapplied slashes.", + ); + }, + } + self.last_observed_blocks.put(activated.hash, ()); Ok(scraped_updates) @@ -403,7 +427,7 @@ impl ChainScraper { } pub fn get_blocks_including_candidate( - &mut self, + &self, candidate: &CandidateHash, ) -> Vec<(BlockNumber, Hash)> { self.inclusions.get(candidate) diff --git a/node/core/dispute-coordinator/src/scraping/tests.rs b/node/core/dispute-coordinator/src/scraping/tests.rs index 55726b3f2727..57e0731056b7 100644 --- a/node/core/dispute-coordinator/src/scraping/tests.rs +++ b/node/core/dispute-coordinator/src/scraping/tests.rs @@ -81,6 +81,7 @@ impl TestState { ) .await; assert_chain_vote_request(&mut ctx_handle, &chain).await; + assert_unapplied_slashes_request(&mut ctx_handle, &chain).await; }; let (scraper, _) = join(ChainScraper::new(ctx.sender(), leaf.clone()), overseer_fut) @@ -242,6 +243,18 @@ async fn assert_chain_vote_request(virtual_overseer: &mut VirtualOverseer, _chai ); } +async fn assert_unapplied_slashes_request(virtual_overseer: &mut VirtualOverseer, _chain: &[Hash]) { + assert_matches!( + overseer_recv(virtual_overseer).await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request( + _hash, + RuntimeApiRequest::UnappliedSlashes(tx), + )) => { + tx.send(Ok(Vec::new())).unwrap(); + } + ); +} + async fn assert_finalized_block_number_request( virtual_overseer: &mut VirtualOverseer, response: BlockNumber, @@ -287,6 +300,7 @@ async fn overseer_process_active_leaves_update( assert_candidate_events_request(virtual_overseer, chain, event_generator.clone()).await; assert_chain_vote_request(virtual_overseer, chain).await; } + assert_unapplied_slashes_request(virtual_overseer, chain).await; } #[test] diff --git a/node/core/dispute-coordinator/src/tests.rs b/node/core/dispute-coordinator/src/tests.rs index ceeac351e8b8..f2590aea1511 100644 --- a/node/core/dispute-coordinator/src/tests.rs +++ b/node/core/dispute-coordinator/src/tests.rs @@ -385,6 +385,12 @@ impl TestState { }))) .unwrap(); }, + AllMessages::RuntimeApi(RuntimeApiMessage::Request( + _new_leaf, + RuntimeApiRequest::UnappliedSlashes(tx), + )) => { + tx.send(Ok(Vec::new())).unwrap(); + }, AllMessages::ChainApi(ChainApiMessage::Ancestors { hash, k, response_channel }) => { let target_header = self .headers diff --git a/node/subsystem-util/src/lib.rs b/node/subsystem-util/src/lib.rs index 1444bc0a2bf1..f523d7e04edc 100644 --- a/node/subsystem-util/src/lib.rs +++ b/node/subsystem-util/src/lib.rs @@ -42,8 +42,8 @@ use futures::channel::{mpsc, oneshot}; use parity_scale_codec::Encode; use polkadot_primitives::{ - AuthorityDiscoveryId, CandidateEvent, CommittedCandidateReceipt, CoreState, EncodeAs, - GroupIndex, GroupRotationInfo, Hash, Id as ParaId, OccupiedCoreAssumption, + vstaging, AuthorityDiscoveryId, CandidateEvent, CandidateHash, CommittedCandidateReceipt, + CoreState, EncodeAs, GroupIndex, GroupRotationInfo, Hash, Id as ParaId, OccupiedCoreAssumption, PersistedValidationData, ScrapedOnChainVotes, SessionIndex, SessionInfo, Signed, SigningContext, ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex, ValidatorSignature, @@ -211,7 +211,10 @@ specialize_requests! { fn request_validation_code_hash(para_id: ParaId, assumption: OccupiedCoreAssumption) -> Option; ValidationCodeHash; fn request_on_chain_votes() -> Option; FetchOnChainVotes; - fn request_session_executor_params(session_index: SessionIndex) -> Option; SessionExecutorParams; + fn request_session_executor_params(session_index: SessionIndex) -> Option;SessionExecutorParams; + fn request_unapplied_slashes() -> Vec<(SessionIndex, CandidateHash, vstaging::slashing::PendingSlashes)>; UnappliedSlashes; + fn request_key_ownership_proof(validator_id: ValidatorId) -> Option; KeyOwnershipProof; + fn request_submit_report_dispute_lost(dp: vstaging::slashing::DisputeProof, okop: vstaging::slashing::OpaqueKeyOwnershipProof) -> Option<()>; SubmitReportDisputeLost; } /// Requests executor parameters from the runtime effective at given relay-parent. First obtains diff --git a/node/subsystem-util/src/runtime/mod.rs b/node/subsystem-util/src/runtime/mod.rs index 6e06b99bbe03..6b84fdfae792 100644 --- a/node/subsystem-util/src/runtime/mod.rs +++ b/node/subsystem-util/src/runtime/mod.rs @@ -27,14 +27,16 @@ use sp_keystore::{Keystore, KeystorePtr}; use polkadot_node_subsystem::{messages::RuntimeApiMessage, overseer, SubsystemSender}; use polkadot_primitives::{ - CandidateEvent, CoreState, EncodeAs, GroupIndex, GroupRotationInfo, Hash, IndexedVec, - OccupiedCore, ScrapedOnChainVotes, SessionIndex, SessionInfo, Signed, SigningContext, - UncheckedSigned, ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex, + vstaging, CandidateEvent, CandidateHash, CoreState, EncodeAs, GroupIndex, GroupRotationInfo, + Hash, IndexedVec, OccupiedCore, ScrapedOnChainVotes, SessionIndex, SessionInfo, Signed, + SigningContext, UncheckedSigned, ValidationCode, ValidationCodeHash, ValidatorId, + ValidatorIndex, }; use crate::{ - request_availability_cores, request_candidate_events, request_on_chain_votes, - request_session_index_for_child, request_session_info, request_validation_code_by_hash, + request_availability_cores, request_candidate_events, request_key_ownership_proof, + request_on_chain_votes, request_session_index_for_child, request_session_info, + request_submit_report_dispute_lost, request_unapplied_slashes, request_validation_code_by_hash, request_validator_groups, }; @@ -343,3 +345,51 @@ where recv_runtime(request_validation_code_by_hash(relay_parent, validation_code_hash, sender).await) .await } + +/// Fetch a list of `PendingSlashes` from the runtime. +pub async fn get_unapplied_slashes( + sender: &mut Sender, + relay_parent: Hash, +) -> Result> +where + Sender: SubsystemSender, +{ + recv_runtime(request_unapplied_slashes(relay_parent, sender).await).await +} + +/// Generate validator key ownership proof. +/// +/// Note: The choice of `relay_parent` is important here, it needs to match +/// the desired session index of the validator set in question. +pub async fn key_ownership_proof( + sender: &mut Sender, + relay_parent: Hash, + validator_id: ValidatorId, +) -> Result> +where + Sender: SubsystemSender, +{ + recv_runtime(request_key_ownership_proof(relay_parent, validator_id, sender).await).await +} + +/// Submit a past-session dispute slashing report. +pub async fn submit_report_dispute_lost( + sender: &mut Sender, + relay_parent: Hash, + dispute_proof: vstaging::slashing::DisputeProof, + key_ownership_proof: vstaging::slashing::OpaqueKeyOwnershipProof, +) -> Result> +where + Sender: SubsystemSender, +{ + recv_runtime( + request_submit_report_dispute_lost( + relay_parent, + dispute_proof, + key_ownership_proof, + sender, + ) + .await, + ) + .await +} diff --git a/primitives/src/vstaging/slashing.rs b/primitives/src/vstaging/slashing.rs index c5782c7c2ab4..41bb0e22d659 100644 --- a/primitives/src/vstaging/slashing.rs +++ b/primitives/src/vstaging/slashing.rs @@ -96,4 +96,9 @@ impl OpaqueKeyOwnershipProof { pub fn decode(self) -> Option { Decode::decode(&mut &self.0[..]).ok() } + + /// Length of the encoded proof. + pub fn len(&self) -> usize { + self.0.len() + } } diff --git a/runtime/parachains/src/disputes/slashing.rs b/runtime/parachains/src/disputes/slashing.rs index daf10814df0f..ac6f89019388 100644 --- a/runtime/parachains/src/disputes/slashing.rs +++ b/runtime/parachains/src/disputes/slashing.rs @@ -462,16 +462,13 @@ pub mod pallet { ) -> DispatchResultWithPostInfo { ensure_none(origin)?; + let validator_set_count = key_owner_proof.validator_count() as ValidatorSetCount; // check the membership proof to extract the offender's id let key = (primitives::PARACHAIN_KEY_TYPE_ID, dispute_proof.validator_id.clone()); let offender = T::KeyOwnerProofSystem::check_proof(key, key_owner_proof) .ok_or(Error::::InvalidKeyOwnershipProof)?; let session_index = dispute_proof.time_slot.session_index; - let validator_set_count = crate::session_info::Pallet::::session_info(session_index) - .ok_or(Error::::InvalidSessionIndex)? - .discovery_keys - .len() as ValidatorSetCount; // check that there is a pending slash for the given // validator index and candidate hash @@ -705,22 +702,26 @@ where }; match SubmitTransaction::>::submit_unsigned_transaction(call.into()) { - Ok(()) => log::info!( - target: LOG_TARGET, - "Submitted dispute slashing report, session({}), index({}), kind({:?})", - session_index, - validator_index, - kind, - ), - Err(()) => log::error!( - target: LOG_TARGET, - "Error submitting dispute slashing report, session({}), index({}), kind({:?})", - session_index, - validator_index, - kind, - ), + Ok(()) => { + log::info!( + target: LOG_TARGET, + "Submitted dispute slashing report, session({}), index({}), kind({:?})", + session_index, + validator_index, + kind, + ); + Ok(()) + }, + Err(()) => { + log::error!( + target: LOG_TARGET, + "Error submitting dispute slashing report, session({}), index({}), kind({:?})", + session_index, + validator_index, + kind, + ); + Err(sp_runtime::DispatchError::Other("")) + }, } - - Ok(()) } } diff --git a/scripts/ci/gitlab/pipeline/build.yml b/scripts/ci/gitlab/pipeline/build.yml index 8367ec3bc7d6..c631f1265002 100644 --- a/scripts/ci/gitlab/pipeline/build.yml +++ b/scripts/ci/gitlab/pipeline/build.yml @@ -21,7 +21,7 @@ build-linux-stable: # Ensure we run the UI tests. RUN_UI_TESTS: 1 script: - - time cargo build --locked --profile testnet --features pyroscope --verbose --bin polkadot + - time cargo build --locked --profile testnet --features pyroscope,fast-runtime --verbose --bin polkadot # pack artifacts - mkdir -p ./artifacts - VERSION="${CI_COMMIT_REF_NAME}" # will be tag or branch name diff --git a/scripts/ci/gitlab/pipeline/zombienet.yml b/scripts/ci/gitlab/pipeline/zombienet.yml index 305dfe7f2679..5f51b06e2e78 100644 --- a/scripts/ci/gitlab/pipeline/zombienet.yml +++ b/scripts/ci/gitlab/pipeline/zombienet.yml @@ -124,6 +124,38 @@ zombienet-tests-parachains-disputes-garbage-candidate: tags: - zombienet-polkadot-integration-test +zombienet-tests-parachains-disputes-past-session: + stage: zombienet + image: "${ZOMBIENET_IMAGE}" + extends: + - .kubernetes-env + - .zombienet-refs + needs: + - job: publish-polkadot-debug-image + - job: publish-test-collators-image + - job: publish-malus-image + variables: + GH_DIR: "https://github.com/paritytech/polkadot/tree/${CI_COMMIT_SHORT_SHA}/zombienet_tests/functional" + before_script: + - echo "Zombie-net Tests Config" + - echo "${ZOMBIENET_IMAGE_NAME}" + - echo "${PARACHAINS_IMAGE_NAME} ${PARACHAINS_IMAGE_TAG}" + - echo "${MALUS_IMAGE_NAME} ${MALUS_IMAGE_TAG}" + - echo "${GH_DIR}" + - export DEBUG=zombie,zombie::network-node + - export ZOMBIENET_INTEGRATION_TEST_IMAGE=${PARACHAINS_IMAGE_NAME}:${PARACHAINS_IMAGE_TAG} + - export MALUS_IMAGE=${MALUS_IMAGE_NAME}:${MALUS_IMAGE_TAG} + - export COL_IMAGE=${COLLATOR_IMAGE_NAME}:${COLLATOR_IMAGE_TAG} + script: + - /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh + --github-remote-dir="${GH_DIR}" + --test="0004-parachains-disputes-past-session.zndsl" + allow_failure: true + retry: 2 + tags: + - zombienet-polkadot-integration-test + + zombienet-test-parachains-upgrade-smoke-test: stage: zombienet image: "${ZOMBIENET_IMAGE}" diff --git a/zombienet_tests/functional/0004-parachains-disputes-past-session.toml b/zombienet_tests/functional/0004-parachains-disputes-past-session.toml new file mode 100644 index 000000000000..3b05c91e1343 --- /dev/null +++ b/zombienet_tests/functional/0004-parachains-disputes-past-session.toml @@ -0,0 +1,45 @@ +[settings] +timeout = 1000 +bootnode = true + +[relaychain.genesis.runtime.configuration.config] + max_validators_per_core = 1 + needed_approvals = 3 + group_rotation_frequency = 4 + +[relaychain] +default_image = "{{ZOMBIENET_INTEGRATION_TEST_IMAGE}}" +chain = "westend-local" # using westend-local to enable slashing +default_command = "polkadot" + +[relaychain.default_resources] +limits = { memory = "4G", cpu = "2" } +requests = { memory = "2G", cpu = "1" } + + [[relaychain.nodes]] + name = "alice" + invulnerable = true # it will go offline, we don't want to disable it + args = ["-lparachain=debug,runtime=debug"] + + [[relaychain.node_groups]] + name = "honest-validator" + count = 2 + args = ["-lruntime=debug,sync=trace"] + + [[relaychain.node_groups]] + image = "{{MALUS_IMAGE}}" + name = "malus-validator" + command = "malus suggest-garbage-candidate" + args = ["-lMALUS=trace"] + count = 1 + +[[parachains]] +id = 1000 +cumulus_based = true + + [parachains.collator] + name = "collator" + command = "polkadot-parachain" + image = "docker.io/parity/polkadot-parachain:latest" + # image = "{{COL_IMAGE}}" + args = ["-lparachain=debug"] diff --git a/zombienet_tests/functional/0004-parachains-disputes-past-session.zndsl b/zombienet_tests/functional/0004-parachains-disputes-past-session.zndsl new file mode 100644 index 000000000000..e86cbb398357 --- /dev/null +++ b/zombienet_tests/functional/0004-parachains-disputes-past-session.zndsl @@ -0,0 +1,37 @@ +Description: Past-session dispute slashing +Network: ./0004-parachains-disputes-past-session.toml +Creds: config + +alice: reports node_roles is 4 + +# pause alice so that disputes don't conclude +alice: pause + +# Ensure parachain is registered. +honest-validator-0: parachain 1000 is registered within 100 seconds + +# Ensure parachain made progress. +honest-validator-0: parachain 1000 block height is at least 1 within 300 seconds + +# There should be disputes initiated +honest-validator-0: reports parachain_candidate_disputes_total is at least 2 within 200 seconds + +# Stop issuing disputes +malus-validator-0: pause + +# wait for the next session +sleep 120 seconds + +# But should not resolve +honest-validator-0: reports block height minus finalised block is at least 10 within 100 seconds + +# Now resume alice +alice: resume + +# Disputes should start concluding now +honest-validator-0: reports parachain_candidate_dispute_concluded{validity="invalid"} is at least 1 within 200 seconds +# Disputes should always end as "invalid" +honest-validator-0: reports parachain_candidate_dispute_concluded{validity="valid"} is 0 + +# Check an unsigned extrinsic is submitted +honest-validator: log line contains "Successfully reported pending slash" within 180 seconds From cf0ecddcda542733b28597e2fc2ab2202afc3554 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Mon, 5 Jun 2023 19:39:02 +0200 Subject: [PATCH 05/56] Fix feature (#7333) Signed-off-by: Oliver Tale-Yazdi Co-authored-by: parity-processbot <> --- xcm/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xcm/Cargo.toml b/xcm/Cargo.toml index 10a4d558bb4d..ffcc38e26a4c 100644 --- a/xcm/Cargo.toml +++ b/xcm/Cargo.toml @@ -12,7 +12,7 @@ impl-trait-for-tuples = "0.2.2" log = { version = "0.4.17", default-features = false } parity-scale-codec = { version = "3.4.0", default-features = false, features = [ "derive", "max-encoded-len" ] } scale-info = { version = "2.5.0", default-features = false, features = ["derive", "serde"] } -sp-weights = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, feature = ["serde "] } +sp-weights = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] } serde = { version = "1.0.163", default-features = false, features = ["alloc", "derive"] } xcm-procedural = { path = "procedural" } From 81309d1469bea4f98d209c6c9ba5d57e6ff0bb60 Mon Sep 17 00:00:00 2001 From: Alexandru Gheorghe <49718502+alexggh@users.noreply.github.com> Date: Tue, 6 Jun 2023 11:19:39 +0300 Subject: [PATCH 06/56] approval-distribution: Add approvals/assignments spans on all paths (#7317) * approval-distribution: Add approvals/assignments spans on all paths The approval and assignment logic gets called from multiple paths, so make sure we create a tracing span on all paths to make debugging easier and be able and correlate with the spans from approval-voting. Signed-off-by: Alexandru Gheorghe * Tag each label with a difference tracing name Signed-off-by: Alexandru Gheorghe * Address review feedback Use the source to determine the tag name Signed-off-by: Alexandru Gheorghe --------- Signed-off-by: Alexandru Gheorghe --- node/jaeger/src/spans.rs | 13 +++++- node/network/approval-distribution/src/lib.rs | 46 ++++++++++++------- 2 files changed, 42 insertions(+), 17 deletions(-) diff --git a/node/jaeger/src/spans.rs b/node/jaeger/src/spans.rs index b17a78410949..be8bf9cd5ddc 100644 --- a/node/jaeger/src/spans.rs +++ b/node/jaeger/src/spans.rs @@ -277,7 +277,7 @@ impl Span { } /// Derive a child span from `self`. - pub fn child(&self, name: &'static str) -> Self { + pub fn child(&self, name: &str) -> Self { match self { Self::Enabled(inner) => Self::Enabled(inner.child(name)), Self::Disabled => Self::Disabled, @@ -297,11 +297,22 @@ impl Span { self } + /// Attach a peer-id tag to the span. #[inline(always)] pub fn with_peer_id(self, peer: &PeerId) -> Self { self.with_string_tag("peer-id", &peer.to_base58()) } + /// Attach a `peer-id` tag to the span when peer is present. + #[inline(always)] + pub fn with_optional_peer_id(self, peer: Option<&PeerId>) -> Self { + if let Some(peer) = peer { + self.with_peer_id(peer) + } else { + self + } + } + /// Attach a candidate hash to the span. #[inline(always)] pub fn with_candidate(self, candidate_hash: CandidateHash) -> Self { diff --git a/node/network/approval-distribution/src/lib.rs b/node/network/approval-distribution/src/lib.rs index 82f62502e474..0707716b33f0 100644 --- a/node/network/approval-distribution/src/lib.rs +++ b/node/network/approval-distribution/src/lib.rs @@ -725,6 +725,21 @@ impl State { ) where R: CryptoRng + Rng, { + let _span = self + .spans + .get(&assignment.block_hash) + .map(|span| { + span.child(if source.peer_id().is_some() { + "peer-import-and-distribute-assignment" + } else { + "local-import-and-distribute-assignment" + }) + }) + .unwrap_or_else(|| jaeger::Span::new(&assignment.block_hash, "distribute-assignment")) + .with_string_tag("block-hash", format!("{:?}", assignment.block_hash)) + .with_optional_peer_id(source.peer_id().as_ref()) + .with_stage(jaeger::Stage::ApprovalDistribution); + let block_hash = assignment.block_hash; let validator_index = assignment.validator; @@ -985,6 +1000,21 @@ impl State { source: MessageSource, vote: IndirectSignedApprovalVote, ) { + let _span = self + .spans + .get(&vote.block_hash) + .map(|span| { + span.child(if source.peer_id().is_some() { + "peer-import-and-distribute-approval" + } else { + "local-import-and-distribute-approval" + }) + }) + .unwrap_or_else(|| jaeger::Span::new(&vote.block_hash, "distribute-approval")) + .with_string_tag("block-hash", format!("{:?}", vote.block_hash)) + .with_optional_peer_id(source.peer_id().as_ref()) + .with_stage(jaeger::Stage::ApprovalDistribution); + let block_hash = vote.block_hash; let validator_index = vote.validator; let candidate_index = vote.candidate_index; @@ -1724,14 +1754,6 @@ impl ApprovalDistribution { state.handle_new_blocks(ctx, metrics, metas, rng).await; }, ApprovalDistributionMessage::DistributeAssignment(cert, candidate_index) => { - let _span = state - .spans - .get(&cert.block_hash) - .map(|span| span.child("import-and-distribute-assignment")) - .unwrap_or_else(|| jaeger::Span::new(&cert.block_hash, "distribute-assignment")) - .with_string_tag("block-hash", format!("{:?}", cert.block_hash)) - .with_stage(jaeger::Stage::ApprovalDistribution); - gum::debug!( target: LOG_TARGET, "Distributing our assignment on candidate (block={}, index={})", @@ -1751,14 +1773,6 @@ impl ApprovalDistribution { .await; }, ApprovalDistributionMessage::DistributeApproval(vote) => { - let _span = state - .spans - .get(&vote.block_hash) - .map(|span| span.child("import-and-distribute-approval")) - .unwrap_or_else(|| jaeger::Span::new(&vote.block_hash, "distribute-approval")) - .with_string_tag("block-hash", format!("{:?}", vote.block_hash)) - .with_stage(jaeger::Stage::ApprovalDistribution); - gum::debug!( target: LOG_TARGET, "Distributing our approval vote on candidate (block={}, index={})", From 4a40eba0847cc60eecefa345535870efb5125243 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Thu, 8 Jun 2023 10:51:44 +0200 Subject: [PATCH 07/56] Fix migrations (#7340) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Okay this was stupid 🤦 Signed-off-by: Oliver Tale-Yazdi --- .../src/configuration/migration/v5.rs | 73 ++++++++++-------- .../src/configuration/migration/v6.rs | 76 +++++++++++-------- .../src/configuration/migration_ump.rs | 21 ++++- 3 files changed, 104 insertions(+), 66 deletions(-) diff --git a/runtime/parachains/src/configuration/migration/v5.rs b/runtime/parachains/src/configuration/migration/v5.rs index 6a47ce51f718..9262d33fb500 100644 --- a/runtime/parachains/src/configuration/migration/v5.rs +++ b/runtime/parachains/src/configuration/migration/v5.rs @@ -127,27 +127,35 @@ pub struct V5HostConfiguration { pub minimum_validation_upgrade_delay: BlockNumber, } -#[frame_support::storage_alias] -pub(crate) type V4ActiveConfig = - StorageValue, V4HostConfiguration>, OptionQuery>; - -#[frame_support::storage_alias] -pub(crate) type V4PendingConfigs = StorageValue< - Pallet, - Vec<(SessionIndex, V4HostConfiguration>)>, - OptionQuery, ->; - -#[frame_support::storage_alias] -pub(crate) type V5ActiveConfig = - StorageValue, V5HostConfiguration>, OptionQuery>; - -#[frame_support::storage_alias] -pub(crate) type V5PendingConfigs = StorageValue< - Pallet, - Vec<(SessionIndex, V5HostConfiguration>)>, - OptionQuery, ->; +mod v4 { + use super::*; + + #[frame_support::storage_alias] + pub(crate) type ActiveConfig = + StorageValue, V4HostConfiguration>, OptionQuery>; + + #[frame_support::storage_alias] + pub(crate) type PendingConfigs = StorageValue< + Pallet, + Vec<(SessionIndex, V4HostConfiguration>)>, + OptionQuery, + >; +} + +mod v5 { + use super::*; + + #[frame_support::storage_alias] + pub(crate) type ActiveConfig = + StorageValue, V5HostConfiguration>, OptionQuery>; + + #[frame_support::storage_alias] + pub(crate) type PendingConfigs = StorageValue< + Pallet, + Vec<(SessionIndex, V5HostConfiguration>)>, + OptionQuery, + >; +} impl> Default for V4HostConfiguration { fn default() -> Self { @@ -266,6 +274,7 @@ impl OnRuntimeUpgrade for MigrateToV5 { } fn on_runtime_upgrade() -> Weight { + log::info!(target: configuration::LOG_TARGET, "MigrateToV5 started"); if StorageVersion::get::>() == 4 { let weight_consumed = migrate_to_v5::(); @@ -352,13 +361,13 @@ executor_params : Default::default(), } }; - let v4 = V4ActiveConfig::::get() + let v4 = v4::ActiveConfig::::get() .defensive_proof("Could not decode old config") .unwrap_or_default(); let v5 = translate(v4); - V5ActiveConfig::::set(Some(v5)); + v5::ActiveConfig::::set(Some(v5)); - let pending_v4 = V4PendingConfigs::::get() + let pending_v4 = v4::PendingConfigs::::get() .defensive_proof("Could not decode old pending") .unwrap_or_default(); let mut pending_v5 = Vec::new(); @@ -367,7 +376,7 @@ executor_params : Default::default(), let v5 = translate(v4); pending_v5.push((session, v5)); } - V5PendingConfigs::::set(Some(pending_v5.clone())); + v5::PendingConfigs::::set(Some(pending_v5.clone())); let num_configs = (pending_v5.len() + 1) as u64; T::DbWeight::get().reads_writes(num_configs, num_configs) @@ -397,8 +406,8 @@ mod tests { // doesn't need to be read and also leaving it as one line allows to easily copy it. let raw_config = hex_literal::hex!["0000a000005000000a00000000c8000000c800000a0000000a000000100e0000580200000000500000c800000700e8764817020040011e00000000000000005039278c0400000000000000000000005039278c0400000000000000000000e8030000009001001e00000000000000009001008070000000000000000000000a0000000a0000000a00000001000000010500000001c80000000600000058020000580200000200000059000000000000001e000000280000000700c817a80402004001010200000014000000"]; - let v4 = v5::V4HostConfiguration::::decode(&mut &raw_config[..]) - .unwrap(); + let v4 = + V4HostConfiguration::::decode(&mut &raw_config[..]).unwrap(); // We check only a sample of the values here. If we missed any fields or messed up data types // that would skew all the fields coming after. @@ -421,7 +430,7 @@ mod tests { // We specify only the picked fields and the rest should be provided by the `Default` // implementation. That implementation is copied over between the two types and should work // fine. - let v4 = v5::V4HostConfiguration:: { + let v4 = V4HostConfiguration:: { ump_max_individual_weight: Weight::from_parts(0x71616e6f6e0au64, 0x71616e6f6e0au64), needed_approvals: 69, thread_availability_period: 55, @@ -438,13 +447,13 @@ mod tests { new_test_ext(Default::default()).execute_with(|| { // Implant the v4 version in the state. - V4ActiveConfig::::set(Some(v4)); - V4PendingConfigs::::set(Some(pending_configs)); + v4::ActiveConfig::::set(Some(v4)); + v4::PendingConfigs::::set(Some(pending_configs)); migrate_to_v5::(); - let v5 = V5ActiveConfig::::get().unwrap(); - let mut configs_to_check = V5PendingConfigs::::get().unwrap(); + let v5 = v5::ActiveConfig::::get().unwrap(); + let mut configs_to_check = v5::PendingConfigs::::get().unwrap(); configs_to_check.push((0, v5.clone())); for (_, v4) in configs_to_check { diff --git a/runtime/parachains/src/configuration/migration/v6.rs b/runtime/parachains/src/configuration/migration/v6.rs index 67baea10a64d..76ff788eb54d 100644 --- a/runtime/parachains/src/configuration/migration/v6.rs +++ b/runtime/parachains/src/configuration/migration/v6.rs @@ -34,27 +34,35 @@ use super::v5::V5HostConfiguration; // Change this once there is V7. type V6HostConfiguration = configuration::HostConfiguration; -#[frame_support::storage_alias] -pub(crate) type V5ActiveConfig = - StorageValue, V5HostConfiguration>, OptionQuery>; - -#[frame_support::storage_alias] -pub(crate) type V5PendingConfigs = StorageValue< - Pallet, - Vec<(SessionIndex, V5HostConfiguration>)>, - OptionQuery, ->; - -#[frame_support::storage_alias] -pub(crate) type V6ActiveConfig = - StorageValue, V6HostConfiguration>, OptionQuery>; - -#[frame_support::storage_alias] -pub(crate) type V6PendingConfigs = StorageValue< - Pallet, - Vec<(SessionIndex, V6HostConfiguration>)>, - OptionQuery, ->; +mod v5 { + use super::*; + + #[frame_support::storage_alias] + pub(crate) type ActiveConfig = + StorageValue, V5HostConfiguration>, OptionQuery>; + + #[frame_support::storage_alias] + pub(crate) type PendingConfigs = StorageValue< + Pallet, + Vec<(SessionIndex, V5HostConfiguration>)>, + OptionQuery, + >; +} + +mod v6 { + use super::*; + + #[frame_support::storage_alias] + pub(crate) type ActiveConfig = + StorageValue, V6HostConfiguration>, OptionQuery>; + + #[frame_support::storage_alias] + pub(crate) type PendingConfigs = StorageValue< + Pallet, + Vec<(SessionIndex, V6HostConfiguration>)>, + OptionQuery, + >; +} pub struct MigrateToV6(sp_std::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV6 { @@ -65,6 +73,7 @@ impl OnRuntimeUpgrade for MigrateToV6 { } fn on_runtime_upgrade() -> Weight { + log::info!(target: configuration::LOG_TARGET, "MigrateToV6 started"); if StorageVersion::get::>() == 5 { let weight_consumed = migrate_to_v6::(); @@ -145,24 +154,24 @@ executor_params : pre.executor_params, } }; - let v5 = V5ActiveConfig::::get() + let v5 = v5::ActiveConfig::::get() .defensive_proof("Could not decode old config") .unwrap_or_default(); let v6 = translate(v5); - V6ActiveConfig::::set(Some(v6)); + v6::ActiveConfig::::set(Some(v6)); - let pending_v4 = V5PendingConfigs::::get() + let pending_v5 = v5::PendingConfigs::::get() .defensive_proof("Could not decode old pending") .unwrap_or_default(); - let mut pending_v5 = Vec::new(); + let mut pending_v6 = Vec::new(); - for (session, v5) in pending_v4.into_iter() { + for (session, v5) in pending_v5.into_iter() { let v6 = translate(v5); - pending_v5.push((session, v6)); + pending_v6.push((session, v6)); } - V6PendingConfigs::::set(Some(pending_v5.clone())); + v6::PendingConfigs::::set(Some(pending_v6.clone())); - let num_configs = (pending_v5.len() + 1) as u64; + let num_configs = (pending_v6.len() + 1) as u64; T::DbWeight::get().reads_writes(num_configs, num_configs) } @@ -201,6 +210,7 @@ mod tests { assert_eq!(v5.n_delay_tranches, 40); assert_eq!(v5.ump_max_individual_weight, Weight::from_parts(20_000_000_000, 5_242_880)); assert_eq!(v5.minimum_validation_upgrade_delay, 15); // This is the last field in the struct. + assert_eq!(v5.group_rotation_frequency, 10); } #[test] @@ -230,13 +240,13 @@ mod tests { new_test_ext(Default::default()).execute_with(|| { // Implant the v5 version in the state. - V5ActiveConfig::::set(Some(v5)); - V5PendingConfigs::::set(Some(pending_configs)); + v5::ActiveConfig::::set(Some(v5)); + v5::PendingConfigs::::set(Some(pending_configs)); migrate_to_v6::(); - let v6 = V6ActiveConfig::::get().unwrap(); - let mut configs_to_check = V6PendingConfigs::::get().unwrap(); + let v6 = v6::ActiveConfig::::get().unwrap(); + let mut configs_to_check = v6::PendingConfigs::::get().unwrap(); configs_to_check.push((0, v6.clone())); for (_, v5) in configs_to_check { diff --git a/runtime/parachains/src/configuration/migration_ump.rs b/runtime/parachains/src/configuration/migration_ump.rs index bde44841953c..c46f25108fa3 100644 --- a/runtime/parachains/src/configuration/migration_ump.rs +++ b/runtime/parachains/src/configuration/migration_ump.rs @@ -99,10 +99,29 @@ pub mod latest { "Last pending HostConfig upgrade:\n\n{:#?}\n", pending.last() ); + let Some(last) = pending.last() else { + return Err("There must be a new pending upgrade enqueued".into()); + }; ensure!( pending.len() == old_pending as usize + 1, - "There must be a new pending upgrade enqueued" + "There must be exactly one new pending upgrade enqueued" ); + if let Err(err) = last.1.check_consistency() { + log::error!( + target: LOG_TARGET, + "Last PendingConfig is invalidity {:?}", err, + ); + + return Err("Pending upgrade must be sane but was not".into()) + } + if let Err(err) = ActiveConfig::::get().check_consistency() { + log::error!( + target: LOG_TARGET, + "ActiveConfig is invalid: {:?}", err, + ); + + return Err("Active upgrade must be sane but was not".into()) + } Ok(()) } From 6debcdbb054aade9d0663dca9f572b47d3630e32 Mon Sep 17 00:00:00 2001 From: Alexandru Gheorghe <49718502+alexggh@users.noreply.github.com> Date: Thu, 8 Jun 2023 12:26:36 +0300 Subject: [PATCH 08/56] metrics: Increase the resolution of histogram metrics (#7335) * metrics: Increase the resolution of histogram metrics These metrics are using the default histogram buckets: ``` pub const DEFAULT_BUCKETS: &[f64; 11] = &[ 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, ]; ``` Which give us a resolution of 5ms, that's good, but there are some subsystems where we process hundreds or even a few thousands of messages per second like approval-voting or approval-distribution, so it makes sense to increse the resoution of the bucket to better understand if the procesisng is in the range of useconds. The new bucket ranges will be: ``` [0.0001, 0.0004, 0.0016, 0.0064, 0.0256, 0.1024, 0.4096, 1.6384, 6.5536] ``` Signed-off-by: Alexandru Gheorghe * Use buckets with higher resolution Signed-off-by: Alexandru Gheorghe --------- Signed-off-by: Alexandru Gheorghe --- node/network/approval-distribution/src/metrics.rs | 4 ++-- node/overseer/src/metrics.rs | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/node/network/approval-distribution/src/metrics.rs b/node/network/approval-distribution/src/metrics.rs index 3cdc64a8b76f..896866ce099a 100644 --- a/node/network/approval-distribution/src/metrics.rs +++ b/node/network/approval-distribution/src/metrics.rs @@ -134,14 +134,14 @@ impl MetricsTrait for Metrics { prometheus::Histogram::with_opts(prometheus::HistogramOpts::new( "polkadot_parachain_time_import_pending_now_known", "Time spent on importing pending assignments and approvals.", - ))?, + ).buckets(vec![0.0001, 0.0004, 0.0016, 0.0064, 0.0256, 0.1024, 0.4096, 1.6384, 3.2768, 4.9152, 6.5536,]))?, registry, )?, time_awaiting_approval_voting: prometheus::register( prometheus::Histogram::with_opts(prometheus::HistogramOpts::new( "polkadot_parachain_time_awaiting_approval_voting", "Time spent awaiting a reply from the Approval Voting Subsystem.", - ))?, + ).buckets(vec![0.0001, 0.0004, 0.0016, 0.0064, 0.0256, 0.1024, 0.4096, 1.6384, 3.2768, 4.9152, 6.5536,]))?, registry, )?, }; diff --git a/node/overseer/src/metrics.rs b/node/overseer/src/metrics.rs index d5acf3308313..9b6053ccf769 100644 --- a/node/overseer/src/metrics.rs +++ b/node/overseer/src/metrics.rs @@ -165,7 +165,11 @@ impl MetricsTrait for Metrics { prometheus::HistogramOpts::new( "polkadot_parachain_subsystem_bounded_tof", "Duration spent in a particular channel from entrance to removal", - ), + ) + .buckets(vec![ + 0.0001, 0.0004, 0.0016, 0.0064, 0.0256, 0.1024, 0.4096, 1.6384, 3.2768, + 4.9152, 6.5536, + ]), &["subsystem_name"], )?, registry, @@ -205,7 +209,11 @@ impl MetricsTrait for Metrics { prometheus::HistogramOpts::new( "polkadot_parachain_subsystem_unbounded_tof", "Duration spent in a particular channel from entrance to removal", - ), + ) + .buckets(vec![ + 0.0001, 0.0004, 0.0016, 0.0064, 0.0256, 0.1024, 0.4096, 1.6384, 3.2768, + 4.9152, 6.5536, + ]), &["subsystem_name"], )?, registry, From b1cc6fa14330261a305d56be36c04e9c99518993 Mon Sep 17 00:00:00 2001 From: Alexandru Gheorghe <49718502+alexggh@users.noreply.github.com> Date: Thu, 8 Jun 2023 14:21:41 +0300 Subject: [PATCH 09/56] av-store: Move prune on a separate thread (#7263) * av-store: Move prune on a separate thread There are situations where pruning of the data could take more than a few seconds and that might make the whole subsystem unreponsive. To avoid this just move the prune process on a separate thread. See: https://github.com/paritytech/polkadot/issues/7237, for more details. Signed-off-by: Alexandru Gheorghe * av-store: Add log that prunning started Signed-off-by: Alexandru Gheorghe * av-store: modify log severity Signed-off-by: Alexandru Gheorghe --------- Signed-off-by: Alexandru Gheorghe --- node/core/av-store/src/lib.rs | 71 ++++++++++++++++++++++++++++++----- 1 file changed, 62 insertions(+), 9 deletions(-) diff --git a/node/core/av-store/src/lib.rs b/node/core/av-store/src/lib.rs index 1c0c8c5e7feb..17c9f9a19833 100644 --- a/node/core/av-store/src/lib.rs +++ b/node/core/av-store/src/lib.rs @@ -26,7 +26,13 @@ use std::{ time::{Duration, SystemTime, SystemTimeError, UNIX_EPOCH}, }; -use futures::{channel::oneshot, future, select, FutureExt}; +use futures::{ + channel::{ + mpsc::{channel, Receiver as MpscReceiver, Sender as MpscSender}, + oneshot, + }, + future, select, FutureExt, SinkExt, StreamExt, +}; use futures_timer::Delay; use parity_scale_codec::{Decode, Encode, Error as CodecError, Input}; use polkadot_node_subsystem_util::database::{DBTransaction, Database}; @@ -540,9 +546,17 @@ impl AvailabilityStoreSubsystem { #[overseer::contextbounds(AvailabilityStore, prefix = self::overseer)] async fn run(mut subsystem: AvailabilityStoreSubsystem, mut ctx: Context) { let mut next_pruning = Delay::new(subsystem.pruning_config.pruning_interval).fuse(); - + // Pruning interval is in the order of minutes so we shouldn't have more than one task running + // at one moment in time, so 10 should be more than enough. + let (mut pruning_result_tx, mut pruning_result_rx) = channel(10); loop { - let res = run_iteration(&mut ctx, &mut subsystem, &mut next_pruning).await; + let res = run_iteration( + &mut ctx, + &mut subsystem, + &mut next_pruning, + (&mut pruning_result_tx, &mut pruning_result_rx), + ) + .await; match res { Err(e) => { e.trace(); @@ -564,6 +578,10 @@ async fn run_iteration( ctx: &mut Context, subsystem: &mut AvailabilityStoreSubsystem, mut next_pruning: &mut future::Fuse, + (pruning_result_tx, pruning_result_rx): ( + &mut MpscSender>, + &mut MpscReceiver>, + ), ) -> Result { select! { incoming = ctx.recv().fuse() => { @@ -612,15 +630,51 @@ async fn run_iteration( // It's important to set the delay before calling `prune_all` because an error in `prune_all` // could lead to the delay not being set again. Then we would never prune anything anymore. *next_pruning = Delay::new(subsystem.pruning_config.pruning_interval).fuse(); - - let _timer = subsystem.metrics.time_pruning(); - prune_all(&subsystem.db, &subsystem.config, &*subsystem.clock)?; - } + start_prune_all(ctx, subsystem, pruning_result_tx.clone()).await?; + }, + // Received the prune result and propagate the errors, so that in case of a fatal error + // the main loop of the subsystem can exit graciously. + result = pruning_result_rx.next() => { + if let Some(result) = result { + result?; + } + }, } Ok(false) } +// Start prune-all on a separate thread, so that in the case when the operation takes +// longer than expected we don't keep the whole subsystem blocked. +// See: https://github.com/paritytech/polkadot/issues/7237 for more details. +#[overseer::contextbounds(AvailabilityStore, prefix = self::overseer)] +async fn start_prune_all( + ctx: &mut Context, + subsystem: &mut AvailabilityStoreSubsystem, + mut pruning_result_tx: MpscSender>, +) -> Result<(), Error> { + let metrics = subsystem.metrics.clone(); + let db = subsystem.db.clone(); + let config = subsystem.config; + let time_now = subsystem.clock.now()?; + + ctx.spawn_blocking( + "av-store-prunning", + Box::pin(async move { + let _timer = metrics.time_pruning(); + + gum::debug!(target: LOG_TARGET, "Prunning started"); + let result = prune_all(&db, &config, time_now); + + if let Err(err) = pruning_result_tx.send(result).await { + // This usually means that the node is closing down, log it just in case + gum::debug!(target: LOG_TARGET, ?err, "Failed to send prune_all result",); + } + }), + )?; + Ok(()) +} + #[overseer::contextbounds(AvailabilityStore, prefix = self::overseer)] async fn process_block_activated( ctx: &mut Context, @@ -1250,8 +1304,7 @@ fn store_available_data( Ok(()) } -fn prune_all(db: &Arc, config: &Config, clock: &dyn Clock) -> Result<(), Error> { - let now = clock.now()?; +fn prune_all(db: &Arc, config: &Config, now: Duration) -> Result<(), Error> { let (range_start, range_end) = pruning_range(now); let mut tx = DBTransaction::new(); From b6576d145d2a0efeeb0aadce451e1b12e6e67c82 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Sun, 11 Jun 2023 08:28:19 +0200 Subject: [PATCH 10/56] para scheduler: fix division (#7339) * para scheduler: fix division Signed-off-by: Oliver Tale-Yazdi * Update runtime/parachains/src/scheduler.rs Co-authored-by: Liam Aharon --------- Signed-off-by: Oliver Tale-Yazdi Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Co-authored-by: Liam Aharon --- runtime/parachains/src/scheduler.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/parachains/src/scheduler.rs b/runtime/parachains/src/scheduler.rs index cf47fc777cdd..916df1687b9d 100644 --- a/runtime/parachains/src/scheduler.rs +++ b/runtime/parachains/src/scheduler.rs @@ -636,7 +636,7 @@ impl Pallet { let session_start = >::get(); let blocks_since_session_start = now.saturating_sub(session_start); let blocks_since_last_rotation = - blocks_since_session_start % config.group_rotation_frequency; + blocks_since_session_start % config.group_rotation_frequency.max(1u8.into()); let absolute_cutoff = sp_std::cmp::max(config.chain_availability_period, config.thread_availability_period); From ee8aa322842ef0ed875de17e02ec9f3142457f0d Mon Sep 17 00:00:00 2001 From: Squirrel Date: Sun, 11 Jun 2023 20:58:42 +0100 Subject: [PATCH 11/56] fix nightly warnings (#7347) --- node/service/src/lib.rs | 2 +- runtime/common/src/paras_registrar.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/node/service/src/lib.rs b/node/service/src/lib.rs index c29933732388..c48ae9ea2ff5 100644 --- a/node/service/src/lib.rs +++ b/node/service/src/lib.rs @@ -1286,7 +1286,7 @@ macro_rules! chain_ops { /// Builds a new object suitable for chain operations. #[cfg(feature = "full-node")] pub fn new_chain_ops( - mut config: &mut Configuration, + config: &mut Configuration, jaeger_agent: Option, ) -> Result< ( diff --git a/runtime/common/src/paras_registrar.rs b/runtime/common/src/paras_registrar.rs index 8c080286ac61..284decff46a5 100644 --- a/runtime/common/src/paras_registrar.rs +++ b/runtime/common/src/paras_registrar.rs @@ -433,12 +433,12 @@ impl Registrar for Pallet { // Apply a lock to the parachain. fn apply_lock(id: ParaId) { - Paras::::mutate(id, |x| x.as_mut().map(|mut info| info.locked = true)); + Paras::::mutate(id, |x| x.as_mut().map(|info| info.locked = true)); } // Remove a lock from the parachain. fn remove_lock(id: ParaId) { - Paras::::mutate(id, |x| x.as_mut().map(|mut info| info.locked = false)); + Paras::::mutate(id, |x| x.as_mut().map(|info| info.locked = false)); } // Register a Para ID under control of `manager`. From 04f801427ded6363d96dc75eacec530bfecc31e9 Mon Sep 17 00:00:00 2001 From: eskimor Date: Mon, 12 Jun 2023 13:15:37 +0200 Subject: [PATCH 12/56] Move vstaging to production (#7341) * Move vstaging to production (and thus past session slashing). WIP: test-runtime still needs to be fixed. * Fix test-runtime. --------- Co-authored-by: eskimor --- .../dispute-coordinator/src/initialized.rs | 27 +++++++- .../dispute-coordinator/src/scraping/mod.rs | 17 +++-- node/subsystem-types/src/messages.rs | 29 ++++----- node/subsystem-util/src/lib.rs | 12 ++-- primitives/src/lib.rs | 28 ++++---- primitives/src/runtime_api.rs | 8 +-- primitives/src/{v4 => v5}/executor_params.rs | 0 primitives/src/{v4 => v5}/metrics.rs | 0 primitives/src/{v4 => v5}/mod.rs | 2 + primitives/src/{v4 => v5}/signed.rs | 0 primitives/src/{vstaging => v5}/slashing.rs | 2 +- primitives/src/vstaging/mod.rs | 4 +- runtime/kusama/src/lib.rs | 30 ++++++++- .../parachains/src/runtime_api_impl/mod.rs | 2 +- .../src/runtime_api_impl/{v4.rs => v5.rs} | 33 ++++++++-- .../src/runtime_api_impl/vstaging.rs | 29 --------- runtime/parachains/src/ump_tests.rs | 2 +- runtime/polkadot/src/lib.rs | 30 ++++++++- runtime/rococo/src/lib.rs | 18 ++--- runtime/test-runtime/src/lib.rs | 65 ++++++++++++++++--- runtime/westend/src/lib.rs | 20 +++--- 21 files changed, 236 insertions(+), 122 deletions(-) rename primitives/src/{v4 => v5}/executor_params.rs (100%) rename primitives/src/{v4 => v5}/metrics.rs (100%) rename primitives/src/{v4 => v5}/mod.rs (99%) rename primitives/src/{v4 => v5}/signed.rs (100%) rename primitives/src/{vstaging => v5}/slashing.rs (98%) rename runtime/parachains/src/runtime_api_impl/{v4.rs => v5.rs} (93%) diff --git a/node/core/dispute-coordinator/src/initialized.rs b/node/core/dispute-coordinator/src/initialized.rs index 25bbcde6ee7f..7d64c91fb63f 100644 --- a/node/core/dispute-coordinator/src/initialized.rs +++ b/node/core/dispute-coordinator/src/initialized.rs @@ -37,10 +37,10 @@ use polkadot_node_subsystem::{ ApprovalVotingMessage, BlockDescription, ChainSelectionMessage, DisputeCoordinatorMessage, DisputeDistributionMessage, ImportStatementsResult, }, - overseer, ActivatedLeaf, ActiveLeavesUpdate, FromOrchestra, OverseerSignal, + overseer, ActivatedLeaf, ActiveLeavesUpdate, FromOrchestra, OverseerSignal, RuntimeApiError, }; use polkadot_node_subsystem_util::runtime::{ - key_ownership_proof, submit_report_dispute_lost, RuntimeInfo, + self, key_ownership_proof, submit_report_dispute_lost, RuntimeInfo, }; use polkadot_primitives::{ vstaging, BlockNumber, CandidateHash, CandidateReceipt, CompactStatement, DisputeStatement, @@ -424,8 +424,19 @@ impl Initialized { dispute_proofs.push(dispute_proof); }, Ok(None) => {}, - Err(error) => { + Err(runtime::Error::RuntimeRequest(RuntimeApiError::NotSupported { + .. + })) => { gum::debug!( + target: LOG_TARGET, + ?session_index, + ?candidate_hash, + ?validator_id, + "Key ownership proof not yet supported.", + ); + }, + Err(error) => { + gum::warn!( target: LOG_TARGET, ?error, ?session_index, @@ -480,6 +491,16 @@ impl Initialized { .await; match res { + Err(runtime::Error::RuntimeRequest(RuntimeApiError::NotSupported { + .. + })) => { + gum::debug!( + target: LOG_TARGET, + ?session_index, + ?candidate_hash, + "Reporting pending slash not yet supported", + ); + }, Err(error) => { gum::warn!( target: LOG_TARGET, diff --git a/node/core/dispute-coordinator/src/scraping/mod.rs b/node/core/dispute-coordinator/src/scraping/mod.rs index 3ec03dd18bb3..01240a7e8b4b 100644 --- a/node/core/dispute-coordinator/src/scraping/mod.rs +++ b/node/core/dispute-coordinator/src/scraping/mod.rs @@ -25,13 +25,13 @@ use lru::LruCache; use polkadot_node_primitives::{DISPUTE_CANDIDATE_LIFETIME_AFTER_FINALIZATION, MAX_FINALITY_LAG}; use polkadot_node_subsystem::{ messages::ChainApiMessage, overseer, ActivatedLeaf, ActiveLeavesUpdate, ChainApiError, - SubsystemSender, + RuntimeApiError, SubsystemSender, }; use polkadot_node_subsystem_util::runtime::{ - get_candidate_events, get_on_chain_votes, get_unapplied_slashes, + self, get_candidate_events, get_on_chain_votes, get_unapplied_slashes, }; use polkadot_primitives::{ - vstaging, BlockNumber, CandidateEvent, CandidateHash, CandidateReceipt, Hash, + slashing::PendingSlashes, BlockNumber, CandidateEvent, CandidateHash, CandidateReceipt, Hash, ScrapedOnChainVotes, SessionIndex, }; @@ -67,7 +67,7 @@ const LRU_OBSERVED_BLOCKS_CAPACITY: NonZeroUsize = match NonZeroUsize::new(20) { pub struct ScrapedUpdates { pub on_chain_votes: Vec, pub included_receipts: Vec, - pub unapplied_slashes: Vec<(SessionIndex, CandidateHash, vstaging::slashing::PendingSlashes)>, + pub unapplied_slashes: Vec<(SessionIndex, CandidateHash, PendingSlashes)>, } impl ScrapedUpdates { @@ -270,8 +270,15 @@ impl ChainScraper { Ok(unapplied_slashes) => { scraped_updates.unapplied_slashes = unapplied_slashes; }, - Err(error) => { + Err(runtime::Error::RuntimeRequest(RuntimeApiError::NotSupported { .. })) => { gum::debug!( + target: LOG_TARGET, + block_hash = ?activated.hash, + "Fetching unapplied slashes not yet supported.", + ); + }, + Err(error) => { + gum::warn!( target: LOG_TARGET, block_hash = ?activated.hash, ?error, diff --git a/node/subsystem-types/src/messages.rs b/node/subsystem-types/src/messages.rs index cd61236e6715..d190e33f5e21 100644 --- a/node/subsystem-types/src/messages.rs +++ b/node/subsystem-types/src/messages.rs @@ -39,7 +39,7 @@ use polkadot_node_primitives::{ SignedDisputeStatement, SignedFullStatement, ValidationResult, }; use polkadot_primitives::{ - vstaging, AuthorityDiscoveryId, BackedCandidate, BlockNumber, CandidateEvent, CandidateHash, + slashing, AuthorityDiscoveryId, BackedCandidate, BlockNumber, CandidateEvent, CandidateHash, CandidateIndex, CandidateReceipt, CollatorId, CommittedCandidateReceipt, CoreState, DisputeState, ExecutorParams, GroupIndex, GroupRotationInfo, Hash, Header as BlockHeader, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, MultiDisputeStatementSet, @@ -607,21 +607,18 @@ pub enum RuntimeApiRequest { /// Returns all on-chain disputes at given block number. Available in `v3`. Disputes(RuntimeApiSender)>>), /// Returns a list of validators that lost a past session dispute and need to be slashed. - /// `VStaging` + /// `V5` UnappliedSlashes( - RuntimeApiSender>, + RuntimeApiSender>, ), /// Returns a merkle proof of a validator session key. - /// `VStaging` - KeyOwnershipProof( - ValidatorId, - RuntimeApiSender>, - ), + /// `V5` + KeyOwnershipProof(ValidatorId, RuntimeApiSender>), /// Submits an unsigned extrinsic to slash validator who lost a past session dispute. - /// `VStaging` + /// `V5` SubmitReportDisputeLost( - vstaging::slashing::DisputeProof, - vstaging::slashing::OpaqueKeyOwnershipProof, + slashing::DisputeProof, + slashing::OpaqueKeyOwnershipProof, RuntimeApiSender>, ), } @@ -632,17 +629,17 @@ impl RuntimeApiRequest { /// `Disputes` pub const DISPUTES_RUNTIME_REQUIREMENT: u32 = 3; - /// `UnappliedSlashes` - pub const UNAPPLIED_SLASHES_RUNTIME_REQUIREMENT: u32 = 4; - /// `ExecutorParams` pub const EXECUTOR_PARAMS_RUNTIME_REQUIREMENT: u32 = 4; + /// `UnappliedSlashes` + pub const UNAPPLIED_SLASHES_RUNTIME_REQUIREMENT: u32 = 5; + /// `KeyOwnershipProof` - pub const KEY_OWNERSHIP_PROOF_RUNTIME_REQUIREMENT: u32 = 4; + pub const KEY_OWNERSHIP_PROOF_RUNTIME_REQUIREMENT: u32 = 5; /// `SubmitReportDisputeLost` - pub const SUBMIT_REPORT_DISPUTE_LOST_RUNTIME_REQUIREMENT: u32 = 4; + pub const SUBMIT_REPORT_DISPUTE_LOST_RUNTIME_REQUIREMENT: u32 = 5; } /// A message to the Runtime API subsystem. diff --git a/node/subsystem-util/src/lib.rs b/node/subsystem-util/src/lib.rs index f523d7e04edc..d6984d697aaa 100644 --- a/node/subsystem-util/src/lib.rs +++ b/node/subsystem-util/src/lib.rs @@ -29,7 +29,7 @@ use polkadot_node_subsystem::{ messages::{RuntimeApiMessage, RuntimeApiRequest, RuntimeApiSender}, overseer, SubsystemSender, }; -use polkadot_primitives::ExecutorParams; +use polkadot_primitives::{slashing, ExecutorParams}; pub use overseer::{ gen::{OrchestraError as OverseerError, Timeout}, @@ -42,8 +42,8 @@ use futures::channel::{mpsc, oneshot}; use parity_scale_codec::Encode; use polkadot_primitives::{ - vstaging, AuthorityDiscoveryId, CandidateEvent, CandidateHash, CommittedCandidateReceipt, - CoreState, EncodeAs, GroupIndex, GroupRotationInfo, Hash, Id as ParaId, OccupiedCoreAssumption, + AuthorityDiscoveryId, CandidateEvent, CandidateHash, CommittedCandidateReceipt, CoreState, + EncodeAs, GroupIndex, GroupRotationInfo, Hash, Id as ParaId, OccupiedCoreAssumption, PersistedValidationData, ScrapedOnChainVotes, SessionIndex, SessionInfo, Signed, SigningContext, ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex, ValidatorSignature, @@ -212,9 +212,9 @@ specialize_requests! { -> Option; ValidationCodeHash; fn request_on_chain_votes() -> Option; FetchOnChainVotes; fn request_session_executor_params(session_index: SessionIndex) -> Option;SessionExecutorParams; - fn request_unapplied_slashes() -> Vec<(SessionIndex, CandidateHash, vstaging::slashing::PendingSlashes)>; UnappliedSlashes; - fn request_key_ownership_proof(validator_id: ValidatorId) -> Option; KeyOwnershipProof; - fn request_submit_report_dispute_lost(dp: vstaging::slashing::DisputeProof, okop: vstaging::slashing::OpaqueKeyOwnershipProof) -> Option<()>; SubmitReportDisputeLost; + fn request_unapplied_slashes() -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)>; UnappliedSlashes; + fn request_key_ownership_proof(validator_id: ValidatorId) -> Option; KeyOwnershipProof; + fn request_submit_report_dispute_lost(dp: slashing::DisputeProof, okop: slashing::OpaqueKeyOwnershipProof) -> Option<()>; SubmitReportDisputeLost; } /// Requests executor parameters from the runtime effective at given relay-parent. First obtains diff --git a/primitives/src/lib.rs b/primitives/src/lib.rs index 9cd1de8b4778..1c8ef1eae73b 100644 --- a/primitives/src/lib.rs +++ b/primitives/src/lib.rs @@ -19,8 +19,8 @@ #![warn(missing_docs)] #![cfg_attr(not(feature = "std"), no_std)] -// `v4` is currently the latest stable version of the runtime API. -pub mod v4; +// `v5` is currently the latest stable version of the runtime API. +pub mod v5; // The 'staging' version is special - it contains primitives which are // still in development. Once they are considered stable, they will be @@ -33,18 +33,18 @@ pub mod runtime_api; // Current primitives not requiring versioning are exported here. // Primitives requiring versioning must not be exported and must be referred by an exact version. -pub use v4::{ +pub use v5::{ byzantine_threshold, check_candidate_backing, collator_signature_payload, metric_definitions, - supermajority_threshold, well_known_keys, AbridgedHostConfiguration, AbridgedHrmpChannel, - AccountId, AccountIndex, AccountPublic, ApprovalVote, AssignmentId, AuthorityDiscoveryId, - AvailabilityBitfield, BackedCandidate, Balance, BlakeTwo256, Block, BlockId, BlockNumber, - CandidateCommitments, CandidateDescriptor, CandidateEvent, CandidateHash, CandidateIndex, - CandidateReceipt, CheckedDisputeStatementSet, CheckedMultiDisputeStatementSet, CollatorId, - CollatorSignature, CommittedCandidateReceipt, CompactStatement, ConsensusLog, CoreIndex, - CoreOccupied, CoreState, DisputeState, DisputeStatement, DisputeStatementSet, DownwardMessage, - EncodeAs, ExecutorParam, ExecutorParams, ExecutorParamsHash, ExplicitDisputeStatement, - GroupIndex, GroupRotationInfo, Hash, HashT, HeadData, Header, HrmpChannelId, Id, - InboundDownwardMessage, InboundHrmpMessage, IndexedVec, InherentData, + slashing, supermajority_threshold, well_known_keys, AbridgedHostConfiguration, + AbridgedHrmpChannel, AccountId, AccountIndex, AccountPublic, ApprovalVote, AssignmentId, + AuthorityDiscoveryId, AvailabilityBitfield, BackedCandidate, Balance, BlakeTwo256, Block, + BlockId, BlockNumber, CandidateCommitments, CandidateDescriptor, CandidateEvent, CandidateHash, + CandidateIndex, CandidateReceipt, CheckedDisputeStatementSet, CheckedMultiDisputeStatementSet, + CollatorId, CollatorSignature, CommittedCandidateReceipt, CompactStatement, ConsensusLog, + CoreIndex, CoreOccupied, CoreState, DisputeState, DisputeStatement, DisputeStatementSet, + DownwardMessage, EncodeAs, ExecutorParam, ExecutorParams, ExecutorParamsHash, + ExplicitDisputeStatement, GroupIndex, GroupRotationInfo, Hash, HashT, HeadData, Header, + HrmpChannelId, Id, InboundDownwardMessage, InboundHrmpMessage, IndexedVec, InherentData, InvalidDisputeStatementKind, Moment, MultiDisputeStatementSet, Nonce, OccupiedCore, OccupiedCoreAssumption, OutboundHrmpMessage, ParathreadClaim, ParathreadEntry, PersistedValidationData, PvfCheckStatement, PvfExecTimeoutKind, PvfPrepTimeoutKind, @@ -60,4 +60,4 @@ pub use v4::{ }; #[cfg(feature = "std")] -pub use v4::{AssignmentPair, CollatorPair, ValidatorPair}; +pub use v5::{AssignmentPair, CollatorPair, ValidatorPair}; diff --git a/primitives/src/runtime_api.rs b/primitives/src/runtime_api.rs index c60ec8c92298..aea069db7694 100644 --- a/primitives/src/runtime_api.rs +++ b/primitives/src/runtime_api.rs @@ -123,7 +123,7 @@ use sp_std::{collections::btree_map::BTreeMap, prelude::*}; sp_api::decl_runtime_apis! { /// The API for querying the state of parachains on-chain. - #[api_version(4)] + #[api_version(5)] pub trait ParachainHost { /// Get the current validators. fn validators() -> Vec; @@ -220,18 +220,18 @@ sp_api::decl_runtime_apis! { fn session_executor_params(session_index: SessionIndex) -> Option; /// Returns a list of validators that lost a past session dispute and need to be slashed. - #[api_version(5)] + /// NOTE: This function is only available since parachain host version 5. fn unapplied_slashes() -> Vec<(SessionIndex, CandidateHash, vstaging::slashing::PendingSlashes)>; /// Returns a merkle proof of a validator session key. - #[api_version(5)] + /// NOTE: This function is only available since parachain host version 5. fn key_ownership_proof( validator_id: ValidatorId, ) -> Option; /// Submit an unsigned extrinsic to slash validators who lost a dispute about /// a candidate of a past session. - #[api_version(5)] + /// NOTE: This function is only available since parachain host version 5. fn submit_report_dispute_lost( dispute_proof: vstaging::slashing::DisputeProof, key_ownership_proof: vstaging::slashing::OpaqueKeyOwnershipProof, diff --git a/primitives/src/v4/executor_params.rs b/primitives/src/v5/executor_params.rs similarity index 100% rename from primitives/src/v4/executor_params.rs rename to primitives/src/v5/executor_params.rs diff --git a/primitives/src/v4/metrics.rs b/primitives/src/v5/metrics.rs similarity index 100% rename from primitives/src/v4/metrics.rs rename to primitives/src/v5/metrics.rs diff --git a/primitives/src/v4/mod.rs b/primitives/src/v5/mod.rs similarity index 99% rename from primitives/src/v4/mod.rs rename to primitives/src/v5/mod.rs index 4f4c9aa5f81e..6c6258b2b805 100644 --- a/primitives/src/v4/mod.rs +++ b/primitives/src/v5/mod.rs @@ -57,6 +57,8 @@ pub use sp_staking::SessionIndex; mod signed; pub use signed::{EncodeAs, Signed, UncheckedSigned}; +pub mod slashing; + mod metrics; pub use metrics::{ metric_definitions, RuntimeMetricLabel, RuntimeMetricLabelValue, RuntimeMetricLabelValues, diff --git a/primitives/src/v4/signed.rs b/primitives/src/v5/signed.rs similarity index 100% rename from primitives/src/v4/signed.rs rename to primitives/src/v5/signed.rs diff --git a/primitives/src/vstaging/slashing.rs b/primitives/src/v5/slashing.rs similarity index 98% rename from primitives/src/vstaging/slashing.rs rename to primitives/src/v5/slashing.rs index 41bb0e22d659..34424a00d23c 100644 --- a/primitives/src/vstaging/slashing.rs +++ b/primitives/src/v5/slashing.rs @@ -16,7 +16,7 @@ //! Primitives types used for dispute slashing. -use crate::v4::{CandidateHash, SessionIndex, ValidatorId, ValidatorIndex}; +use crate::{CandidateHash, SessionIndex, ValidatorId, ValidatorIndex}; use parity_scale_codec::{Decode, Encode}; use scale_info::TypeInfo; use sp_std::{collections::btree_map::BTreeMap, vec::Vec}; diff --git a/primitives/src/vstaging/mod.rs b/primitives/src/vstaging/mod.rs index 9b6291ffbf32..0dbfa8c34cf6 100644 --- a/primitives/src/vstaging/mod.rs +++ b/primitives/src/vstaging/mod.rs @@ -17,8 +17,7 @@ //! Staging Primitives. // Put any primitives used by staging APIs functions here -pub use crate::v4::*; -pub mod slashing; +pub use crate::v5::*; use sp_std::prelude::*; use parity_scale_codec::{Decode, Encode}; @@ -37,6 +36,7 @@ use scale_info::TypeInfo; serde::Serialize, serde::Deserialize, )] + pub struct AsyncBackingParams { /// The maximum number of para blocks between the para head in a relay parent /// and a new candidate. Restricts nodes from building arbitrary long chains diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index aebc53fbec10..16f2e7927b49 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -23,11 +23,12 @@ use pallet_nis::WithMaximumOf; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use primitives::{ - AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CandidateHash, + slashing, AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CandidateHash, CommittedCandidateReceipt, CoreState, DisputeState, ExecutorParams, GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, Moment, Nonce, OccupiedCoreAssumption, PersistedValidationData, ScrapedOnChainVotes, SessionInfo, Signature, ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex, LOWEST_PUBLIC_ID, + PARACHAIN_KEY_TYPE_ID, }; use runtime_common::{ auctions, claims, crowdloan, impl_runtime_weights, impls::DealWithFees, paras_registrar, @@ -44,7 +45,7 @@ use runtime_parachains::{ inclusion::{AggregateMessageOrigin, UmpQueueId}, initializer as parachains_initializer, origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, reward_points as parachains_reward_points, - runtime_api_impl::v4 as parachains_runtime_api_impl, + runtime_api_impl::v5 as parachains_runtime_api_impl, scheduler as parachains_scheduler, session_info as parachains_session_info, shared as parachains_shared, }; @@ -1822,6 +1823,31 @@ sp_api::impl_runtime_apis! { fn disputes() -> Vec<(SessionIndex, CandidateHash, DisputeState)> { parachains_runtime_api_impl::get_session_disputes::() } + + fn unapplied_slashes( + ) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { + parachains_runtime_api_impl::unapplied_slashes::() + } + + fn key_ownership_proof( + validator_id: ValidatorId, + ) -> Option { + use parity_scale_codec::Encode; + + Historical::prove((PARACHAIN_KEY_TYPE_ID, validator_id)) + .map(|p| p.encode()) + .map(slashing::OpaqueKeyOwnershipProof::new) + } + + fn submit_report_dispute_lost( + dispute_proof: slashing::DisputeProof, + key_ownership_proof: slashing::OpaqueKeyOwnershipProof, + ) -> Option<()> { + parachains_runtime_api_impl::submit_unsigned_slashing_report::( + dispute_proof, + key_ownership_proof, + ) + } } impl beefy_primitives::BeefyApi for Runtime { diff --git a/runtime/parachains/src/runtime_api_impl/mod.rs b/runtime/parachains/src/runtime_api_impl/mod.rs index 6f0ee54f6f53..e22ef825858d 100644 --- a/runtime/parachains/src/runtime_api_impl/mod.rs +++ b/runtime/parachains/src/runtime_api_impl/mod.rs @@ -26,5 +26,5 @@ //! 2. Move methods from `vstaging` to `v3`. The new stable version should include //! all methods from `vstaging` tagged with the new version number (e.g. all //! `v3` methods). -pub mod v4; +pub mod v5; pub mod vstaging; diff --git a/runtime/parachains/src/runtime_api_impl/v4.rs b/runtime/parachains/src/runtime_api_impl/v5.rs similarity index 93% rename from runtime/parachains/src/runtime_api_impl/v4.rs rename to runtime/parachains/src/runtime_api_impl/v5.rs index 20f62f520a19..72425995b4b0 100644 --- a/runtime/parachains/src/runtime_api_impl/v4.rs +++ b/runtime/parachains/src/runtime_api_impl/v5.rs @@ -11,7 +11,7 @@ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -//! A module exporting runtime API implementation functions for all runtime APIs using v2 +//! A module exporting runtime API implementation functions for all runtime APIs using v5 //! primitives. //! //! Runtimes implementing the v2 runtime API are recommended to forward directly to these @@ -22,12 +22,12 @@ use crate::{ session_info, shared, }; use primitives::{ - AuthorityDiscoveryId, CandidateEvent, CandidateHash, CommittedCandidateReceipt, CoreIndex, - CoreOccupied, CoreState, DisputeState, ExecutorParams, GroupIndex, GroupRotationInfo, Hash, - Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, OccupiedCore, OccupiedCoreAssumption, - PersistedValidationData, PvfCheckStatement, ScheduledCore, ScrapedOnChainVotes, SessionIndex, - SessionInfo, ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex, - ValidatorSignature, + slashing, AuthorityDiscoveryId, CandidateEvent, CandidateHash, CommittedCandidateReceipt, + CoreIndex, CoreOccupied, CoreState, DisputeState, ExecutorParams, GroupIndex, + GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, + OccupiedCore, OccupiedCoreAssumption, PersistedValidationData, PvfCheckStatement, + ScheduledCore, ScrapedOnChainVotes, SessionIndex, SessionInfo, ValidationCode, + ValidationCodeHash, ValidatorId, ValidatorIndex, ValidatorSignature, }; use sp_runtime::traits::One; use sp_std::{collections::btree_map::BTreeMap, prelude::*}; @@ -425,3 +425,22 @@ pub fn session_executor_params( None => Some(ExecutorParams::default()), } } + +/// Implementation of `unapplied_slashes` runtime API +pub fn unapplied_slashes( +) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { + >::unapplied_slashes() +} + +/// Implementation of `submit_report_dispute_lost` runtime API +pub fn submit_unsigned_slashing_report( + dispute_proof: slashing::DisputeProof, + key_ownership_proof: slashing::OpaqueKeyOwnershipProof, +) -> Option<()> { + let key_ownership_proof = key_ownership_proof.decode()?; + + >::submit_unsigned_slashing_report( + dispute_proof, + key_ownership_proof, + ) +} diff --git a/runtime/parachains/src/runtime_api_impl/vstaging.rs b/runtime/parachains/src/runtime_api_impl/vstaging.rs index be7c58e3f24e..d01b543630c3 100644 --- a/runtime/parachains/src/runtime_api_impl/vstaging.rs +++ b/runtime/parachains/src/runtime_api_impl/vstaging.rs @@ -15,32 +15,3 @@ // along with Polkadot. If not, see . //! Put implementations of functions from staging APIs here. - -use crate::disputes; -use primitives::{vstaging, CandidateHash, DisputeState, SessionIndex}; -use sp_std::prelude::*; - -/// Implementation for `get_session_disputes` function from the runtime API -pub fn get_session_disputes( -) -> Vec<(SessionIndex, CandidateHash, DisputeState)> { - >::disputes() -} - -/// Implementation of `unapplied_slashes` runtime API -pub fn unapplied_slashes( -) -> Vec<(SessionIndex, CandidateHash, vstaging::slashing::PendingSlashes)> { - >::unapplied_slashes() -} - -/// Implementation of `submit_report_dispute_lost` runtime API -pub fn submit_unsigned_slashing_report( - dispute_proof: vstaging::slashing::DisputeProof, - key_ownership_proof: vstaging::slashing::OpaqueKeyOwnershipProof, -) -> Option<()> { - let key_ownership_proof = key_ownership_proof.decode()?; - - >::submit_unsigned_slashing_report( - dispute_proof, - key_ownership_proof, - ) -} diff --git a/runtime/parachains/src/ump_tests.rs b/runtime/parachains/src/ump_tests.rs index 40b764fa4d46..100d3f248a83 100644 --- a/runtime/parachains/src/ump_tests.rs +++ b/runtime/parachains/src/ump_tests.rs @@ -30,7 +30,7 @@ use frame_support::{ traits::{EnqueueMessage, ExecuteOverweightError, ServiceQueues}, weights::Weight, }; -use primitives::v4::{well_known_keys, Id as ParaId, UpwardMessage}; +use primitives::{well_known_keys, Id as ParaId, UpwardMessage}; use sp_core::twox_64; use sp_io::hashing::blake2_256; use sp_runtime::traits::Bounded; diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 0ec33b2a4166..3349cfd321dd 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -33,7 +33,7 @@ use runtime_parachains::{ inclusion::{AggregateMessageOrigin, UmpQueueId}, initializer as parachains_initializer, origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, reward_points as parachains_reward_points, - runtime_api_impl::v4 as parachains_runtime_api_impl, + runtime_api_impl::v5 as parachains_runtime_api_impl, scheduler as parachains_scheduler, session_info as parachains_session_info, shared as parachains_shared, }; @@ -57,11 +57,12 @@ use pallet_session::historical as session_historical; use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use primitives::{ - AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CandidateHash, + slashing, AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CandidateHash, CommittedCandidateReceipt, CoreState, DisputeState, ExecutorParams, GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, Moment, Nonce, OccupiedCoreAssumption, PersistedValidationData, ScrapedOnChainVotes, SessionInfo, Signature, ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex, LOWEST_PUBLIC_ID, + PARACHAIN_KEY_TYPE_ID, }; use sp_core::OpaqueMetadata; use sp_mmr_primitives as mmr; @@ -1835,6 +1836,31 @@ sp_api::impl_runtime_apis! { fn disputes() -> Vec<(SessionIndex, CandidateHash, DisputeState)> { parachains_runtime_api_impl::get_session_disputes::() } + + fn unapplied_slashes( + ) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { + parachains_runtime_api_impl::unapplied_slashes::() + } + + fn key_ownership_proof( + validator_id: ValidatorId, + ) -> Option { + use parity_scale_codec::Encode; + + Historical::prove((PARACHAIN_KEY_TYPE_ID, validator_id)) + .map(|p| p.encode()) + .map(slashing::OpaqueKeyOwnershipProof::new) + } + + fn submit_report_dispute_lost( + dispute_proof: slashing::DisputeProof, + key_ownership_proof: slashing::OpaqueKeyOwnershipProof, + ) -> Option<()> { + parachains_runtime_api_impl::submit_unsigned_slashing_report::( + dispute_proof, + key_ownership_proof, + ) + } } impl beefy_primitives::BeefyApi for Runtime { diff --git a/runtime/rococo/src/lib.rs b/runtime/rococo/src/lib.rs index e096a6642b4d..694d6f54fa85 100644 --- a/runtime/rococo/src/lib.rs +++ b/runtime/rococo/src/lib.rs @@ -23,7 +23,7 @@ use pallet_nis::WithMaximumOf; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use primitives::{ - vstaging, AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CandidateHash, + slashing, AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CandidateHash, CommittedCandidateReceipt, CoreState, DisputeState, ExecutorParams, GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, Moment, Nonce, OccupiedCoreAssumption, PersistedValidationData, ScrapedOnChainVotes, SessionInfo, Signature, @@ -44,7 +44,7 @@ use runtime_parachains::{ inclusion::{AggregateMessageOrigin, UmpQueueId}, initializer as parachains_initializer, origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, - runtime_api_impl::v4 as parachains_runtime_api_impl, + runtime_api_impl::v5 as parachains_runtime_api_impl, scheduler as parachains_scheduler, session_info as parachains_session_info, shared as parachains_shared, }; @@ -1915,25 +1915,25 @@ sp_api::impl_runtime_apis! { } fn unapplied_slashes( - ) -> Vec<(SessionIndex, CandidateHash, vstaging::slashing::PendingSlashes)> { - runtime_parachains::runtime_api_impl::vstaging::unapplied_slashes::() + ) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { + parachains_runtime_api_impl::unapplied_slashes::() } fn key_ownership_proof( validator_id: ValidatorId, - ) -> Option { + ) -> Option { use parity_scale_codec::Encode; Historical::prove((PARACHAIN_KEY_TYPE_ID, validator_id)) .map(|p| p.encode()) - .map(vstaging::slashing::OpaqueKeyOwnershipProof::new) + .map(slashing::OpaqueKeyOwnershipProof::new) } fn submit_report_dispute_lost( - dispute_proof: vstaging::slashing::DisputeProof, - key_ownership_proof: vstaging::slashing::OpaqueKeyOwnershipProof, + dispute_proof: slashing::DisputeProof, + key_ownership_proof: slashing::OpaqueKeyOwnershipProof, ) -> Option<()> { - runtime_parachains::runtime_api_impl::vstaging::submit_unsigned_slashing_report::( + parachains_runtime_api_impl::submit_unsigned_slashing_report::( dispute_proof, key_ownership_proof, ) diff --git a/runtime/test-runtime/src/lib.rs b/runtime/test-runtime/src/lib.rs index a361a2a6ec5c..132b8897d87e 100644 --- a/runtime/test-runtime/src/lib.rs +++ b/runtime/test-runtime/src/lib.rs @@ -26,9 +26,10 @@ use sp_std::{collections::btree_map::BTreeMap, prelude::*}; use polkadot_runtime_parachains::{ configuration as parachains_configuration, disputes as parachains_disputes, - dmp as parachains_dmp, hrmp as parachains_hrmp, inclusion as parachains_inclusion, - initializer as parachains_initializer, origin as parachains_origin, paras as parachains_paras, - paras_inherent as parachains_paras_inherent, runtime_api_impl::v4 as runtime_impl, + disputes::slashing as parachains_slashing, dmp as parachains_dmp, hrmp as parachains_hrmp, + inclusion as parachains_inclusion, initializer as parachains_initializer, + origin as parachains_origin, paras as parachains_paras, + paras_inherent as parachains_paras_inherent, runtime_api_impl::v5 as runtime_impl, scheduler as parachains_scheduler, session_info as parachains_session_info, shared as parachains_shared, }; @@ -38,19 +39,19 @@ use beefy_primitives::crypto::{AuthorityId as BeefyId, Signature as BeefySignatu use frame_election_provider_support::{onchain, SequentialPhragmen}; use frame_support::{ construct_runtime, parameter_types, - traits::{Everything, WithdrawReasons}, + traits::{Everything, KeyOwnerProofSystem, WithdrawReasons}, }; use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId}; use pallet_session::historical as session_historical; use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo}; use polkadot_runtime_parachains::reward_points::RewardValidatorsWithEraPoints; use primitives::{ - AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CandidateHash, + slashing, AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CandidateHash, CommittedCandidateReceipt, CoreState, DisputeState, ExecutorParams, GroupRotationInfo, Hash as HashT, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, Moment, Nonce, OccupiedCoreAssumption, PersistedValidationData, ScrapedOnChainVotes, SessionInfo as SessionInfoData, Signature, ValidationCode, ValidationCodeHash, ValidatorId, - ValidatorIndex, + ValidatorIndex, PARACHAIN_KEY_TYPE_ID, }; use runtime_common::{ claims, impl_runtime_weights, paras_sudo_wrapper, BlockHashCount, BlockLength, @@ -67,7 +68,7 @@ use sp_runtime::{ SaturatedConversion, StaticLookup, Verify, }, transaction_validity::{TransactionPriority, TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, Perbill, + ApplyExtrinsicResult, KeyTypeId, Perbill, }; use sp_staking::SessionIndex; #[cfg(any(feature = "std", test))] @@ -170,6 +171,8 @@ where parameter_types! { pub storage EpochDuration: u64 = EPOCH_DURATION_IN_SLOTS as u64; pub storage ExpectedBlockTime: Moment = MILLISECS_PER_BLOCK; + pub ReportLongevity: u64 = + BondingDuration::get() as u64 * SessionsPerEra::get() as u64 * EpochDuration::get(); } impl pallet_babe::Config for Runtime { @@ -185,7 +188,8 @@ impl pallet_babe::Config for Runtime { type MaxAuthorities = MaxAuthorities; - type KeyOwnerProof = sp_core::Void; + type KeyOwnerProof = + >::Proof; type EquivocationReportSystem = (); } @@ -484,10 +488,27 @@ impl parachains_inclusion::Config for Runtime { impl parachains_disputes::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RewardValidators = (); - type SlashingHandler = (); + type SlashingHandler = parachains_slashing::SlashValidatorsForDisputes; type WeightInfo = parachains_disputes::TestWeightInfo; } +impl parachains_slashing::Config for Runtime { + type KeyOwnerProofSystem = Historical; + type KeyOwnerProof = + >::Proof; + type KeyOwnerIdentification = >::IdentificationTuple; + type HandleReports = parachains_slashing::SlashingReportHandler< + Self::KeyOwnerIdentification, + Offences, + ReportLongevity, + >; + type WeightInfo = parachains_disputes::slashing::TestWeightInfo; + type BenchmarkingConfig = parachains_slashing::BenchConfig<1000>; +} + impl parachains_paras_inherent::Config for Runtime { type WeightInfo = parachains_paras_inherent::TestWeightInfo; } @@ -671,6 +692,7 @@ construct_runtime! { Dmp: parachains_dmp::{Pallet, Storage}, Xcm: pallet_xcm::{Pallet, Call, Event, Origin}, ParasDisputes: parachains_disputes::{Pallet, Storage, Event}, + ParasSlashing: parachains_slashing::{Pallet, Call, Storage, ValidateUnsigned}, Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event}, @@ -891,6 +913,31 @@ sp_api::impl_runtime_apis! { fn disputes() -> Vec<(SessionIndex, CandidateHash, DisputeState)> { runtime_impl::get_session_disputes::() } + + fn unapplied_slashes( + ) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { + runtime_impl::unapplied_slashes::() + } + + fn key_ownership_proof( + validator_id: ValidatorId, + ) -> Option { + use parity_scale_codec::Encode; + + Historical::prove((PARACHAIN_KEY_TYPE_ID, validator_id)) + .map(|p| p.encode()) + .map(slashing::OpaqueKeyOwnershipProof::new) + } + + fn submit_report_dispute_lost( + dispute_proof: slashing::DisputeProof, + key_ownership_proof: slashing::OpaqueKeyOwnershipProof, + ) -> Option<()> { + runtime_impl::submit_unsigned_slashing_report::( + dispute_proof, + key_ownership_proof, + ) + } } impl beefy_primitives::BeefyApi for Runtime { diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index d7850dcdd27d..592d552bfee9 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -39,7 +39,7 @@ use pallet_session::historical as session_historical; use pallet_transaction_payment::{CurrencyAdapter, FeeDetails, RuntimeDispatchInfo}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use primitives::{ - vstaging, AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CandidateHash, + slashing, AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CandidateHash, CommittedCandidateReceipt, CoreState, DisputeState, ExecutorParams, GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, Moment, Nonce, OccupiedCoreAssumption, PersistedValidationData, PvfCheckStatement, ScrapedOnChainVotes, @@ -58,9 +58,7 @@ use runtime_parachains::{ inclusion::{AggregateMessageOrigin, UmpQueueId}, initializer as parachains_initializer, origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, reward_points as parachains_reward_points, - runtime_api_impl::{ - v4 as parachains_runtime_api_impl, vstaging as parachains_runtime_api_impl_staging, - }, + runtime_api_impl::v5 as parachains_runtime_api_impl, scheduler as parachains_scheduler, session_info as parachains_session_info, shared as parachains_shared, }; @@ -1582,25 +1580,25 @@ sp_api::impl_runtime_apis! { } fn unapplied_slashes( - ) -> Vec<(SessionIndex, CandidateHash, vstaging::slashing::PendingSlashes)> { - parachains_runtime_api_impl_staging::unapplied_slashes::() + ) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { + parachains_runtime_api_impl::unapplied_slashes::() } fn key_ownership_proof( validator_id: ValidatorId, - ) -> Option { + ) -> Option { use parity_scale_codec::Encode; Historical::prove((PARACHAIN_KEY_TYPE_ID, validator_id)) .map(|p| p.encode()) - .map(vstaging::slashing::OpaqueKeyOwnershipProof::new) + .map(slashing::OpaqueKeyOwnershipProof::new) } fn submit_report_dispute_lost( - dispute_proof: vstaging::slashing::DisputeProof, - key_ownership_proof: vstaging::slashing::OpaqueKeyOwnershipProof, + dispute_proof: slashing::DisputeProof, + key_ownership_proof: slashing::OpaqueKeyOwnershipProof, ) -> Option<()> { - parachains_runtime_api_impl_staging::submit_unsigned_slashing_report::( + parachains_runtime_api_impl::submit_unsigned_slashing_report::( dispute_proof, key_ownership_proof, ) From 2af7d41b11fe2be27aa6793873f9ff88b3fc2651 Mon Sep 17 00:00:00 2001 From: Mara Robin B Date: Tue, 13 Jun 2023 13:54:10 +0200 Subject: [PATCH 13/56] update weights (#7298) * polkadot: update weights * westend: update weights * kusama: update weights * rococo: update weights --- .../constants/src/weights/block_weights.rs | 20 +- .../src/weights/extrinsic_weights.rs | 20 +- .../weights/frame_benchmarking_baseline.rs | 30 +- .../frame_election_provider_support.rs | 28 +- runtime/kusama/src/weights/frame_system.rs | 61 ++-- .../kusama/src/weights/pallet_bags_list.rs | 16 +- ...allet_balances_nis_counterpart_balances.rs | 40 +-- runtime/kusama/src/weights/pallet_bounties.rs | 56 ++-- .../src/weights/pallet_child_bounties.rs | 40 +-- .../src/weights/pallet_conviction_voting.rs | 40 +-- .../pallet_election_provider_multi_phase.rs | 76 +++-- .../kusama/src/weights/pallet_fast_unstake.rs | 48 +-- runtime/kusama/src/weights/pallet_identity.rs | 164 +++++------ .../kusama/src/weights/pallet_im_online.rs | 16 +- runtime/kusama/src/weights/pallet_indices.rs | 24 +- .../src/weights/pallet_message_queue.rs | 168 ++++++----- runtime/kusama/src/weights/pallet_multisig.rs | 68 ++--- runtime/kusama/src/weights/pallet_nis.rs | 56 ++-- .../src/weights/pallet_nomination_pools.rs | 98 +++---- runtime/kusama/src/weights/pallet_preimage.rs | 60 ++-- runtime/kusama/src/weights/pallet_proxy.rs | 92 +++--- .../src/weights/pallet_ranked_collective.rs | 44 +-- .../pallet_referenda_fellowship_referenda.rs | 232 ++++++++------- .../src/weights/pallet_referenda_referenda.rs | 232 ++++++++------- .../kusama/src/weights/pallet_scheduler.rs | 74 ++--- runtime/kusama/src/weights/pallet_session.rs | 24 +- runtime/kusama/src/weights/pallet_staking.rs | 230 +++++++-------- .../kusama/src/weights/pallet_timestamp.rs | 12 +- runtime/kusama/src/weights/pallet_treasury.rs | 36 +-- runtime/kusama/src/weights/pallet_utility.rs | 36 +-- runtime/kusama/src/weights/pallet_vesting.rs | 100 +++---- .../kusama/src/weights/pallet_whitelist.rs | 28 +- runtime/kusama/src/weights/pallet_xcm.rs | 68 ++--- .../src/weights/runtime_common_auctions.rs | 22 +- .../src/weights/runtime_common_claims.rs | 24 +- .../src/weights/runtime_common_crowdloan.rs | 48 +-- .../weights/runtime_common_paras_registrar.rs | 110 +++---- .../src/weights/runtime_common_slots.rs | 40 +-- .../weights/runtime_parachains_disputes.rs | 8 +- .../runtime_parachains_disputes_slashing.rs | 12 +- .../src/weights/runtime_parachains_hrmp.rs | 64 ++-- .../weights/runtime_parachains_inclusion.rs | 38 ++- .../weights/runtime_parachains_initializer.rs | 12 +- .../src/weights/runtime_parachains_paras.rs | 121 ++++---- .../runtime_parachains_paras_inherent.rs | 96 +++--- .../constants/src/weights/block_weights.rs | 20 +- .../src/weights/extrinsic_weights.rs | 20 +- .../weights/frame_benchmarking_baseline.rs | 32 +- .../frame_election_provider_support.rs | 28 +- runtime/polkadot/src/weights/frame_system.rs | 65 +++-- .../polkadot/src/weights/pallet_bags_list.rs | 16 +- .../polkadot/src/weights/pallet_balances.rs | 40 +-- .../polkadot/src/weights/pallet_bounties.rs | 56 ++-- .../src/weights/pallet_child_bounties.rs | 40 +-- .../src/weights/pallet_collective_council.rs | 114 ++++---- .../pallet_collective_technical_committee.rs | 128 ++++---- .../src/weights/pallet_conviction_voting.rs | 54 ++-- .../polkadot/src/weights/pallet_democracy.rs | 148 +++++----- .../pallet_election_provider_multi_phase.rs | 72 ++--- .../src/weights/pallet_elections_phragmen.rs | 80 ++--- .../src/weights/pallet_fast_unstake.rs | 52 ++-- .../polkadot/src/weights/pallet_identity.rs | 164 ++++++----- .../polkadot/src/weights/pallet_im_online.rs | 16 +- .../polkadot/src/weights/pallet_indices.rs | 24 +- .../polkadot/src/weights/pallet_membership.rs | 58 ++-- .../src/weights/pallet_message_queue.rs | 182 ++++++------ .../polkadot/src/weights/pallet_multisig.rs | 68 ++--- .../src/weights/pallet_nomination_pools.rs | 100 +++---- .../polkadot/src/weights/pallet_preimage.rs | 60 ++-- runtime/polkadot/src/weights/pallet_proxy.rs | 92 +++--- .../polkadot/src/weights/pallet_referenda.rs | 274 +++++++++--------- .../polkadot/src/weights/pallet_scheduler.rs | 76 ++--- .../polkadot/src/weights/pallet_session.rs | 24 +- .../polkadot/src/weights/pallet_staking.rs | 230 +++++++-------- .../polkadot/src/weights/pallet_timestamp.rs | 12 +- runtime/polkadot/src/weights/pallet_tips.rs | 48 +-- .../polkadot/src/weights/pallet_treasury.rs | 36 +-- .../polkadot/src/weights/pallet_utility.rs | 36 +-- .../polkadot/src/weights/pallet_vesting.rs | 100 +++---- .../polkadot/src/weights/pallet_whitelist.rs | 26 +- runtime/polkadot/src/weights/pallet_xcm.rs | 94 +++--- .../src/weights/runtime_common_auctions.rs | 22 +- .../src/weights/runtime_common_claims.rs | 24 +- .../src/weights/runtime_common_crowdloan.rs | 48 +-- .../weights/runtime_common_paras_registrar.rs | 108 +++---- .../src/weights/runtime_common_slots.rs | 40 +-- .../runtime_parachains_configuration.rs | 44 +-- .../weights/runtime_parachains_disputes.rs | 8 +- .../runtime_parachains_disputes_slashing.rs | 42 ++- .../src/weights/runtime_parachains_hrmp.rs | 94 +++--- .../weights/runtime_parachains_inclusion.rs | 42 +-- .../weights/runtime_parachains_initializer.rs | 12 +- .../src/weights/runtime_parachains_paras.rs | 123 ++++---- .../runtime_parachains_paras_inherent.rs | 112 ++++--- .../constants/src/weights/block_weights.rs | 20 +- .../src/weights/extrinsic_weights.rs | 20 +- .../weights/frame_benchmarking_baseline.rs | 32 +- runtime/rococo/src/weights/frame_system.rs | 63 ++-- ...allet_balances_nis_counterpart_balances.rs | 40 +-- runtime/rococo/src/weights/pallet_bounties.rs | 18 +- .../src/weights/pallet_child_bounties.rs | 4 +- .../src/weights/pallet_collective_council.rs | 122 ++++---- .../pallet_collective_technical_committee.rs | 126 ++++---- .../rococo/src/weights/pallet_democracy.rs | 196 ++++++------- .../src/weights/pallet_elections_phragmen.rs | 80 ++--- runtime/rococo/src/weights/pallet_identity.rs | 164 ++++++----- .../rococo/src/weights/pallet_im_online.rs | 16 +- runtime/rococo/src/weights/pallet_indices.rs | 24 +- .../rococo/src/weights/pallet_membership.rs | 60 ++-- .../src/weights/pallet_message_queue.rs | 180 +++++++----- runtime/rococo/src/weights/pallet_multisig.rs | 66 ++--- runtime/rococo/src/weights/pallet_nis.rs | 56 ++-- runtime/rococo/src/weights/pallet_preimage.rs | 56 ++-- runtime/rococo/src/weights/pallet_proxy.rs | 96 +++--- .../rococo/src/weights/pallet_scheduler.rs | 76 ++--- runtime/rococo/src/weights/pallet_sudo.rs | 82 +++--- .../rococo/src/weights/pallet_timestamp.rs | 16 +- runtime/rococo/src/weights/pallet_tips.rs | 48 +-- runtime/rococo/src/weights/pallet_treasury.rs | 36 +-- runtime/rococo/src/weights/pallet_utility.rs | 36 +-- runtime/rococo/src/weights/pallet_vesting.rs | 100 +++---- runtime/rococo/src/weights/pallet_xcm.rs | 98 +++---- .../src/weights/runtime_common_auctions.rs | 22 +- .../src/weights/runtime_common_claims.rs | 24 +- .../src/weights/runtime_common_crowdloan.rs | 48 +-- .../weights/runtime_common_paras_registrar.rs | 110 +++---- .../src/weights/runtime_common_slots.rs | 40 +-- .../runtime_parachains_configuration.rs | 44 +-- .../weights/runtime_parachains_disputes.rs | 8 +- .../src/weights/runtime_parachains_hrmp.rs | 94 +++--- .../weights/runtime_parachains_inclusion.rs | 42 +-- .../weights/runtime_parachains_initializer.rs | 12 +- .../src/weights/runtime_parachains_paras.rs | 123 ++++---- .../constants/src/weights/block_weights.rs | 20 +- .../src/weights/extrinsic_weights.rs | 20 +- .../frame_election_provider_support.rs | 28 +- runtime/westend/src/weights/frame_system.rs | 61 ++-- .../westend/src/weights/pallet_bags_list.rs | 16 +- .../westend/src/weights/pallet_balances.rs | 40 +-- .../pallet_election_provider_multi_phase.rs | 72 ++--- .../src/weights/pallet_fast_unstake.rs | 48 +-- .../westend/src/weights/pallet_identity.rs | 164 +++++------ .../westend/src/weights/pallet_im_online.rs | 16 +- runtime/westend/src/weights/pallet_indices.rs | 24 +- .../src/weights/pallet_message_queue.rs | 168 ++++++----- .../westend/src/weights/pallet_multisig.rs | 68 ++--- .../src/weights/pallet_nomination_pools.rs | 104 +++---- .../westend/src/weights/pallet_preimage.rs | 58 ++-- runtime/westend/src/weights/pallet_proxy.rs | 96 +++--- .../westend/src/weights/pallet_scheduler.rs | 76 ++--- runtime/westend/src/weights/pallet_session.rs | 24 +- runtime/westend/src/weights/pallet_staking.rs | 232 +++++++-------- runtime/westend/src/weights/pallet_sudo.rs | 82 +++--- .../westend/src/weights/pallet_timestamp.rs | 12 +- runtime/westend/src/weights/pallet_utility.rs | 36 +-- runtime/westend/src/weights/pallet_vesting.rs | 100 +++---- runtime/westend/src/weights/pallet_xcm.rs | 64 ++-- .../src/weights/runtime_common_auctions.rs | 22 +- .../src/weights/runtime_common_crowdloan.rs | 48 +-- .../weights/runtime_common_paras_registrar.rs | 108 +++---- .../src/weights/runtime_common_slots.rs | 38 +-- .../runtime_parachains_configuration.rs | 44 +-- .../weights/runtime_parachains_disputes.rs | 8 +- .../runtime_parachains_disputes_slashing.rs | 12 +- .../src/weights/runtime_parachains_hrmp.rs | 64 ++-- .../weights/runtime_parachains_inclusion.rs | 38 ++- .../weights/runtime_parachains_initializer.rs | 10 +- .../src/weights/runtime_parachains_paras.rs | 123 ++++---- .../runtime_parachains_paras_inherent.rs | 96 +++--- 169 files changed, 5565 insertions(+), 5509 deletions(-) diff --git a/runtime/kusama/constants/src/weights/block_weights.rs b/runtime/kusama/constants/src/weights/block_weights.rs index f1249659015b..bcb112d26e50 100644 --- a/runtime/kusama/constants/src/weights/block_weights.rs +++ b/runtime/kusama/constants/src/weights/block_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28 (Y/M/D) -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-05-26 (Y/M/D) +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 3_425_466, 3_609_886 - /// Average: 3_467_068 - /// Median: 3_449_072 - /// Std-Dev: 36835.22 + /// Min, Max: 10_334_352, 10_757_886 + /// Average: 10_454_065 + /// Median: 10_437_355 + /// Std-Dev: 81224.63 /// /// Percentiles nanoseconds: - /// 99th: 3_600_149 - /// 95th: 3_542_240 - /// 75th: 3_479_155 + /// 99th: 10_652_096 + /// 95th: 10_590_847 + /// 75th: 10_499_221 pub const BlockExecutionWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(3_467_068), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(10_454_065), 0); } #[cfg(test)] diff --git a/runtime/kusama/constants/src/weights/extrinsic_weights.rs b/runtime/kusama/constants/src/weights/extrinsic_weights.rs index 9877df58d3e2..8fbfc15c2588 100644 --- a/runtime/kusama/constants/src/weights/extrinsic_weights.rs +++ b/runtime/kusama/constants/src/weights/extrinsic_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28 (Y/M/D) -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-05-26 (Y/M/D) +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 110_261, 112_028 - /// Average: 110_921 - /// Median: 110_835 - /// Std-Dev: 357.12 + /// Min, Max: 107_858, 110_151 + /// Average: 108_512 + /// Median: 108_463 + /// Std-Dev: 412.57 /// /// Percentiles nanoseconds: - /// 99th: 111_911 - /// 95th: 111_630 - /// 75th: 111_113 + /// 99th: 109_769 + /// 95th: 109_271 + /// 75th: 108_635 pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(110_921), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(108_512), 0); } #[cfg(test)] diff --git a/runtime/kusama/src/weights/frame_benchmarking_baseline.rs b/runtime/kusama/src/weights/frame_benchmarking_baseline.rs index 268d2076fed5..e70a49eb1b62 100644 --- a/runtime/kusama/src/weights/frame_benchmarking_baseline.rs +++ b/runtime/kusama/src/weights/frame_benchmarking_baseline.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_benchmarking::baseline` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -52,8 +52,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 182_000 picoseconds. - Weight::from_parts(205_425, 0) + // Minimum execution time: 176_000 picoseconds. + Weight::from_parts(227_529, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -61,8 +61,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 181_000 picoseconds. - Weight::from_parts(211_154, 0) + // Minimum execution time: 173_000 picoseconds. + Weight::from_parts(228_034, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -71,7 +71,7 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Measured: `0` // Estimated: `0` // Minimum execution time: 181_000 picoseconds. - Weight::from_parts(213_770, 0) + Weight::from_parts(231_715, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -79,16 +79,16 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 182_000 picoseconds. - Weight::from_parts(205_830, 0) + // Minimum execution time: 168_000 picoseconds. + Weight::from_parts(214_773, 0) .saturating_add(Weight::from_parts(0, 0)) } fn hashing() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 19_204_192_000 picoseconds. - Weight::from_parts(19_387_813_000, 0) + // Minimum execution time: 20_121_371_000 picoseconds. + Weight::from_parts(20_280_436_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 100]`. @@ -96,10 +96,10 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 201_000 picoseconds. - Weight::from_parts(216_000, 0) + // Minimum execution time: 197_000 picoseconds. + Weight::from_parts(1_266_068, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 7_416 - .saturating_add(Weight::from_parts(46_946_123, 0).saturating_mul(i.into())) + // Standard Error: 32_183 + .saturating_add(Weight::from_parts(47_292_385, 0).saturating_mul(i.into())) } } diff --git a/runtime/kusama/src/weights/frame_election_provider_support.rs b/runtime/kusama/src/weights/frame_election_provider_support.rs index 4342f4f1fe24..fb20b77e7672 100644 --- a/runtime/kusama/src/weights/frame_election_provider_support.rs +++ b/runtime/kusama/src/weights/frame_election_provider_support.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_election_provider_support` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -54,13 +54,13 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_592_602_000 picoseconds. - Weight::from_parts(6_624_542_000, 0) + // Minimum execution time: 6_152_145_000 picoseconds. + Weight::from_parts(6_210_377_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 146_810 - .saturating_add(Weight::from_parts(6_132_062, 0).saturating_mul(v.into())) - // Standard Error: 15_009_354 - .saturating_add(Weight::from_parts(1_608_749_783, 0).saturating_mul(d.into())) + // Standard Error: 135_056 + .saturating_add(Weight::from_parts(5_727_859, 0).saturating_mul(v.into())) + // Standard Error: 13_807_644 + .saturating_add(Weight::from_parts(1_491_790_113, 0).saturating_mul(d.into())) } /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. @@ -69,12 +69,12 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_594_449_000 picoseconds. - Weight::from_parts(4_624_318_000, 0) + // Minimum execution time: 4_186_828_000 picoseconds. + Weight::from_parts(4_224_591_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 125_306 - .saturating_add(Weight::from_parts(4_982_326, 0).saturating_mul(v.into())) - // Standard Error: 12_810_878 - .saturating_add(Weight::from_parts(1_455_352_897, 0).saturating_mul(d.into())) + // Standard Error: 109_703 + .saturating_add(Weight::from_parts(4_436_722, 0).saturating_mul(v.into())) + // Standard Error: 11_215_655 + .saturating_add(Weight::from_parts(1_254_723_184, 0).saturating_mul(d.into())) } } diff --git a/runtime/kusama/src/weights/frame_system.rs b/runtime/kusama/src/weights/frame_system.rs index dffb5a6fd5e1..cfc0e98f9d25 100644 --- a/runtime/kusama/src/weights/frame_system.rs +++ b/runtime/kusama/src/weights/frame_system.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -52,22 +52,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_539_000 picoseconds. - Weight::from_parts(2_627_000, 0) + // Minimum execution time: 2_218_000 picoseconds. + Weight::from_parts(2_263_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(365, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(408, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_055_000 picoseconds. - Weight::from_parts(8_173_000, 0) + // Minimum execution time: 7_292_000 picoseconds. + Weight::from_parts(7_348_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_398, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_448, 0).saturating_mul(b.into())) } /// Storage: System Digest (r:1 w:1) /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) @@ -77,14 +77,25 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 4_417_000 picoseconds. - Weight::from_parts(4_671_000, 0) + // Minimum execution time: 3_852_000 picoseconds. + Weight::from_parts(4_082_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a636f6465` (r:0 w:1) + /// Proof Skipped: unknown `0x3a636f6465` (r:0 w:1) fn set_code() -> Weight { - Weight::from_parts(1_000_000, 0) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 82_193_241_000 picoseconds. + Weight::from_parts(83_864_245_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Skipped Metadata (r:0 w:0) /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) @@ -93,11 +104,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_558_000 picoseconds. - Weight::from_parts(2_602_000, 0) + // Minimum execution time: 2_132_000 picoseconds. + Weight::from_parts(2_241_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_616 - .saturating_add(Weight::from_parts(660_932, 0).saturating_mul(i.into())) + // Standard Error: 1_918 + .saturating_add(Weight::from_parts(671_510, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -107,11 +118,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_485_000 picoseconds. - Weight::from_parts(2_597_000, 0) + // Minimum execution time: 2_287_000 picoseconds. + Weight::from_parts(2_352_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 762 - .saturating_add(Weight::from_parts(484_884, 0).saturating_mul(i.into())) + // Standard Error: 804 + .saturating_add(Weight::from_parts(488_896, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -120,12 +131,12 @@ impl frame_system::WeightInfo for WeightInfo { fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `105 + p * (69 ±0)` - // Estimated: `115 + p * (70 ±0)` - // Minimum execution time: 4_495_000 picoseconds. - Weight::from_parts(4_626_000, 0) - .saturating_add(Weight::from_parts(0, 115)) - // Standard Error: 903 - .saturating_add(Weight::from_parts(1_003_387, 0).saturating_mul(p.into())) + // Estimated: `118 + p * (70 ±0)` + // Minimum execution time: 4_068_000 picoseconds. + Weight::from_parts(4_178_000, 0) + .saturating_add(Weight::from_parts(0, 118)) + // Standard Error: 1_057 + .saturating_add(Weight::from_parts(1_019_126, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) diff --git a/runtime/kusama/src/weights/pallet_bags_list.rs b/runtime/kusama/src/weights/pallet_bags_list.rs index 97f62b846ade..3b927544a024 100644 --- a/runtime/kusama/src/weights/pallet_bags_list.rs +++ b/runtime/kusama/src/weights/pallet_bags_list.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bags_list` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -59,8 +59,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1654` // Estimated: `11506` - // Minimum execution time: 59_659_000 picoseconds. - Weight::from_parts(60_312_000, 0) + // Minimum execution time: 59_912_000 picoseconds. + Weight::from_parts(60_537_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -77,8 +77,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1548` // Estimated: `8877` - // Minimum execution time: 58_211_000 picoseconds. - Weight::from_parts(58_815_000, 0) + // Minimum execution time: 58_687_000 picoseconds. + Weight::from_parts(59_224_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -97,8 +97,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1857` // Estimated: `11506` - // Minimum execution time: 64_274_000 picoseconds. - Weight::from_parts(65_101_000, 0) + // Minimum execution time: 64_701_000 picoseconds. + Weight::from_parts(65_657_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(6)) diff --git a/runtime/kusama/src/weights/pallet_balances_nis_counterpart_balances.rs b/runtime/kusama/src/weights/pallet_balances_nis_counterpart_balances.rs index b411cdd9aa96..bd4d5edcc8f3 100644 --- a/runtime/kusama/src/weights/pallet_balances_nis_counterpart_balances.rs +++ b/runtime/kusama/src/weights/pallet_balances_nis_counterpart_balances.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -57,8 +57,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `6164` - // Minimum execution time: 53_848_000 picoseconds. - Weight::from_parts(54_405_000, 0) + // Minimum execution time: 54_130_000 picoseconds. + Weight::from_parts(54_899_000, 0) .saturating_add(Weight::from_parts(0, 6164)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -73,8 +73,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `6164` - // Minimum execution time: 40_963_000 picoseconds. - Weight::from_parts(41_704_000, 0) + // Minimum execution time: 41_648_000 picoseconds. + Weight::from_parts(42_104_000, 0) .saturating_add(Weight::from_parts(0, 6164)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -85,8 +85,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `217` // Estimated: `3577` - // Minimum execution time: 15_354_000 picoseconds. - Weight::from_parts(15_614_000, 0) + // Minimum execution time: 14_945_000 picoseconds. + Weight::from_parts(15_242_000, 0) .saturating_add(Weight::from_parts(0, 3577)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -101,8 +101,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `393` // Estimated: `3593` - // Minimum execution time: 25_601_000 picoseconds. - Weight::from_parts(26_064_000, 0) + // Minimum execution time: 25_268_000 picoseconds. + Weight::from_parts(25_731_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -117,8 +117,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `322` // Estimated: `6196` - // Minimum execution time: 55_799_000 picoseconds. - Weight::from_parts(56_476_000, 0) + // Minimum execution time: 55_768_000 picoseconds. + Weight::from_parts(57_107_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -133,8 +133,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `6164` - // Minimum execution time: 50_298_000 picoseconds. - Weight::from_parts(50_967_000, 0) + // Minimum execution time: 50_928_000 picoseconds. + Weight::from_parts(51_492_000, 0) .saturating_add(Weight::from_parts(0, 6164)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -147,8 +147,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `391` // Estimated: `3593` - // Minimum execution time: 20_916_000 picoseconds. - Weight::from_parts(21_199_000, 0) + // Minimum execution time: 20_353_000 picoseconds. + Weight::from_parts(20_903_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -163,11 +163,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (256 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 20_435_000 picoseconds. - Weight::from_parts(20_823_000, 0) + // Minimum execution time: 20_196_000 picoseconds. + Weight::from_parts(20_569_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 13_048 - .saturating_add(Weight::from_parts(15_398_340, 0).saturating_mul(u.into())) + // Standard Error: 12_940 + .saturating_add(Weight::from_parts(15_636_044, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) diff --git a/runtime/kusama/src/weights/pallet_bounties.rs b/runtime/kusama/src/weights/pallet_bounties.rs index 6bbb1d24ec16..a5ad238e75a7 100644 --- a/runtime/kusama/src/weights/pallet_bounties.rs +++ b/runtime/kusama/src/weights/pallet_bounties.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -60,11 +60,11 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `177` // Estimated: `3593` - // Minimum execution time: 28_255_000 picoseconds. - Weight::from_parts(29_403_164, 0) + // Minimum execution time: 28_067_000 picoseconds. + Weight::from_parts(29_387_679, 0) .saturating_add(Weight::from_parts(0, 3593)) - // Standard Error: 8 - .saturating_add(Weight::from_parts(687, 0).saturating_mul(d.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(743, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -76,8 +76,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3642` - // Minimum execution time: 11_058_000 picoseconds. - Weight::from_parts(11_325_000, 0) + // Minimum execution time: 10_705_000 picoseconds. + Weight::from_parts(10_867_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -88,8 +88,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `289` // Estimated: `3642` - // Minimum execution time: 9_853_000 picoseconds. - Weight::from_parts(10_113_000, 0) + // Minimum execution time: 9_664_000 picoseconds. + Weight::from_parts(9_881_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -102,8 +102,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `465` // Estimated: `3642` - // Minimum execution time: 40_140_000 picoseconds. - Weight::from_parts(40_641_000, 0) + // Minimum execution time: 39_552_000 picoseconds. + Weight::from_parts(39_988_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -116,8 +116,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `461` // Estimated: `3642` - // Minimum execution time: 26_728_000 picoseconds. - Weight::from_parts(27_104_000, 0) + // Minimum execution time: 26_337_000 picoseconds. + Weight::from_parts(26_835_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -130,8 +130,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `405` // Estimated: `3642` - // Minimum execution time: 19_297_000 picoseconds. - Weight::from_parts(19_626_000, 0) + // Minimum execution time: 18_485_000 picoseconds. + Weight::from_parts(18_997_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -148,8 +148,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `769` // Estimated: `8799` - // Minimum execution time: 110_040_000 picoseconds. - Weight::from_parts(110_661_000, 0) + // Minimum execution time: 109_641_000 picoseconds. + Weight::from_parts(110_672_000, 0) .saturating_add(Weight::from_parts(0, 8799)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) @@ -166,8 +166,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `449` // Estimated: `3642` - // Minimum execution time: 45_454_000 picoseconds. - Weight::from_parts(45_940_000, 0) + // Minimum execution time: 44_842_000 picoseconds. + Weight::from_parts(45_457_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -184,8 +184,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `685` // Estimated: `6196` - // Minimum execution time: 74_573_000 picoseconds. - Weight::from_parts(75_522_000, 0) + // Minimum execution time: 74_312_000 picoseconds. + Weight::from_parts(74_773_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -196,8 +196,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `325` // Estimated: `3642` - // Minimum execution time: 15_341_000 picoseconds. - Weight::from_parts(15_613_000, 0) + // Minimum execution time: 14_885_000 picoseconds. + Weight::from_parts(15_159_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -213,11 +213,11 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + b * (297 ±0)` // Estimated: `1887 + b * (5206 ±0)` - // Minimum execution time: 4_305_000 picoseconds. - Weight::from_parts(4_351_000, 0) + // Minimum execution time: 4_240_000 picoseconds. + Weight::from_parts(893_660, 0) .saturating_add(Weight::from_parts(0, 1887)) - // Standard Error: 33_856 - .saturating_add(Weight::from_parts(38_149_515, 0).saturating_mul(b.into())) + // Standard Error: 30_177 + .saturating_add(Weight::from_parts(37_971_849, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_child_bounties.rs b/runtime/kusama/src/weights/pallet_child_bounties.rs index 185845f59c5f..3e7394ecfa10 100644 --- a/runtime/kusama/src/weights/pallet_child_bounties.rs +++ b/runtime/kusama/src/weights/pallet_child_bounties.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_child_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -64,11 +64,11 @@ impl pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `13445` // Estimated: `42428` - // Minimum execution time: 115_953_000 picoseconds. - Weight::from_parts(117_572_000, 0) + // Minimum execution time: 110_399_000 picoseconds. + Weight::from_parts(113_418_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -85,8 +85,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `14166` // Estimated: `83866` - // Minimum execution time: 183_807_000 picoseconds. - Weight::from_parts(186_496_000, 0) + // Minimum execution time: 170_763_000 picoseconds. + Weight::from_parts(176_331_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) @@ -101,8 +101,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `13918` // Estimated: `83866` - // Minimum execution time: 156_732_000 picoseconds. - Weight::from_parts(158_818_000, 0) + // Minimum execution time: 145_996_000 picoseconds. + Weight::from_parts(148_599_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -115,8 +115,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `13004` // Estimated: `30706` - // Minimum execution time: 58_814_000 picoseconds. - Weight::from_parts(60_373_000, 0) + // Minimum execution time: 56_024_000 picoseconds. + Weight::from_parts(58_114_000, 0) .saturating_add(Weight::from_parts(0, 30706)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +138,11 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `29640 + r * (365 ±0)` // Estimated: `83866 + r * (3411 ±0)` - // Minimum execution time: 61_667_000 picoseconds. - Weight::from_parts(1_653_934_030, 0) + // Minimum execution time: 59_247_000 picoseconds. + Weight::from_parts(1_578_847_390, 0) .saturating_add(Weight::from_parts(0, 83866)) - // Standard Error: 143_001 - .saturating_add(Weight::from_parts(39_318_932, 0).saturating_mul(r.into())) + // Standard Error: 137_017 + .saturating_add(Weight::from_parts(37_792_797, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(6)) @@ -160,11 +160,11 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `29555 + r * (365 ±0)` // Estimated: `83866 + r * (3411 ±0)` - // Minimum execution time: 34_316_000 picoseconds. - Weight::from_parts(1_604_279_044, 0) + // Minimum execution time: 31_674_000 picoseconds. + Weight::from_parts(1_538_332_917, 0) .saturating_add(Weight::from_parts(0, 83866)) - // Standard Error: 140_985 - .saturating_add(Weight::from_parts(39_065_843, 0).saturating_mul(r.into())) + // Standard Error: 135_691 + .saturating_add(Weight::from_parts(38_078_566, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -183,8 +183,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `12218` // Estimated: `30706` - // Minimum execution time: 83_835_000 picoseconds. - Weight::from_parts(85_818_000, 0) + // Minimum execution time: 79_728_000 picoseconds. + Weight::from_parts(81_706_000, 0) .saturating_add(Weight::from_parts(0, 30706)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/kusama/src/weights/pallet_election_provider_multi_phase.rs b/runtime/kusama/src/weights/pallet_election_provider_multi_phase.rs index 7df46227ce94..bbf2208f0d8a 100644 --- a/runtime/kusama/src/weights/pallet_election_provider_multi_phase.rs +++ b/runtime/kusama/src/weights/pallet_election_provider_multi_phase.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_election_provider_multi_phase` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -67,8 +67,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `959` // Estimated: `3481` - // Minimum execution time: 20_180_000 picoseconds. - Weight::from_parts(21_067_000, 0) + // Minimum execution time: 20_288_000 picoseconds. + Weight::from_parts(20_855_000, 0) .saturating_add(Weight::from_parts(0, 3481)) .saturating_add(T::DbWeight::get().reads(8)) } @@ -80,8 +80,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `80` // Estimated: `1565` - // Minimum execution time: 12_428_000 picoseconds. - Weight::from_parts(12_848_000, 0) + // Minimum execution time: 12_440_000 picoseconds. + Weight::from_parts(12_779_000, 0) .saturating_add(Weight::from_parts(0, 1565)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -94,8 +94,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `80` // Estimated: `1565` - // Minimum execution time: 13_756_000 picoseconds. - Weight::from_parts(14_012_000, 0) + // Minimum execution time: 13_744_000 picoseconds. + Weight::from_parts(14_037_000, 0) .saturating_add(Weight::from_parts(0, 1565)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -108,8 +108,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 29_688_000 picoseconds. - Weight::from_parts(30_015_000, 0) + // Minimum execution time: 29_460_000 picoseconds. + Weight::from_parts(29_985_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +120,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 20_493_000 picoseconds. - Weight::from_parts(20_753_000, 0) + // Minimum execution time: 20_359_000 picoseconds. + Weight::from_parts(20_663_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,13 +138,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 665_559_000 picoseconds. - Weight::from_parts(7_757_128, 0) + // Minimum execution time: 657_591_000 picoseconds. + Weight::from_parts(23_731_735, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_303 - .saturating_add(Weight::from_parts(583_391, 0).saturating_mul(v.into())) - // Standard Error: 4_604 - .saturating_add(Weight::from_parts(99_435, 0).saturating_mul(t.into())) + // Standard Error: 2_147 + .saturating_add(Weight::from_parts(578_784, 0).saturating_mul(v.into())) + // Standard Error: 4_292 + .saturating_add(Weight::from_parts(93_667, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) @@ -173,11 +173,11 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `832 + a * (1152 ±0) + d * (47 ±0)` // Estimated: `4282 + a * (1152 ±0) + d * (48 ±0)` - // Minimum execution time: 386_115_000 picoseconds. - Weight::from_parts(399_168_000, 0) + // Minimum execution time: 367_245_000 picoseconds. + Weight::from_parts(377_296_000, 0) .saturating_add(Weight::from_parts(0, 4282)) - // Standard Error: 8_656 - .saturating_add(Weight::from_parts(575_703, 0).saturating_mul(a.into())) + // Standard Error: 8_804 + .saturating_add(Weight::from_parts(650_426, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(9)) .saturating_add(Weight::from_parts(0, 1152).saturating_mul(a.into())) @@ -199,8 +199,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `1170` // Estimated: `2655` - // Minimum execution time: 49_185_000 picoseconds. - Weight::from_parts(49_597_000, 0) + // Minimum execution time: 48_759_000 picoseconds. + Weight::from_parts(49_247_000, 0) .saturating_add(Weight::from_parts(0, 2655)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -223,19 +223,17 @@ impl pallet_election_provider_multi_phase::WeightInfo f /// The range of component `t` is `[500, 1000]`. /// The range of component `a` is `[500, 800]`. /// The range of component `d` is `[200, 400]`. - fn submit_unsigned(v: u32, t: u32, a: u32, d: u32, ) -> Weight { + fn submit_unsigned(v: u32, t: u32, a: u32, _d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `185 + t * (32 ±0) + v * (809 ±0)` // Estimated: `1670 + t * (32 ±0) + v * (809 ±0)` - // Minimum execution time: 7_390_749_000 picoseconds. - Weight::from_parts(171_070_056, 0) + // Minimum execution time: 7_057_662_000 picoseconds. + Weight::from_parts(7_137_164_000, 0) .saturating_add(Weight::from_parts(0, 1670)) - // Standard Error: 18_684 - .saturating_add(Weight::from_parts(903_428, 0).saturating_mul(v.into())) - // Standard Error: 62_193 - .saturating_add(Weight::from_parts(10_753_222, 0).saturating_mul(a.into())) - // Standard Error: 93_216 - .saturating_add(Weight::from_parts(1_714_649, 0).saturating_mul(d.into())) + // Standard Error: 22_962 + .saturating_add(Weight::from_parts(101_767, 0).saturating_mul(v.into())) + // Standard Error: 68_046 + .saturating_add(Weight::from_parts(6_760_988, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) @@ -257,13 +255,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `160 + t * (32 ±0) + v * (809 ±0)` // Estimated: `1645 + t * (32 ±0) + v * (809 ±0)` - // Minimum execution time: 6_211_318_000 picoseconds. - Weight::from_parts(6_244_165_000, 0) + // Minimum execution time: 5_873_278_000 picoseconds. + Weight::from_parts(5_985_023_000, 0) .saturating_add(Weight::from_parts(0, 1645)) - // Standard Error: 19_612 - .saturating_add(Weight::from_parts(134_010, 0).saturating_mul(v.into())) - // Standard Error: 58_119 - .saturating_add(Weight::from_parts(5_700_625, 0).saturating_mul(a.into())) + // Standard Error: 20_958 + .saturating_add(Weight::from_parts(52_402, 0).saturating_mul(v.into())) + // Standard Error: 62_107 + .saturating_add(Weight::from_parts(5_452_671, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) .saturating_add(Weight::from_parts(0, 809).saturating_mul(v.into())) diff --git a/runtime/kusama/src/weights/pallet_fast_unstake.rs b/runtime/kusama/src/weights/pallet_fast_unstake.rs index 278f1dc7619b..75cdbd037502 100644 --- a/runtime/kusama/src/weights/pallet_fast_unstake.rs +++ b/runtime/kusama/src/weights/pallet_fast_unstake.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_fast_unstake` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -80,13 +80,13 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// The range of component `b` is `[1, 64]`. fn on_idle_unstake(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1214 + b * (343 ±0)` + // Measured: `1176 + b * (343 ±0)` // Estimated: `4676 + b * (3774 ±0)` - // Minimum execution time: 88_679_000 picoseconds. - Weight::from_parts(24_547_439, 0) + // Minimum execution time: 87_063_000 picoseconds. + Weight::from_parts(23_428_481, 0) .saturating_add(Weight::from_parts(0, 4676)) - // Standard Error: 43_388 - .saturating_add(Weight::from_parts(54_036_464, 0).saturating_mul(b.into())) + // Standard Error: 48_812 + .saturating_add(Weight::from_parts(53_481_477, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -111,15 +111,15 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// The range of component `b` is `[1, 64]`. fn on_idle_check(v: u32, b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1382 + b * (48 ±0) + v * (18487 ±0)` - // Estimated: `4700 + b * (49 ±0) + v * (20963 ±0)` - // Minimum execution time: 1_642_912_000 picoseconds. - Weight::from_parts(1_651_614_000, 0) - .saturating_add(Weight::from_parts(0, 4700)) - // Standard Error: 15_060_369 - .saturating_add(Weight::from_parts(482_726_870, 0).saturating_mul(v.into())) - // Standard Error: 60_258_251 - .saturating_add(Weight::from_parts(1_893_734_636, 0).saturating_mul(b.into())) + // Measured: `1344 + b * (48 ±0) + v * (18487 ±0)` + // Estimated: `4676 + b * (49 ±0) + v * (20963 ±0)` + // Minimum execution time: 1_650_957_000 picoseconds. + Weight::from_parts(1_681_546_000, 0) + .saturating_add(Weight::from_parts(0, 4676)) + // Standard Error: 15_020_512 + .saturating_add(Weight::from_parts(482_553_559, 0).saturating_mul(v.into())) + // Standard Error: 60_098_778 + .saturating_add(Weight::from_parts(1_887_735_942, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -158,10 +158,10 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn register_fast_unstake() -> Weight { // Proof Size summary in bytes: - // Measured: `1864` + // Measured: `1826` // Estimated: `4764` - // Minimum execution time: 117_566_000 picoseconds. - Weight::from_parts(118_709_000, 0) + // Minimum execution time: 115_973_000 picoseconds. + Weight::from_parts(118_898_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(15)) .saturating_add(T::DbWeight::get().writes(9)) @@ -178,10 +178,10 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn deregister() -> Weight { // Proof Size summary in bytes: - // Measured: `1122` + // Measured: `1084` // Estimated: `4676` - // Minimum execution time: 43_460_000 picoseconds. - Weight::from_parts(44_208_000, 0) + // Minimum execution time: 42_160_000 picoseconds. + Weight::from_parts(43_079_000, 0) .saturating_add(Weight::from_parts(0, 4676)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -192,8 +192,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_858_000 picoseconds. - Weight::from_parts(3_088_000, 0) + // Minimum execution time: 2_597_000 picoseconds. + Weight::from_parts(2_783_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/pallet_identity.rs b/runtime/kusama/src/weights/pallet_identity.rs index 22721216f021..d1eff559ac81 100644 --- a/runtime/kusama/src/weights/pallet_identity.rs +++ b/runtime/kusama/src/weights/pallet_identity.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_identity` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 12_101_000 picoseconds. - Weight::from_parts(12_743_753, 0) + // Minimum execution time: 11_458_000 picoseconds. + Weight::from_parts(12_065_609, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_491 - .saturating_add(Weight::from_parts(106_844, 0).saturating_mul(r.into())) + // Standard Error: 1_453 + .saturating_add(Weight::from_parts(115_213, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -70,13 +70,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `442 + r * (5 ±0)` // Estimated: `11003` - // Minimum execution time: 31_894_000 picoseconds. - Weight::from_parts(31_275_923, 0) + // Minimum execution time: 31_655_000 picoseconds. + Weight::from_parts(31_089_696, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_949 - .saturating_add(Weight::from_parts(90_177, 0).saturating_mul(r.into())) - // Standard Error: 380 - .saturating_add(Weight::from_parts(451_518, 0).saturating_mul(x.into())) + // Standard Error: 1_815 + .saturating_add(Weight::from_parts(74_740, 0).saturating_mul(r.into())) + // Standard Error: 354 + .saturating_add(Weight::from_parts(450_715, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -91,11 +91,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `101` // Estimated: `11003 + s * (2589 ±0)` - // Minimum execution time: 9_703_000 picoseconds. - Weight::from_parts(25_002_066, 0) + // Minimum execution time: 9_219_000 picoseconds. + Weight::from_parts(23_941_709, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 4_078 - .saturating_add(Weight::from_parts(2_733_970, 0).saturating_mul(s.into())) + // Standard Error: 3_938 + .saturating_add(Weight::from_parts(2_691_567, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -113,11 +113,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `194 + p * (32 ±0)` // Estimated: `11003` - // Minimum execution time: 9_451_000 picoseconds. - Weight::from_parts(24_361_172, 0) + // Minimum execution time: 9_187_000 picoseconds. + Weight::from_parts(23_331_230, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_542 - .saturating_add(Weight::from_parts(1_121_341, 0).saturating_mul(p.into())) + // Standard Error: 3_251 + .saturating_add(Weight::from_parts(1_097_123, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) @@ -135,15 +135,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 54_101_000 picoseconds. - Weight::from_parts(33_192_607, 0) + // Minimum execution time: 54_059_000 picoseconds. + Weight::from_parts(33_831_123, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 4_080 - .saturating_add(Weight::from_parts(55_443, 0).saturating_mul(r.into())) - // Standard Error: 796 - .saturating_add(Weight::from_parts(1_092_165, 0).saturating_mul(s.into())) - // Standard Error: 796 - .saturating_add(Weight::from_parts(230_394, 0).saturating_mul(x.into())) + // Standard Error: 5_874 + .saturating_add(Weight::from_parts(33_658, 0).saturating_mul(r.into())) + // Standard Error: 1_147 + .saturating_add(Weight::from_parts(1_086_575, 0).saturating_mul(s.into())) + // Standard Error: 1_147 + .saturating_add(Weight::from_parts(217_501, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -158,13 +158,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `367 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 33_110_000 picoseconds. - Weight::from_parts(31_913_069, 0) + // Minimum execution time: 32_273_000 picoseconds. + Weight::from_parts(31_276_801, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_882 - .saturating_add(Weight::from_parts(107_534, 0).saturating_mul(r.into())) - // Standard Error: 367 - .saturating_add(Weight::from_parts(468_986, 0).saturating_mul(x.into())) + // Standard Error: 2_127 + .saturating_add(Weight::from_parts(103_894, 0).saturating_mul(r.into())) + // Standard Error: 415 + .saturating_add(Weight::from_parts(465_799, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -176,13 +176,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `398 + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 30_079_000 picoseconds. - Weight::from_parts(27_259_116, 0) + // Minimum execution time: 29_416_000 picoseconds. + Weight::from_parts(28_875_860, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 23_842 - .saturating_add(Weight::from_parts(170_125, 0).saturating_mul(r.into())) - // Standard Error: 4_652 - .saturating_add(Weight::from_parts(481_642, 0).saturating_mul(x.into())) + // Standard Error: 1_970 + .saturating_add(Weight::from_parts(71_149, 0).saturating_mul(r.into())) + // Standard Error: 384 + .saturating_add(Weight::from_parts(466_555, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +193,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_635_000 picoseconds. - Weight::from_parts(8_125_925, 0) + // Minimum execution time: 7_188_000 picoseconds. + Weight::from_parts(7_679_707, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_129 - .saturating_add(Weight::from_parts(92_025, 0).saturating_mul(r.into())) + // Standard Error: 1_115 + .saturating_add(Weight::from_parts(100_745, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +208,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_791_000 picoseconds. - Weight::from_parts(8_298_456, 0) + // Minimum execution time: 7_344_000 picoseconds. + Weight::from_parts(7_843_267, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_126 - .saturating_add(Weight::from_parts(85_726, 0).saturating_mul(r.into())) + // Standard Error: 1_285 + .saturating_add(Weight::from_parts(96_032, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -223,11 +223,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_661_000 picoseconds. - Weight::from_parts(8_136_466, 0) + // Minimum execution time: 7_298_000 picoseconds. + Weight::from_parts(7_699_423, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_079 - .saturating_add(Weight::from_parts(89_022, 0).saturating_mul(r.into())) + // Standard Error: 1_021 + .saturating_add(Weight::from_parts(94_460, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -241,13 +241,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `445 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 23_630_000 picoseconds. - Weight::from_parts(22_129_771, 0) + // Minimum execution time: 22_813_000 picoseconds. + Weight::from_parts(22_518_747, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_838 - .saturating_add(Weight::from_parts(121_695, 0).saturating_mul(r.into())) - // Standard Error: 525 - .saturating_add(Weight::from_parts(748_599, 0).saturating_mul(x.into())) + // Standard Error: 2_126 + .saturating_add(Weight::from_parts(91_405, 0).saturating_mul(r.into())) + // Standard Error: 393 + .saturating_add(Weight::from_parts(739_711, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -266,15 +266,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 70_382_000 picoseconds. - Weight::from_parts(48_756_189, 0) + // Minimum execution time: 68_514_000 picoseconds. + Weight::from_parts(49_427_829, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 4_513 - .saturating_add(Weight::from_parts(57_700, 0).saturating_mul(r.into())) - // Standard Error: 881 - .saturating_add(Weight::from_parts(1_107_373, 0).saturating_mul(s.into())) - // Standard Error: 881 - .saturating_add(Weight::from_parts(235_577, 0).saturating_mul(x.into())) + // Standard Error: 4_883 + .saturating_add(Weight::from_parts(25_681, 0).saturating_mul(r.into())) + // Standard Error: 953 + .saturating_add(Weight::from_parts(1_094_735, 0).saturating_mul(s.into())) + // Standard Error: 953 + .saturating_add(Weight::from_parts(223_048, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -290,11 +290,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `475 + s * (36 ±0)` // Estimated: `11003` - // Minimum execution time: 29_447_000 picoseconds. - Weight::from_parts(34_578_504, 0) + // Minimum execution time: 28_279_000 picoseconds. + Weight::from_parts(33_153_595, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_368 - .saturating_add(Weight::from_parts(60_635, 0).saturating_mul(s.into())) + // Standard Error: 1_304 + .saturating_add(Weight::from_parts(62_546, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -307,11 +307,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + s * (3 ±0)` // Estimated: `11003` - // Minimum execution time: 13_214_000 picoseconds. - Weight::from_parts(15_133_067, 0) + // Minimum execution time: 12_641_000 picoseconds. + Weight::from_parts(14_600_226, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 498 - .saturating_add(Weight::from_parts(16_129, 0).saturating_mul(s.into())) + // Standard Error: 525 + .saturating_add(Weight::from_parts(17_307, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -326,11 +326,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `638 + s * (35 ±0)` // Estimated: `11003` - // Minimum execution time: 32_964_000 picoseconds. - Weight::from_parts(36_119_193, 0) + // Minimum execution time: 31_796_000 picoseconds. + Weight::from_parts(34_973_700, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 873 - .saturating_add(Weight::from_parts(48_803, 0).saturating_mul(s.into())) + // Standard Error: 934 + .saturating_add(Weight::from_parts(52_308, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -345,11 +345,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704 + s * (37 ±0)` // Estimated: `6723` - // Minimum execution time: 24_456_000 picoseconds. - Weight::from_parts(26_964_746, 0) + // Minimum execution time: 23_740_000 picoseconds. + Weight::from_parts(26_342_512, 0) .saturating_add(Weight::from_parts(0, 6723)) - // Standard Error: 877 - .saturating_add(Weight::from_parts(56_104, 0).saturating_mul(s.into())) + // Standard Error: 961 + .saturating_add(Weight::from_parts(55_063, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/kusama/src/weights/pallet_im_online.rs b/runtime/kusama/src/weights/pallet_im_online.rs index dcc50ff92440..c3c3358c399f 100644 --- a/runtime/kusama/src/weights/pallet_im_online.rs +++ b/runtime/kusama/src/weights/pallet_im_online.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_im_online` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -63,13 +63,13 @@ impl pallet_im_online::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361 + k * (32 ±0)` // Estimated: `10024497 + e * (35 ±0) + k * (32 ±0)` - // Minimum execution time: 92_733_000 picoseconds. - Weight::from_parts(72_169_379, 0) + // Minimum execution time: 91_361_000 picoseconds. + Weight::from_parts(72_262_090, 0) .saturating_add(Weight::from_parts(0, 10024497)) - // Standard Error: 311 - .saturating_add(Weight::from_parts(24_625, 0).saturating_mul(k.into())) - // Standard Error: 3_141 - .saturating_add(Weight::from_parts(394_871, 0).saturating_mul(e.into())) + // Standard Error: 252 + .saturating_add(Weight::from_parts(22_094, 0).saturating_mul(k.into())) + // Standard Error: 2_539 + .saturating_add(Weight::from_parts(395_966, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 35).saturating_mul(e.into())) diff --git a/runtime/kusama/src/weights/pallet_indices.rs b/runtime/kusama/src/weights/pallet_indices.rs index 58641ad8ee6d..5bc26544cc79 100644 --- a/runtime/kusama/src/weights/pallet_indices.rs +++ b/runtime/kusama/src/weights/pallet_indices.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_indices` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3534` - // Minimum execution time: 24_137_000 picoseconds. - Weight::from_parts(24_687_000, 0) + // Minimum execution time: 23_844_000 picoseconds. + Weight::from_parts(24_387_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -67,8 +67,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 34_476_000 picoseconds. - Weight::from_parts(35_322_000, 0) + // Minimum execution time: 34_861_000 picoseconds. + Weight::from_parts(35_285_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +79,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 25_118_000 picoseconds. - Weight::from_parts(25_583_000, 0) + // Minimum execution time: 25_146_000 picoseconds. + Weight::from_parts(25_439_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +93,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 27_535_000 picoseconds. - Weight::from_parts(27_859_000, 0) + // Minimum execution time: 27_330_000 picoseconds. + Weight::from_parts(27_869_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -105,8 +105,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 27_324_000 picoseconds. - Weight::from_parts(27_696_000, 0) + // Minimum execution time: 27_352_000 picoseconds. + Weight::from_parts(27_819_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_message_queue.rs b/runtime/kusama/src/weights/pallet_message_queue.rs index 03b0ac4dedde..6fbbba512bbf 100644 --- a/runtime/kusama/src/weights/pallet_message_queue.rs +++ b/runtime/kusama/src/weights/pallet_message_queue.rs @@ -1,4 +1,4 @@ -// Copyright 2017-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Polkadot. // Polkadot is free software: you can redistribute it and/or modify @@ -13,164 +13,178 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . + //! Autogenerated weights for `pallet_message_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-02-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: -// ./target/release/polkadot +// ./target/production/polkadot // benchmark // pallet // --chain=kusama-dev // --steps=50 // --repeat=20 -// --pallet=pallet-message-queue +// --pallet=pallet_message_queue // --extrinsic=* -// --heap-pages=4096 -// --header=file_header.txt -// --output -// runtime/kusama/src/weights/pallet_message_queue.rs +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/kusama/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); impl pallet_message_queue::WeightInfo for WeightInfo { /// Storage: MessageQueue ServiceHead (r:1 w:0) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn ready_ring_knit() -> Weight { // Proof Size summary in bytes: - // Measured: `837` - // Estimated: `5554` - // Minimum execution time: 5_669 nanoseconds. - Weight::from_parts(5_925_000, 0) - .saturating_add(Weight::from_parts(0, 5554)) + // Measured: `248` + // Estimated: `6050` + // Minimum execution time: 11_016_000 picoseconds. + Weight::from_parts(11_315_000, 0) + .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) fn ready_ring_unknit() -> Weight { // Proof Size summary in bytes: - // Measured: `837` - // Estimated: `5554` - // Minimum execution time: 5_604 nanoseconds. - Weight::from_parts(5_993_000, 0) - .saturating_add(Weight::from_parts(0, 5554)) + // Measured: `248` + // Estimated: `6050` + // Minimum execution time: 10_338_000 picoseconds. + Weight::from_parts(10_638_000, 0) + .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn service_queue_base() -> Weight { // Proof Size summary in bytes: - // Measured: `576` - // Estimated: `2527` - // Minimum execution time: 2_104 nanoseconds. - Weight::from_parts(2_241_000, 0) - .saturating_add(Weight::from_parts(0, 2527)) + // Measured: `42` + // Estimated: `3520` + // Minimum execution time: 4_022_000 picoseconds. + Weight::from_parts(4_230_000, 0) + .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) fn service_page_base_completion() -> Weight { // Proof Size summary in bytes: - // Measured: `648` - // Estimated: `68060` - // Minimum execution time: 3_175 nanoseconds. - Weight::from_parts(3_289_000, 0) - .saturating_add(Weight::from_parts(0, 68060)) + // Measured: `115` + // Estimated: `69051` + // Minimum execution time: 5_556_000 picoseconds. + Weight::from_parts(5_664_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) fn service_page_base_no_completion() -> Weight { // Proof Size summary in bytes: - // Measured: `648` - // Estimated: `68060` - // Minimum execution time: 3_198 nanoseconds. - Weight::from_parts(3_308_000, 0) - .saturating_add(Weight::from_parts(0, 68060)) + // Measured: `115` + // Estimated: `69051` + // Minimum execution time: 5_798_000 picoseconds. + Weight::from_parts(6_034_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } fn service_page_item() -> Weight { // Proof Size summary in bytes: - // Measured: `969` + // Measured: `0` // Estimated: `0` - // Minimum execution time: 46_864 nanoseconds. - Weight::from_parts(47_073_000, 0) + // Minimum execution time: 74_017_000 picoseconds. + Weight::from_parts(74_464_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) /// Storage: MessageQueue BookStateFor (r:1 w:0) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn bump_service_head() -> Weight { // Proof Size summary in bytes: - // Measured: `712` - // Estimated: `3027` - // Minimum execution time: 3_552 nanoseconds. - Weight::from_parts(3_710_000, 0) - .saturating_add(Weight::from_parts(0, 3027)) + // Measured: `149` + // Estimated: `3520` + // Minimum execution time: 6_188_000 picoseconds. + Weight::from_parts(6_348_000, 0) + .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn reap_page() -> Weight { // Proof Size summary in bytes: - // Measured: `66857` - // Estimated: `70587` - // Minimum execution time: 38_491 nanoseconds. - Weight::from_parts(46_983_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) + // Measured: `65714` + // Estimated: `69051` + // Minimum execution time: 59_987_000 picoseconds. + Weight::from_parts(60_597_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn execute_overweight_page_removed() -> Weight { // Proof Size summary in bytes: - // Measured: `66857` - // Estimated: `70587` - // Minimum execution time: 88_529 nanoseconds. - Weight::from_parts(144_649_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) + // Measured: `65714` + // Estimated: `69051` + // Minimum execution time: 74_760_000 picoseconds. + Weight::from_parts(75_474_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn execute_overweight_page_updated() -> Weight { // Proof Size summary in bytes: - // Measured: `66857` - // Estimated: `70587` - // Minimum execution time: 79_494 nanoseconds. - Weight::from_parts(84_895_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) + // Measured: `65714` + // Estimated: `69051` + // Minimum execution time: 109_391_000 picoseconds. + Weight::from_parts(110_098_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes(4)) } } diff --git a/runtime/kusama/src/weights/pallet_multisig.rs b/runtime/kusama/src/weights/pallet_multisig.rs index 107ea7c927b1..e3bdb46720e9 100644 --- a/runtime/kusama/src/weights/pallet_multisig.rs +++ b/runtime/kusama/src/weights/pallet_multisig.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -52,11 +52,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_077_000 picoseconds. - Weight::from_parts(12_503_434, 0) + // Minimum execution time: 10_815_000 picoseconds. + Weight::from_parts(11_323_012, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(500, 0).saturating_mul(z.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(532, 0).saturating_mul(z.into())) } /// Storage: Multisig Multisigs (r:1 w:1) /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) @@ -66,13 +66,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `301 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 41_160_000 picoseconds. - Weight::from_parts(35_506_721, 0) + // Minimum execution time: 39_448_000 picoseconds. + Weight::from_parts(34_192_255, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 385 - .saturating_add(Weight::from_parts(63_369, 0).saturating_mul(s.into())) + // Standard Error: 372 + .saturating_add(Weight::from_parts(60_856, 0).saturating_mul(s.into())) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_194, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(1_238, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -84,13 +84,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `320` // Estimated: `6811` - // Minimum execution time: 26_935_000 picoseconds. - Weight::from_parts(21_624_406, 0) + // Minimum execution time: 25_763_000 picoseconds. + Weight::from_parts(20_985_864, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 284 - .saturating_add(Weight::from_parts(59_288, 0).saturating_mul(s.into())) + // Standard Error: 256 + .saturating_add(Weight::from_parts(55_031, 0).saturating_mul(s.into())) // Standard Error: 2 - .saturating_add(Weight::from_parts(1_222, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(1_217, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -104,13 +104,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `426 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 46_401_000 picoseconds. - Weight::from_parts(39_301_660, 0) + // Minimum execution time: 44_531_000 picoseconds. + Weight::from_parts(37_704_187, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 703 - .saturating_add(Weight::from_parts(75_160, 0).saturating_mul(s.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_236, 0).saturating_mul(z.into())) + // Standard Error: 1_283 + .saturating_add(Weight::from_parts(74_432, 0).saturating_mul(s.into())) + // Standard Error: 12 + .saturating_add(Weight::from_parts(1_286, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -121,11 +121,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `301 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 32_549_000 picoseconds. - Weight::from_parts(34_081_487, 0) + // Minimum execution time: 31_644_000 picoseconds. + Weight::from_parts(32_950_543, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 544 - .saturating_add(Weight::from_parts(66_832, 0).saturating_mul(s.into())) + // Standard Error: 550 + .saturating_add(Weight::from_parts(63_342, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -136,11 +136,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `320` // Estimated: `6811` - // Minimum execution time: 19_568_000 picoseconds. - Weight::from_parts(20_570_167, 0) + // Minimum execution time: 18_561_000 picoseconds. + Weight::from_parts(19_413_827, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 411 - .saturating_add(Weight::from_parts(59_691, 0).saturating_mul(s.into())) + // Standard Error: 405 + .saturating_add(Weight::from_parts(56_806, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -151,11 +151,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `492 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 33_844_000 picoseconds. - Weight::from_parts(35_036_501, 0) + // Minimum execution time: 33_073_000 picoseconds. + Weight::from_parts(34_146_589, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 503 - .saturating_add(Weight::from_parts(64_100, 0).saturating_mul(s.into())) + // Standard Error: 554 + .saturating_add(Weight::from_parts(63_171, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/pallet_nis.rs b/runtime/kusama/src/weights/pallet_nis.rs index c37374865398..ace6f272294a 100644 --- a/runtime/kusama/src/weights/pallet_nis.rs +++ b/runtime/kusama/src/weights/pallet_nis.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_nis` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -58,11 +58,11 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `10210 + l * (48 ±0)` // Estimated: `51487` - // Minimum execution time: 45_950_000 picoseconds. - Weight::from_parts(47_235_564, 0) + // Minimum execution time: 45_619_000 picoseconds. + Weight::from_parts(47_677_093, 0) .saturating_add(Weight::from_parts(0, 51487)) - // Standard Error: 723 - .saturating_add(Weight::from_parts(71_625, 0).saturating_mul(l.into())) + // Standard Error: 703 + .saturating_add(Weight::from_parts(72_096, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -76,8 +76,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `58212` // Estimated: `51487` - // Minimum execution time: 129_538_000 picoseconds. - Weight::from_parts(132_437_000, 0) + // Minimum execution time: 128_405_000 picoseconds. + Weight::from_parts(130_564_000, 0) .saturating_add(Weight::from_parts(0, 51487)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -93,11 +93,11 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `10210 + l * (48 ±0)` // Estimated: `51487` - // Minimum execution time: 49_489_000 picoseconds. - Weight::from_parts(44_072_270, 0) + // Minimum execution time: 49_230_000 picoseconds. + Weight::from_parts(44_102_358, 0) .saturating_add(Weight::from_parts(0, 51487)) - // Standard Error: 744 - .saturating_add(Weight::from_parts(90_901, 0).saturating_mul(l.into())) + // Standard Error: 714 + .saturating_add(Weight::from_parts(89_380, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -111,8 +111,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `225` // Estimated: `3593` - // Minimum execution time: 38_216_000 picoseconds. - Weight::from_parts(38_536_000, 0) + // Minimum execution time: 37_644_000 picoseconds. + Weight::from_parts(38_134_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -133,8 +133,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `470` // Estimated: `3593` - // Minimum execution time: 72_706_000 picoseconds. - Weight::from_parts(73_956_000, 0) + // Minimum execution time: 72_806_000 picoseconds. + Weight::from_parts(73_682_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(6)) @@ -157,8 +157,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `660` // Estimated: `3593` - // Minimum execution time: 85_985_000 picoseconds. - Weight::from_parts(87_206_000, 0) + // Minimum execution time: 86_241_000 picoseconds. + Weight::from_parts(86_894_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) @@ -177,8 +177,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `388` // Estimated: `3593` - // Minimum execution time: 47_928_000 picoseconds. - Weight::from_parts(48_637_000, 0) + // Minimum execution time: 48_003_000 picoseconds. + Weight::from_parts(48_450_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -199,8 +199,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `604` // Estimated: `3593` - // Minimum execution time: 90_893_000 picoseconds. - Weight::from_parts(92_819_000, 0) + // Minimum execution time: 91_023_000 picoseconds. + Weight::from_parts(91_858_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -217,8 +217,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `11487` - // Minimum execution time: 24_052_000 picoseconds. - Weight::from_parts(24_288_000, 0) + // Minimum execution time: 23_405_000 picoseconds. + Weight::from_parts(23_795_000, 0) .saturating_add(Weight::from_parts(0, 11487)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -229,8 +229,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `76` // Estimated: `51487` - // Minimum execution time: 4_043_000 picoseconds. - Weight::from_parts(4_153_000, 0) + // Minimum execution time: 4_073_000 picoseconds. + Weight::from_parts(4_178_000, 0) .saturating_add(Weight::from_parts(0, 51487)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -241,8 +241,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_136_000 picoseconds. - Weight::from_parts(7_266_000, 0) + // Minimum execution time: 6_911_000 picoseconds. + Weight::from_parts(7_035_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/pallet_nomination_pools.rs b/runtime/kusama/src/weights/pallet_nomination_pools.rs index 2243dbf3c0e2..8905301053cb 100644 --- a/runtime/kusama/src/weights/pallet_nomination_pools.rs +++ b/runtime/kusama/src/weights/pallet_nomination_pools.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_nomination_pools` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -81,8 +81,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3229` // Estimated: `8877` - // Minimum execution time: 177_669_000 picoseconds. - Weight::from_parts(179_103_000, 0) + // Minimum execution time: 179_299_000 picoseconds. + Weight::from_parts(180_182_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(19)) .saturating_add(T::DbWeight::get().writes(12)) @@ -113,8 +113,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3239` // Estimated: `8877` - // Minimum execution time: 175_672_000 picoseconds. - Weight::from_parts(176_469_000, 0) + // Minimum execution time: 175_633_000 picoseconds. + Weight::from_parts(177_175_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(12)) @@ -147,8 +147,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3304` // Estimated: `8877` - // Minimum execution time: 208_139_000 picoseconds. - Weight::from_parts(209_564_000, 0) + // Minimum execution time: 210_213_000 picoseconds. + Weight::from_parts(211_547_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(17)) .saturating_add(T::DbWeight::get().writes(13)) @@ -169,8 +169,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1171` // Estimated: `4182` - // Minimum execution time: 75_175_000 picoseconds. - Weight::from_parts(76_017_000, 0) + // Minimum execution time: 76_246_000 picoseconds. + Weight::from_parts(77_173_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -211,8 +211,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3506` // Estimated: `8877` - // Minimum execution time: 159_841_000 picoseconds. - Weight::from_parts(160_601_000, 0) + // Minimum execution time: 160_774_000 picoseconds. + Weight::from_parts(161_718_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(20)) .saturating_add(T::DbWeight::get().writes(13)) @@ -234,11 +234,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1608` // Estimated: `4764` - // Minimum execution time: 59_858_000 picoseconds. - Weight::from_parts(61_144_446, 0) + // Minimum execution time: 60_544_000 picoseconds. + Weight::from_parts(61_517_925, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 587 - .saturating_add(Weight::from_parts(6_282, 0).saturating_mul(s.into())) + // Standard Error: 662 + .saturating_add(Weight::from_parts(11_522, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -269,11 +269,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `2036` // Estimated: `4764` - // Minimum execution time: 122_632_000 picoseconds. - Weight::from_parts(124_462_310, 0) + // Minimum execution time: 124_321_000 picoseconds. + Weight::from_parts(126_047_261, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 676 - .saturating_add(Weight::from_parts(18_268, 0).saturating_mul(s.into())) + // Standard Error: 675 + .saturating_add(Weight::from_parts(18_085, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) } @@ -326,8 +326,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `2394` // Estimated: `6196` - // Minimum execution time: 205_332_000 picoseconds. - Weight::from_parts(208_023_885, 0) + // Minimum execution time: 207_405_000 picoseconds. + Weight::from_parts(210_508_610, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(21)) .saturating_add(T::DbWeight::get().writes(18)) @@ -380,8 +380,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1222` // Estimated: `6196` - // Minimum execution time: 180_680_000 picoseconds. - Weight::from_parts(181_910_000, 0) + // Minimum execution time: 180_998_000 picoseconds. + Weight::from_parts(182_778_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(22)) .saturating_add(T::DbWeight::get().writes(15)) @@ -415,11 +415,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1774` // Estimated: `4556 + n * (2520 ±0)` - // Minimum execution time: 65_339_000 picoseconds. - Weight::from_parts(65_255_249, 0) + // Minimum execution time: 65_637_000 picoseconds. + Weight::from_parts(65_594_581, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 2_909 - .saturating_add(Weight::from_parts(1_291_006, 0).saturating_mul(n.into())) + // Standard Error: 2_621 + .saturating_add(Weight::from_parts(1_330_797, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -435,8 +435,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1363` // Estimated: `4556` - // Minimum execution time: 35_433_000 picoseconds. - Weight::from_parts(35_860_000, 0) + // Minimum execution time: 35_081_000 picoseconds. + Weight::from_parts(35_804_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -452,11 +452,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `531` // Estimated: `3735` - // Minimum execution time: 14_219_000 picoseconds. - Weight::from_parts(14_629_720, 0) + // Minimum execution time: 14_029_000 picoseconds. + Weight::from_parts(14_521_820, 0) .saturating_add(Weight::from_parts(0, 3735)) // Standard Error: 54 - .saturating_add(Weight::from_parts(1_446, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_359, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -476,8 +476,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_221_000 picoseconds. - Weight::from_parts(6_368_000, 0) + // Minimum execution time: 6_155_000 picoseconds. + Weight::from_parts(6_374_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -487,8 +487,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `531` // Estimated: `3685` - // Minimum execution time: 19_697_000 picoseconds. - Weight::from_parts(20_115_000, 0) + // Minimum execution time: 19_310_000 picoseconds. + Weight::from_parts(19_580_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -515,8 +515,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1937` // Estimated: `4556` - // Minimum execution time: 63_674_000 picoseconds. - Weight::from_parts(64_352_000, 0) + // Minimum execution time: 63_944_000 picoseconds. + Weight::from_parts(64_767_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -533,8 +533,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `770` // Estimated: `3685` - // Minimum execution time: 31_835_000 picoseconds. - Weight::from_parts(32_163_000, 0) + // Minimum execution time: 31_633_000 picoseconds. + Weight::from_parts(32_235_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -545,8 +545,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `571` // Estimated: `3685` - // Minimum execution time: 18_810_000 picoseconds. - Weight::from_parts(18_983_000, 0) + // Minimum execution time: 18_403_000 picoseconds. + Weight::from_parts(18_632_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -557,8 +557,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `531` // Estimated: `3685` - // Minimum execution time: 19_450_000 picoseconds. - Weight::from_parts(19_856_000, 0) + // Minimum execution time: 19_310_000 picoseconds. + Weight::from_parts(19_620_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -571,8 +571,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `542` // Estimated: `4182` - // Minimum execution time: 14_486_000 picoseconds. - Weight::from_parts(14_767_000, 0) + // Minimum execution time: 14_143_000 picoseconds. + Weight::from_parts(14_582_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -589,8 +589,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `968` // Estimated: `3685` - // Minimum execution time: 61_566_000 picoseconds. - Weight::from_parts(62_663_000, 0) + // Minimum execution time: 62_619_000 picoseconds. + Weight::from_parts(63_484_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/runtime/kusama/src/weights/pallet_preimage.rs b/runtime/kusama/src/weights/pallet_preimage.rs index 00411a7f46d1..b01f3d066b30 100644 --- a/runtime/kusama/src/weights/pallet_preimage.rs +++ b/runtime/kusama/src/weights/pallet_preimage.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -56,11 +56,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `143` // Estimated: `3556` - // Minimum execution time: 29_693_000 picoseconds. - Weight::from_parts(30_126_000, 0) + // Minimum execution time: 28_919_000 picoseconds. + Weight::from_parts(29_073_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_962, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(2_011, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -73,11 +73,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 16_453_000 picoseconds. - Weight::from_parts(16_742_000, 0) + // Minimum execution time: 15_818_000 picoseconds. + Weight::from_parts(16_138_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_958, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(2_034, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -90,11 +90,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 15_518_000 picoseconds. - Weight::from_parts(15_658_000, 0) + // Minimum execution time: 15_184_000 picoseconds. + Weight::from_parts(15_346_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_960, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(2_010, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -106,8 +106,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `289` // Estimated: `3556` - // Minimum execution time: 37_656_000 picoseconds. - Weight::from_parts(38_443_000, 0) + // Minimum execution time: 35_552_000 picoseconds. + Weight::from_parts(36_559_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +120,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 21_911_000 picoseconds. - Weight::from_parts(22_472_000, 0) + // Minimum execution time: 20_145_000 picoseconds. + Weight::from_parts(21_041_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -132,8 +132,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `188` // Estimated: `3556` - // Minimum execution time: 20_309_000 picoseconds. - Weight::from_parts(21_076_000, 0) + // Minimum execution time: 18_949_000 picoseconds. + Weight::from_parts(19_616_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -144,8 +144,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 11_659_000 picoseconds. - Weight::from_parts(12_301_000, 0) + // Minimum execution time: 11_082_000 picoseconds. + Weight::from_parts(11_853_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -156,8 +156,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `3556` - // Minimum execution time: 13_699_000 picoseconds. - Weight::from_parts(14_170_000, 0) + // Minimum execution time: 12_687_000 picoseconds. + Weight::from_parts(13_259_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -168,8 +168,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 8_513_000 picoseconds. - Weight::from_parts(8_776_000, 0) + // Minimum execution time: 8_156_000 picoseconds. + Weight::from_parts(8_324_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -182,8 +182,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 20_899_000 picoseconds. - Weight::from_parts(22_170_000, 0) + // Minimum execution time: 18_817_000 picoseconds. + Weight::from_parts(19_833_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -194,8 +194,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 8_227_000 picoseconds. - Weight::from_parts(8_457_000, 0) + // Minimum execution time: 7_904_000 picoseconds. + Weight::from_parts(8_182_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -206,8 +206,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 8_403_000 picoseconds. - Weight::from_parts(8_558_000, 0) + // Minimum execution time: 7_852_000 picoseconds. + Weight::from_parts(8_131_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_proxy.rs b/runtime/kusama/src/weights/pallet_proxy.rs index dd24fcb23796..d6e5e787c816 100644 --- a/runtime/kusama/src/weights/pallet_proxy.rs +++ b/runtime/kusama/src/weights/pallet_proxy.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 15_909_000 picoseconds. - Weight::from_parts(16_351_527, 0) + // Minimum execution time: 15_194_000 picoseconds. + Weight::from_parts(15_635_162, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 598 - .saturating_add(Weight::from_parts(42_235, 0).saturating_mul(p.into())) + // Standard Error: 811 + .saturating_add(Weight::from_parts(34_526, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: Proxy Proxies (r:1 w:0) @@ -73,13 +73,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `554 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 40_359_000 picoseconds. - Weight::from_parts(40_404_892, 0) + // Minimum execution time: 39_539_000 picoseconds. + Weight::from_parts(40_092_644, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 4_176 - .saturating_add(Weight::from_parts(111_611, 0).saturating_mul(a.into())) - // Standard Error: 4_315 - .saturating_add(Weight::from_parts(31_502, 0).saturating_mul(p.into())) + // Standard Error: 3_904 + .saturating_add(Weight::from_parts(111_177, 0).saturating_mul(a.into())) + // Standard Error: 4_034 + .saturating_add(Weight::from_parts(17_820, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -93,11 +93,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_162_000 picoseconds. - Weight::from_parts(25_237_127, 0) + // Minimum execution time: 23_974_000 picoseconds. + Weight::from_parts(24_764_838, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_755 - .saturating_add(Weight::from_parts(138_783, 0).saturating_mul(a.into())) + // Standard Error: 1_035 + .saturating_add(Weight::from_parts(136_125, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -111,11 +111,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_157_000 picoseconds. - Weight::from_parts(25_182_335, 0) + // Minimum execution time: 23_933_000 picoseconds. + Weight::from_parts(24_943_251, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_098 - .saturating_add(Weight::from_parts(136_258, 0).saturating_mul(a.into())) + // Standard Error: 1_470 + .saturating_add(Weight::from_parts(128_376, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -131,13 +131,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `486 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 33_473_000 picoseconds. - Weight::from_parts(36_141_059, 0) + // Minimum execution time: 33_086_000 picoseconds. + Weight::from_parts(36_122_064, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 4_251 - .saturating_add(Weight::from_parts(121_015, 0).saturating_mul(a.into())) - // Standard Error: 4_392 - .saturating_add(Weight::from_parts(22_929, 0).saturating_mul(p.into())) + // Standard Error: 4_107 + .saturating_add(Weight::from_parts(126_429, 0).saturating_mul(a.into())) + // Standard Error: 4_244 + .saturating_add(Weight::from_parts(12_064, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -148,11 +148,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_898_000 picoseconds. - Weight::from_parts(25_514_219, 0) + // Minimum execution time: 24_717_000 picoseconds. + Weight::from_parts(26_380_401, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_003 - .saturating_add(Weight::from_parts(52_434, 0).saturating_mul(p.into())) + // Standard Error: 10_225 + .saturating_add(Weight::from_parts(9_712, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -163,11 +163,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_857_000 picoseconds. - Weight::from_parts(25_934_923, 0) + // Minimum execution time: 24_710_000 picoseconds. + Weight::from_parts(25_507_296, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_495 - .saturating_add(Weight::from_parts(52_534, 0).saturating_mul(p.into())) + // Standard Error: 1_345 + .saturating_add(Weight::from_parts(54_696, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -178,11 +178,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 21_972_000 picoseconds. - Weight::from_parts(22_722_374, 0) + // Minimum execution time: 21_539_000 picoseconds. + Weight::from_parts(22_177_046, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 946 - .saturating_add(Weight::from_parts(31_366, 0).saturating_mul(p.into())) + // Standard Error: 934 + .saturating_add(Weight::from_parts(34_366, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +193,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `4706` - // Minimum execution time: 26_801_000 picoseconds. - Weight::from_parts(27_492_405, 0) + // Minimum execution time: 26_395_000 picoseconds. + Weight::from_parts(27_087_213, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 673 - .saturating_add(Weight::from_parts(2_841, 0).saturating_mul(p.into())) + // Standard Error: 918 + .saturating_add(Weight::from_parts(9_476, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +208,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `264 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 23_022_000 picoseconds. - Weight::from_parts(23_716_687, 0) + // Minimum execution time: 22_553_000 picoseconds. + Weight::from_parts(23_438_596, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 842 - .saturating_add(Weight::from_parts(33_007, 0).saturating_mul(p.into())) + // Standard Error: 843 + .saturating_add(Weight::from_parts(27_814, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/pallet_ranked_collective.rs b/runtime/kusama/src/weights/pallet_ranked_collective.rs index e9529717841b..fd9c6cd57feb 100644 --- a/runtime/kusama/src/weights/pallet_ranked_collective.rs +++ b/runtime/kusama/src/weights/pallet_ranked_collective.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_ranked_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -59,8 +59,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `76` // Estimated: `3507` - // Minimum execution time: 17_166_000 picoseconds. - Weight::from_parts(17_525_000, 0) + // Minimum execution time: 16_509_000 picoseconds. + Weight::from_parts(16_792_000, 0) .saturating_add(Weight::from_parts(0, 3507)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) @@ -78,11 +78,11 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `550 + r * (281 ±0)` // Estimated: `3519 + r * (2529 ±0)` - // Minimum execution time: 27_083_000 picoseconds. - Weight::from_parts(31_255_405, 0) + // Minimum execution time: 26_935_000 picoseconds. + Weight::from_parts(31_357_299, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 26_146 - .saturating_add(Weight::from_parts(11_608_764, 0).saturating_mul(r.into())) + // Standard Error: 26_610 + .saturating_add(Weight::from_parts(11_691_193, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -102,11 +102,11 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `248 + r * (17 ±0)` // Estimated: `3507` - // Minimum execution time: 19_158_000 picoseconds. - Weight::from_parts(19_893_892, 0) + // Minimum execution time: 19_062_000 picoseconds. + Weight::from_parts(19_681_798, 0) .saturating_add(Weight::from_parts(0, 3507)) - // Standard Error: 4_132 - .saturating_add(Weight::from_parts(318_611, 0).saturating_mul(r.into())) + // Standard Error: 3_608 + .saturating_add(Weight::from_parts(310_079, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -123,11 +123,11 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `566 + r * (72 ±0)` // Estimated: `3519` - // Minimum execution time: 27_058_000 picoseconds. - Weight::from_parts(29_517_469, 0) + // Minimum execution time: 26_905_000 picoseconds. + Weight::from_parts(29_496_059, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 32_402 - .saturating_add(Weight::from_parts(639_726, 0).saturating_mul(r.into())) + // Standard Error: 32_930 + .saturating_add(Weight::from_parts(658_420, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -143,8 +143,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `638` // Estimated: `83866` - // Minimum execution time: 50_139_000 picoseconds. - Weight::from_parts(50_871_000, 0) + // Minimum execution time: 49_632_000 picoseconds. + Weight::from_parts(50_336_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -160,11 +160,11 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `434 + n * (50 ±0)` // Estimated: `4365 + n * (2540 ±0)` - // Minimum execution time: 14_639_000 picoseconds. - Weight::from_parts(17_825_612, 0) + // Minimum execution time: 14_464_000 picoseconds. + Weight::from_parts(17_768_623, 0) .saturating_add(Weight::from_parts(0, 4365)) - // Standard Error: 1_138 - .saturating_add(Weight::from_parts(921_612, 0).saturating_mul(n.into())) + // Standard Error: 1_241 + .saturating_add(Weight::from_parts(927_475, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) diff --git a/runtime/kusama/src/weights/pallet_referenda_fellowship_referenda.rs b/runtime/kusama/src/weights/pallet_referenda_fellowship_referenda.rs index dfc2ffbfaa00..61a3f230ef29 100644 --- a/runtime/kusama/src/weights/pallet_referenda_fellowship_referenda.rs +++ b/runtime/kusama/src/weights/pallet_referenda_fellowship_referenda.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -59,8 +59,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `327` // Estimated: `42428` - // Minimum execution time: 30_026_000 picoseconds. - Weight::from_parts(30_391_000, 0) + // Minimum execution time: 28_816_000 picoseconds. + Weight::from_parts(29_442_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -73,8 +73,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `404` // Estimated: `83866` - // Minimum execution time: 53_519_000 picoseconds. - Weight::from_parts(54_364_000, 0) + // Minimum execution time: 51_772_000 picoseconds. + Weight::from_parts(52_245_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -85,15 +85,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: FellowshipReferenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: FellowshipReferenda TrackQueue (r:1 w:1) /// Proof: FellowshipReferenda TrackQueue (max_values: None, max_size: Some(812), added: 3287, mode: MaxEncodedLen) + /// Storage: Scheduler Agenda (r:1 w:1) + /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `1845` - // Estimated: `4365` - // Minimum execution time: 69_669_000 picoseconds. - Weight::from_parts(71_436_000, 0) - .saturating_add(Weight::from_parts(0, 4365)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `2042` + // Estimated: `42428` + // Minimum execution time: 82_832_000 picoseconds. + Weight::from_parts(85_457_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: FellowshipReferenda ReferendumInfoFor (r:1 w:1) /// Proof: FellowshipReferenda ReferendumInfoFor (max_values: None, max_size: Some(900), added: 3375, mode: MaxEncodedLen) @@ -101,15 +103,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: FellowshipReferenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: FellowshipReferenda TrackQueue (r:1 w:1) /// Proof: FellowshipReferenda TrackQueue (max_values: None, max_size: Some(812), added: 3287, mode: MaxEncodedLen) + /// Storage: Scheduler Agenda (r:1 w:1) + /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `1886` - // Estimated: `4365` - // Minimum execution time: 68_491_000 picoseconds. - Weight::from_parts(70_483_000, 0) - .saturating_add(Weight::from_parts(0, 4365)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `2083` + // Estimated: `42428` + // Minimum execution time: 82_836_000 picoseconds. + Weight::from_parts(84_870_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: FellowshipReferenda ReferendumInfoFor (r:1 w:1) /// Proof: FellowshipReferenda ReferendumInfoFor (max_values: None, max_size: Some(900), added: 3375, mode: MaxEncodedLen) @@ -123,8 +127,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `774` // Estimated: `83866` - // Minimum execution time: 126_622_000 picoseconds. - Weight::from_parts(132_198_000, 0) + // Minimum execution time: 124_692_000 picoseconds. + Weight::from_parts(129_866_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -135,15 +139,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: FellowshipReferenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: FellowshipCollective MemberCount (r:1 w:0) /// Proof: FellowshipCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) + /// Storage: Scheduler Agenda (r:2 w:2) + /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `546` - // Estimated: `4365` - // Minimum execution time: 45_825_000 picoseconds. - Weight::from_parts(46_440_000, 0) - .saturating_add(Weight::from_parts(0, 4365)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `639` + // Estimated: `83866` + // Minimum execution time: 67_096_000 picoseconds. + Weight::from_parts(67_756_000, 0) + .saturating_add(Weight::from_parts(0, 83866)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: FellowshipReferenda ReferendumInfoFor (r:1 w:1) /// Proof: FellowshipReferenda ReferendumInfoFor (max_values: None, max_size: Some(900), added: 3375, mode: MaxEncodedLen) @@ -151,8 +157,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `317` // Estimated: `4365` - // Minimum execution time: 30_724_000 picoseconds. - Weight::from_parts(31_246_000, 0) + // Minimum execution time: 29_622_000 picoseconds. + Weight::from_parts(30_030_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -163,8 +169,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `167` // Estimated: `4365` - // Minimum execution time: 15_550_000 picoseconds. - Weight::from_parts(15_889_000, 0) + // Minimum execution time: 14_586_000 picoseconds. + Weight::from_parts(14_831_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -177,8 +183,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `349` // Estimated: `83866` - // Minimum execution time: 38_618_000 picoseconds. - Weight::from_parts(39_045_000, 0) + // Minimum execution time: 36_883_000 picoseconds. + Weight::from_parts(37_417_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -193,8 +199,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `450` // Estimated: `83866` - // Minimum execution time: 76_221_000 picoseconds. - Weight::from_parts(77_031_000, 0) + // Minimum execution time: 73_928_000 picoseconds. + Weight::from_parts(74_780_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -207,8 +213,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `140` // Estimated: `4277` - // Minimum execution time: 9_994_000 picoseconds. - Weight::from_parts(10_330_000, 0) + // Minimum execution time: 9_654_000 picoseconds. + Weight::from_parts(10_012_000, 0) .saturating_add(Weight::from_parts(0, 4277)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -219,17 +225,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: FellowshipReferenda ReferendumInfoFor (max_values: None, max_size: Some(900), added: 3375, mode: MaxEncodedLen) /// Storage: FellowshipCollective MemberCount (r:1 w:0) /// Proof: FellowshipCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) + /// Storage: Scheduler Agenda (r:1 w:1) /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn one_fewer_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `3018` - // Estimated: `83866` - // Minimum execution time: 136_387_000 picoseconds. - Weight::from_parts(139_419_000, 0) - .saturating_add(Weight::from_parts(0, 83866)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) + // Measured: `2376` + // Estimated: `42428` + // Minimum execution time: 70_626_000 picoseconds. + Weight::from_parts(72_572_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: FellowshipReferenda TrackQueue (r:1 w:1) /// Proof: FellowshipReferenda TrackQueue (max_values: None, max_size: Some(812), added: 3287, mode: MaxEncodedLen) @@ -237,49 +243,45 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: FellowshipReferenda ReferendumInfoFor (max_values: None, max_size: Some(900), added: 3375, mode: MaxEncodedLen) /// Storage: FellowshipCollective MemberCount (r:1 w:0) /// Proof: FellowshipCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) + /// Storage: Scheduler Agenda (r:1 w:1) /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn one_fewer_deciding_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `3018` - // Estimated: `83866` - // Minimum execution time: 139_137_000 picoseconds. - Weight::from_parts(142_118_000, 0) - .saturating_add(Weight::from_parts(0, 83866)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) + // Measured: `2362` + // Estimated: `42428` + // Minimum execution time: 71_530_000 picoseconds. + Weight::from_parts(74_001_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } - /// Storage: FellowshipReferenda ReferendumInfoFor (r:1 w:1) + /// Storage: FellowshipReferenda ReferendumInfoFor (r:1 w:0) /// Proof: FellowshipReferenda ReferendumInfoFor (max_values: None, max_size: Some(900), added: 3375, mode: MaxEncodedLen) /// Storage: FellowshipReferenda TrackQueue (r:1 w:1) /// Proof: FellowshipReferenda TrackQueue (max_values: None, max_size: Some(812), added: 3287, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_requeued_insertion() -> Weight { // Proof Size summary in bytes: - // Measured: `2661` - // Estimated: `42428` - // Minimum execution time: 75_604_000 picoseconds. - Weight::from_parts(77_294_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `1807` + // Estimated: `4365` + // Minimum execution time: 30_582_000 picoseconds. + Weight::from_parts(31_829_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: FellowshipReferenda ReferendumInfoFor (r:1 w:1) + /// Storage: FellowshipReferenda ReferendumInfoFor (r:1 w:0) /// Proof: FellowshipReferenda ReferendumInfoFor (max_values: None, max_size: Some(900), added: 3375, mode: MaxEncodedLen) /// Storage: FellowshipReferenda TrackQueue (r:1 w:1) /// Proof: FellowshipReferenda TrackQueue (max_values: None, max_size: Some(812), added: 3287, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_requeued_slide() -> Weight { // Proof Size summary in bytes: - // Measured: `2628` - // Estimated: `42428` - // Minimum execution time: 75_552_000 picoseconds. - Weight::from_parts(77_339_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `1774` + // Estimated: `4365` + // Minimum execution time: 30_773_000 picoseconds. + Weight::from_parts(31_461_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: FellowshipReferenda ReferendumInfoFor (r:1 w:1) /// Proof: FellowshipReferenda ReferendumInfoFor (max_values: None, max_size: Some(900), added: 3375, mode: MaxEncodedLen) @@ -287,16 +289,14 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: FellowshipReferenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: FellowshipReferenda TrackQueue (r:1 w:1) /// Proof: FellowshipReferenda TrackQueue (max_values: None, max_size: Some(812), added: 3287, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `2644` - // Estimated: `42428` - // Minimum execution time: 77_946_000 picoseconds. - Weight::from_parts(80_444_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `1790` + // Estimated: `4365` + // Minimum execution time: 40_566_000 picoseconds. + Weight::from_parts(42_024_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: FellowshipReferenda ReferendumInfoFor (r:1 w:1) @@ -305,16 +305,14 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: FellowshipReferenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: FellowshipReferenda TrackQueue (r:1 w:1) /// Proof: FellowshipReferenda TrackQueue (max_values: None, max_size: Some(812), added: 3287, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `2685` - // Estimated: `42428` - // Minimum execution time: 77_557_000 picoseconds. - Weight::from_parts(79_420_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `1831` + // Estimated: `4365` + // Minimum execution time: 40_030_000 picoseconds. + Weight::from_parts(41_444_000, 0) + .saturating_add(Weight::from_parts(0, 4365)) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: FellowshipReferenda ReferendumInfoFor (r:1 w:1) @@ -325,8 +323,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `301` // Estimated: `42428` - // Minimum execution time: 25_972_000 picoseconds. - Weight::from_parts(26_364_000, 0) + // Minimum execution time: 25_069_000 picoseconds. + Weight::from_parts(25_301_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -339,8 +337,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `349` // Estimated: `42428` - // Minimum execution time: 26_412_000 picoseconds. - Weight::from_parts(26_765_000, 0) + // Minimum execution time: 25_200_000 picoseconds. + Weight::from_parts(25_606_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -351,8 +349,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `208` // Estimated: `4365` - // Minimum execution time: 17_815_000 picoseconds. - Weight::from_parts(18_068_000, 0) + // Minimum execution time: 16_687_000 picoseconds. + Weight::from_parts(16_973_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -369,8 +367,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `584` // Estimated: `42428` - // Minimum execution time: 38_419_000 picoseconds. - Weight::from_parts(38_825_000, 0) + // Minimum execution time: 36_977_000 picoseconds. + Weight::from_parts(37_432_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -387,8 +385,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `719` // Estimated: `42428` - // Minimum execution time: 63_382_000 picoseconds. - Weight::from_parts(65_585_000, 0) + // Minimum execution time: 61_625_000 picoseconds. + Weight::from_parts(63_564_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -403,8 +401,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `770` // Estimated: `42428` - // Minimum execution time: 86_762_000 picoseconds. - Weight::from_parts(91_844_000, 0) + // Minimum execution time: 85_412_000 picoseconds. + Weight::from_parts(88_475_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -419,8 +417,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `755` // Estimated: `42428` - // Minimum execution time: 88_479_000 picoseconds. - Weight::from_parts(95_903_000, 0) + // Minimum execution time: 85_495_000 picoseconds. + Weight::from_parts(94_732_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -435,8 +433,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `770` // Estimated: `42428` - // Minimum execution time: 85_223_000 picoseconds. - Weight::from_parts(88_848_000, 0) + // Minimum execution time: 82_931_000 picoseconds. + Weight::from_parts(88_562_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -451,8 +449,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `776` // Estimated: `42428` - // Minimum execution time: 56_821_000 picoseconds. - Weight::from_parts(58_801_000, 0) + // Minimum execution time: 55_853_000 picoseconds. + Weight::from_parts(57_761_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -469,8 +467,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `776` // Estimated: `83866` - // Minimum execution time: 103_463_000 picoseconds. - Weight::from_parts(106_239_000, 0) + // Minimum execution time: 101_251_000 picoseconds. + Weight::from_parts(103_897_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -485,8 +483,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `772` // Estimated: `42428` - // Minimum execution time: 77_123_000 picoseconds. - Weight::from_parts(91_273_000, 0) + // Minimum execution time: 73_658_000 picoseconds. + Weight::from_parts(89_672_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -501,8 +499,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `352` // Estimated: `4365` - // Minimum execution time: 20_702_000 picoseconds. - Weight::from_parts(21_003_000, 0) + // Minimum execution time: 19_993_000 picoseconds. + Weight::from_parts(20_305_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -515,8 +513,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `285` // Estimated: `4365` - // Minimum execution time: 18_676_000 picoseconds. - Weight::from_parts(18_993_000, 0) + // Minimum execution time: 17_815_000 picoseconds. + Weight::from_parts(18_197_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_referenda_referenda.rs b/runtime/kusama/src/weights/pallet_referenda_referenda.rs index 7ee5de52fd55..5268652ab76e 100644 --- a/runtime/kusama/src/weights/pallet_referenda_referenda.rs +++ b/runtime/kusama/src/weights/pallet_referenda_referenda.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -57,8 +57,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `186` // Estimated: `42428` - // Minimum execution time: 39_741_000 picoseconds. - Weight::from_parts(40_248_000, 0) + // Minimum execution time: 38_094_000 picoseconds. + Weight::from_parts(38_828_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) @@ -71,8 +71,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `439` // Estimated: `83866` - // Minimum execution time: 51_664_000 picoseconds. - Weight::from_parts(52_160_000, 0) + // Minimum execution time: 49_501_000 picoseconds. + Weight::from_parts(50_093_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -83,15 +83,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: Scheduler Agenda (r:1 w:1) + /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3035` - // Estimated: `5477` - // Minimum execution time: 48_021_000 picoseconds. - Weight::from_parts(48_641_000, 0) - .saturating_add(Weight::from_parts(0, 5477)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `3196` + // Estimated: `42428` + // Minimum execution time: 59_688_000 picoseconds. + Weight::from_parts(60_498_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) @@ -99,15 +101,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: Scheduler Agenda (r:1 w:1) + /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3055` - // Estimated: `5477` - // Minimum execution time: 47_596_000 picoseconds. - Weight::from_parts(48_391_000, 0) - .saturating_add(Weight::from_parts(0, 5477)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `3216` + // Estimated: `42428` + // Minimum execution time: 59_067_000 picoseconds. + Weight::from_parts(60_106_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) @@ -121,8 +125,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `439` // Estimated: `83866` - // Minimum execution time: 63_844_000 picoseconds. - Weight::from_parts(64_556_000, 0) + // Minimum execution time: 61_251_000 picoseconds. + Weight::from_parts(62_142_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -133,15 +137,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: Balances InactiveIssuance (r:1 w:0) /// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: Scheduler Agenda (r:2 w:2) + /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `346` - // Estimated: `4401` - // Minimum execution time: 41_570_000 picoseconds. - Weight::from_parts(41_909_000, 0) - .saturating_add(Weight::from_parts(0, 4401)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `439` + // Estimated: `83866` + // Minimum execution time: 59_626_000 picoseconds. + Weight::from_parts(60_154_000, 0) + .saturating_add(Weight::from_parts(0, 83866)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) @@ -149,8 +155,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `279` // Estimated: `4401` - // Minimum execution time: 30_061_000 picoseconds. - Weight::from_parts(30_760_000, 0) + // Minimum execution time: 28_706_000 picoseconds. + Weight::from_parts(29_245_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -161,8 +167,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `4401` - // Minimum execution time: 30_118_000 picoseconds. - Weight::from_parts(30_763_000, 0) + // Minimum execution time: 28_846_000 picoseconds. + Weight::from_parts(29_458_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -175,8 +181,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `347` // Estimated: `83866` - // Minimum execution time: 38_071_000 picoseconds. - Weight::from_parts(38_612_000, 0) + // Minimum execution time: 36_353_000 picoseconds. + Weight::from_parts(36_926_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -191,8 +197,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `588` // Estimated: `83866` - // Minimum execution time: 99_074_000 picoseconds. - Weight::from_parts(99_988_000, 0) + // Minimum execution time: 96_203_000 picoseconds. + Weight::from_parts(97_058_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -205,8 +211,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `102` // Estimated: `5477` - // Minimum execution time: 9_600_000 picoseconds. - Weight::from_parts(9_799_000, 0) + // Minimum execution time: 9_097_000 picoseconds. + Weight::from_parts(9_263_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -217,17 +223,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) /// Storage: Balances InactiveIssuance (r:1 w:0) /// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) + /// Storage: Scheduler Agenda (r:1 w:1) /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn one_fewer_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `3805` - // Estimated: `83866` - // Minimum execution time: 109_886_000 picoseconds. - Weight::from_parts(110_776_000, 0) - .saturating_add(Weight::from_parts(0, 83866)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) + // Measured: `3116` + // Estimated: `42428` + // Minimum execution time: 45_993_000 picoseconds. + Weight::from_parts(46_659_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) @@ -235,49 +241,45 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) /// Storage: Balances InactiveIssuance (r:1 w:0) /// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) + /// Storage: Scheduler Agenda (r:1 w:1) /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn one_fewer_deciding_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `3805` - // Estimated: `83866` - // Minimum execution time: 112_690_000 picoseconds. - Weight::from_parts(113_528_000, 0) - .saturating_add(Weight::from_parts(0, 83866)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) + // Measured: `3116` + // Estimated: `42428` + // Minimum execution time: 48_602_000 picoseconds. + Weight::from_parts(49_602_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) + /// Storage: Referenda ReferendumInfoFor (r:1 w:0) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_requeued_insertion() -> Weight { // Proof Size summary in bytes: - // Measured: `3823` - // Estimated: `42428` - // Minimum execution time: 58_976_000 picoseconds. - Weight::from_parts(59_487_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `2939` + // Estimated: `5477` + // Minimum execution time: 19_201_000 picoseconds. + Weight::from_parts(19_613_000, 0) + .saturating_add(Weight::from_parts(0, 5477)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) + /// Storage: Referenda ReferendumInfoFor (r:1 w:0) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_requeued_slide() -> Weight { // Proof Size summary in bytes: - // Measured: `3823` - // Estimated: `42428` - // Minimum execution time: 58_833_000 picoseconds. - Weight::from_parts(59_343_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `2939` + // Estimated: `5477` + // Minimum execution time: 18_900_000 picoseconds. + Weight::from_parts(19_432_000, 0) + .saturating_add(Weight::from_parts(0, 5477)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) @@ -285,16 +287,14 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3797` - // Estimated: `42428` - // Minimum execution time: 60_579_000 picoseconds. - Weight::from_parts(61_323_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `2943` + // Estimated: `5477` + // Minimum execution time: 23_865_000 picoseconds. + Weight::from_parts(24_211_000, 0) + .saturating_add(Weight::from_parts(0, 5477)) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) @@ -303,16 +303,14 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3817` - // Estimated: `42428` - // Minimum execution time: 60_324_000 picoseconds. - Weight::from_parts(60_914_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `2963` + // Estimated: `5477` + // Minimum execution time: 23_494_000 picoseconds. + Weight::from_parts(23_810_000, 0) + .saturating_add(Weight::from_parts(0, 5477)) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) @@ -323,8 +321,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `299` // Estimated: `42428` - // Minimum execution time: 25_364_000 picoseconds. - Weight::from_parts(25_880_000, 0) + // Minimum execution time: 23_956_000 picoseconds. + Weight::from_parts(24_378_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -337,8 +335,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `347` // Estimated: `42428` - // Minimum execution time: 25_709_000 picoseconds. - Weight::from_parts(26_100_000, 0) + // Minimum execution time: 24_240_000 picoseconds. + Weight::from_parts(24_689_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -349,8 +347,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `206` // Estimated: `4401` - // Minimum execution time: 17_452_000 picoseconds. - Weight::from_parts(17_649_000, 0) + // Minimum execution time: 15_993_000 picoseconds. + Weight::from_parts(16_250_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -367,8 +365,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `347` // Estimated: `42428` - // Minimum execution time: 35_315_000 picoseconds. - Weight::from_parts(35_845_000, 0) + // Minimum execution time: 33_540_000 picoseconds. + Weight::from_parts(34_108_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -385,8 +383,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `347` // Estimated: `42428` - // Minimum execution time: 37_531_000 picoseconds. - Weight::from_parts(38_135_000, 0) + // Minimum execution time: 35_555_000 picoseconds. + Weight::from_parts(36_207_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -401,8 +399,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `400` // Estimated: `42428` - // Minimum execution time: 31_415_000 picoseconds. - Weight::from_parts(31_776_000, 0) + // Minimum execution time: 29_686_000 picoseconds. + Weight::from_parts(30_147_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -417,8 +415,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `383` // Estimated: `42428` - // Minimum execution time: 32_398_000 picoseconds. - Weight::from_parts(32_747_000, 0) + // Minimum execution time: 30_244_000 picoseconds. + Weight::from_parts(31_005_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -433,8 +431,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `400` // Estimated: `42428` - // Minimum execution time: 29_640_000 picoseconds. - Weight::from_parts(30_060_000, 0) + // Minimum execution time: 28_024_000 picoseconds. + Weight::from_parts(28_593_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -449,8 +447,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `404` // Estimated: `42428` - // Minimum execution time: 28_283_000 picoseconds. - Weight::from_parts(28_904_000, 0) + // Minimum execution time: 26_850_000 picoseconds. + Weight::from_parts(27_328_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -467,8 +465,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `404` // Estimated: `83866` - // Minimum execution time: 43_817_000 picoseconds. - Weight::from_parts(44_477_000, 0) + // Minimum execution time: 41_999_000 picoseconds. + Weight::from_parts(42_602_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -483,8 +481,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `400` // Estimated: `42428` - // Minimum execution time: 31_464_000 picoseconds. - Weight::from_parts(32_071_000, 0) + // Minimum execution time: 29_932_000 picoseconds. + Weight::from_parts(30_390_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -499,8 +497,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `350` // Estimated: `4401` - // Minimum execution time: 20_035_000 picoseconds. - Weight::from_parts(20_500_000, 0) + // Minimum execution time: 19_181_000 picoseconds. + Weight::from_parts(19_668_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -513,8 +511,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `283` // Estimated: `4401` - // Minimum execution time: 17_757_000 picoseconds. - Weight::from_parts(18_157_000, 0) + // Minimum execution time: 17_095_000 picoseconds. + Weight::from_parts(17_349_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_scheduler.rs b/runtime/kusama/src/weights/pallet_scheduler.rs index 7dea204619f0..3bffce1beec4 100644 --- a/runtime/kusama/src/weights/pallet_scheduler.rs +++ b/runtime/kusama/src/weights/pallet_scheduler.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69` // Estimated: `1489` - // Minimum execution time: 4_021_000 picoseconds. - Weight::from_parts(4_146_000, 0) + // Minimum execution time: 3_948_000 picoseconds. + Weight::from_parts(4_083_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -66,11 +66,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 3_615_000 picoseconds. - Weight::from_parts(6_705_712, 0) + // Minimum execution time: 3_501_000 picoseconds. + Weight::from_parts(6_388_786, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_879 - .saturating_add(Weight::from_parts(769_736, 0).saturating_mul(s.into())) + // Standard Error: 1_937 + .saturating_add(Weight::from_parts(738_398, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -78,8 +78,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_925_000 picoseconds. - Weight::from_parts(6_018_000, 0) + // Minimum execution time: 5_532_000 picoseconds. + Weight::from_parts(5_615_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Preimage PreimageFor (r:1 w:1) @@ -91,11 +91,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `179 + s * (1 ±0)` // Estimated: `3644 + s * (1 ±0)` - // Minimum execution time: 19_169_000 picoseconds. - Weight::from_parts(19_305_000, 0) + // Minimum execution time: 18_650_000 picoseconds. + Weight::from_parts(18_946_000, 0) .saturating_add(Weight::from_parts(0, 3644)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_167, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_248, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -106,8 +106,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_535_000 picoseconds. - Weight::from_parts(7_627_000, 0) + // Minimum execution time: 7_032_000 picoseconds. + Weight::from_parts(7_271_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -115,24 +115,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_980_000 picoseconds. - Weight::from_parts(6_069_000, 0) + // Minimum execution time: 5_481_000 picoseconds. + Weight::from_parts(5_585_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_signed() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_143_000 picoseconds. - Weight::from_parts(3_301_000, 0) + // Minimum execution time: 2_777_000 picoseconds. + Weight::from_parts(2_856_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_161_000 picoseconds. - Weight::from_parts(3_251_000, 0) + // Minimum execution time: 2_709_000 picoseconds. + Weight::from_parts(2_797_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Scheduler Agenda (r:1 w:1) @@ -142,11 +142,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 13_675_000 picoseconds. - Weight::from_parts(16_925_902, 0) + // Minimum execution time: 12_891_000 picoseconds. + Weight::from_parts(15_819_956, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_132 - .saturating_add(Weight::from_parts(765_522, 0).saturating_mul(s.into())) + // Standard Error: 1_724 + .saturating_add(Weight::from_parts(732_277, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -159,11 +159,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 18_259_000 picoseconds. - Weight::from_parts(17_631_069, 0) + // Minimum execution time: 17_138_000 picoseconds. + Weight::from_parts(16_857_684, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_622 - .saturating_add(Weight::from_parts(1_355_072, 0).saturating_mul(s.into())) + // Standard Error: 1_989 + .saturating_add(Weight::from_parts(1_302_330, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -176,11 +176,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `293 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 17_145_000 picoseconds. - Weight::from_parts(21_075_330, 0) + // Minimum execution time: 15_902_000 picoseconds. + Weight::from_parts(19_837_395, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_764 - .saturating_add(Weight::from_parts(790_285, 0).saturating_mul(s.into())) + // Standard Error: 2_706 + .saturating_add(Weight::from_parts(767_437, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -193,11 +193,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `319 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 19_614_000 picoseconds. - Weight::from_parts(19_816_769, 0) + // Minimum execution time: 18_734_000 picoseconds. + Weight::from_parts(19_091_961, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_943 - .saturating_add(Weight::from_parts(1_379_346, 0).saturating_mul(s.into())) + // Standard Error: 2_067 + .saturating_add(Weight::from_parts(1_330_034, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/kusama/src/weights/pallet_session.rs b/runtime/kusama/src/weights/pallet_session.rs index 45beaf009c5d..6f9746e465ca 100644 --- a/runtime/kusama/src/weights/pallet_session.rs +++ b/runtime/kusama/src/weights/pallet_session.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -55,11 +55,11 @@ impl pallet_session::WeightInfo for WeightInfo { /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn set_keys() -> Weight { // Proof Size summary in bytes: - // Measured: `2083` - // Estimated: `17923` - // Minimum execution time: 52_023_000 picoseconds. - Weight::from_parts(52_743_000, 0) - .saturating_add(Weight::from_parts(0, 17923)) + // Measured: `2050` + // Estimated: `17890` + // Minimum execution time: 51_414_000 picoseconds. + Weight::from_parts(52_148_000, 0) + .saturating_add(Weight::from_parts(0, 17890)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -71,11 +71,11 @@ impl pallet_session::WeightInfo for WeightInfo { /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn purge_keys() -> Weight { // Proof Size summary in bytes: - // Measured: `1947` - // Estimated: `5412` - // Minimum execution time: 37_004_000 picoseconds. - Weight::from_parts(37_461_000, 0) - .saturating_add(Weight::from_parts(0, 5412)) + // Measured: `1914` + // Estimated: `5379` + // Minimum execution time: 36_459_000 picoseconds. + Weight::from_parts(37_037_000, 0) + .saturating_add(Weight::from_parts(0, 5379)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(7)) } diff --git a/runtime/kusama/src/weights/pallet_staking.rs b/runtime/kusama/src/weights/pallet_staking.rs index 57195e7fec62..7f8192f7f4fe 100644 --- a/runtime/kusama/src/weights/pallet_staking.rs +++ b/runtime/kusama/src/weights/pallet_staking.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_staking` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -63,8 +63,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `980` // Estimated: `4764` - // Minimum execution time: 50_841_000 picoseconds. - Weight::from_parts(51_241_000, 0) + // Minimum execution time: 50_904_000 picoseconds. + Weight::from_parts(52_105_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -85,8 +85,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1955` // Estimated: `8877` - // Minimum execution time: 90_692_000 picoseconds. - Weight::from_parts(91_828_000, 0) + // Minimum execution time: 90_871_000 picoseconds. + Weight::from_parts(91_788_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -103,8 +103,6 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: VoterList ListNodes (r:3 w:3) /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) /// Storage: Staking Bonded (r:1 w:0) @@ -115,11 +113,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2166` // Estimated: `8877` - // Minimum execution time: 94_445_000 picoseconds. - Weight::from_parts(95_226_000, 0) + // Minimum execution time: 93_863_000 picoseconds. + Weight::from_parts(95_299_000, 0) .saturating_add(Weight::from_parts(0, 8877)) - .saturating_add(T::DbWeight::get().reads(13)) - .saturating_add(T::DbWeight::get().writes(8)) + .saturating_add(T::DbWeight::get().reads(12)) + .saturating_add(T::DbWeight::get().writes(7)) } /// Storage: Staking Ledger (r:1 w:1) /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) @@ -129,20 +127,18 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `s` is `[0, 100]`. fn withdraw_unbonded_update(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `944` // Estimated: `4764` - // Minimum execution time: 43_590_000 picoseconds. - Weight::from_parts(45_220_761, 0) + // Minimum execution time: 44_191_000 picoseconds. + Weight::from_parts(45_477_189, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 447 - .saturating_add(Weight::from_parts(13_983, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(3)) + // Standard Error: 438 + .saturating_add(Weight::from_parts(13_035, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Staking Ledger (r:1 w:1) /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) @@ -164,8 +160,6 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) /// Storage: VoterList CounterForListNodes (r:1 w:1) /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: Balances Locks (r:1 w:1) /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) @@ -179,13 +173,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2217 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 89_295_000 picoseconds. - Weight::from_parts(94_047_121, 0) + // Minimum execution time: 88_856_000 picoseconds. + Weight::from_parts(92_965_631, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_981 - .saturating_add(Weight::from_parts(1_177_496, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(14)) - .saturating_add(T::DbWeight::get().writes(12)) + // Standard Error: 2_401 + .saturating_add(Weight::from_parts(1_202_406, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(13)) + .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) .saturating_add(Weight::from_parts(0, 4).saturating_mul(s.into())) } @@ -215,8 +209,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1341` // Estimated: `4556` - // Minimum execution time: 56_556_000 picoseconds. - Weight::from_parts(57_220_000, 0) + // Minimum execution time: 56_945_000 picoseconds. + Weight::from_parts(57_483_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(5)) @@ -228,13 +222,13 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `k` is `[1, 128]`. fn kick(k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1306 + k * (823 ±0)` + // Measured: `1326 + k * (823 ±0)` // Estimated: `4556 + k * (3289 ±0)` - // Minimum execution time: 29_533_000 picoseconds. - Weight::from_parts(25_748_941, 0) + // Minimum execution time: 29_816_000 picoseconds. + Weight::from_parts(24_697_837, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 8_071 - .saturating_add(Weight::from_parts(8_317_605, 0).saturating_mul(k.into())) + // Standard Error: 10_425 + .saturating_add(Weight::from_parts(8_196_785, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -265,13 +259,13 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `n` is `[1, 24]`. fn nominate(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1907 + n * (89 ±0)` + // Measured: `1921 + n * (88 ±0)` // Estimated: `6248 + n * (2520 ±0)` - // Minimum execution time: 64_490_000 picoseconds. - Weight::from_parts(65_180_288, 0) + // Minimum execution time: 64_368_000 picoseconds. + Weight::from_parts(64_137_061, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 14_245 - .saturating_add(Weight::from_parts(2_916_284, 0).saturating_mul(n.into())) + // Standard Error: 11_053 + .saturating_add(Weight::from_parts(2_975_071, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(6)) @@ -295,8 +289,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1671` // Estimated: `6248` - // Minimum execution time: 57_652_000 picoseconds. - Weight::from_parts(58_292_000, 0) + // Minimum execution time: 57_402_000 picoseconds. + Weight::from_parts(58_447_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -309,8 +303,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `735` // Estimated: `4556` - // Minimum execution time: 14_387_000 picoseconds. - Weight::from_parts(14_552_000, 0) + // Minimum execution time: 14_237_000 picoseconds. + Weight::from_parts(14_531_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -323,8 +317,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `834` // Estimated: `8122` - // Minimum execution time: 21_482_000 picoseconds. - Weight::from_parts(21_941_000, 0) + // Minimum execution time: 21_349_000 picoseconds. + Weight::from_parts(21_709_000, 0) .saturating_add(Weight::from_parts(0, 8122)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -335,8 +329,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_383_000 picoseconds. - Weight::from_parts(3_527_000, 0) + // Minimum execution time: 3_347_000 picoseconds. + Weight::from_parts(3_517_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -346,8 +340,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_686_000 picoseconds. - Weight::from_parts(12_074_000, 0) + // Minimum execution time: 11_433_000 picoseconds. + Weight::from_parts(11_762_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -357,8 +351,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_704_000 picoseconds. - Weight::from_parts(11_983_000, 0) + // Minimum execution time: 11_326_000 picoseconds. + Weight::from_parts(11_662_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -368,8 +362,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_829_000 picoseconds. - Weight::from_parts(12_101_000, 0) + // Minimum execution time: 11_380_000 picoseconds. + Weight::from_parts(11_696_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -380,11 +374,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_486_000 picoseconds. - Weight::from_parts(3_831_440, 0) + // Minimum execution time: 3_448_000 picoseconds. + Weight::from_parts(3_614_202, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 18 - .saturating_add(Weight::from_parts(10_384, 0).saturating_mul(v.into())) + // Standard Error: 24 + .saturating_add(Weight::from_parts(10_569, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Staking Bonded (r:1 w:1) @@ -420,11 +414,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1947 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 81_929_000 picoseconds. - Weight::from_parts(86_720_085, 0) + // Minimum execution time: 81_966_000 picoseconds. + Weight::from_parts(87_869_939, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_829 - .saturating_add(Weight::from_parts(1_180_842, 0).saturating_mul(s.into())) + // Standard Error: 1_805 + .saturating_add(Weight::from_parts(1_153_353, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(12)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -437,11 +431,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `66572` // Estimated: `70037` - // Minimum execution time: 114_732_000 picoseconds. - Weight::from_parts(900_906_916, 0) + // Minimum execution time: 113_394_000 picoseconds. + Weight::from_parts(915_759_340, 0) .saturating_add(Weight::from_parts(0, 70037)) - // Standard Error: 56_985 - .saturating_add(Weight::from_parts(4_933_668, 0).saturating_mul(s.into())) + // Standard Error: 58_960 + .saturating_add(Weight::from_parts(4_950_569, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -468,11 +462,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `34175 + n * (149 ±0)` // Estimated: `32387 + n * (2603 ±0)` - // Minimum execution time: 89_810_000 picoseconds. - Weight::from_parts(79_103_052, 0) + // Minimum execution time: 90_356_000 picoseconds. + Weight::from_parts(71_381_072, 0) .saturating_add(Weight::from_parts(0, 32387)) - // Standard Error: 12_667 - .saturating_add(Weight::from_parts(29_866_847, 0).saturating_mul(n.into())) + // Standard Error: 13_722 + .saturating_add(Weight::from_parts(30_072_130, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -504,13 +498,13 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `n` is `[0, 512]`. fn payout_stakers_alive_staked(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `61914 + n * (410 ±0)` - // Estimated: `56105 + n * (3774 ±3)` - // Minimum execution time: 116_007_000 picoseconds. - Weight::from_parts(74_807_058, 0) - .saturating_add(Weight::from_parts(0, 56105)) - // Standard Error: 17_553 - .saturating_add(Weight::from_parts(49_081_924, 0).saturating_mul(n.into())) + // Measured: `58149 + n * (385 ±0)` + // Estimated: `53036 + n * (3774 ±2)` + // Minimum execution time: 113_520_000 picoseconds. + Weight::from_parts(53_414_161, 0) + .saturating_add(Weight::from_parts(0, 53036)) + // Standard Error: 17_291 + .saturating_add(Weight::from_parts(49_214_142, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -523,8 +517,6 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: VoterList ListNodes (r:3 w:3) /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) /// Storage: Staking Bonded (r:1 w:0) @@ -536,16 +528,14 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1956 + l * (5 ±0)` // Estimated: `8877` - // Minimum execution time: 85_816_000 picoseconds. - Weight::from_parts(87_015_652, 0) + // Minimum execution time: 85_777_000 picoseconds. + Weight::from_parts(87_370_231, 0) .saturating_add(Weight::from_parts(0, 8877)) - // Standard Error: 1_710 - .saturating_add(Weight::from_parts(28_102, 0).saturating_mul(l.into())) - .saturating_add(T::DbWeight::get().reads(10)) - .saturating_add(T::DbWeight::get().writes(8)) + // Standard Error: 2_274 + .saturating_add(Weight::from_parts(22_247, 0).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(7)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: Staking Bonded (r:1 w:1) /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) /// Storage: Staking Ledger (r:1 w:1) @@ -577,13 +567,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2217 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 94_760_000 picoseconds. - Weight::from_parts(95_629_703, 0) + // Minimum execution time: 94_813_000 picoseconds. + Weight::from_parts(95_669_759, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_843 - .saturating_add(Weight::from_parts(1_166_025, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(13)) - .saturating_add(T::DbWeight::get().writes(12)) + // Standard Error: 2_031 + .saturating_add(Weight::from_parts(1_166_063, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(12)) + .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) .saturating_add(Weight::from_parts(0, 4).saturating_mul(s.into())) } @@ -629,13 +619,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + n * (714 ±0) + v * (3592 ±0)` // Estimated: `425452 + n * (3566 ±3) + v * (3566 ±38)` - // Minimum execution time: 474_739_000 picoseconds. - Weight::from_parts(476_689_000, 0) + // Minimum execution time: 471_078_000 picoseconds. + Weight::from_parts(473_192_000, 0) .saturating_add(Weight::from_parts(0, 425452)) - // Standard Error: 1_873_426 - .saturating_add(Weight::from_parts(59_816_500, 0).saturating_mul(v.into())) - // Standard Error: 186_676 - .saturating_add(Weight::from_parts(16_303_018, 0).saturating_mul(n.into())) + // Standard Error: 1_826_301 + .saturating_add(Weight::from_parts(58_588_817, 0).saturating_mul(v.into())) + // Standard Error: 181_980 + .saturating_add(Weight::from_parts(16_482_813, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(173)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -666,15 +656,15 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `n` is `[500, 1000]`. fn get_npos_voters(v: u32, n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3069 + n * (1161 ±0) + v * (389 ±0)` + // Measured: `3151 + n * (1161 ±0) + v * (389 ±0)` // Estimated: `425452 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 30_564_146_000 picoseconds. - Weight::from_parts(30_728_963_000, 0) + // Minimum execution time: 31_480_948_000 picoseconds. + Weight::from_parts(31_598_662_000, 0) .saturating_add(Weight::from_parts(0, 425452)) - // Standard Error: 336_327 - .saturating_add(Weight::from_parts(4_530_831, 0).saturating_mul(v.into())) - // Standard Error: 336_327 - .saturating_add(Weight::from_parts(3_125_337, 0).saturating_mul(n.into())) + // Standard Error: 346_420 + .saturating_add(Weight::from_parts(4_621_237, 0).saturating_mul(v.into())) + // Standard Error: 346_420 + .saturating_add(Weight::from_parts(3_162_454, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(168)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -693,11 +683,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `917 + v * (50 ±0)` // Estimated: `3510 + v * (2520 ±0)` - // Minimum execution time: 2_206_013_000 picoseconds. - Weight::from_parts(40_237_775, 0) + // Minimum execution time: 2_229_982_000 picoseconds. + Weight::from_parts(44_832_617, 0) .saturating_add(Weight::from_parts(0, 3510)) - // Standard Error: 5_793 - .saturating_add(Weight::from_parts(4_437_197, 0).saturating_mul(v.into())) + // Standard Error: 8_423 + .saturating_add(Weight::from_parts(4_470_332, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -719,8 +709,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_841_000 picoseconds. - Weight::from_parts(7_136_000, 0) + // Minimum execution time: 6_727_000 picoseconds. + Weight::from_parts(7_011_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -740,8 +730,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_510_000 picoseconds. - Weight::from_parts(6_780_000, 0) + // Minimum execution time: 6_057_000 picoseconds. + Weight::from_parts(6_232_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -769,8 +759,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `6248` - // Minimum execution time: 69_308_000 picoseconds. - Weight::from_parts(70_184_000, 0) + // Minimum execution time: 69_929_000 picoseconds. + Weight::from_parts(70_638_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(6)) @@ -783,8 +773,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `627` // Estimated: `3510` - // Minimum execution time: 13_463_000 picoseconds. - Weight::from_parts(13_706_000, 0) + // Minimum execution time: 13_376_000 picoseconds. + Weight::from_parts(13_645_000, 0) .saturating_add(Weight::from_parts(0, 3510)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -795,8 +785,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_489_000 picoseconds. - Weight::from_parts(3_668_000, 0) + // Minimum execution time: 3_271_000 picoseconds. + Weight::from_parts(3_474_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/pallet_timestamp.rs b/runtime/kusama/src/weights/pallet_timestamp.rs index 2c7025e82fb5..483c9fb51a8b 100644 --- a/runtime/kusama/src/weights/pallet_timestamp.rs +++ b/runtime/kusama/src/weights/pallet_timestamp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `311` // Estimated: `1493` - // Minimum execution time: 9_429_000 picoseconds. - Weight::from_parts(9_671_000, 0) + // Minimum execution time: 8_934_000 picoseconds. + Weight::from_parts(9_247_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +65,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `94` // Estimated: `0` - // Minimum execution time: 3_646_000 picoseconds. - Weight::from_parts(3_834_000, 0) + // Minimum execution time: 3_709_000 picoseconds. + Weight::from_parts(3_808_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtime/kusama/src/weights/pallet_treasury.rs b/runtime/kusama/src/weights/pallet_treasury.rs index 1d1872cc768e..1fe8b4f31dcc 100644 --- a/runtime/kusama/src/weights/pallet_treasury.rs +++ b/runtime/kusama/src/weights/pallet_treasury.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_treasury` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -57,8 +57,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6` // Estimated: `1887` - // Minimum execution time: 14_692_000 picoseconds. - Weight::from_parts(15_059_000, 0) + // Minimum execution time: 14_279_000 picoseconds. + Weight::from_parts(14_472_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) @@ -71,8 +71,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `1489` - // Minimum execution time: 26_358_000 picoseconds. - Weight::from_parts(26_761_000, 0) + // Minimum execution time: 26_502_000 picoseconds. + Weight::from_parts(26_913_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -85,8 +85,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `265` // Estimated: `3593` - // Minimum execution time: 39_586_000 picoseconds. - Weight::from_parts(40_113_000, 0) + // Minimum execution time: 39_693_000 picoseconds. + Weight::from_parts(40_069_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -100,11 +100,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `433 + p * (8 ±0)` // Estimated: `3573` - // Minimum execution time: 9_225_000 picoseconds. - Weight::from_parts(11_898_418, 0) + // Minimum execution time: 8_705_000 picoseconds. + Weight::from_parts(11_581_749, 0) .saturating_add(Weight::from_parts(0, 3573)) - // Standard Error: 888 - .saturating_add(Weight::from_parts(30_177, 0).saturating_mul(p.into())) + // Standard Error: 910 + .saturating_add(Weight::from_parts(30_044, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -114,8 +114,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `1887` - // Minimum execution time: 6_896_000 picoseconds. - Weight::from_parts(7_093_000, 0) + // Minimum execution time: 6_736_000 picoseconds. + Weight::from_parts(6_829_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -137,11 +137,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `264 + p * (251 ±0)` // Estimated: `3593 + p * (5206 ±0)` - // Minimum execution time: 62_552_000 picoseconds. - Weight::from_parts(65_526_861, 0) + // Minimum execution time: 62_118_000 picoseconds. + Weight::from_parts(64_329_756, 0) .saturating_add(Weight::from_parts(0, 3593)) - // Standard Error: 20_034 - .saturating_add(Weight::from_parts(37_730_613, 0).saturating_mul(p.into())) + // Standard Error: 30_434 + .saturating_add(Weight::from_parts(37_643_004, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(5)) diff --git a/runtime/kusama/src/weights/pallet_utility.rs b/runtime/kusama/src/weights/pallet_utility.rs index 09f560982902..2a4d1e7492c3 100644 --- a/runtime/kusama/src/weights/pallet_utility.rs +++ b/runtime/kusama/src/weights/pallet_utility.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -52,18 +52,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_979_000 picoseconds. - Weight::from_parts(15_260_348, 0) + // Minimum execution time: 6_677_000 picoseconds. + Weight::from_parts(9_349_210, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 6_475 - .saturating_add(Weight::from_parts(4_765_339, 0).saturating_mul(c.into())) + // Standard Error: 2_455 + .saturating_add(Weight::from_parts(4_414_489, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_676_000 picoseconds. - Weight::from_parts(5_766_000, 0) + // Minimum execution time: 5_114_000 picoseconds. + Weight::from_parts(5_203_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -71,18 +71,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_129_000 picoseconds. - Weight::from_parts(8_354_582, 0) + // Minimum execution time: 6_593_000 picoseconds. + Weight::from_parts(3_285_927, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_090 - .saturating_add(Weight::from_parts(5_031_085, 0).saturating_mul(c.into())) + // Standard Error: 3_019 + .saturating_add(Weight::from_parts(4_703_669, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_677_000 picoseconds. - Weight::from_parts(9_857_000, 0) + // Minimum execution time: 8_876_000 picoseconds. + Weight::from_parts(9_065_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -90,10 +90,10 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_101_000 picoseconds. - Weight::from_parts(8_909_687, 0) + // Minimum execution time: 6_768_000 picoseconds. + Weight::from_parts(16_257_355, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_010 - .saturating_add(Weight::from_parts(4_797_717, 0).saturating_mul(c.into())) + // Standard Error: 3_142 + .saturating_add(Weight::from_parts(4_410_062, 0).saturating_mul(c.into())) } } diff --git a/runtime/kusama/src/weights/pallet_vesting.rs b/runtime/kusama/src/weights/pallet_vesting.rs index 18de6d99961d..54a03fa598f1 100644 --- a/runtime/kusama/src/weights/pallet_vesting.rs +++ b/runtime/kusama/src/weights/pallet_vesting.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -59,13 +59,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `314 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 34_236_000 picoseconds. - Weight::from_parts(33_164_001, 0) + // Minimum execution time: 33_352_000 picoseconds. + Weight::from_parts(34_205_765, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 490 - .saturating_add(Weight::from_parts(41_391, 0).saturating_mul(l.into())) - // Standard Error: 872 - .saturating_add(Weight::from_parts(68_595, 0).saturating_mul(s.into())) + // Standard Error: 2_172 + .saturating_add(Weight::from_parts(10_660, 0).saturating_mul(l.into())) + // Standard Error: 3_864 + .saturating_add(Weight::from_parts(53_849, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -81,13 +81,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `314 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 37_520_000 picoseconds. - Weight::from_parts(37_108_105, 0) + // Minimum execution time: 36_538_000 picoseconds. + Weight::from_parts(36_213_107, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 919 - .saturating_add(Weight::from_parts(32_138, 0).saturating_mul(l.into())) - // Standard Error: 1_635 - .saturating_add(Weight::from_parts(47_195, 0).saturating_mul(s.into())) + // Standard Error: 791 + .saturating_add(Weight::from_parts(30_659, 0).saturating_mul(l.into())) + // Standard Error: 1_408 + .saturating_add(Weight::from_parts(42_927, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -105,13 +105,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `417 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 35_805_000 picoseconds. - Weight::from_parts(35_003_794, 0) + // Minimum execution time: 35_267_000 picoseconds. + Weight::from_parts(34_409_436, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 472 - .saturating_add(Weight::from_parts(42_012, 0).saturating_mul(l.into())) - // Standard Error: 840 - .saturating_add(Weight::from_parts(69_679, 0).saturating_mul(s.into())) + // Standard Error: 633 + .saturating_add(Weight::from_parts(41_988, 0).saturating_mul(l.into())) + // Standard Error: 1_126 + .saturating_add(Weight::from_parts(67_595, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -129,13 +129,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `417 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 39_517_000 picoseconds. - Weight::from_parts(39_084_170, 0) + // Minimum execution time: 38_463_000 picoseconds. + Weight::from_parts(38_578_723, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 728 - .saturating_add(Weight::from_parts(32_883, 0).saturating_mul(l.into())) - // Standard Error: 1_295 - .saturating_add(Weight::from_parts(41_418, 0).saturating_mul(s.into())) + // Standard Error: 1_004 + .saturating_add(Weight::from_parts(28_618, 0).saturating_mul(l.into())) + // Standard Error: 1_786 + .saturating_add(Weight::from_parts(27_391, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -153,13 +153,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `488 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 68_240_000 picoseconds. - Weight::from_parts(71_024_237, 0) + // Minimum execution time: 68_090_000 picoseconds. + Weight::from_parts(71_277_557, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_774 - .saturating_add(Weight::from_parts(47_755, 0).saturating_mul(l.into())) - // Standard Error: 3_156 - .saturating_add(Weight::from_parts(105_520, 0).saturating_mul(s.into())) + // Standard Error: 2_585 + .saturating_add(Weight::from_parts(46_935, 0).saturating_mul(l.into())) + // Standard Error: 4_600 + .saturating_add(Weight::from_parts(76_542, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -177,13 +177,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + l * (25 ±0) + s * (36 ±0)` // Estimated: `6196` - // Minimum execution time: 70_320_000 picoseconds. - Weight::from_parts(72_764_211, 0) + // Minimum execution time: 69_840_000 picoseconds. + Weight::from_parts(72_484_434, 0) .saturating_add(Weight::from_parts(0, 6196)) - // Standard Error: 2_462 - .saturating_add(Weight::from_parts(58_515, 0).saturating_mul(l.into())) - // Standard Error: 4_381 - .saturating_add(Weight::from_parts(98_639, 0).saturating_mul(s.into())) + // Standard Error: 1_955 + .saturating_add(Weight::from_parts(47_081, 0).saturating_mul(l.into())) + // Standard Error: 3_478 + .saturating_add(Weight::from_parts(99_787, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -201,13 +201,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `415 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_998_000 picoseconds. - Weight::from_parts(35_461_370, 0) + // Minimum execution time: 36_131_000 picoseconds. + Weight::from_parts(35_149_493, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_549 - .saturating_add(Weight::from_parts(48_190, 0).saturating_mul(l.into())) - // Standard Error: 2_860 - .saturating_add(Weight::from_parts(78_961, 0).saturating_mul(s.into())) + // Standard Error: 573 + .saturating_add(Weight::from_parts(42_288, 0).saturating_mul(l.into())) + // Standard Error: 1_058 + .saturating_add(Weight::from_parts(66_676, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -225,13 +225,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `415 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 40_973_000 picoseconds. - Weight::from_parts(39_794_870, 0) + // Minimum execution time: 40_178_000 picoseconds. + Weight::from_parts(39_122_430, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 502 - .saturating_add(Weight::from_parts(43_457, 0).saturating_mul(l.into())) - // Standard Error: 927 - .saturating_add(Weight::from_parts(70_228, 0).saturating_mul(s.into())) + // Standard Error: 522 + .saturating_add(Weight::from_parts(44_297, 0).saturating_mul(l.into())) + // Standard Error: 964 + .saturating_add(Weight::from_parts(64_862, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/kusama/src/weights/pallet_whitelist.rs b/runtime/kusama/src/weights/pallet_whitelist.rs index 703131784951..bd30918a0c45 100644 --- a/runtime/kusama/src/weights/pallet_whitelist.rs +++ b/runtime/kusama/src/weights/pallet_whitelist.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_whitelist` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `118` // Estimated: `3556` - // Minimum execution time: 19_547_000 picoseconds. - Weight::from_parts(20_009_000, 0) + // Minimum execution time: 18_694_000 picoseconds. + Weight::from_parts(19_144_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -69,8 +69,8 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `247` // Estimated: `3556` - // Minimum execution time: 17_349_000 picoseconds. - Weight::from_parts(17_784_000, 0) + // Minimum execution time: 16_985_000 picoseconds. + Weight::from_parts(17_278_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -86,11 +86,11 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `323 + n * (1 ±0)` // Estimated: `3787 + n * (1 ±0)` - // Minimum execution time: 29_783_000 picoseconds. - Weight::from_parts(29_954_000, 0) + // Minimum execution time: 28_575_000 picoseconds. + Weight::from_parts(28_835_000, 0) .saturating_add(Weight::from_parts(0, 3787)) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_197, 0).saturating_mul(n.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(1_302, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -104,11 +104,11 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `247` // Estimated: `3556` - // Minimum execution time: 21_895_000 picoseconds. - Weight::from_parts(22_547_428, 0) + // Minimum execution time: 20_924_000 picoseconds. + Weight::from_parts(21_246_138, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_199, 0).saturating_mul(n.into())) + // Standard Error: 14 + .saturating_add(Weight::from_parts(1_316, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/kusama/src/weights/pallet_xcm.rs b/runtime/kusama/src/weights/pallet_xcm.rs index b0b74fad33f9..7dbfe7ad5162 100644 --- a/runtime/kusama/src/weights/pallet_xcm.rs +++ b/runtime/kusama/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -63,8 +63,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3676` - // Minimum execution time: 33_882_000 picoseconds. - Weight::from_parts(34_520_000, 0) + // Minimum execution time: 33_093_000 picoseconds. + Weight::from_parts(33_584_000, 0) .saturating_add(Weight::from_parts(0, 3676)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(3)) @@ -73,24 +73,24 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 21_929_000 picoseconds. - Weight::from_parts(22_338_000, 0) + // Minimum execution time: 21_437_000 picoseconds. + Weight::from_parts(21_821_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 21_902_000 picoseconds. - Weight::from_parts(22_199_000, 0) + // Minimum execution time: 21_279_000 picoseconds. + Weight::from_parts(21_738_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_124_000 picoseconds. - Weight::from_parts(10_240_000, 0) + // Minimum execution time: 9_499_000 picoseconds. + Weight::from_parts(9_732_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: XcmPallet SupportedVersion (r:0 w:1) @@ -99,8 +99,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_417_000 picoseconds. - Weight::from_parts(10_755_000, 0) + // Minimum execution time: 9_744_000 picoseconds. + Weight::from_parts(10_013_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -110,8 +110,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_418_000 picoseconds. - Weight::from_parts(3_573_000, 0) + // Minimum execution time: 2_828_000 picoseconds. + Weight::from_parts(2_940_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -137,8 +137,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3676` - // Minimum execution time: 38_909_000 picoseconds. - Weight::from_parts(39_524_000, 0) + // Minimum execution time: 37_248_000 picoseconds. + Weight::from_parts(37_960_000, 0) .saturating_add(Weight::from_parts(0, 3676)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -163,8 +163,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `483` // Estimated: `3948` - // Minimum execution time: 42_228_000 picoseconds. - Weight::from_parts(42_616_000, 0) + // Minimum execution time: 41_078_000 picoseconds. + Weight::from_parts(42_438_000, 0) .saturating_add(Weight::from_parts(0, 3948)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -175,8 +175,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_475_000 picoseconds. - Weight::from_parts(3_617_000, 0) + // Minimum execution time: 2_912_000 picoseconds. + Weight::from_parts(3_078_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -186,8 +186,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `229` // Estimated: `11119` - // Minimum execution time: 16_151_000 picoseconds. - Weight::from_parts(16_682_000, 0) + // Minimum execution time: 15_823_000 picoseconds. + Weight::from_parts(16_390_000, 0) .saturating_add(Weight::from_parts(0, 11119)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -198,8 +198,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `233` // Estimated: `11123` - // Minimum execution time: 16_244_000 picoseconds. - Weight::from_parts(16_570_000, 0) + // Minimum execution time: 15_683_000 picoseconds. + Weight::from_parts(15_941_000, 0) .saturating_add(Weight::from_parts(0, 11123)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -210,8 +210,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `243` // Estimated: `13608` - // Minimum execution time: 16_904_000 picoseconds. - Weight::from_parts(17_585_000, 0) + // Minimum execution time: 17_277_000 picoseconds. + Weight::from_parts(17_583_000, 0) .saturating_add(Weight::from_parts(0, 13608)) .saturating_add(T::DbWeight::get().reads(5)) } @@ -233,8 +233,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `281` // Estimated: `6221` - // Minimum execution time: 35_534_000 picoseconds. - Weight::from_parts(36_048_000, 0) + // Minimum execution time: 35_291_000 picoseconds. + Weight::from_parts(35_829_000, 0) .saturating_add(Weight::from_parts(0, 6221)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -245,8 +245,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `272` // Estimated: `8687` - // Minimum execution time: 8_878_000 picoseconds. - Weight::from_parts(9_105_000, 0) + // Minimum execution time: 8_887_000 picoseconds. + Weight::from_parts(9_039_000, 0) .saturating_add(Weight::from_parts(0, 8687)) .saturating_add(T::DbWeight::get().reads(3)) } @@ -256,8 +256,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `240` // Estimated: `11130` - // Minimum execution time: 16_754_000 picoseconds. - Weight::from_parts(17_201_000, 0) + // Minimum execution time: 15_995_000 picoseconds. + Weight::from_parts(16_623_000, 0) .saturating_add(Weight::from_parts(0, 11130)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -280,8 +280,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `285` // Estimated: `11175` - // Minimum execution time: 42_609_000 picoseconds. - Weight::from_parts(43_104_000, 0) + // Minimum execution time: 41_311_000 picoseconds. + Weight::from_parts(42_102_000, 0) .saturating_add(Weight::from_parts(0, 11175)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(5)) diff --git a/runtime/kusama/src/weights/runtime_common_auctions.rs b/runtime/kusama/src/weights/runtime_common_auctions.rs index e0a80c965983..63bfd3bac6d8 100644 --- a/runtime/kusama/src/weights/runtime_common_auctions.rs +++ b/runtime/kusama/src/weights/runtime_common_auctions.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::auctions` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `4` // Estimated: `1493` - // Minimum execution time: 12_488_000 picoseconds. - Weight::from_parts(12_721_000, 0) + // Minimum execution time: 11_883_000 picoseconds. + Weight::from_parts(12_111_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +79,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `661` // Estimated: `6060` - // Minimum execution time: 76_985_000 picoseconds. - Weight::from_parts(80_137_000, 0) + // Minimum execution time: 77_025_000 picoseconds. + Weight::from_parts(80_462_000, 0) .saturating_add(Weight::from_parts(0, 6060)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -111,10 +111,10 @@ impl runtime_common::auctions::WeightInfo for WeightInf /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) fn on_initialize() -> Weight { // Proof Size summary in bytes: - // Measured: `6947662` + // Measured: `6947699` // Estimated: `15822990` - // Minimum execution time: 6_361_059_000 picoseconds. - Weight::from_parts(6_395_078_000, 0) + // Minimum execution time: 6_420_880_000 picoseconds. + Weight::from_parts(6_519_804_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3688)) .saturating_add(T::DbWeight::get().writes(3683)) @@ -131,8 +131,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `177732` // Estimated: `15822990` - // Minimum execution time: 4_884_032_000 picoseconds. - Weight::from_parts(4_964_958_000, 0) + // Minimum execution time: 4_867_703_000 picoseconds. + Weight::from_parts(4_970_965_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3673)) .saturating_add(T::DbWeight::get().writes(3673)) diff --git a/runtime/kusama/src/weights/runtime_common_claims.rs b/runtime/kusama/src/weights/runtime_common_claims.rs index db0351f2062a..08110ea15d8c 100644 --- a/runtime/kusama/src/weights/runtime_common_claims.rs +++ b/runtime/kusama/src/weights/runtime_common_claims.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::claims` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -67,8 +67,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `620` // Estimated: `4764` - // Minimum execution time: 150_481_000 picoseconds. - Weight::from_parts(167_576_000, 0) + // Minimum execution time: 150_188_000 picoseconds. + Weight::from_parts(152_188_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -85,8 +85,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `216` // Estimated: `1701` - // Minimum execution time: 10_875_000 picoseconds. - Weight::from_parts(11_260_000, 0) + // Minimum execution time: 10_417_000 picoseconds. + Weight::from_parts(10_727_000, 0) .saturating_add(Weight::from_parts(0, 1701)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(4)) @@ -111,8 +111,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `620` // Estimated: `4764` - // Minimum execution time: 153_279_000 picoseconds. - Weight::from_parts(155_466_000, 0) + // Minimum execution time: 153_796_000 picoseconds. + Weight::from_parts(158_788_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -139,8 +139,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `694` // Estimated: `4764` - // Minimum execution time: 72_886_000 picoseconds. - Weight::from_parts(84_366_000, 0) + // Minimum execution time: 72_825_000 picoseconds. + Weight::from_parts(82_756_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -157,8 +157,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `440` // Estimated: `3905` - // Minimum execution time: 21_278_000 picoseconds. - Weight::from_parts(21_795_000, 0) + // Minimum execution time: 21_180_000 picoseconds. + Weight::from_parts(21_693_000, 0) .saturating_add(Weight::from_parts(0, 3905)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(7)) diff --git a/runtime/kusama/src/weights/runtime_common_crowdloan.rs b/runtime/kusama/src/weights/runtime_common_crowdloan.rs index 37ffcdf2c2cb..ac5c57238612 100644 --- a/runtime/kusama/src/weights/runtime_common_crowdloan.rs +++ b/runtime/kusama/src/weights/runtime_common_crowdloan.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::crowdloan` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -61,8 +61,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `415` // Estimated: `3880` - // Minimum execution time: 49_125_000 picoseconds. - Weight::from_parts(50_337_000, 0) + // Minimum execution time: 50_819_000 picoseconds. + Weight::from_parts(52_107_000, 0) .saturating_add(Weight::from_parts(0, 3880)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -87,8 +87,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `463` // Estimated: `3928` - // Minimum execution time: 128_273_000 picoseconds. - Weight::from_parts(130_318_000, 0) + // Minimum execution time: 131_381_000 picoseconds. + Weight::from_parts(132_817_000, 0) .saturating_add(Weight::from_parts(0, 3928)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -105,8 +105,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `690` // Estimated: `6196` - // Minimum execution time: 72_478_000 picoseconds. - Weight::from_parts(73_735_000, 0) + // Minimum execution time: 72_237_000 picoseconds. + Weight::from_parts(73_906_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -118,11 +118,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `128 + k * (189 ±0)` // Estimated: `141 + k * (189 ±0)` - // Minimum execution time: 40_559_000 picoseconds. - Weight::from_parts(55_414_000, 0) + // Minimum execution time: 46_127_000 picoseconds. + Weight::from_parts(59_825_000, 0) .saturating_add(Weight::from_parts(0, 141)) - // Standard Error: 19_957 - .saturating_add(Weight::from_parts(38_704_934, 0).saturating_mul(k.into())) + // Standard Error: 21_686 + .saturating_add(Weight::from_parts(38_510_266, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -137,8 +137,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `515` // Estimated: `6196` - // Minimum execution time: 40_738_000 picoseconds. - Weight::from_parts(41_642_000, 0) + // Minimum execution time: 42_791_000 picoseconds. + Weight::from_parts(43_642_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -149,8 +149,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `235` // Estimated: `3700` - // Minimum execution time: 17_930_000 picoseconds. - Weight::from_parts(18_801_000, 0) + // Minimum execution time: 19_168_000 picoseconds. + Weight::from_parts(19_812_000, 0) .saturating_add(Weight::from_parts(0, 3700)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -163,8 +163,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `412` // Estimated: `3877` - // Minimum execution time: 24_949_000 picoseconds. - Weight::from_parts(25_752_000, 0) + // Minimum execution time: 25_222_000 picoseconds. + Weight::from_parts(26_025_000, 0) .saturating_add(Weight::from_parts(0, 3877)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -177,8 +177,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `239` // Estimated: `3704` - // Minimum execution time: 17_708_000 picoseconds. - Weight::from_parts(18_216_000, 0) + // Minimum execution time: 17_707_000 picoseconds. + Weight::from_parts(18_388_000, 0) .saturating_add(Weight::from_parts(0, 3704)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -208,11 +208,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `130 + n * (356 ±0)` // Estimated: `5385 + n * (2832 ±0)` - // Minimum execution time: 128_669_000 picoseconds. - Weight::from_parts(130_198_000, 0) + // Minimum execution time: 129_542_000 picoseconds. + Weight::from_parts(132_585_000, 0) .saturating_add(Weight::from_parts(0, 5385)) - // Standard Error: 58_196 - .saturating_add(Weight::from_parts(59_962_432, 0).saturating_mul(n.into())) + // Standard Error: 62_947 + .saturating_add(Weight::from_parts(59_944_985, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/kusama/src/weights/runtime_common_paras_registrar.rs b/runtime/kusama/src/weights/runtime_common_paras_registrar.rs index ca9ca4cc09eb..eac64423b121 100644 --- a/runtime/kusama/src/weights/runtime_common_paras_registrar.rs +++ b/runtime/kusama/src/weights/runtime_common_paras_registrar.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::paras_registrar` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -57,8 +57,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `70` // Estimated: `3535` - // Minimum execution time: 29_547_000 picoseconds. - Weight::from_parts(29_913_000, 0) + // Minimum execution time: 28_760_000 picoseconds. + Weight::from_parts(29_194_000, 0) .saturating_add(Weight::from_parts(0, 3535)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -67,14 +67,14 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) /// Storage: Paras ParaLifecycles (r:1 w:1) /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) - /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras ActionsQueue (r:1 w:1) - /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:0 w:1) @@ -83,26 +83,26 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras UpcomingParasGenesis (max_values: None, max_size: None, mode: Measured) fn register() -> Weight { // Proof Size summary in bytes: - // Measured: `270` - // Estimated: `3735` - // Minimum execution time: 6_332_415_000 picoseconds. - Weight::from_parts(6_403_095_000, 0) - .saturating_add(Weight::from_parts(0, 3735)) + // Measured: `329` + // Estimated: `3794` + // Minimum execution time: 6_373_809_000 picoseconds. + Weight::from_parts(6_493_061_000, 0) + .saturating_add(Weight::from_parts(0, 3794)) .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(T::DbWeight::get().writes(8)) } /// Storage: Registrar Paras (r:1 w:1) /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) /// Storage: Paras ParaLifecycles (r:1 w:1) /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) - /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras ActionsQueue (r:1 w:1) - /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:0 w:1) @@ -111,13 +111,13 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras UpcomingParasGenesis (max_values: None, max_size: None, mode: Measured) fn force_register() -> Weight { // Proof Size summary in bytes: - // Measured: `160` - // Estimated: `3625` - // Minimum execution time: 6_304_074_000 picoseconds. - Weight::from_parts(6_374_116_000, 0) - .saturating_add(Weight::from_parts(0, 3625)) + // Measured: `219` + // Estimated: `3684` + // Minimum execution time: 6_360_707_000 picoseconds. + Weight::from_parts(6_473_949_000, 0) + .saturating_add(Weight::from_parts(0, 3684)) .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(T::DbWeight::get().writes(8)) } /// Storage: Registrar Paras (r:1 w:1) /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) @@ -129,16 +129,18 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras ActionsQueue (r:1 w:1) /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: Registrar PendingSwap (r:0 w:1) /// Proof Skipped: Registrar PendingSwap (max_values: None, max_size: None, mode: Measured) fn deregister() -> Weight { // Proof Size summary in bytes: - // Measured: `435` - // Estimated: `3900` - // Minimum execution time: 45_612_000 picoseconds. - Weight::from_parts(46_877_000, 0) - .saturating_add(Weight::from_parts(0, 3900)) - .saturating_add(T::DbWeight::get().reads(5)) + // Measured: `476` + // Estimated: `3941` + // Minimum execution time: 49_769_000 picoseconds. + Weight::from_parts(50_474_000, 0) + .saturating_add(Weight::from_parts(0, 3941)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: Registrar Paras (r:1 w:0) @@ -157,11 +159,11 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured) fn swap() -> Weight { // Proof Size summary in bytes: - // Measured: `676` - // Estimated: `6616` - // Minimum execution time: 47_750_000 picoseconds. - Weight::from_parts(50_567_000, 0) - .saturating_add(Weight::from_parts(0, 6616)) + // Measured: `713` + // Estimated: `6653` + // Minimum execution time: 54_021_000 picoseconds. + Weight::from_parts(56_638_000, 0) + .saturating_add(Weight::from_parts(0, 6653)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) } @@ -173,30 +175,28 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured) /// Storage: Paras UpgradeCooldowns (r:1 w:1) /// Proof Skipped: Paras UpgradeCooldowns (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras UpcomingUpgrades (r:1 w:1) - /// Proof Skipped: Paras UpcomingUpgrades (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Digest (r:1 w:1) - /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras FutureCodeUpgrades (r:0 w:1) - /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) /// The range of component `b` is `[1, 3145728]`. fn schedule_code_upgrade(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `28` - // Estimated: `3493` - // Minimum execution time: 39_204_000 picoseconds. - Weight::from_parts(39_509_000, 0) - .saturating_add(Weight::from_parts(0, 3493)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_951, 0).saturating_mul(b.into())) + // Measured: `177` + // Estimated: `3642` + // Minimum execution time: 38_997_000 picoseconds. + Weight::from_parts(39_463_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + // Standard Error: 6 + .saturating_add(Weight::from_parts(2_092, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(8)) + .saturating_add(T::DbWeight::get().writes(7)) } /// Storage: Paras Heads (r:0 w:1) /// Proof Skipped: Paras Heads (max_values: None, max_size: None, mode: Measured) @@ -205,11 +205,11 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_233_000 picoseconds. - Weight::from_parts(9_317_000, 0) + // Minimum execution time: 8_869_000 picoseconds. + Weight::from_parts(8_926_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 2 - .saturating_add(Weight::from_parts(856, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(887, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().writes(1)) } } diff --git a/runtime/kusama/src/weights/runtime_common_slots.rs b/runtime/kusama/src/weights/runtime_common_slots.rs index c218d1f38b97..d3e9d2e4bac8 100644 --- a/runtime/kusama/src/weights/runtime_common_slots.rs +++ b/runtime/kusama/src/weights/runtime_common_slots.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::slots` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `9 + c * (47 ±0) + t * (308 ±0)` - // Estimated: `2786 + c * (2526 ±0) + t * (2789 ±0)` - // Minimum execution time: 649_587_000 picoseconds. - Weight::from_parts(656_654_000, 0) - .saturating_add(Weight::from_parts(0, 2786)) - // Standard Error: 81_802 - .saturating_add(Weight::from_parts(2_619_750, 0).saturating_mul(c.into())) - // Standard Error: 81_802 - .saturating_add(Weight::from_parts(11_410_153, 0).saturating_mul(t.into())) + // Measured: `46 + c * (47 ±0) + t * (308 ±0)` + // Estimated: `2823 + c * (2526 ±0) + t * (2789 ±0)` + // Minimum execution time: 638_698_000 picoseconds. + Weight::from_parts(645_229_000, 0) + .saturating_add(Weight::from_parts(0, 2823)) + // Standard Error: 84_010 + .saturating_add(Weight::from_parts(2_639_449, 0).saturating_mul(c.into())) + // Standard Error: 84_010 + .saturating_add(Weight::from_parts(11_494_690, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(t.into()))) @@ -103,8 +103,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `580` - // Estimated: `4045` - // Minimum execution time: 26_888_000 picoseconds. - Weight::from_parts(27_688_000, 0) - .saturating_add(Weight::from_parts(0, 4045)) + // Measured: `617` + // Estimated: `4082` + // Minimum execution time: 30_010_000 picoseconds. + Weight::from_parts(31_636_000, 0) + .saturating_add(Weight::from_parts(0, 4082)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/kusama/src/weights/runtime_parachains_disputes.rs b/runtime/kusama/src/weights/runtime_parachains_disputes.rs index 648391321564..126a5439be26 100644 --- a/runtime/kusama/src/weights/runtime_parachains_disputes.rs +++ b/runtime/kusama/src/weights/runtime_parachains_disputes.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl runtime_parachains::disputes::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_098_000 picoseconds. - Weight::from_parts(3_256_000, 0) + // Minimum execution time: 2_846_000 picoseconds. + Weight::from_parts(2_965_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/runtime_parachains_disputes_slashing.rs b/runtime/kusama/src/weights/runtime_parachains_disputes_slashing.rs index 3562a42ed941..c225717c340a 100644 --- a/runtime/kusama/src/weights/runtime_parachains_disputes_slashing.rs +++ b/runtime/kusama/src/weights/runtime_parachains_disputes_slashing.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes::slashing` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -88,11 +88,11 @@ impl runtime_parachains::disputes::slashing::WeightInfo // Proof Size summary in bytes: // Measured: `5647 + n * (284 ±0)` // Estimated: `8857 + n * (288 ±0)` - // Minimum execution time: 114_131_000 picoseconds. - Weight::from_parts(136_092_746, 0) + // Minimum execution time: 112_007_000 picoseconds. + Weight::from_parts(133_065_927, 0) .saturating_add(Weight::from_parts(0, 8857)) - // Standard Error: 2_265 - .saturating_add(Weight::from_parts(288_810, 0).saturating_mul(n.into())) + // Standard Error: 2_246 + .saturating_add(Weight::from_parts(287_218, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(18)) .saturating_add(T::DbWeight::get().writes(10)) .saturating_add(Weight::from_parts(0, 288).saturating_mul(n.into())) diff --git a/runtime/kusama/src/weights/runtime_parachains_hrmp.rs b/runtime/kusama/src/weights/runtime_parachains_hrmp.rs index 7f9e219ba10f..db7b3eb2aef8 100644 --- a/runtime/kusama/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/kusama/src/weights/runtime_parachains_hrmp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::hrmp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -67,8 +67,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `350` // Estimated: `6290` - // Minimum execution time: 38_178_000 picoseconds. - Weight::from_parts(38_781_000, 0) + // Minimum execution time: 37_693_000 picoseconds. + Weight::from_parts(38_120_000, 0) .saturating_add(Weight::from_parts(0, 6290)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -89,8 +89,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `582` // Estimated: `4047` - // Minimum execution time: 37_341_000 picoseconds. - Weight::from_parts(37_972_000, 0) + // Minimum execution time: 36_808_000 picoseconds. + Weight::from_parts(37_557_000, 0) .saturating_add(Weight::from_parts(0, 4047)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -109,8 +109,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `453` // Estimated: `3918` - // Minimum execution time: 33_129_000 picoseconds. - Weight::from_parts(33_746_000, 0) + // Minimum execution time: 33_005_000 picoseconds. + Weight::from_parts(33_328_000, 0) .saturating_add(Weight::from_parts(0, 3918)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -133,13 +133,13 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `197 + e * (100 ±0) + i * (100 ±0)` // Estimated: `3659 + e * (2575 ±0) + i * (2575 ±0)` - // Minimum execution time: 1_092_709_000 picoseconds. - Weight::from_parts(1_107_686_000, 0) + // Minimum execution time: 1_079_297_000 picoseconds. + Weight::from_parts(1_101_267_000, 0) .saturating_add(Weight::from_parts(0, 3659)) - // Standard Error: 100_266 - .saturating_add(Weight::from_parts(3_174_242, 0).saturating_mul(i.into())) - // Standard Error: 100_266 - .saturating_add(Weight::from_parts(3_333_814, 0).saturating_mul(e.into())) + // Standard Error: 97_981 + .saturating_add(Weight::from_parts(3_177_225, 0).saturating_mul(i.into())) + // Standard Error: 97_981 + .saturating_add(Weight::from_parts(3_187_961, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(e.into()))) @@ -170,11 +170,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `425 + c * (136 ±0)` // Estimated: `1880 + c * (5086 ±0)` - // Minimum execution time: 7_319_000 picoseconds. - Weight::from_parts(4_516_472, 0) + // Minimum execution time: 7_130_000 picoseconds. + Weight::from_parts(1_917_787, 0) .saturating_add(Weight::from_parts(0, 1880)) - // Standard Error: 14_344 - .saturating_add(Weight::from_parts(18_856_807, 0).saturating_mul(c.into())) + // Standard Error: 19_809 + .saturating_add(Weight::from_parts(18_756_271, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -198,11 +198,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `268 + c * (124 ±0)` // Estimated: `1728 + c * (2600 ±0)` - // Minimum execution time: 5_815_000 picoseconds. - Weight::from_parts(2_546_765, 0) + // Minimum execution time: 5_294_000 picoseconds. + Weight::from_parts(3_586_486, 0) .saturating_add(Weight::from_parts(0, 1728)) - // Standard Error: 10_317 - .saturating_add(Weight::from_parts(11_604_007, 0).saturating_mul(c.into())) + // Standard Error: 13_074 + .saturating_add(Weight::from_parts(11_469_437, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -220,11 +220,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `959 + c * (13 ±0)` // Estimated: `4228 + c * (15 ±0)` - // Minimum execution time: 21_865_000 picoseconds. - Weight::from_parts(26_301_513, 0) + // Minimum execution time: 20_920_000 picoseconds. + Weight::from_parts(25_712_296, 0) .saturating_add(Weight::from_parts(0, 4228)) - // Standard Error: 1_461 - .saturating_add(Weight::from_parts(79_436, 0).saturating_mul(c.into())) + // Standard Error: 1_480 + .saturating_add(Weight::from_parts(79_877, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 15).saturating_mul(c.into())) @@ -238,11 +238,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `176 + c * (63 ±0)` // Estimated: `1655 + c * (2538 ±0)` - // Minimum execution time: 4_216_000 picoseconds. - Weight::from_parts(3_749_377, 0) + // Minimum execution time: 4_285_000 picoseconds. + Weight::from_parts(6_911_302, 0) .saturating_add(Weight::from_parts(0, 1655)) - // Standard Error: 2_994 - .saturating_add(Weight::from_parts(3_163_255, 0).saturating_mul(c.into())) + // Standard Error: 3_218 + .saturating_add(Weight::from_parts(2_961_403, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -273,8 +273,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `350` // Estimated: `6290` - // Minimum execution time: 52_161_000 picoseconds. - Weight::from_parts(52_599_000, 0) + // Minimum execution time: 51_517_000 picoseconds. + Weight::from_parts(52_313_000, 0) .saturating_add(Weight::from_parts(0, 6290)) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(8)) diff --git a/runtime/kusama/src/weights/runtime_parachains_inclusion.rs b/runtime/kusama/src/weights/runtime_parachains_inclusion.rs index dcf4494dac56..c73998bef67e 100644 --- a/runtime/kusama/src/weights/runtime_parachains_inclusion.rs +++ b/runtime/kusama/src/weights/runtime_parachains_inclusion.rs @@ -1,4 +1,4 @@ -// Copyright 2017-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Polkadot. // Polkadot is free software: you can redistribute it and/or modify @@ -13,16 +13,17 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . + //! Autogenerated weights for `runtime_parachains::inclusion` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-02-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: -// ./target/release/polkadot +// ./target/production/polkadot // benchmark // pallet // --chain=kusama-dev @@ -33,34 +34,39 @@ // --execution=wasm // --wasm-execution=compiled // --header=./file_header.txt -// --output=./runtime/kusama/src/weights +// --output=./runtime/kusama/src/weights/runtime_parachains_inclusion.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `runtime_parachains::inclusion`. pub struct WeightInfo(PhantomData); impl runtime_parachains::inclusion::WeightInfo for WeightInfo { /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:999) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) /// The range of component `i` is `[1, 1000]`. fn receive_upward_messages(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `51490` - // Estimated: `70587` - // Minimum execution time: 47_556 nanoseconds. - Weight::from_parts(48_839_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) - // Standard Error: 49_019 - .saturating_add(Weight::from_parts(43_136_059, 0).saturating_mul(i.into())) + // Measured: `65761` + // Estimated: `69051` + // Minimum execution time: 114_474_000 picoseconds. + Weight::from_parts(115_270_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) + // Standard Error: 80_288 + .saturating_add(Weight::from_parts(99_149_045, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } } diff --git a/runtime/kusama/src/weights/runtime_parachains_initializer.rs b/runtime/kusama/src/weights/runtime_parachains_initializer.rs index 487ce7e8d2f6..fc1d08daaa15 100644 --- a/runtime/kusama/src/weights/runtime_parachains_initializer.rs +++ b/runtime/kusama/src/weights/runtime_parachains_initializer.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::initializer` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl runtime_parachains::initializer::WeightInfo for We // Proof Size summary in bytes: // Measured: `0 + d * (11 ±0)` // Estimated: `1480 + d * (11 ±0)` - // Minimum execution time: 4_069_000 picoseconds. - Weight::from_parts(6_582_960, 0) + // Minimum execution time: 3_888_000 picoseconds. + Weight::from_parts(6_450_046, 0) .saturating_add(Weight::from_parts(0, 1480)) - // Standard Error: 4 - .saturating_add(Weight::from_parts(1_316, 0).saturating_mul(d.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_301, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 11).saturating_mul(d.into())) diff --git a/runtime/kusama/src/weights/runtime_parachains_paras.rs b/runtime/kusama/src/weights/runtime_parachains_paras.rs index af2e10a3e1dc..89e8c121dbab 100644 --- a/runtime/kusama/src/weights/runtime_parachains_paras.rs +++ b/runtime/kusama/src/weights/runtime_parachains_paras.rs @@ -17,30 +17,29 @@ //! Autogenerated weights for `runtime_parachains::paras` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: -// target/production/polkadot +// ./target/production/polkadot // benchmark // pallet +// --chain=kusama-dev // --steps=50 // --repeat=20 +// --pallet=runtime_parachains::paras // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json -// --pallet=runtime_parachains::paras -// --chain=kusama-dev // --header=./file_header.txt -// --output=./runtime/kusama/src/weights/ +// --output=./runtime/kusama/src/weights/runtime_parachains_paras.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; @@ -65,11 +64,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `8309` // Estimated: `11774` - // Minimum execution time: 31_199_000 picoseconds. - Weight::from_parts(31_493_000, 0) + // Minimum execution time: 31_083_000 picoseconds. + Weight::from_parts(31_375_000, 0) .saturating_add(Weight::from_parts(0, 11774)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_976, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_989, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -80,11 +79,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_460_000 picoseconds. - Weight::from_parts(8_645_000, 0) + // Minimum execution time: 8_231_000 picoseconds. + Weight::from_parts(8_432_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 2 - .saturating_add(Weight::from_parts(890, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(888, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Paras FutureCodeHash (r:1 w:1) @@ -108,13 +107,13 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// The range of component `c` is `[1, 3145728]`. fn force_schedule_code_upgrade(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `8391` - // Estimated: `11856` - // Minimum execution time: 47_009_000 picoseconds. - Weight::from_parts(47_428_000, 0) - .saturating_add(Weight::from_parts(0, 11856)) + // Measured: `8428` + // Estimated: `11893` + // Minimum execution time: 46_619_000 picoseconds. + Weight::from_parts(47_088_000, 0) + .saturating_add(Weight::from_parts(0, 11893)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_999, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(2_011, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -129,11 +128,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `95` // Estimated: `3560` - // Minimum execution time: 13_825_000 picoseconds. - Weight::from_parts(13_969_000, 0) + // Minimum execution time: 13_313_000 picoseconds. + Weight::from_parts(13_485_000, 0) .saturating_add(Weight::from_parts(0, 3560)) // Standard Error: 2 - .saturating_add(Weight::from_parts(888, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(891, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -143,11 +142,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) fn force_queue_action() -> Weight { // Proof Size summary in bytes: - // Measured: `4251` - // Estimated: `7716` - // Minimum execution time: 19_150_000 picoseconds. - Weight::from_parts(19_571_000, 0) - .saturating_add(Weight::from_parts(0, 7716)) + // Measured: `4288` + // Estimated: `7753` + // Minimum execution time: 19_172_000 picoseconds. + Weight::from_parts(19_503_000, 0) + .saturating_add(Weight::from_parts(0, 7753)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -162,13 +161,13 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// The range of component `c` is `[1, 3145728]`. fn add_trusted_validation_code(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `622` - // Estimated: `4087` - // Minimum execution time: 80_323_000 picoseconds. - Weight::from_parts(57_788_688, 0) - .saturating_add(Weight::from_parts(0, 4087)) + // Measured: `659` + // Estimated: `4124` + // Minimum execution time: 75_502_000 picoseconds. + Weight::from_parts(36_339_285, 0) + .saturating_add(Weight::from_parts(0, 4124)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_449, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_499, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -180,8 +179,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `28` // Estimated: `3493` - // Minimum execution time: 5_737_000 picoseconds. - Weight::from_parts(5_935_000, 0) + // Minimum execution time: 5_833_000 picoseconds. + Weight::from_parts(6_071_000, 0) .saturating_add(Weight::from_parts(0, 3493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -194,11 +193,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement() -> Weight { // Proof Size summary in bytes: - // Measured: `26645` - // Estimated: `30110` - // Minimum execution time: 91_237_000 picoseconds. - Weight::from_parts(92_747_000, 0) - .saturating_add(Weight::from_parts(0, 30110)) + // Measured: `26682` + // Estimated: `30147` + // Minimum execution time: 86_095_000 picoseconds. + Weight::from_parts(88_359_000, 0) + .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -218,11 +217,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_upgrade_accept() -> Weight { // Proof Size summary in bytes: - // Measured: `27199` - // Estimated: `30664` - // Minimum execution time: 780_738_000 picoseconds. - Weight::from_parts(791_043_000, 0) - .saturating_add(Weight::from_parts(0, 30664)) + // Measured: `27236` + // Estimated: `30701` + // Minimum execution time: 773_880_000 picoseconds. + Weight::from_parts(782_923_000, 0) + .saturating_add(Weight::from_parts(0, 30701)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(104)) } @@ -234,11 +233,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_upgrade_reject() -> Weight { // Proof Size summary in bytes: - // Measured: `27177` - // Estimated: `30642` - // Minimum execution time: 87_301_000 picoseconds. - Weight::from_parts(88_560_000, 0) - .saturating_add(Weight::from_parts(0, 30642)) + // Measured: `27214` + // Estimated: `30679` + // Minimum execution time: 86_357_000 picoseconds. + Weight::from_parts(87_596_000, 0) + .saturating_add(Weight::from_parts(0, 30679)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -254,11 +253,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_onboarding_accept() -> Weight { // Proof Size summary in bytes: - // Measured: `26667` - // Estimated: `30132` - // Minimum execution time: 620_267_000 picoseconds. - Weight::from_parts(628_507_000, 0) - .saturating_add(Weight::from_parts(0, 30132)) + // Measured: `26704` + // Estimated: `30169` + // Minimum execution time: 613_311_000 picoseconds. + Weight::from_parts(619_055_000, 0) + .saturating_add(Weight::from_parts(0, 30169)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -270,11 +269,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_onboarding_reject() -> Weight { // Proof Size summary in bytes: - // Measured: `26645` - // Estimated: `30110` - // Minimum execution time: 86_924_000 picoseconds. - Weight::from_parts(87_727_000, 0) - .saturating_add(Weight::from_parts(0, 30110)) + // Measured: `26682` + // Estimated: `30147` + // Minimum execution time: 85_516_000 picoseconds. + Weight::from_parts(86_535_000, 0) + .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs b/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs index a93e791fc7a4..965988e4bb0b 100644 --- a/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs +++ b/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::paras_inherent` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -101,10 +101,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParaScheduler Scheduled (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler ValidatorGroups (r:1 w:0) /// Proof Skipped: ParaScheduler ValidatorGroups (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Hrmp HrmpWatermarks (r:0 w:1) /// Proof Skipped: Hrmp HrmpWatermarks (max_values: None, max_size: None, mode: Measured) /// Storage: Paras Heads (r:0 w:1) @@ -114,15 +110,15 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// The range of component `v` is `[10, 200]`. fn enter_variable_disputes(v: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `50714` - // Estimated: `56654 + v * (23 ±0)` - // Minimum execution time: 776_993_000 picoseconds. - Weight::from_parts(309_276_006, 0) - .saturating_add(Weight::from_parts(0, 56654)) - // Standard Error: 18_546 - .saturating_add(Weight::from_parts(48_055_492, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(29)) - .saturating_add(T::DbWeight::get().writes(17)) + // Measured: `50671` + // Estimated: `56611 + v * (23 ±0)` + // Minimum execution time: 765_925_000 picoseconds. + Weight::from_parts(297_309_443, 0) + .saturating_add(Weight::from_parts(0, 56611)) + // Standard Error: 26_133 + .saturating_add(Weight::from_parts(48_559_543, 0).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads(27)) + .saturating_add(T::DbWeight::get().writes(15)) .saturating_add(Weight::from_parts(0, 23).saturating_mul(v.into())) } /// Storage: ParaInherent Included (r:1 w:1) @@ -173,10 +169,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParaScheduler Scheduled (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler ValidatorGroups (r:1 w:0) /// Proof Skipped: ParaScheduler ValidatorGroups (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion AvailabilityBitfields (r:0 w:1) /// Proof Skipped: ParaInclusion AvailabilityBitfields (max_values: None, max_size: None, mode: Measured) /// Storage: ParasDisputes Included (r:0 w:1) @@ -189,13 +181,13 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Paras UpgradeGoAheadSignal (max_values: None, max_size: None, mode: Measured) fn enter_bitfields() -> Weight { // Proof Size summary in bytes: - // Measured: `42548` - // Estimated: `48488` - // Minimum execution time: 333_025_000 picoseconds. - Weight::from_parts(358_666_000, 0) - .saturating_add(Weight::from_parts(0, 48488)) - .saturating_add(T::DbWeight::get().reads(27)) - .saturating_add(T::DbWeight::get().writes(18)) + // Measured: `42504` + // Estimated: `48444` + // Minimum execution time: 317_981_000 picoseconds. + Weight::from_parts(326_881_000, 0) + .saturating_add(Weight::from_parts(0, 48444)) + .saturating_add(T::DbWeight::get().reads(25)) + .saturating_add(T::DbWeight::get().writes(16)) } /// Storage: ParaInherent Included (r:1 w:1) /// Proof Skipped: ParaInherent Included (max_values: Some(1), max_size: None, mode: Measured) @@ -247,12 +239,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParaScheduler ValidatorGroups (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:1 w:0) /// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump RelayDispatchQueueSize (r:1 w:0) - /// Proof Skipped: Ump RelayDispatchQueueSize (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras ParaLifecycles (r:1 w:0) + /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: ParasDisputes Included (r:0 w:1) /// Proof Skipped: ParasDisputes Included (max_values: None, max_size: None, mode: Measured) /// Storage: Hrmp HrmpWatermarks (r:0 w:1) @@ -264,15 +254,15 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// The range of component `v` is `[101, 200]`. fn enter_backed_candidates_variable(v: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `42579` - // Estimated: `48519` - // Minimum execution time: 5_556_034_000 picoseconds. - Weight::from_parts(783_738_110, 0) - .saturating_add(Weight::from_parts(0, 48519)) - // Standard Error: 45_125 - .saturating_add(Weight::from_parts(47_609_339, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(30)) - .saturating_add(T::DbWeight::get().writes(17)) + // Measured: `42540` + // Estimated: `48480` + // Minimum execution time: 5_573_801_000 picoseconds. + Weight::from_parts(827_804_247, 0) + .saturating_add(Weight::from_parts(0, 48480)) + // Standard Error: 49_742 + .saturating_add(Weight::from_parts(47_813_417, 0).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads(29)) + .saturating_add(T::DbWeight::get().writes(15)) } /// Storage: ParaInherent Included (r:1 w:1) /// Proof Skipped: ParaInherent Included (max_values: Some(1), max_size: None, mode: Measured) @@ -328,12 +318,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Paras FutureCodeHash (max_values: None, max_size: None, mode: Measured) /// Storage: Paras UpgradeRestrictionSignal (r:1 w:0) /// Proof Skipped: Paras UpgradeRestrictionSignal (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump RelayDispatchQueueSize (r:1 w:0) - /// Proof Skipped: Ump RelayDispatchQueueSize (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras ParaLifecycles (r:1 w:0) + /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: ParasDisputes Included (r:0 w:1) /// Proof Skipped: ParasDisputes Included (max_values: None, max_size: None, mode: Measured) /// Storage: Hrmp HrmpWatermarks (r:0 w:1) @@ -344,12 +332,12 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Paras UpgradeGoAheadSignal (max_values: None, max_size: None, mode: Measured) fn enter_backed_candidate_code_upgrade() -> Weight { // Proof Size summary in bytes: - // Measured: `42606` - // Estimated: `48546` - // Minimum execution time: 32_619_921_000 picoseconds. - Weight::from_parts(32_813_876_000, 0) - .saturating_add(Weight::from_parts(0, 48546)) - .saturating_add(T::DbWeight::get().reads(32)) - .saturating_add(T::DbWeight::get().writes(17)) + // Measured: `42567` + // Estimated: `48507` + // Minimum execution time: 33_592_912_000 picoseconds. + Weight::from_parts(34_625_823_000, 0) + .saturating_add(Weight::from_parts(0, 48507)) + .saturating_add(T::DbWeight::get().reads(31)) + .saturating_add(T::DbWeight::get().writes(15)) } } diff --git a/runtime/polkadot/constants/src/weights/block_weights.rs b/runtime/polkadot/constants/src/weights/block_weights.rs index 4fab42662313..12e92cf2eefa 100644 --- a/runtime/polkadot/constants/src/weights/block_weights.rs +++ b/runtime/polkadot/constants/src/weights/block_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28 (Y/M/D) -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-05-26 (Y/M/D) +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 3_364_185, 3_544_830 - /// Average: 3_427_584 - /// Median: 3_414_329 - /// Std-Dev: 51775.25 + /// Min, Max: 10_268_668, 10_615_349 + /// Average: 10_351_411 + /// Median: 10_334_352 + /// Std-Dev: 65235.93 /// /// Percentiles nanoseconds: - /// 99th: 3_541_964 - /// 95th: 3_517_661 - /// 75th: 3_471_477 + /// 99th: 10_582_089 + /// 95th: 10_458_527 + /// 75th: 10_369_320 pub const BlockExecutionWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(3_427_584), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(10_351_411), 0); } #[cfg(test)] diff --git a/runtime/polkadot/constants/src/weights/extrinsic_weights.rs b/runtime/polkadot/constants/src/weights/extrinsic_weights.rs index d64e12c24476..4c51a2c918de 100644 --- a/runtime/polkadot/constants/src/weights/extrinsic_weights.rs +++ b/runtime/polkadot/constants/src/weights/extrinsic_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28 (Y/M/D) -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-05-26 (Y/M/D) +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 108_938, 111_576 - /// Average: 109_763 - /// Median: 109_696 - /// Std-Dev: 418.12 + /// Min, Max: 106_778, 108_997 + /// Average: 107_648 + /// Median: 107_566 + /// Std-Dev: 356.3 /// /// Percentiles nanoseconds: - /// 99th: 111_301 - /// 95th: 110_411 - /// 75th: 109_904 + /// 99th: 108_865 + /// 95th: 108_344 + /// 75th: 107_744 pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(109_763), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(107_648), 0); } #[cfg(test)] diff --git a/runtime/polkadot/src/weights/frame_benchmarking_baseline.rs b/runtime/polkadot/src/weights/frame_benchmarking_baseline.rs index a54c4034d38d..0edf676236fa 100644 --- a/runtime/polkadot/src/weights/frame_benchmarking_baseline.rs +++ b/runtime/polkadot/src/weights/frame_benchmarking_baseline.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_benchmarking::baseline` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -52,8 +52,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 220_000 picoseconds. - Weight::from_parts(256_996, 0) + // Minimum execution time: 173_000 picoseconds. + Weight::from_parts(207_289, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -61,8 +61,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 205_000 picoseconds. - Weight::from_parts(240_357, 0) + // Minimum execution time: 166_000 picoseconds. + Weight::from_parts(202_031, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -70,8 +70,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 207_000 picoseconds. - Weight::from_parts(244_738, 0) + // Minimum execution time: 158_000 picoseconds. + Weight::from_parts(198_075, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -79,16 +79,16 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 211_000 picoseconds. - Weight::from_parts(240_695, 0) + // Minimum execution time: 169_000 picoseconds. + Weight::from_parts(204_599, 0) .saturating_add(Weight::from_parts(0, 0)) } fn hashing() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 19_444_068_000 picoseconds. - Weight::from_parts(19_558_537_000, 0) + // Minimum execution time: 19_679_600_000 picoseconds. + Weight::from_parts(19_769_646_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 100]`. @@ -96,10 +96,10 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 262_000 picoseconds. - Weight::from_parts(273_000, 0) + // Minimum execution time: 231_000 picoseconds. + Weight::from_parts(242_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 20_680 - .saturating_add(Weight::from_parts(47_310_424, 0).saturating_mul(i.into())) + // Standard Error: 8_664 + .saturating_add(Weight::from_parts(46_990_353, 0).saturating_mul(i.into())) } } diff --git a/runtime/polkadot/src/weights/frame_election_provider_support.rs b/runtime/polkadot/src/weights/frame_election_provider_support.rs index 5f30b19e87b4..46afd35dfa78 100644 --- a/runtime/polkadot/src/weights/frame_election_provider_support.rs +++ b/runtime/polkadot/src/weights/frame_election_provider_support.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_election_provider_support` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -54,13 +54,13 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_502_831_000 picoseconds. - Weight::from_parts(6_551_832_000, 0) + // Minimum execution time: 6_158_701_000 picoseconds. + Weight::from_parts(6_201_339_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 144_812 - .saturating_add(Weight::from_parts(6_023_303, 0).saturating_mul(v.into())) - // Standard Error: 14_805_146 - .saturating_add(Weight::from_parts(1_574_126_847, 0).saturating_mul(d.into())) + // Standard Error: 134_653 + .saturating_add(Weight::from_parts(5_675_928, 0).saturating_mul(v.into())) + // Standard Error: 13_766_537 + .saturating_add(Weight::from_parts(1_476_845_315, 0).saturating_mul(d.into())) } /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. @@ -69,12 +69,12 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_607_599_000 picoseconds. - Weight::from_parts(4_654_269_000, 0) + // Minimum execution time: 4_179_551_000 picoseconds. + Weight::from_parts(4_213_683_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 127_056 - .saturating_add(Weight::from_parts(5_033_933, 0).saturating_mul(v.into())) - // Standard Error: 12_989_780 - .saturating_add(Weight::from_parts(1_468_999_627, 0).saturating_mul(d.into())) + // Standard Error: 107_836 + .saturating_add(Weight::from_parts(4_264_723, 0).saturating_mul(v.into())) + // Standard Error: 11_024_831 + .saturating_add(Weight::from_parts(1_259_185_011, 0).saturating_mul(d.into())) } } diff --git a/runtime/polkadot/src/weights/frame_system.rs b/runtime/polkadot/src/weights/frame_system.rs index 6c4673f6aa5d..268029e884e4 100644 --- a/runtime/polkadot/src/weights/frame_system.rs +++ b/runtime/polkadot/src/weights/frame_system.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -52,22 +52,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_319_000 picoseconds. - Weight::from_parts(2_419_000, 0) + // Minimum execution time: 2_338_000 picoseconds. + Weight::from_parts(2_439_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(366, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(365, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_650_000 picoseconds. - Weight::from_parts(7_790_000, 0) + // Minimum execution time: 7_515_000 picoseconds. + Weight::from_parts(7_584_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_407, 0).saturating_mul(b.into())) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_398, 0).saturating_mul(b.into())) } /// Storage: System Digest (r:1 w:1) /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) @@ -77,14 +77,25 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 4_266_000 picoseconds. - Weight::from_parts(4_536_000, 0) + // Minimum execution time: 4_056_000 picoseconds. + Weight::from_parts(4_235_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a636f6465` (r:0 w:1) + /// Proof Skipped: unknown `0x3a636f6465` (r:0 w:1) fn set_code() -> Weight { - Weight::from_parts(1_000_000, 0) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 82_169_624_000 picoseconds. + Weight::from_parts(85_473_027_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Skipped Metadata (r:0 w:0) /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) @@ -93,11 +104,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_358_000 picoseconds. - Weight::from_parts(2_424_000, 0) + // Minimum execution time: 2_321_000 picoseconds. + Weight::from_parts(2_357_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_974 - .saturating_add(Weight::from_parts(675_819, 0).saturating_mul(i.into())) + // Standard Error: 1_923 + .saturating_add(Weight::from_parts(662_311, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -107,11 +118,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_410_000 picoseconds. - Weight::from_parts(2_455_000, 0) + // Minimum execution time: 2_297_000 picoseconds. + Weight::from_parts(2_367_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 795 - .saturating_add(Weight::from_parts(488_960, 0).saturating_mul(i.into())) + // Standard Error: 743 + .saturating_add(Weight::from_parts(486_141, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -119,13 +130,13 @@ impl frame_system::WeightInfo for WeightInfo { /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `130 + p * (69 ±0)` - // Estimated: `124 + p * (70 ±0)` - // Minimum execution time: 4_148_000 picoseconds. - Weight::from_parts(4_247_000, 0) - .saturating_add(Weight::from_parts(0, 124)) - // Standard Error: 1_054 - .saturating_add(Weight::from_parts(1_011_879, 0).saturating_mul(p.into())) + // Measured: `132 + p * (69 ±0)` + // Estimated: `128 + p * (70 ±0)` + // Minimum execution time: 4_264_000 picoseconds. + Weight::from_parts(4_302_000, 0) + .saturating_add(Weight::from_parts(0, 128)) + // Standard Error: 988 + .saturating_add(Weight::from_parts(1_013_913, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) diff --git a/runtime/polkadot/src/weights/pallet_bags_list.rs b/runtime/polkadot/src/weights/pallet_bags_list.rs index 0281df3c147a..9e975836c77f 100644 --- a/runtime/polkadot/src/weights/pallet_bags_list.rs +++ b/runtime/polkadot/src/weights/pallet_bags_list.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bags_list` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -59,8 +59,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1622` // Estimated: `11506` - // Minimum execution time: 60_997_000 picoseconds. - Weight::from_parts(61_973_000, 0) + // Minimum execution time: 62_340_000 picoseconds. + Weight::from_parts(63_195_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -77,8 +77,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1516` // Estimated: `8877` - // Minimum execution time: 60_122_000 picoseconds. - Weight::from_parts(60_766_000, 0) + // Minimum execution time: 60_800_000 picoseconds. + Weight::from_parts(61_444_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -97,8 +97,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1827` // Estimated: `11506` - // Minimum execution time: 66_549_000 picoseconds. - Weight::from_parts(67_185_000, 0) + // Minimum execution time: 67_340_000 picoseconds. + Weight::from_parts(67_963_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(6)) diff --git a/runtime/polkadot/src/weights/pallet_balances.rs b/runtime/polkadot/src/weights/pallet_balances.rs index d6c1fc031d90..8e9d6116e9b3 100644 --- a/runtime/polkadot/src/weights/pallet_balances.rs +++ b/runtime/polkadot/src/weights/pallet_balances.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 52_657_000 picoseconds. - Weight::from_parts(53_097_000, 0) + // Minimum execution time: 53_000_000 picoseconds. + Weight::from_parts(53_429_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +65,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 40_218_000 picoseconds. - Weight::from_parts(40_535_000, 0) + // Minimum execution time: 40_689_000 picoseconds. + Weight::from_parts(41_144_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -77,8 +77,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 17_287_000 picoseconds. - Weight::from_parts(17_564_000, 0) + // Minimum execution time: 17_042_000 picoseconds. + Weight::from_parts(17_356_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -89,8 +89,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 23_677_000 picoseconds. - Weight::from_parts(24_111_000, 0) + // Minimum execution time: 23_709_000 picoseconds. + Weight::from_parts(24_210_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -101,8 +101,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 54_904_000 picoseconds. - Weight::from_parts(55_547_000, 0) + // Minimum execution time: 55_909_000 picoseconds. + Weight::from_parts(56_463_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -113,8 +113,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 48_881_000 picoseconds. - Weight::from_parts(49_565_000, 0) + // Minimum execution time: 49_143_000 picoseconds. + Weight::from_parts(49_682_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -125,8 +125,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 19_744_000 picoseconds. - Weight::from_parts(20_140_000, 0) + // Minimum execution time: 20_040_000 picoseconds. + Weight::from_parts(20_293_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +138,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (135 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 18_555_000 picoseconds. - Weight::from_parts(18_756_000, 0) + // Minimum execution time: 18_805_000 picoseconds. + Weight::from_parts(18_952_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 9_416 - .saturating_add(Weight::from_parts(13_991_029, 0).saturating_mul(u.into())) + // Standard Error: 10_429 + .saturating_add(Weight::from_parts(14_177_322, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) diff --git a/runtime/polkadot/src/weights/pallet_bounties.rs b/runtime/polkadot/src/weights/pallet_bounties.rs index 11bb76bb23fc..0666702dd712 100644 --- a/runtime/polkadot/src/weights/pallet_bounties.rs +++ b/runtime/polkadot/src/weights/pallet_bounties.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -60,11 +60,11 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `177` // Estimated: `3593` - // Minimum execution time: 29_279_000 picoseconds. - Weight::from_parts(30_382_925, 0) + // Minimum execution time: 29_425_000 picoseconds. + Weight::from_parts(30_250_569, 0) .saturating_add(Weight::from_parts(0, 3593)) - // Standard Error: 8 - .saturating_add(Weight::from_parts(691, 0).saturating_mul(d.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(685, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -76,8 +76,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3642` - // Minimum execution time: 12_010_000 picoseconds. - Weight::from_parts(12_368_000, 0) + // Minimum execution time: 11_967_000 picoseconds. + Weight::from_parts(12_268_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -88,8 +88,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `289` // Estimated: `3642` - // Minimum execution time: 10_776_000 picoseconds. - Weight::from_parts(11_024_000, 0) + // Minimum execution time: 10_716_000 picoseconds. + Weight::from_parts(10_913_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -102,8 +102,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `465` // Estimated: `3642` - // Minimum execution time: 41_067_000 picoseconds. - Weight::from_parts(41_546_000, 0) + // Minimum execution time: 41_451_000 picoseconds. + Weight::from_parts(41_662_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -116,8 +116,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `461` // Estimated: `3642` - // Minimum execution time: 27_969_000 picoseconds. - Weight::from_parts(28_234_000, 0) + // Minimum execution time: 28_082_000 picoseconds. + Weight::from_parts(28_404_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -130,8 +130,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `439` // Estimated: `3642` - // Minimum execution time: 20_120_000 picoseconds. - Weight::from_parts(20_475_000, 0) + // Minimum execution time: 19_885_000 picoseconds. + Weight::from_parts(20_151_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -148,8 +148,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `803` // Estimated: `8799` - // Minimum execution time: 107_855_000 picoseconds. - Weight::from_parts(110_038_000, 0) + // Minimum execution time: 109_282_000 picoseconds. + Weight::from_parts(110_021_000, 0) .saturating_add(Weight::from_parts(0, 8799)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) @@ -166,8 +166,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `483` // Estimated: `3642` - // Minimum execution time: 46_664_000 picoseconds. - Weight::from_parts(47_443_000, 0) + // Minimum execution time: 46_707_000 picoseconds. + Weight::from_parts(47_234_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -184,8 +184,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `719` // Estimated: `6196` - // Minimum execution time: 73_542_000 picoseconds. - Weight::from_parts(74_476_000, 0) + // Minimum execution time: 73_983_000 picoseconds. + Weight::from_parts(74_950_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -196,8 +196,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `325` // Estimated: `3642` - // Minimum execution time: 16_246_000 picoseconds. - Weight::from_parts(16_627_000, 0) + // Minimum execution time: 15_943_000 picoseconds. + Weight::from_parts(16_314_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -213,11 +213,11 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + b * (297 ±0)` // Estimated: `1887 + b * (5206 ±0)` - // Minimum execution time: 5_092_000 picoseconds. - Weight::from_parts(5_261_000, 0) + // Minimum execution time: 5_397_000 picoseconds. + Weight::from_parts(2_177_771, 0) .saturating_add(Weight::from_parts(0, 1887)) - // Standard Error: 18_638 - .saturating_add(Weight::from_parts(38_332_614, 0).saturating_mul(b.into())) + // Standard Error: 17_621 + .saturating_add(Weight::from_parts(38_310_327, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/pallet_child_bounties.rs b/runtime/polkadot/src/weights/pallet_child_bounties.rs index c65fb2f1fac9..5a950763b3a8 100644 --- a/runtime/polkadot/src/weights/pallet_child_bounties.rs +++ b/runtime/polkadot/src/weights/pallet_child_bounties.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_child_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -64,11 +64,11 @@ impl pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` // Estimated: `15762 + m * (1967 ±16) + p * (4332 ±16)` - // Minimum execution time: 18_105_000 picoseconds. - Weight::from_parts(18_362_000, 0) + // Minimum execution time: 17_186_000 picoseconds. + Weight::from_parts(17_523_000, 0) .saturating_add(Weight::from_parts(0, 15762)) - // Standard Error: 50_639 - .saturating_add(Weight::from_parts(5_764_581, 0).saturating_mul(m.into())) - // Standard Error: 50_639 - .saturating_add(Weight::from_parts(8_367_097, 0).saturating_mul(p.into())) + // Standard Error: 41_289 + .saturating_add(Weight::from_parts(4_778_148, 0).saturating_mul(m.into())) + // Standard Error: 41_289 + .saturating_add(Weight::from_parts(7_271_415, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -89,13 +89,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103 + m * (32 ±0)` // Estimated: `1589 + m * (32 ±0)` - // Minimum execution time: 17_064_000 picoseconds. - Weight::from_parts(16_372_545, 0) + // Minimum execution time: 16_611_000 picoseconds. + Weight::from_parts(16_045_877, 0) .saturating_add(Weight::from_parts(0, 1589)) - // Standard Error: 12 - .saturating_add(Weight::from_parts(1_246, 0).saturating_mul(b.into())) - // Standard Error: 131 - .saturating_add(Weight::from_parts(14_737, 0).saturating_mul(m.into())) + // Standard Error: 16 + .saturating_add(Weight::from_parts(1_268, 0).saturating_mul(b.into())) + // Standard Error: 173 + .saturating_add(Weight::from_parts(13_486, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -111,13 +111,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103 + m * (32 ±0)` // Estimated: `3569 + m * (32 ±0)` - // Minimum execution time: 19_498_000 picoseconds. - Weight::from_parts(18_981_232, 0) + // Minimum execution time: 19_380_000 picoseconds. + Weight::from_parts(18_747_503, 0) .saturating_add(Weight::from_parts(0, 3569)) // Standard Error: 16 - .saturating_add(Weight::from_parts(1_261, 0).saturating_mul(b.into())) - // Standard Error: 171 - .saturating_add(Weight::from_parts(24_164, 0).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(1_168, 0).saturating_mul(b.into())) + // Standard Error: 172 + .saturating_add(Weight::from_parts(25_562, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -141,15 +141,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `393 + m * (32 ±0) + p * (36 ±0)` // Estimated: `3785 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 25_693_000 picoseconds. - Weight::from_parts(26_592_160, 0) + // Minimum execution time: 25_368_000 picoseconds. + Weight::from_parts(26_219_123, 0) .saturating_add(Weight::from_parts(0, 3785)) // Standard Error: 47 - .saturating_add(Weight::from_parts(2_253, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(2_235, 0).saturating_mul(b.into())) // Standard Error: 493 - .saturating_add(Weight::from_parts(17_779, 0).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(17_422, 0).saturating_mul(m.into())) // Standard Error: 486 - .saturating_add(Weight::from_parts(120_998, 0).saturating_mul(p.into())) + .saturating_add(Weight::from_parts(122_866, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) @@ -165,11 +165,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `842 + m * (64 ±0)` // Estimated: `4306 + m * (64 ±0)` - // Minimum execution time: 22_660_000 picoseconds. - Weight::from_parts(23_181_772, 0) + // Minimum execution time: 22_475_000 picoseconds. + Weight::from_parts(23_179_966, 0) .saturating_add(Weight::from_parts(0, 4306)) - // Standard Error: 244 - .saturating_add(Weight::from_parts(42_451, 0).saturating_mul(m.into())) + // Standard Error: 228 + .saturating_add(Weight::from_parts(42_468, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -190,13 +190,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `431 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3876 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 27_706_000 picoseconds. - Weight::from_parts(28_699_948, 0) + // Minimum execution time: 27_342_000 picoseconds. + Weight::from_parts(28_499_907, 0) .saturating_add(Weight::from_parts(0, 3876)) - // Standard Error: 381 - .saturating_add(Weight::from_parts(20_159, 0).saturating_mul(m.into())) - // Standard Error: 372 - .saturating_add(Weight::from_parts(125_390, 0).saturating_mul(p.into())) + // Standard Error: 397 + .saturating_add(Weight::from_parts(19_421, 0).saturating_mul(m.into())) + // Standard Error: 387 + .saturating_add(Weight::from_parts(115_483, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -220,13 +220,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `733 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4050 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 39_142_000 picoseconds. - Weight::from_parts(41_004_389, 0) + // Minimum execution time: 38_089_000 picoseconds. + Weight::from_parts(40_502_642, 0) .saturating_add(Weight::from_parts(0, 4050)) // Standard Error: 124 - .saturating_add(Weight::from_parts(2_193, 0).saturating_mul(b.into())) - // Standard Error: 1_286 - .saturating_add(Weight::from_parts(149_681, 0).saturating_mul(p.into())) + .saturating_add(Weight::from_parts(1_913, 0).saturating_mul(b.into())) + // Standard Error: 1_287 + .saturating_add(Weight::from_parts(153_848, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -251,13 +251,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `451 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3896 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 30_207_000 picoseconds. - Weight::from_parts(31_256_970, 0) + // Minimum execution time: 29_829_000 picoseconds. + Weight::from_parts(30_679_156, 0) .saturating_add(Weight::from_parts(0, 3896)) - // Standard Error: 442 - .saturating_add(Weight::from_parts(23_334, 0).saturating_mul(m.into())) - // Standard Error: 431 - .saturating_add(Weight::from_parts(113_851, 0).saturating_mul(p.into())) + // Standard Error: 398 + .saturating_add(Weight::from_parts(24_088, 0).saturating_mul(m.into())) + // Standard Error: 388 + .saturating_add(Weight::from_parts(118_731, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -283,15 +283,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `753 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4070 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 41_316_000 picoseconds. - Weight::from_parts(43_102_295, 0) + // Minimum execution time: 40_206_000 picoseconds. + Weight::from_parts(42_258_627, 0) .saturating_add(Weight::from_parts(0, 4070)) - // Standard Error: 84 - .saturating_add(Weight::from_parts(2_067, 0).saturating_mul(b.into())) - // Standard Error: 888 - .saturating_add(Weight::from_parts(22_342, 0).saturating_mul(m.into())) - // Standard Error: 866 - .saturating_add(Weight::from_parts(144_993, 0).saturating_mul(p.into())) + // Standard Error: 91 + .saturating_add(Weight::from_parts(1_989, 0).saturating_mul(b.into())) + // Standard Error: 967 + .saturating_add(Weight::from_parts(22_435, 0).saturating_mul(m.into())) + // Standard Error: 943 + .saturating_add(Weight::from_parts(150_564, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -310,11 +310,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `260 + p * (32 ±0)` // Estimated: `1745 + p * (32 ±0)` - // Minimum execution time: 15_756_000 picoseconds. - Weight::from_parts(17_829_348, 0) + // Minimum execution time: 15_513_000 picoseconds. + Weight::from_parts(17_526_357, 0) .saturating_add(Weight::from_parts(0, 1745)) - // Standard Error: 423 - .saturating_add(Weight::from_parts(118_832, 0).saturating_mul(p.into())) + // Standard Error: 466 + .saturating_add(Weight::from_parts(110_138, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) diff --git a/runtime/polkadot/src/weights/pallet_collective_technical_committee.rs b/runtime/polkadot/src/weights/pallet_collective_technical_committee.rs index 2eb31db8e05b..4fbae8a49e1a 100644 --- a/runtime/polkadot/src/weights/pallet_collective_technical_committee.rs +++ b/runtime/polkadot/src/weights/pallet_collective_technical_committee.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -64,14 +64,14 @@ impl pallet_collective::WeightInfo for WeightInfo { fn set_members(m: u32, _n: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` - // Estimated: `15800 + m * (1967 ±17) + p * (4332 ±17)` - // Minimum execution time: 18_721_000 picoseconds. - Weight::from_parts(19_028_000, 0) + // Estimated: `15800 + m * (1967 ±16) + p * (4332 ±16)` + // Minimum execution time: 17_784_000 picoseconds. + Weight::from_parts(17_964_000, 0) .saturating_add(Weight::from_parts(0, 15800)) - // Standard Error: 50_804 - .saturating_add(Weight::from_parts(5_780_451, 0).saturating_mul(m.into())) - // Standard Error: 50_804 - .saturating_add(Weight::from_parts(8_424_760, 0).saturating_mul(p.into())) + // Standard Error: 41_455 + .saturating_add(Weight::from_parts(4_806_384, 0).saturating_mul(m.into())) + // Standard Error: 41_455 + .saturating_add(Weight::from_parts(7_352_986, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -89,13 +89,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `141 + m * (32 ±0)` // Estimated: `1627 + m * (32 ±0)` - // Minimum execution time: 17_646_000 picoseconds. - Weight::from_parts(16_865_984, 0) + // Minimum execution time: 17_337_000 picoseconds. + Weight::from_parts(16_771_281, 0) .saturating_add(Weight::from_parts(0, 1627)) - // Standard Error: 10 - .saturating_add(Weight::from_parts(1_244, 0).saturating_mul(b.into())) - // Standard Error: 103 - .saturating_add(Weight::from_parts(13_841, 0).saturating_mul(m.into())) + // Standard Error: 13 + .saturating_add(Weight::from_parts(1_246, 0).saturating_mul(b.into())) + // Standard Error: 134 + .saturating_add(Weight::from_parts(10_771, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -111,13 +111,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `141 + m * (32 ±0)` // Estimated: `3607 + m * (32 ±0)` - // Minimum execution time: 20_717_000 picoseconds. - Weight::from_parts(19_779_901, 0) + // Minimum execution time: 20_183_000 picoseconds. + Weight::from_parts(19_490_643, 0) .saturating_add(Weight::from_parts(0, 3607)) - // Standard Error: 11 - .saturating_add(Weight::from_parts(1_261, 0).saturating_mul(b.into())) - // Standard Error: 120 - .saturating_add(Weight::from_parts(23_852, 0).saturating_mul(m.into())) + // Standard Error: 14 + .saturating_add(Weight::from_parts(1_158, 0).saturating_mul(b.into())) + // Standard Error: 150 + .saturating_add(Weight::from_parts(23_456, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -141,15 +141,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `431 + m * (32 ±0) + p * (36 ±0)` // Estimated: `3823 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 26_732_000 picoseconds. - Weight::from_parts(27_536_729, 0) + // Minimum execution time: 26_350_000 picoseconds. + Weight::from_parts(27_334_953, 0) .saturating_add(Weight::from_parts(0, 3823)) // Standard Error: 48 - .saturating_add(Weight::from_parts(2_241, 0).saturating_mul(b.into())) - // Standard Error: 502 - .saturating_add(Weight::from_parts(18_664, 0).saturating_mul(m.into())) - // Standard Error: 496 - .saturating_add(Weight::from_parts(122_223, 0).saturating_mul(p.into())) + .saturating_add(Weight::from_parts(2_173, 0).saturating_mul(b.into())) + // Standard Error: 504 + .saturating_add(Weight::from_parts(16_328, 0).saturating_mul(m.into())) + // Standard Error: 498 + .saturating_add(Weight::from_parts(123_132, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) @@ -165,11 +165,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `880 + m * (64 ±0)` // Estimated: `4344 + m * (64 ±0)` - // Minimum execution time: 23_520_000 picoseconds. - Weight::from_parts(24_079_603, 0) + // Minimum execution time: 23_362_000 picoseconds. + Weight::from_parts(24_049_731, 0) .saturating_add(Weight::from_parts(0, 4344)) - // Standard Error: 244 - .saturating_add(Weight::from_parts(41_995, 0).saturating_mul(m.into())) + // Standard Error: 287 + .saturating_add(Weight::from_parts(41_518, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -190,13 +190,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3914 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 28_702_000 picoseconds. - Weight::from_parts(29_493_322, 0) + // Minimum execution time: 28_325_000 picoseconds. + Weight::from_parts(29_033_294, 0) .saturating_add(Weight::from_parts(0, 3914)) - // Standard Error: 383 - .saturating_add(Weight::from_parts(20_414, 0).saturating_mul(m.into())) - // Standard Error: 374 - .saturating_add(Weight::from_parts(126_445, 0).saturating_mul(p.into())) + // Standard Error: 388 + .saturating_add(Weight::from_parts(22_203, 0).saturating_mul(m.into())) + // Standard Error: 378 + .saturating_add(Weight::from_parts(117_790, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -220,15 +220,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `771 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4088 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 39_998_000 picoseconds. - Weight::from_parts(41_257_086, 0) + // Minimum execution time: 39_263_000 picoseconds. + Weight::from_parts(40_689_565, 0) .saturating_add(Weight::from_parts(0, 4088)) - // Standard Error: 85 - .saturating_add(Weight::from_parts(2_382, 0).saturating_mul(b.into())) - // Standard Error: 900 - .saturating_add(Weight::from_parts(22_756, 0).saturating_mul(m.into())) - // Standard Error: 878 - .saturating_add(Weight::from_parts(144_630, 0).saturating_mul(p.into())) + // Standard Error: 83 + .saturating_add(Weight::from_parts(2_044, 0).saturating_mul(b.into())) + // Standard Error: 887 + .saturating_add(Weight::from_parts(21_716, 0).saturating_mul(m.into())) + // Standard Error: 864 + .saturating_add(Weight::from_parts(147_844, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -253,13 +253,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `489 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3934 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 31_433_000 picoseconds. - Weight::from_parts(32_149_411, 0) + // Minimum execution time: 30_902_000 picoseconds. + Weight::from_parts(31_411_723, 0) .saturating_add(Weight::from_parts(0, 3934)) - // Standard Error: 380 - .saturating_add(Weight::from_parts(24_126, 0).saturating_mul(m.into())) - // Standard Error: 370 - .saturating_add(Weight::from_parts(114_692, 0).saturating_mul(p.into())) + // Standard Error: 378 + .saturating_add(Weight::from_parts(25_981, 0).saturating_mul(m.into())) + // Standard Error: 368 + .saturating_add(Weight::from_parts(120_072, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -285,15 +285,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `791 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4108 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 42_286_000 picoseconds. - Weight::from_parts(44_064_744, 0) + // Minimum execution time: 41_784_000 picoseconds. + Weight::from_parts(43_758_989, 0) .saturating_add(Weight::from_parts(0, 4108)) - // Standard Error: 81 - .saturating_add(Weight::from_parts(2_039, 0).saturating_mul(b.into())) - // Standard Error: 864 - .saturating_add(Weight::from_parts(22_849, 0).saturating_mul(m.into())) - // Standard Error: 842 - .saturating_add(Weight::from_parts(146_721, 0).saturating_mul(p.into())) + // Standard Error: 94 + .saturating_add(Weight::from_parts(1_529, 0).saturating_mul(b.into())) + // Standard Error: 1_003 + .saturating_add(Weight::from_parts(22_161, 0).saturating_mul(m.into())) + // Standard Error: 977 + .saturating_add(Weight::from_parts(148_817, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -312,11 +312,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `298 + p * (32 ±0)` // Estimated: `1783 + p * (32 ±0)` - // Minimum execution time: 16_739_000 picoseconds. - Weight::from_parts(18_536_999, 0) + // Minimum execution time: 16_192_000 picoseconds. + Weight::from_parts(18_102_877, 0) .saturating_add(Weight::from_parts(0, 1783)) - // Standard Error: 394 - .saturating_add(Weight::from_parts(118_982, 0).saturating_mul(p.into())) + // Standard Error: 435 + .saturating_add(Weight::from_parts(111_478, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) diff --git a/runtime/polkadot/src/weights/pallet_conviction_voting.rs b/runtime/polkadot/src/weights/pallet_conviction_voting.rs index 96a8189a68c3..27750528d4e3 100644 --- a/runtime/polkadot/src/weights/pallet_conviction_voting.rs +++ b/runtime/polkadot/src/weights/pallet_conviction_voting.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_conviction_voting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -61,10 +61,10 @@ impl pallet_conviction_voting::WeightInfo for WeightInf /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn vote_new() -> Weight { // Proof Size summary in bytes: - // Measured: `13517` + // Measured: `13551` // Estimated: `42428` - // Minimum execution time: 117_882_000 picoseconds. - Weight::from_parts(120_344_000, 0) + // Minimum execution time: 114_438_000 picoseconds. + Weight::from_parts(118_111_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -83,10 +83,10 @@ impl pallet_conviction_voting::WeightInfo for WeightInf /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn vote_existing() -> Weight { // Proof Size summary in bytes: - // Measured: `14238` + // Measured: `14272` // Estimated: `83866` - // Minimum execution time: 184_958_000 picoseconds. - Weight::from_parts(187_647_000, 0) + // Minimum execution time: 181_361_000 picoseconds. + Weight::from_parts(184_800_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) @@ -99,10 +99,10 @@ impl pallet_conviction_voting::WeightInfo for WeightInf /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn remove_vote() -> Weight { // Proof Size summary in bytes: - // Measured: `13990` + // Measured: `14024` // Estimated: `83866` - // Minimum execution time: 155_331_000 picoseconds. - Weight::from_parts(157_636_000, 0) + // Minimum execution time: 152_441_000 picoseconds. + Weight::from_parts(155_246_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -113,10 +113,10 @@ impl pallet_conviction_voting::WeightInfo for WeightInf /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) fn remove_other_vote() -> Weight { // Proof Size summary in bytes: - // Measured: `13076` + // Measured: `13110` // Estimated: `30706` - // Minimum execution time: 62_283_000 picoseconds. - Weight::from_parts(64_338_000, 0) + // Minimum execution time: 61_745_000 picoseconds. + Weight::from_parts(63_899_000, 0) .saturating_add(Weight::from_parts(0, 30706)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -136,13 +136,13 @@ impl pallet_conviction_voting::WeightInfo for WeightInf /// The range of component `r` is `[0, 512]`. fn delegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `29712 + r * (365 ±0)` + // Measured: `29746 + r * (365 ±0)` // Estimated: `83866 + r * (3411 ±0)` - // Minimum execution time: 65_590_000 picoseconds. - Weight::from_parts(1_649_043_960, 0) + // Minimum execution time: 65_789_000 picoseconds. + Weight::from_parts(1_603_714_264, 0) .saturating_add(Weight::from_parts(0, 83866)) - // Standard Error: 141_963 - .saturating_add(Weight::from_parts(38_967_560, 0).saturating_mul(r.into())) + // Standard Error: 138_591 + .saturating_add(Weight::from_parts(38_375_668, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(6)) @@ -158,13 +158,13 @@ impl pallet_conviction_voting::WeightInfo for WeightInf /// The range of component `r` is `[0, 512]`. fn undelegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `29627 + r * (365 ±0)` + // Measured: `29661 + r * (365 ±0)` // Estimated: `83866 + r * (3411 ±0)` - // Minimum execution time: 36_990_000 picoseconds. - Weight::from_parts(1_610_127_966, 0) + // Minimum execution time: 36_299_000 picoseconds. + Weight::from_parts(1_572_849_432, 0) .saturating_add(Weight::from_parts(0, 83866)) - // Standard Error: 142_409 - .saturating_add(Weight::from_parts(38_970_685, 0).saturating_mul(r.into())) + // Standard Error: 138_439 + .saturating_add(Weight::from_parts(38_120_454, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -181,10 +181,10 @@ impl pallet_conviction_voting::WeightInfo for WeightInf /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) fn unlock() -> Weight { // Proof Size summary in bytes: - // Measured: `12290` + // Measured: `12323` // Estimated: `30706` - // Minimum execution time: 87_063_000 picoseconds. - Weight::from_parts(89_213_000, 0) + // Minimum execution time: 83_395_000 picoseconds. + Weight::from_parts(85_085_000, 0) .saturating_add(Weight::from_parts(0, 30706)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/polkadot/src/weights/pallet_democracy.rs b/runtime/polkadot/src/weights/pallet_democracy.rs index e5018f0ac633..307e28a76ce4 100644 --- a/runtime/polkadot/src/weights/pallet_democracy.rs +++ b/runtime/polkadot/src/weights/pallet_democracy.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_democracy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -59,8 +59,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4768` // Estimated: `18187` - // Minimum execution time: 39_827_000 picoseconds. - Weight::from_parts(40_802_000, 0) + // Minimum execution time: 39_969_000 picoseconds. + Weight::from_parts(40_494_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -71,8 +71,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3523` // Estimated: `6695` - // Minimum execution time: 36_156_000 picoseconds. - Weight::from_parts(36_813_000, 0) + // Minimum execution time: 36_939_000 picoseconds. + Weight::from_parts(37_265_000, 0) .saturating_add(Weight::from_parts(0, 6695)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -89,8 +89,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3437` // Estimated: `7260` - // Minimum execution time: 49_688_000 picoseconds. - Weight::from_parts(51_423_000, 0) + // Minimum execution time: 49_599_000 picoseconds. + Weight::from_parts(50_098_000, 0) .saturating_add(Weight::from_parts(0, 7260)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -107,8 +107,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3459` // Estimated: `7260` - // Minimum execution time: 53_558_000 picoseconds. - Weight::from_parts(54_220_000, 0) + // Minimum execution time: 54_081_000 picoseconds. + Weight::from_parts(54_745_000, 0) .saturating_add(Weight::from_parts(0, 7260)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -123,8 +123,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `333` // Estimated: `3666` - // Minimum execution time: 26_324_000 picoseconds. - Weight::from_parts(26_836_000, 0) + // Minimum execution time: 26_892_000 picoseconds. + Weight::from_parts(27_432_000, 0) .saturating_add(Weight::from_parts(0, 3666)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -147,8 +147,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `5877` // Estimated: `18187` - // Minimum execution time: 95_439_000 picoseconds. - Weight::from_parts(96_544_000, 0) + // Minimum execution time: 97_902_000 picoseconds. + Weight::from_parts(99_167_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) @@ -161,8 +161,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3383` // Estimated: `6703` - // Minimum execution time: 14_484_000 picoseconds. - Weight::from_parts(24_051_000, 0) + // Minimum execution time: 14_249_000 picoseconds. + Weight::from_parts(14_626_000, 0) .saturating_add(Weight::from_parts(0, 6703)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -173,8 +173,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_881_000 picoseconds. - Weight::from_parts(3_994_000, 0) + // Minimum execution time: 3_658_000 picoseconds. + Weight::from_parts(3_788_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -184,8 +184,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_079_000 picoseconds. - Weight::from_parts(5_082_000, 0) + // Minimum execution time: 3_800_000 picoseconds. + Weight::from_parts(3_879_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -201,8 +201,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `253` // Estimated: `3518` - // Minimum execution time: 30_399_000 picoseconds. - Weight::from_parts(36_576_000, 0) + // Minimum execution time: 27_937_000 picoseconds. + Weight::from_parts(28_655_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(5)) @@ -217,8 +217,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3486` // Estimated: `6703` - // Minimum execution time: 31_672_000 picoseconds. - Weight::from_parts(32_274_000, 0) + // Minimum execution time: 31_874_000 picoseconds. + Weight::from_parts(32_268_000, 0) .saturating_add(Weight::from_parts(0, 6703)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -235,8 +235,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `5788` // Estimated: `18187` - // Minimum execution time: 79_605_000 picoseconds. - Weight::from_parts(80_630_000, 0) + // Minimum execution time: 80_450_000 picoseconds. + Weight::from_parts(81_381_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -249,8 +249,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3518` - // Minimum execution time: 20_412_000 picoseconds. - Weight::from_parts(20_783_000, 0) + // Minimum execution time: 20_593_000 picoseconds. + Weight::from_parts(20_851_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -266,11 +266,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211 + r * (86 ±0)` // Estimated: `1489 + r * (2676 ±0)` - // Minimum execution time: 7_081_000 picoseconds. - Weight::from_parts(9_968_120, 0) + // Minimum execution time: 7_156_000 picoseconds. + Weight::from_parts(9_576_353, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 5_714 - .saturating_add(Weight::from_parts(2_709_011, 0).saturating_mul(r.into())) + // Standard Error: 5_709 + .saturating_add(Weight::from_parts(2_799_949, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -293,11 +293,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211 + r * (86 ±0)` // Estimated: `18187 + r * (2676 ±0)` - // Minimum execution time: 9_889_000 picoseconds. - Weight::from_parts(13_200_286, 0) + // Minimum execution time: 9_906_000 picoseconds. + Weight::from_parts(13_061_330, 0) .saturating_add(Weight::from_parts(0, 18187)) - // Standard Error: 5_377 - .saturating_add(Weight::from_parts(2_705_686, 0).saturating_mul(r.into())) + // Standard Error: 5_952 + .saturating_add(Weight::from_parts(2_771_886, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -316,11 +316,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `797 + r * (108 ±0)` // Estimated: `19800 + r * (2676 ±0)` - // Minimum execution time: 41_791_000 picoseconds. - Weight::from_parts(47_129_704, 0) + // Minimum execution time: 42_956_000 picoseconds. + Weight::from_parts(47_780_848, 0) .saturating_add(Weight::from_parts(0, 19800)) - // Standard Error: 6_402 - .saturating_add(Weight::from_parts(3_797_557, 0).saturating_mul(r.into())) + // Standard Error: 7_212 + .saturating_add(Weight::from_parts(3_945_465, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -336,11 +336,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `460 + r * (108 ±0)` // Estimated: `13530 + r * (2676 ±0)` - // Minimum execution time: 22_069_000 picoseconds. - Weight::from_parts(24_226_189, 0) + // Minimum execution time: 21_954_000 picoseconds. + Weight::from_parts(24_135_267, 0) .saturating_add(Weight::from_parts(0, 13530)) - // Standard Error: 5_828 - .saturating_add(Weight::from_parts(3_775_989, 0).saturating_mul(r.into())) + // Standard Error: 5_688 + .saturating_add(Weight::from_parts(3_878_222, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -353,8 +353,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_814_000 picoseconds. - Weight::from_parts(3_910_000, 0) + // Minimum execution time: 3_638_000 picoseconds. + Weight::from_parts(3_714_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -371,11 +371,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `530` // Estimated: `7260` - // Minimum execution time: 24_899_000 picoseconds. - Weight::from_parts(37_568_442, 0) + // Minimum execution time: 24_889_000 picoseconds. + Weight::from_parts(37_731_123, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 2_831 - .saturating_add(Weight::from_parts(31_779, 0).saturating_mul(r.into())) + // Standard Error: 2_892 + .saturating_add(Weight::from_parts(32_435, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -392,11 +392,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `531 + r * (22 ±0)` // Estimated: `7260` - // Minimum execution time: 34_857_000 picoseconds. - Weight::from_parts(36_245_934, 0) + // Minimum execution time: 34_731_000 picoseconds. + Weight::from_parts(36_377_948, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 939 - .saturating_add(Weight::from_parts(63_316, 0).saturating_mul(r.into())) + // Standard Error: 615 + .saturating_add(Weight::from_parts(58_305, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -409,11 +409,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `695 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 16_805_000 picoseconds. - Weight::from_parts(19_556_970, 0) + // Minimum execution time: 17_027_000 picoseconds. + Weight::from_parts(19_371_582, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 894 - .saturating_add(Weight::from_parts(68_366, 0).saturating_mul(r.into())) + // Standard Error: 841 + .saturating_add(Weight::from_parts(71_562, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -426,11 +426,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `695 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 17_033_000 picoseconds. - Weight::from_parts(19_557_455, 0) + // Minimum execution time: 17_321_000 picoseconds. + Weight::from_parts(19_651_381, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 1_017 - .saturating_add(Weight::from_parts(71_155, 0).saturating_mul(r.into())) + // Standard Error: 967 + .saturating_add(Weight::from_parts(69_768, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -444,8 +444,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `323` // Estimated: `3556` - // Minimum execution time: 18_934_000 picoseconds. - Weight::from_parts(19_221_000, 0) + // Minimum execution time: 18_661_000 picoseconds. + Weight::from_parts(19_210_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -458,8 +458,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `253` // Estimated: `3518` - // Minimum execution time: 17_735_000 picoseconds. - Weight::from_parts(17_881_000, 0) + // Minimum execution time: 17_484_000 picoseconds. + Weight::from_parts(17_885_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -474,8 +474,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4855` // Estimated: `18187` - // Minimum execution time: 33_155_000 picoseconds. - Weight::from_parts(33_602_000, 0) + // Minimum execution time: 33_899_000 picoseconds. + Weight::from_parts(34_327_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -488,8 +488,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4789` // Estimated: `18187` - // Minimum execution time: 31_169_000 picoseconds. - Weight::from_parts(31_657_000, 0) + // Minimum execution time: 31_782_000 picoseconds. + Weight::from_parts(32_184_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -502,8 +502,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 15_513_000 picoseconds. - Weight::from_parts(15_817_000, 0) + // Minimum execution time: 15_414_000 picoseconds. + Weight::from_parts(15_612_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -516,8 +516,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3666` - // Minimum execution time: 19_548_000 picoseconds. - Weight::from_parts(19_730_000, 0) + // Minimum execution time: 19_516_000 picoseconds. + Weight::from_parts(19_764_000, 0) .saturating_add(Weight::from_parts(0, 3666)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/pallet_election_provider_multi_phase.rs b/runtime/polkadot/src/weights/pallet_election_provider_multi_phase.rs index 197f6735c808..6ecd51e37bc4 100644 --- a/runtime/polkadot/src/weights/pallet_election_provider_multi_phase.rs +++ b/runtime/polkadot/src/weights/pallet_election_provider_multi_phase.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_election_provider_multi_phase` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -67,8 +67,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `993` // Estimated: `3481` - // Minimum execution time: 18_521_000 picoseconds. - Weight::from_parts(19_112_000, 0) + // Minimum execution time: 18_813_000 picoseconds. + Weight::from_parts(19_474_000, 0) .saturating_add(Weight::from_parts(0, 3481)) .saturating_add(T::DbWeight::get().reads(8)) } @@ -80,8 +80,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `114` // Estimated: `1599` - // Minimum execution time: 13_405_000 picoseconds. - Weight::from_parts(13_834_000, 0) + // Minimum execution time: 13_578_000 picoseconds. + Weight::from_parts(13_926_000, 0) .saturating_add(Weight::from_parts(0, 1599)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -94,8 +94,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `114` // Estimated: `1599` - // Minimum execution time: 14_598_000 picoseconds. - Weight::from_parts(15_035_000, 0) + // Minimum execution time: 14_776_000 picoseconds. + Weight::from_parts(15_271_000, 0) .saturating_add(Weight::from_parts(0, 1599)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -108,8 +108,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 30_510_000 picoseconds. - Weight::from_parts(31_162_000, 0) + // Minimum execution time: 30_542_000 picoseconds. + Weight::from_parts(31_105_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +120,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 21_632_000 picoseconds. - Weight::from_parts(22_098_000, 0) + // Minimum execution time: 21_163_000 picoseconds. + Weight::from_parts(21_698_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +138,11 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 455_544_000 picoseconds. - Weight::from_parts(470_334_000, 0) + // Minimum execution time: 463_295_000 picoseconds. + Weight::from_parts(475_815_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_558 - .saturating_add(Weight::from_parts(270_771, 0).saturating_mul(v.into())) + // Standard Error: 2_553 + .saturating_add(Weight::from_parts(270_173, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) @@ -171,13 +171,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `338 + a * (768 ±0) + d * (48 ±0)` // Estimated: `3890 + a * (768 ±0) + d * (49 ±0)` - // Minimum execution time: 285_740_000 picoseconds. - Weight::from_parts(63_863_280, 0) + // Minimum execution time: 287_420_000 picoseconds. + Weight::from_parts(67_678_335, 0) .saturating_add(Weight::from_parts(0, 3890)) - // Standard Error: 3_212 - .saturating_add(Weight::from_parts(353_729, 0).saturating_mul(a.into())) - // Standard Error: 4_815 - .saturating_add(Weight::from_parts(155_831, 0).saturating_mul(d.into())) + // Standard Error: 3_162 + .saturating_add(Weight::from_parts(350_650, 0).saturating_mul(a.into())) + // Standard Error: 4_741 + .saturating_add(Weight::from_parts(159_110, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(9)) .saturating_add(Weight::from_parts(0, 768).saturating_mul(a.into())) @@ -199,8 +199,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `1204` // Estimated: `2689` - // Minimum execution time: 47_143_000 picoseconds. - Weight::from_parts(47_590_000, 0) + // Minimum execution time: 47_101_000 picoseconds. + Weight::from_parts(47_656_000, 0) .saturating_add(Weight::from_parts(0, 2689)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -227,13 +227,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `219 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1704 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 5_089_555_000 picoseconds. - Weight::from_parts(5_107_135_000, 0) + // Minimum execution time: 4_961_265_000 picoseconds. + Weight::from_parts(4_997_281_000, 0) .saturating_add(Weight::from_parts(0, 1704)) - // Standard Error: 16_098 - .saturating_add(Weight::from_parts(61_662, 0).saturating_mul(v.into())) - // Standard Error: 47_704 - .saturating_add(Weight::from_parts(4_710_124, 0).saturating_mul(a.into())) + // Standard Error: 17_513 + .saturating_add(Weight::from_parts(103_620, 0).saturating_mul(v.into())) + // Standard Error: 51_900 + .saturating_add(Weight::from_parts(4_434_894, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) @@ -255,13 +255,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `194 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1679 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 4_305_785_000 picoseconds. - Weight::from_parts(4_330_126_000, 0) + // Minimum execution time: 4_183_198_000 picoseconds. + Weight::from_parts(4_206_878_000, 0) .saturating_add(Weight::from_parts(0, 1679)) - // Standard Error: 13_362 - .saturating_add(Weight::from_parts(175_613, 0).saturating_mul(v.into())) - // Standard Error: 39_597 - .saturating_add(Weight::from_parts(3_618_103, 0).saturating_mul(a.into())) + // Standard Error: 13_924 + .saturating_add(Weight::from_parts(262_602, 0).saturating_mul(v.into())) + // Standard Error: 41_264 + .saturating_add(Weight::from_parts(3_073_902, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) .saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into())) diff --git a/runtime/polkadot/src/weights/pallet_elections_phragmen.rs b/runtime/polkadot/src/weights/pallet_elections_phragmen.rs index b69faf54b8d5..376bb2055ade 100644 --- a/runtime/polkadot/src/weights/pallet_elections_phragmen.rs +++ b/runtime/polkadot/src/weights/pallet_elections_phragmen.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_elections_phragmen` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -64,11 +64,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `369 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 31_825_000 picoseconds. - Weight::from_parts(32_558_964, 0) + // Minimum execution time: 31_706_000 picoseconds. + Weight::from_parts(32_421_047, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_386 - .saturating_add(Weight::from_parts(143_977, 0).saturating_mul(v.into())) + // Standard Error: 2_231 + .saturating_add(Weight::from_parts(149_131, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) @@ -90,11 +90,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `337 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 43_824_000 picoseconds. - Weight::from_parts(44_383_391, 0) + // Minimum execution time: 43_692_000 picoseconds. + Weight::from_parts(44_247_574, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_628 - .saturating_add(Weight::from_parts(124_994, 0).saturating_mul(v.into())) + // Standard Error: 2_442 + .saturating_add(Weight::from_parts(145_571, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) @@ -116,11 +116,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `369 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 43_341_000 picoseconds. - Weight::from_parts(44_225_072, 0) + // Minimum execution time: 43_900_000 picoseconds. + Weight::from_parts(44_349_839, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 3_072 - .saturating_add(Weight::from_parts(145_547, 0).saturating_mul(v.into())) + // Standard Error: 2_917 + .saturating_add(Weight::from_parts(150_475, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) @@ -135,8 +135,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `891` // Estimated: `4764` - // Minimum execution time: 44_934_000 picoseconds. - Weight::from_parts(45_453_000, 0) + // Minimum execution time: 44_836_000 picoseconds. + Weight::from_parts(45_631_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -152,11 +152,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `2358 + c * (48 ±0)` // Estimated: `3841 + c * (48 ±0)` - // Minimum execution time: 33_316_000 picoseconds. - Weight::from_parts(26_754_921, 0) + // Minimum execution time: 33_381_000 picoseconds. + Weight::from_parts(26_474_842, 0) .saturating_add(Weight::from_parts(0, 3841)) - // Standard Error: 832 - .saturating_add(Weight::from_parts(81_508, 0).saturating_mul(c.into())) + // Standard Error: 845 + .saturating_add(Weight::from_parts(82_709, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into())) @@ -168,11 +168,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `250 + c * (48 ±0)` // Estimated: `1722 + c * (48 ±0)` - // Minimum execution time: 29_283_000 picoseconds. - Weight::from_parts(22_183_364, 0) + // Minimum execution time: 29_465_000 picoseconds. + Weight::from_parts(22_140_234, 0) .saturating_add(Weight::from_parts(0, 1722)) - // Standard Error: 867 - .saturating_add(Weight::from_parts(58_641, 0).saturating_mul(c.into())) + // Standard Error: 890 + .saturating_add(Weight::from_parts(58_966, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into())) @@ -191,8 +191,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `2599` // Estimated: `4084` - // Minimum execution time: 44_937_000 picoseconds. - Weight::from_parts(45_415_000, 0) + // Minimum execution time: 45_334_000 picoseconds. + Weight::from_parts(45_998_000, 0) .saturating_add(Weight::from_parts(0, 4084)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -203,8 +203,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `1711` // Estimated: `3196` - // Minimum execution time: 30_000_000 picoseconds. - Weight::from_parts(30_349_000, 0) + // Minimum execution time: 30_234_000 picoseconds. + Weight::from_parts(30_790_000, 0) .saturating_add(Weight::from_parts(0, 3196)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -235,8 +235,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `2599` // Estimated: `4084` - // Minimum execution time: 61_659_000 picoseconds. - Weight::from_parts(62_364_000, 0) + // Minimum execution time: 62_917_000 picoseconds. + Weight::from_parts(63_253_000, 0) .saturating_add(Weight::from_parts(0, 4084)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -261,11 +261,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `36028 + v * (808 ±0)` // Estimated: `39768 + v * (3774 ±0)` - // Minimum execution time: 379_929_098_000 picoseconds. - Weight::from_parts(380_420_013_000, 0) + // Minimum execution time: 375_028_005_000 picoseconds. + Weight::from_parts(375_314_106_000, 0) .saturating_add(Weight::from_parts(0, 39768)) - // Standard Error: 320_144 - .saturating_add(Weight::from_parts(45_928_086, 0).saturating_mul(v.into())) + // Standard Error: 314_247 + .saturating_add(Weight::from_parts(45_913_248, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(v.into()))) @@ -296,13 +296,13 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0 + e * (28 ±0) + v * (607 ±0)` // Estimated: `2771984 + c * (2560 ±0) + e * (16 ±0) + v * (2744 ±4)` - // Minimum execution time: 35_385_343_000 picoseconds. - Weight::from_parts(35_541_775_000, 0) + // Minimum execution time: 35_217_823_000 picoseconds. + Weight::from_parts(35_344_318_000, 0) .saturating_add(Weight::from_parts(0, 2771984)) - // Standard Error: 423_410 - .saturating_add(Weight::from_parts(35_052_202, 0).saturating_mul(v.into())) - // Standard Error: 27_171 - .saturating_add(Weight::from_parts(1_847_978, 0).saturating_mul(e.into())) + // Standard Error: 454_138 + .saturating_add(Weight::from_parts(37_389_814, 0).saturating_mul(v.into())) + // Standard Error: 29_143 + .saturating_add(Weight::from_parts(2_031_948, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(269)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) diff --git a/runtime/polkadot/src/weights/pallet_fast_unstake.rs b/runtime/polkadot/src/weights/pallet_fast_unstake.rs index c739e8c0d266..c91925e937ea 100644 --- a/runtime/polkadot/src/weights/pallet_fast_unstake.rs +++ b/runtime/polkadot/src/weights/pallet_fast_unstake.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_fast_unstake` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -80,13 +80,13 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// The range of component `b` is `[1, 16]`. fn on_idle_unstake(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1095 + b * (359 ±0)` - // Estimated: `2580 + b * (3774 ±0)` - // Minimum execution time: 88_536_000 picoseconds. - Weight::from_parts(39_538_656, 0) - .saturating_add(Weight::from_parts(0, 2580)) - // Standard Error: 49_539 - .saturating_add(Weight::from_parts(52_730_598, 0).saturating_mul(b.into())) + // Measured: `1057 + b * (359 ±0)` + // Estimated: `2542 + b * (3774 ±0)` + // Minimum execution time: 87_555_000 picoseconds. + Weight::from_parts(39_559_634, 0) + .saturating_add(Weight::from_parts(0, 2542)) + // Standard Error: 23_290 + .saturating_add(Weight::from_parts(52_065_741, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -111,15 +111,15 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// The range of component `b` is `[1, 16]`. fn on_idle_check(v: u32, b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1449 + b * (48 ±0) + v * (19511 ±0)` - // Estimated: `4764 + b * (52 ±0) + v * (21987 ±0)` - // Minimum execution time: 657_646_000 picoseconds. - Weight::from_parts(659_366_000, 0) - .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 6_117_268 - .saturating_add(Weight::from_parts(204_360_468, 0).saturating_mul(v.into())) - // Standard Error: 98_163_781 - .saturating_add(Weight::from_parts(3_071_752_791, 0).saturating_mul(b.into())) + // Measured: `1411 + b * (48 ±0) + v * (19511 ±0)` + // Estimated: `4726 + b * (52 ±0) + v * (21987 ±0)` + // Minimum execution time: 608_230_000 picoseconds. + Weight::from_parts(610_063_000, 0) + .saturating_add(Weight::from_parts(0, 4726)) + // Standard Error: 5_579_650 + .saturating_add(Weight::from_parts(186_488_816, 0).saturating_mul(v.into())) + // Standard Error: 89_536_624 + .saturating_add(Weight::from_parts(2_799_095_957, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -158,10 +158,10 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn register_fast_unstake() -> Weight { // Proof Size summary in bytes: - // Measured: `1957` + // Measured: `1919` // Estimated: `6248` - // Minimum execution time: 123_278_000 picoseconds. - Weight::from_parts(124_477_000, 0) + // Minimum execution time: 121_694_000 picoseconds. + Weight::from_parts(122_644_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(10)) @@ -178,10 +178,10 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn deregister() -> Weight { // Proof Size summary in bytes: - // Measured: `1156` + // Measured: `1118` // Estimated: `4556` - // Minimum execution time: 44_068_000 picoseconds. - Weight::from_parts(44_654_000, 0) + // Minimum execution time: 40_323_000 picoseconds. + Weight::from_parts(40_980_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -192,8 +192,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_869_000 picoseconds. - Weight::from_parts(2_951_000, 0) + // Minimum execution time: 2_639_000 picoseconds. + Weight::from_parts(2_727_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/pallet_identity.rs b/runtime/polkadot/src/weights/pallet_identity.rs index a23abac47417..a249cf352caa 100644 --- a/runtime/polkadot/src/weights/pallet_identity.rs +++ b/runtime/polkadot/src/weights/pallet_identity.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_identity` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 12_686_000 picoseconds. - Weight::from_parts(13_052_226, 0) + // Minimum execution time: 12_229_000 picoseconds. + Weight::from_parts(12_744_845, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_167 - .saturating_add(Weight::from_parts(97_940, 0).saturating_mul(r.into())) + // Standard Error: 1_380 + .saturating_add(Weight::from_parts(86_209, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -70,13 +70,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `442 + r * (5 ±0)` // Estimated: `11003` - // Minimum execution time: 33_186_000 picoseconds. - Weight::from_parts(32_479_661, 0) + // Minimum execution time: 31_533_000 picoseconds. + Weight::from_parts(30_833_956, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_395 - .saturating_add(Weight::from_parts(83_659, 0).saturating_mul(r.into())) - // Standard Error: 467 - .saturating_add(Weight::from_parts(544_183, 0).saturating_mul(x.into())) + // Standard Error: 2_017 + .saturating_add(Weight::from_parts(87_620, 0).saturating_mul(r.into())) + // Standard Error: 393 + .saturating_add(Weight::from_parts(482_950, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -91,11 +91,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `101` // Estimated: `11003 + s * (2589 ±0)` - // Minimum execution time: 9_741_000 picoseconds. - Weight::from_parts(25_386_530, 0) + // Minimum execution time: 9_272_000 picoseconds. + Weight::from_parts(24_481_419, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 4_486 - .saturating_add(Weight::from_parts(2_820_170, 0).saturating_mul(s.into())) + // Standard Error: 3_799 + .saturating_add(Weight::from_parts(2_675_450, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -113,11 +113,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `194 + p * (32 ±0)` // Estimated: `11003` - // Minimum execution time: 9_622_000 picoseconds. - Weight::from_parts(24_423_161, 0) + // Minimum execution time: 9_158_000 picoseconds. + Weight::from_parts(23_481_724, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_453 - .saturating_add(Weight::from_parts(1_114_128, 0).saturating_mul(p.into())) + // Standard Error: 3_312 + .saturating_add(Weight::from_parts(1_092_186, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) @@ -131,19 +131,17 @@ impl pallet_identity::WeightInfo for WeightInfo { /// The range of component `r` is `[1, 20]`. /// The range of component `s` is `[0, 100]`. /// The range of component `x` is `[0, 100]`. - fn clear_identity(r: u32, s: u32, x: u32, ) -> Weight { + fn clear_identity(_r: u32, s: u32, x: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 60_036_000 picoseconds. - Weight::from_parts(33_493_868, 0) + // Minimum execution time: 53_080_000 picoseconds. + Weight::from_parts(35_602_916, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_382 - .saturating_add(Weight::from_parts(31_402, 0).saturating_mul(r.into())) - // Standard Error: 660 - .saturating_add(Weight::from_parts(1_106_779, 0).saturating_mul(s.into())) - // Standard Error: 660 - .saturating_add(Weight::from_parts(284_973, 0).saturating_mul(x.into())) + // Standard Error: 1_142 + .saturating_add(Weight::from_parts(1_067_579, 0).saturating_mul(s.into())) + // Standard Error: 1_142 + .saturating_add(Weight::from_parts(211_184, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -158,13 +156,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `367 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 33_718_000 picoseconds. - Weight::from_parts(31_668_057, 0) + // Minimum execution time: 32_409_000 picoseconds. + Weight::from_parts(30_960_637, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_367 - .saturating_add(Weight::from_parts(143_558, 0).saturating_mul(r.into())) - // Standard Error: 657 - .saturating_add(Weight::from_parts(581_936, 0).saturating_mul(x.into())) + // Standard Error: 2_064 + .saturating_add(Weight::from_parts(106_641, 0).saturating_mul(r.into())) + // Standard Error: 402 + .saturating_add(Weight::from_parts(460_794, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -176,13 +174,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `398 + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 30_636_000 picoseconds. - Weight::from_parts(28_459_721, 0) + // Minimum execution time: 29_501_000 picoseconds. + Weight::from_parts(28_430_413, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 4_832 - .saturating_add(Weight::from_parts(159_732, 0).saturating_mul(r.into())) - // Standard Error: 942 - .saturating_add(Weight::from_parts(579_476, 0).saturating_mul(x.into())) + // Standard Error: 2_020 + .saturating_add(Weight::from_parts(93_506, 0).saturating_mul(r.into())) + // Standard Error: 394 + .saturating_add(Weight::from_parts(455_040, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +191,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 8_125_000 picoseconds. - Weight::from_parts(8_553_625, 0) + // Minimum execution time: 7_917_000 picoseconds. + Weight::from_parts(8_240_842, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_583 - .saturating_add(Weight::from_parts(73_536, 0).saturating_mul(r.into())) + // Standard Error: 1_592 + .saturating_add(Weight::from_parts(71_347, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +206,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_763_000 picoseconds. - Weight::from_parts(8_346_342, 0) + // Minimum execution time: 7_627_000 picoseconds. + Weight::from_parts(8_060_936, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_201 - .saturating_add(Weight::from_parts(91_842, 0).saturating_mul(r.into())) + // Standard Error: 1_211 + .saturating_add(Weight::from_parts(87_495, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -223,11 +221,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_723_000 picoseconds. - Weight::from_parts(8_204_849, 0) + // Minimum execution time: 7_388_000 picoseconds. + Weight::from_parts(7_927_305, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_108 - .saturating_add(Weight::from_parts(92_461, 0).saturating_mul(r.into())) + // Standard Error: 1_105 + .saturating_add(Weight::from_parts(87_992, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -241,13 +239,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `445 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 24_350_000 picoseconds. - Weight::from_parts(23_720_163, 0) + // Minimum execution time: 22_942_000 picoseconds. + Weight::from_parts(21_999_919, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_320 - .saturating_add(Weight::from_parts(104_731, 0).saturating_mul(r.into())) - // Standard Error: 614 - .saturating_add(Weight::from_parts(921_017, 0).saturating_mul(x.into())) + // Standard Error: 2_753 + .saturating_add(Weight::from_parts(107_980, 0).saturating_mul(r.into())) + // Standard Error: 509 + .saturating_add(Weight::from_parts(725_935, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -266,15 +264,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 75_976_000 picoseconds. - Weight::from_parts(50_310_663, 0) + // Minimum execution time: 68_738_000 picoseconds. + Weight::from_parts(48_699_208, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 4_806 - .saturating_add(Weight::from_parts(31_739, 0).saturating_mul(r.into())) - // Standard Error: 938 - .saturating_add(Weight::from_parts(1_112_105, 0).saturating_mul(s.into())) - // Standard Error: 938 - .saturating_add(Weight::from_parts(283_478, 0).saturating_mul(x.into())) + // Standard Error: 4_128 + .saturating_add(Weight::from_parts(48_305, 0).saturating_mul(r.into())) + // Standard Error: 806 + .saturating_add(Weight::from_parts(1_081_373, 0).saturating_mul(s.into())) + // Standard Error: 806 + .saturating_add(Weight::from_parts(231_012, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -290,11 +288,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `475 + s * (36 ±0)` // Estimated: `11003` - // Minimum execution time: 29_386_000 picoseconds. - Weight::from_parts(34_499_738, 0) + // Minimum execution time: 28_514_000 picoseconds. + Weight::from_parts(33_283_015, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_335 - .saturating_add(Weight::from_parts(61_675, 0).saturating_mul(s.into())) + // Standard Error: 1_317 + .saturating_add(Weight::from_parts(65_007, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -307,11 +305,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + s * (3 ±0)` // Estimated: `11003` - // Minimum execution time: 13_272_000 picoseconds. - Weight::from_parts(15_231_473, 0) + // Minimum execution time: 12_584_000 picoseconds. + Weight::from_parts(14_577_186, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 495 - .saturating_add(Weight::from_parts(17_738, 0).saturating_mul(s.into())) + // Standard Error: 521 + .saturating_add(Weight::from_parts(17_810, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -326,11 +324,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `638 + s * (35 ±0)` // Estimated: `11003` - // Minimum execution time: 33_170_000 picoseconds. - Weight::from_parts(36_126_492, 0) + // Minimum execution time: 31_911_000 picoseconds. + Weight::from_parts(35_242_463, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 862 - .saturating_add(Weight::from_parts(51_776, 0).saturating_mul(s.into())) + // Standard Error: 889 + .saturating_add(Weight::from_parts(50_404, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -345,11 +343,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704 + s * (37 ±0)` // Estimated: `6723` - // Minimum execution time: 25_599_000 picoseconds. - Weight::from_parts(28_122_044, 0) + // Minimum execution time: 24_508_000 picoseconds. + Weight::from_parts(27_259_946, 0) .saturating_add(Weight::from_parts(0, 6723)) - // Standard Error: 899 - .saturating_add(Weight::from_parts(56_791, 0).saturating_mul(s.into())) + // Standard Error: 965 + .saturating_add(Weight::from_parts(55_903, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/polkadot/src/weights/pallet_im_online.rs b/runtime/polkadot/src/weights/pallet_im_online.rs index 79e0eab4b650..b4b980b12692 100644 --- a/runtime/polkadot/src/weights/pallet_im_online.rs +++ b/runtime/polkadot/src/weights/pallet_im_online.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_im_online` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -63,13 +63,13 @@ impl pallet_im_online::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361 + k * (32 ±0)` // Estimated: `10024497 + e * (35 ±0) + k * (32 ±0)` - // Minimum execution time: 91_960_000 picoseconds. - Weight::from_parts(74_913_324, 0) + // Minimum execution time: 92_822_000 picoseconds. + Weight::from_parts(72_049_970, 0) .saturating_add(Weight::from_parts(0, 10024497)) - // Standard Error: 296 - .saturating_add(Weight::from_parts(21_668, 0).saturating_mul(k.into())) - // Standard Error: 2_988 - .saturating_add(Weight::from_parts(385_610, 0).saturating_mul(e.into())) + // Standard Error: 302 + .saturating_add(Weight::from_parts(25_047, 0).saturating_mul(k.into())) + // Standard Error: 3_048 + .saturating_add(Weight::from_parts(394_650, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 35).saturating_mul(e.into())) diff --git a/runtime/polkadot/src/weights/pallet_indices.rs b/runtime/polkadot/src/weights/pallet_indices.rs index 128357ab47d7..394548484d84 100644 --- a/runtime/polkadot/src/weights/pallet_indices.rs +++ b/runtime/polkadot/src/weights/pallet_indices.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_indices` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3534` - // Minimum execution time: 24_185_000 picoseconds. - Weight::from_parts(24_493_000, 0) + // Minimum execution time: 24_095_000 picoseconds. + Weight::from_parts(24_752_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -67,8 +67,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 34_784_000 picoseconds. - Weight::from_parts(35_261_000, 0) + // Minimum execution time: 34_727_000 picoseconds. + Weight::from_parts(34_980_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +79,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 24_962_000 picoseconds. - Weight::from_parts(25_545_000, 0) + // Minimum execution time: 24_804_000 picoseconds. + Weight::from_parts(25_326_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +93,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 28_608_000 picoseconds. - Weight::from_parts(28_930_000, 0) + // Minimum execution time: 28_140_000 picoseconds. + Weight::from_parts(28_875_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -105,8 +105,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 27_007_000 picoseconds. - Weight::from_parts(27_375_000, 0) + // Minimum execution time: 27_095_000 picoseconds. + Weight::from_parts(27_430_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/pallet_membership.rs b/runtime/polkadot/src/weights/pallet_membership.rs index a0ea556607eb..d5c201118852 100644 --- a/runtime/polkadot/src/weights/pallet_membership.rs +++ b/runtime/polkadot/src/weights/pallet_membership.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_membership` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -60,11 +60,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 16_839_000 picoseconds. - Weight::from_parts(17_630_628, 0) + // Minimum execution time: 16_961_000 picoseconds. + Weight::from_parts(17_939_571, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 389 - .saturating_add(Weight::from_parts(31_632, 0).saturating_mul(m.into())) + // Standard Error: 355 + .saturating_add(Weight::from_parts(31_707, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -84,11 +84,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_331_000 picoseconds. - Weight::from_parts(20_104_574, 0) + // Minimum execution time: 19_563_000 picoseconds. + Weight::from_parts(20_539_883, 0) .saturating_add(Weight::from_parts(0, 4687)) // Standard Error: 295 - .saturating_add(Weight::from_parts(33_088, 0).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(32_574, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -108,11 +108,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_606_000 picoseconds. - Weight::from_parts(20_218_095, 0) + // Minimum execution time: 19_741_000 picoseconds. + Weight::from_parts(20_531_136, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 392 - .saturating_add(Weight::from_parts(46_991, 0).saturating_mul(m.into())) + // Standard Error: 349 + .saturating_add(Weight::from_parts(46_173, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -132,11 +132,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 18_795_000 picoseconds. - Weight::from_parts(20_317_393, 0) + // Minimum execution time: 19_040_000 picoseconds. + Weight::from_parts(20_627_014, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 600 - .saturating_add(Weight::from_parts(159_109, 0).saturating_mul(m.into())) + // Standard Error: 681 + .saturating_add(Weight::from_parts(153_739, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -156,11 +156,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_759_000 picoseconds. - Weight::from_parts(20_536_622, 0) + // Minimum execution time: 20_125_000 picoseconds. + Weight::from_parts(21_100_082, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 655 - .saturating_add(Weight::from_parts(48_956, 0).saturating_mul(m.into())) + // Standard Error: 448 + .saturating_add(Weight::from_parts(43_556, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -176,11 +176,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + m * (32 ±0)` // Estimated: `4687 + m * (32 ±0)` - // Minimum execution time: 7_856_000 picoseconds. - Weight::from_parts(8_296_058, 0) + // Minimum execution time: 7_903_000 picoseconds. + Weight::from_parts(8_340_087, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 226 - .saturating_add(Weight::from_parts(9_854, 0).saturating_mul(m.into())) + // Standard Error: 186 + .saturating_add(Weight::from_parts(9_908, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) @@ -190,13 +190,15 @@ impl pallet_membership::WeightInfo for WeightInfo { /// Storage: TechnicalCommittee Prime (r:0 w:1) /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `m` is `[1, 100]`. - fn clear_prime(_m: u32, ) -> Weight { + fn clear_prime(m: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_305_000 picoseconds. - Weight::from_parts(3_771_688, 0) + // Minimum execution time: 3_167_000 picoseconds. + Weight::from_parts(3_341_677, 0) .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 63 + .saturating_add(Weight::from_parts(671, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().writes(2)) } } diff --git a/runtime/polkadot/src/weights/pallet_message_queue.rs b/runtime/polkadot/src/weights/pallet_message_queue.rs index 6800b2294406..73e3905e237d 100644 --- a/runtime/polkadot/src/weights/pallet_message_queue.rs +++ b/runtime/polkadot/src/weights/pallet_message_queue.rs @@ -1,4 +1,4 @@ -// Copyright 2017-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Polkadot. // Polkadot is free software: you can redistribute it and/or modify @@ -13,164 +13,184 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . + //! Autogenerated weights for `pallet_message_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-02-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: -// ./target/release/polkadot +// ./target/production/polkadot // benchmark // pallet -// --chain=dev +// --chain=polkadot-dev // --steps=50 // --repeat=20 -// --pallet=pallet-message-queue +// --pallet=pallet_message_queue // --extrinsic=* -// --heap-pages=4096 -// --header=file_header.txt -// --output -// runtime/polkadot/src/weights/pallet_message_queue.rs +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); impl pallet_message_queue::WeightInfo for WeightInfo { /// Storage: MessageQueue ServiceHead (r:1 w:0) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn ready_ring_knit() -> Weight { // Proof Size summary in bytes: - // Measured: `837` - // Estimated: `5554` - // Minimum execution time: 5_631 nanoseconds. - Weight::from_parts(6_182_000, 0) - .saturating_add(Weight::from_parts(0, 5554)) + // Measured: `248` + // Estimated: `6050` + // Minimum execution time: 12_074_000 picoseconds. + Weight::from_parts(12_337_000, 0) + .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) fn ready_ring_unknit() -> Weight { // Proof Size summary in bytes: - // Measured: `837` - // Estimated: `5554` - // Minimum execution time: 5_515 nanoseconds. - Weight::from_parts(5_775_000, 0) - .saturating_add(Weight::from_parts(0, 5554)) + // Measured: `248` + // Estimated: `6050` + // Minimum execution time: 11_253_000 picoseconds. + Weight::from_parts(11_498_000, 0) + .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn service_queue_base() -> Weight { // Proof Size summary in bytes: - // Measured: `576` - // Estimated: `2527` - // Minimum execution time: 2_098 nanoseconds. - Weight::from_parts(2_265_000, 0) - .saturating_add(Weight::from_parts(0, 2527)) + // Measured: `42` + // Estimated: `3520` + // Minimum execution time: 4_962_000 picoseconds. + Weight::from_parts(5_157_000, 0) + .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) fn service_page_base_completion() -> Weight { // Proof Size summary in bytes: - // Measured: `648` - // Estimated: `68060` - // Minimum execution time: 3_194 nanoseconds. - Weight::from_parts(3_436_000, 0) - .saturating_add(Weight::from_parts(0, 68060)) + // Measured: `115` + // Estimated: `69051` + // Minimum execution time: 6_660_000 picoseconds. + Weight::from_parts(6_834_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) fn service_page_base_no_completion() -> Weight { // Proof Size summary in bytes: - // Measured: `648` - // Estimated: `68060` - // Minimum execution time: 3_409 nanoseconds. - Weight::from_parts(3_673_000, 0) - .saturating_add(Weight::from_parts(0, 68060)) + // Measured: `115` + // Estimated: `69051` + // Minimum execution time: 6_860_000 picoseconds. + Weight::from_parts(7_155_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } fn service_page_item() -> Weight { // Proof Size summary in bytes: - // Measured: `971` + // Measured: `0` // Estimated: `0` - // Minimum execution time: 49_243 nanoseconds. - Weight::from_parts(50_380_000, 0) + // Minimum execution time: 73_820_000 picoseconds. + Weight::from_parts(74_172_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) /// Storage: MessageQueue BookStateFor (r:1 w:0) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn bump_service_head() -> Weight { // Proof Size summary in bytes: - // Measured: `712` - // Estimated: `3027` - // Minimum execution time: 3_744 nanoseconds. - Weight::from_parts(3_922_000, 0) - .saturating_add(Weight::from_parts(0, 3027)) + // Measured: `149` + // Estimated: `3520` + // Minimum execution time: 7_046_000 picoseconds. + Weight::from_parts(7_251_000, 0) + .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn reap_page() -> Weight { // Proof Size summary in bytes: - // Measured: `66859` - // Estimated: `70587` - // Minimum execution time: 28_995 nanoseconds. - Weight::from_parts(30_370_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `66030` + // Estimated: `69051` + // Minimum execution time: 61_912_000 picoseconds. + Weight::from_parts(62_581_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn execute_overweight_page_removed() -> Weight { // Proof Size summary in bytes: - // Measured: `66859` - // Estimated: `70587` - // Minimum execution time: 76_268 nanoseconds. - Weight::from_parts(77_933_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `66030` + // Estimated: `69051` + // Minimum execution time: 76_893_000 picoseconds. + Weight::from_parts(77_488_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn execute_overweight_page_updated() -> Weight { // Proof Size summary in bytes: - // Measured: `66859` - // Estimated: `70587` - // Minimum execution time: 78_029 nanoseconds. - Weight::from_parts(80_632_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `66030` + // Estimated: `69051` + // Minimum execution time: 112_004_000 picoseconds. + Weight::from_parts(112_752_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) } } diff --git a/runtime/polkadot/src/weights/pallet_multisig.rs b/runtime/polkadot/src/weights/pallet_multisig.rs index 49de99c2f90d..32b6cab8f329 100644 --- a/runtime/polkadot/src/weights/pallet_multisig.rs +++ b/runtime/polkadot/src/weights/pallet_multisig.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -52,11 +52,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_001_000 picoseconds. - Weight::from_parts(12_342_681, 0) + // Minimum execution time: 11_058_000 picoseconds. + Weight::from_parts(11_564_289, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(501, 0).saturating_mul(z.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(488, 0).saturating_mul(z.into())) } /// Storage: Multisig Multisigs (r:1 w:1) /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) @@ -66,13 +66,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `267 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 39_904_000 picoseconds. - Weight::from_parts(34_408_264, 0) + // Minimum execution time: 39_928_000 picoseconds. + Weight::from_parts(34_737_567, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 406 - .saturating_add(Weight::from_parts(62_083, 0).saturating_mul(s.into())) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_215, 0).saturating_mul(z.into())) + // Standard Error: 469 + .saturating_add(Weight::from_parts(58_566, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_198, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -84,11 +84,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `286` // Estimated: `6811` - // Minimum execution time: 26_822_000 picoseconds. - Weight::from_parts(21_737_670, 0) + // Minimum execution time: 26_462_000 picoseconds. + Weight::from_parts(21_434_542, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 276 - .saturating_add(Weight::from_parts(57_969, 0).saturating_mul(s.into())) + // Standard Error: 296 + .saturating_add(Weight::from_parts(57_155, 0).saturating_mul(s.into())) // Standard Error: 2 .saturating_add(Weight::from_parts(1_160, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) @@ -104,13 +104,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `392 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 45_125_000 picoseconds. - Weight::from_parts(38_768_978, 0) + // Minimum execution time: 44_962_000 picoseconds. + Weight::from_parts(38_088_189, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 454 - .saturating_add(Weight::from_parts(72_002, 0).saturating_mul(s.into())) - // Standard Error: 4 - .saturating_add(Weight::from_parts(1_196, 0).saturating_mul(z.into())) + // Standard Error: 335 + .saturating_add(Weight::from_parts(73_724, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_219, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -121,11 +121,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `267 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 32_490_000 picoseconds. - Weight::from_parts(33_370_536, 0) + // Minimum execution time: 32_351_000 picoseconds. + Weight::from_parts(33_189_114, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_271 - .saturating_add(Weight::from_parts(64_688, 0).saturating_mul(s.into())) + // Standard Error: 516 + .saturating_add(Weight::from_parts(62_294, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -136,11 +136,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `286` // Estimated: `6811` - // Minimum execution time: 19_468_000 picoseconds. - Weight::from_parts(19_951_066, 0) + // Minimum execution time: 19_166_000 picoseconds. + Weight::from_parts(19_662_638, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 329 - .saturating_add(Weight::from_parts(59_498, 0).saturating_mul(s.into())) + // Standard Error: 349 + .saturating_add(Weight::from_parts(57_216, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -151,11 +151,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `458 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 33_449_000 picoseconds. - Weight::from_parts(34_150_024, 0) + // Minimum execution time: 33_762_000 picoseconds. + Weight::from_parts(34_937_206, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 515 - .saturating_add(Weight::from_parts(63_867, 0).saturating_mul(s.into())) + // Standard Error: 1_405 + .saturating_add(Weight::from_parts(51_968, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/pallet_nomination_pools.rs b/runtime/polkadot/src/weights/pallet_nomination_pools.rs index 0f4cc38b248f..d326154ca8d9 100644 --- a/runtime/polkadot/src/weights/pallet_nomination_pools.rs +++ b/runtime/polkadot/src/weights/pallet_nomination_pools.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_nomination_pools` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -81,8 +81,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3195` // Estimated: `8877` - // Minimum execution time: 178_309_000 picoseconds. - Weight::from_parts(179_641_000, 0) + // Minimum execution time: 177_761_000 picoseconds. + Weight::from_parts(178_787_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(19)) .saturating_add(T::DbWeight::get().writes(12)) @@ -113,8 +113,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3205` // Estimated: `8877` - // Minimum execution time: 175_666_000 picoseconds. - Weight::from_parts(176_990_000, 0) + // Minimum execution time: 175_137_000 picoseconds. + Weight::from_parts(176_638_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(12)) @@ -147,8 +147,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3152` // Estimated: `8799` - // Minimum execution time: 201_507_000 picoseconds. - Weight::from_parts(203_718_000, 0) + // Minimum execution time: 200_546_000 picoseconds. + Weight::from_parts(202_664_000, 0) .saturating_add(Weight::from_parts(0, 8799)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(12)) @@ -169,8 +169,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1137` // Estimated: `4182` - // Minimum execution time: 76_474_000 picoseconds. - Weight::from_parts(77_278_000, 0) + // Minimum execution time: 76_397_000 picoseconds. + Weight::from_parts(77_315_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -211,8 +211,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3475` // Estimated: `8877` - // Minimum execution time: 162_111_000 picoseconds. - Weight::from_parts(163_349_000, 0) + // Minimum execution time: 160_159_000 picoseconds. + Weight::from_parts(160_858_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(20)) .saturating_add(T::DbWeight::get().writes(13)) @@ -234,11 +234,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1580` // Estimated: `4764` - // Minimum execution time: 61_466_000 picoseconds. - Weight::from_parts(62_786_066, 0) + // Minimum execution time: 60_675_000 picoseconds. + Weight::from_parts(62_107_238, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 620 - .saturating_add(Weight::from_parts(8_791, 0).saturating_mul(s.into())) + // Standard Error: 439 + .saturating_add(Weight::from_parts(10_343, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -269,11 +269,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `2008` // Estimated: `4764` - // Minimum execution time: 125_403_000 picoseconds. - Weight::from_parts(127_091_357, 0) + // Minimum execution time: 124_898_000 picoseconds. + Weight::from_parts(126_198_233, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 803 - .saturating_add(Weight::from_parts(21_067, 0).saturating_mul(s.into())) + // Standard Error: 584 + .saturating_add(Weight::from_parts(14_605, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) } @@ -326,8 +326,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `2364` // Estimated: `6196` - // Minimum execution time: 208_207_000 picoseconds. - Weight::from_parts(210_990_743, 0) + // Minimum execution time: 207_911_000 picoseconds. + Weight::from_parts(211_605_442, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(21)) .saturating_add(T::DbWeight::get().writes(18)) @@ -380,8 +380,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1188` // Estimated: `6196` - // Minimum execution time: 180_431_000 picoseconds. - Weight::from_parts(181_573_000, 0) + // Minimum execution time: 182_491_000 picoseconds. + Weight::from_parts(183_487_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(22)) .saturating_add(T::DbWeight::get().writes(15)) @@ -415,11 +415,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1745` // Estimated: `4556 + n * (2520 ±0)` - // Minimum execution time: 67_090_000 picoseconds. - Weight::from_parts(66_755_425, 0) + // Minimum execution time: 66_449_000 picoseconds. + Weight::from_parts(66_082_796, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 3_916 - .saturating_add(Weight::from_parts(1_387_994, 0).saturating_mul(n.into())) + // Standard Error: 3_327 + .saturating_add(Weight::from_parts(1_317_796, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -435,8 +435,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1333` // Estimated: `4556` - // Minimum execution time: 33_965_000 picoseconds. - Weight::from_parts(34_483_000, 0) + // Minimum execution time: 34_005_000 picoseconds. + Weight::from_parts(34_450_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -452,11 +452,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3735` - // Minimum execution time: 15_127_000 picoseconds. - Weight::from_parts(15_608_961, 0) + // Minimum execution time: 14_776_000 picoseconds. + Weight::from_parts(15_295_730, 0) .saturating_add(Weight::from_parts(0, 3735)) - // Standard Error: 66 - .saturating_add(Weight::from_parts(1_301, 0).saturating_mul(n.into())) + // Standard Error: 52 + .saturating_add(Weight::from_parts(951, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -476,8 +476,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_484_000 picoseconds. - Weight::from_parts(6_662_000, 0) + // Minimum execution time: 5_991_000 picoseconds. + Weight::from_parts(6_257_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -487,8 +487,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3685` - // Minimum execution time: 20_891_000 picoseconds. - Weight::from_parts(21_010_000, 0) + // Minimum execution time: 20_320_000 picoseconds. + Weight::from_parts(20_722_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -515,8 +515,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1908` // Estimated: `4556` - // Minimum execution time: 65_130_000 picoseconds. - Weight::from_parts(65_774_000, 0) + // Minimum execution time: 64_798_000 picoseconds. + Weight::from_parts(65_322_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -533,8 +533,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `736` // Estimated: `3685` - // Minimum execution time: 33_051_000 picoseconds. - Weight::from_parts(33_416_000, 0) + // Minimum execution time: 32_728_000 picoseconds. + Weight::from_parts(33_032_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -545,8 +545,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `537` // Estimated: `3685` - // Minimum execution time: 19_540_000 picoseconds. - Weight::from_parts(20_028_000, 0) + // Minimum execution time: 19_240_000 picoseconds. + Weight::from_parts(19_591_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -557,8 +557,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3685` - // Minimum execution time: 20_459_000 picoseconds. - Weight::from_parts(20_960_000, 0) + // Minimum execution time: 20_175_000 picoseconds. + Weight::from_parts(20_382_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -571,8 +571,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `508` // Estimated: `4182` - // Minimum execution time: 15_522_000 picoseconds. - Weight::from_parts(15_789_000, 0) + // Minimum execution time: 15_206_000 picoseconds. + Weight::from_parts(15_421_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -589,8 +589,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `934` // Estimated: `3685` - // Minimum execution time: 60_545_000 picoseconds. - Weight::from_parts(61_127_000, 0) + // Minimum execution time: 60_497_000 picoseconds. + Weight::from_parts(61_151_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/runtime/polkadot/src/weights/pallet_preimage.rs b/runtime/polkadot/src/weights/pallet_preimage.rs index 3008689c2374..78b00a7e1e5f 100644 --- a/runtime/polkadot/src/weights/pallet_preimage.rs +++ b/runtime/polkadot/src/weights/pallet_preimage.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -56,11 +56,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `143` // Estimated: `3556` - // Minimum execution time: 29_965_000 picoseconds. - Weight::from_parts(30_292_000, 0) + // Minimum execution time: 30_119_000 picoseconds. + Weight::from_parts(30_347_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_972, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_964, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -73,11 +73,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 17_381_000 picoseconds. - Weight::from_parts(17_538_000, 0) + // Minimum execution time: 16_928_000 picoseconds. + Weight::from_parts(17_129_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_973, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_961, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -90,11 +90,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 16_555_000 picoseconds. - Weight::from_parts(16_819_000, 0) + // Minimum execution time: 15_851_000 picoseconds. + Weight::from_parts(16_116_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_995, 0).saturating_mul(s.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_962, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -106,8 +106,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `289` // Estimated: `3556` - // Minimum execution time: 38_599_000 picoseconds. - Weight::from_parts(39_657_000, 0) + // Minimum execution time: 37_514_000 picoseconds. + Weight::from_parts(39_179_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +120,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 23_987_000 picoseconds. - Weight::from_parts(25_330_000, 0) + // Minimum execution time: 22_039_000 picoseconds. + Weight::from_parts(22_942_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -132,8 +132,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `188` // Estimated: `3556` - // Minimum execution time: 20_782_000 picoseconds. - Weight::from_parts(21_380_000, 0) + // Minimum execution time: 19_198_000 picoseconds. + Weight::from_parts(20_332_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -144,8 +144,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 14_203_000 picoseconds. - Weight::from_parts(14_802_000, 0) + // Minimum execution time: 12_209_000 picoseconds. + Weight::from_parts(12_816_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -156,8 +156,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `3556` - // Minimum execution time: 14_532_000 picoseconds. - Weight::from_parts(15_179_000, 0) + // Minimum execution time: 12_973_000 picoseconds. + Weight::from_parts(13_637_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -168,8 +168,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 9_519_000 picoseconds. - Weight::from_parts(9_763_000, 0) + // Minimum execution time: 8_868_000 picoseconds. + Weight::from_parts(9_225_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -182,8 +182,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 22_338_000 picoseconds. - Weight::from_parts(23_418_000, 0) + // Minimum execution time: 20_366_000 picoseconds. + Weight::from_parts(21_310_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -194,8 +194,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 9_214_000 picoseconds. - Weight::from_parts(9_623_000, 0) + // Minimum execution time: 8_635_000 picoseconds. + Weight::from_parts(8_876_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -206,8 +206,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 9_601_000 picoseconds. - Weight::from_parts(9_822_000, 0) + // Minimum execution time: 8_564_000 picoseconds. + Weight::from_parts(8_867_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/pallet_proxy.rs b/runtime/polkadot/src/weights/pallet_proxy.rs index 493c6f1d5b60..669a4c72efb4 100644 --- a/runtime/polkadot/src/weights/pallet_proxy.rs +++ b/runtime/polkadot/src/weights/pallet_proxy.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 16_101_000 picoseconds. - Weight::from_parts(16_515_678, 0) + // Minimum execution time: 15_336_000 picoseconds. + Weight::from_parts(15_677_653, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 794 - .saturating_add(Weight::from_parts(37_136, 0).saturating_mul(p.into())) + // Standard Error: 663 + .saturating_add(Weight::from_parts(33_059, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: Proxy Proxies (r:1 w:0) @@ -73,13 +73,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `554 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 37_576_000 picoseconds. - Weight::from_parts(37_525_253, 0) + // Minimum execution time: 36_949_000 picoseconds. + Weight::from_parts(36_836_707, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_394 - .saturating_add(Weight::from_parts(137_999, 0).saturating_mul(a.into())) - // Standard Error: 1_441 - .saturating_add(Weight::from_parts(23_449, 0).saturating_mul(p.into())) + // Standard Error: 1_370 + .saturating_add(Weight::from_parts(139_402, 0).saturating_mul(a.into())) + // Standard Error: 1_415 + .saturating_add(Weight::from_parts(27_014, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -93,11 +93,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_275_000 picoseconds. - Weight::from_parts(24_979_776, 0) + // Minimum execution time: 24_025_000 picoseconds. + Weight::from_parts(25_085_970, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_149 - .saturating_add(Weight::from_parts(136_848, 0).saturating_mul(a.into())) + // Standard Error: 1_065 + .saturating_add(Weight::from_parts(130_776, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -111,11 +111,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_242_000 picoseconds. - Weight::from_parts(25_030_927, 0) + // Minimum execution time: 23_914_000 picoseconds. + Weight::from_parts(25_024_528, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_180 - .saturating_add(Weight::from_parts(135_561, 0).saturating_mul(a.into())) + // Standard Error: 1_122 + .saturating_add(Weight::from_parts(133_086, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -131,13 +131,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `486 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 33_395_000 picoseconds. - Weight::from_parts(33_142_225, 0) + // Minimum execution time: 33_224_000 picoseconds. + Weight::from_parts(33_639_508, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_104 - .saturating_add(Weight::from_parts(148_838, 0).saturating_mul(a.into())) - // Standard Error: 1_140 - .saturating_add(Weight::from_parts(31_693, 0).saturating_mul(p.into())) + // Standard Error: 2_259 + .saturating_add(Weight::from_parts(127_252, 0).saturating_mul(a.into())) + // Standard Error: 2_334 + .saturating_add(Weight::from_parts(20_829, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -148,11 +148,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_951_000 picoseconds. - Weight::from_parts(25_414_045, 0) + // Minimum execution time: 24_479_000 picoseconds. + Weight::from_parts(25_372_515, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 834 - .saturating_add(Weight::from_parts(59_343, 0).saturating_mul(p.into())) + // Standard Error: 976 + .saturating_add(Weight::from_parts(54_028, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -163,11 +163,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_659_000 picoseconds. - Weight::from_parts(25_596_226, 0) + // Minimum execution time: 24_855_000 picoseconds. + Weight::from_parts(25_879_863, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_444 - .saturating_add(Weight::from_parts(60_861, 0).saturating_mul(p.into())) + // Standard Error: 2_495 + .saturating_add(Weight::from_parts(53_539, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -178,11 +178,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 22_230_000 picoseconds. - Weight::from_parts(22_169_168, 0) + // Minimum execution time: 21_980_000 picoseconds. + Weight::from_parts(22_569_152, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 9_592 - .saturating_add(Weight::from_parts(85_245, 0).saturating_mul(p.into())) + // Standard Error: 865 + .saturating_add(Weight::from_parts(27_100, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +193,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `4706` - // Minimum execution time: 26_832_000 picoseconds. - Weight::from_parts(27_849_531, 0) + // Minimum execution time: 26_516_000 picoseconds. + Weight::from_parts(27_059_750, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 7_211 - .saturating_add(Weight::from_parts(13_085, 0).saturating_mul(p.into())) + // Standard Error: 743 + .saturating_add(Weight::from_parts(10_840, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +208,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `264 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 23_046_000 picoseconds. - Weight::from_parts(23_666_725, 0) + // Minimum execution time: 22_843_000 picoseconds. + Weight::from_parts(23_496_760, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 840 - .saturating_add(Weight::from_parts(30_315, 0).saturating_mul(p.into())) + // Standard Error: 668 + .saturating_add(Weight::from_parts(29_564, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/pallet_referenda.rs b/runtime/polkadot/src/weights/pallet_referenda.rs index 469433b17dbc..b57460a4dc69 100644 --- a/runtime/polkadot/src/weights/pallet_referenda.rs +++ b/runtime/polkadot/src/weights/pallet_referenda.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -55,10 +55,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) fn submit() -> Weight { // Proof Size summary in bytes: - // Measured: `258` + // Measured: `291` // Estimated: `42428` - // Minimum execution time: 40_492_000 picoseconds. - Weight::from_parts(41_242_000, 0) + // Minimum execution time: 40_270_000 picoseconds. + Weight::from_parts(40_759_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) @@ -69,10 +69,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_preparing() -> Weight { // Proof Size summary in bytes: - // Measured: `511` + // Measured: `544` // Estimated: `83866` - // Minimum execution time: 52_228_000 picoseconds. - Weight::from_parts(52_663_000, 0) + // Minimum execution time: 51_786_000 picoseconds. + Weight::from_parts(52_344_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -83,15 +83,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: Scheduler Agenda (r:1 w:1) + /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3107` - // Estimated: `5477` - // Minimum execution time: 47_524_000 picoseconds. - Weight::from_parts(47_888_000, 0) - .saturating_add(Weight::from_parts(0, 5477)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `3331` + // Estimated: `42428` + // Minimum execution time: 60_191_000 picoseconds. + Weight::from_parts(61_033_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) @@ -99,15 +101,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: Scheduler Agenda (r:1 w:1) + /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3127` - // Estimated: `5477` - // Minimum execution time: 47_223_000 picoseconds. - Weight::from_parts(47_762_000, 0) - .saturating_add(Weight::from_parts(0, 5477)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `3351` + // Estimated: `42428` + // Minimum execution time: 60_037_000 picoseconds. + Weight::from_parts(60_745_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) @@ -119,10 +123,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `511` + // Measured: `544` // Estimated: `83866` - // Minimum execution time: 62_475_000 picoseconds. - Weight::from_parts(63_577_000, 0) + // Minimum execution time: 62_358_000 picoseconds. + Weight::from_parts(63_007_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -133,24 +137,26 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: Balances InactiveIssuance (r:1 w:0) /// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: Scheduler Agenda (r:2 w:2) + /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn place_decision_deposit_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `418` - // Estimated: `4401` - // Minimum execution time: 41_823_000 picoseconds. - Weight::from_parts(42_291_000, 0) - .saturating_add(Weight::from_parts(0, 4401)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `544` + // Estimated: `83866` + // Minimum execution time: 61_443_000 picoseconds. + Weight::from_parts(62_121_000, 0) + .saturating_add(Weight::from_parts(0, 83866)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) fn refund_decision_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `351` + // Measured: `384` // Estimated: `4401` - // Minimum execution time: 31_300_000 picoseconds. - Weight::from_parts(31_694_000, 0) + // Minimum execution time: 30_518_000 picoseconds. + Weight::from_parts(30_877_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -159,10 +165,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) fn refund_submission_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `341` + // Measured: `374` // Estimated: `4401` - // Minimum execution time: 30_829_000 picoseconds. - Weight::from_parts(31_385_000, 0) + // Minimum execution time: 30_439_000 picoseconds. + Weight::from_parts(30_898_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -173,10 +179,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn cancel() -> Weight { // Proof Size summary in bytes: - // Measured: `419` + // Measured: `452` // Estimated: `83866` - // Minimum execution time: 39_038_000 picoseconds. - Weight::from_parts(39_493_000, 0) + // Minimum execution time: 38_311_000 picoseconds. + Weight::from_parts(38_772_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -189,10 +195,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) fn kill() -> Weight { // Proof Size summary in bytes: - // Measured: `660` + // Measured: `693` // Estimated: `83866` - // Minimum execution time: 99_148_000 picoseconds. - Weight::from_parts(99_945_000, 0) + // Minimum execution time: 98_273_000 picoseconds. + Weight::from_parts(99_232_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -203,10 +209,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) fn one_fewer_deciding_queue_empty() -> Weight { // Proof Size summary in bytes: - // Measured: `174` + // Measured: `207` // Estimated: `5477` - // Minimum execution time: 9_857_000 picoseconds. - Weight::from_parts(10_060_000, 0) + // Minimum execution time: 9_503_000 picoseconds. + Weight::from_parts(9_707_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -217,17 +223,17 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) /// Storage: Balances InactiveIssuance (r:1 w:0) /// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) + /// Storage: Scheduler Agenda (r:1 w:1) /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn one_fewer_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `3877` - // Estimated: `83866` - // Minimum execution time: 108_983_000 picoseconds. - Weight::from_parts(109_674_000, 0) - .saturating_add(Weight::from_parts(0, 83866)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) + // Measured: `3221` + // Estimated: `42428` + // Minimum execution time: 44_039_000 picoseconds. + Weight::from_parts(44_580_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) @@ -235,49 +241,45 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) /// Storage: Balances InactiveIssuance (r:1 w:0) /// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) + /// Storage: Scheduler Agenda (r:1 w:1) /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn one_fewer_deciding_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `3877` - // Estimated: `83866` - // Minimum execution time: 111_651_000 picoseconds. - Weight::from_parts(112_150_000, 0) - .saturating_add(Weight::from_parts(0, 83866)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) + // Measured: `3221` + // Estimated: `42428` + // Minimum execution time: 46_392_000 picoseconds. + Weight::from_parts(47_042_000, 0) + .saturating_add(Weight::from_parts(0, 42428)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) + /// Storage: Referenda ReferendumInfoFor (r:1 w:0) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_requeued_insertion() -> Weight { // Proof Size summary in bytes: - // Measured: `3895` - // Estimated: `42428` - // Minimum execution time: 58_706_000 picoseconds. - Weight::from_parts(59_075_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `3044` + // Estimated: `5477` + // Minimum execution time: 19_629_000 picoseconds. + Weight::from_parts(19_992_000, 0) + .saturating_add(Weight::from_parts(0, 5477)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) + /// Storage: Referenda ReferendumInfoFor (r:1 w:0) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_requeued_slide() -> Weight { // Proof Size summary in bytes: - // Measured: `3895` - // Estimated: `42428` - // Minimum execution time: 58_178_000 picoseconds. - Weight::from_parts(59_016_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `3044` + // Estimated: `5477` + // Minimum execution time: 19_523_000 picoseconds. + Weight::from_parts(19_916_000, 0) + .saturating_add(Weight::from_parts(0, 5477)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) @@ -285,16 +287,14 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3869` - // Estimated: `42428` - // Minimum execution time: 60_717_000 picoseconds. - Weight::from_parts(61_235_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `3048` + // Estimated: `5477` + // Minimum execution time: 24_190_000 picoseconds. + Weight::from_parts(24_524_000, 0) + .saturating_add(Weight::from_parts(0, 5477)) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) @@ -303,16 +303,14 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) /// Storage: Referenda TrackQueue (r:1 w:1) /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:0) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3889` - // Estimated: `42428` - // Minimum execution time: 60_100_000 picoseconds. - Weight::from_parts(60_772_000, 0) - .saturating_add(Weight::from_parts(0, 42428)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `3068` + // Estimated: `5477` + // Minimum execution time: 23_911_000 picoseconds. + Weight::from_parts(24_264_000, 0) + .saturating_add(Weight::from_parts(0, 5477)) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Referenda ReferendumInfoFor (r:1 w:1) @@ -321,10 +319,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_no_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `371` + // Measured: `404` // Estimated: `42428` - // Minimum execution time: 26_329_000 picoseconds. - Weight::from_parts(26_670_000, 0) + // Minimum execution time: 25_600_000 picoseconds. + Weight::from_parts(26_011_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -335,10 +333,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_preparing() -> Weight { // Proof Size summary in bytes: - // Measured: `419` + // Measured: `452` // Estimated: `42428` - // Minimum execution time: 26_902_000 picoseconds. - Weight::from_parts(27_151_000, 0) + // Minimum execution time: 25_959_000 picoseconds. + Weight::from_parts(26_277_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -347,10 +345,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen) fn nudge_referendum_timed_out() -> Weight { // Proof Size summary in bytes: - // Measured: `278` + // Measured: `311` // Estimated: `4401` - // Minimum execution time: 18_461_000 picoseconds. - Weight::from_parts(18_646_000, 0) + // Minimum execution time: 17_654_000 picoseconds. + Weight::from_parts(17_886_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -365,10 +363,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_begin_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `419` + // Measured: `452` // Estimated: `42428` - // Minimum execution time: 36_446_000 picoseconds. - Weight::from_parts(36_714_000, 0) + // Minimum execution time: 35_251_000 picoseconds. + Weight::from_parts(35_709_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -383,10 +381,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_begin_deciding_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `419` + // Measured: `452` // Estimated: `42428` - // Minimum execution time: 38_361_000 picoseconds. - Weight::from_parts(38_745_000, 0) + // Minimum execution time: 37_334_000 picoseconds. + Weight::from_parts(37_625_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -399,10 +397,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_begin_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `472` + // Measured: `505` // Estimated: `42428` - // Minimum execution time: 31_495_000 picoseconds. - Weight::from_parts(31_677_000, 0) + // Minimum execution time: 30_728_000 picoseconds. + Weight::from_parts(31_178_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -415,10 +413,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_end_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `455` + // Measured: `488` // Estimated: `42428` - // Minimum execution time: 32_112_000 picoseconds. - Weight::from_parts(32_616_000, 0) + // Minimum execution time: 31_411_000 picoseconds. + Weight::from_parts(31_672_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -431,10 +429,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_continue_not_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `472` + // Measured: `505` // Estimated: `42428` - // Minimum execution time: 29_866_000 picoseconds. - Weight::from_parts(30_155_000, 0) + // Minimum execution time: 28_828_000 picoseconds. + Weight::from_parts(29_108_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -447,10 +445,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_continue_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `476` + // Measured: `509` // Estimated: `42428` - // Minimum execution time: 28_575_000 picoseconds. - Weight::from_parts(28_967_000, 0) + // Minimum execution time: 27_377_000 picoseconds. + Weight::from_parts(27_868_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -465,10 +463,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Lookup (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) fn nudge_referendum_approved() -> Weight { // Proof Size summary in bytes: - // Measured: `476` + // Measured: `509` // Estimated: `83866` - // Minimum execution time: 43_590_000 picoseconds. - Weight::from_parts(43_932_000, 0) + // Minimum execution time: 42_303_000 picoseconds. + Weight::from_parts(42_647_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -481,10 +479,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) fn nudge_referendum_rejected() -> Weight { // Proof Size summary in bytes: - // Measured: `472` + // Measured: `505` // Estimated: `42428` - // Minimum execution time: 31_730_000 picoseconds. - Weight::from_parts(32_179_000, 0) + // Minimum execution time: 30_819_000 picoseconds. + Weight::from_parts(31_121_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -497,10 +495,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) fn set_some_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `422` + // Measured: `455` // Estimated: `4401` - // Minimum execution time: 21_380_000 picoseconds. - Weight::from_parts(21_710_000, 0) + // Minimum execution time: 20_928_000 picoseconds. + Weight::from_parts(21_267_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -511,10 +509,10 @@ impl pallet_referenda::WeightInfo for WeightInfo { /// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) fn clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `355` + // Measured: `388` // Estimated: `4401` - // Minimum execution time: 19_134_000 picoseconds. - Weight::from_parts(19_371_000, 0) + // Minimum execution time: 18_504_000 picoseconds. + Weight::from_parts(18_786_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/pallet_scheduler.rs b/runtime/polkadot/src/weights/pallet_scheduler.rs index 08981a7317d9..86781625b8c0 100644 --- a/runtime/polkadot/src/weights/pallet_scheduler.rs +++ b/runtime/polkadot/src/weights/pallet_scheduler.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69` // Estimated: `1489` - // Minimum execution time: 4_695_000 picoseconds. - Weight::from_parts(4_920_000, 0) + // Minimum execution time: 4_734_000 picoseconds. + Weight::from_parts(4_891_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -66,11 +66,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 4_357_000 picoseconds. - Weight::from_parts(7_348_573, 0) + // Minimum execution time: 4_314_000 picoseconds. + Weight::from_parts(7_219_952, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_877 - .saturating_add(Weight::from_parts(773_084, 0).saturating_mul(s.into())) + // Standard Error: 1_750 + .saturating_add(Weight::from_parts(766_246, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -78,8 +78,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_710_000 picoseconds. - Weight::from_parts(5_868_000, 0) + // Minimum execution time: 5_551_000 picoseconds. + Weight::from_parts(5_646_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Preimage PreimageFor (r:1 w:1) @@ -91,11 +91,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `179 + s * (1 ±0)` // Estimated: `3644 + s * (1 ±0)` - // Minimum execution time: 19_848_000 picoseconds. - Weight::from_parts(20_259_000, 0) + // Minimum execution time: 19_818_000 picoseconds. + Weight::from_parts(20_032_000, 0) .saturating_add(Weight::from_parts(0, 3644)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_226, 0).saturating_mul(s.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(1_196, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -106,8 +106,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_370_000 picoseconds. - Weight::from_parts(7_653_000, 0) + // Minimum execution time: 7_035_000 picoseconds. + Weight::from_parts(7_221_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -115,24 +115,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_803_000 picoseconds. - Weight::from_parts(5_873_000, 0) + // Minimum execution time: 5_526_000 picoseconds. + Weight::from_parts(5_715_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_signed() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_939_000 picoseconds. - Weight::from_parts(3_021_000, 0) + // Minimum execution time: 2_681_000 picoseconds. + Weight::from_parts(2_766_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_995_000 picoseconds. - Weight::from_parts(3_113_000, 0) + // Minimum execution time: 2_685_000 picoseconds. + Weight::from_parts(2_757_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Scheduler Agenda (r:1 w:1) @@ -142,11 +142,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 14_757_000 picoseconds. - Weight::from_parts(17_631_074, 0) + // Minimum execution time: 14_047_000 picoseconds. + Weight::from_parts(17_123_845, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_677 - .saturating_add(Weight::from_parts(766_111, 0).saturating_mul(s.into())) + // Standard Error: 1_745 + .saturating_add(Weight::from_parts(758_104, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -159,11 +159,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 18_761_000 picoseconds. - Weight::from_parts(18_420_116, 0) + // Minimum execution time: 18_262_000 picoseconds. + Weight::from_parts(17_759_914, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_666 - .saturating_add(Weight::from_parts(1_354_670, 0).saturating_mul(s.into())) + // Standard Error: 1_494 + .saturating_add(Weight::from_parts(1_344_457, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -176,11 +176,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `293 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 17_835_000 picoseconds. - Weight::from_parts(21_777_505, 0) + // Minimum execution time: 17_031_000 picoseconds. + Weight::from_parts(20_862_184, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_594 - .saturating_add(Weight::from_parts(798_907, 0).saturating_mul(s.into())) + // Standard Error: 2_677 + .saturating_add(Weight::from_parts(796_797, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -193,11 +193,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `319 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 20_134_000 picoseconds. - Weight::from_parts(20_484_577, 0) + // Minimum execution time: 19_549_000 picoseconds. + Weight::from_parts(19_969_458, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_048 - .saturating_add(Weight::from_parts(1_381_001, 0).saturating_mul(s.into())) + // Standard Error: 1_851 + .saturating_add(Weight::from_parts(1_370_751, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/polkadot/src/weights/pallet_session.rs b/runtime/polkadot/src/weights/pallet_session.rs index 410a80a553a0..f716f6b94ca0 100644 --- a/runtime/polkadot/src/weights/pallet_session.rs +++ b/runtime/polkadot/src/weights/pallet_session.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -55,11 +55,11 @@ impl pallet_session::WeightInfo for WeightInfo { /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn set_keys() -> Weight { // Proof Size summary in bytes: - // Measured: `1887` - // Estimated: `17727` - // Minimum execution time: 51_984_000 picoseconds. - Weight::from_parts(52_729_000, 0) - .saturating_add(Weight::from_parts(0, 17727)) + // Measured: `1920` + // Estimated: `17760` + // Minimum execution time: 51_982_000 picoseconds. + Weight::from_parts(52_833_000, 0) + .saturating_add(Weight::from_parts(0, 17760)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -71,11 +71,11 @@ impl pallet_session::WeightInfo for WeightInfo { /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn purge_keys() -> Weight { // Proof Size summary in bytes: - // Measured: `1751` - // Estimated: `5216` - // Minimum execution time: 36_903_000 picoseconds. - Weight::from_parts(37_094_000, 0) - .saturating_add(Weight::from_parts(0, 5216)) + // Measured: `1784` + // Estimated: `5249` + // Minimum execution time: 36_941_000 picoseconds. + Weight::from_parts(37_343_000, 0) + .saturating_add(Weight::from_parts(0, 5249)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(7)) } diff --git a/runtime/polkadot/src/weights/pallet_staking.rs b/runtime/polkadot/src/weights/pallet_staking.rs index 59c90ebae076..5be7a65bf45b 100644 --- a/runtime/polkadot/src/weights/pallet_staking.rs +++ b/runtime/polkadot/src/weights/pallet_staking.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_staking` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -63,8 +63,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `980` // Estimated: `4764` - // Minimum execution time: 52_010_000 picoseconds. - Weight::from_parts(52_752_000, 0) + // Minimum execution time: 50_783_000 picoseconds. + Weight::from_parts(51_442_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -85,8 +85,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1925` // Estimated: `8877` - // Minimum execution time: 91_059_000 picoseconds. - Weight::from_parts(92_365_000, 0) + // Minimum execution time: 90_814_000 picoseconds. + Weight::from_parts(91_868_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -103,8 +103,6 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: VoterList ListNodes (r:3 w:3) /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) /// Storage: Staking Bonded (r:1 w:0) @@ -115,11 +113,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2132` // Estimated: `8877` - // Minimum execution time: 93_831_000 picoseconds. - Weight::from_parts(94_426_000, 0) + // Minimum execution time: 93_702_000 picoseconds. + Weight::from_parts(94_684_000, 0) .saturating_add(Weight::from_parts(0, 8877)) - .saturating_add(T::DbWeight::get().reads(13)) - .saturating_add(T::DbWeight::get().writes(8)) + .saturating_add(T::DbWeight::get().reads(12)) + .saturating_add(T::DbWeight::get().writes(7)) } /// Storage: Staking Ledger (r:1 w:1) /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) @@ -129,20 +127,18 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `s` is `[0, 100]`. fn withdraw_unbonded_update(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `947` // Estimated: `4764` - // Minimum execution time: 41_721_000 picoseconds. - Weight::from_parts(43_112_571, 0) + // Minimum execution time: 41_115_000 picoseconds. + Weight::from_parts(42_487_956, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 464 - .saturating_add(Weight::from_parts(14_271, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(3)) + // Standard Error: 449 + .saturating_add(Weight::from_parts(13_969, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Staking Ledger (r:1 w:1) /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) @@ -164,8 +160,6 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) /// Storage: VoterList CounterForListNodes (r:1 w:1) /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: Balances Locks (r:1 w:1) /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) @@ -179,13 +173,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2185 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 89_336_000 picoseconds. - Weight::from_parts(94_303_687, 0) + // Minimum execution time: 89_286_000 picoseconds. + Weight::from_parts(94_449_901, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 2_133 - .saturating_add(Weight::from_parts(1_180_035, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(14)) - .saturating_add(T::DbWeight::get().writes(12)) + // Standard Error: 2_413 + .saturating_add(Weight::from_parts(1_190_158, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(13)) + .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) .saturating_add(Weight::from_parts(0, 4).saturating_mul(s.into())) } @@ -215,8 +209,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1309` // Estimated: `4556` - // Minimum execution time: 57_760_000 picoseconds. - Weight::from_parts(58_346_000, 0) + // Minimum execution time: 56_383_000 picoseconds. + Weight::from_parts(57_065_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(5)) @@ -228,13 +222,13 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `k` is `[1, 128]`. fn kick(k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1189 + k * (569 ±0)` + // Measured: `1214 + k * (569 ±0)` // Estimated: `4556 + k * (3033 ±0)` - // Minimum execution time: 26_925_000 picoseconds. - Weight::from_parts(28_877_570, 0) + // Minimum execution time: 26_181_000 picoseconds. + Weight::from_parts(27_761_581, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 9_414 - .saturating_add(Weight::from_parts(7_831_056, 0).saturating_mul(k.into())) + // Standard Error: 6_622 + .saturating_add(Weight::from_parts(7_777_934, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -265,13 +259,13 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `n` is `[1, 16]`. fn nominate(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1785 + n * (105 ±0)` + // Measured: `1805 + n * (102 ±0)` // Estimated: `6248 + n * (2520 ±0)` - // Minimum execution time: 65_045_000 picoseconds. - Weight::from_parts(62_728_766, 0) + // Minimum execution time: 64_691_000 picoseconds. + Weight::from_parts(61_948_806, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 13_477 - .saturating_add(Weight::from_parts(3_227_358, 0).saturating_mul(n.into())) + // Standard Error: 9_772 + .saturating_add(Weight::from_parts(3_173_549, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(6)) @@ -295,8 +289,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1639` // Estimated: `6248` - // Minimum execution time: 57_516_000 picoseconds. - Weight::from_parts(58_267_000, 0) + // Minimum execution time: 57_506_000 picoseconds. + Weight::from_parts(58_752_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -309,8 +303,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `737` // Estimated: `4556` - // Minimum execution time: 15_359_000 picoseconds. - Weight::from_parts(15_597_000, 0) + // Minimum execution time: 14_938_000 picoseconds. + Weight::from_parts(15_280_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -323,8 +317,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `836` // Estimated: `8122` - // Minimum execution time: 22_712_000 picoseconds. - Weight::from_parts(23_129_000, 0) + // Minimum execution time: 21_012_000 picoseconds. + Weight::from_parts(21_346_000, 0) .saturating_add(Weight::from_parts(0, 8122)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -335,8 +329,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_332_000 picoseconds. - Weight::from_parts(3_512_000, 0) + // Minimum execution time: 3_065_000 picoseconds. + Weight::from_parts(3_251_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -346,8 +340,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_616_000 picoseconds. - Weight::from_parts(12_026_000, 0) + // Minimum execution time: 11_351_000 picoseconds. + Weight::from_parts(11_618_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -357,8 +351,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_822_000 picoseconds. - Weight::from_parts(12_443_000, 0) + // Minimum execution time: 11_249_000 picoseconds. + Weight::from_parts(11_622_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -368,8 +362,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_503_000 picoseconds. - Weight::from_parts(11_975_000, 0) + // Minimum execution time: 11_359_000 picoseconds. + Weight::from_parts(11_685_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -380,11 +374,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_552_000 picoseconds. - Weight::from_parts(3_810_393, 0) + // Minimum execution time: 3_336_000 picoseconds. + Weight::from_parts(3_570_362, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 25 - .saturating_add(Weight::from_parts(12_048, 0).saturating_mul(v.into())) + // Standard Error: 18 + .saturating_add(Weight::from_parts(11_680, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Staking Bonded (r:1 w:1) @@ -420,11 +414,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1911 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 82_033_000 picoseconds. - Weight::from_parts(86_811_931, 0) + // Minimum execution time: 81_895_000 picoseconds. + Weight::from_parts(86_950_013, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 2_368 - .saturating_add(Weight::from_parts(1_186_905, 0).saturating_mul(s.into())) + // Standard Error: 1_757 + .saturating_add(Weight::from_parts(1_163_934, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(12)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -437,11 +431,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `66572` // Estimated: `70037` - // Minimum execution time: 116_261_000 picoseconds. - Weight::from_parts(912_310_849, 0) + // Minimum execution time: 114_268_000 picoseconds. + Weight::from_parts(811_903_683, 0) .saturating_add(Weight::from_parts(0, 70037)) - // Standard Error: 58_952 - .saturating_add(Weight::from_parts(4_950_352, 0).saturating_mul(s.into())) + // Standard Error: 50_528 + .saturating_add(Weight::from_parts(4_280_491, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -468,11 +462,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `34179 + n * (150 ±0)` // Estimated: `32391 + n * (2603 ±1)` - // Minimum execution time: 89_369_000 picoseconds. - Weight::from_parts(68_517_550, 0) + // Minimum execution time: 88_488_000 picoseconds. + Weight::from_parts(65_823_061, 0) .saturating_add(Weight::from_parts(0, 32391)) - // Standard Error: 14_017 - .saturating_add(Weight::from_parts(30_043_369, 0).saturating_mul(n.into())) + // Standard Error: 12_389 + .saturating_add(Weight::from_parts(29_842_639, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -504,13 +498,13 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `n` is `[0, 512]`. fn payout_stakers_alive_staked(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `61918 + n * (413 ±0)` - // Estimated: `56109 + n * (3774 ±0)` - // Minimum execution time: 115_670_000 picoseconds. - Weight::from_parts(75_735_608, 0) - .saturating_add(Weight::from_parts(0, 56109)) - // Standard Error: 17_219 - .saturating_add(Weight::from_parts(49_406_817, 0).saturating_mul(n.into())) + // Measured: `58153 + n * (388 ±0)` + // Estimated: `53040 + n * (3774 ±0)` + // Minimum execution time: 111_856_000 picoseconds. + Weight::from_parts(80_624_419, 0) + .saturating_add(Weight::from_parts(0, 53040)) + // Standard Error: 36_291 + .saturating_add(Weight::from_parts(48_279_597, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -523,8 +517,6 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: VoterList ListNodes (r:3 w:3) /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) /// Storage: Staking Bonded (r:1 w:0) @@ -536,16 +528,14 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1926 + l * (5 ±0)` // Estimated: `8877` - // Minimum execution time: 86_080_000 picoseconds. - Weight::from_parts(87_282_280, 0) + // Minimum execution time: 85_391_000 picoseconds. + Weight::from_parts(86_880_622, 0) .saturating_add(Weight::from_parts(0, 8877)) - // Standard Error: 1_772 - .saturating_add(Weight::from_parts(30_606, 0).saturating_mul(l.into())) - .saturating_add(T::DbWeight::get().reads(10)) - .saturating_add(T::DbWeight::get().writes(8)) + // Standard Error: 1_648 + .saturating_add(Weight::from_parts(29_083, 0).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(7)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: Staking Bonded (r:1 w:1) /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) /// Storage: Staking Ledger (r:1 w:1) @@ -577,13 +567,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2185 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 94_744_000 picoseconds. - Weight::from_parts(96_143_092, 0) + // Minimum execution time: 95_280_000 picoseconds. + Weight::from_parts(95_843_877, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 2_146 - .saturating_add(Weight::from_parts(1_167_004, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(13)) - .saturating_add(T::DbWeight::get().writes(12)) + // Standard Error: 1_518 + .saturating_add(Weight::from_parts(1_164_202, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(12)) + .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) .saturating_add(Weight::from_parts(0, 4).saturating_mul(s.into())) } @@ -629,13 +619,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + n * (716 ±0) + v * (3594 ±0)` // Estimated: `456136 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 490_748_000 picoseconds. - Weight::from_parts(493_311_000, 0) + // Minimum execution time: 490_146_000 picoseconds. + Weight::from_parts(492_684_000, 0) .saturating_add(Weight::from_parts(0, 456136)) - // Standard Error: 1_915_224 - .saturating_add(Weight::from_parts(60_828_359, 0).saturating_mul(v.into())) - // Standard Error: 190_841 - .saturating_add(Weight::from_parts(16_516_466, 0).saturating_mul(n.into())) + // Standard Error: 1_869_797 + .saturating_add(Weight::from_parts(59_575_010, 0).saturating_mul(v.into())) + // Standard Error: 186_315 + .saturating_add(Weight::from_parts(16_265_127, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(185)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -666,15 +656,15 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `n` is `[500, 1000]`. fn get_npos_voters(v: u32, n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3035 + n * (907 ±0) + v * (391 ±0)` + // Measured: `3117 + n * (907 ±0) + v * (391 ±0)` // Estimated: `456136 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 30_770_134_000 picoseconds. - Weight::from_parts(30_982_159_000, 0) + // Minimum execution time: 30_545_713_000 picoseconds. + Weight::from_parts(30_644_576_000, 0) .saturating_add(Weight::from_parts(0, 456136)) - // Standard Error: 339_512 - .saturating_add(Weight::from_parts(4_806_388, 0).saturating_mul(v.into())) - // Standard Error: 339_512 - .saturating_add(Weight::from_parts(3_044_666, 0).saturating_mul(n.into())) + // Standard Error: 334_764 + .saturating_add(Weight::from_parts(4_614_430, 0).saturating_mul(v.into())) + // Standard Error: 334_764 + .saturating_add(Weight::from_parts(3_168_850, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(180)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -693,11 +683,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `917 + v * (50 ±0)` // Estimated: `3510 + v * (2520 ±0)` - // Minimum execution time: 2_179_545_000 picoseconds. - Weight::from_parts(31_982_634, 0) + // Minimum execution time: 2_170_147_000 picoseconds. + Weight::from_parts(38_253_061, 0) .saturating_add(Weight::from_parts(0, 3510)) - // Standard Error: 9_270 - .saturating_add(Weight::from_parts(4_393_439, 0).saturating_mul(v.into())) + // Standard Error: 6_583 + .saturating_add(Weight::from_parts(4_321_030, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -719,8 +709,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_982_000 picoseconds. - Weight::from_parts(7_116_000, 0) + // Minimum execution time: 6_504_000 picoseconds. + Weight::from_parts(6_615_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -740,8 +730,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_490_000 picoseconds. - Weight::from_parts(6_670_000, 0) + // Minimum execution time: 5_988_000 picoseconds. + Weight::from_parts(6_227_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -769,8 +759,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1762` // Estimated: `6248` - // Minimum execution time: 70_047_000 picoseconds. - Weight::from_parts(70_524_000, 0) + // Minimum execution time: 68_895_000 picoseconds. + Weight::from_parts(70_207_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(6)) @@ -783,8 +773,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `627` // Estimated: `3510` - // Minimum execution time: 14_493_000 picoseconds. - Weight::from_parts(14_662_000, 0) + // Minimum execution time: 14_189_000 picoseconds. + Weight::from_parts(14_411_000, 0) .saturating_add(Weight::from_parts(0, 3510)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -795,8 +785,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_533_000 picoseconds. - Weight::from_parts(3_680_000, 0) + // Minimum execution time: 3_152_000 picoseconds. + Weight::from_parts(3_306_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/pallet_timestamp.rs b/runtime/polkadot/src/weights/pallet_timestamp.rs index 4cc6c77dfbdd..5c369ff70fc1 100644 --- a/runtime/polkadot/src/weights/pallet_timestamp.rs +++ b/runtime/polkadot/src/weights/pallet_timestamp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `345` // Estimated: `1493` - // Minimum execution time: 10_546_000 picoseconds. - Weight::from_parts(11_035_000, 0) + // Minimum execution time: 10_111_000 picoseconds. + Weight::from_parts(10_493_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +65,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `128` // Estimated: `0` - // Minimum execution time: 4_614_000 picoseconds. - Weight::from_parts(4_949_000, 0) + // Minimum execution time: 4_664_000 picoseconds. + Weight::from_parts(4_829_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtime/polkadot/src/weights/pallet_tips.rs b/runtime/polkadot/src/weights/pallet_tips.rs index 2b819e243a09..25f6000d21aa 100644 --- a/runtime/polkadot/src/weights/pallet_tips.rs +++ b/runtime/polkadot/src/weights/pallet_tips.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_tips` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -56,11 +56,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4` // Estimated: `3469` - // Minimum execution time: 28_430_000 picoseconds. - Weight::from_parts(28_960_439, 0) + // Minimum execution time: 27_492_000 picoseconds. + Weight::from_parts(28_309_105, 0) .saturating_add(Weight::from_parts(0, 3469)) // Standard Error: 4 - .saturating_add(Weight::from_parts(1_399, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(1_421, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -72,8 +72,8 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `221` // Estimated: `3686` - // Minimum execution time: 26_992_000 picoseconds. - Weight::from_parts(27_465_000, 0) + // Minimum execution time: 26_722_000 picoseconds. + Weight::from_parts(27_141_000, 0) .saturating_add(Weight::from_parts(0, 3686)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -90,13 +90,13 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `74 + t * (64 ±0)` // Estimated: `3539 + t * (64 ±0)` - // Minimum execution time: 19_772_000 picoseconds. - Weight::from_parts(18_380_150, 0) + // Minimum execution time: 19_360_000 picoseconds. + Weight::from_parts(17_805_338, 0) .saturating_add(Weight::from_parts(0, 3539)) // Standard Error: 5 - .saturating_add(Weight::from_parts(1_306, 0).saturating_mul(r.into())) - // Standard Error: 7_321 - .saturating_add(Weight::from_parts(209_089, 0).saturating_mul(t.into())) + .saturating_add(Weight::from_parts(1_308, 0).saturating_mul(r.into())) + // Standard Error: 6_949 + .saturating_add(Weight::from_parts(205_861, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(t.into())) @@ -110,11 +110,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `295 + t * (112 ±0)` // Estimated: `3760 + t * (112 ±0)` - // Minimum execution time: 15_220_000 picoseconds. - Weight::from_parts(15_519_546, 0) + // Minimum execution time: 15_440_000 picoseconds. + Weight::from_parts(15_579_245, 0) .saturating_add(Weight::from_parts(0, 3760)) - // Standard Error: 1_421 - .saturating_add(Weight::from_parts(142_144, 0).saturating_mul(t.into())) + // Standard Error: 1_549 + .saturating_add(Weight::from_parts(128_187, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) @@ -132,11 +132,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `334 + t * (112 ±0)` // Estimated: `3790 + t * (112 ±0)` - // Minimum execution time: 57_725_000 picoseconds. - Weight::from_parts(58_606_074, 0) + // Minimum execution time: 58_025_000 picoseconds. + Weight::from_parts(58_932_854, 0) .saturating_add(Weight::from_parts(0, 3790)) - // Standard Error: 5_892 - .saturating_add(Weight::from_parts(130_794, 0).saturating_mul(t.into())) + // Standard Error: 6_299 + .saturating_add(Weight::from_parts(138_984, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) @@ -150,11 +150,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3734` - // Minimum execution time: 15_382_000 picoseconds. - Weight::from_parts(15_748_391, 0) + // Minimum execution time: 14_816_000 picoseconds. + Weight::from_parts(15_187_490, 0) .saturating_add(Weight::from_parts(0, 3734)) - // Standard Error: 976 - .saturating_add(Weight::from_parts(14_616, 0).saturating_mul(t.into())) + // Standard Error: 902 + .saturating_add(Weight::from_parts(19_964, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/polkadot/src/weights/pallet_treasury.rs b/runtime/polkadot/src/weights/pallet_treasury.rs index 07456105a303..3bf196ba3801 100644 --- a/runtime/polkadot/src/weights/pallet_treasury.rs +++ b/runtime/polkadot/src/weights/pallet_treasury.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_treasury` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -57,8 +57,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6` // Estimated: `1887` - // Minimum execution time: 15_385_000 picoseconds. - Weight::from_parts(15_783_000, 0) + // Minimum execution time: 14_970_000 picoseconds. + Weight::from_parts(15_407_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) @@ -71,8 +71,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `1489` - // Minimum execution time: 27_729_000 picoseconds. - Weight::from_parts(28_199_000, 0) + // Minimum execution time: 27_422_000 picoseconds. + Weight::from_parts(28_004_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -85,8 +85,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `265` // Estimated: `3593` - // Minimum execution time: 41_124_000 picoseconds. - Weight::from_parts(41_524_000, 0) + // Minimum execution time: 40_743_000 picoseconds. + Weight::from_parts(41_201_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -100,11 +100,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `433 + p * (8 ±0)` // Estimated: `3573` - // Minimum execution time: 10_340_000 picoseconds. - Weight::from_parts(12_329_121, 0) + // Minimum execution time: 9_881_000 picoseconds. + Weight::from_parts(11_756_505, 0) .saturating_add(Weight::from_parts(0, 3573)) - // Standard Error: 1_043 - .saturating_add(Weight::from_parts(26_457, 0).saturating_mul(p.into())) + // Standard Error: 722 + .saturating_add(Weight::from_parts(27_613, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -114,8 +114,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `1887` - // Minimum execution time: 7_837_000 picoseconds. - Weight::from_parts(8_136_000, 0) + // Minimum execution time: 7_501_000 picoseconds. + Weight::from_parts(7_669_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -137,11 +137,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `251 + p * (251 ±0)` // Estimated: `1887 + p * (5206 ±0)` - // Minimum execution time: 42_176_000 picoseconds. - Weight::from_parts(40_550_455, 0) + // Minimum execution time: 41_977_000 picoseconds. + Weight::from_parts(45_391_299, 0) .saturating_add(Weight::from_parts(0, 1887)) - // Standard Error: 30_297 - .saturating_add(Weight::from_parts(38_346_303, 0).saturating_mul(p.into())) + // Standard Error: 20_464 + .saturating_add(Weight::from_parts(37_477_488, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtime/polkadot/src/weights/pallet_utility.rs b/runtime/polkadot/src/weights/pallet_utility.rs index c29a61ce9679..af6b9b6016a1 100644 --- a/runtime/polkadot/src/weights/pallet_utility.rs +++ b/runtime/polkadot/src/weights/pallet_utility.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -52,18 +52,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_199_000 picoseconds. - Weight::from_parts(7_314_000, 0) + // Minimum execution time: 6_692_000 picoseconds. + Weight::from_parts(18_616_016, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_817 - .saturating_add(Weight::from_parts(4_924_360, 0).saturating_mul(c.into())) + // Standard Error: 2_870 + .saturating_add(Weight::from_parts(4_527_980, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_823_000 picoseconds. - Weight::from_parts(6_044_000, 0) + // Minimum execution time: 5_213_000 picoseconds. + Weight::from_parts(5_326_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -71,18 +71,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_155_000 picoseconds. - Weight::from_parts(3_122_569, 0) + // Minimum execution time: 6_738_000 picoseconds. + Weight::from_parts(6_879_819, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_851 - .saturating_add(Weight::from_parts(5_157_632, 0).saturating_mul(c.into())) + // Standard Error: 2_095 + .saturating_add(Weight::from_parts(4_789_247, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_707_000 picoseconds. - Weight::from_parts(10_114_000, 0) + // Minimum execution time: 8_933_000 picoseconds. + Weight::from_parts(9_310_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -90,10 +90,10 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_129_000 picoseconds. - Weight::from_parts(7_256_000, 0) + // Minimum execution time: 7_055_000 picoseconds. + Weight::from_parts(8_440_642, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_513 - .saturating_add(Weight::from_parts(4_938_060, 0).saturating_mul(c.into())) + // Standard Error: 1_678 + .saturating_add(Weight::from_parts(4_529_605, 0).saturating_mul(c.into())) } } diff --git a/runtime/polkadot/src/weights/pallet_vesting.rs b/runtime/polkadot/src/weights/pallet_vesting.rs index dddb1044854e..981e56a93256 100644 --- a/runtime/polkadot/src/weights/pallet_vesting.rs +++ b/runtime/polkadot/src/weights/pallet_vesting.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -59,13 +59,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `314 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 33_519_000 picoseconds. - Weight::from_parts(32_889_335, 0) + // Minimum execution time: 33_562_000 picoseconds. + Weight::from_parts(32_430_088, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 702 - .saturating_add(Weight::from_parts(40_230, 0).saturating_mul(l.into())) - // Standard Error: 1_250 - .saturating_add(Weight::from_parts(60_592, 0).saturating_mul(s.into())) + // Standard Error: 463 + .saturating_add(Weight::from_parts(39_620, 0).saturating_mul(l.into())) + // Standard Error: 824 + .saturating_add(Weight::from_parts(69_620, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -81,13 +81,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `314 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_970_000 picoseconds. - Weight::from_parts(36_647_701, 0) + // Minimum execution time: 36_524_000 picoseconds. + Weight::from_parts(37_384_316, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 872 - .saturating_add(Weight::from_parts(29_492, 0).saturating_mul(l.into())) - // Standard Error: 1_553 - .saturating_add(Weight::from_parts(40_388, 0).saturating_mul(s.into())) + // Standard Error: 2_019 + .saturating_add(Weight::from_parts(6_086, 0).saturating_mul(l.into())) + // Standard Error: 3_592 + .saturating_add(Weight::from_parts(51_784, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -105,13 +105,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `417 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_314_000 picoseconds. - Weight::from_parts(35_703_579, 0) + // Minimum execution time: 36_330_000 picoseconds. + Weight::from_parts(35_332_815, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 847 - .saturating_add(Weight::from_parts(36_947, 0).saturating_mul(l.into())) - // Standard Error: 1_508 - .saturating_add(Weight::from_parts(67_436, 0).saturating_mul(s.into())) + // Standard Error: 552 + .saturating_add(Weight::from_parts(41_285, 0).saturating_mul(l.into())) + // Standard Error: 982 + .saturating_add(Weight::from_parts(67_201, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -129,13 +129,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `417 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 39_647_000 picoseconds. - Weight::from_parts(39_206_425, 0) + // Minimum execution time: 39_620_000 picoseconds. + Weight::from_parts(39_168_015, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 944 - .saturating_add(Weight::from_parts(33_347, 0).saturating_mul(l.into())) - // Standard Error: 1_679 - .saturating_add(Weight::from_parts(46_740, 0).saturating_mul(s.into())) + // Standard Error: 826 + .saturating_add(Weight::from_parts(31_114, 0).saturating_mul(l.into())) + // Standard Error: 1_470 + .saturating_add(Weight::from_parts(46_380, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -153,13 +153,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `488 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 67_920_000 picoseconds. - Weight::from_parts(68_470_221, 0) + // Minimum execution time: 68_183_000 picoseconds. + Weight::from_parts(68_198_512, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_643 - .saturating_add(Weight::from_parts(32_166, 0).saturating_mul(l.into())) - // Standard Error: 2_923 - .saturating_add(Weight::from_parts(83_469, 0).saturating_mul(s.into())) + // Standard Error: 1_102 + .saturating_add(Weight::from_parts(45_756, 0).saturating_mul(l.into())) + // Standard Error: 1_961 + .saturating_add(Weight::from_parts(87_559, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -177,13 +177,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + l * (25 ±0) + s * (36 ±0)` // Estimated: `6196` - // Minimum execution time: 70_359_000 picoseconds. - Weight::from_parts(70_171_431, 0) + // Minimum execution time: 70_243_000 picoseconds. + Weight::from_parts(70_565_922, 0) .saturating_add(Weight::from_parts(0, 6196)) - // Standard Error: 1_150 - .saturating_add(Weight::from_parts(51_653, 0).saturating_mul(l.into())) - // Standard Error: 2_047 - .saturating_add(Weight::from_parts(79_591, 0).saturating_mul(s.into())) + // Standard Error: 1_245 + .saturating_add(Weight::from_parts(50_411, 0).saturating_mul(l.into())) + // Standard Error: 2_215 + .saturating_add(Weight::from_parts(87_829, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -201,13 +201,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `415 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_950_000 picoseconds. - Weight::from_parts(36_119_565, 0) + // Minimum execution time: 36_847_000 picoseconds. + Weight::from_parts(35_706_131, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 683 - .saturating_add(Weight::from_parts(43_425, 0).saturating_mul(l.into())) - // Standard Error: 1_262 - .saturating_add(Weight::from_parts(68_384, 0).saturating_mul(s.into())) + // Standard Error: 682 + .saturating_add(Weight::from_parts(43_602, 0).saturating_mul(l.into())) + // Standard Error: 1_261 + .saturating_add(Weight::from_parts(77_378, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -225,13 +225,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `415 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 41_247_000 picoseconds. - Weight::from_parts(40_240_818, 0) + // Minimum execution time: 40_951_000 picoseconds. + Weight::from_parts(40_065_329, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 819 - .saturating_add(Weight::from_parts(41_306, 0).saturating_mul(l.into())) - // Standard Error: 1_513 - .saturating_add(Weight::from_parts(69_405, 0).saturating_mul(s.into())) + // Standard Error: 528 + .saturating_add(Weight::from_parts(42_774, 0).saturating_mul(l.into())) + // Standard Error: 975 + .saturating_add(Weight::from_parts(66_267, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/polkadot/src/weights/pallet_whitelist.rs b/runtime/polkadot/src/weights/pallet_whitelist.rs index 187de4eb9d95..1366317f9826 100644 --- a/runtime/polkadot/src/weights/pallet_whitelist.rs +++ b/runtime/polkadot/src/weights/pallet_whitelist.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_whitelist` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `118` // Estimated: `3556` - // Minimum execution time: 21_006_000 picoseconds. - Weight::from_parts(21_423_000, 0) + // Minimum execution time: 20_351_000 picoseconds. + Weight::from_parts(20_799_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -69,8 +69,8 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `247` // Estimated: `3556` - // Minimum execution time: 18_657_000 picoseconds. - Weight::from_parts(19_138_000, 0) + // Minimum execution time: 18_432_000 picoseconds. + Weight::from_parts(18_864_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -86,11 +86,11 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `323 + n * (1 ±0)` // Estimated: `3787 + n * (1 ±0)` - // Minimum execution time: 30_799_000 picoseconds. - Weight::from_parts(31_066_000, 0) + // Minimum execution time: 30_076_000 picoseconds. + Weight::from_parts(30_440_000, 0) .saturating_add(Weight::from_parts(0, 3787)) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_191, 0).saturating_mul(n.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_169, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -104,11 +104,11 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `247` // Estimated: `3556` - // Minimum execution time: 23_078_000 picoseconds. - Weight::from_parts(23_881_119, 0) + // Minimum execution time: 22_286_000 picoseconds. + Weight::from_parts(22_871_046, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_186, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_188, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/polkadot/src/weights/pallet_xcm.rs b/runtime/polkadot/src/weights/pallet_xcm.rs index 9aaa5e964593..8eab633caed8 100644 --- a/runtime/polkadot/src/weights/pallet_xcm.rs +++ b/runtime/polkadot/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -63,11 +63,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `514` - // Estimated: `3979` - // Minimum execution time: 38_304_000 picoseconds. - Weight::from_parts(38_989_000, 0) - .saturating_add(Weight::from_parts(0, 3979)) + // Measured: `527` + // Estimated: `3992` + // Minimum execution time: 37_869_000 picoseconds. + Weight::from_parts(38_341_000, 0) + .saturating_add(Weight::from_parts(0, 3992)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -75,16 +75,16 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 24_169_000 picoseconds. - Weight::from_parts(24_693_000, 0) + // Minimum execution time: 23_159_000 picoseconds. + Weight::from_parts(23_625_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 23_531_000 picoseconds. - Weight::from_parts(23_978_000, 0) + // Minimum execution time: 22_295_000 picoseconds. + Weight::from_parts(22_629_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Benchmark Override (r:0 w:0) @@ -103,8 +103,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_584_000 picoseconds. - Weight::from_parts(10_856_000, 0) + // Minimum execution time: 9_556_000 picoseconds. + Weight::from_parts(9_995_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -114,8 +114,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_554_000 picoseconds. - Weight::from_parts(3_698_000, 0) + // Minimum execution time: 2_951_000 picoseconds. + Weight::from_parts(3_052_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -141,11 +141,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `514` - // Estimated: `3979` - // Minimum execution time: 43_707_000 picoseconds. - Weight::from_parts(44_814_000, 0) - .saturating_add(Weight::from_parts(0, 3979)) + // Measured: `527` + // Estimated: `3992` + // Minimum execution time: 41_289_000 picoseconds. + Weight::from_parts(42_037_000, 0) + .saturating_add(Weight::from_parts(0, 3992)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -169,11 +169,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `786` - // Estimated: `4251` - // Minimum execution time: 45_829_000 picoseconds. - Weight::from_parts(46_393_000, 0) - .saturating_add(Weight::from_parts(0, 4251)) + // Measured: `799` + // Estimated: `4264` + // Minimum execution time: 44_827_000 picoseconds. + Weight::from_parts(45_768_000, 0) + .saturating_add(Weight::from_parts(0, 4264)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -183,8 +183,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_591_000 picoseconds. - Weight::from_parts(3_660_000, 0) + // Minimum execution time: 2_974_000 picoseconds. + Weight::from_parts(3_083_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -194,8 +194,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `229` // Estimated: `11119` - // Minimum execution time: 17_139_000 picoseconds. - Weight::from_parts(17_594_000, 0) + // Minimum execution time: 16_960_000 picoseconds. + Weight::from_parts(17_421_000, 0) .saturating_add(Weight::from_parts(0, 11119)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -206,8 +206,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `233` // Estimated: `11123` - // Minimum execution time: 17_033_000 picoseconds. - Weight::from_parts(17_361_000, 0) + // Minimum execution time: 17_392_000 picoseconds. + Weight::from_parts(17_851_000, 0) .saturating_add(Weight::from_parts(0, 11123)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -218,8 +218,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `243` // Estimated: `13608` - // Minimum execution time: 18_181_000 picoseconds. - Weight::from_parts(18_859_000, 0) + // Minimum execution time: 18_387_000 picoseconds. + Weight::from_parts(19_047_000, 0) .saturating_add(Weight::from_parts(0, 13608)) .saturating_add(T::DbWeight::get().reads(5)) } @@ -241,11 +241,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `584` - // Estimated: `6524` - // Minimum execution time: 39_199_000 picoseconds. - Weight::from_parts(39_812_000, 0) - .saturating_add(Weight::from_parts(0, 6524)) + // Measured: `597` + // Estimated: `6537` + // Minimum execution time: 39_387_000 picoseconds. + Weight::from_parts(39_896_000, 0) + .saturating_add(Weight::from_parts(0, 6537)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -255,8 +255,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `272` // Estimated: `8687` - // Minimum execution time: 8_959_000 picoseconds. - Weight::from_parts(9_202_000, 0) + // Minimum execution time: 9_289_000 picoseconds. + Weight::from_parts(9_523_000, 0) .saturating_add(Weight::from_parts(0, 8687)) .saturating_add(T::DbWeight::get().reads(3)) } @@ -266,8 +266,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `240` // Estimated: `11130` - // Minimum execution time: 17_439_000 picoseconds. - Weight::from_parts(17_835_000, 0) + // Minimum execution time: 17_544_000 picoseconds. + Weight::from_parts(17_932_000, 0) .saturating_add(Weight::from_parts(0, 11130)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -290,11 +290,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `588` - // Estimated: `11478` - // Minimum execution time: 47_447_000 picoseconds. - Weight::from_parts(48_015_000, 0) - .saturating_add(Weight::from_parts(0, 11478)) + // Measured: `601` + // Estimated: `11491` + // Minimum execution time: 46_012_000 picoseconds. + Weight::from_parts(46_624_000, 0) + .saturating_add(Weight::from_parts(0, 11491)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(5)) } diff --git a/runtime/polkadot/src/weights/runtime_common_auctions.rs b/runtime/polkadot/src/weights/runtime_common_auctions.rs index 9434a3373519..cbd2a58e7bf5 100644 --- a/runtime/polkadot/src/weights/runtime_common_auctions.rs +++ b/runtime/polkadot/src/weights/runtime_common_auctions.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::auctions` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `4` // Estimated: `1493` - // Minimum execution time: 13_336_000 picoseconds. - Weight::from_parts(13_647_000, 0) + // Minimum execution time: 12_993_000 picoseconds. + Weight::from_parts(13_323_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +79,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `661` // Estimated: `6060` - // Minimum execution time: 77_287_000 picoseconds. - Weight::from_parts(80_529_000, 0) + // Minimum execution time: 77_123_000 picoseconds. + Weight::from_parts(78_483_000, 0) .saturating_add(Weight::from_parts(0, 6060)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -111,10 +111,10 @@ impl runtime_common::auctions::WeightInfo for WeightInf /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) fn on_initialize() -> Weight { // Proof Size summary in bytes: - // Measured: `6947662` + // Measured: `6947699` // Estimated: `15822990` - // Minimum execution time: 6_322_051_000 picoseconds. - Weight::from_parts(6_441_894_000, 0) + // Minimum execution time: 6_354_536_000 picoseconds. + Weight::from_parts(6_443_450_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3688)) .saturating_add(T::DbWeight::get().writes(3683)) @@ -131,8 +131,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `177732` // Estimated: `15822990` - // Minimum execution time: 4_873_692_000 picoseconds. - Weight::from_parts(4_978_734_000, 0) + // Minimum execution time: 4_887_283_000 picoseconds. + Weight::from_parts(4_986_738_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3673)) .saturating_add(T::DbWeight::get().writes(3673)) diff --git a/runtime/polkadot/src/weights/runtime_common_claims.rs b/runtime/polkadot/src/weights/runtime_common_claims.rs index 9e14fb8faa55..d9fe18d817d5 100644 --- a/runtime/polkadot/src/weights/runtime_common_claims.rs +++ b/runtime/polkadot/src/weights/runtime_common_claims.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::claims` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -67,8 +67,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `586` // Estimated: `4764` - // Minimum execution time: 146_948_000 picoseconds. - Weight::from_parts(152_635_000, 0) + // Minimum execution time: 147_162_000 picoseconds. + Weight::from_parts(150_920_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -85,8 +85,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `182` // Estimated: `1667` - // Minimum execution time: 11_617_000 picoseconds. - Weight::from_parts(12_008_000, 0) + // Minimum execution time: 11_255_000 picoseconds. + Weight::from_parts(11_576_000, 0) .saturating_add(Weight::from_parts(0, 1667)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(4)) @@ -111,8 +111,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `586` // Estimated: `4764` - // Minimum execution time: 149_772_000 picoseconds. - Weight::from_parts(152_802_000, 0) + // Minimum execution time: 150_031_000 picoseconds. + Weight::from_parts(151_686_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -139,8 +139,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `660` // Estimated: `4764` - // Minimum execution time: 73_442_000 picoseconds. - Weight::from_parts(85_060_000, 0) + // Minimum execution time: 72_642_000 picoseconds. + Weight::from_parts(85_752_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -157,8 +157,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `406` // Estimated: `3871` - // Minimum execution time: 22_349_000 picoseconds. - Weight::from_parts(22_865_000, 0) + // Minimum execution time: 22_188_000 picoseconds. + Weight::from_parts(22_606_000, 0) .saturating_add(Weight::from_parts(0, 3871)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(7)) diff --git a/runtime/polkadot/src/weights/runtime_common_crowdloan.rs b/runtime/polkadot/src/weights/runtime_common_crowdloan.rs index 02527f3eb5ef..196602ae1e91 100644 --- a/runtime/polkadot/src/weights/runtime_common_crowdloan.rs +++ b/runtime/polkadot/src/weights/runtime_common_crowdloan.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::crowdloan` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -61,8 +61,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `415` // Estimated: `3880` - // Minimum execution time: 48_295_000 picoseconds. - Weight::from_parts(49_511_000, 0) + // Minimum execution time: 50_128_000 picoseconds. + Weight::from_parts(51_086_000, 0) .saturating_add(Weight::from_parts(0, 3880)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -87,8 +87,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `463` // Estimated: `3928` - // Minimum execution time: 128_424_000 picoseconds. - Weight::from_parts(130_407_000, 0) + // Minimum execution time: 130_923_000 picoseconds. + Weight::from_parts(132_182_000, 0) .saturating_add(Weight::from_parts(0, 3928)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -105,8 +105,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `690` // Estimated: `6196` - // Minimum execution time: 71_870_000 picoseconds. - Weight::from_parts(72_779_000, 0) + // Minimum execution time: 72_225_000 picoseconds. + Weight::from_parts(73_325_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -118,11 +118,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `128 + k * (189 ±0)` // Estimated: `141 + k * (189 ±0)` - // Minimum execution time: 41_393_000 picoseconds. - Weight::from_parts(55_840_000, 0) + // Minimum execution time: 45_224_000 picoseconds. + Weight::from_parts(59_534_000, 0) .saturating_add(Weight::from_parts(0, 141)) - // Standard Error: 21_749 - .saturating_add(Weight::from_parts(38_489_253, 0).saturating_mul(k.into())) + // Standard Error: 19_536 + .saturating_add(Weight::from_parts(37_993_958, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -137,8 +137,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `515` // Estimated: `6196` - // Minimum execution time: 39_410_000 picoseconds. - Weight::from_parts(40_453_000, 0) + // Minimum execution time: 39_856_000 picoseconds. + Weight::from_parts(40_594_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -149,8 +149,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `235` // Estimated: `3700` - // Minimum execution time: 17_803_000 picoseconds. - Weight::from_parts(18_143_000, 0) + // Minimum execution time: 18_809_000 picoseconds. + Weight::from_parts(19_493_000, 0) .saturating_add(Weight::from_parts(0, 3700)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -163,8 +163,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `412` // Estimated: `3877` - // Minimum execution time: 25_379_000 picoseconds. - Weight::from_parts(26_233_000, 0) + // Minimum execution time: 25_280_000 picoseconds. + Weight::from_parts(26_124_000, 0) .saturating_add(Weight::from_parts(0, 3877)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -177,8 +177,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `239` // Estimated: `3704` - // Minimum execution time: 17_985_000 picoseconds. - Weight::from_parts(18_706_000, 0) + // Minimum execution time: 17_998_000 picoseconds. + Weight::from_parts(18_723_000, 0) .saturating_add(Weight::from_parts(0, 3704)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -208,11 +208,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `130 + n * (356 ±0)` // Estimated: `5385 + n * (2832 ±0)` - // Minimum execution time: 126_380_000 picoseconds. - Weight::from_parts(127_167_000, 0) + // Minimum execution time: 127_245_000 picoseconds. + Weight::from_parts(128_163_000, 0) .saturating_add(Weight::from_parts(0, 5385)) - // Standard Error: 60_524 - .saturating_add(Weight::from_parts(59_956_901, 0).saturating_mul(n.into())) + // Standard Error: 55_939 + .saturating_add(Weight::from_parts(59_555_122, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/polkadot/src/weights/runtime_common_paras_registrar.rs b/runtime/polkadot/src/weights/runtime_common_paras_registrar.rs index da0fc5bfa042..9c1ba6e9040f 100644 --- a/runtime/polkadot/src/weights/runtime_common_paras_registrar.rs +++ b/runtime/polkadot/src/weights/runtime_common_paras_registrar.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::paras_registrar` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -57,8 +57,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `70` // Estimated: `3535` - // Minimum execution time: 29_183_000 picoseconds. - Weight::from_parts(29_504_000, 0) + // Minimum execution time: 28_986_000 picoseconds. + Weight::from_parts(29_506_000, 0) .saturating_add(Weight::from_parts(0, 3535)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -69,14 +69,14 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) /// Storage: Configuration ActiveConfig (r:1 w:0) /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) - /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras ActionsQueue (r:1 w:1) - /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:0 w:1) @@ -85,13 +85,13 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras UpcomingParasGenesis (max_values: None, max_size: None, mode: Measured) fn register() -> Weight { // Proof Size summary in bytes: - // Measured: `573` - // Estimated: `4038` - // Minimum execution time: 6_219_519_000 picoseconds. - Weight::from_parts(6_286_860_000, 0) - .saturating_add(Weight::from_parts(0, 4038)) + // Measured: `645` + // Estimated: `4110` + // Minimum execution time: 6_306_085_000 picoseconds. + Weight::from_parts(6_347_180_000, 0) + .saturating_add(Weight::from_parts(0, 4110)) .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(T::DbWeight::get().writes(8)) } /// Storage: Registrar Paras (r:1 w:1) /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) @@ -99,14 +99,14 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) /// Storage: Configuration ActiveConfig (r:1 w:0) /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) - /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras ActionsQueue (r:1 w:1) - /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:0 w:1) @@ -115,13 +115,13 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras UpcomingParasGenesis (max_values: None, max_size: None, mode: Measured) fn force_register() -> Weight { // Proof Size summary in bytes: - // Measured: `463` - // Estimated: `3928` - // Minimum execution time: 6_236_458_000 picoseconds. - Weight::from_parts(6_345_909_000, 0) - .saturating_add(Weight::from_parts(0, 3928)) + // Measured: `535` + // Estimated: `4000` + // Minimum execution time: 6_300_349_000 picoseconds. + Weight::from_parts(6_340_113_000, 0) + .saturating_add(Weight::from_parts(0, 4000)) .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(T::DbWeight::get().writes(8)) } /// Storage: Registrar Paras (r:1 w:1) /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) @@ -133,16 +133,18 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras ActionsQueue (r:1 w:1) /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: Registrar PendingSwap (r:0 w:1) /// Proof Skipped: Registrar PendingSwap (max_values: None, max_size: None, mode: Measured) fn deregister() -> Weight { // Proof Size summary in bytes: - // Measured: `435` - // Estimated: `3900` - // Minimum execution time: 44_773_000 picoseconds. - Weight::from_parts(45_766_000, 0) - .saturating_add(Weight::from_parts(0, 3900)) - .saturating_add(T::DbWeight::get().reads(5)) + // Measured: `476` + // Estimated: `3941` + // Minimum execution time: 51_738_000 picoseconds. + Weight::from_parts(52_556_000, 0) + .saturating_add(Weight::from_parts(0, 3941)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: Registrar Paras (r:1 w:0) @@ -161,11 +163,11 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured) fn swap() -> Weight { // Proof Size summary in bytes: - // Measured: `676` - // Estimated: `6616` - // Minimum execution time: 46_520_000 picoseconds. - Weight::from_parts(50_078_000, 0) - .saturating_add(Weight::from_parts(0, 6616)) + // Measured: `713` + // Estimated: `6653` + // Minimum execution time: 55_456_000 picoseconds. + Weight::from_parts(56_963_000, 0) + .saturating_add(Weight::from_parts(0, 6653)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) } @@ -179,30 +181,28 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured) /// Storage: Paras UpgradeCooldowns (r:1 w:1) /// Proof Skipped: Paras UpgradeCooldowns (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras UpcomingUpgrades (r:1 w:1) - /// Proof Skipped: Paras UpcomingUpgrades (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Digest (r:1 w:1) - /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras FutureCodeUpgrades (r:0 w:1) - /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) /// The range of component `b` is `[1, 3145728]`. fn schedule_code_upgrade(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `331` - // Estimated: `3796` - // Minimum execution time: 43_359_000 picoseconds. - Weight::from_parts(43_887_000, 0) - .saturating_add(Weight::from_parts(0, 3796)) + // Measured: `493` + // Estimated: `3958` + // Minimum execution time: 44_101_000 picoseconds. + Weight::from_parts(44_477_000, 0) + .saturating_add(Weight::from_parts(0, 3958)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_974, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_962, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(10)) - .saturating_add(T::DbWeight::get().writes(8)) + .saturating_add(T::DbWeight::get().writes(7)) } /// Storage: Paras Heads (r:0 w:1) /// Proof Skipped: Paras Heads (max_values: None, max_size: None, mode: Measured) @@ -211,11 +211,11 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_212_000 picoseconds. - Weight::from_parts(9_328_000, 0) + // Minimum execution time: 9_230_000 picoseconds. + Weight::from_parts(9_476_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 2 - .saturating_add(Weight::from_parts(859, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(856, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().writes(1)) } } diff --git a/runtime/polkadot/src/weights/runtime_common_slots.rs b/runtime/polkadot/src/weights/runtime_common_slots.rs index e9a4ee68ea05..28dba8904819 100644 --- a/runtime/polkadot/src/weights/runtime_common_slots.rs +++ b/runtime/polkadot/src/weights/runtime_common_slots.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::slots` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `0 + c * (47 ±0) + t * (308 ±0)` - // Estimated: `2751 + c * (2526 ±0) + t * (2789 ±0)` - // Minimum execution time: 642_018_000 picoseconds. - Weight::from_parts(648_685_000, 0) - .saturating_add(Weight::from_parts(0, 2751)) - // Standard Error: 82_839 - .saturating_add(Weight::from_parts(2_679_607, 0).saturating_mul(c.into())) - // Standard Error: 82_839 - .saturating_add(Weight::from_parts(11_551_529, 0).saturating_mul(t.into())) + // Measured: `12 + c * (47 ±0) + t * (308 ±0)` + // Estimated: `2789 + c * (2526 ±0) + t * (2789 ±0)` + // Minimum execution time: 639_050_000 picoseconds. + Weight::from_parts(645_393_000, 0) + .saturating_add(Weight::from_parts(0, 2789)) + // Standard Error: 83_372 + .saturating_add(Weight::from_parts(2_660_893, 0).saturating_mul(c.into())) + // Standard Error: 83_372 + .saturating_add(Weight::from_parts(11_532_649, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(t.into()))) @@ -103,8 +103,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `580` - // Estimated: `4045` - // Minimum execution time: 28_277_000 picoseconds. - Weight::from_parts(28_792_000, 0) - .saturating_add(Weight::from_parts(0, 4045)) + // Measured: `617` + // Estimated: `4082` + // Minimum execution time: 29_150_000 picoseconds. + Weight::from_parts(29_895_000, 0) + .saturating_add(Weight::from_parts(0, 4082)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/polkadot/src/weights/runtime_parachains_configuration.rs b/runtime/polkadot/src/weights/runtime_parachains_configuration.rs index 292b8916dad0..aa6dad6f65e1 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_configuration.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_configuration.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::configuration` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -57,11 +57,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_block_number() -> Weight { // Proof Size summary in bytes: - // Measured: `393` - // Estimated: `1878` - // Minimum execution time: 12_758_000 picoseconds. - Weight::from_parts(13_404_000, 0) - .saturating_add(Weight::from_parts(0, 1878)) + // Measured: `443` + // Estimated: `1928` + // Minimum execution time: 13_549_000 picoseconds. + Weight::from_parts(13_926_000, 0) + .saturating_add(Weight::from_parts(0, 1928)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -75,11 +75,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { // Proof Size summary in bytes: - // Measured: `393` - // Estimated: `1878` - // Minimum execution time: 12_684_000 picoseconds. - Weight::from_parts(13_256_000, 0) - .saturating_add(Weight::from_parts(0, 1878)) + // Measured: `443` + // Estimated: `1928` + // Minimum execution time: 13_610_000 picoseconds. + Weight::from_parts(13_923_000, 0) + .saturating_add(Weight::from_parts(0, 1928)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -122,11 +122,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `393` - // Estimated: `1878` - // Minimum execution time: 12_782_000 picoseconds. - Weight::from_parts(13_294_000, 0) - .saturating_add(Weight::from_parts(0, 1878)) + // Measured: `443` + // Estimated: `1928` + // Minimum execution time: 13_522_000 picoseconds. + Weight::from_parts(13_880_000, 0) + .saturating_add(Weight::from_parts(0, 1928)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -140,11 +140,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_executor_params() -> Weight { // Proof Size summary in bytes: - // Measured: `393` - // Estimated: `1878` - // Minimum execution time: 13_736_000 picoseconds. - Weight::from_parts(14_261_000, 0) - .saturating_add(Weight::from_parts(0, 1878)) + // Measured: `443` + // Estimated: `1928` + // Minimum execution time: 14_724_000 picoseconds. + Weight::from_parts(15_114_000, 0) + .saturating_add(Weight::from_parts(0, 1928)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/runtime_parachains_disputes.rs b/runtime/polkadot/src/weights/runtime_parachains_disputes.rs index e6999654d70a..ded83f9170c0 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_disputes.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_disputes.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl runtime_parachains::disputes::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_124_000 picoseconds. - Weight::from_parts(3_275_000, 0) + // Minimum execution time: 2_914_000 picoseconds. + Weight::from_parts(3_088_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/runtime_parachains_disputes_slashing.rs b/runtime/polkadot/src/weights/runtime_parachains_disputes_slashing.rs index 6cb297c351e9..047aeb7fa731 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_disputes_slashing.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_disputes_slashing.rs @@ -1,4 +1,4 @@ -// Copyright 2017-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Polkadot. // Polkadot is free software: you can redistribute it and/or modify @@ -13,36 +13,36 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . + //! Autogenerated weights for `runtime_parachains::disputes::slashing` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: -// target/production/polkadot +// ./target/production/polkadot // benchmark // pallet +// --chain=polkadot-dev // --steps=50 // --repeat=20 +// --pallet=runtime_parachains::disputes::slashing // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json -// --pallet=runtime_parachains::disputes::slashing -// --chain=polkadot-dev // --header=./file_header.txt -// --output=./runtime/polkadot/src/weights/ +// --output=./runtime/polkadot/src/weights/runtime_parachains_disputes_slashing.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `runtime_parachains::disputes::slashing`. pub struct WeightInfo(PhantomData); @@ -55,8 +55,6 @@ impl runtime_parachains::disputes::slashing::WeightInfo /// Proof Skipped: ParaSessionInfo Sessions (max_values: None, max_size: None, mode: Measured) /// Storage: ParasSlashing UnappliedSlashes (r:1 w:1) /// Proof Skipped: ParasSlashing UnappliedSlashes (max_values: None, max_size: None, mode: Measured) - /// Storage: Offences ReportsByKindIndex (r:1 w:1) - /// Proof Skipped: Offences ReportsByKindIndex (max_values: None, max_size: None, mode: Measured) /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) /// Proof Skipped: Offences ConcurrentReportsIndex (max_values: None, max_size: None, mode: Measured) /// Storage: Offences Reports (r:1 w:1) @@ -88,15 +86,15 @@ impl runtime_parachains::disputes::slashing::WeightInfo /// The range of component `n` is `[4, 1000]`. fn report_dispute_lost(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `5788 + n * (285 ±0)` - // Estimated: `107680 + n * (3726 ±0)` - // Minimum execution time: 119_613_000 picoseconds. - Weight::from_parts(142_363_720, 0) - .saturating_add(Weight::from_parts(0, 107680)) - // Standard Error: 2_283 - .saturating_add(Weight::from_parts(291_179, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(19)) - .saturating_add(T::DbWeight::get().writes(11)) - .saturating_add(Weight::from_parts(0, 3726).saturating_mul(n.into())) + // Measured: `5711 + n * (285 ±0)` + // Estimated: `8939 + n * (288 ±0)` + // Minimum execution time: 113_896_000 picoseconds. + Weight::from_parts(136_630_262, 0) + .saturating_add(Weight::from_parts(0, 8939)) + // Standard Error: 2_274 + .saturating_add(Weight::from_parts(288_526, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(18)) + .saturating_add(T::DbWeight::get().writes(10)) + .saturating_add(Weight::from_parts(0, 288).saturating_mul(n.into())) } } diff --git a/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs b/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs index 6ec4a93f9fca..607322a3cb6c 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::hrmp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -67,11 +67,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn hrmp_init_open_channel() -> Weight { // Proof Size summary in bytes: - // Measured: `653` - // Estimated: `6593` - // Minimum execution time: 44_346_000 picoseconds. - Weight::from_parts(44_838_000, 0) - .saturating_add(Weight::from_parts(0, 6593)) + // Measured: `666` + // Estimated: `6606` + // Minimum execution time: 41_246_000 picoseconds. + Weight::from_parts(41_724_000, 0) + .saturating_add(Weight::from_parts(0, 6606)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -91,11 +91,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn hrmp_accept_open_channel() -> Weight { // Proof Size summary in bytes: - // Measured: `885` - // Estimated: `4350` - // Minimum execution time: 45_985_000 picoseconds. - Weight::from_parts(46_989_000, 0) - .saturating_add(Weight::from_parts(0, 4350)) + // Measured: `898` + // Estimated: `4363` + // Minimum execution time: 43_523_000 picoseconds. + Weight::from_parts(44_142_000, 0) + .saturating_add(Weight::from_parts(0, 4363)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -113,11 +113,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn hrmp_close_channel() -> Weight { // Proof Size summary in bytes: - // Measured: `756` - // Estimated: `4221` - // Minimum execution time: 38_081_000 picoseconds. - Weight::from_parts(38_671_000, 0) - .saturating_add(Weight::from_parts(0, 4221)) + // Measured: `769` + // Estimated: `4234` + // Minimum execution time: 36_434_000 picoseconds. + Weight::from_parts(36_982_000, 0) + .saturating_add(Weight::from_parts(0, 4234)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -139,13 +139,13 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `197 + e * (100 ±0) + i * (100 ±0)` // Estimated: `3659 + e * (2575 ±0) + i * (2575 ±0)` - // Minimum execution time: 1_115_227_000 picoseconds. - Weight::from_parts(1_118_943_000, 0) + // Minimum execution time: 1_089_251_000 picoseconds. + Weight::from_parts(881_440, 0) .saturating_add(Weight::from_parts(0, 3659)) - // Standard Error: 100_428 - .saturating_add(Weight::from_parts(3_409_280, 0).saturating_mul(i.into())) - // Standard Error: 100_428 - .saturating_add(Weight::from_parts(3_421_601, 0).saturating_mul(e.into())) + // Standard Error: 12_315 + .saturating_add(Weight::from_parts(8_705_950, 0).saturating_mul(i.into())) + // Standard Error: 12_315 + .saturating_add(Weight::from_parts(8_754_960, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(e.into()))) @@ -176,13 +176,13 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// The range of component `c` is `[0, 128]`. fn force_process_hrmp_open(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `728 + c * (136 ±0)` - // Estimated: `2183 + c * (5086 ±0)` - // Minimum execution time: 10_764_000 picoseconds. - Weight::from_parts(7_242_004, 0) - .saturating_add(Weight::from_parts(0, 2183)) - // Standard Error: 19_699 - .saturating_add(Weight::from_parts(19_562_766, 0).saturating_mul(c.into())) + // Measured: `741 + c * (136 ±0)` + // Estimated: `2196 + c * (5086 ±0)` + // Minimum execution time: 10_610_000 picoseconds. + Weight::from_parts(6_483_567, 0) + .saturating_add(Weight::from_parts(0, 2196)) + // Standard Error: 13_188 + .saturating_add(Weight::from_parts(18_662_252, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -206,11 +206,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `268 + c * (124 ±0)` // Estimated: `1728 + c * (2600 ±0)` - // Minimum execution time: 6_843_000 picoseconds. - Weight::from_parts(2_520_579, 0) + // Minimum execution time: 6_545_000 picoseconds. + Weight::from_parts(2_658_037, 0) .saturating_add(Weight::from_parts(0, 1728)) - // Standard Error: 12_570 - .saturating_add(Weight::from_parts(11_917_456, 0).saturating_mul(c.into())) + // Standard Error: 9_624 + .saturating_add(Weight::from_parts(11_479_940, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -228,11 +228,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `959 + c * (13 ±0)` // Estimated: `4228 + c * (15 ±0)` - // Minimum execution time: 23_678_000 picoseconds. - Weight::from_parts(27_155_695, 0) + // Minimum execution time: 22_183_000 picoseconds. + Weight::from_parts(25_944_707, 0) .saturating_add(Weight::from_parts(0, 4228)) - // Standard Error: 802 - .saturating_add(Weight::from_parts(47_578, 0).saturating_mul(c.into())) + // Standard Error: 827 + .saturating_add(Weight::from_parts(48_560, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 15).saturating_mul(c.into())) @@ -246,11 +246,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `176 + c * (63 ±0)` // Estimated: `1655 + c * (2538 ±0)` - // Minimum execution time: 5_403_000 picoseconds. - Weight::from_parts(3_744_201, 0) + // Minimum execution time: 5_148_000 picoseconds. + Weight::from_parts(5_686_827, 0) .saturating_add(Weight::from_parts(0, 1655)) - // Standard Error: 3_925 - .saturating_add(Weight::from_parts(3_240_280, 0).saturating_mul(c.into())) + // Standard Error: 2_909 + .saturating_add(Weight::from_parts(3_005_867, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -281,11 +281,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured) fn force_open_hrmp_channel() -> Weight { // Proof Size summary in bytes: - // Measured: `653` - // Estimated: `6593` - // Minimum execution time: 58_486_000 picoseconds. - Weight::from_parts(58_882_000, 0) - .saturating_add(Weight::from_parts(0, 6593)) + // Measured: `666` + // Estimated: `6606` + // Minimum execution time: 55_043_000 picoseconds. + Weight::from_parts(55_667_000, 0) + .saturating_add(Weight::from_parts(0, 6606)) .saturating_add(T::DbWeight::get().reads(14)) .saturating_add(T::DbWeight::get().writes(8)) } diff --git a/runtime/polkadot/src/weights/runtime_parachains_inclusion.rs b/runtime/polkadot/src/weights/runtime_parachains_inclusion.rs index 0ab5c1e30650..a9362a008de2 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_inclusion.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_inclusion.rs @@ -1,4 +1,4 @@ -// Copyright 2017-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Polkadot. // Polkadot is free software: you can redistribute it and/or modify @@ -13,16 +13,17 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . + //! Autogenerated weights for `runtime_parachains::inclusion` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-02-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: -// ./target/release/polkadot +// ./target/production/polkadot // benchmark // pallet // --chain=polkadot-dev @@ -33,34 +34,41 @@ // --execution=wasm // --wasm-execution=compiled // --header=./file_header.txt -// --output=./runtime/polkadot/src/weights +// --output=./runtime/polkadot/src/weights/runtime_parachains_inclusion.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `runtime_parachains::inclusion`. pub struct WeightInfo(PhantomData); impl runtime_parachains::inclusion::WeightInfo for WeightInfo { /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:999) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65586), added: 68061, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) /// The range of component `i` is `[1, 1000]`. fn receive_upward_messages(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `51490` - // Estimated: `70587` - // Minimum execution time: 50_423 nanoseconds. - Weight::from_parts(160_584_092, 0) - .saturating_add(Weight::from_parts(0, 70587)) - // Standard Error: 75_127 - .saturating_add(Weight::from_parts(41_929_458, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `66077` + // Estimated: `69051` + // Minimum execution time: 115_570_000 picoseconds. + Weight::from_parts(116_507_000, 0) + .saturating_add(Weight::from_parts(0, 69051)) + // Standard Error: 109_250 + .saturating_add(Weight::from_parts(95_024_656, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } } diff --git a/runtime/polkadot/src/weights/runtime_parachains_initializer.rs b/runtime/polkadot/src/weights/runtime_parachains_initializer.rs index 3c6e92d93aa5..d157f4d33bde 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_initializer.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_initializer.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::initializer` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl runtime_parachains::initializer::WeightInfo for We // Proof Size summary in bytes: // Measured: `0 + d * (11 ±0)` // Estimated: `1480 + d * (11 ±0)` - // Minimum execution time: 4_016_000 picoseconds. - Weight::from_parts(5_836_300, 0) + // Minimum execution time: 4_061_000 picoseconds. + Weight::from_parts(7_642_836, 0) .saturating_add(Weight::from_parts(0, 1480)) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_413, 0).saturating_mul(d.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_310, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 11).saturating_mul(d.into())) diff --git a/runtime/polkadot/src/weights/runtime_parachains_paras.rs b/runtime/polkadot/src/weights/runtime_parachains_paras.rs index 7defb66a4af4..229b1d7c8ebb 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_paras.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_paras.rs @@ -17,30 +17,29 @@ //! Autogenerated weights for `runtime_parachains::paras` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: -// target/production/polkadot +// ./target/production/polkadot // benchmark // pallet +// --chain=polkadot-dev // --steps=50 // --repeat=20 +// --pallet=runtime_parachains::paras // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json -// --pallet=runtime_parachains::paras -// --chain=polkadot-dev // --header=./file_header.txt -// --output=./runtime/polkadot/src/weights/ +// --output=./runtime/polkadot/src/weights/runtime_parachains_paras.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; @@ -65,11 +64,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `8309` // Estimated: `11774` - // Minimum execution time: 32_694_000 picoseconds. - Weight::from_parts(32_922_000, 0) + // Minimum execution time: 31_933_000 picoseconds. + Weight::from_parts(32_269_000, 0) .saturating_add(Weight::from_parts(0, 11774)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_979, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_941, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -80,11 +79,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_539_000 picoseconds. - Weight::from_parts(8_748_000, 0) + // Minimum execution time: 8_221_000 picoseconds. + Weight::from_parts(8_441_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 2 - .saturating_add(Weight::from_parts(882, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(855, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Configuration ActiveConfig (r:1 w:0) @@ -110,13 +109,13 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// The range of component `c` is `[1, 3145728]`. fn force_schedule_code_upgrade(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `8694` - // Estimated: `12159` - // Minimum execution time: 51_492_000 picoseconds. - Weight::from_parts(51_683_000, 0) - .saturating_add(Weight::from_parts(0, 12159)) + // Measured: `8744` + // Estimated: `12209` + // Minimum execution time: 50_896_000 picoseconds. + Weight::from_parts(51_286_000, 0) + .saturating_add(Weight::from_parts(0, 12209)) // Standard Error: 1 - .saturating_add(Weight::from_parts(2_009, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_966, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -131,11 +130,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `95` // Estimated: `3560` - // Minimum execution time: 14_471_000 picoseconds. - Weight::from_parts(14_720_000, 0) + // Minimum execution time: 14_358_000 picoseconds. + Weight::from_parts(14_539_000, 0) .saturating_add(Weight::from_parts(0, 3560)) // Standard Error: 2 - .saturating_add(Weight::from_parts(887, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(861, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -145,11 +144,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) fn force_queue_action() -> Weight { // Proof Size summary in bytes: - // Measured: `4251` - // Estimated: `7716` - // Minimum execution time: 20_295_000 picoseconds. - Weight::from_parts(20_587_000, 0) - .saturating_add(Weight::from_parts(0, 7716)) + // Measured: `4288` + // Estimated: `7753` + // Minimum execution time: 20_315_000 picoseconds. + Weight::from_parts(20_726_000, 0) + .saturating_add(Weight::from_parts(0, 7753)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -166,13 +165,13 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// The range of component `c` is `[1, 3145728]`. fn add_trusted_validation_code(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `925` - // Estimated: `4390` - // Minimum execution time: 85_377_000 picoseconds. - Weight::from_parts(69_772_527, 0) - .saturating_add(Weight::from_parts(0, 4390)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_441, 0).saturating_mul(c.into())) + // Measured: `975` + // Estimated: `4440` + // Minimum execution time: 81_220_000 picoseconds. + Weight::from_parts(44_672_627, 0) + .saturating_add(Weight::from_parts(0, 4440)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_447, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -184,8 +183,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `28` // Estimated: `3493` - // Minimum execution time: 6_677_000 picoseconds. - Weight::from_parts(6_911_000, 0) + // Minimum execution time: 6_686_000 picoseconds. + Weight::from_parts(6_879_000, 0) .saturating_add(Weight::from_parts(0, 3493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -198,11 +197,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement() -> Weight { // Proof Size summary in bytes: - // Measured: `26645` - // Estimated: `30110` - // Minimum execution time: 92_860_000 picoseconds. - Weight::from_parts(93_926_000, 0) - .saturating_add(Weight::from_parts(0, 30110)) + // Measured: `26682` + // Estimated: `30147` + // Minimum execution time: 88_186_000 picoseconds. + Weight::from_parts(90_611_000, 0) + .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -224,11 +223,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_upgrade_accept() -> Weight { // Proof Size summary in bytes: - // Measured: `27502` - // Estimated: `30967` - // Minimum execution time: 792_233_000 picoseconds. - Weight::from_parts(800_363_000, 0) - .saturating_add(Weight::from_parts(0, 30967)) + // Measured: `27552` + // Estimated: `31017` + // Minimum execution time: 791_792_000 picoseconds. + Weight::from_parts(797_800_000, 0) + .saturating_add(Weight::from_parts(0, 31017)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(104)) } @@ -240,11 +239,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_upgrade_reject() -> Weight { // Proof Size summary in bytes: - // Measured: `27177` - // Estimated: `30642` - // Minimum execution time: 88_272_000 picoseconds. - Weight::from_parts(89_916_000, 0) - .saturating_add(Weight::from_parts(0, 30642)) + // Measured: `27214` + // Estimated: `30679` + // Minimum execution time: 87_940_000 picoseconds. + Weight::from_parts(89_168_000, 0) + .saturating_add(Weight::from_parts(0, 30679)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -262,11 +261,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_onboarding_accept() -> Weight { // Proof Size summary in bytes: - // Measured: `26970` - // Estimated: `30435` - // Minimum execution time: 623_703_000 picoseconds. - Weight::from_parts(630_875_000, 0) - .saturating_add(Weight::from_parts(0, 30435)) + // Measured: `27020` + // Estimated: `30485` + // Minimum execution time: 625_861_000 picoseconds. + Weight::from_parts(629_850_000, 0) + .saturating_add(Weight::from_parts(0, 30485)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -278,11 +277,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_onboarding_reject() -> Weight { // Proof Size summary in bytes: - // Measured: `26645` - // Estimated: `30110` - // Minimum execution time: 87_411_000 picoseconds. - Weight::from_parts(89_432_000, 0) - .saturating_add(Weight::from_parts(0, 30110)) + // Measured: `26682` + // Estimated: `30147` + // Minimum execution time: 86_963_000 picoseconds. + Weight::from_parts(88_490_000, 0) + .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs b/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs index 8741a14eef79..0f7493af8567 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::paras_inherent` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -67,6 +67,14 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasDisputes Included (r:1 w:1) /// Proof Skipped: ParasDisputes Included (max_values: None, max_size: None, mode: Measured) + /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) + /// Proof Skipped: ParaSessionInfo AccountKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session Validators (r:1 w:0) + /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking ActiveEra (r:1 w:0) + /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// Storage: Staking ErasRewardPoints (r:1 w:1) + /// Proof Skipped: Staking ErasRewardPoints (max_values: None, max_size: None, mode: Measured) /// Storage: ParasDisputes Frozen (r:1 w:0) /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) @@ -77,14 +85,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) /// Proof Skipped: ParaInclusion PendingAvailabilityCommitments (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) - /// Proof Skipped: ParaSessionInfo AccountKeys (max_values: None, max_size: None, mode: Measured) - /// Storage: Session Validators (r:1 w:0) - /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Staking ActiveEra (r:1 w:0) - /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) - /// Storage: Staking ErasRewardPoints (r:1 w:1) - /// Proof Skipped: Staking ErasRewardPoints (max_values: None, max_size: None, mode: Measured) /// Storage: Dmp DownwardMessageQueues (r:1 w:1) /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) /// Storage: Dmp DeliveryFeeFactor (r:1 w:1) @@ -103,10 +103,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParaScheduler Scheduled (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler ValidatorGroups (r:1 w:0) /// Proof Skipped: ParaScheduler ValidatorGroups (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Hrmp HrmpWatermarks (r:0 w:1) /// Proof Skipped: Hrmp HrmpWatermarks (max_values: None, max_size: None, mode: Measured) /// Storage: Paras Heads (r:0 w:1) @@ -116,15 +112,15 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// The range of component `v` is `[10, 200]`. fn enter_variable_disputes(v: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `50979` - // Estimated: `56919 + v * (23 ±0)` - // Minimum execution time: 775_640_000 picoseconds. - Weight::from_parts(309_710_346, 0) - .saturating_add(Weight::from_parts(0, 56919)) - // Standard Error: 27_371 - .saturating_add(Weight::from_parts(48_505_416, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(30)) - .saturating_add(T::DbWeight::get().writes(17)) + // Measured: `50915` + // Estimated: `56855 + v * (23 ±0)` + // Minimum execution time: 767_508_000 picoseconds. + Weight::from_parts(298_394_077, 0) + .saturating_add(Weight::from_parts(0, 56855)) + // Standard Error: 19_865 + .saturating_add(Weight::from_parts(48_079_769, 0).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads(28)) + .saturating_add(T::DbWeight::get().writes(15)) .saturating_add(Weight::from_parts(0, 23).saturating_mul(v.into())) } /// Storage: ParaInherent Included (r:1 w:1) @@ -177,10 +173,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParaScheduler Scheduled (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler ValidatorGroups (r:1 w:0) /// Proof Skipped: ParaScheduler ValidatorGroups (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion AvailabilityBitfields (r:0 w:1) /// Proof Skipped: ParaInclusion AvailabilityBitfields (max_values: None, max_size: None, mode: Measured) /// Storage: ParasDisputes Included (r:0 w:1) @@ -193,13 +185,13 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Paras UpgradeGoAheadSignal (max_values: None, max_size: None, mode: Measured) fn enter_bitfields() -> Weight { // Proof Size summary in bytes: - // Measured: `42813` - // Estimated: `48753` - // Minimum execution time: 331_835_000 picoseconds. - Weight::from_parts(349_288_000, 0) - .saturating_add(Weight::from_parts(0, 48753)) - .saturating_add(T::DbWeight::get().reads(28)) - .saturating_add(T::DbWeight::get().writes(18)) + // Measured: `42748` + // Estimated: `48688` + // Minimum execution time: 324_159_000 picoseconds. + Weight::from_parts(331_096_000, 0) + .saturating_add(Weight::from_parts(0, 48688)) + .saturating_add(T::DbWeight::get().reads(26)) + .saturating_add(T::DbWeight::get().writes(16)) } /// Storage: ParaInherent Included (r:1 w:1) /// Proof Skipped: ParaInherent Included (max_values: Some(1), max_size: None, mode: Measured) @@ -253,12 +245,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParaScheduler ValidatorGroups (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:1 w:0) /// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump RelayDispatchQueueSize (r:1 w:0) - /// Proof Skipped: Ump RelayDispatchQueueSize (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras ParaLifecycles (r:1 w:0) + /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: ParasDisputes Included (r:0 w:1) /// Proof Skipped: ParasDisputes Included (max_values: None, max_size: None, mode: Measured) /// Storage: Hrmp HrmpWatermarks (r:0 w:1) @@ -270,15 +260,15 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// The range of component `v` is `[101, 200]`. fn enter_backed_candidates_variable(v: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `42844` - // Estimated: `48784` - // Minimum execution time: 5_556_649_000 picoseconds. - Weight::from_parts(801_603_917, 0) - .saturating_add(Weight::from_parts(0, 48784)) - // Standard Error: 49_954 - .saturating_add(Weight::from_parts(48_016_194, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(31)) - .saturating_add(T::DbWeight::get().writes(17)) + // Measured: `42784` + // Estimated: `48724` + // Minimum execution time: 5_551_865_000 picoseconds. + Weight::from_parts(784_879_818, 0) + .saturating_add(Weight::from_parts(0, 48724)) + // Standard Error: 37_120 + .saturating_add(Weight::from_parts(47_603_511, 0).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads(30)) + .saturating_add(T::DbWeight::get().writes(15)) } /// Storage: ParaInherent Included (r:1 w:1) /// Proof Skipped: ParaInherent Included (max_values: Some(1), max_size: None, mode: Measured) @@ -336,12 +326,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Paras FutureCodeHash (max_values: None, max_size: None, mode: Measured) /// Storage: Paras UpgradeRestrictionSignal (r:1 w:0) /// Proof Skipped: Paras UpgradeRestrictionSignal (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump RelayDispatchQueueSize (r:1 w:0) - /// Proof Skipped: Ump RelayDispatchQueueSize (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras ParaLifecycles (r:1 w:0) + /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: ParasDisputes Included (r:0 w:1) /// Proof Skipped: ParasDisputes Included (max_values: None, max_size: None, mode: Measured) /// Storage: Hrmp HrmpWatermarks (r:0 w:1) @@ -352,12 +340,12 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Paras UpgradeGoAheadSignal (max_values: None, max_size: None, mode: Measured) fn enter_backed_candidate_code_upgrade() -> Weight { // Proof Size summary in bytes: - // Measured: `42871` - // Estimated: `48811` - // Minimum execution time: 32_850_847_000 picoseconds. - Weight::from_parts(33_054_650_000, 0) - .saturating_add(Weight::from_parts(0, 48811)) - .saturating_add(T::DbWeight::get().reads(33)) - .saturating_add(T::DbWeight::get().writes(17)) + // Measured: `42811` + // Estimated: `48751` + // Minimum execution time: 32_605_022_000 picoseconds. + Weight::from_parts(32_862_445_000, 0) + .saturating_add(Weight::from_parts(0, 48751)) + .saturating_add(T::DbWeight::get().reads(32)) + .saturating_add(T::DbWeight::get().writes(15)) } } diff --git a/runtime/rococo/constants/src/weights/block_weights.rs b/runtime/rococo/constants/src/weights/block_weights.rs index 5e48a4b5acb3..e2aa4a6cab7f 100644 --- a/runtime/rococo/constants/src/weights/block_weights.rs +++ b/runtime/rococo/constants/src/weights/block_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28 (Y/M/D) -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-05-26 (Y/M/D) +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 404_815, 446_107 - /// Average: 412_260 - /// Median: 407_654 - /// Std-Dev: 10913.16 + /// Min, Max: 408_659, 450_716 + /// Average: 417_412 + /// Median: 411_177 + /// Std-Dev: 12242.31 /// /// Percentiles nanoseconds: - /// 99th: 442_332 - /// 95th: 437_202 - /// 75th: 409_924 + /// 99th: 445_142 + /// 95th: 442_275 + /// 75th: 414_217 pub const BlockExecutionWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(412_260), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(417_412), 0); } #[cfg(test)] diff --git a/runtime/rococo/constants/src/weights/extrinsic_weights.rs b/runtime/rococo/constants/src/weights/extrinsic_weights.rs index e82ff6b1e3d8..adce840ebbc1 100644 --- a/runtime/rococo/constants/src/weights/extrinsic_weights.rs +++ b/runtime/rococo/constants/src/weights/extrinsic_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28 (Y/M/D) -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-05-26 (Y/M/D) +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 97_150, 99_010 - /// Average: 97_618 - /// Median: 97_524 - /// Std-Dev: 330.47 + /// Min, Max: 97_574, 100_119 + /// Average: 98_236 + /// Median: 98_179 + /// Std-Dev: 394.9 /// /// Percentiles nanoseconds: - /// 99th: 98_640 - /// 95th: 98_346 - /// 75th: 97_735 + /// 99th: 99_893 + /// 95th: 98_850 + /// 75th: 98_318 pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(97_618), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(98_236), 0); } #[cfg(test)] diff --git a/runtime/rococo/src/weights/frame_benchmarking_baseline.rs b/runtime/rococo/src/weights/frame_benchmarking_baseline.rs index e466176c293c..dfba0cfc4aa9 100644 --- a/runtime/rococo/src/weights/frame_benchmarking_baseline.rs +++ b/runtime/rococo/src/weights/frame_benchmarking_baseline.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_benchmarking::baseline` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -52,8 +52,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 177_000 picoseconds. - Weight::from_parts(225_107, 0) + // Minimum execution time: 157_000 picoseconds. + Weight::from_parts(175_233, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -61,8 +61,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 175_000 picoseconds. - Weight::from_parts(220_384, 0) + // Minimum execution time: 149_000 picoseconds. + Weight::from_parts(183_285, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -70,8 +70,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 178_000 picoseconds. - Weight::from_parts(225_711, 0) + // Minimum execution time: 158_000 picoseconds. + Weight::from_parts(184_720, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -79,16 +79,16 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 176_000 picoseconds. - Weight::from_parts(222_350, 0) + // Minimum execution time: 152_000 picoseconds. + Weight::from_parts(177_496, 0) .saturating_add(Weight::from_parts(0, 0)) } fn hashing() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 19_673_946_000 picoseconds. - Weight::from_parts(19_809_091_000, 0) + // Minimum execution time: 19_907_376_000 picoseconds. + Weight::from_parts(19_988_727_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 100]`. @@ -96,10 +96,10 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 237_000 picoseconds. - Weight::from_parts(248_000, 0) + // Minimum execution time: 198_000 picoseconds. + Weight::from_parts(228_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 17_424 - .saturating_add(Weight::from_parts(47_298_928, 0).saturating_mul(i.into())) + // Standard Error: 20_467 + .saturating_add(Weight::from_parts(47_443_635, 0).saturating_mul(i.into())) } } diff --git a/runtime/rococo/src/weights/frame_system.rs b/runtime/rococo/src/weights/frame_system.rs index f7c4b9fe5bd1..7765d669a577 100644 --- a/runtime/rococo/src/weights/frame_system.rs +++ b/runtime/rococo/src/weights/frame_system.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -52,22 +52,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_407_000 picoseconds. - Weight::from_parts(2_436_000, 0) + // Minimum execution time: 2_283_000 picoseconds. + Weight::from_parts(2_305_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(368, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(366, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_662_000 picoseconds. - Weight::from_parts(7_766_000, 0) + // Minimum execution time: 7_435_000 picoseconds. + Weight::from_parts(7_581_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_407, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_408, 0).saturating_mul(b.into())) } /// Storage: System Digest (r:1 w:1) /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) @@ -77,14 +77,25 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 4_183_000 picoseconds. - Weight::from_parts(4_431_000, 0) + // Minimum execution time: 4_010_000 picoseconds. + Weight::from_parts(4_112_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a636f6465` (r:0 w:1) + /// Proof Skipped: unknown `0x3a636f6465` (r:0 w:1) fn set_code() -> Weight { - Weight::from_parts(1_000_000, 0) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 80_405_511_000 picoseconds. + Weight::from_parts(83_066_478_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Skipped Metadata (r:0 w:0) /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) @@ -93,11 +104,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_366_000 picoseconds. - Weight::from_parts(2_411_000, 0) + // Minimum execution time: 2_210_000 picoseconds. + Weight::from_parts(2_247_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_003 - .saturating_add(Weight::from_parts(670_137, 0).saturating_mul(i.into())) + // Standard Error: 2_058 + .saturating_add(Weight::from_parts(673_943, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -107,11 +118,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_359_000 picoseconds. - Weight::from_parts(2_465_000, 0) + // Minimum execution time: 2_125_000 picoseconds. + Weight::from_parts(2_154_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 835 - .saturating_add(Weight::from_parts(494_207, 0).saturating_mul(i.into())) + // Standard Error: 816 + .saturating_add(Weight::from_parts(491_194, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -119,13 +130,13 @@ impl frame_system::WeightInfo for WeightInfo { /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `131 + p * (69 ±0)` - // Estimated: `126 + p * (70 ±0)` - // Minimum execution time: 4_212_000 picoseconds. - Weight::from_parts(4_297_000, 0) - .saturating_add(Weight::from_parts(0, 126)) - // Standard Error: 1_066 - .saturating_add(Weight::from_parts(1_022_162, 0).saturating_mul(p.into())) + // Measured: `129 + p * (69 ±0)` + // Estimated: `125 + p * (70 ±0)` + // Minimum execution time: 4_002_000 picoseconds. + Weight::from_parts(4_145_000, 0) + .saturating_add(Weight::from_parts(0, 125)) + // Standard Error: 1_108 + .saturating_add(Weight::from_parts(1_014_971, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) diff --git a/runtime/rococo/src/weights/pallet_balances_nis_counterpart_balances.rs b/runtime/rococo/src/weights/pallet_balances_nis_counterpart_balances.rs index 36dec0be89d4..597a67de4b99 100644 --- a/runtime/rococo/src/weights/pallet_balances_nis_counterpart_balances.rs +++ b/runtime/rococo/src/weights/pallet_balances_nis_counterpart_balances.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -57,8 +57,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `6164` - // Minimum execution time: 54_036_000 picoseconds. - Weight::from_parts(54_761_000, 0) + // Minimum execution time: 54_122_000 picoseconds. + Weight::from_parts(54_834_000, 0) .saturating_add(Weight::from_parts(0, 6164)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -73,8 +73,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `6164` - // Minimum execution time: 41_693_000 picoseconds. - Weight::from_parts(42_335_000, 0) + // Minimum execution time: 41_749_000 picoseconds. + Weight::from_parts(42_193_000, 0) .saturating_add(Weight::from_parts(0, 6164)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -85,8 +85,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `217` // Estimated: `3577` - // Minimum execution time: 16_386_000 picoseconds. - Weight::from_parts(16_712_000, 0) + // Minimum execution time: 16_008_000 picoseconds. + Weight::from_parts(16_328_000, 0) .saturating_add(Weight::from_parts(0, 3577)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -101,8 +101,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `393` // Estimated: `3593` - // Minimum execution time: 26_518_000 picoseconds. - Weight::from_parts(27_185_000, 0) + // Minimum execution time: 26_277_000 picoseconds. + Weight::from_parts(26_932_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -117,8 +117,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `322` // Estimated: `6196` - // Minimum execution time: 56_563_000 picoseconds. - Weight::from_parts(57_220_000, 0) + // Minimum execution time: 57_020_000 picoseconds. + Weight::from_parts(57_661_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -133,8 +133,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `6164` - // Minimum execution time: 50_372_000 picoseconds. - Weight::from_parts(51_117_000, 0) + // Minimum execution time: 50_630_000 picoseconds. + Weight::from_parts(51_191_000, 0) .saturating_add(Weight::from_parts(0, 6164)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -147,8 +147,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `391` // Estimated: `3593` - // Minimum execution time: 21_992_000 picoseconds. - Weight::from_parts(22_345_000, 0) + // Minimum execution time: 21_915_000 picoseconds. + Weight::from_parts(22_295_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -163,11 +163,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (256 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 21_389_000 picoseconds. - Weight::from_parts(21_645_000, 0) + // Minimum execution time: 21_290_000 picoseconds. + Weight::from_parts(21_622_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 12_857 - .saturating_add(Weight::from_parts(15_438_302, 0).saturating_mul(u.into())) + // Standard Error: 13_372 + .saturating_add(Weight::from_parts(15_527_611, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) diff --git a/runtime/rococo/src/weights/pallet_bounties.rs b/runtime/rococo/src/weights/pallet_bounties.rs index 966e742a721b..38d3645316f2 100644 --- a/runtime/rococo/src/weights/pallet_bounties.rs +++ b/runtime/rococo/src/weights/pallet_bounties.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -60,11 +60,11 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `210` // Estimated: `3593` - // Minimum execution time: 29_274_000 picoseconds. - Weight::from_parts(30_197_329, 0) + // Minimum execution time: 28_907_000 picoseconds. + Weight::from_parts(31_356_074, 0) .saturating_add(Weight::from_parts(0, 3593)) - // Standard Error: 5 - .saturating_add(Weight::from_parts(706, 0).saturating_mul(d.into())) + // Standard Error: 18 + .saturating_add(Weight::from_parts(606, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -128,8 +128,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `482` // Estimated: `3642` - // Minimum execution time: 46_157_000 picoseconds. - Weight::from_parts(46_866_000, 0) + // Minimum execution time: 46_020_000 picoseconds. + Weight::from_parts(46_711_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -158,7 +158,7 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Measured: `0` // Estimated: `1887` // Minimum execution time: 0_000 picoseconds. - Weight::from_parts(2_416_468, 0) + Weight::from_parts(2_405_233, 0) .saturating_add(Weight::from_parts(0, 1887)) } } diff --git a/runtime/rococo/src/weights/pallet_child_bounties.rs b/runtime/rococo/src/weights/pallet_child_bounties.rs index 4defcf7bf151..e8c798d45e72 100644 --- a/runtime/rococo/src/weights/pallet_child_bounties.rs +++ b/runtime/rococo/src/weights/pallet_child_bounties.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_child_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: diff --git a/runtime/rococo/src/weights/pallet_collective_council.rs b/runtime/rococo/src/weights/pallet_collective_council.rs index 422510fd6425..835bdef7e673 100644 --- a/runtime/rococo/src/weights/pallet_collective_council.rs +++ b/runtime/rococo/src/weights/pallet_collective_council.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -65,13 +65,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` // Estimated: `15795 + m * (1967 ±16) + p * (4332 ±16)` - // Minimum execution time: 18_402_000 picoseconds. - Weight::from_parts(18_692_000, 0) + // Minimum execution time: 17_182_000 picoseconds. + Weight::from_parts(17_462_000, 0) .saturating_add(Weight::from_parts(0, 15795)) - // Standard Error: 49_983 - .saturating_add(Weight::from_parts(5_669_630, 0).saturating_mul(m.into())) - // Standard Error: 49_983 - .saturating_add(Weight::from_parts(8_322_090, 0).saturating_mul(p.into())) + // Standard Error: 42_032 + .saturating_add(Weight::from_parts(4_868_618, 0).saturating_mul(m.into())) + // Standard Error: 42_032 + .saturating_add(Weight::from_parts(7_289_594, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -89,13 +89,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `136 + m * (32 ±0)` // Estimated: `1622 + m * (32 ±0)` - // Minimum execution time: 17_337_000 picoseconds. - Weight::from_parts(16_651_455, 0) + // Minimum execution time: 16_507_000 picoseconds. + Weight::from_parts(16_066_632, 0) .saturating_add(Weight::from_parts(0, 1622)) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_262, 0).saturating_mul(b.into())) - // Standard Error: 152 - .saturating_add(Weight::from_parts(15_343, 0).saturating_mul(m.into())) + // Standard Error: 21 + .saturating_add(Weight::from_parts(982, 0).saturating_mul(b.into())) + // Standard Error: 220 + .saturating_add(Weight::from_parts(14_026, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -111,13 +111,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `136 + m * (32 ±0)` // Estimated: `3602 + m * (32 ±0)` - // Minimum execution time: 19_954_000 picoseconds. - Weight::from_parts(19_499_749, 0) + // Minimum execution time: 18_990_000 picoseconds. + Weight::from_parts(18_411_713, 0) .saturating_add(Weight::from_parts(0, 3602)) - // Standard Error: 20 - .saturating_add(Weight::from_parts(1_077, 0).saturating_mul(b.into())) - // Standard Error: 211 - .saturating_add(Weight::from_parts(22_981, 0).saturating_mul(m.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(1_166, 0).saturating_mul(b.into())) + // Standard Error: 164 + .saturating_add(Weight::from_parts(23_067, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -141,15 +141,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `426 + m * (32 ±0) + p * (36 ±0)` // Estimated: `3818 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 26_208_000 picoseconds. - Weight::from_parts(27_096_847, 0) + // Minimum execution time: 25_500_000 picoseconds. + Weight::from_parts(26_304_307, 0) .saturating_add(Weight::from_parts(0, 3818)) - // Standard Error: 48 - .saturating_add(Weight::from_parts(2_189, 0).saturating_mul(b.into())) - // Standard Error: 503 - .saturating_add(Weight::from_parts(20_504, 0).saturating_mul(m.into())) - // Standard Error: 497 - .saturating_add(Weight::from_parts(120_318, 0).saturating_mul(p.into())) + // Standard Error: 49 + .saturating_add(Weight::from_parts(2_243, 0).saturating_mul(b.into())) + // Standard Error: 515 + .saturating_add(Weight::from_parts(18_905, 0).saturating_mul(m.into())) + // Standard Error: 508 + .saturating_add(Weight::from_parts(120_761, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) @@ -165,11 +165,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `875 + m * (64 ±0)` // Estimated: `4339 + m * (64 ±0)` - // Minimum execution time: 22_980_000 picoseconds. - Weight::from_parts(23_621_937, 0) + // Minimum execution time: 22_166_000 picoseconds. + Weight::from_parts(22_901_859, 0) .saturating_add(Weight::from_parts(0, 4339)) - // Standard Error: 283 - .saturating_add(Weight::from_parts(42_568, 0).saturating_mul(m.into())) + // Standard Error: 238 + .saturating_add(Weight::from_parts(40_475, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -190,13 +190,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `464 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3909 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 27_454_000 picoseconds. - Weight::from_parts(28_773_744, 0) + // Minimum execution time: 27_064_000 picoseconds. + Weight::from_parts(27_961_599, 0) .saturating_add(Weight::from_parts(0, 3909)) - // Standard Error: 378 - .saturating_add(Weight::from_parts(19_297, 0).saturating_mul(m.into())) - // Standard Error: 368 - .saturating_add(Weight::from_parts(117_370, 0).saturating_mul(p.into())) + // Standard Error: 401 + .saturating_add(Weight::from_parts(22_196, 0).saturating_mul(m.into())) + // Standard Error: 391 + .saturating_add(Weight::from_parts(115_698, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -220,13 +220,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `766 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4083 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 39_077_000 picoseconds. - Weight::from_parts(41_622_516, 0) + // Minimum execution time: 38_302_000 picoseconds. + Weight::from_parts(40_639_640, 0) .saturating_add(Weight::from_parts(0, 4083)) // Standard Error: 123 - .saturating_add(Weight::from_parts(1_933, 0).saturating_mul(b.into())) - // Standard Error: 1_276 - .saturating_add(Weight::from_parts(150_639, 0).saturating_mul(p.into())) + .saturating_add(Weight::from_parts(1_914, 0).saturating_mul(b.into())) + // Standard Error: 1_272 + .saturating_add(Weight::from_parts(150_067, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -251,13 +251,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `484 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3929 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 30_045_000 picoseconds. - Weight::from_parts(31_073_236, 0) + // Minimum execution time: 30_017_000 picoseconds. + Weight::from_parts(30_565_580, 0) .saturating_add(Weight::from_parts(0, 3929)) - // Standard Error: 403 - .saturating_add(Weight::from_parts(24_734, 0).saturating_mul(m.into())) - // Standard Error: 393 - .saturating_add(Weight::from_parts(117_906, 0).saturating_mul(p.into())) + // Standard Error: 378 + .saturating_add(Weight::from_parts(24_396, 0).saturating_mul(m.into())) + // Standard Error: 369 + .saturating_add(Weight::from_parts(114_807, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -283,15 +283,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `786 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4103 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 42_126_000 picoseconds. - Weight::from_parts(43_424_776, 0) + // Minimum execution time: 40_911_000 picoseconds. + Weight::from_parts(42_312_485, 0) .saturating_add(Weight::from_parts(0, 4103)) - // Standard Error: 84 - .saturating_add(Weight::from_parts(2_213, 0).saturating_mul(b.into())) - // Standard Error: 897 - .saturating_add(Weight::from_parts(20_583, 0).saturating_mul(m.into())) - // Standard Error: 874 - .saturating_add(Weight::from_parts(146_262, 0).saturating_mul(p.into())) + // Standard Error: 83 + .saturating_add(Weight::from_parts(2_208, 0).saturating_mul(b.into())) + // Standard Error: 879 + .saturating_add(Weight::from_parts(20_173, 0).saturating_mul(m.into())) + // Standard Error: 857 + .saturating_add(Weight::from_parts(146_302, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -310,11 +310,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `293 + p * (32 ±0)` // Estimated: `1778 + p * (32 ±0)` - // Minimum execution time: 15_659_000 picoseconds. - Weight::from_parts(17_899_384, 0) + // Minimum execution time: 15_465_000 picoseconds. + Weight::from_parts(17_387_663, 0) .saturating_add(Weight::from_parts(0, 1778)) - // Standard Error: 452 - .saturating_add(Weight::from_parts(108_783, 0).saturating_mul(p.into())) + // Standard Error: 450 + .saturating_add(Weight::from_parts(110_406, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) diff --git a/runtime/rococo/src/weights/pallet_collective_technical_committee.rs b/runtime/rococo/src/weights/pallet_collective_technical_committee.rs index ee1ea7accd03..6d66dc871cd5 100644 --- a/runtime/rococo/src/weights/pallet_collective_technical_committee.rs +++ b/runtime/rococo/src/weights/pallet_collective_technical_committee.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -65,13 +65,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` // Estimated: `15766 + m * (1967 ±16) + p * (4332 ±16)` - // Minimum execution time: 19_034_000 picoseconds. - Weight::from_parts(19_243_000, 0) + // Minimum execution time: 17_826_000 picoseconds. + Weight::from_parts(18_046_000, 0) .saturating_add(Weight::from_parts(0, 15766)) - // Standard Error: 50_700 - .saturating_add(Weight::from_parts(5_726_755, 0).saturating_mul(m.into())) - // Standard Error: 50_700 - .saturating_add(Weight::from_parts(8_481_014, 0).saturating_mul(p.into())) + // Standard Error: 42_164 + .saturating_add(Weight::from_parts(4_858_188, 0).saturating_mul(m.into())) + // Standard Error: 42_164 + .saturating_add(Weight::from_parts(7_379_354, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -89,13 +89,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107 + m * (32 ±0)` // Estimated: `1593 + m * (32 ±0)` - // Minimum execution time: 17_950_000 picoseconds. - Weight::from_parts(17_125_778, 0) + // Minimum execution time: 16_992_000 picoseconds. + Weight::from_parts(16_555_669, 0) .saturating_add(Weight::from_parts(0, 1593)) - // Standard Error: 10 - .saturating_add(Weight::from_parts(1_182, 0).saturating_mul(b.into())) - // Standard Error: 103 - .saturating_add(Weight::from_parts(14_125, 0).saturating_mul(m.into())) + // Standard Error: 18 + .saturating_add(Weight::from_parts(976, 0).saturating_mul(b.into())) + // Standard Error: 189 + .saturating_add(Weight::from_parts(12_101, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -111,13 +111,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107 + m * (32 ±0)` // Estimated: `3573 + m * (32 ±0)` - // Minimum execution time: 20_593_000 picoseconds. - Weight::from_parts(20_116_875, 0) + // Minimum execution time: 19_900_000 picoseconds. + Weight::from_parts(19_068_072, 0) .saturating_add(Weight::from_parts(0, 3573)) - // Standard Error: 20 - .saturating_add(Weight::from_parts(1_045, 0).saturating_mul(b.into())) - // Standard Error: 206 - .saturating_add(Weight::from_parts(21_982, 0).saturating_mul(m.into())) + // Standard Error: 12 + .saturating_add(Weight::from_parts(1_161, 0).saturating_mul(b.into())) + // Standard Error: 129 + .saturating_add(Weight::from_parts(22_376, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -141,15 +141,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `397 + m * (32 ±0) + p * (36 ±0)` // Estimated: `3789 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 26_957_000 picoseconds. - Weight::from_parts(28_225_593, 0) + // Minimum execution time: 26_264_000 picoseconds. + Weight::from_parts(27_099_606, 0) .saturating_add(Weight::from_parts(0, 3789)) - // Standard Error: 49 - .saturating_add(Weight::from_parts(2_111, 0).saturating_mul(b.into())) + // Standard Error: 50 + .saturating_add(Weight::from_parts(2_278, 0).saturating_mul(b.into())) + // Standard Error: 525 + .saturating_add(Weight::from_parts(19_424, 0).saturating_mul(m.into())) // Standard Error: 519 - .saturating_add(Weight::from_parts(19_059, 0).saturating_mul(m.into())) - // Standard Error: 512 - .saturating_add(Weight::from_parts(120_207, 0).saturating_mul(p.into())) + .saturating_add(Weight::from_parts(120_852, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) @@ -165,11 +165,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `846 + m * (64 ±0)` // Estimated: `4310 + m * (64 ±0)` - // Minimum execution time: 23_883_000 picoseconds. - Weight::from_parts(24_569_576, 0) + // Minimum execution time: 22_954_000 picoseconds. + Weight::from_parts(23_675_214, 0) .saturating_add(Weight::from_parts(0, 4310)) - // Standard Error: 269 - .saturating_add(Weight::from_parts(41_322, 0).saturating_mul(m.into())) + // Standard Error: 256 + .saturating_add(Weight::from_parts(40_562, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -190,13 +190,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `435 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3880 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 28_970_000 picoseconds. - Weight::from_parts(29_869_666, 0) + // Minimum execution time: 27_797_000 picoseconds. + Weight::from_parts(28_934_600, 0) .saturating_add(Weight::from_parts(0, 3880)) - // Standard Error: 400 - .saturating_add(Weight::from_parts(19_955, 0).saturating_mul(m.into())) - // Standard Error: 390 - .saturating_add(Weight::from_parts(117_749, 0).saturating_mul(p.into())) + // Standard Error: 374 + .saturating_add(Weight::from_parts(20_716, 0).saturating_mul(m.into())) + // Standard Error: 364 + .saturating_add(Weight::from_parts(115_491, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -220,15 +220,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `737 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4054 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 40_564_000 picoseconds. - Weight::from_parts(41_772_905, 0) + // Minimum execution time: 39_160_000 picoseconds. + Weight::from_parts(40_470_419, 0) .saturating_add(Weight::from_parts(0, 4054)) - // Standard Error: 84 - .saturating_add(Weight::from_parts(2_216, 0).saturating_mul(b.into())) - // Standard Error: 890 - .saturating_add(Weight::from_parts(22_219, 0).saturating_mul(m.into())) - // Standard Error: 867 - .saturating_add(Weight::from_parts(145_999, 0).saturating_mul(p.into())) + // Standard Error: 82 + .saturating_add(Weight::from_parts(2_146, 0).saturating_mul(b.into())) + // Standard Error: 869 + .saturating_add(Weight::from_parts(21_442, 0).saturating_mul(m.into())) + // Standard Error: 847 + .saturating_add(Weight::from_parts(144_479, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -253,13 +253,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `455 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3900 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 31_510_000 picoseconds. - Weight::from_parts(32_155_917, 0) + // Minimum execution time: 30_953_000 picoseconds. + Weight::from_parts(31_427_489, 0) .saturating_add(Weight::from_parts(0, 3900)) - // Standard Error: 409 - .saturating_add(Weight::from_parts(25_521, 0).saturating_mul(m.into())) - // Standard Error: 399 - .saturating_add(Weight::from_parts(118_710, 0).saturating_mul(p.into())) + // Standard Error: 397 + .saturating_add(Weight::from_parts(24_280, 0).saturating_mul(m.into())) + // Standard Error: 387 + .saturating_add(Weight::from_parts(116_864, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -285,15 +285,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `757 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4074 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 42_881_000 picoseconds. - Weight::from_parts(44_703_551, 0) + // Minimum execution time: 41_468_000 picoseconds. + Weight::from_parts(43_538_242, 0) .saturating_add(Weight::from_parts(0, 4074)) - // Standard Error: 83 - .saturating_add(Weight::from_parts(1_971, 0).saturating_mul(b.into())) - // Standard Error: 883 - .saturating_add(Weight::from_parts(22_002, 0).saturating_mul(m.into())) - // Standard Error: 861 - .saturating_add(Weight::from_parts(145_799, 0).saturating_mul(p.into())) + // Standard Error: 80 + .saturating_add(Weight::from_parts(1_994, 0).saturating_mul(b.into())) + // Standard Error: 853 + .saturating_add(Weight::from_parts(19_637, 0).saturating_mul(m.into())) + // Standard Error: 831 + .saturating_add(Weight::from_parts(144_674, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -312,11 +312,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `264 + p * (32 ±0)` // Estimated: `1749 + p * (32 ±0)` - // Minimum execution time: 16_690_000 picoseconds. - Weight::from_parts(18_681_632, 0) + // Minimum execution time: 15_998_000 picoseconds. + Weight::from_parts(17_837_641, 0) .saturating_add(Weight::from_parts(0, 1749)) - // Standard Error: 445 - .saturating_add(Weight::from_parts(110_002, 0).saturating_mul(p.into())) + // Standard Error: 422 + .saturating_add(Weight::from_parts(111_526, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) diff --git a/runtime/rococo/src/weights/pallet_democracy.rs b/runtime/rococo/src/weights/pallet_democracy.rs index ad15ab5f5e15..00629a5c1103 100644 --- a/runtime/rococo/src/weights/pallet_democracy.rs +++ b/runtime/rococo/src/weights/pallet_democracy.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_democracy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -57,10 +57,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) fn propose() -> Weight { // Proof Size summary in bytes: - // Measured: `4768` + // Measured: `4734` // Estimated: `18187` - // Minimum execution time: 40_151_000 picoseconds. - Weight::from_parts(40_606_000, 0) + // Minimum execution time: 39_492_000 picoseconds. + Weight::from_parts(39_853_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -69,10 +69,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) fn second() -> Weight { // Proof Size summary in bytes: - // Measured: `3523` + // Measured: `3489` // Estimated: `6695` - // Minimum execution time: 36_989_000 picoseconds. - Weight::from_parts(37_243_000, 0) + // Minimum execution time: 36_683_000 picoseconds. + Weight::from_parts(37_121_000, 0) .saturating_add(Weight::from_parts(0, 6695)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -87,10 +87,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen) fn vote_new() -> Weight { // Proof Size summary in bytes: - // Measured: `3399` + // Measured: `3365` // Estimated: `7260` - // Minimum execution time: 48_236_000 picoseconds. - Weight::from_parts(49_083_000, 0) + // Minimum execution time: 48_191_000 picoseconds. + Weight::from_parts(48_936_000, 0) .saturating_add(Weight::from_parts(0, 7260)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -105,10 +105,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen) fn vote_existing() -> Weight { // Proof Size summary in bytes: - // Measured: `3421` + // Measured: `3387` // Estimated: `7260` - // Minimum execution time: 52_985_000 picoseconds. - Weight::from_parts(53_492_000, 0) + // Minimum execution time: 52_175_000 picoseconds. + Weight::from_parts(53_011_000, 0) .saturating_add(Weight::from_parts(0, 7260)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -121,10 +121,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) fn emergency_cancel() -> Weight { // Proof Size summary in bytes: - // Measured: `333` + // Measured: `299` // Estimated: `3666` - // Minimum execution time: 26_690_000 picoseconds. - Weight::from_parts(27_147_000, 0) + // Minimum execution time: 26_255_000 picoseconds. + Weight::from_parts(26_768_000, 0) .saturating_add(Weight::from_parts(0, 3666)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -145,10 +145,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) fn blacklist() -> Weight { // Proof Size summary in bytes: - // Measured: `5877` + // Measured: `5843` // Estimated: `18187` - // Minimum execution time: 96_789_000 picoseconds. - Weight::from_parts(97_702_000, 0) + // Minimum execution time: 96_376_000 picoseconds. + Weight::from_parts(97_222_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) @@ -159,10 +159,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) fn external_propose() -> Weight { // Proof Size summary in bytes: - // Measured: `3383` + // Measured: `3349` // Estimated: `6703` - // Minimum execution time: 14_212_000 picoseconds. - Weight::from_parts(14_728_000, 0) + // Minimum execution time: 13_815_000 picoseconds. + Weight::from_parts(14_071_000, 0) .saturating_add(Weight::from_parts(0, 6703)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -173,8 +173,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_762_000 picoseconds. - Weight::from_parts(3_938_000, 0) + // Minimum execution time: 3_456_000 picoseconds. + Weight::from_parts(3_716_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -184,8 +184,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_011_000 picoseconds. - Weight::from_parts(4_129_000, 0) + // Minimum execution time: 3_610_000 picoseconds. + Weight::from_parts(3_768_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -199,10 +199,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) fn fast_track() -> Weight { // Proof Size summary in bytes: - // Measured: `253` + // Measured: `219` // Estimated: `3518` - // Minimum execution time: 27_716_000 picoseconds. - Weight::from_parts(28_144_000, 0) + // Minimum execution time: 27_514_000 picoseconds. + Weight::from_parts(27_905_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(5)) @@ -215,10 +215,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) fn veto_external() -> Weight { // Proof Size summary in bytes: - // Measured: `3486` + // Measured: `3452` // Estimated: `6703` - // Minimum execution time: 31_767_000 picoseconds. - Weight::from_parts(32_248_000, 0) + // Minimum execution time: 31_250_000 picoseconds. + Weight::from_parts(31_604_000, 0) .saturating_add(Weight::from_parts(0, 6703)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -233,10 +233,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) fn cancel_proposal() -> Weight { // Proof Size summary in bytes: - // Measured: `5788` + // Measured: `5754` // Estimated: `18187` - // Minimum execution time: 79_783_000 picoseconds. - Weight::from_parts(80_710_000, 0) + // Minimum execution time: 79_757_000 picoseconds. + Weight::from_parts(83_603_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -247,10 +247,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) fn cancel_referendum() -> Weight { // Proof Size summary in bytes: - // Measured: `238` + // Measured: `204` // Estimated: `3518` - // Minimum execution time: 20_517_000 picoseconds. - Weight::from_parts(20_775_000, 0) + // Minimum execution time: 20_034_000 picoseconds. + Weight::from_parts(20_674_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -264,13 +264,13 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// The range of component `r` is `[0, 99]`. fn on_initialize_base(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `211 + r * (86 ±0)` + // Measured: `177 + r * (86 ±0)` // Estimated: `1489 + r * (2676 ±0)` - // Minimum execution time: 7_393_000 picoseconds. - Weight::from_parts(9_178_422, 0) + // Minimum execution time: 7_053_000 picoseconds. + Weight::from_parts(10_157_848, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 6_175 - .saturating_add(Weight::from_parts(2_735_887, 0).saturating_mul(r.into())) + // Standard Error: 5_462 + .saturating_add(Weight::from_parts(2_710_889, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -291,13 +291,13 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// The range of component `r` is `[0, 99]`. fn on_initialize_base_with_launch_period(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `211 + r * (86 ±0)` + // Measured: `177 + r * (86 ±0)` // Estimated: `18187 + r * (2676 ±0)` - // Minimum execution time: 9_881_000 picoseconds. - Weight::from_parts(12_865_888, 0) + // Minimum execution time: 9_585_000 picoseconds. + Weight::from_parts(13_021_372, 0) .saturating_add(Weight::from_parts(0, 18187)) - // Standard Error: 6_155 - .saturating_add(Weight::from_parts(2_706_606, 0).saturating_mul(r.into())) + // Standard Error: 6_031 + .saturating_add(Weight::from_parts(2_707_449, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -314,13 +314,13 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// The range of component `r` is `[0, 99]`. fn delegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `763 + r * (108 ±0)` + // Measured: `729 + r * (108 ±0)` // Estimated: `19800 + r * (2676 ±0)` - // Minimum execution time: 41_022_000 picoseconds. - Weight::from_parts(46_730_104, 0) + // Minimum execution time: 41_109_000 picoseconds. + Weight::from_parts(46_477_334, 0) .saturating_add(Weight::from_parts(0, 19800)) - // Standard Error: 8_191 - .saturating_add(Weight::from_parts(3_831_873, 0).saturating_mul(r.into())) + // Standard Error: 9_372 + .saturating_add(Weight::from_parts(3_815_232, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -334,13 +334,13 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// The range of component `r` is `[0, 99]`. fn undelegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `460 + r * (108 ±0)` + // Measured: `426 + r * (108 ±0)` // Estimated: `13530 + r * (2676 ±0)` - // Minimum execution time: 21_705_000 picoseconds. - Weight::from_parts(23_543_693, 0) + // Minimum execution time: 21_283_000 picoseconds. + Weight::from_parts(23_372_139, 0) .saturating_add(Weight::from_parts(0, 13530)) - // Standard Error: 6_193 - .saturating_add(Weight::from_parts(3_801_535, 0).saturating_mul(r.into())) + // Standard Error: 6_191 + .saturating_add(Weight::from_parts(3_768_585, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -353,8 +353,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_762_000 picoseconds. - Weight::from_parts(3_871_000, 0) + // Minimum execution time: 3_510_000 picoseconds. + Weight::from_parts(3_642_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -369,13 +369,13 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// The range of component `r` is `[0, 99]`. fn unlock_remove(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `492` + // Measured: `458` // Estimated: `7260` - // Minimum execution time: 23_852_000 picoseconds. - Weight::from_parts(37_123_595, 0) + // Minimum execution time: 23_647_000 picoseconds. + Weight::from_parts(36_627_552, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 2_918 - .saturating_add(Weight::from_parts(31_056, 0).saturating_mul(r.into())) + // Standard Error: 2_937 + .saturating_add(Weight::from_parts(34_132, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -390,13 +390,13 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// The range of component `r` is `[0, 99]`. fn unlock_set(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `493 + r * (22 ±0)` + // Measured: `459 + r * (22 ±0)` // Estimated: `7260` - // Minimum execution time: 34_374_000 picoseconds. - Weight::from_parts(35_847_389, 0) + // Minimum execution time: 33_932_000 picoseconds. + Weight::from_parts(35_331_660, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 577 - .saturating_add(Weight::from_parts(57_894, 0).saturating_mul(r.into())) + // Standard Error: 615 + .saturating_add(Weight::from_parts(60_730, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -407,13 +407,13 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// The range of component `r` is `[1, 100]`. fn remove_vote(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `695 + r * (26 ±0)` + // Measured: `661 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 16_810_000 picoseconds. - Weight::from_parts(19_286_623, 0) + // Minimum execution time: 16_605_000 picoseconds. + Weight::from_parts(19_057_092, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 912 - .saturating_add(Weight::from_parts(70_520, 0).saturating_mul(r.into())) + // Standard Error: 873 + .saturating_add(Weight::from_parts(68_964, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -424,13 +424,13 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// The range of component `r` is `[1, 100]`. fn remove_other_vote(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `695 + r * (26 ±0)` + // Measured: `661 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 16_745_000 picoseconds. - Weight::from_parts(19_260_896, 0) + // Minimum execution time: 16_801_000 picoseconds. + Weight::from_parts(19_166_788, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 972 - .saturating_add(Weight::from_parts(73_710, 0).saturating_mul(r.into())) + // Standard Error: 1_008 + .saturating_add(Weight::from_parts(69_851, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -442,10 +442,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) fn set_external_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `395` + // Measured: `361` // Estimated: `3556` - // Minimum execution time: 19_608_000 picoseconds. - Weight::from_parts(19_878_000, 0) + // Minimum execution time: 19_207_000 picoseconds. + Weight::from_parts(19_693_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -456,10 +456,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) fn clear_external_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `253` + // Measured: `219` // Estimated: `3518` - // Minimum execution time: 17_552_000 picoseconds. - Weight::from_parts(17_890_000, 0) + // Minimum execution time: 17_333_000 picoseconds. + Weight::from_parts(17_555_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -472,10 +472,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) fn set_proposal_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `4927` + // Measured: `4893` // Estimated: `18187` - // Minimum execution time: 35_045_000 picoseconds. - Weight::from_parts(35_790_000, 0) + // Minimum execution time: 33_859_000 picoseconds. + Weight::from_parts(34_538_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -486,10 +486,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) fn clear_proposal_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `4789` + // Measured: `4755` // Estimated: `18187` - // Minimum execution time: 31_710_000 picoseconds. - Weight::from_parts(31_981_000, 0) + // Minimum execution time: 31_155_000 picoseconds. + Weight::from_parts(31_520_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -502,8 +502,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `216` // Estimated: `3556` - // Minimum execution time: 16_386_000 picoseconds. - Weight::from_parts(16_694_000, 0) + // Minimum execution time: 15_924_000 picoseconds. + Weight::from_parts(16_151_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -514,10 +514,10 @@ impl pallet_democracy::WeightInfo for WeightInfo { /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) fn clear_referendum_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `269` + // Measured: `235` // Estimated: `3666` - // Minimum execution time: 19_510_000 picoseconds. - Weight::from_parts(20_105_000, 0) + // Minimum execution time: 18_983_000 picoseconds. + Weight::from_parts(19_280_000, 0) .saturating_add(Weight::from_parts(0, 3666)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/rococo/src/weights/pallet_elections_phragmen.rs b/runtime/rococo/src/weights/pallet_elections_phragmen.rs index 3bcb27501a6b..fe6aca5ab881 100644 --- a/runtime/rococo/src/weights/pallet_elections_phragmen.rs +++ b/runtime/rococo/src/weights/pallet_elections_phragmen.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_elections_phragmen` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -64,11 +64,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `331 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 30_744_000 picoseconds. - Weight::from_parts(31_357_460, 0) + // Minimum execution time: 30_910_000 picoseconds. + Weight::from_parts(31_851_802, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_053 - .saturating_add(Weight::from_parts(131_121, 0).saturating_mul(v.into())) + // Standard Error: 4_099 + .saturating_add(Weight::from_parts(137_675, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) @@ -90,11 +90,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `299 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 42_647_000 picoseconds. - Weight::from_parts(43_075_557, 0) + // Minimum execution time: 42_670_000 picoseconds. + Weight::from_parts(43_351_345, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_175 - .saturating_add(Weight::from_parts(128_599, 0).saturating_mul(v.into())) + // Standard Error: 2_986 + .saturating_add(Weight::from_parts(142_231, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) @@ -116,11 +116,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `331 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 42_226_000 picoseconds. - Weight::from_parts(42_799_848, 0) + // Minimum execution time: 42_782_000 picoseconds. + Weight::from_parts(43_611_866, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_496 - .saturating_add(Weight::from_parts(147_226, 0).saturating_mul(v.into())) + // Standard Error: 2_968 + .saturating_add(Weight::from_parts(125_939, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) @@ -135,8 +135,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `853` // Estimated: `4764` - // Minimum execution time: 44_305_000 picoseconds. - Weight::from_parts(44_797_000, 0) + // Minimum execution time: 44_301_000 picoseconds. + Weight::from_parts(44_843_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -152,11 +152,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `2678 + c * (48 ±0)` // Estimated: `4161 + c * (48 ±0)` - // Minimum execution time: 33_109_000 picoseconds. - Weight::from_parts(26_576_040, 0) + // Minimum execution time: 33_576_000 picoseconds. + Weight::from_parts(26_859_487, 0) .saturating_add(Weight::from_parts(0, 4161)) - // Standard Error: 839 - .saturating_add(Weight::from_parts(81_645, 0).saturating_mul(c.into())) + // Standard Error: 854 + .saturating_add(Weight::from_parts(81_887, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into())) @@ -168,11 +168,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `250 + c * (48 ±0)` // Estimated: `1722 + c * (48 ±0)` - // Minimum execution time: 29_366_000 picoseconds. - Weight::from_parts(21_811_315, 0) + // Minimum execution time: 29_671_000 picoseconds. + Weight::from_parts(22_509_800, 0) .saturating_add(Weight::from_parts(0, 1722)) - // Standard Error: 907 - .saturating_add(Weight::from_parts(59_170, 0).saturating_mul(c.into())) + // Standard Error: 908 + .saturating_add(Weight::from_parts(58_320, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into())) @@ -191,8 +191,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `2952` // Estimated: `4437` - // Minimum execution time: 44_941_000 picoseconds. - Weight::from_parts(45_523_000, 0) + // Minimum execution time: 45_934_000 picoseconds. + Weight::from_parts(46_279_000, 0) .saturating_add(Weight::from_parts(0, 4437)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -203,8 +203,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `1647` // Estimated: `3132` - // Minimum execution time: 29_859_000 picoseconds. - Weight::from_parts(30_234_000, 0) + // Minimum execution time: 30_291_000 picoseconds. + Weight::from_parts(30_611_000, 0) .saturating_add(Weight::from_parts(0, 3132)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -235,8 +235,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `2952` // Estimated: `4437` - // Minimum execution time: 62_497_000 picoseconds. - Weight::from_parts(62_984_000, 0) + // Minimum execution time: 63_178_000 picoseconds. + Weight::from_parts(63_850_000, 0) .saturating_add(Weight::from_parts(0, 4437)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -261,11 +261,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `35961 + v * (808 ±0)` // Estimated: `39702 + v * (3774 ±0)` - // Minimum execution time: 376_312_529_000 picoseconds. - Weight::from_parts(376_942_782_000, 0) + // Minimum execution time: 379_638_846_000 picoseconds. + Weight::from_parts(380_443_068_000, 0) .saturating_add(Weight::from_parts(0, 39702)) - // Standard Error: 315_574 - .saturating_add(Weight::from_parts(46_127_221, 0).saturating_mul(v.into())) + // Standard Error: 318_371 + .saturating_add(Weight::from_parts(46_236_987, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(v.into()))) @@ -296,13 +296,13 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0 + e * (28 ±0) + v * (607 ±0)` // Estimated: `2771509 + c * (2560 ±0) + e * (16 ±0) + v * (2744 ±4)` - // Minimum execution time: 35_926_796_000 picoseconds. - Weight::from_parts(36_056_450_000, 0) + // Minimum execution time: 35_941_980_000 picoseconds. + Weight::from_parts(36_032_688_000, 0) .saturating_add(Weight::from_parts(0, 2771509)) - // Standard Error: 511_137 - .saturating_add(Weight::from_parts(39_760_998, 0).saturating_mul(v.into())) - // Standard Error: 32_801 - .saturating_add(Weight::from_parts(2_151_717, 0).saturating_mul(e.into())) + // Standard Error: 554_972 + .saturating_add(Weight::from_parts(43_733_923, 0).saturating_mul(v.into())) + // Standard Error: 35_614 + .saturating_add(Weight::from_parts(2_430_249, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(265)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) diff --git a/runtime/rococo/src/weights/pallet_identity.rs b/runtime/rococo/src/weights/pallet_identity.rs index 18f536a98636..e10c042dde6a 100644 --- a/runtime/rococo/src/weights/pallet_identity.rs +++ b/runtime/rococo/src/weights/pallet_identity.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_identity` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 12_737_000 picoseconds. - Weight::from_parts(13_124_548, 0) + // Minimum execution time: 12_290_000 picoseconds. + Weight::from_parts(12_664_362, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_343 - .saturating_add(Weight::from_parts(92_718, 0).saturating_mul(r.into())) + // Standard Error: 1_347 + .saturating_add(Weight::from_parts(88_179, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -70,13 +70,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `442 + r * (5 ±0)` // Estimated: `11003` - // Minimum execution time: 32_074_000 picoseconds. - Weight::from_parts(31_264_031, 0) + // Minimum execution time: 31_373_000 picoseconds. + Weight::from_parts(30_435_545, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_927 - .saturating_add(Weight::from_parts(85_446, 0).saturating_mul(r.into())) - // Standard Error: 376 - .saturating_add(Weight::from_parts(451_442, 0).saturating_mul(x.into())) + // Standard Error: 2_307 + .saturating_add(Weight::from_parts(92_753, 0).saturating_mul(r.into())) + // Standard Error: 450 + .saturating_add(Weight::from_parts(449_529, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -91,11 +91,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `101` // Estimated: `11003 + s * (2589 ±0)` - // Minimum execution time: 9_739_000 picoseconds. - Weight::from_parts(24_260_167, 0) + // Minimum execution time: 9_251_000 picoseconds. + Weight::from_parts(22_039_210, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 4_060 - .saturating_add(Weight::from_parts(2_699_813, 0).saturating_mul(s.into())) + // Standard Error: 40_779 + .saturating_add(Weight::from_parts(2_898_525, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -113,11 +113,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `194 + p * (32 ±0)` // Estimated: `11003` - // Minimum execution time: 9_424_000 picoseconds. - Weight::from_parts(24_005_111, 0) + // Minimum execution time: 9_329_000 picoseconds. + Weight::from_parts(24_055_061, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_569 - .saturating_add(Weight::from_parts(1_105_930, 0).saturating_mul(p.into())) + // Standard Error: 3_428 + .saturating_add(Weight::from_parts(1_130_604, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) @@ -131,19 +131,17 @@ impl pallet_identity::WeightInfo for WeightInfo { /// The range of component `r` is `[1, 20]`. /// The range of component `s` is `[0, 100]`. /// The range of component `x` is `[0, 100]`. - fn clear_identity(r: u32, s: u32, x: u32, ) -> Weight { + fn clear_identity(_r: u32, s: u32, x: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 53_773_000 picoseconds. - Weight::from_parts(33_361_860, 0) + // Minimum execution time: 53_365_000 picoseconds. + Weight::from_parts(35_391_422, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_774 - .saturating_add(Weight::from_parts(13_203, 0).saturating_mul(r.into())) - // Standard Error: 737 - .saturating_add(Weight::from_parts(1_083_807, 0).saturating_mul(s.into())) - // Standard Error: 737 - .saturating_add(Weight::from_parts(231_062, 0).saturating_mul(x.into())) + // Standard Error: 1_353 + .saturating_add(Weight::from_parts(1_074_019, 0).saturating_mul(s.into())) + // Standard Error: 1_353 + .saturating_add(Weight::from_parts(229_947, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -158,13 +156,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `367 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 32_505_000 picoseconds. - Weight::from_parts(31_405_646, 0) + // Minimum execution time: 32_509_000 picoseconds. + Weight::from_parts(31_745_585, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_310 - .saturating_add(Weight::from_parts(101_820, 0).saturating_mul(r.into())) - // Standard Error: 645 - .saturating_add(Weight::from_parts(473_669, 0).saturating_mul(x.into())) + // Standard Error: 2_214 + .saturating_add(Weight::from_parts(83_822, 0).saturating_mul(r.into())) + // Standard Error: 432 + .saturating_add(Weight::from_parts(458_801, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -176,13 +174,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `398 + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 29_748_000 picoseconds. - Weight::from_parts(29_496_940, 0) + // Minimum execution time: 29_609_000 picoseconds. + Weight::from_parts(28_572_602, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_563 - .saturating_add(Weight::from_parts(60_722, 0).saturating_mul(r.into())) - // Standard Error: 500 - .saturating_add(Weight::from_parts(468_479, 0).saturating_mul(x.into())) + // Standard Error: 2_528 + .saturating_add(Weight::from_parts(85_593, 0).saturating_mul(r.into())) + // Standard Error: 493 + .saturating_add(Weight::from_parts(468_140, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +191,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_996_000 picoseconds. - Weight::from_parts(8_325_280, 0) + // Minimum execution time: 7_793_000 picoseconds. + Weight::from_parts(8_173_888, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_439 - .saturating_add(Weight::from_parts(76_684, 0).saturating_mul(r.into())) + // Standard Error: 1_569 + .saturating_add(Weight::from_parts(72_367, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +206,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_652_000 picoseconds. - Weight::from_parts(8_215_674, 0) + // Minimum execution time: 7_708_000 picoseconds. + Weight::from_parts(8_091_149, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_586 - .saturating_add(Weight::from_parts(97_569, 0).saturating_mul(r.into())) + // Standard Error: 869 + .saturating_add(Weight::from_parts(87_993, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -223,11 +221,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_514_000 picoseconds. - Weight::from_parts(8_049_354, 0) + // Minimum execution time: 7_601_000 picoseconds. + Weight::from_parts(8_038_414, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 979 - .saturating_add(Weight::from_parts(88_294, 0).saturating_mul(r.into())) + // Standard Error: 1_041 + .saturating_add(Weight::from_parts(82_588, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -241,13 +239,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `445 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 23_476_000 picoseconds. - Weight::from_parts(22_450_953, 0) + // Minimum execution time: 23_114_000 picoseconds. + Weight::from_parts(22_076_548, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_489 - .saturating_add(Weight::from_parts(103_320, 0).saturating_mul(r.into())) - // Standard Error: 460 - .saturating_add(Weight::from_parts(749_701, 0).saturating_mul(x.into())) + // Standard Error: 2_881 + .saturating_add(Weight::from_parts(109_812, 0).saturating_mul(r.into())) + // Standard Error: 533 + .saturating_add(Weight::from_parts(733_244, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -266,15 +264,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 69_394_000 picoseconds. - Weight::from_parts(49_706_168, 0) + // Minimum execution time: 70_007_000 picoseconds. + Weight::from_parts(50_186_495, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 5_627 - .saturating_add(Weight::from_parts(4_648, 0).saturating_mul(r.into())) - // Standard Error: 1_098 - .saturating_add(Weight::from_parts(1_095_054, 0).saturating_mul(s.into())) - // Standard Error: 1_098 - .saturating_add(Weight::from_parts(229_571, 0).saturating_mul(x.into())) + // Standard Error: 6_533 + .saturating_add(Weight::from_parts(15_486, 0).saturating_mul(r.into())) + // Standard Error: 1_275 + .saturating_add(Weight::from_parts(1_085_117, 0).saturating_mul(s.into())) + // Standard Error: 1_275 + .saturating_add(Weight::from_parts(228_226, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -290,11 +288,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `475 + s * (36 ±0)` // Estimated: `11003` - // Minimum execution time: 28_972_000 picoseconds. - Weight::from_parts(33_654_622, 0) + // Minimum execution time: 28_453_000 picoseconds. + Weight::from_parts(33_165_934, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_203 - .saturating_add(Weight::from_parts(62_339, 0).saturating_mul(s.into())) + // Standard Error: 1_217 + .saturating_add(Weight::from_parts(65_401, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -307,11 +305,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + s * (3 ±0)` // Estimated: `11003` - // Minimum execution time: 13_046_000 picoseconds. - Weight::from_parts(14_967_586, 0) + // Minimum execution time: 12_846_000 picoseconds. + Weight::from_parts(14_710_284, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 500 - .saturating_add(Weight::from_parts(16_611, 0).saturating_mul(s.into())) + // Standard Error: 496 + .saturating_add(Weight::from_parts(19_539, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -326,11 +324,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `638 + s * (35 ±0)` // Estimated: `11003` - // Minimum execution time: 32_460_000 picoseconds. - Weight::from_parts(35_507_060, 0) + // Minimum execution time: 32_183_000 picoseconds. + Weight::from_parts(35_296_731, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 959 - .saturating_add(Weight::from_parts(50_270, 0).saturating_mul(s.into())) + // Standard Error: 854 + .saturating_add(Weight::from_parts(52_028, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -345,11 +343,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704 + s * (37 ±0)` // Estimated: `6723` - // Minimum execution time: 25_237_000 picoseconds. - Weight::from_parts(27_667_477, 0) + // Minimum execution time: 24_941_000 picoseconds. + Weight::from_parts(27_433_059, 0) .saturating_add(Weight::from_parts(0, 6723)) - // Standard Error: 836 - .saturating_add(Weight::from_parts(56_030, 0).saturating_mul(s.into())) + // Standard Error: 856 + .saturating_add(Weight::from_parts(57_463, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/rococo/src/weights/pallet_im_online.rs b/runtime/rococo/src/weights/pallet_im_online.rs index 1215c2baa1ee..6062c30ab938 100644 --- a/runtime/rococo/src/weights/pallet_im_online.rs +++ b/runtime/rococo/src/weights/pallet_im_online.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_im_online` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -65,13 +65,13 @@ impl pallet_im_online::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `394 + k * (32 ±0)` // Estimated: `10024497 + e * (35 ±0) + k * (32 ±0)` - // Minimum execution time: 93_672_000 picoseconds. - Weight::from_parts(74_355_861, 0) + // Minimum execution time: 92_998_000 picoseconds. + Weight::from_parts(75_068_960, 0) .saturating_add(Weight::from_parts(0, 10024497)) - // Standard Error: 269 - .saturating_add(Weight::from_parts(23_114, 0).saturating_mul(k.into())) - // Standard Error: 2_717 - .saturating_add(Weight::from_parts(390_833, 0).saturating_mul(e.into())) + // Standard Error: 361 + .saturating_add(Weight::from_parts(24_450, 0).saturating_mul(k.into())) + // Standard Error: 3_641 + .saturating_add(Weight::from_parts(386_239, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 35).saturating_mul(e.into())) diff --git a/runtime/rococo/src/weights/pallet_indices.rs b/runtime/rococo/src/weights/pallet_indices.rs index 3244ad88e094..99ffd3210ed2 100644 --- a/runtime/rococo/src/weights/pallet_indices.rs +++ b/runtime/rococo/src/weights/pallet_indices.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_indices` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3534` - // Minimum execution time: 24_030_000 picoseconds. - Weight::from_parts(24_347_000, 0) + // Minimum execution time: 25_107_000 picoseconds. + Weight::from_parts(25_655_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -67,8 +67,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 34_677_000 picoseconds. - Weight::from_parts(35_232_000, 0) + // Minimum execution time: 36_208_000 picoseconds. + Weight::from_parts(36_521_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +79,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 24_868_000 picoseconds. - Weight::from_parts(25_124_000, 0) + // Minimum execution time: 25_915_000 picoseconds. + Weight::from_parts(26_220_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +93,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 28_142_000 picoseconds. - Weight::from_parts(28_576_000, 0) + // Minimum execution time: 28_232_000 picoseconds. + Weight::from_parts(28_845_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -105,8 +105,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 26_834_000 picoseconds. - Weight::from_parts(27_356_000, 0) + // Minimum execution time: 27_282_000 picoseconds. + Weight::from_parts(27_754_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/rococo/src/weights/pallet_membership.rs b/runtime/rococo/src/weights/pallet_membership.rs index 9c0d7aa82dd7..4486c7a270c4 100644 --- a/runtime/rococo/src/weights/pallet_membership.rs +++ b/runtime/rococo/src/weights/pallet_membership.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_membership` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -60,11 +60,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `140 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 17_109_000 picoseconds. - Weight::from_parts(17_763_610, 0) + // Minimum execution time: 17_084_000 picoseconds. + Weight::from_parts(17_897_754, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 311 - .saturating_add(Weight::from_parts(32_468, 0).saturating_mul(m.into())) + // Standard Error: 295 + .saturating_add(Weight::from_parts(30_882, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -84,11 +84,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `244 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_675_000 picoseconds. - Weight::from_parts(20_229_151, 0) + // Minimum execution time: 19_550_000 picoseconds. + Weight::from_parts(20_467_978, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 276 - .saturating_add(Weight::from_parts(33_800, 0).saturating_mul(m.into())) + // Standard Error: 330 + .saturating_add(Weight::from_parts(31_881, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -108,11 +108,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `244 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_821_000 picoseconds. - Weight::from_parts(20_100_562, 0) + // Minimum execution time: 19_994_000 picoseconds. + Weight::from_parts(20_663_824, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 1_719 - .saturating_add(Weight::from_parts(59_527, 0).saturating_mul(m.into())) + // Standard Error: 337 + .saturating_add(Weight::from_parts(44_806, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -132,11 +132,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `244 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_323_000 picoseconds. - Weight::from_parts(20_881_207, 0) + // Minimum execution time: 18_978_000 picoseconds. + Weight::from_parts(21_273_577, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 796 - .saturating_add(Weight::from_parts(161_441, 0).saturating_mul(m.into())) + // Standard Error: 2_765 + .saturating_add(Weight::from_parts(152_082, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -156,11 +156,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `244 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_682_000 picoseconds. - Weight::from_parts(20_664_522, 0) + // Minimum execution time: 20_005_000 picoseconds. + Weight::from_parts(21_280_089, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 498 - .saturating_add(Weight::from_parts(46_220, 0).saturating_mul(m.into())) + // Standard Error: 672 + .saturating_add(Weight::from_parts(41_961, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -176,11 +176,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + m * (32 ±0)` // Estimated: `4687 + m * (32 ±0)` - // Minimum execution time: 7_992_000 picoseconds. - Weight::from_parts(8_339_061, 0) + // Minimum execution time: 8_168_000 picoseconds. + Weight::from_parts(8_579_141, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 168 - .saturating_add(Weight::from_parts(9_888, 0).saturating_mul(m.into())) + // Standard Error: 215 + .saturating_add(Weight::from_parts(9_557, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) @@ -194,11 +194,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_401_000 picoseconds. - Weight::from_parts(3_606_564, 0) + // Minimum execution time: 3_344_000 picoseconds. + Weight::from_parts(3_551_700, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 75 - .saturating_add(Weight::from_parts(727, 0).saturating_mul(m.into())) + // Standard Error: 86 + .saturating_add(Weight::from_parts(832, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().writes(2)) } } diff --git a/runtime/rococo/src/weights/pallet_message_queue.rs b/runtime/rococo/src/weights/pallet_message_queue.rs index 109125e22709..e1e360d374a0 100644 --- a/runtime/rococo/src/weights/pallet_message_queue.rs +++ b/runtime/rococo/src/weights/pallet_message_queue.rs @@ -1,4 +1,4 @@ -// Copyright 2017-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Polkadot. // Polkadot is free software: you can redistribute it and/or modify @@ -13,164 +13,184 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . + //! Autogenerated weights for `pallet_message_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-02-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: -// ./target/release/polkadot +// ./target/production/polkadot // benchmark // pallet // --chain=rococo-dev // --steps=50 // --repeat=20 -// --pallet=pallet-message-queue +// --pallet=pallet_message_queue // --extrinsic=* -// --heap-pages=4096 -// --header=file_header.txt -// --output -// runtime/rococo/src/weights/pallet_message_queue.rs +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/rococo/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); impl pallet_message_queue::WeightInfo for WeightInfo { /// Storage: MessageQueue ServiceHead (r:1 w:0) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn ready_ring_knit() -> Weight { // Proof Size summary in bytes: - // Measured: `837` - // Estimated: `5554` - // Minimum execution time: 9_427 nanoseconds. - Weight::from_parts(9_806_000, 0) - .saturating_add(Weight::from_parts(0, 5554)) + // Measured: `248` + // Estimated: `6050` + // Minimum execution time: 12_106_000 picoseconds. + Weight::from_parts(12_387_000, 0) + .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) fn ready_ring_unknit() -> Weight { // Proof Size summary in bytes: - // Measured: `837` - // Estimated: `5554` - // Minimum execution time: 20_178 nanoseconds. - Weight::from_parts(20_550_000, 0) - .saturating_add(Weight::from_parts(0, 5554)) + // Measured: `248` + // Estimated: `6050` + // Minimum execution time: 11_227_000 picoseconds. + Weight::from_parts(11_616_000, 0) + .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn service_queue_base() -> Weight { // Proof Size summary in bytes: - // Measured: `576` - // Estimated: `2527` - // Minimum execution time: 3_746 nanoseconds. - Weight::from_parts(3_885_000, 0) - .saturating_add(Weight::from_parts(0, 2527)) + // Measured: `42` + // Estimated: `3520` + // Minimum execution time: 5_052_000 picoseconds. + Weight::from_parts(5_216_000, 0) + .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen) fn service_page_base_completion() -> Weight { // Proof Size summary in bytes: - // Measured: `648` - // Estimated: `68060` - // Minimum execution time: 4_906 nanoseconds. - Weight::from_parts(5_060_000, 0) - .saturating_add(Weight::from_parts(0, 68060)) + // Measured: `115` + // Estimated: `36283` + // Minimum execution time: 6_522_000 picoseconds. + Weight::from_parts(6_794_000, 0) + .saturating_add(Weight::from_parts(0, 36283)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen) fn service_page_base_no_completion() -> Weight { // Proof Size summary in bytes: - // Measured: `648` - // Estimated: `68060` - // Minimum execution time: 5_194 nanoseconds. - Weight::from_parts(5_361_000, 0) - .saturating_add(Weight::from_parts(0, 68060)) + // Measured: `115` + // Estimated: `36283` + // Minimum execution time: 6_918_000 picoseconds. + Weight::from_parts(7_083_000, 0) + .saturating_add(Weight::from_parts(0, 36283)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } fn service_page_item() -> Weight { // Proof Size summary in bytes: - // Measured: `936` + // Measured: `0` // Estimated: `0` - // Minimum execution time: 62_021 nanoseconds. - Weight::from_parts(62_487_000, 0) + // Minimum execution time: 28_445_000 picoseconds. + Weight::from_parts(28_659_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) /// Storage: MessageQueue BookStateFor (r:1 w:0) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn bump_service_head() -> Weight { // Proof Size summary in bytes: - // Measured: `712` - // Estimated: `3027` - // Minimum execution time: 6_989 nanoseconds. - Weight::from_parts(8_098_000, 0) - .saturating_add(Weight::from_parts(0, 3027)) + // Measured: `149` + // Estimated: `3520` + // Minimum execution time: 7_224_000 picoseconds. + Weight::from_parts(7_441_000, 0) + .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn reap_page() -> Weight { // Proof Size summary in bytes: - // Measured: `66846` - // Estimated: `70587` - // Minimum execution time: 38_177 nanoseconds. - Weight::from_parts(44_704_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `33232` + // Estimated: `36283` + // Minimum execution time: 45_211_000 picoseconds. + Weight::from_parts(45_505_000, 0) + .saturating_add(Weight::from_parts(0, 36283)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn execute_overweight_page_removed() -> Weight { // Proof Size summary in bytes: - // Measured: `66846` - // Estimated: `70587` - // Minimum execution time: 48_404 nanoseconds. - Weight::from_parts(55_066_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `33232` + // Estimated: `36283` + // Minimum execution time: 52_346_000 picoseconds. + Weight::from_parts(52_745_000, 0) + .saturating_add(Weight::from_parts(0, 36283)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn execute_overweight_page_updated() -> Weight { // Proof Size summary in bytes: - // Measured: `66846` - // Estimated: `70587` - // Minimum execution time: 66_523 nanoseconds. - Weight::from_parts(73_063_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `33232` + // Estimated: `36283` + // Minimum execution time: 72_567_000 picoseconds. + Weight::from_parts(73_300_000, 0) + .saturating_add(Weight::from_parts(0, 36283)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) } } diff --git a/runtime/rococo/src/weights/pallet_multisig.rs b/runtime/rococo/src/weights/pallet_multisig.rs index 65f3e94d418a..a4f33fe198ca 100644 --- a/runtime/rococo/src/weights/pallet_multisig.rs +++ b/runtime/rococo/src/weights/pallet_multisig.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -52,11 +52,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_148_000 picoseconds. - Weight::from_parts(12_501_721, 0) + // Minimum execution time: 11_475_000 picoseconds. + Weight::from_parts(11_904_745, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 1 - .saturating_add(Weight::from_parts(506, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(492, 0).saturating_mul(z.into())) } /// Storage: Multisig Multisigs (r:1 w:1) /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) @@ -66,13 +66,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `193 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 39_693_000 picoseconds. - Weight::from_parts(34_173_051, 0) + // Minimum execution time: 38_857_000 picoseconds. + Weight::from_parts(33_611_791, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 362 - .saturating_add(Weight::from_parts(60_393, 0).saturating_mul(s.into())) + // Standard Error: 400 + .saturating_add(Weight::from_parts(59_263, 0).saturating_mul(s.into())) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_207, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(1_211, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -84,13 +84,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `6811` - // Minimum execution time: 26_307_000 picoseconds. - Weight::from_parts(20_698_974, 0) + // Minimum execution time: 25_715_000 picoseconds. + Weight::from_parts(20_607_294, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 295 - .saturating_add(Weight::from_parts(61_505, 0).saturating_mul(s.into())) + // Standard Error: 285 + .saturating_add(Weight::from_parts(58_225, 0).saturating_mul(s.into())) // Standard Error: 2 - .saturating_add(Weight::from_parts(1_171, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(1_160, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -104,13 +104,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `317 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 44_742_000 picoseconds. - Weight::from_parts(37_635_655, 0) + // Minimum execution time: 43_751_000 picoseconds. + Weight::from_parts(37_398_513, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 383 - .saturating_add(Weight::from_parts(77_139, 0).saturating_mul(s.into())) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_226, 0).saturating_mul(z.into())) + // Standard Error: 426 + .saturating_add(Weight::from_parts(70_904, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_235, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -121,11 +121,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `193 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 31_610_000 picoseconds. - Weight::from_parts(32_272_831, 0) + // Minimum execution time: 31_278_000 picoseconds. + Weight::from_parts(32_075_573, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 345 - .saturating_add(Weight::from_parts(65_871, 0).saturating_mul(s.into())) + // Standard Error: 452 + .saturating_add(Weight::from_parts(62_018, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -136,11 +136,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `6811` - // Minimum execution time: 18_653_000 picoseconds. - Weight::from_parts(18_964_811, 0) + // Minimum execution time: 18_178_000 picoseconds. + Weight::from_parts(18_649_867, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 305 - .saturating_add(Weight::from_parts(57_834, 0).saturating_mul(s.into())) + // Standard Error: 293 + .saturating_add(Weight::from_parts(56_475, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -151,11 +151,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `383 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 32_851_000 picoseconds. - Weight::from_parts(33_332_942, 0) + // Minimum execution time: 32_265_000 picoseconds. + Weight::from_parts(32_984_014, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 409 - .saturating_add(Weight::from_parts(65_798, 0).saturating_mul(s.into())) + // Standard Error: 452 + .saturating_add(Weight::from_parts(59_934, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/rococo/src/weights/pallet_nis.rs b/runtime/rococo/src/weights/pallet_nis.rs index 039b74678f9d..35dad482129e 100644 --- a/runtime/rococo/src/weights/pallet_nis.rs +++ b/runtime/rococo/src/weights/pallet_nis.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_nis` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -58,11 +58,11 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6209 + l * (48 ±0)` // Estimated: `51487` - // Minimum execution time: 44_501_000 picoseconds. - Weight::from_parts(44_545_106, 0) + // Minimum execution time: 44_704_000 picoseconds. + Weight::from_parts(44_933_886, 0) .saturating_add(Weight::from_parts(0, 51487)) - // Standard Error: 746 - .saturating_add(Weight::from_parts(71_836, 0).saturating_mul(l.into())) + // Standard Error: 712 + .saturating_add(Weight::from_parts(71_570, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -76,8 +76,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `54211` // Estimated: `51487` - // Minimum execution time: 127_017_000 picoseconds. - Weight::from_parts(127_958_000, 0) + // Minimum execution time: 126_544_000 picoseconds. + Weight::from_parts(128_271_000, 0) .saturating_add(Weight::from_parts(0, 51487)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -93,11 +93,11 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6209 + l * (48 ±0)` // Estimated: `51487` - // Minimum execution time: 47_921_000 picoseconds. - Weight::from_parts(41_920_873, 0) + // Minimum execution time: 47_640_000 picoseconds. + Weight::from_parts(42_214_261, 0) .saturating_add(Weight::from_parts(0, 51487)) - // Standard Error: 722 - .saturating_add(Weight::from_parts(89_227, 0).saturating_mul(l.into())) + // Standard Error: 732 + .saturating_add(Weight::from_parts(87_277, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -111,8 +111,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `225` // Estimated: `3593` - // Minimum execution time: 38_180_000 picoseconds. - Weight::from_parts(38_547_000, 0) + // Minimum execution time: 38_031_000 picoseconds. + Weight::from_parts(38_441_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -133,8 +133,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469` // Estimated: `3593` - // Minimum execution time: 69_770_000 picoseconds. - Weight::from_parts(70_201_000, 0) + // Minimum execution time: 69_269_000 picoseconds. + Weight::from_parts(70_000_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(6)) @@ -157,8 +157,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `659` // Estimated: `3593` - // Minimum execution time: 86_145_000 picoseconds. - Weight::from_parts(86_942_000, 0) + // Minimum execution time: 85_763_000 picoseconds. + Weight::from_parts(86_707_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) @@ -177,8 +177,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `387` // Estimated: `3593` - // Minimum execution time: 47_421_000 picoseconds. - Weight::from_parts(47_960_000, 0) + // Minimum execution time: 47_336_000 picoseconds. + Weight::from_parts(47_623_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -199,8 +199,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `604` // Estimated: `3593` - // Minimum execution time: 90_144_000 picoseconds. - Weight::from_parts(91_018_000, 0) + // Minimum execution time: 90_972_000 picoseconds. + Weight::from_parts(92_074_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -217,8 +217,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6658` // Estimated: `7487` - // Minimum execution time: 21_240_000 picoseconds. - Weight::from_parts(21_613_000, 0) + // Minimum execution time: 21_469_000 picoseconds. + Weight::from_parts(21_983_000, 0) .saturating_add(Weight::from_parts(0, 7487)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -229,8 +229,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `76` // Estimated: `51487` - // Minimum execution time: 4_848_000 picoseconds. - Weight::from_parts(5_021_000, 0) + // Minimum execution time: 4_912_000 picoseconds. + Weight::from_parts(5_013_000, 0) .saturating_add(Weight::from_parts(0, 51487)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -241,8 +241,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_080_000 picoseconds. - Weight::from_parts(7_252_000, 0) + // Minimum execution time: 7_048_000 picoseconds. + Weight::from_parts(7_278_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/rococo/src/weights/pallet_preimage.rs b/runtime/rococo/src/weights/pallet_preimage.rs index d944911f9b98..b067e6a6d91e 100644 --- a/runtime/rococo/src/weights/pallet_preimage.rs +++ b/runtime/rococo/src/weights/pallet_preimage.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -56,11 +56,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `215` // Estimated: `3556` - // Minimum execution time: 31_014_000 picoseconds. - Weight::from_parts(31_829_000, 0) + // Minimum execution time: 31_040_000 picoseconds. + Weight::from_parts(31_236_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_975, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_974, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -73,8 +73,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3556` - // Minimum execution time: 17_947_000 picoseconds. - Weight::from_parts(18_086_000, 0) + // Minimum execution time: 18_025_000 picoseconds. + Weight::from_parts(18_264_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 1 .saturating_add(Weight::from_parts(1_974, 0).saturating_mul(s.into())) @@ -90,11 +90,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3556` - // Minimum execution time: 16_991_000 picoseconds. - Weight::from_parts(17_124_000, 0) + // Minimum execution time: 17_122_000 picoseconds. + Weight::from_parts(17_332_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_976, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_968, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -106,8 +106,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361` // Estimated: `3556` - // Minimum execution time: 37_796_000 picoseconds. - Weight::from_parts(38_651_000, 0) + // Minimum execution time: 38_218_000 picoseconds. + Weight::from_parts(39_841_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +120,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `216` // Estimated: `3556` - // Minimum execution time: 22_687_000 picoseconds. - Weight::from_parts(23_898_000, 0) + // Minimum execution time: 23_217_000 picoseconds. + Weight::from_parts(24_246_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -132,8 +132,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `260` // Estimated: `3556` - // Minimum execution time: 21_069_000 picoseconds. - Weight::from_parts(21_700_000, 0) + // Minimum execution time: 21_032_000 picoseconds. + Weight::from_parts(21_844_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -144,8 +144,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `216` // Estimated: `3556` - // Minimum execution time: 13_836_000 picoseconds. - Weight::from_parts(14_541_000, 0) + // Minimum execution time: 13_954_000 picoseconds. + Weight::from_parts(14_501_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -156,8 +156,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `114` // Estimated: `3556` - // Minimum execution time: 14_683_000 picoseconds. - Weight::from_parts(15_362_000, 0) + // Minimum execution time: 14_874_000 picoseconds. + Weight::from_parts(15_380_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -168,8 +168,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3556` - // Minimum execution time: 10_165_000 picoseconds. - Weight::from_parts(10_512_000, 0) + // Minimum execution time: 10_199_000 picoseconds. + Weight::from_parts(10_493_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -182,8 +182,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `216` // Estimated: `3556` - // Minimum execution time: 22_086_000 picoseconds. - Weight::from_parts(23_270_000, 0) + // Minimum execution time: 21_772_000 picoseconds. + Weight::from_parts(22_554_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -194,8 +194,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3556` - // Minimum execution time: 9_939_000 picoseconds. - Weight::from_parts(10_362_000, 0) + // Minimum execution time: 10_115_000 picoseconds. + Weight::from_parts(10_452_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -206,8 +206,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3556` - // Minimum execution time: 9_929_000 picoseconds. - Weight::from_parts(10_163_000, 0) + // Minimum execution time: 10_031_000 picoseconds. + Weight::from_parts(10_310_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/rococo/src/weights/pallet_proxy.rs b/runtime/rococo/src/weights/pallet_proxy.rs index 83016e92714c..d9737a85c05a 100644 --- a/runtime/rococo/src/weights/pallet_proxy.rs +++ b/runtime/rococo/src/weights/pallet_proxy.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 16_505_000 picoseconds. - Weight::from_parts(16_943_071, 0) + // Minimum execution time: 15_956_000 picoseconds. + Weight::from_parts(16_300_358, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 696 - .saturating_add(Weight::from_parts(35_949, 0).saturating_mul(p.into())) + // Standard Error: 652 + .saturating_add(Weight::from_parts(30_807, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: Proxy Proxies (r:1 w:0) @@ -73,13 +73,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `554 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 38_268_000 picoseconds. - Weight::from_parts(37_825_204, 0) + // Minimum execution time: 37_584_000 picoseconds. + Weight::from_parts(37_858_207, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_449 - .saturating_add(Weight::from_parts(158_908, 0).saturating_mul(a.into())) - // Standard Error: 1_497 - .saturating_add(Weight::from_parts(38_472, 0).saturating_mul(p.into())) + // Standard Error: 1_868 + .saturating_add(Weight::from_parts(148_967, 0).saturating_mul(a.into())) + // Standard Error: 1_930 + .saturating_add(Weight::from_parts(13_017, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -93,11 +93,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_730_000 picoseconds. - Weight::from_parts(25_733_289, 0) + // Minimum execution time: 24_642_000 picoseconds. + Weight::from_parts(25_526_588, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_055 - .saturating_add(Weight::from_parts(145_391, 0).saturating_mul(a.into())) + // Standard Error: 1_138 + .saturating_add(Weight::from_parts(131_157, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -107,17 +107,15 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. - fn reject_announcement(a: u32, p: u32, ) -> Weight { + fn reject_announcement(a: u32, _p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_809_000 picoseconds. - Weight::from_parts(25_578_846, 0) + // Minimum execution time: 24_377_000 picoseconds. + Weight::from_parts(25_464_033, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_305 - .saturating_add(Weight::from_parts(145_393, 0).saturating_mul(a.into())) - // Standard Error: 1_348 - .saturating_add(Weight::from_parts(1_499, 0).saturating_mul(p.into())) + // Standard Error: 1_116 + .saturating_add(Weight::from_parts(130_722, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -133,13 +131,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `486 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 34_395_000 picoseconds. - Weight::from_parts(34_174_607, 0) + // Minimum execution time: 34_202_000 picoseconds. + Weight::from_parts(34_610_079, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_134 - .saturating_add(Weight::from_parts(141_361, 0).saturating_mul(a.into())) - // Standard Error: 1_171 - .saturating_add(Weight::from_parts(27_624, 0).saturating_mul(p.into())) + // Standard Error: 1_234 + .saturating_add(Weight::from_parts(134_197, 0).saturating_mul(a.into())) + // Standard Error: 1_275 + .saturating_add(Weight::from_parts(15_970, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -150,11 +148,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 25_525_000 picoseconds. - Weight::from_parts(26_127_839, 0) + // Minimum execution time: 25_492_000 picoseconds. + Weight::from_parts(25_984_867, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_053 - .saturating_add(Weight::from_parts(52_404, 0).saturating_mul(p.into())) + // Standard Error: 893 + .saturating_add(Weight::from_parts(51_868, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -165,11 +163,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 25_437_000 picoseconds. - Weight::from_parts(26_363_878, 0) + // Minimum execution time: 25_492_000 picoseconds. + Weight::from_parts(26_283_445, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_408 - .saturating_add(Weight::from_parts(55_801, 0).saturating_mul(p.into())) + // Standard Error: 1_442 + .saturating_add(Weight::from_parts(53_504, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -180,11 +178,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 22_648_000 picoseconds. - Weight::from_parts(23_187_461, 0) + // Minimum execution time: 22_083_000 picoseconds. + Weight::from_parts(22_688_835, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 916 - .saturating_add(Weight::from_parts(30_581, 0).saturating_mul(p.into())) + // Standard Error: 994 + .saturating_add(Weight::from_parts(32_994, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -195,11 +193,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `4706` - // Minimum execution time: 27_369_000 picoseconds. - Weight::from_parts(27_917_132, 0) + // Minimum execution time: 27_042_000 picoseconds. + Weight::from_parts(27_624_587, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 621 - .saturating_add(Weight::from_parts(6_589, 0).saturating_mul(p.into())) + // Standard Error: 671 + .saturating_add(Weight::from_parts(5_888, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -210,11 +208,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `264 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 23_624_000 picoseconds. - Weight::from_parts(24_209_898, 0) + // Minimum execution time: 23_396_000 picoseconds. + Weight::from_parts(24_003_080, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 645 - .saturating_add(Weight::from_parts(31_318, 0).saturating_mul(p.into())) + // Standard Error: 684 + .saturating_add(Weight::from_parts(29_878, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/rococo/src/weights/pallet_scheduler.rs b/runtime/rococo/src/weights/pallet_scheduler.rs index f88c90e08b44..e4732a2d17dc 100644 --- a/runtime/rococo/src/weights/pallet_scheduler.rs +++ b/runtime/rococo/src/weights/pallet_scheduler.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69` // Estimated: `1489` - // Minimum execution time: 4_795_000 picoseconds. - Weight::from_parts(5_028_000, 0) + // Minimum execution time: 4_741_000 picoseconds. + Weight::from_parts(4_939_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -66,11 +66,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 4_599_000 picoseconds. - Weight::from_parts(7_088_366, 0) + // Minimum execution time: 4_504_000 picoseconds. + Weight::from_parts(7_569_333, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 9_003 - .saturating_add(Weight::from_parts(802_737, 0).saturating_mul(s.into())) + // Standard Error: 1_818 + .saturating_add(Weight::from_parts(771_180, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -78,8 +78,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_805_000 picoseconds. - Weight::from_parts(5_937_000, 0) + // Minimum execution time: 5_709_000 picoseconds. + Weight::from_parts(5_929_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Preimage PreimageFor (r:1 w:1) @@ -91,11 +91,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `251 + s * (1 ±0)` // Estimated: `3716 + s * (1 ±0)` - // Minimum execution time: 20_945_000 picoseconds. - Weight::from_parts(21_086_000, 0) + // Minimum execution time: 20_710_000 picoseconds. + Weight::from_parts(20_918_000, 0) .saturating_add(Weight::from_parts(0, 3716)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_167, 0).saturating_mul(s.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_257, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -106,8 +106,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_436_000 picoseconds. - Weight::from_parts(7_555_000, 0) + // Minimum execution time: 7_262_000 picoseconds. + Weight::from_parts(7_412_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -115,24 +115,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_789_000 picoseconds. - Weight::from_parts(5_931_000, 0) + // Minimum execution time: 5_774_000 picoseconds. + Weight::from_parts(5_887_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_signed() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_977_000 picoseconds. - Weight::from_parts(3_081_000, 0) + // Minimum execution time: 2_777_000 picoseconds. + Weight::from_parts(2_865_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_989_000 picoseconds. - Weight::from_parts(3_054_000, 0) + // Minimum execution time: 2_739_000 picoseconds. + Weight::from_parts(2_827_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Scheduler Agenda (r:1 w:1) @@ -142,11 +142,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 15_000_000 picoseconds. - Weight::from_parts(18_076_384, 0) + // Minimum execution time: 14_788_000 picoseconds. + Weight::from_parts(17_705_748, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_747 - .saturating_add(Weight::from_parts(764_835, 0).saturating_mul(s.into())) + // Standard Error: 1_703 + .saturating_add(Weight::from_parts(760_991, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -159,11 +159,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 19_071_000 picoseconds. - Weight::from_parts(18_743_837, 0) + // Minimum execution time: 18_716_000 picoseconds. + Weight::from_parts(18_220_022, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_850 - .saturating_add(Weight::from_parts(1_372_466, 0).saturating_mul(s.into())) + // Standard Error: 1_508 + .saturating_add(Weight::from_parts(1_357_835, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -176,11 +176,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `293 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 18_168_000 picoseconds. - Weight::from_parts(22_087_946, 0) + // Minimum execution time: 17_719_000 picoseconds. + Weight::from_parts(21_657_806, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_647 - .saturating_add(Weight::from_parts(797_181, 0).saturating_mul(s.into())) + // Standard Error: 2_645 + .saturating_add(Weight::from_parts(794_184, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -193,11 +193,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `319 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 20_491_000 picoseconds. - Weight::from_parts(20_941_285, 0) + // Minimum execution time: 20_225_000 picoseconds. + Weight::from_parts(20_494_405, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_239 - .saturating_add(Weight::from_parts(1_394_179, 0).saturating_mul(s.into())) + // Standard Error: 1_890 + .saturating_add(Weight::from_parts(1_379_025, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/rococo/src/weights/pallet_sudo.rs b/runtime/rococo/src/weights/pallet_sudo.rs index 180c0ec9c119..83215af5b8ae 100644 --- a/runtime/rococo/src/weights/pallet_sudo.rs +++ b/runtime/rococo/src/weights/pallet_sudo.rs @@ -1,86 +1,84 @@ -// This file is part of Substrate. - // Copyright (C) Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. -//! Autogenerated weights for pallet_sudo +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_sudo` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: -// target/production/substrate +// ./target/production/polkadot // benchmark // pallet +// --chain=rococo-dev // --steps=50 // --repeat=20 +// --pallet=pallet_sudo // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/substrate/.git/.artifacts/bench.json -// --pallet=pallet_sudo -// --chain=dev -// --header=./HEADER-APACHE2 -// --output=./frame/sudo/src/weights.rs -// --template=./.maintain/frame-weight-template.hbs +// --header=./file_header.txt +// --output=./runtime/rococo/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; -/// Weight functions for pallet_sudo. +/// Weight functions for `pallet_sudo`. pub struct WeightInfo(PhantomData); impl pallet_sudo::WeightInfo for WeightInfo { /// Storage: Sudo Key (r:1 w:1) /// Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) fn set_key() -> Weight { // Proof Size summary in bytes: - // Measured: `165` + // Measured: `132` // Estimated: `1517` - // Minimum execution time: 14_078_000 picoseconds. - Weight::from_parts(14_405_000, 1517) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(1_u64)) + // Minimum execution time: 13_047_000 picoseconds. + Weight::from_parts(13_325_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: Sudo Key (r:1 w:0) /// Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) fn sudo() -> Weight { // Proof Size summary in bytes: - // Measured: `165` + // Measured: `132` // Estimated: `1517` - // Minimum execution time: 14_009_000 picoseconds. - Weight::from_parts(14_400_000, 1517) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Minimum execution time: 13_250_000 picoseconds. + Weight::from_parts(13_544_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) } - /// Storage: Sudo Key (r:1 w:0) /// Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) fn sudo_as() -> Weight { // Proof Size summary in bytes: - // Measured: `165` + // Measured: `132` // Estimated: `1517` - // Minimum execution time: 13_954_000 picoseconds. - Weight::from_parts(14_248_000, 1517) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Minimum execution time: 13_424_000 picoseconds. + Weight::from_parts(13_801_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) } } diff --git a/runtime/rococo/src/weights/pallet_timestamp.rs b/runtime/rococo/src/weights/pallet_timestamp.rs index e80e121e953e..1bb2e227ab7d 100644 --- a/runtime/rococo/src/weights/pallet_timestamp.rs +++ b/runtime/rococo/src/weights/pallet_timestamp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -53,20 +53,20 @@ impl pallet_timestamp::WeightInfo for WeightInfo { /// Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn set() -> Weight { // Proof Size summary in bytes: - // Measured: `345` + // Measured: `311` // Estimated: `1493` - // Minimum execution time: 10_506_000 picoseconds. - Weight::from_parts(10_836_000, 0) + // Minimum execution time: 10_103_000 picoseconds. + Weight::from_parts(10_597_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } fn on_finalize() -> Weight { // Proof Size summary in bytes: - // Measured: `128` + // Measured: `94` // Estimated: `0` - // Minimum execution time: 4_828_000 picoseconds. - Weight::from_parts(4_980_000, 0) + // Minimum execution time: 4_718_000 picoseconds. + Weight::from_parts(4_839_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtime/rococo/src/weights/pallet_tips.rs b/runtime/rococo/src/weights/pallet_tips.rs index 95a2083d49c4..c4710afd78e2 100644 --- a/runtime/rococo/src/weights/pallet_tips.rs +++ b/runtime/rococo/src/weights/pallet_tips.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_tips` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -56,11 +56,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4` // Estimated: `3469` - // Minimum execution time: 28_441_000 picoseconds. - Weight::from_parts(29_326_474, 0) + // Minimum execution time: 27_741_000 picoseconds. + Weight::from_parts(28_495_173, 0) .saturating_add(Weight::from_parts(0, 3469)) // Standard Error: 4 - .saturating_add(Weight::from_parts(1_424, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(1_433, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -72,8 +72,8 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `221` // Estimated: `3686` - // Minimum execution time: 27_736_000 picoseconds. - Weight::from_parts(27_883_000, 0) + // Minimum execution time: 27_275_000 picoseconds. + Weight::from_parts(27_649_000, 0) .saturating_add(Weight::from_parts(0, 3686)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -90,13 +90,13 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `74 + t * (64 ±0)` // Estimated: `3539 + t * (64 ±0)` - // Minimum execution time: 20_174_000 picoseconds. - Weight::from_parts(18_891_216, 0) + // Minimum execution time: 19_809_000 picoseconds. + Weight::from_parts(18_182_607, 0) .saturating_add(Weight::from_parts(0, 3539)) // Standard Error: 5 - .saturating_add(Weight::from_parts(1_294, 0).saturating_mul(r.into())) - // Standard Error: 5_028 - .saturating_add(Weight::from_parts(137_067, 0).saturating_mul(t.into())) + .saturating_add(Weight::from_parts(1_303, 0).saturating_mul(r.into())) + // Standard Error: 5_156 + .saturating_add(Weight::from_parts(151_789, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(t.into())) @@ -110,11 +110,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `295 + t * (112 ±0)` // Estimated: `3760 + t * (112 ±0)` - // Minimum execution time: 15_265_000 picoseconds. - Weight::from_parts(15_703_077, 0) + // Minimum execution time: 15_528_000 picoseconds. + Weight::from_parts(15_717_755, 0) .saturating_add(Weight::from_parts(0, 3760)) - // Standard Error: 1_234 - .saturating_add(Weight::from_parts(121_860, 0).saturating_mul(t.into())) + // Standard Error: 6_569 + .saturating_add(Weight::from_parts(146_426, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) @@ -132,11 +132,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `334 + t * (112 ±0)` // Estimated: `3790 + t * (112 ±0)` - // Minimum execution time: 58_194_000 picoseconds. - Weight::from_parts(60_341_457, 0) + // Minimum execution time: 58_304_000 picoseconds. + Weight::from_parts(60_138_785, 0) .saturating_add(Weight::from_parts(0, 3790)) - // Standard Error: 12_710 - .saturating_add(Weight::from_parts(47_407, 0).saturating_mul(t.into())) + // Standard Error: 7_636 + .saturating_add(Weight::from_parts(86_665, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) @@ -150,11 +150,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3734` - // Minimum execution time: 15_522_000 picoseconds. - Weight::from_parts(15_851_790, 0) + // Minimum execution time: 15_097_000 picoseconds. + Weight::from_parts(15_497_872, 0) .saturating_add(Weight::from_parts(0, 3734)) - // Standard Error: 648 - .saturating_add(Weight::from_parts(9_757, 0).saturating_mul(t.into())) + // Standard Error: 785 + .saturating_add(Weight::from_parts(18_377, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/rococo/src/weights/pallet_treasury.rs b/runtime/rococo/src/weights/pallet_treasury.rs index 566cf5500635..041d976d8257 100644 --- a/runtime/rococo/src/weights/pallet_treasury.rs +++ b/runtime/rococo/src/weights/pallet_treasury.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_treasury` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -51,8 +51,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 249_000 picoseconds. - Weight::from_parts(274_000, 0) + // Minimum execution time: 204_000 picoseconds. + Weight::from_parts(233_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Treasury ProposalCount (r:1 w:1) @@ -63,8 +63,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `1489` - // Minimum execution time: 27_300_000 picoseconds. - Weight::from_parts(27_835_000, 0) + // Minimum execution time: 27_592_000 picoseconds. + Weight::from_parts(27_960_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -77,8 +77,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `265` // Estimated: `3593` - // Minimum execution time: 40_594_000 picoseconds. - Weight::from_parts(40_968_000, 0) + // Minimum execution time: 40_336_000 picoseconds. + Weight::from_parts(41_085_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -92,11 +92,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `433 + p * (8 ±0)` // Estimated: `3573` - // Minimum execution time: 9_950_000 picoseconds. - Weight::from_parts(12_003_805, 0) + // Minimum execution time: 9_938_000 picoseconds. + Weight::from_parts(12_061_206, 0) .saturating_add(Weight::from_parts(0, 3573)) - // Standard Error: 739 - .saturating_add(Weight::from_parts(26_775, 0).saturating_mul(p.into())) + // Standard Error: 801 + .saturating_add(Weight::from_parts(26_602, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -106,8 +106,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `1887` - // Minimum execution time: 7_841_000 picoseconds. - Weight::from_parts(8_056_000, 0) + // Minimum execution time: 7_421_000 picoseconds. + Weight::from_parts(7_620_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -129,11 +129,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `296 + p * (251 ±0)` // Estimated: `3593 + p * (5206 ±0)` - // Minimum execution time: 62_386_000 picoseconds. - Weight::from_parts(66_393_437, 0) + // Minimum execution time: 62_706_000 picoseconds. + Weight::from_parts(61_351_470, 0) .saturating_add(Weight::from_parts(0, 3593)) - // Standard Error: 41_927 - .saturating_add(Weight::from_parts(37_509_407, 0).saturating_mul(p.into())) + // Standard Error: 32_787 + .saturating_add(Weight::from_parts(37_873_920, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(5)) diff --git a/runtime/rococo/src/weights/pallet_utility.rs b/runtime/rococo/src/weights/pallet_utility.rs index c16023230b60..f50f60eaad7f 100644 --- a/runtime/rococo/src/weights/pallet_utility.rs +++ b/runtime/rococo/src/weights/pallet_utility.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -52,18 +52,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_125_000 picoseconds. - Weight::from_parts(6_721_863, 0) + // Minimum execution time: 6_738_000 picoseconds. + Weight::from_parts(2_704_821, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_394 - .saturating_add(Weight::from_parts(4_793_877, 0).saturating_mul(c.into())) + // Standard Error: 2_999 + .saturating_add(Weight::from_parts(4_627_278, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_747_000 picoseconds. - Weight::from_parts(5_912_000, 0) + // Minimum execution time: 5_294_000 picoseconds. + Weight::from_parts(5_467_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -71,18 +71,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_221_000 picoseconds. - Weight::from_parts(2_378_749, 0) + // Minimum execution time: 6_828_000 picoseconds. + Weight::from_parts(4_650_678, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_186 - .saturating_add(Weight::from_parts(5_061_499, 0).saturating_mul(c.into())) + // Standard Error: 2_789 + .saturating_add(Weight::from_parts(4_885_004, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_748_000 picoseconds. - Weight::from_parts(10_003_000, 0) + // Minimum execution time: 9_020_000 picoseconds. + Weight::from_parts(9_205_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -90,10 +90,10 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_133_000 picoseconds. - Weight::from_parts(17_560_839, 0) + // Minimum execution time: 6_852_000 picoseconds. + Weight::from_parts(20_703_134, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 4_451 - .saturating_add(Weight::from_parts(4_793_512, 0).saturating_mul(c.into())) + // Standard Error: 3_924 + .saturating_add(Weight::from_parts(4_604_529, 0).saturating_mul(c.into())) } } diff --git a/runtime/rococo/src/weights/pallet_vesting.rs b/runtime/rococo/src/weights/pallet_vesting.rs index be8bb13b0b0c..fd820f1aea32 100644 --- a/runtime/rococo/src/weights/pallet_vesting.rs +++ b/runtime/rococo/src/weights/pallet_vesting.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -59,13 +59,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `277 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 33_027_000 picoseconds. - Weight::from_parts(31_979_043, 0) + // Minimum execution time: 32_820_000 picoseconds. + Weight::from_parts(31_640_992, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 561 - .saturating_add(Weight::from_parts(40_649, 0).saturating_mul(l.into())) - // Standard Error: 999 - .saturating_add(Weight::from_parts(73_964, 0).saturating_mul(s.into())) + // Standard Error: 449 + .saturating_add(Weight::from_parts(45_254, 0).saturating_mul(l.into())) + // Standard Error: 800 + .saturating_add(Weight::from_parts(72_178, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -81,13 +81,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `277 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_135_000 picoseconds. - Weight::from_parts(35_700_309, 0) + // Minimum execution time: 36_054_000 picoseconds. + Weight::from_parts(35_825_428, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 701 - .saturating_add(Weight::from_parts(32_340, 0).saturating_mul(l.into())) - // Standard Error: 1_248 - .saturating_add(Weight::from_parts(47_240, 0).saturating_mul(s.into())) + // Standard Error: 749 + .saturating_add(Weight::from_parts(31_738, 0).saturating_mul(l.into())) + // Standard Error: 1_333 + .saturating_add(Weight::from_parts(40_580, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -105,13 +105,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `380 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 35_524_000 picoseconds. - Weight::from_parts(34_536_489, 0) + // Minimum execution time: 35_440_000 picoseconds. + Weight::from_parts(34_652_647, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 504 - .saturating_add(Weight::from_parts(42_650, 0).saturating_mul(l.into())) - // Standard Error: 897 - .saturating_add(Weight::from_parts(69_561, 0).saturating_mul(s.into())) + // Standard Error: 517 + .saturating_add(Weight::from_parts(41_942, 0).saturating_mul(l.into())) + // Standard Error: 920 + .saturating_add(Weight::from_parts(66_074, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -129,13 +129,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `380 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 38_663_000 picoseconds. - Weight::from_parts(38_627_950, 0) + // Minimum execution time: 38_880_000 picoseconds. + Weight::from_parts(39_625_819, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 872 - .saturating_add(Weight::from_parts(33_584, 0).saturating_mul(l.into())) - // Standard Error: 1_552 - .saturating_add(Weight::from_parts(38_098, 0).saturating_mul(s.into())) + // Standard Error: 1_032 + .saturating_add(Weight::from_parts(29_856, 0).saturating_mul(l.into())) + // Standard Error: 1_837 + .saturating_add(Weight::from_parts(6_210, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -153,13 +153,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `451 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 66_521_000 picoseconds. - Weight::from_parts(67_173_875, 0) + // Minimum execution time: 68_294_000 picoseconds. + Weight::from_parts(68_313_394, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_199 - .saturating_add(Weight::from_parts(48_527, 0).saturating_mul(l.into())) - // Standard Error: 2_134 - .saturating_add(Weight::from_parts(87_011, 0).saturating_mul(s.into())) + // Standard Error: 983 + .saturating_add(Weight::from_parts(48_156, 0).saturating_mul(l.into())) + // Standard Error: 1_750 + .saturating_add(Weight::from_parts(87_719, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -177,13 +177,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `554 + l * (25 ±0) + s * (36 ±0)` // Estimated: `6196` - // Minimum execution time: 69_328_000 picoseconds. - Weight::from_parts(69_623_867, 0) + // Minimum execution time: 70_529_000 picoseconds. + Weight::from_parts(70_619_962, 0) .saturating_add(Weight::from_parts(0, 6196)) - // Standard Error: 890 - .saturating_add(Weight::from_parts(48_816, 0).saturating_mul(l.into())) - // Standard Error: 1_583 - .saturating_add(Weight::from_parts(83_191, 0).saturating_mul(s.into())) + // Standard Error: 1_259 + .saturating_add(Weight::from_parts(50_685, 0).saturating_mul(l.into())) + // Standard Error: 2_241 + .saturating_add(Weight::from_parts(91_444, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -201,13 +201,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `378 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_793_000 picoseconds. - Weight::from_parts(35_597_768, 0) + // Minimum execution time: 36_428_000 picoseconds. + Weight::from_parts(35_604_430, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 437 - .saturating_add(Weight::from_parts(44_674, 0).saturating_mul(l.into())) - // Standard Error: 807 - .saturating_add(Weight::from_parts(71_993, 0).saturating_mul(s.into())) + // Standard Error: 504 + .saturating_add(Weight::from_parts(43_191, 0).saturating_mul(l.into())) + // Standard Error: 931 + .saturating_add(Weight::from_parts(66_795, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -225,13 +225,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `378 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 40_508_000 picoseconds. - Weight::from_parts(39_617_555, 0) + // Minimum execution time: 40_696_000 picoseconds. + Weight::from_parts(39_741_284, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 923 - .saturating_add(Weight::from_parts(48_443, 0).saturating_mul(l.into())) - // Standard Error: 1_704 - .saturating_add(Weight::from_parts(73_498, 0).saturating_mul(s.into())) + // Standard Error: 478 + .saturating_add(Weight::from_parts(43_792, 0).saturating_mul(l.into())) + // Standard Error: 883 + .saturating_add(Weight::from_parts(66_540, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/rococo/src/weights/pallet_xcm.rs b/runtime/rococo/src/weights/pallet_xcm.rs index e96cef3ce2ff..f24e3f10c2f7 100644 --- a/runtime/rococo/src/weights/pallet_xcm.rs +++ b/runtime/rococo/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -63,11 +63,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `585` - // Estimated: `4050` - // Minimum execution time: 37_708_000 picoseconds. - Weight::from_parts(38_559_000, 0) - .saturating_add(Weight::from_parts(0, 4050)) + // Measured: `565` + // Estimated: `4030` + // Minimum execution time: 37_039_000 picoseconds. + Weight::from_parts(37_605_000, 0) + .saturating_add(Weight::from_parts(0, 4030)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -75,24 +75,24 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 22_219_000 picoseconds. - Weight::from_parts(22_746_000, 0) + // Minimum execution time: 21_646_000 picoseconds. + Weight::from_parts(22_119_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 22_157_000 picoseconds. - Weight::from_parts(22_683_000, 0) + // Minimum execution time: 21_353_000 picoseconds. + Weight::from_parts(21_768_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_072_000 picoseconds. - Weight::from_parts(10_360_000, 0) + // Minimum execution time: 9_942_000 picoseconds. + Weight::from_parts(10_110_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: XcmPallet SupportedVersion (r:0 w:1) @@ -101,8 +101,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_169_000 picoseconds. - Weight::from_parts(10_499_000, 0) + // Minimum execution time: 9_951_000 picoseconds. + Weight::from_parts(10_182_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -112,8 +112,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_335_000 picoseconds. - Weight::from_parts(3_471_000, 0) + // Minimum execution time: 3_163_000 picoseconds. + Weight::from_parts(3_298_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -139,11 +139,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `585` - // Estimated: `4050` - // Minimum execution time: 42_792_000 picoseconds. - Weight::from_parts(43_482_000, 0) - .saturating_add(Weight::from_parts(0, 4050)) + // Measured: `565` + // Estimated: `4030` + // Minimum execution time: 41_207_000 picoseconds. + Weight::from_parts(41_879_000, 0) + .saturating_add(Weight::from_parts(0, 4030)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -167,11 +167,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `857` - // Estimated: `4322` - // Minimum execution time: 45_415_000 picoseconds. - Weight::from_parts(45_986_000, 0) - .saturating_add(Weight::from_parts(0, 4322)) + // Measured: `837` + // Estimated: `4302` + // Minimum execution time: 44_763_000 picoseconds. + Weight::from_parts(45_368_000, 0) + .saturating_add(Weight::from_parts(0, 4302)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -181,8 +181,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_321_000 picoseconds. - Weight::from_parts(3_453_000, 0) + // Minimum execution time: 3_089_000 picoseconds. + Weight::from_parts(3_246_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -192,8 +192,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `229` // Estimated: `11119` - // Minimum execution time: 16_952_000 picoseconds. - Weight::from_parts(17_280_000, 0) + // Minimum execution time: 16_733_000 picoseconds. + Weight::from_parts(17_354_000, 0) .saturating_add(Weight::from_parts(0, 11119)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -204,8 +204,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `233` // Estimated: `11123` - // Minimum execution time: 16_934_000 picoseconds. - Weight::from_parts(17_310_000, 0) + // Minimum execution time: 16_959_000 picoseconds. + Weight::from_parts(17_306_000, 0) .saturating_add(Weight::from_parts(0, 11123)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -216,8 +216,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `243` // Estimated: `13608` - // Minimum execution time: 18_266_000 picoseconds. - Weight::from_parts(18_596_000, 0) + // Minimum execution time: 17_964_000 picoseconds. + Weight::from_parts(18_548_000, 0) .saturating_add(Weight::from_parts(0, 13608)) .saturating_add(T::DbWeight::get().reads(5)) } @@ -239,11 +239,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `655` - // Estimated: `6595` - // Minimum execution time: 39_178_000 picoseconds. - Weight::from_parts(39_574_000, 0) - .saturating_add(Weight::from_parts(0, 6595)) + // Measured: `635` + // Estimated: `6575` + // Minimum execution time: 39_436_000 picoseconds. + Weight::from_parts(39_669_000, 0) + .saturating_add(Weight::from_parts(0, 6575)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -253,8 +253,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `272` // Estimated: `8687` - // Minimum execution time: 8_813_000 picoseconds. - Weight::from_parts(9_109_000, 0) + // Minimum execution time: 8_991_000 picoseconds. + Weight::from_parts(9_248_000, 0) .saturating_add(Weight::from_parts(0, 8687)) .saturating_add(T::DbWeight::get().reads(3)) } @@ -264,8 +264,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `240` // Estimated: `11130` - // Minimum execution time: 17_489_000 picoseconds. - Weight::from_parts(17_784_000, 0) + // Minimum execution time: 17_614_000 picoseconds. + Weight::from_parts(17_948_000, 0) .saturating_add(Weight::from_parts(0, 11130)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -288,11 +288,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `659` - // Estimated: `11549` - // Minimum execution time: 46_279_000 picoseconds. - Weight::from_parts(47_024_000, 0) - .saturating_add(Weight::from_parts(0, 11549)) + // Measured: `639` + // Estimated: `11529` + // Minimum execution time: 45_531_000 picoseconds. + Weight::from_parts(46_533_000, 0) + .saturating_add(Weight::from_parts(0, 11529)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(5)) } diff --git a/runtime/rococo/src/weights/runtime_common_auctions.rs b/runtime/rococo/src/weights/runtime_common_auctions.rs index 801b7ef8bdf2..3cd7c7a47e90 100644 --- a/runtime/rococo/src/weights/runtime_common_auctions.rs +++ b/runtime/rococo/src/weights/runtime_common_auctions.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::auctions` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `4` // Estimated: `1493` - // Minimum execution time: 13_435_000 picoseconds. - Weight::from_parts(13_892_000, 0) + // Minimum execution time: 12_805_000 picoseconds. + Weight::from_parts(13_153_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +79,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `728` // Estimated: `6060` - // Minimum execution time: 77_018_000 picoseconds. - Weight::from_parts(78_422_000, 0) + // Minimum execution time: 77_380_000 picoseconds. + Weight::from_parts(80_503_000, 0) .saturating_add(Weight::from_parts(0, 6060)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -111,10 +111,10 @@ impl runtime_common::auctions::WeightInfo for WeightInf /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) fn on_initialize() -> Weight { // Proof Size summary in bytes: - // Measured: `6947752` + // Measured: `6947789` // Estimated: `15822990` - // Minimum execution time: 6_261_358_000 picoseconds. - Weight::from_parts(6_347_519_000, 0) + // Minimum execution time: 6_311_055_000 picoseconds. + Weight::from_parts(6_409_142_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3683)) .saturating_add(T::DbWeight::get().writes(3678)) @@ -131,8 +131,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `177732` // Estimated: `15822990` - // Minimum execution time: 4_873_133_000 picoseconds. - Weight::from_parts(4_957_501_000, 0) + // Minimum execution time: 4_849_561_000 picoseconds. + Weight::from_parts(4_955_226_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3673)) .saturating_add(T::DbWeight::get().writes(3673)) diff --git a/runtime/rococo/src/weights/runtime_common_claims.rs b/runtime/rococo/src/weights/runtime_common_claims.rs index a1bba92cbe3f..52e0dd24afa0 100644 --- a/runtime/rococo/src/weights/runtime_common_claims.rs +++ b/runtime/rococo/src/weights/runtime_common_claims.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::claims` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -67,8 +67,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `558` // Estimated: `4764` - // Minimum execution time: 144_338_000 picoseconds. - Weight::from_parts(145_944_000, 0) + // Minimum execution time: 144_931_000 picoseconds. + Weight::from_parts(156_550_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -85,8 +85,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `216` // Estimated: `1701` - // Minimum execution time: 11_648_000 picoseconds. - Weight::from_parts(12_056_000, 0) + // Minimum execution time: 11_300_000 picoseconds. + Weight::from_parts(11_642_000, 0) .saturating_add(Weight::from_parts(0, 1701)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(4)) @@ -111,8 +111,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `558` // Estimated: `4764` - // Minimum execution time: 148_461_000 picoseconds. - Weight::from_parts(150_491_000, 0) + // Minimum execution time: 149_112_000 picoseconds. + Weight::from_parts(153_872_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -139,8 +139,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `632` // Estimated: `4764` - // Minimum execution time: 68_260_000 picoseconds. - Weight::from_parts(70_399_000, 0) + // Minimum execution time: 69_619_000 picoseconds. + Weight::from_parts(79_242_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -157,8 +157,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `440` // Estimated: `3905` - // Minimum execution time: 22_691_000 picoseconds. - Weight::from_parts(23_150_000, 0) + // Minimum execution time: 22_066_000 picoseconds. + Weight::from_parts(22_483_000, 0) .saturating_add(Weight::from_parts(0, 3905)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(7)) diff --git a/runtime/rococo/src/weights/runtime_common_crowdloan.rs b/runtime/rococo/src/weights/runtime_common_crowdloan.rs index b8d842dede24..0e7420cba2e6 100644 --- a/runtime/rococo/src/weights/runtime_common_crowdloan.rs +++ b/runtime/rococo/src/weights/runtime_common_crowdloan.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::crowdloan` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -61,8 +61,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `438` // Estimated: `3903` - // Minimum execution time: 49_887_000 picoseconds. - Weight::from_parts(50_567_000, 0) + // Minimum execution time: 50_399_000 picoseconds. + Weight::from_parts(51_641_000, 0) .saturating_add(Weight::from_parts(0, 3903)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -87,8 +87,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `530` // Estimated: `3995` - // Minimum execution time: 123_762_000 picoseconds. - Weight::from_parts(125_989_000, 0) + // Minimum execution time: 128_898_000 picoseconds. + Weight::from_parts(130_277_000, 0) .saturating_add(Weight::from_parts(0, 3995)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -105,8 +105,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `689` // Estimated: `6196` - // Minimum execution time: 69_524_000 picoseconds. - Weight::from_parts(70_532_000, 0) + // Minimum execution time: 69_543_000 picoseconds. + Weight::from_parts(71_522_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -118,11 +118,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `127 + k * (189 ±0)` // Estimated: `140 + k * (189 ±0)` - // Minimum execution time: 41_359_000 picoseconds. - Weight::from_parts(44_543_000, 0) + // Minimum execution time: 50_735_000 picoseconds. + Weight::from_parts(52_282_000, 0) .saturating_add(Weight::from_parts(0, 140)) - // Standard Error: 19_477 - .saturating_add(Weight::from_parts(38_206_846, 0).saturating_mul(k.into())) + // Standard Error: 21_607 + .saturating_add(Weight::from_parts(38_955_985, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -137,8 +137,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `515` // Estimated: `6196` - // Minimum execution time: 42_493_000 picoseconds. - Weight::from_parts(43_503_000, 0) + // Minimum execution time: 43_100_000 picoseconds. + Weight::from_parts(44_272_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -149,8 +149,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `235` // Estimated: `3700` - // Minimum execution time: 18_834_000 picoseconds. - Weight::from_parts(19_651_000, 0) + // Minimum execution time: 18_702_000 picoseconds. + Weight::from_parts(19_408_000, 0) .saturating_add(Weight::from_parts(0, 3700)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -163,8 +163,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `412` // Estimated: `3877` - // Minimum execution time: 25_595_000 picoseconds. - Weight::from_parts(26_434_000, 0) + // Minimum execution time: 25_568_000 picoseconds. + Weight::from_parts(26_203_000, 0) .saturating_add(Weight::from_parts(0, 3877)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -177,8 +177,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `239` // Estimated: `3704` - // Minimum execution time: 18_561_000 picoseconds. - Weight::from_parts(19_191_000, 0) + // Minimum execution time: 17_832_000 picoseconds. + Weight::from_parts(18_769_000, 0) .saturating_add(Weight::from_parts(0, 3704)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -208,11 +208,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `197 + n * (356 ±0)` // Estimated: `5385 + n * (2832 ±0)` - // Minimum execution time: 128_619_000 picoseconds. - Weight::from_parts(129_823_000, 0) + // Minimum execution time: 128_319_000 picoseconds. + Weight::from_parts(130_877_000, 0) .saturating_add(Weight::from_parts(0, 5385)) - // Standard Error: 60_203 - .saturating_add(Weight::from_parts(59_500_580, 0).saturating_mul(n.into())) + // Standard Error: 61_381 + .saturating_add(Weight::from_parts(60_209_202, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/rococo/src/weights/runtime_common_paras_registrar.rs b/runtime/rococo/src/weights/runtime_common_paras_registrar.rs index 19f18b51ddf6..0a56562a1a95 100644 --- a/runtime/rococo/src/weights/runtime_common_paras_registrar.rs +++ b/runtime/rococo/src/weights/runtime_common_paras_registrar.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::paras_registrar` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -57,8 +57,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `97` // Estimated: `3562` - // Minimum execution time: 30_761_000 picoseconds. - Weight::from_parts(31_398_000, 0) + // Minimum execution time: 29_948_000 picoseconds. + Weight::from_parts(30_433_000, 0) .saturating_add(Weight::from_parts(0, 3562)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -69,14 +69,14 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) /// Storage: Configuration ActiveConfig (r:1 w:0) /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) - /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras ActionsQueue (r:1 w:1) - /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:0 w:1) @@ -85,13 +85,13 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras UpcomingParasGenesis (max_values: None, max_size: None, mode: Measured) fn register() -> Weight { // Proof Size summary in bytes: - // Measured: `577` - // Estimated: `4042` - // Minimum execution time: 6_313_873_000 picoseconds. - Weight::from_parts(6_441_492_000, 0) - .saturating_add(Weight::from_parts(0, 4042)) + // Measured: `616` + // Estimated: `4081` + // Minimum execution time: 6_332_113_000 picoseconds. + Weight::from_parts(6_407_158_000, 0) + .saturating_add(Weight::from_parts(0, 4081)) .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(T::DbWeight::get().writes(8)) } /// Storage: Registrar Paras (r:1 w:1) /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) @@ -99,14 +99,14 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) /// Storage: Configuration ActiveConfig (r:1 w:0) /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) - /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras ActionsQueue (r:1 w:1) - /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:0 w:1) @@ -115,13 +115,13 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras UpcomingParasGenesis (max_values: None, max_size: None, mode: Measured) fn force_register() -> Weight { // Proof Size summary in bytes: - // Measured: `494` - // Estimated: `3959` - // Minimum execution time: 6_281_063_000 picoseconds. - Weight::from_parts(6_408_633_000, 0) - .saturating_add(Weight::from_parts(0, 3959)) + // Measured: `533` + // Estimated: `3998` + // Minimum execution time: 6_245_403_000 picoseconds. + Weight::from_parts(6_289_575_000, 0) + .saturating_add(Weight::from_parts(0, 3998)) .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(T::DbWeight::get().writes(8)) } /// Storage: Registrar Paras (r:1 w:1) /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) @@ -133,16 +133,18 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras ActionsQueue (r:1 w:1) /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: Registrar PendingSwap (r:0 w:1) /// Proof Skipped: Registrar PendingSwap (max_values: None, max_size: None, mode: Measured) fn deregister() -> Weight { // Proof Size summary in bytes: - // Measured: `435` - // Estimated: `3900` - // Minimum execution time: 45_757_000 picoseconds. - Weight::from_parts(46_667_000, 0) - .saturating_add(Weight::from_parts(0, 3900)) - .saturating_add(T::DbWeight::get().reads(5)) + // Measured: `476` + // Estimated: `3941` + // Minimum execution time: 49_822_000 picoseconds. + Weight::from_parts(50_604_000, 0) + .saturating_add(Weight::from_parts(0, 3941)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: Registrar Paras (r:1 w:0) @@ -161,11 +163,11 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured) fn swap() -> Weight { // Proof Size summary in bytes: - // Measured: `743` - // Estimated: `6683` - // Minimum execution time: 48_199_000 picoseconds. - Weight::from_parts(50_725_000, 0) - .saturating_add(Weight::from_parts(0, 6683)) + // Measured: `780` + // Estimated: `6720` + // Minimum execution time: 55_166_000 picoseconds. + Weight::from_parts(56_913_000, 0) + .saturating_add(Weight::from_parts(0, 6720)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) } @@ -179,30 +181,28 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured) /// Storage: Paras UpgradeCooldowns (r:1 w:1) /// Proof Skipped: Paras UpgradeCooldowns (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras UpcomingUpgrades (r:1 w:1) - /// Proof Skipped: Paras UpcomingUpgrades (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Digest (r:1 w:1) - /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras FutureCodeUpgrades (r:0 w:1) - /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) /// The range of component `b` is `[1, 3145728]`. fn schedule_code_upgrade(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `335` - // Estimated: `3800` - // Minimum execution time: 44_097_000 picoseconds. - Weight::from_parts(44_272_000, 0) - .saturating_add(Weight::from_parts(0, 3800)) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_986, 0).saturating_mul(b.into())) + // Measured: `464` + // Estimated: `3929` + // Minimum execution time: 43_650_000 picoseconds. + Weight::from_parts(43_918_000, 0) + .saturating_add(Weight::from_parts(0, 3929)) + // Standard Error: 6 + .saturating_add(Weight::from_parts(2_041, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(10)) - .saturating_add(T::DbWeight::get().writes(8)) + .saturating_add(T::DbWeight::get().writes(7)) } /// Storage: Paras Heads (r:0 w:1) /// Proof Skipped: Paras Heads (max_values: None, max_size: None, mode: Measured) @@ -211,11 +211,11 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_596_000 picoseconds. - Weight::from_parts(9_673_000, 0) + // Minimum execution time: 8_666_000 picoseconds. + Weight::from_parts(8_893_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 2 - .saturating_add(Weight::from_parts(857, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(855, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().writes(1)) } } diff --git a/runtime/rococo/src/weights/runtime_common_slots.rs b/runtime/rococo/src/weights/runtime_common_slots.rs index 79350180946b..23ab1ed3ee0e 100644 --- a/runtime/rococo/src/weights/runtime_common_slots.rs +++ b/runtime/rococo/src/weights/runtime_common_slots.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::slots` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `0 + c * (47 ±0) + t * (308 ±0)` - // Estimated: `2763 + c * (2526 ±0) + t * (2789 ±0)` - // Minimum execution time: 642_513_000 picoseconds. - Weight::from_parts(645_643_000, 0) - .saturating_add(Weight::from_parts(0, 2763)) - // Standard Error: 84_556 - .saturating_add(Weight::from_parts(2_748_100, 0).saturating_mul(c.into())) - // Standard Error: 84_556 - .saturating_add(Weight::from_parts(11_405_820, 0).saturating_mul(t.into())) + // Measured: `26 + c * (47 ±0) + t * (308 ±0)` + // Estimated: `2800 + c * (2526 ±0) + t * (2789 ±0)` + // Minimum execution time: 634_547_000 picoseconds. + Weight::from_parts(643_045_000, 0) + .saturating_add(Weight::from_parts(0, 2800)) + // Standard Error: 81_521 + .saturating_add(Weight::from_parts(2_705_219, 0).saturating_mul(c.into())) + // Standard Error: 81_521 + .saturating_add(Weight::from_parts(11_464_132, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(t.into()))) @@ -103,8 +103,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `670` - // Estimated: `4135` - // Minimum execution time: 28_865_000 picoseconds. - Weight::from_parts(29_720_000, 0) - .saturating_add(Weight::from_parts(0, 4135)) + // Measured: `707` + // Estimated: `4172` + // Minimum execution time: 29_527_000 picoseconds. + Weight::from_parts(30_055_000, 0) + .saturating_add(Weight::from_parts(0, 4172)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/rococo/src/weights/runtime_parachains_configuration.rs b/runtime/rococo/src/weights/runtime_parachains_configuration.rs index 11effbc4e63e..c44046382d5a 100644 --- a/runtime/rococo/src/weights/runtime_parachains_configuration.rs +++ b/runtime/rococo/src/weights/runtime_parachains_configuration.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::configuration` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -57,11 +57,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_block_number() -> Weight { // Proof Size summary in bytes: - // Measured: `397` - // Estimated: `1882` - // Minimum execution time: 12_881_000 picoseconds. - Weight::from_parts(13_274_000, 0) - .saturating_add(Weight::from_parts(0, 1882)) + // Measured: `414` + // Estimated: `1899` + // Minimum execution time: 13_097_000 picoseconds. + Weight::from_parts(13_667_000, 0) + .saturating_add(Weight::from_parts(0, 1899)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -75,11 +75,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { // Proof Size summary in bytes: - // Measured: `397` - // Estimated: `1882` - // Minimum execution time: 13_213_000 picoseconds. - Weight::from_parts(13_426_000, 0) - .saturating_add(Weight::from_parts(0, 1882)) + // Measured: `414` + // Estimated: `1899` + // Minimum execution time: 13_199_000 picoseconds. + Weight::from_parts(13_400_000, 0) + .saturating_add(Weight::from_parts(0, 1899)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -122,11 +122,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `397` - // Estimated: `1882` - // Minimum execution time: 12_798_000 picoseconds. - Weight::from_parts(13_164_000, 0) - .saturating_add(Weight::from_parts(0, 1882)) + // Measured: `414` + // Estimated: `1899` + // Minimum execution time: 13_059_000 picoseconds. + Weight::from_parts(13_481_000, 0) + .saturating_add(Weight::from_parts(0, 1899)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -140,11 +140,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_executor_params() -> Weight { // Proof Size summary in bytes: - // Measured: `397` - // Estimated: `1882` - // Minimum execution time: 13_685_000 picoseconds. - Weight::from_parts(14_089_000, 0) - .saturating_add(Weight::from_parts(0, 1882)) + // Measured: `414` + // Estimated: `1899` + // Minimum execution time: 13_764_000 picoseconds. + Weight::from_parts(14_224_000, 0) + .saturating_add(Weight::from_parts(0, 1899)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/rococo/src/weights/runtime_parachains_disputes.rs b/runtime/rococo/src/weights/runtime_parachains_disputes.rs index 87b6fa8182ff..63a8c3addc7d 100644 --- a/runtime/rococo/src/weights/runtime_parachains_disputes.rs +++ b/runtime/rococo/src/weights/runtime_parachains_disputes.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl runtime_parachains::disputes::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_111_000 picoseconds. - Weight::from_parts(3_231_000, 0) + // Minimum execution time: 2_937_000 picoseconds. + Weight::from_parts(3_082_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/rococo/src/weights/runtime_parachains_hrmp.rs b/runtime/rococo/src/weights/runtime_parachains_hrmp.rs index 437cf71c4eb3..d3fba805d47d 100644 --- a/runtime/rococo/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/rococo/src/weights/runtime_parachains_hrmp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::hrmp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -67,11 +67,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn hrmp_init_open_channel() -> Weight { // Proof Size summary in bytes: - // Measured: `724` - // Estimated: `6664` - // Minimum execution time: 41_955_000 picoseconds. - Weight::from_parts(42_506_000, 0) - .saturating_add(Weight::from_parts(0, 6664)) + // Measured: `704` + // Estimated: `6644` + // Minimum execution time: 41_564_000 picoseconds. + Weight::from_parts(42_048_000, 0) + .saturating_add(Weight::from_parts(0, 6644)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -91,11 +91,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn hrmp_accept_open_channel() -> Weight { // Proof Size summary in bytes: - // Measured: `956` - // Estimated: `4421` - // Minimum execution time: 44_499_000 picoseconds. - Weight::from_parts(45_268_000, 0) - .saturating_add(Weight::from_parts(0, 4421)) + // Measured: `936` + // Estimated: `4401` + // Minimum execution time: 43_570_000 picoseconds. + Weight::from_parts(44_089_000, 0) + .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -113,11 +113,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) fn hrmp_close_channel() -> Weight { // Proof Size summary in bytes: - // Measured: `827` - // Estimated: `4292` - // Minimum execution time: 36_879_000 picoseconds. - Weight::from_parts(37_491_000, 0) - .saturating_add(Weight::from_parts(0, 4292)) + // Measured: `807` + // Estimated: `4272` + // Minimum execution time: 36_594_000 picoseconds. + Weight::from_parts(37_090_000, 0) + .saturating_add(Weight::from_parts(0, 4272)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -139,13 +139,13 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `264 + e * (100 ±0) + i * (100 ±0)` // Estimated: `3726 + e * (2575 ±0) + i * (2575 ±0)` - // Minimum execution time: 1_104_651_000 picoseconds. - Weight::from_parts(1_108_204_000, 0) + // Minimum execution time: 1_085_140_000 picoseconds. + Weight::from_parts(1_100_901_000, 0) .saturating_add(Weight::from_parts(0, 3726)) - // Standard Error: 99_163 - .saturating_add(Weight::from_parts(3_322_286, 0).saturating_mul(i.into())) - // Standard Error: 99_163 - .saturating_add(Weight::from_parts(3_418_641, 0).saturating_mul(e.into())) + // Standard Error: 98_982 + .saturating_add(Weight::from_parts(3_229_112, 0).saturating_mul(i.into())) + // Standard Error: 98_982 + .saturating_add(Weight::from_parts(3_210_944, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(e.into()))) @@ -176,13 +176,13 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// The range of component `c` is `[0, 128]`. fn force_process_hrmp_open(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `799 + c * (136 ±0)` - // Estimated: `2254 + c * (5086 ±0)` - // Minimum execution time: 10_816_000 picoseconds. - Weight::from_parts(9_240_011, 0) - .saturating_add(Weight::from_parts(0, 2254)) - // Standard Error: 22_052 - .saturating_add(Weight::from_parts(18_916_621, 0).saturating_mul(c.into())) + // Measured: `779 + c * (136 ±0)` + // Estimated: `2234 + c * (5086 ±0)` + // Minimum execution time: 10_497_000 picoseconds. + Weight::from_parts(6_987_455, 0) + .saturating_add(Weight::from_parts(0, 2234)) + // Standard Error: 18_540 + .saturating_add(Weight::from_parts(18_788_534, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -206,11 +206,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `335 + c * (124 ±0)` // Estimated: `1795 + c * (2600 ±0)` - // Minimum execution time: 6_612_000 picoseconds. - Weight::from_parts(2_140_713, 0) + // Minimum execution time: 6_575_000 picoseconds. + Weight::from_parts(1_228_642, 0) .saturating_add(Weight::from_parts(0, 1795)) - // Standard Error: 13_726 - .saturating_add(Weight::from_parts(11_803_236, 0).saturating_mul(c.into())) + // Standard Error: 14_826 + .saturating_add(Weight::from_parts(11_604_038, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -228,11 +228,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `1026 + c * (13 ±0)` // Estimated: `4295 + c * (15 ±0)` - // Minimum execution time: 22_553_000 picoseconds. - Weight::from_parts(26_395_862, 0) + // Minimum execution time: 22_301_000 picoseconds. + Weight::from_parts(26_131_473, 0) .saturating_add(Weight::from_parts(0, 4295)) - // Standard Error: 800 - .saturating_add(Weight::from_parts(50_243, 0).saturating_mul(c.into())) + // Standard Error: 830 + .saturating_add(Weight::from_parts(49_448, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 15).saturating_mul(c.into())) @@ -246,11 +246,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `243 + c * (63 ±0)` // Estimated: `1722 + c * (2538 ±0)` - // Minimum execution time: 5_077_000 picoseconds. - Weight::from_parts(3_712_296, 0) + // Minimum execution time: 5_234_000 picoseconds. + Weight::from_parts(7_350_270, 0) .saturating_add(Weight::from_parts(0, 1722)) - // Standard Error: 3_271 - .saturating_add(Weight::from_parts(3_109_786, 0).saturating_mul(c.into())) + // Standard Error: 3_105 + .saturating_add(Weight::from_parts(2_981_935, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -281,11 +281,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured) fn force_open_hrmp_channel() -> Weight { // Proof Size summary in bytes: - // Measured: `724` - // Estimated: `6664` - // Minimum execution time: 56_406_000 picoseconds. - Weight::from_parts(56_990_000, 0) - .saturating_add(Weight::from_parts(0, 6664)) + // Measured: `704` + // Estimated: `6644` + // Minimum execution time: 55_611_000 picoseconds. + Weight::from_parts(56_488_000, 0) + .saturating_add(Weight::from_parts(0, 6644)) .saturating_add(T::DbWeight::get().reads(14)) .saturating_add(T::DbWeight::get().writes(8)) } diff --git a/runtime/rococo/src/weights/runtime_parachains_inclusion.rs b/runtime/rococo/src/weights/runtime_parachains_inclusion.rs index 83c1056951ec..a121ad774cef 100644 --- a/runtime/rococo/src/weights/runtime_parachains_inclusion.rs +++ b/runtime/rococo/src/weights/runtime_parachains_inclusion.rs @@ -1,4 +1,4 @@ -// Copyright 2017-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Polkadot. // Polkadot is free software: you can redistribute it and/or modify @@ -13,16 +13,17 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . + //! Autogenerated weights for `runtime_parachains::inclusion` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-02-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: -// ./target/release/polkadot +// ./target/production/polkadot // benchmark // pallet // --chain=rococo-dev @@ -33,34 +34,41 @@ // --execution=wasm // --wasm-execution=compiled // --header=./file_header.txt -// --output=./runtime/rococo/src/weights +// --output=./runtime/rococo/src/weights/runtime_parachains_inclusion.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `runtime_parachains::inclusion`. pub struct WeightInfo(PhantomData); impl runtime_parachains::inclusion::WeightInfo for WeightInfo { /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:999) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) /// The range of component `i` is `[1, 1000]`. fn receive_upward_messages(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `51490` - // Estimated: `70587` - // Minimum execution time: 48_782 nanoseconds. - Weight::from_parts(49_384_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) - // Standard Error: 32_635 - .saturating_add(Weight::from_parts(43_384_796, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `33280` + // Estimated: `36283` + // Minimum execution time: 71_094_000 picoseconds. + Weight::from_parts(71_436_000, 0) + .saturating_add(Weight::from_parts(0, 36283)) + // Standard Error: 22_149 + .saturating_add(Weight::from_parts(51_495_472, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } } diff --git a/runtime/rococo/src/weights/runtime_parachains_initializer.rs b/runtime/rococo/src/weights/runtime_parachains_initializer.rs index 8fe60049fdee..5c627507dfb6 100644 --- a/runtime/rococo/src/weights/runtime_parachains_initializer.rs +++ b/runtime/rococo/src/weights/runtime_parachains_initializer.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::initializer` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl runtime_parachains::initializer::WeightInfo for We // Proof Size summary in bytes: // Measured: `0 + d * (11 ±0)` // Estimated: `1480 + d * (11 ±0)` - // Minimum execution time: 3_890_000 picoseconds. - Weight::from_parts(8_162_517, 0) + // Minimum execution time: 3_771_000 picoseconds. + Weight::from_parts(6_491_437, 0) .saturating_add(Weight::from_parts(0, 1480)) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_305, 0).saturating_mul(d.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_356, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 11).saturating_mul(d.into())) diff --git a/runtime/rococo/src/weights/runtime_parachains_paras.rs b/runtime/rococo/src/weights/runtime_parachains_paras.rs index 9e4be969a3d7..17958b957f37 100644 --- a/runtime/rococo/src/weights/runtime_parachains_paras.rs +++ b/runtime/rococo/src/weights/runtime_parachains_paras.rs @@ -17,30 +17,29 @@ //! Autogenerated weights for `runtime_parachains::paras` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: -// target/production/polkadot +// ./target/production/polkadot // benchmark // pallet +// --chain=rococo-dev // --steps=50 // --repeat=20 +// --pallet=runtime_parachains::paras // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json -// --pallet=runtime_parachains::paras -// --chain=rococo-dev // --header=./file_header.txt -// --output=./runtime/rococo/src/weights/ +// --output=./runtime/rococo/src/weights/runtime_parachains_paras.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; @@ -65,11 +64,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `8309` // Estimated: `11774` - // Minimum execution time: 32_367_000 picoseconds. - Weight::from_parts(32_540_000, 0) + // Minimum execution time: 31_941_000 picoseconds. + Weight::from_parts(32_139_000, 0) .saturating_add(Weight::from_parts(0, 11774)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_977, 0).saturating_mul(c.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(2_011, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -80,11 +79,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_523_000 picoseconds. - Weight::from_parts(8_633_000, 0) + // Minimum execution time: 8_275_000 picoseconds. + Weight::from_parts(8_321_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 2 - .saturating_add(Weight::from_parts(882, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(858, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Configuration ActiveConfig (r:1 w:0) @@ -110,13 +109,13 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// The range of component `c` is `[1, 3145728]`. fn force_schedule_code_upgrade(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `8698` - // Estimated: `12163` - // Minimum execution time: 50_830_000 picoseconds. - Weight::from_parts(50_953_000, 0) - .saturating_add(Weight::from_parts(0, 12163)) + // Measured: `8715` + // Estimated: `12180` + // Minimum execution time: 49_923_000 picoseconds. + Weight::from_parts(50_688_000, 0) + .saturating_add(Weight::from_parts(0, 12180)) // Standard Error: 1 - .saturating_add(Weight::from_parts(2_008, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_976, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -131,11 +130,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `95` // Estimated: `3560` - // Minimum execution time: 14_524_000 picoseconds. - Weight::from_parts(14_595_000, 0) + // Minimum execution time: 14_408_000 picoseconds. + Weight::from_parts(14_647_000, 0) .saturating_add(Weight::from_parts(0, 3560)) // Standard Error: 2 - .saturating_add(Weight::from_parts(886, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(858, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -145,11 +144,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) fn force_queue_action() -> Weight { // Proof Size summary in bytes: - // Measured: `4251` - // Estimated: `7716` - // Minimum execution time: 20_191_000 picoseconds. - Weight::from_parts(20_738_000, 0) - .saturating_add(Weight::from_parts(0, 7716)) + // Measured: `4288` + // Estimated: `7753` + // Minimum execution time: 20_009_000 picoseconds. + Weight::from_parts(20_518_000, 0) + .saturating_add(Weight::from_parts(0, 7753)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -166,13 +165,13 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// The range of component `c` is `[1, 3145728]`. fn add_trusted_validation_code(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `929` - // Estimated: `4394` - // Minimum execution time: 84_027_000 picoseconds. - Weight::from_parts(66_112_336, 0) - .saturating_add(Weight::from_parts(0, 4394)) + // Measured: `946` + // Estimated: `4411` + // Minimum execution time: 80_626_000 picoseconds. + Weight::from_parts(52_721_755, 0) + .saturating_add(Weight::from_parts(0, 4411)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_446, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_443, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -184,8 +183,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `28` // Estimated: `3493` - // Minimum execution time: 6_672_000 picoseconds. - Weight::from_parts(6_990_000, 0) + // Minimum execution time: 6_692_000 picoseconds. + Weight::from_parts(7_009_000, 0) .saturating_add(Weight::from_parts(0, 3493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -198,11 +197,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement() -> Weight { // Proof Size summary in bytes: - // Measured: `26645` - // Estimated: `30110` - // Minimum execution time: 92_650_000 picoseconds. - Weight::from_parts(93_865_000, 0) - .saturating_add(Weight::from_parts(0, 30110)) + // Measured: `26682` + // Estimated: `30147` + // Minimum execution time: 87_994_000 picoseconds. + Weight::from_parts(89_933_000, 0) + .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -224,11 +223,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_upgrade_accept() -> Weight { // Proof Size summary in bytes: - // Measured: `27506` - // Estimated: `30971` - // Minimum execution time: 772_011_000 picoseconds. - Weight::from_parts(782_508_000, 0) - .saturating_add(Weight::from_parts(0, 30971)) + // Measured: `27523` + // Estimated: `30988` + // Minimum execution time: 783_222_000 picoseconds. + Weight::from_parts(794_959_000, 0) + .saturating_add(Weight::from_parts(0, 30988)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(104)) } @@ -240,11 +239,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_upgrade_reject() -> Weight { // Proof Size summary in bytes: - // Measured: `27177` - // Estimated: `30642` - // Minimum execution time: 88_339_000 picoseconds. - Weight::from_parts(90_069_000, 0) - .saturating_add(Weight::from_parts(0, 30642)) + // Measured: `27214` + // Estimated: `30679` + // Minimum execution time: 87_424_000 picoseconds. + Weight::from_parts(88_737_000, 0) + .saturating_add(Weight::from_parts(0, 30679)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -262,11 +261,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_onboarding_accept() -> Weight { // Proof Size summary in bytes: - // Measured: `26974` - // Estimated: `30439` - // Minimum execution time: 613_406_000 picoseconds. - Weight::from_parts(621_925_000, 0) - .saturating_add(Weight::from_parts(0, 30439)) + // Measured: `26991` + // Estimated: `30456` + // Minimum execution time: 612_485_000 picoseconds. + Weight::from_parts(621_670_000, 0) + .saturating_add(Weight::from_parts(0, 30456)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -278,11 +277,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_onboarding_reject() -> Weight { // Proof Size summary in bytes: - // Measured: `26645` - // Estimated: `30110` - // Minimum execution time: 87_629_000 picoseconds. - Weight::from_parts(89_057_000, 0) - .saturating_add(Weight::from_parts(0, 30110)) + // Measured: `26682` + // Estimated: `30147` + // Minimum execution time: 86_673_000 picoseconds. + Weight::from_parts(87_424_000, 0) + .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/constants/src/weights/block_weights.rs b/runtime/westend/constants/src/weights/block_weights.rs index 0dfd22ff9165..df4e38e33746 100644 --- a/runtime/westend/constants/src/weights/block_weights.rs +++ b/runtime/westend/constants/src/weights/block_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28 (Y/M/D) -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-05-26 (Y/M/D) +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 397_060, 447_262 - /// Average: 401_599 - /// Median: 399_367 - /// Std-Dev: 7259.52 + /// Min, Max: 379_459, 671_306 + /// Average: 390_664 + /// Median: 382_137 + /// Std-Dev: 31355.18 /// /// Percentiles nanoseconds: - /// 99th: 433_225 - /// 95th: 413_788 - /// 75th: 400_912 + /// 99th: 451_107 + /// 95th: 413_762 + /// 75th: 385_017 pub const BlockExecutionWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(401_599), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(390_664), 0); } #[cfg(test)] diff --git a/runtime/westend/constants/src/weights/extrinsic_weights.rs b/runtime/westend/constants/src/weights/extrinsic_weights.rs index 9b0473293ac2..64bb09a2de59 100644 --- a/runtime/westend/constants/src/weights/extrinsic_weights.rs +++ b/runtime/westend/constants/src/weights/extrinsic_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28 (Y/M/D) -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-05-26 (Y/M/D) +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 96_491, 98_016 - /// Average: 96_992 - /// Median: 96_896 - /// Std-Dev: 311.32 + /// Min, Max: 95_834, 98_346 + /// Average: 96_589 + /// Median: 96_586 + /// Std-Dev: 401.14 /// /// Percentiles nanoseconds: - /// 99th: 97_917 - /// 95th: 97_706 - /// 75th: 97_073 + /// 99th: 98_155 + /// 95th: 97_229 + /// 75th: 96_757 pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(96_992), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(96_589), 0); } #[cfg(test)] diff --git a/runtime/westend/src/weights/frame_election_provider_support.rs b/runtime/westend/src/weights/frame_election_provider_support.rs index 6bc4bff42401..f4fa3421dfff 100644 --- a/runtime/westend/src/weights/frame_election_provider_support.rs +++ b/runtime/westend/src/weights/frame_election_provider_support.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_election_provider_support` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -54,13 +54,13 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_604_471_000 picoseconds. - Weight::from_parts(6_640_277_000, 0) + // Minimum execution time: 6_093_932_000 picoseconds. + Weight::from_parts(6_174_873_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 147_130 - .saturating_add(Weight::from_parts(6_177_359, 0).saturating_mul(v.into())) - // Standard Error: 15_042_085 - .saturating_add(Weight::from_parts(1_613_842_140, 0).saturating_mul(d.into())) + // Standard Error: 137_795 + .saturating_add(Weight::from_parts(5_788_440, 0).saturating_mul(v.into())) + // Standard Error: 14_087_677 + .saturating_add(Weight::from_parts(1_495_492_921, 0).saturating_mul(d.into())) } /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. @@ -69,12 +69,12 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_674_729_000 picoseconds. - Weight::from_parts(4_696_660_000, 0) + // Minimum execution time: 4_143_575_000 picoseconds. + Weight::from_parts(4_185_323_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 125_145 - .saturating_add(Weight::from_parts(4_959_331, 0).saturating_mul(v.into())) - // Standard Error: 12_794_378 - .saturating_add(Weight::from_parts(1_447_457_153, 0).saturating_mul(d.into())) + // Standard Error: 110_442 + .saturating_add(Weight::from_parts(4_432_315, 0).saturating_mul(v.into())) + // Standard Error: 11_291_242 + .saturating_add(Weight::from_parts(1_268_452_940, 0).saturating_mul(d.into())) } } diff --git a/runtime/westend/src/weights/frame_system.rs b/runtime/westend/src/weights/frame_system.rs index d663e0a9660f..7ba71841321e 100644 --- a/runtime/westend/src/weights/frame_system.rs +++ b/runtime/westend/src/weights/frame_system.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -52,22 +52,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_422_000 picoseconds. - Weight::from_parts(2_461_000, 0) + // Minimum execution time: 1_954_000 picoseconds. + Weight::from_parts(2_047_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(365, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(411, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_776_000 picoseconds. - Weight::from_parts(8_012_000, 0) + // Minimum execution time: 7_461_000 picoseconds. + Weight::from_parts(7_609_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_403, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_452, 0).saturating_mul(b.into())) } /// Storage: System Digest (r:1 w:1) /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) @@ -77,14 +77,25 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 4_364_000 picoseconds. - Weight::from_parts(4_546_000, 0) + // Minimum execution time: 4_174_000 picoseconds. + Weight::from_parts(4_345_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a636f6465` (r:0 w:1) + /// Proof Skipped: unknown `0x3a636f6465` (r:0 w:1) fn set_code() -> Weight { - Weight::from_parts(1_000_000, 0) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 80_979_741_000 picoseconds. + Weight::from_parts(83_497_147_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Skipped Metadata (r:0 w:0) /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) @@ -93,11 +104,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_534_000 picoseconds. - Weight::from_parts(2_556_000, 0) + // Minimum execution time: 2_107_000 picoseconds. + Weight::from_parts(2_160_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_118 - .saturating_add(Weight::from_parts(659_457, 0).saturating_mul(i.into())) + // Standard Error: 1_761 + .saturating_add(Weight::from_parts(663_616, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -107,11 +118,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_445_000 picoseconds. - Weight::from_parts(2_478_000, 0) + // Minimum execution time: 2_154_000 picoseconds. + Weight::from_parts(2_195_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 748 - .saturating_add(Weight::from_parts(485_315, 0).saturating_mul(i.into())) + // Standard Error: 770 + .saturating_add(Weight::from_parts(492_596, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -120,12 +131,12 @@ impl frame_system::WeightInfo for WeightInfo { fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `132 + p * (69 ±0)` - // Estimated: `105 + p * (70 ±0)` - // Minimum execution time: 4_494_000 picoseconds. - Weight::from_parts(4_685_000, 0) - .saturating_add(Weight::from_parts(0, 105)) - // Standard Error: 1_000 - .saturating_add(Weight::from_parts(1_009_962, 0).saturating_mul(p.into())) + // Estimated: `107 + p * (70 ±0)` + // Minimum execution time: 4_030_000 picoseconds. + Weight::from_parts(4_108_000, 0) + .saturating_add(Weight::from_parts(0, 107)) + // Standard Error: 1_141 + .saturating_add(Weight::from_parts(1_031_790, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) diff --git a/runtime/westend/src/weights/pallet_bags_list.rs b/runtime/westend/src/weights/pallet_bags_list.rs index 6a92fa9761fb..2671c30b1855 100644 --- a/runtime/westend/src/weights/pallet_bags_list.rs +++ b/runtime/westend/src/weights/pallet_bags_list.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bags_list` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -59,8 +59,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1656` // Estimated: `11506` - // Minimum execution time: 59_709_000 picoseconds. - Weight::from_parts(60_572_000, 0) + // Minimum execution time: 59_915_000 picoseconds. + Weight::from_parts(60_573_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -77,8 +77,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1550` // Estimated: `8877` - // Minimum execution time: 58_411_000 picoseconds. - Weight::from_parts(59_053_000, 0) + // Minimum execution time: 58_160_000 picoseconds. + Weight::from_parts(58_723_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -97,8 +97,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1861` // Estimated: `11506` - // Minimum execution time: 64_297_000 picoseconds. - Weight::from_parts(64_878_000, 0) + // Minimum execution time: 64_315_000 picoseconds. + Weight::from_parts(64_937_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(6)) diff --git a/runtime/westend/src/weights/pallet_balances.rs b/runtime/westend/src/weights/pallet_balances.rs index 68a17ed22ecc..4a5d1326a673 100644 --- a/runtime/westend/src/weights/pallet_balances.rs +++ b/runtime/westend/src/weights/pallet_balances.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 52_260_000 picoseconds. - Weight::from_parts(52_849_000, 0) + // Minimum execution time: 51_864_000 picoseconds. + Weight::from_parts(52_543_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +65,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 39_869_000 picoseconds. - Weight::from_parts(40_352_000, 0) + // Minimum execution time: 39_686_000 picoseconds. + Weight::from_parts(39_875_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -77,8 +77,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 15_955_000 picoseconds. - Weight::from_parts(16_365_000, 0) + // Minimum execution time: 15_841_000 picoseconds. + Weight::from_parts(16_149_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -89,8 +89,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 22_522_000 picoseconds. - Weight::from_parts(22_987_000, 0) + // Minimum execution time: 22_447_000 picoseconds. + Weight::from_parts(22_935_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -101,8 +101,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 53_891_000 picoseconds. - Weight::from_parts(54_386_000, 0) + // Minimum execution time: 53_749_000 picoseconds. + Weight::from_parts(54_549_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -113,8 +113,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 48_643_000 picoseconds. - Weight::from_parts(49_171_000, 0) + // Minimum execution time: 48_306_000 picoseconds. + Weight::from_parts(48_720_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -125,8 +125,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 18_672_000 picoseconds. - Weight::from_parts(19_108_000, 0) + // Minimum execution time: 18_644_000 picoseconds. + Weight::from_parts(18_969_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +138,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (135 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 17_661_000 picoseconds. - Weight::from_parts(18_003_000, 0) + // Minimum execution time: 17_484_000 picoseconds. + Weight::from_parts(17_670_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 10_321 - .saturating_add(Weight::from_parts(13_964_416, 0).saturating_mul(u.into())) + // Standard Error: 9_919 + .saturating_add(Weight::from_parts(13_951_674, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) diff --git a/runtime/westend/src/weights/pallet_election_provider_multi_phase.rs b/runtime/westend/src/weights/pallet_election_provider_multi_phase.rs index cd0ef786965e..19b508667c9d 100644 --- a/runtime/westend/src/weights/pallet_election_provider_multi_phase.rs +++ b/runtime/westend/src/weights/pallet_election_provider_multi_phase.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_election_provider_multi_phase` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -67,8 +67,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `919` // Estimated: `3481` - // Minimum execution time: 16_429_000 picoseconds. - Weight::from_parts(17_129_000, 0) + // Minimum execution time: 17_169_000 picoseconds. + Weight::from_parts(17_521_000, 0) .saturating_add(Weight::from_parts(0, 3481)) .saturating_add(T::DbWeight::get().reads(8)) } @@ -80,8 +80,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `6` // Estimated: `1491` - // Minimum execution time: 11_299_000 picoseconds. - Weight::from_parts(11_610_000, 0) + // Minimum execution time: 10_999_000 picoseconds. + Weight::from_parts(11_294_000, 0) .saturating_add(Weight::from_parts(0, 1491)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -94,8 +94,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `6` // Estimated: `1491` - // Minimum execution time: 12_586_000 picoseconds. - Weight::from_parts(12_844_000, 0) + // Minimum execution time: 12_251_000 picoseconds. + Weight::from_parts(12_494_000, 0) .saturating_add(Weight::from_parts(0, 1491)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -108,8 +108,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 29_608_000 picoseconds. - Weight::from_parts(29_843_000, 0) + // Minimum execution time: 29_440_000 picoseconds. + Weight::from_parts(29_755_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +120,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 20_378_000 picoseconds. - Weight::from_parts(20_676_000, 0) + // Minimum execution time: 20_113_000 picoseconds. + Weight::from_parts(20_413_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +138,11 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 455_618_000 picoseconds. - Weight::from_parts(462_946_000, 0) + // Minimum execution time: 456_690_000 picoseconds. + Weight::from_parts(465_826_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_539 - .saturating_add(Weight::from_parts(274_627, 0).saturating_mul(v.into())) + // Standard Error: 2_535 + .saturating_add(Weight::from_parts(267_360, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) @@ -171,13 +171,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `229 + a * (768 ±0) + d * (48 ±0)` // Estimated: `3781 + a * (768 ±0) + d * (49 ±0)` - // Minimum execution time: 287_083_000 picoseconds. - Weight::from_parts(64_937_763, 0) + // Minimum execution time: 277_340_000 picoseconds. + Weight::from_parts(61_228_911, 0) .saturating_add(Weight::from_parts(0, 3781)) - // Standard Error: 3_376 - .saturating_add(Weight::from_parts(360_436, 0).saturating_mul(a.into())) - // Standard Error: 5_061 - .saturating_add(Weight::from_parts(130_891, 0).saturating_mul(d.into())) + // Standard Error: 3_240 + .saturating_add(Weight::from_parts(354_534, 0).saturating_mul(a.into())) + // Standard Error: 4_856 + .saturating_add(Weight::from_parts(141_702, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(9)) .saturating_add(Weight::from_parts(0, 768).saturating_mul(a.into())) @@ -199,8 +199,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `7368` // Estimated: `8853` - // Minimum execution time: 53_896_000 picoseconds. - Weight::from_parts(54_763_000, 0) + // Minimum execution time: 52_231_000 picoseconds. + Weight::from_parts(53_007_000, 0) .saturating_add(Weight::from_parts(0, 8853)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -227,13 +227,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `110 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1595 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 5_092_881_000 picoseconds. - Weight::from_parts(5_130_699_000, 0) + // Minimum execution time: 4_778_989_000 picoseconds. + Weight::from_parts(4_853_123_000, 0) .saturating_add(Weight::from_parts(0, 1595)) - // Standard Error: 16_401 - .saturating_add(Weight::from_parts(84_713, 0).saturating_mul(v.into())) - // Standard Error: 48_604 - .saturating_add(Weight::from_parts(4_699_641, 0).saturating_mul(a.into())) + // Standard Error: 16_053 + .saturating_add(Weight::from_parts(130_630, 0).saturating_mul(v.into())) + // Standard Error: 47_572 + .saturating_add(Weight::from_parts(4_178_662, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) @@ -255,13 +255,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `85 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1570 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 4_327_461_000 picoseconds. - Weight::from_parts(4_333_994_000, 0) + // Minimum execution time: 4_061_330_000 picoseconds. + Weight::from_parts(4_097_199_000, 0) .saturating_add(Weight::from_parts(0, 1570)) - // Standard Error: 14_404 - .saturating_add(Weight::from_parts(198_276, 0).saturating_mul(v.into())) - // Standard Error: 42_686 - .saturating_add(Weight::from_parts(3_592_743, 0).saturating_mul(a.into())) + // Standard Error: 14_131 + .saturating_add(Weight::from_parts(203_770, 0).saturating_mul(v.into())) + // Standard Error: 41_877 + .saturating_add(Weight::from_parts(3_440_009, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) .saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into())) diff --git a/runtime/westend/src/weights/pallet_fast_unstake.rs b/runtime/westend/src/weights/pallet_fast_unstake.rs index 5f47ec0ecda4..e7802e3a91fd 100644 --- a/runtime/westend/src/weights/pallet_fast_unstake.rs +++ b/runtime/westend/src/weights/pallet_fast_unstake.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_fast_unstake` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -80,13 +80,13 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// The range of component `b` is `[1, 64]`. fn on_idle_unstake(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1128 + b * (344 ±0)` + // Measured: `1090 + b * (344 ±0)` // Estimated: `4572 + b * (3774 ±0)` - // Minimum execution time: 86_009_000 picoseconds. - Weight::from_parts(27_965_912, 0) + // Minimum execution time: 85_053_000 picoseconds. + Weight::from_parts(19_863_426, 0) .saturating_add(Weight::from_parts(0, 4572)) - // Standard Error: 32_077 - .saturating_add(Weight::from_parts(52_823_362, 0).saturating_mul(b.into())) + // Standard Error: 51_054 + .saturating_add(Weight::from_parts(53_140_856, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -111,15 +111,15 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// The range of component `b` is `[1, 64]`. fn on_idle_check(v: u32, b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1342 + b * (48 ±0) + v * (2485 ±0)` - // Estimated: `4660 + b * (49 ±0) + v * (4961 ±0)` - // Minimum execution time: 647_511_000 picoseconds. - Weight::from_parts(655_130_000, 0) - .saturating_add(Weight::from_parts(0, 4660)) - // Standard Error: 4_190_256 - .saturating_add(Weight::from_parts(135_088_639, 0).saturating_mul(v.into())) - // Standard Error: 16_765_692 - .saturating_add(Weight::from_parts(525_868_640, 0).saturating_mul(b.into())) + // Measured: `1304 + b * (48 ±0) + v * (2485 ±0)` + // Estimated: `4622 + b * (49 ±0) + v * (4961 ±0)` + // Minimum execution time: 645_266_000 picoseconds. + Weight::from_parts(653_830_000, 0) + .saturating_add(Weight::from_parts(0, 4622)) + // Standard Error: 4_058_300 + .saturating_add(Weight::from_parts(131_343_333, 0).saturating_mul(v.into())) + // Standard Error: 16_237_723 + .saturating_add(Weight::from_parts(507_503_213, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -158,10 +158,10 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn register_fast_unstake() -> Weight { // Proof Size summary in bytes: - // Measured: `1864` + // Measured: `1826` // Estimated: `4764` - // Minimum execution time: 116_714_000 picoseconds. - Weight::from_parts(117_743_000, 0) + // Minimum execution time: 114_306_000 picoseconds. + Weight::from_parts(115_320_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(15)) .saturating_add(T::DbWeight::get().writes(9)) @@ -178,10 +178,10 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn deregister() -> Weight { // Proof Size summary in bytes: - // Measured: `1156` + // Measured: `1118` // Estimated: `4572` - // Minimum execution time: 43_431_000 picoseconds. - Weight::from_parts(43_902_000, 0) + // Minimum execution time: 41_871_000 picoseconds. + Weight::from_parts(42_446_000, 0) .saturating_add(Weight::from_parts(0, 4572)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -192,8 +192,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_898_000 picoseconds. - Weight::from_parts(3_150_000, 0) + // Minimum execution time: 2_673_000 picoseconds. + Weight::from_parts(2_771_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/pallet_identity.rs b/runtime/westend/src/weights/pallet_identity.rs index 5cae4a3b91e9..96c79d9c561b 100644 --- a/runtime/westend/src/weights/pallet_identity.rs +++ b/runtime/westend/src/weights/pallet_identity.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_identity` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 12_095_000 picoseconds. - Weight::from_parts(12_700_606, 0) + // Minimum execution time: 11_731_000 picoseconds. + Weight::from_parts(12_252_069, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_167 - .saturating_add(Weight::from_parts(109_740, 0).saturating_mul(r.into())) + // Standard Error: 1_271 + .saturating_add(Weight::from_parts(112_988, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -70,13 +70,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `442 + r * (5 ±0)` // Estimated: `11003` - // Minimum execution time: 31_827_000 picoseconds. - Weight::from_parts(32_041_276, 0) + // Minimum execution time: 31_663_000 picoseconds. + Weight::from_parts(30_723_166, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 5_382 - .saturating_add(Weight::from_parts(61_125, 0).saturating_mul(r.into())) - // Standard Error: 1_050 - .saturating_add(Weight::from_parts(437_644, 0).saturating_mul(x.into())) + // Standard Error: 2_186 + .saturating_add(Weight::from_parts(82_515, 0).saturating_mul(r.into())) + // Standard Error: 426 + .saturating_add(Weight::from_parts(465_253, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -91,11 +91,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `101` // Estimated: `11003 + s * (2589 ±0)` - // Minimum execution time: 9_793_000 picoseconds. - Weight::from_parts(24_331_314, 0) + // Minimum execution time: 9_314_000 picoseconds. + Weight::from_parts(22_473_414, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_575 - .saturating_add(Weight::from_parts(2_738_718, 0).saturating_mul(s.into())) + // Standard Error: 8_954 + .saturating_add(Weight::from_parts(2_780_286, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -113,11 +113,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `194 + p * (32 ±0)` // Estimated: `11003` - // Minimum execution time: 9_531_000 picoseconds. - Weight::from_parts(23_975_164, 0) + // Minimum execution time: 9_212_000 picoseconds. + Weight::from_parts(23_501_852, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_340 - .saturating_add(Weight::from_parts(1_094_846, 0).saturating_mul(p.into())) + // Standard Error: 3_465 + .saturating_add(Weight::from_parts(1_107_543, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) @@ -135,15 +135,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 53_444_000 picoseconds. - Weight::from_parts(32_766_130, 0) + // Minimum execution time: 53_291_000 picoseconds. + Weight::from_parts(30_248_342, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 5_100 - .saturating_add(Weight::from_parts(43_515, 0).saturating_mul(r.into())) - // Standard Error: 996 - .saturating_add(Weight::from_parts(1_079_887, 0).saturating_mul(s.into())) - // Standard Error: 996 - .saturating_add(Weight::from_parts(226_139, 0).saturating_mul(x.into())) + // Standard Error: 9_842 + .saturating_add(Weight::from_parts(90_340, 0).saturating_mul(r.into())) + // Standard Error: 1_922 + .saturating_add(Weight::from_parts(1_086_143, 0).saturating_mul(s.into())) + // Standard Error: 1_922 + .saturating_add(Weight::from_parts(234_032, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -158,13 +158,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `367 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 32_602_000 picoseconds. - Weight::from_parts(31_829_317, 0) + // Minimum execution time: 32_457_000 picoseconds. + Weight::from_parts(31_792_415, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_017 - .saturating_add(Weight::from_parts(81_328, 0).saturating_mul(r.into())) - // Standard Error: 393 - .saturating_add(Weight::from_parts(463_287, 0).saturating_mul(x.into())) + // Standard Error: 2_199 + .saturating_add(Weight::from_parts(80_014, 0).saturating_mul(r.into())) + // Standard Error: 429 + .saturating_add(Weight::from_parts(464_202, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -176,13 +176,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `398 + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 29_815_000 picoseconds. - Weight::from_parts(29_295_072, 0) + // Minimum execution time: 29_144_000 picoseconds. + Weight::from_parts(28_967_813, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_369 - .saturating_add(Weight::from_parts(68_312, 0).saturating_mul(r.into())) - // Standard Error: 462 - .saturating_add(Weight::from_parts(461_311, 0).saturating_mul(x.into())) + // Standard Error: 2_127 + .saturating_add(Weight::from_parts(76_079, 0).saturating_mul(r.into())) + // Standard Error: 415 + .saturating_add(Weight::from_parts(457_505, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +193,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_696_000 picoseconds. - Weight::from_parts(8_040_841, 0) + // Minimum execution time: 7_515_000 picoseconds. + Weight::from_parts(7_863_919, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 988 - .saturating_add(Weight::from_parts(95_927, 0).saturating_mul(r.into())) + // Standard Error: 1_158 + .saturating_add(Weight::from_parts(95_069, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +208,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 8_085_000 picoseconds. - Weight::from_parts(8_487_047, 0) + // Minimum execution time: 7_537_000 picoseconds. + Weight::from_parts(7_884_083, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_022 - .saturating_add(Weight::from_parts(90_027, 0).saturating_mul(r.into())) + // Standard Error: 1_070 + .saturating_add(Weight::from_parts(93_113, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -223,11 +223,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_819_000 picoseconds. - Weight::from_parts(8_173_926, 0) + // Minimum execution time: 7_509_000 picoseconds. + Weight::from_parts(7_813_589, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 818 - .saturating_add(Weight::from_parts(93_550, 0).saturating_mul(r.into())) + // Standard Error: 1_112 + .saturating_add(Weight::from_parts(91_834, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -241,13 +241,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `445 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 23_747_000 picoseconds. - Weight::from_parts(23_293_839, 0) + // Minimum execution time: 23_050_000 picoseconds. + Weight::from_parts(22_495_353, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_126 - .saturating_add(Weight::from_parts(83_593, 0).saturating_mul(r.into())) - // Standard Error: 393 - .saturating_add(Weight::from_parts(735_523, 0).saturating_mul(x.into())) + // Standard Error: 4_148 + .saturating_add(Weight::from_parts(103_139, 0).saturating_mul(r.into())) + // Standard Error: 767 + .saturating_add(Weight::from_parts(773_335, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -266,15 +266,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 58_193_000 picoseconds. - Weight::from_parts(39_024_753, 0) + // Minimum execution time: 57_402_000 picoseconds. + Weight::from_parts(36_479_092, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_640 - .saturating_add(Weight::from_parts(3_713, 0).saturating_mul(r.into())) - // Standard Error: 710 - .saturating_add(Weight::from_parts(1_081_392, 0).saturating_mul(s.into())) - // Standard Error: 710 - .saturating_add(Weight::from_parts(225_102, 0).saturating_mul(x.into())) + // Standard Error: 10_362 + .saturating_add(Weight::from_parts(90_209, 0).saturating_mul(r.into())) + // Standard Error: 2_023 + .saturating_add(Weight::from_parts(1_110_142, 0).saturating_mul(s.into())) + // Standard Error: 2_023 + .saturating_add(Weight::from_parts(224_263, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -290,11 +290,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `475 + s * (36 ±0)` // Estimated: `11003` - // Minimum execution time: 28_934_000 picoseconds. - Weight::from_parts(33_900_191, 0) + // Minimum execution time: 28_828_000 picoseconds. + Weight::from_parts(33_618_814, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_339 - .saturating_add(Weight::from_parts(62_721, 0).saturating_mul(s.into())) + // Standard Error: 1_341 + .saturating_add(Weight::from_parts(62_821, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -307,11 +307,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + s * (3 ±0)` // Estimated: `11003` - // Minimum execution time: 12_974_000 picoseconds. - Weight::from_parts(15_066_003, 0) + // Minimum execution time: 12_650_000 picoseconds. + Weight::from_parts(14_575_994, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 568 - .saturating_add(Weight::from_parts(16_968, 0).saturating_mul(s.into())) + // Standard Error: 514 + .saturating_add(Weight::from_parts(18_167, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -326,11 +326,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `638 + s * (35 ±0)` // Estimated: `11003` - // Minimum execution time: 32_925_000 picoseconds. - Weight::from_parts(35_839_931, 0) + // Minimum execution time: 32_391_000 picoseconds. + Weight::from_parts(35_443_054, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 878 - .saturating_add(Weight::from_parts(49_566, 0).saturating_mul(s.into())) + // Standard Error: 1_001 + .saturating_add(Weight::from_parts(51_211, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -345,11 +345,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704 + s * (37 ±0)` // Estimated: `6723` - // Minimum execution time: 24_284_000 picoseconds. - Weight::from_parts(27_032_905, 0) + // Minimum execution time: 23_939_000 picoseconds. + Weight::from_parts(26_720_529, 0) .saturating_add(Weight::from_parts(0, 6723)) - // Standard Error: 962 - .saturating_add(Weight::from_parts(53_003, 0).saturating_mul(s.into())) + // Standard Error: 907 + .saturating_add(Weight::from_parts(54_990, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/westend/src/weights/pallet_im_online.rs b/runtime/westend/src/weights/pallet_im_online.rs index 4deb5b754dab..b3a372947aa5 100644 --- a/runtime/westend/src/weights/pallet_im_online.rs +++ b/runtime/westend/src/weights/pallet_im_online.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_im_online` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -63,13 +63,13 @@ impl pallet_im_online::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361 + k * (32 ±0)` // Estimated: `10024497 + e * (35 ±0) + k * (32 ±0)` - // Minimum execution time: 92_168_000 picoseconds. - Weight::from_parts(72_358_090, 0) + // Minimum execution time: 92_017_000 picoseconds. + Weight::from_parts(73_188_461, 0) .saturating_add(Weight::from_parts(0, 10024497)) - // Standard Error: 243 - .saturating_add(Weight::from_parts(23_518, 0).saturating_mul(k.into())) - // Standard Error: 2_455 - .saturating_add(Weight::from_parts(393_652, 0).saturating_mul(e.into())) + // Standard Error: 316 + .saturating_add(Weight::from_parts(23_357, 0).saturating_mul(k.into())) + // Standard Error: 3_193 + .saturating_add(Weight::from_parts(392_783, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 35).saturating_mul(e.into())) diff --git a/runtime/westend/src/weights/pallet_indices.rs b/runtime/westend/src/weights/pallet_indices.rs index 9ed6be62de96..0d5f84d2c186 100644 --- a/runtime/westend/src/weights/pallet_indices.rs +++ b/runtime/westend/src/weights/pallet_indices.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_indices` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3534` - // Minimum execution time: 24_176_000 picoseconds. - Weight::from_parts(24_546_000, 0) + // Minimum execution time: 23_895_000 picoseconds. + Weight::from_parts(24_230_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -67,8 +67,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 34_684_000 picoseconds. - Weight::from_parts(35_034_000, 0) + // Minimum execution time: 34_794_000 picoseconds. + Weight::from_parts(35_207_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +79,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 25_025_000 picoseconds. - Weight::from_parts(25_340_000, 0) + // Minimum execution time: 24_570_000 picoseconds. + Weight::from_parts(24_911_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +93,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 27_375_000 picoseconds. - Weight::from_parts(27_687_000, 0) + // Minimum execution time: 27_238_000 picoseconds. + Weight::from_parts(27_660_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -105,8 +105,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 27_625_000 picoseconds. - Weight::from_parts(27_852_000, 0) + // Minimum execution time: 27_202_000 picoseconds. + Weight::from_parts(27_539_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/westend/src/weights/pallet_message_queue.rs b/runtime/westend/src/weights/pallet_message_queue.rs index 665c0505cb04..fb4c2b502435 100644 --- a/runtime/westend/src/weights/pallet_message_queue.rs +++ b/runtime/westend/src/weights/pallet_message_queue.rs @@ -1,4 +1,4 @@ -// Copyright 2017-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Polkadot. // Polkadot is free software: you can redistribute it and/or modify @@ -13,164 +13,178 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . + //! Autogenerated weights for `pallet_message_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-02-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: -// ./target/release/polkadot +// ./target/production/polkadot // benchmark // pallet // --chain=westend-dev // --steps=50 // --repeat=20 -// --pallet=pallet-message-queue +// --pallet=pallet_message_queue // --extrinsic=* -// --heap-pages=4096 -// --header=file_header.txt -// --output -// runtime/westend/src/weights/pallet_message_queue.rs +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); impl pallet_message_queue::WeightInfo for WeightInfo { /// Storage: MessageQueue ServiceHead (r:1 w:0) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn ready_ring_knit() -> Weight { // Proof Size summary in bytes: - // Measured: `804` - // Estimated: `5554` - // Minimum execution time: 5_813 nanoseconds. - Weight::from_parts(5_980_000, 0) - .saturating_add(Weight::from_parts(0, 5554)) + // Measured: `248` + // Estimated: `6050` + // Minimum execution time: 11_417_000 picoseconds. + Weight::from_parts(11_822_000, 0) + .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) fn ready_ring_unknit() -> Weight { // Proof Size summary in bytes: - // Measured: `804` - // Estimated: `5554` - // Minimum execution time: 5_742 nanoseconds. - Weight::from_parts(5_986_000, 0) - .saturating_add(Weight::from_parts(0, 5554)) + // Measured: `248` + // Estimated: `6050` + // Minimum execution time: 10_963_000 picoseconds. + Weight::from_parts(11_228_000, 0) + .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn service_queue_base() -> Weight { // Proof Size summary in bytes: - // Measured: `543` - // Estimated: `2527` - // Minimum execution time: 2_118 nanoseconds. - Weight::from_parts(2_206_000, 0) - .saturating_add(Weight::from_parts(0, 2527)) + // Measured: `42` + // Estimated: `3520` + // Minimum execution time: 4_042_000 picoseconds. + Weight::from_parts(4_205_000, 0) + .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(131122), added: 133597, mode: MaxEncodedLen) fn service_page_base_completion() -> Weight { // Proof Size summary in bytes: - // Measured: `615` - // Estimated: `68060` - // Minimum execution time: 3_153 nanoseconds. - Weight::from_parts(3_240_000, 0) - .saturating_add(Weight::from_parts(0, 68060)) + // Measured: `115` + // Estimated: `134587` + // Minimum execution time: 5_554_000 picoseconds. + Weight::from_parts(5_755_000, 0) + .saturating_add(Weight::from_parts(0, 134587)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(131122), added: 133597, mode: MaxEncodedLen) fn service_page_base_no_completion() -> Weight { // Proof Size summary in bytes: - // Measured: `615` - // Estimated: `68060` - // Minimum execution time: 3_191 nanoseconds. - Weight::from_parts(3_289_000, 0) - .saturating_add(Weight::from_parts(0, 68060)) + // Measured: `115` + // Estimated: `134587` + // Minimum execution time: 5_940_000 picoseconds. + Weight::from_parts(6_081_000, 0) + .saturating_add(Weight::from_parts(0, 134587)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } fn service_page_item() -> Weight { // Proof Size summary in bytes: - // Measured: `904` + // Measured: `0` // Estimated: `0` - // Minimum execution time: 47_975 nanoseconds. - Weight::from_parts(49_334_000, 0) + // Minimum execution time: 136_744_000 picoseconds. + Weight::from_parts(137_289_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen) /// Storage: MessageQueue BookStateFor (r:1 w:0) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) fn bump_service_head() -> Weight { // Proof Size summary in bytes: - // Measured: `679` - // Estimated: `3027` - // Minimum execution time: 3_725 nanoseconds. - Weight::from_parts(4_074_000, 0) - .saturating_add(Weight::from_parts(0, 3027)) + // Measured: `149` + // Estimated: `3520` + // Minimum execution time: 6_180_000 picoseconds. + Weight::from_parts(6_420_000, 0) + .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(131122), added: 133597, mode: MaxEncodedLen) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn reap_page() -> Weight { // Proof Size summary in bytes: - // Measured: `66814` - // Estimated: `70587` - // Minimum execution time: 28_769 nanoseconds. - Weight::from_parts(29_450_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) + // Measured: `131252` + // Estimated: `134587` + // Minimum execution time: 96_550_000 picoseconds. + Weight::from_parts(96_954_000, 0) + .saturating_add(Weight::from_parts(0, 134587)) .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(131122), added: 133597, mode: MaxEncodedLen) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn execute_overweight_page_removed() -> Weight { // Proof Size summary in bytes: - // Measured: `66814` - // Estimated: `70587` - // Minimum execution time: 74_422 nanoseconds. - Weight::from_parts(78_637_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) + // Measured: `131252` + // Estimated: `134587` + // Minimum execution time: 125_821_000 picoseconds. + Weight::from_parts(126_396_000, 0) + .saturating_add(Weight::from_parts(0, 134587)) .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(131122), added: 133597, mode: MaxEncodedLen) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) fn execute_overweight_page_updated() -> Weight { // Proof Size summary in bytes: - // Measured: `66814` - // Estimated: `70587` - // Minimum execution time: 75_542 nanoseconds. - Weight::from_parts(80_545_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) + // Measured: `131252` + // Estimated: `134587` + // Minimum execution time: 188_484_000 picoseconds. + Weight::from_parts(189_601_000, 0) + .saturating_add(Weight::from_parts(0, 134587)) .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes(4)) } } diff --git a/runtime/westend/src/weights/pallet_multisig.rs b/runtime/westend/src/weights/pallet_multisig.rs index 766165f74c0e..588f2c2af8ba 100644 --- a/runtime/westend/src/weights/pallet_multisig.rs +++ b/runtime/westend/src/weights/pallet_multisig.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -52,11 +52,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_765_000 picoseconds. - Weight::from_parts(12_225_372, 0) + // Minimum execution time: 10_913_000 picoseconds. + Weight::from_parts(11_369_971, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 1 - .saturating_add(Weight::from_parts(499, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(524, 0).saturating_mul(z.into())) } /// Storage: Multisig Multisigs (r:1 w:1) /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) @@ -66,13 +66,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `309 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 40_633_000 picoseconds. - Weight::from_parts(35_086_925, 0) + // Minimum execution time: 39_268_000 picoseconds. + Weight::from_parts(33_899_393, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 357 - .saturating_add(Weight::from_parts(62_270, 0).saturating_mul(s.into())) + // Standard Error: 375 + .saturating_add(Weight::from_parts(62_301, 0).saturating_mul(s.into())) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_193, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(1_224, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -84,13 +84,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `286` // Estimated: `6811` - // Minimum execution time: 27_388_000 picoseconds. - Weight::from_parts(21_636_034, 0) + // Minimum execution time: 26_100_000 picoseconds. + Weight::from_parts(20_766_498, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 410 - .saturating_add(Weight::from_parts(63_001, 0).saturating_mul(s.into())) - // Standard Error: 4 - .saturating_add(Weight::from_parts(1_173, 0).saturating_mul(z.into())) + // Standard Error: 316 + .saturating_add(Weight::from_parts(61_763, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_182, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -104,13 +104,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `392 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 45_439_000 picoseconds. - Weight::from_parts(38_659_430, 0) + // Minimum execution time: 44_072_000 picoseconds. + Weight::from_parts(37_865_237, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 450 - .saturating_add(Weight::from_parts(76_746, 0).saturating_mul(s.into())) - // Standard Error: 4 - .saturating_add(Weight::from_parts(1_224, 0).saturating_mul(z.into())) + // Standard Error: 666 + .saturating_add(Weight::from_parts(75_421, 0).saturating_mul(s.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(1_180, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -121,11 +121,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `314 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 32_127_000 picoseconds. - Weight::from_parts(33_476_746, 0) + // Minimum execution time: 30_839_000 picoseconds. + Weight::from_parts(32_384_946, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 491 - .saturating_add(Weight::from_parts(65_620, 0).saturating_mul(s.into())) + // Standard Error: 482 + .saturating_add(Weight::from_parts(66_723, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -136,11 +136,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `286` // Estimated: `6811` - // Minimum execution time: 19_048_000 picoseconds. - Weight::from_parts(20_014_518, 0) + // Minimum execution time: 18_196_000 picoseconds. + Weight::from_parts(18_983_722, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 421 - .saturating_add(Weight::from_parts(60_673, 0).saturating_mul(s.into())) + // Standard Error: 458 + .saturating_add(Weight::from_parts(61_127, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -151,11 +151,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `458 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 33_739_000 picoseconds. - Weight::from_parts(34_744_158, 0) + // Minimum execution time: 32_490_000 picoseconds. + Weight::from_parts(33_574_130, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 532 - .saturating_add(Weight::from_parts(64_913, 0).saturating_mul(s.into())) + // Standard Error: 547 + .saturating_add(Weight::from_parts(64_265, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/pallet_nomination_pools.rs b/runtime/westend/src/weights/pallet_nomination_pools.rs index f6e3d57306cf..c0af06856074 100644 --- a/runtime/westend/src/weights/pallet_nomination_pools.rs +++ b/runtime/westend/src/weights/pallet_nomination_pools.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_nomination_pools` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -81,8 +81,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3281` // Estimated: `8877` - // Minimum execution time: 177_602_000 picoseconds. - Weight::from_parts(178_886_000, 0) + // Minimum execution time: 176_369_000 picoseconds. + Weight::from_parts(177_523_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(19)) .saturating_add(T::DbWeight::get().writes(12)) @@ -113,8 +113,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3291` // Estimated: `8877` - // Minimum execution time: 175_098_000 picoseconds. - Weight::from_parts(176_107_000, 0) + // Minimum execution time: 172_285_000 picoseconds. + Weight::from_parts(174_193_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(12)) @@ -147,8 +147,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3186` // Estimated: `8799` - // Minimum execution time: 201_424_000 picoseconds. - Weight::from_parts(202_697_000, 0) + // Minimum execution time: 199_828_000 picoseconds. + Weight::from_parts(200_942_000, 0) .saturating_add(Weight::from_parts(0, 8799)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(12)) @@ -169,8 +169,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1137` // Estimated: `4182` - // Minimum execution time: 75_191_000 picoseconds. - Weight::from_parts(76_431_000, 0) + // Minimum execution time: 74_431_000 picoseconds. + Weight::from_parts(75_741_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -211,8 +211,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3560` // Estimated: `8877` - // Minimum execution time: 159_933_000 picoseconds. - Weight::from_parts(161_356_000, 0) + // Minimum execution time: 158_030_000 picoseconds. + Weight::from_parts(158_878_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(20)) .saturating_add(T::DbWeight::get().writes(13)) @@ -234,11 +234,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1614` // Estimated: `4764` - // Minimum execution time: 60_244_000 picoseconds. - Weight::from_parts(61_491_734, 0) + // Minimum execution time: 59_728_000 picoseconds. + Weight::from_parts(60_957_789, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 728 - .saturating_add(Weight::from_parts(8_597, 0).saturating_mul(s.into())) + // Standard Error: 741 + .saturating_add(Weight::from_parts(6_046, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -269,11 +269,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `2042` // Estimated: `4764` - // Minimum execution time: 123_798_000 picoseconds. - Weight::from_parts(125_782_942, 0) + // Minimum execution time: 121_936_000 picoseconds. + Weight::from_parts(123_798_311, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_097 - .saturating_add(Weight::from_parts(13_903, 0).saturating_mul(s.into())) + // Standard Error: 1_169 + .saturating_add(Weight::from_parts(21_320, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) } @@ -322,13 +322,15 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo /// Storage: NominationPools ClaimPermissions (r:0 w:1) /// Proof: NominationPools ClaimPermissions (max_values: None, max_size: Some(41), added: 2516, mode: MaxEncodedLen) /// The range of component `s` is `[0, 100]`. - fn withdraw_unbonded_kill(_s: u32, ) -> Weight { + fn withdraw_unbonded_kill(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `2398` // Estimated: `6196` - // Minimum execution time: 206_441_000 picoseconds. - Weight::from_parts(209_614_440, 0) + // Minimum execution time: 203_824_000 picoseconds. + Weight::from_parts(206_388_841, 0) .saturating_add(Weight::from_parts(0, 6196)) + // Standard Error: 2_817 + .saturating_add(Weight::from_parts(13_627, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(21)) .saturating_add(T::DbWeight::get().writes(18)) } @@ -380,8 +382,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1222` // Estimated: `6196` - // Minimum execution time: 180_245_000 picoseconds. - Weight::from_parts(181_550_000, 0) + // Minimum execution time: 177_985_000 picoseconds. + Weight::from_parts(179_504_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(22)) .saturating_add(T::DbWeight::get().writes(15)) @@ -415,11 +417,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1779` // Estimated: `4556 + n * (2520 ±0)` - // Minimum execution time: 65_211_000 picoseconds. - Weight::from_parts(65_260_516, 0) + // Minimum execution time: 64_575_000 picoseconds. + Weight::from_parts(64_712_179, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 4_245 - .saturating_add(Weight::from_parts(1_345_385, 0).saturating_mul(n.into())) + // Standard Error: 4_612 + .saturating_add(Weight::from_parts(1_300_327, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -435,8 +437,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1367` // Estimated: `4556` - // Minimum execution time: 36_015_000 picoseconds. - Weight::from_parts(36_792_000, 0) + // Minimum execution time: 35_436_000 picoseconds. + Weight::from_parts(35_843_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -452,11 +454,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3735` - // Minimum execution time: 14_629_000 picoseconds. - Weight::from_parts(15_074_709, 0) + // Minimum execution time: 14_017_000 picoseconds. + Weight::from_parts(14_595_057, 0) .saturating_add(Weight::from_parts(0, 3735)) - // Standard Error: 300 - .saturating_add(Weight::from_parts(2_509, 0).saturating_mul(n.into())) + // Standard Error: 77 + .saturating_add(Weight::from_parts(1_065, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -476,8 +478,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_595_000 picoseconds. - Weight::from_parts(6_793_000, 0) + // Minimum execution time: 5_932_000 picoseconds. + Weight::from_parts(6_145_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -487,8 +489,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3685` - // Minimum execution time: 19_506_000 picoseconds. - Weight::from_parts(19_966_000, 0) + // Minimum execution time: 18_860_000 picoseconds. + Weight::from_parts(19_156_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -515,8 +517,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1942` // Estimated: `4556` - // Minimum execution time: 63_792_000 picoseconds. - Weight::from_parts(64_545_000, 0) + // Minimum execution time: 62_812_000 picoseconds. + Weight::from_parts(63_227_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -533,8 +535,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `736` // Estimated: `3685` - // Minimum execution time: 32_651_000 picoseconds. - Weight::from_parts(33_117_000, 0) + // Minimum execution time: 31_983_000 picoseconds. + Weight::from_parts(32_552_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -545,8 +547,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `537` // Estimated: `3685` - // Minimum execution time: 18_584_000 picoseconds. - Weight::from_parts(19_003_000, 0) + // Minimum execution time: 18_135_000 picoseconds. + Weight::from_parts(18_821_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -557,8 +559,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3685` - // Minimum execution time: 19_566_000 picoseconds. - Weight::from_parts(19_904_000, 0) + // Minimum execution time: 18_969_000 picoseconds. + Weight::from_parts(19_175_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -571,8 +573,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `508` // Estimated: `4182` - // Minimum execution time: 14_518_000 picoseconds. - Weight::from_parts(14_885_000, 0) + // Minimum execution time: 13_943_000 picoseconds. + Weight::from_parts(14_374_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -589,8 +591,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `934` // Estimated: `3685` - // Minimum execution time: 63_054_000 picoseconds. - Weight::from_parts(63_901_000, 0) + // Minimum execution time: 61_658_000 picoseconds. + Weight::from_parts(62_636_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/runtime/westend/src/weights/pallet_preimage.rs b/runtime/westend/src/weights/pallet_preimage.rs index ec78c12eb67b..347628b21ee9 100644 --- a/runtime/westend/src/weights/pallet_preimage.rs +++ b/runtime/westend/src/weights/pallet_preimage.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -56,11 +56,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `181` // Estimated: `3556` - // Minimum execution time: 29_415_000 picoseconds. - Weight::from_parts(29_677_000, 0) + // Minimum execution time: 29_397_000 picoseconds. + Weight::from_parts(29_750_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_963, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(2_015, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -73,11 +73,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 16_727_000 picoseconds. - Weight::from_parts(16_964_000, 0) + // Minimum execution time: 16_220_000 picoseconds. + Weight::from_parts(16_463_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_961, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(2_009, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -90,11 +90,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 16_099_000 picoseconds. - Weight::from_parts(16_245_000, 0) + // Minimum execution time: 15_846_000 picoseconds. + Weight::from_parts(16_000_000, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_959, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(2_008, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -106,8 +106,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `327` // Estimated: `3556` - // Minimum execution time: 36_565_000 picoseconds. - Weight::from_parts(37_724_000, 0) + // Minimum execution time: 36_669_000 picoseconds. + Weight::from_parts(37_789_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +120,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `182` // Estimated: `3556` - // Minimum execution time: 21_884_000 picoseconds. - Weight::from_parts(23_161_000, 0) + // Minimum execution time: 21_555_000 picoseconds. + Weight::from_parts(22_594_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -132,8 +132,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `226` // Estimated: `3556` - // Minimum execution time: 20_264_000 picoseconds. - Weight::from_parts(20_823_000, 0) + // Minimum execution time: 19_401_000 picoseconds. + Weight::from_parts(20_318_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -144,8 +144,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `182` // Estimated: `3556` - // Minimum execution time: 12_245_000 picoseconds. - Weight::from_parts(13_095_000, 0) + // Minimum execution time: 11_560_000 picoseconds. + Weight::from_parts(12_357_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -156,8 +156,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `80` // Estimated: `3556` - // Minimum execution time: 14_170_000 picoseconds. - Weight::from_parts(14_758_000, 0) + // Minimum execution time: 13_545_000 picoseconds. + Weight::from_parts(14_008_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -168,8 +168,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 9_415_000 picoseconds. - Weight::from_parts(9_612_000, 0) + // Minimum execution time: 8_797_000 picoseconds. + Weight::from_parts(9_030_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -182,8 +182,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `182` // Estimated: `3556` - // Minimum execution time: 20_587_000 picoseconds. - Weight::from_parts(21_735_000, 0) + // Minimum execution time: 20_449_000 picoseconds. + Weight::from_parts(21_297_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -194,8 +194,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 8_660_000 picoseconds. - Weight::from_parts(8_940_000, 0) + // Minimum execution time: 8_492_000 picoseconds. + Weight::from_parts(8_738_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -206,8 +206,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 8_719_000 picoseconds. - Weight::from_parts(9_140_000, 0) + // Minimum execution time: 8_372_000 picoseconds. + Weight::from_parts(8_737_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/westend/src/weights/pallet_proxy.rs b/runtime/westend/src/weights/pallet_proxy.rs index 9afd6c82fb28..d7125a6281da 100644 --- a/runtime/westend/src/weights/pallet_proxy.rs +++ b/runtime/westend/src/weights/pallet_proxy.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 16_322_000 picoseconds. - Weight::from_parts(16_647_215, 0) + // Minimum execution time: 15_376_000 picoseconds. + Weight::from_parts(15_791_573, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 665 - .saturating_add(Weight::from_parts(35_384, 0).saturating_mul(p.into())) + // Standard Error: 658 + .saturating_add(Weight::from_parts(34_911, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: Proxy Proxies (r:1 w:0) @@ -73,13 +73,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `554 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 40_900_000 picoseconds. - Weight::from_parts(41_543_773, 0) + // Minimum execution time: 39_934_000 picoseconds. + Weight::from_parts(40_784_077, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 4_079 - .saturating_add(Weight::from_parts(103_858, 0).saturating_mul(a.into())) - // Standard Error: 4_214 - .saturating_add(Weight::from_parts(21_027, 0).saturating_mul(p.into())) + // Standard Error: 4_067 + .saturating_add(Weight::from_parts(106_399, 0).saturating_mul(a.into())) + // Standard Error: 4_202 + .saturating_add(Weight::from_parts(16_644, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -93,11 +93,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_733_000 picoseconds. - Weight::from_parts(25_557_471, 0) + // Minimum execution time: 24_195_000 picoseconds. + Weight::from_parts(24_987_444, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_033 - .saturating_add(Weight::from_parts(133_245, 0).saturating_mul(a.into())) + // Standard Error: 1_038 + .saturating_add(Weight::from_parts(133_032, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -107,15 +107,17 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. - fn reject_announcement(a: u32, _p: u32, ) -> Weight { + fn reject_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_410_000 picoseconds. - Weight::from_parts(25_514_144, 0) + // Minimum execution time: 24_037_000 picoseconds. + Weight::from_parts(24_613_328, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_109 - .saturating_add(Weight::from_parts(131_095, 0).saturating_mul(a.into())) + // Standard Error: 1_774 + .saturating_add(Weight::from_parts(138_420, 0).saturating_mul(a.into())) + // Standard Error: 1_833 + .saturating_add(Weight::from_parts(7_212, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -131,13 +133,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `486 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 34_136_000 picoseconds. - Weight::from_parts(37_134_885, 0) + // Minimum execution time: 33_769_000 picoseconds. + Weight::from_parts(36_507_913, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 4_280 - .saturating_add(Weight::from_parts(124_510, 0).saturating_mul(a.into())) - // Standard Error: 4_423 - .saturating_add(Weight::from_parts(18_117, 0).saturating_mul(p.into())) + // Standard Error: 4_055 + .saturating_add(Weight::from_parts(118_599, 0).saturating_mul(a.into())) + // Standard Error: 4_190 + .saturating_add(Weight::from_parts(23_480, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -148,11 +150,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 25_195_000 picoseconds. - Weight::from_parts(25_886_778, 0) + // Minimum execution time: 24_939_000 picoseconds. + Weight::from_parts(25_596_801, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 840 - .saturating_add(Weight::from_parts(54_308, 0).saturating_mul(p.into())) + // Standard Error: 1_139 + .saturating_add(Weight::from_parts(48_313, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -163,11 +165,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 25_191_000 picoseconds. - Weight::from_parts(26_135_295, 0) + // Minimum execution time: 24_793_000 picoseconds. + Weight::from_parts(25_636_291, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_592 - .saturating_add(Weight::from_parts(56_159, 0).saturating_mul(p.into())) + // Standard Error: 1_444 + .saturating_add(Weight::from_parts(56_267, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -178,11 +180,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 22_472_000 picoseconds. - Weight::from_parts(23_237_113, 0) + // Minimum execution time: 21_951_000 picoseconds. + Weight::from_parts(22_457_177, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 956 - .saturating_add(Weight::from_parts(23_140, 0).saturating_mul(p.into())) + // Standard Error: 890 + .saturating_add(Weight::from_parts(29_712, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +195,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `4706` - // Minimum execution time: 27_176_000 picoseconds. - Weight::from_parts(27_923_720, 0) + // Minimum execution time: 26_647_000 picoseconds. + Weight::from_parts(27_172_672, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_706 - .saturating_add(Weight::from_parts(2_006, 0).saturating_mul(p.into())) + // Standard Error: 783 + .saturating_add(Weight::from_parts(12_707, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +210,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `264 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 23_409_000 picoseconds. - Weight::from_parts(23_984_022, 0) + // Minimum execution time: 23_021_000 picoseconds. + Weight::from_parts(23_593_996, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 768 - .saturating_add(Weight::from_parts(29_138, 0).saturating_mul(p.into())) + // Standard Error: 730 + .saturating_add(Weight::from_parts(29_060, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/pallet_scheduler.rs b/runtime/westend/src/weights/pallet_scheduler.rs index 0a58d43373d5..2261233f19f4 100644 --- a/runtime/westend/src/weights/pallet_scheduler.rs +++ b/runtime/westend/src/weights/pallet_scheduler.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69` // Estimated: `1489` - // Minimum execution time: 3_925_000 picoseconds. - Weight::from_parts(4_049_000, 0) + // Minimum execution time: 3_924_000 picoseconds. + Weight::from_parts(4_104_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -66,11 +66,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 3_616_000 picoseconds. - Weight::from_parts(6_545_930, 0) + // Minimum execution time: 3_471_000 picoseconds. + Weight::from_parts(6_368_084, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_811 - .saturating_add(Weight::from_parts(759_674, 0).saturating_mul(s.into())) + // Standard Error: 1_835 + .saturating_add(Weight::from_parts(735_699, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -78,8 +78,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_664_000 picoseconds. - Weight::from_parts(5_801_000, 0) + // Minimum execution time: 5_602_000 picoseconds. + Weight::from_parts(5_776_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Preimage PreimageFor (r:1 w:1) @@ -91,11 +91,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `217 + s * (1 ±0)` // Estimated: `3682 + s * (1 ±0)` - // Minimum execution time: 19_668_000 picoseconds. - Weight::from_parts(19_939_000, 0) + // Minimum execution time: 19_623_000 picoseconds. + Weight::from_parts(19_798_000, 0) .saturating_add(Weight::from_parts(0, 3682)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_165, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_276, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -106,8 +106,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_426_000 picoseconds. - Weight::from_parts(7_586_000, 0) + // Minimum execution time: 7_056_000 picoseconds. + Weight::from_parts(7_292_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -115,24 +115,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_731_000 picoseconds. - Weight::from_parts(5_830_000, 0) + // Minimum execution time: 5_468_000 picoseconds. + Weight::from_parts(5_662_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_signed() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_804_000 picoseconds. - Weight::from_parts(2_916_000, 0) + // Minimum execution time: 2_587_000 picoseconds. + Weight::from_parts(2_672_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_875_000 picoseconds. - Weight::from_parts(2_965_000, 0) + // Minimum execution time: 2_512_000 picoseconds. + Weight::from_parts(2_605_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Scheduler Agenda (r:1 w:1) @@ -142,11 +142,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 13_156_000 picoseconds. - Weight::from_parts(16_260_948, 0) + // Minimum execution time: 12_826_000 picoseconds. + Weight::from_parts(15_663_356, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_731 - .saturating_add(Weight::from_parts(752_135, 0).saturating_mul(s.into())) + // Standard Error: 1_717 + .saturating_add(Weight::from_parts(724_639, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -159,11 +159,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 17_676_000 picoseconds. - Weight::from_parts(17_054_855, 0) + // Minimum execution time: 17_323_000 picoseconds. + Weight::from_parts(16_801_158, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_659 - .saturating_add(Weight::from_parts(1_347_768, 0).saturating_mul(s.into())) + // Standard Error: 1_810 + .saturating_add(Weight::from_parts(1_270_818, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -176,11 +176,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `293 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 16_396_000 picoseconds. - Weight::from_parts(20_444_459, 0) + // Minimum execution time: 15_970_000 picoseconds. + Weight::from_parts(19_764_119, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_779 - .saturating_add(Weight::from_parts(783_182, 0).saturating_mul(s.into())) + // Standard Error: 2_598 + .saturating_add(Weight::from_parts(753_277, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -193,11 +193,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `319 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 19_204_000 picoseconds. - Weight::from_parts(19_428_890, 0) + // Minimum execution time: 18_529_000 picoseconds. + Weight::from_parts(18_928_437, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_104 - .saturating_add(Weight::from_parts(1_359_801, 0).saturating_mul(s.into())) + // Standard Error: 2_090 + .saturating_add(Weight::from_parts(1_294_980, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/westend/src/weights/pallet_session.rs b/runtime/westend/src/weights/pallet_session.rs index fed4eba53e68..8c66ee0c8c13 100644 --- a/runtime/westend/src/weights/pallet_session.rs +++ b/runtime/westend/src/weights/pallet_session.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -55,11 +55,11 @@ impl pallet_session::WeightInfo for WeightInfo { /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn set_keys() -> Weight { // Proof Size summary in bytes: - // Measured: `1921` - // Estimated: `17761` - // Minimum execution time: 51_885_000 picoseconds. - Weight::from_parts(52_480_000, 0) - .saturating_add(Weight::from_parts(0, 17761)) + // Measured: `1954` + // Estimated: `17794` + // Minimum execution time: 51_052_000 picoseconds. + Weight::from_parts(51_459_000, 0) + .saturating_add(Weight::from_parts(0, 17794)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -71,11 +71,11 @@ impl pallet_session::WeightInfo for WeightInfo { /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn purge_keys() -> Weight { // Proof Size summary in bytes: - // Measured: `1785` - // Estimated: `5250` - // Minimum execution time: 37_081_000 picoseconds. - Weight::from_parts(37_804_000, 0) - .saturating_add(Weight::from_parts(0, 5250)) + // Measured: `1818` + // Estimated: `5283` + // Minimum execution time: 36_840_000 picoseconds. + Weight::from_parts(37_294_000, 0) + .saturating_add(Weight::from_parts(0, 5283)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(7)) } diff --git a/runtime/westend/src/weights/pallet_staking.rs b/runtime/westend/src/weights/pallet_staking.rs index 4115d770df4d..530f95912ae9 100644 --- a/runtime/westend/src/weights/pallet_staking.rs +++ b/runtime/westend/src/weights/pallet_staking.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_staking` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -63,8 +63,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1014` // Estimated: `4764` - // Minimum execution time: 52_336_000 picoseconds. - Weight::from_parts(53_637_000, 0) + // Minimum execution time: 50_208_000 picoseconds. + Weight::from_parts(51_062_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -85,8 +85,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1959` // Estimated: `8877` - // Minimum execution time: 92_722_000 picoseconds. - Weight::from_parts(93_621_000, 0) + // Minimum execution time: 90_359_000 picoseconds. + Weight::from_parts(91_296_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -103,8 +103,6 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: VoterList ListNodes (r:3 w:3) /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) /// Storage: Staking Bonded (r:1 w:0) @@ -115,11 +113,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2166` // Estimated: `8877` - // Minimum execution time: 95_067_000 picoseconds. - Weight::from_parts(95_945_000, 0) + // Minimum execution time: 93_852_000 picoseconds. + Weight::from_parts(95_397_000, 0) .saturating_add(Weight::from_parts(0, 8877)) - .saturating_add(T::DbWeight::get().reads(13)) - .saturating_add(T::DbWeight::get().writes(8)) + .saturating_add(T::DbWeight::get().reads(12)) + .saturating_add(T::DbWeight::get().writes(7)) } /// Storage: Staking Ledger (r:1 w:1) /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) @@ -129,20 +127,18 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `s` is `[0, 100]`. fn withdraw_unbonded_update(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `981` // Estimated: `4764` - // Minimum execution time: 45_003_000 picoseconds. - Weight::from_parts(46_250_797, 0) + // Minimum execution time: 44_154_000 picoseconds. + Weight::from_parts(45_462_410, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 467 - .saturating_add(Weight::from_parts(13_886, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(3)) + // Standard Error: 486 + .saturating_add(Weight::from_parts(13_977, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: Staking Ledger (r:1 w:1) /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) @@ -164,8 +160,6 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) /// Storage: VoterList CounterForListNodes (r:1 w:1) /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: Balances Locks (r:1 w:1) /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) @@ -179,13 +173,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2221 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 90_735_000 picoseconds. - Weight::from_parts(95_963_510, 0) + // Minimum execution time: 88_758_000 picoseconds. + Weight::from_parts(93_134_139, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_930 - .saturating_add(Weight::from_parts(1_176_761, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(14)) - .saturating_add(T::DbWeight::get().writes(12)) + // Standard Error: 1_973 + .saturating_add(Weight::from_parts(1_171_880, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(13)) + .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) .saturating_add(Weight::from_parts(0, 4).saturating_mul(s.into())) } @@ -215,8 +209,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1343` // Estimated: `4556` - // Minimum execution time: 57_951_000 picoseconds. - Weight::from_parts(58_472_000, 0) + // Minimum execution time: 56_114_000 picoseconds. + Weight::from_parts(56_779_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(5)) @@ -228,13 +222,13 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `k` is `[1, 128]`. fn kick(k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1223 + k * (569 ±0)` + // Measured: `1248 + k * (569 ±0)` // Estimated: `4556 + k * (3033 ±0)` - // Minimum execution time: 29_575_000 picoseconds. - Weight::from_parts(28_851_537, 0) + // Minimum execution time: 29_078_000 picoseconds. + Weight::from_parts(28_432_243, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 5_878 - .saturating_add(Weight::from_parts(7_942_901, 0).saturating_mul(k.into())) + // Standard Error: 9_401 + .saturating_add(Weight::from_parts(7_712_654, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -265,13 +259,13 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `n` is `[1, 16]`. fn nominate(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1819 + n * (105 ±0)` + // Measured: `1839 + n * (102 ±0)` // Estimated: `6248 + n * (2520 ±0)` - // Minimum execution time: 65_909_000 picoseconds. - Weight::from_parts(63_413_953, 0) + // Minimum execution time: 63_885_000 picoseconds. + Weight::from_parts(61_605_779, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 15_253 - .saturating_add(Weight::from_parts(3_402_714, 0).saturating_mul(n.into())) + // Standard Error: 13_217 + .saturating_add(Weight::from_parts(3_261_718, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(6)) @@ -295,8 +289,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1675` // Estimated: `6248` - // Minimum execution time: 58_353_000 picoseconds. - Weight::from_parts(58_980_000, 0) + // Minimum execution time: 57_198_000 picoseconds. + Weight::from_parts(57_774_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -309,8 +303,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `771` // Estimated: `4556` - // Minimum execution time: 14_755_000 picoseconds. - Weight::from_parts(14_906_000, 0) + // Minimum execution time: 14_245_000 picoseconds. + Weight::from_parts(14_461_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -323,8 +317,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `870` // Estimated: `8122` - // Minimum execution time: 22_901_000 picoseconds. - Weight::from_parts(23_323_000, 0) + // Minimum execution time: 21_706_000 picoseconds. + Weight::from_parts(21_900_000, 0) .saturating_add(Weight::from_parts(0, 8122)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -335,8 +329,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_421_000 picoseconds. - Weight::from_parts(3_525_000, 0) + // Minimum execution time: 3_067_000 picoseconds. + Weight::from_parts(3_213_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -346,8 +340,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_866_000 picoseconds. - Weight::from_parts(12_205_000, 0) + // Minimum execution time: 11_144_000 picoseconds. + Weight::from_parts(11_567_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -357,8 +351,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_854_000 picoseconds. - Weight::from_parts(12_032_000, 0) + // Minimum execution time: 11_269_000 picoseconds. + Weight::from_parts(11_583_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -368,8 +362,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_844_000 picoseconds. - Weight::from_parts(12_103_000, 0) + // Minimum execution time: 11_293_000 picoseconds. + Weight::from_parts(11_518_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -380,11 +374,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_655_000 picoseconds. - Weight::from_parts(3_878_546, 0) + // Minimum execution time: 3_210_000 picoseconds. + Weight::from_parts(3_416_612, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 18 - .saturating_add(Weight::from_parts(11_573, 0).saturating_mul(v.into())) + // Standard Error: 29 + .saturating_add(Weight::from_parts(12_029, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Staking Bonded (r:1 w:1) @@ -420,11 +414,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1947 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 83_069_000 picoseconds. - Weight::from_parts(88_496_226, 0) + // Minimum execution time: 81_225_000 picoseconds. + Weight::from_parts(86_201_315, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_819 - .saturating_add(Weight::from_parts(1_176_540, 0).saturating_mul(s.into())) + // Standard Error: 3_083 + .saturating_add(Weight::from_parts(1_166_689, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(12)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -437,11 +431,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `66606` // Estimated: `70071` - // Minimum execution time: 115_154_000 picoseconds. - Weight::from_parts(911_539_350, 0) + // Minimum execution time: 114_076_000 picoseconds. + Weight::from_parts(905_992_993, 0) .saturating_add(Weight::from_parts(0, 70071)) - // Standard Error: 57_910 - .saturating_add(Weight::from_parts(4_892_702, 0).saturating_mul(s.into())) + // Standard Error: 57_451 + .saturating_add(Weight::from_parts(4_985_392, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -467,12 +461,12 @@ impl pallet_staking::WeightInfo for WeightInfo { fn payout_stakers_dead_controller(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `5773 + n * (151 ±0)` - // Estimated: `8579 + n * (2603 ±0)` - // Minimum execution time: 74_016_000 picoseconds. - Weight::from_parts(93_561_648, 0) + // Estimated: `8579 + n * (2603 ±1)` + // Minimum execution time: 73_081_000 picoseconds. + Weight::from_parts(89_156_001, 0) .saturating_add(Weight::from_parts(0, 8579)) - // Standard Error: 24_084 - .saturating_add(Weight::from_parts(27_227_255, 0).saturating_mul(n.into())) + // Standard Error: 29_127 + .saturating_add(Weight::from_parts(26_968_804, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -504,13 +498,13 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `n` is `[0, 64]`. fn payout_stakers_alive_staked(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `9389 + n * (403 ±0)` - // Estimated: `11458 + n * (3774 ±0)` - // Minimum execution time: 97_908_000 picoseconds. - Weight::from_parts(125_462_913, 0) - .saturating_add(Weight::from_parts(0, 11458)) - // Standard Error: 37_213 - .saturating_add(Weight::from_parts(42_531_734, 0).saturating_mul(n.into())) + // Measured: `8056 + n * (396 ±0)` + // Estimated: `10634 + n * (3774 ±0)` + // Minimum execution time: 95_567_000 picoseconds. + Weight::from_parts(121_942_593, 0) + .saturating_add(Weight::from_parts(0, 10634)) + // Standard Error: 43_896 + .saturating_add(Weight::from_parts(41_757_697, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -523,8 +517,6 @@ impl pallet_staking::WeightInfo for WeightInfo { /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// Storage: Balances Freezes (r:1 w:0) /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: VoterList ListNodes (r:3 w:3) /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) /// Storage: Staking Bonded (r:1 w:0) @@ -536,16 +528,14 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1960 + l * (5 ±0)` // Estimated: `8877` - // Minimum execution time: 87_018_000 picoseconds. - Weight::from_parts(88_129_314, 0) + // Minimum execution time: 85_323_000 picoseconds. + Weight::from_parts(86_589_796, 0) .saturating_add(Weight::from_parts(0, 8877)) - // Standard Error: 1_585 - .saturating_add(Weight::from_parts(31_208, 0).saturating_mul(l.into())) - .saturating_add(T::DbWeight::get().reads(10)) - .saturating_add(T::DbWeight::get().writes(8)) + // Standard Error: 2_070 + .saturating_add(Weight::from_parts(26_241, 0).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(7)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// Storage: Staking Bonded (r:1 w:1) /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) /// Storage: Staking Ledger (r:1 w:1) @@ -577,13 +567,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2221 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 96_815_000 picoseconds. - Weight::from_parts(97_067_258, 0) + // Minimum execution time: 94_711_000 picoseconds. + Weight::from_parts(94_645_957, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_831 - .saturating_add(Weight::from_parts(1_174_608, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(13)) - .saturating_add(T::DbWeight::get().writes(12)) + // Standard Error: 1_752 + .saturating_add(Weight::from_parts(1_165_944, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(12)) + .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) .saturating_add(Weight::from_parts(0, 4).saturating_mul(s.into())) } @@ -629,13 +619,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + n * (716 ±0) + v * (3594 ±0)` // Estimated: `456136 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 499_246_000 picoseconds. - Weight::from_parts(501_512_000, 0) + // Minimum execution time: 489_185_000 picoseconds. + Weight::from_parts(491_633_000, 0) .saturating_add(Weight::from_parts(0, 456136)) - // Standard Error: 1_909_272 - .saturating_add(Weight::from_parts(60_802_444, 0).saturating_mul(v.into())) - // Standard Error: 190_248 - .saturating_add(Weight::from_parts(16_804_385, 0).saturating_mul(n.into())) + // Standard Error: 1_870_549 + .saturating_add(Weight::from_parts(60_011_887, 0).saturating_mul(v.into())) + // Standard Error: 186_390 + .saturating_add(Weight::from_parts(16_514_440, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(185)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -666,15 +656,15 @@ impl pallet_staking::WeightInfo for WeightInfo { /// The range of component `n` is `[500, 1000]`. fn get_npos_voters(v: u32, n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3069 + n * (907 ±0) + v * (391 ±0)` + // Measured: `3151 + n * (907 ±0) + v * (391 ±0)` // Estimated: `456136 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 31_319_081_000 picoseconds. - Weight::from_parts(31_369_888_000, 0) + // Minimum execution time: 31_071_557_000 picoseconds. + Weight::from_parts(31_184_775_000, 0) .saturating_add(Weight::from_parts(0, 456136)) - // Standard Error: 346_779 - .saturating_add(Weight::from_parts(5_137_385, 0).saturating_mul(v.into())) - // Standard Error: 346_779 - .saturating_add(Weight::from_parts(3_196_748, 0).saturating_mul(n.into())) + // Standard Error: 341_011 + .saturating_add(Weight::from_parts(4_822_874, 0).saturating_mul(v.into())) + // Standard Error: 341_011 + .saturating_add(Weight::from_parts(3_235_650, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(180)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -693,11 +683,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `951 + v * (50 ±0)` // Estimated: `3510 + v * (2520 ±0)` - // Minimum execution time: 2_253_849_000 picoseconds. - Weight::from_parts(35_313_425, 0) + // Minimum execution time: 2_148_728_000 picoseconds. + Weight::from_parts(28_438_783, 0) .saturating_add(Weight::from_parts(0, 3510)) - // Standard Error: 6_443 - .saturating_add(Weight::from_parts(4_511_063, 0).saturating_mul(v.into())) + // Standard Error: 9_947 + .saturating_add(Weight::from_parts(4_338_592, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -719,8 +709,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_983_000 picoseconds. - Weight::from_parts(7_203_000, 0) + // Minimum execution time: 6_775_000 picoseconds. + Weight::from_parts(7_053_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -740,8 +730,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_415_000 picoseconds. - Weight::from_parts(6_592_000, 0) + // Minimum execution time: 6_078_000 picoseconds. + Weight::from_parts(6_266_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -769,8 +759,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1798` // Estimated: `6248` - // Minimum execution time: 70_754_000 picoseconds. - Weight::from_parts(71_629_000, 0) + // Minimum execution time: 68_284_000 picoseconds. + Weight::from_parts(69_428_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(6)) @@ -783,8 +773,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `661` // Estimated: `3510` - // Minimum execution time: 13_802_000 picoseconds. - Weight::from_parts(13_935_000, 0) + // Minimum execution time: 13_104_000 picoseconds. + Weight::from_parts(13_447_000, 0) .saturating_add(Weight::from_parts(0, 3510)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -795,8 +785,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_514_000 picoseconds. - Weight::from_parts(3_690_000, 0) + // Minimum execution time: 3_074_000 picoseconds. + Weight::from_parts(3_227_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/pallet_sudo.rs b/runtime/westend/src/weights/pallet_sudo.rs index 180c0ec9c119..8276aac2813a 100644 --- a/runtime/westend/src/weights/pallet_sudo.rs +++ b/runtime/westend/src/weights/pallet_sudo.rs @@ -1,86 +1,84 @@ -// This file is part of Substrate. - // Copyright (C) Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. -//! Autogenerated weights for pallet_sudo +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_sudo` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: -// target/production/substrate +// ./target/production/polkadot // benchmark // pallet +// --chain=westend-dev // --steps=50 // --repeat=20 +// --pallet=pallet_sudo // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/substrate/.git/.artifacts/bench.json -// --pallet=pallet_sudo -// --chain=dev -// --header=./HEADER-APACHE2 -// --output=./frame/sudo/src/weights.rs -// --template=./.maintain/frame-weight-template.hbs +// --header=./file_header.txt +// --output=./runtime/westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; -/// Weight functions for pallet_sudo. +/// Weight functions for `pallet_sudo`. pub struct WeightInfo(PhantomData); impl pallet_sudo::WeightInfo for WeightInfo { /// Storage: Sudo Key (r:1 w:1) /// Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) fn set_key() -> Weight { // Proof Size summary in bytes: - // Measured: `165` + // Measured: `132` // Estimated: `1517` - // Minimum execution time: 14_078_000 picoseconds. - Weight::from_parts(14_405_000, 1517) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(1_u64)) + // Minimum execution time: 12_332_000 picoseconds. + Weight::from_parts(12_554_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: Sudo Key (r:1 w:0) /// Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) fn sudo() -> Weight { // Proof Size summary in bytes: - // Measured: `165` + // Measured: `132` // Estimated: `1517` - // Minimum execution time: 14_009_000 picoseconds. - Weight::from_parts(14_400_000, 1517) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Minimum execution time: 12_031_000 picoseconds. + Weight::from_parts(12_395_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) } - /// Storage: Sudo Key (r:1 w:0) /// Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) fn sudo_as() -> Weight { // Proof Size summary in bytes: - // Measured: `165` + // Measured: `132` // Estimated: `1517` - // Minimum execution time: 13_954_000 picoseconds. - Weight::from_parts(14_248_000, 1517) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Minimum execution time: 12_036_000 picoseconds. + Weight::from_parts(12_433_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) } } diff --git a/runtime/westend/src/weights/pallet_timestamp.rs b/runtime/westend/src/weights/pallet_timestamp.rs index 7b924b2cc2ce..0d15b4296ae6 100644 --- a/runtime/westend/src/weights/pallet_timestamp.rs +++ b/runtime/westend/src/weights/pallet_timestamp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `311` // Estimated: `1493` - // Minimum execution time: 9_605_000 picoseconds. - Weight::from_parts(9_963_000, 0) + // Minimum execution time: 9_221_000 picoseconds. + Weight::from_parts(9_650_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +65,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `94` // Estimated: `0` - // Minimum execution time: 3_666_000 picoseconds. - Weight::from_parts(3_747_000, 0) + // Minimum execution time: 3_739_000 picoseconds. + Weight::from_parts(3_851_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtime/westend/src/weights/pallet_utility.rs b/runtime/westend/src/weights/pallet_utility.rs index 7868770e8a4d..684c479cf8f4 100644 --- a/runtime/westend/src/weights/pallet_utility.rs +++ b/runtime/westend/src/weights/pallet_utility.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -52,18 +52,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_051_000 picoseconds. - Weight::from_parts(15_608_314, 0) + // Minimum execution time: 6_923_000 picoseconds. + Weight::from_parts(2_769_254, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_069 - .saturating_add(Weight::from_parts(4_569_013, 0).saturating_mul(c.into())) + // Standard Error: 3_300 + .saturating_add(Weight::from_parts(4_339_482, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_516_000 picoseconds. - Weight::from_parts(5_664_000, 0) + // Minimum execution time: 4_857_000 picoseconds. + Weight::from_parts(4_983_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -71,18 +71,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_204_000 picoseconds. - Weight::from_parts(12_179_998, 0) + // Minimum execution time: 6_727_000 picoseconds. + Weight::from_parts(5_695_288, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_850 - .saturating_add(Weight::from_parts(4_859_148, 0).saturating_mul(c.into())) + // Standard Error: 3_266 + .saturating_add(Weight::from_parts(4_596_881, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_471_000 picoseconds. - Weight::from_parts(9_605_000, 0) + // Minimum execution time: 8_831_000 picoseconds. + Weight::from_parts(8_991_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -90,10 +90,10 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_199_000 picoseconds. - Weight::from_parts(13_222_100, 0) + // Minimum execution time: 6_815_000 picoseconds. + Weight::from_parts(2_341_206, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_812 - .saturating_add(Weight::from_parts(4_567_045, 0).saturating_mul(c.into())) + // Standard Error: 3_365 + .saturating_add(Weight::from_parts(4_334_955, 0).saturating_mul(c.into())) } } diff --git a/runtime/westend/src/weights/pallet_vesting.rs b/runtime/westend/src/weights/pallet_vesting.rs index 0fb173c44025..c66647d09696 100644 --- a/runtime/westend/src/weights/pallet_vesting.rs +++ b/runtime/westend/src/weights/pallet_vesting.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -59,13 +59,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `348 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 33_754_000 picoseconds. - Weight::from_parts(33_051_049, 0) + // Minimum execution time: 33_671_000 picoseconds. + Weight::from_parts(32_915_333, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_184 - .saturating_add(Weight::from_parts(36_730, 0).saturating_mul(l.into())) - // Standard Error: 2_108 - .saturating_add(Weight::from_parts(61_789, 0).saturating_mul(s.into())) + // Standard Error: 530 + .saturating_add(Weight::from_parts(37_992, 0).saturating_mul(l.into())) + // Standard Error: 944 + .saturating_add(Weight::from_parts(67_556, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -81,13 +81,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `348 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 37_222_000 picoseconds. - Weight::from_parts(36_585_887, 0) + // Minimum execution time: 36_857_000 picoseconds. + Weight::from_parts(36_738_722, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 687 - .saturating_add(Weight::from_parts(30_675, 0).saturating_mul(l.into())) - // Standard Error: 1_222 - .saturating_add(Weight::from_parts(45_181, 0).saturating_mul(s.into())) + // Standard Error: 901 + .saturating_add(Weight::from_parts(31_646, 0).saturating_mul(l.into())) + // Standard Error: 1_603 + .saturating_add(Weight::from_parts(35_256, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -105,13 +105,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `451 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 35_565_000 picoseconds. - Weight::from_parts(34_263_984, 0) + // Minimum execution time: 35_469_000 picoseconds. + Weight::from_parts(34_632_479, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 411 - .saturating_add(Weight::from_parts(46_236, 0).saturating_mul(l.into())) - // Standard Error: 731 - .saturating_add(Weight::from_parts(71_857, 0).saturating_mul(s.into())) + // Standard Error: 544 + .saturating_add(Weight::from_parts(41_184, 0).saturating_mul(l.into())) + // Standard Error: 968 + .saturating_add(Weight::from_parts(67_376, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -129,13 +129,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `451 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 38_495_000 picoseconds. - Weight::from_parts(38_404_280, 0) + // Minimum execution time: 38_561_000 picoseconds. + Weight::from_parts(38_157_517, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 768 - .saturating_add(Weight::from_parts(34_656, 0).saturating_mul(l.into())) - // Standard Error: 1_368 - .saturating_add(Weight::from_parts(46_139, 0).saturating_mul(s.into())) + // Standard Error: 779 + .saturating_add(Weight::from_parts(34_492, 0).saturating_mul(l.into())) + // Standard Error: 1_386 + .saturating_add(Weight::from_parts(48_413, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -153,13 +153,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `522 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 68_356_000 picoseconds. - Weight::from_parts(70_912_415, 0) + // Minimum execution time: 67_911_000 picoseconds. + Weight::from_parts(70_826_756, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 3_231 - .saturating_add(Weight::from_parts(50_207, 0).saturating_mul(l.into())) - // Standard Error: 5_749 - .saturating_add(Weight::from_parts(88_509, 0).saturating_mul(s.into())) + // Standard Error: 1_765 + .saturating_add(Weight::from_parts(44_260, 0).saturating_mul(l.into())) + // Standard Error: 3_140 + .saturating_add(Weight::from_parts(95_731, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -177,13 +177,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `625 + l * (25 ±0) + s * (36 ±0)` // Estimated: `6196` - // Minimum execution time: 69_377_000 picoseconds. - Weight::from_parts(71_976_840, 0) + // Minimum execution time: 69_355_000 picoseconds. + Weight::from_parts(72_167_687, 0) .saturating_add(Weight::from_parts(0, 6196)) - // Standard Error: 2_003 - .saturating_add(Weight::from_parts(48_638, 0).saturating_mul(l.into())) - // Standard Error: 3_563 - .saturating_add(Weight::from_parts(109_176, 0).saturating_mul(s.into())) + // Standard Error: 1_867 + .saturating_add(Weight::from_parts(48_779, 0).saturating_mul(l.into())) + // Standard Error: 3_323 + .saturating_add(Weight::from_parts(99_812, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -201,13 +201,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `449 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_228_000 picoseconds. - Weight::from_parts(35_225_726, 0) + // Minimum execution time: 36_399_000 picoseconds. + Weight::from_parts(35_671_775, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 433 - .saturating_add(Weight::from_parts(43_158, 0).saturating_mul(l.into())) - // Standard Error: 800 - .saturating_add(Weight::from_parts(69_464, 0).saturating_mul(s.into())) + // Standard Error: 901 + .saturating_add(Weight::from_parts(33_402, 0).saturating_mul(l.into())) + // Standard Error: 1_664 + .saturating_add(Weight::from_parts(68_455, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -225,13 +225,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `449 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 40_414_000 picoseconds. - Weight::from_parts(39_477_039, 0) + // Minimum execution time: 40_276_000 picoseconds. + Weight::from_parts(39_154_175, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 438 - .saturating_add(Weight::from_parts(44_014, 0).saturating_mul(l.into())) - // Standard Error: 810 - .saturating_add(Weight::from_parts(62_561, 0).saturating_mul(s.into())) + // Standard Error: 585 + .saturating_add(Weight::from_parts(44_983, 0).saturating_mul(l.into())) + // Standard Error: 1_080 + .saturating_add(Weight::from_parts(70_537, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/westend/src/weights/pallet_xcm.rs b/runtime/westend/src/weights/pallet_xcm.rs index 6bcac6d5084f..b37c920822b0 100644 --- a/runtime/westend/src/weights/pallet_xcm.rs +++ b/runtime/westend/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -63,8 +63,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 32_444_000 picoseconds. - Weight::from_parts(33_056_000, 0) + // Minimum execution time: 31_193_000 picoseconds. + Weight::from_parts(31_731_000, 0) .saturating_add(Weight::from_parts(0, 3634)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(3)) @@ -73,16 +73,16 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 22_468_000 picoseconds. - Weight::from_parts(22_809_000, 0) + // Minimum execution time: 21_370_000 picoseconds. + Weight::from_parts(21_920_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 22_343_000 picoseconds. - Weight::from_parts(22_676_000, 0) + // Minimum execution time: 21_564_000 picoseconds. + Weight::from_parts(21_967_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Benchmark Override (r:0 w:0) @@ -101,8 +101,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_297_000 picoseconds. - Weight::from_parts(10_537_000, 0) + // Minimum execution time: 9_816_000 picoseconds. + Weight::from_parts(10_111_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -112,8 +112,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_271_000 picoseconds. - Weight::from_parts(3_448_000, 0) + // Minimum execution time: 3_032_000 picoseconds. + Weight::from_parts(3_153_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -139,8 +139,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 37_373_000 picoseconds. - Weight::from_parts(37_792_000, 0) + // Minimum execution time: 35_683_000 picoseconds. + Weight::from_parts(36_240_000, 0) .saturating_add(Weight::from_parts(0, 3634)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -165,8 +165,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `326` // Estimated: `3791` - // Minimum execution time: 38_384_000 picoseconds. - Weight::from_parts(39_431_000, 0) + // Minimum execution time: 37_222_000 picoseconds. + Weight::from_parts(37_477_000, 0) .saturating_add(Weight::from_parts(0, 3791)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -177,8 +177,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_451_000 picoseconds. - Weight::from_parts(3_596_000, 0) + // Minimum execution time: 2_927_000 picoseconds. + Weight::from_parts(3_111_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -188,8 +188,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `229` // Estimated: `11119` - // Minimum execution time: 15_875_000 picoseconds. - Weight::from_parts(16_460_000, 0) + // Minimum execution time: 16_205_000 picoseconds. + Weight::from_parts(16_464_000, 0) .saturating_add(Weight::from_parts(0, 11119)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -200,8 +200,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `233` // Estimated: `11123` - // Minimum execution time: 16_217_000 picoseconds. - Weight::from_parts(16_839_000, 0) + // Minimum execution time: 15_931_000 picoseconds. + Weight::from_parts(16_267_000, 0) .saturating_add(Weight::from_parts(0, 11123)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -212,8 +212,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `243` // Estimated: `13608` - // Minimum execution time: 17_009_000 picoseconds. - Weight::from_parts(17_536_000, 0) + // Minimum execution time: 17_139_000 picoseconds. + Weight::from_parts(17_572_000, 0) .saturating_add(Weight::from_parts(0, 13608)) .saturating_add(T::DbWeight::get().reads(5)) } @@ -235,8 +235,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `6179` - // Minimum execution time: 33_908_000 picoseconds. - Weight::from_parts(34_515_000, 0) + // Minimum execution time: 32_900_000 picoseconds. + Weight::from_parts(33_510_000, 0) .saturating_add(Weight::from_parts(0, 6179)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -247,8 +247,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `272` // Estimated: `8687` - // Minimum execution time: 9_087_000 picoseconds. - Weight::from_parts(9_388_000, 0) + // Minimum execution time: 8_874_000 picoseconds. + Weight::from_parts(9_173_000, 0) .saturating_add(Weight::from_parts(0, 8687)) .saturating_add(T::DbWeight::get().reads(3)) } @@ -258,8 +258,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `240` // Estimated: `11130` - // Minimum execution time: 16_881_000 picoseconds. - Weight::from_parts(17_500_000, 0) + // Minimum execution time: 16_180_000 picoseconds. + Weight::from_parts(16_538_000, 0) .saturating_add(Weight::from_parts(0, 11130)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -282,8 +282,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `243` // Estimated: `11133` - // Minimum execution time: 40_886_000 picoseconds. - Weight::from_parts(41_424_000, 0) + // Minimum execution time: 39_599_000 picoseconds. + Weight::from_parts(40_475_000, 0) .saturating_add(Weight::from_parts(0, 11133)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(5)) diff --git a/runtime/westend/src/weights/runtime_common_auctions.rs b/runtime/westend/src/weights/runtime_common_auctions.rs index 9a6275d391cd..ebec0d992d65 100644 --- a/runtime/westend/src/weights/runtime_common_auctions.rs +++ b/runtime/westend/src/weights/runtime_common_auctions.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::auctions` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `4` // Estimated: `1493` - // Minimum execution time: 12_571_000 picoseconds. - Weight::from_parts(12_851_000, 0) + // Minimum execution time: 12_018_000 picoseconds. + Weight::from_parts(12_421_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +79,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `571` // Estimated: `6060` - // Minimum execution time: 76_246_000 picoseconds. - Weight::from_parts(79_697_000, 0) + // Minimum execution time: 76_859_000 picoseconds. + Weight::from_parts(80_348_000, 0) .saturating_add(Weight::from_parts(0, 6060)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -111,10 +111,10 @@ impl runtime_common::auctions::WeightInfo for WeightInf /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) fn on_initialize() -> Weight { // Proof Size summary in bytes: - // Measured: `6947646` + // Measured: `6947683` // Estimated: `15822990` - // Minimum execution time: 6_362_630_000 picoseconds. - Weight::from_parts(6_434_405_000, 0) + // Minimum execution time: 6_386_601_000 picoseconds. + Weight::from_parts(6_523_638_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3688)) .saturating_add(T::DbWeight::get().writes(3683)) @@ -131,8 +131,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `177732` // Estimated: `15822990` - // Minimum execution time: 4_940_017_000 picoseconds. - Weight::from_parts(5_006_084_000, 0) + // Minimum execution time: 4_841_088_000 picoseconds. + Weight::from_parts(4_945_066_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3673)) .saturating_add(T::DbWeight::get().writes(3673)) diff --git a/runtime/westend/src/weights/runtime_common_crowdloan.rs b/runtime/westend/src/weights/runtime_common_crowdloan.rs index bf9027b989cc..580854742529 100644 --- a/runtime/westend/src/weights/runtime_common_crowdloan.rs +++ b/runtime/westend/src/weights/runtime_common_crowdloan.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::crowdloan` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -61,8 +61,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `438` // Estimated: `3903` - // Minimum execution time: 49_186_000 picoseconds. - Weight::from_parts(50_953_000, 0) + // Minimum execution time: 51_850_000 picoseconds. + Weight::from_parts(52_789_000, 0) .saturating_add(Weight::from_parts(0, 3903)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -87,8 +87,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `424` // Estimated: `3889` - // Minimum execution time: 126_783_000 picoseconds. - Weight::from_parts(128_474_000, 0) + // Minimum execution time: 131_427_000 picoseconds. + Weight::from_parts(132_567_000, 0) .saturating_add(Weight::from_parts(0, 3889)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -105,8 +105,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `690` // Estimated: `6196` - // Minimum execution time: 71_770_000 picoseconds. - Weight::from_parts(72_830_000, 0) + // Minimum execution time: 73_160_000 picoseconds. + Weight::from_parts(74_711_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -118,11 +118,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `176 + k * (188 ±0)` // Estimated: `201 + k * (189 ±0)` - // Minimum execution time: 44_129_000 picoseconds. - Weight::from_parts(56_760_000, 0) + // Minimum execution time: 61_026_000 picoseconds. + Weight::from_parts(62_440_000, 0) .saturating_add(Weight::from_parts(0, 201)) - // Standard Error: 14_618 - .saturating_add(Weight::from_parts(37_925_781, 0).saturating_mul(k.into())) + // Standard Error: 11_265 + .saturating_add(Weight::from_parts(37_250_113, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -137,8 +137,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `515` // Estimated: `6196` - // Minimum execution time: 41_038_000 picoseconds. - Weight::from_parts(42_119_000, 0) + // Minimum execution time: 43_082_000 picoseconds. + Weight::from_parts(44_095_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -149,8 +149,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `235` // Estimated: `3700` - // Minimum execution time: 17_868_000 picoseconds. - Weight::from_parts(18_548_000, 0) + // Minimum execution time: 19_607_000 picoseconds. + Weight::from_parts(20_207_000, 0) .saturating_add(Weight::from_parts(0, 3700)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -163,8 +163,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `412` // Estimated: `3877` - // Minimum execution time: 25_281_000 picoseconds. - Weight::from_parts(25_785_000, 0) + // Minimum execution time: 26_361_000 picoseconds. + Weight::from_parts(27_079_000, 0) .saturating_add(Weight::from_parts(0, 3877)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -177,8 +177,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `239` // Estimated: `3704` - // Minimum execution time: 17_979_000 picoseconds. - Weight::from_parts(18_255_000, 0) + // Minimum execution time: 18_376_000 picoseconds. + Weight::from_parts(19_013_000, 0) .saturating_add(Weight::from_parts(0, 3704)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -208,11 +208,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `91 + n * (356 ±0)` // Estimated: `5385 + n * (2832 ±0)` - // Minimum execution time: 127_851_000 picoseconds. - Weight::from_parts(128_776_000, 0) + // Minimum execution time: 125_636_000 picoseconds. + Weight::from_parts(127_130_000, 0) .saturating_add(Weight::from_parts(0, 5385)) - // Standard Error: 58_175 - .saturating_add(Weight::from_parts(60_241_182, 0).saturating_mul(n.into())) + // Standard Error: 60_475 + .saturating_add(Weight::from_parts(58_880_803, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/westend/src/weights/runtime_common_paras_registrar.rs b/runtime/westend/src/weights/runtime_common_paras_registrar.rs index 37d591af83b4..e5cecd933b13 100644 --- a/runtime/westend/src/weights/runtime_common_paras_registrar.rs +++ b/runtime/westend/src/weights/runtime_common_paras_registrar.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::paras_registrar` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -57,8 +57,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `97` // Estimated: `3562` - // Minimum execution time: 31_299_000 picoseconds. - Weight::from_parts(32_061_000, 0) + // Minimum execution time: 30_288_000 picoseconds. + Weight::from_parts(30_838_000, 0) .saturating_add(Weight::from_parts(0, 3562)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -67,14 +67,14 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) /// Storage: Paras ParaLifecycles (r:1 w:1) /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) - /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras ActionsQueue (r:1 w:1) - /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:0 w:1) @@ -83,26 +83,26 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras UpcomingParasGenesis (max_values: None, max_size: None, mode: Measured) fn register() -> Weight { // Proof Size summary in bytes: - // Measured: `270` - // Estimated: `3735` - // Minimum execution time: 6_328_990_000 picoseconds. - Weight::from_parts(6_439_955_000, 0) - .saturating_add(Weight::from_parts(0, 3735)) + // Measured: `329` + // Estimated: `3794` + // Minimum execution time: 6_348_006_000 picoseconds. + Weight::from_parts(6_443_032_000, 0) + .saturating_add(Weight::from_parts(0, 3794)) .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(T::DbWeight::get().writes(8)) } /// Storage: Registrar Paras (r:1 w:1) /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) /// Storage: Paras ParaLifecycles (r:1 w:1) /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) - /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras ActionsQueue (r:1 w:1) - /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:0 w:1) @@ -111,13 +111,13 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras UpcomingParasGenesis (max_values: None, max_size: None, mode: Measured) fn force_register() -> Weight { // Proof Size summary in bytes: - // Measured: `187` - // Estimated: `3652` - // Minimum execution time: 6_297_865_000 picoseconds. - Weight::from_parts(6_392_835_000, 0) - .saturating_add(Weight::from_parts(0, 3652)) + // Measured: `246` + // Estimated: `3711` + // Minimum execution time: 6_448_799_000 picoseconds. + Weight::from_parts(6_498_522_000, 0) + .saturating_add(Weight::from_parts(0, 3711)) .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(T::DbWeight::get().writes(8)) } /// Storage: Registrar Paras (r:1 w:1) /// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured) @@ -129,16 +129,18 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras ActionsQueue (r:1 w:1) /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: Registrar PendingSwap (r:0 w:1) /// Proof Skipped: Registrar PendingSwap (max_values: None, max_size: None, mode: Measured) fn deregister() -> Weight { // Proof Size summary in bytes: - // Measured: `435` - // Estimated: `3900` - // Minimum execution time: 45_425_000 picoseconds. - Weight::from_parts(47_001_000, 0) - .saturating_add(Weight::from_parts(0, 3900)) - .saturating_add(T::DbWeight::get().reads(5)) + // Measured: `476` + // Estimated: `3941` + // Minimum execution time: 50_249_000 picoseconds. + Weight::from_parts(51_443_000, 0) + .saturating_add(Weight::from_parts(0, 3941)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: Registrar Paras (r:1 w:0) @@ -157,11 +159,11 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured) fn swap() -> Weight { // Proof Size summary in bytes: - // Measured: `637` - // Estimated: `6577` - // Minimum execution time: 47_062_000 picoseconds. - Weight::from_parts(49_667_000, 0) - .saturating_add(Weight::from_parts(0, 6577)) + // Measured: `674` + // Estimated: `6614` + // Minimum execution time: 54_314_000 picoseconds. + Weight::from_parts(57_565_000, 0) + .saturating_add(Weight::from_parts(0, 6614)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) } @@ -173,30 +175,28 @@ impl runtime_common::paras_registrar::WeightInfo for We /// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured) /// Storage: Paras UpgradeCooldowns (r:1 w:1) /// Proof Skipped: Paras UpgradeCooldowns (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras PvfActiveVoteMap (r:1 w:0) + /// Storage: Paras PvfActiveVoteMap (r:1 w:1) /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) /// Storage: Paras CodeByHash (r:1 w:1) /// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras UpcomingUpgrades (r:1 w:1) - /// Proof Skipped: Paras UpcomingUpgrades (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Digest (r:1 w:1) - /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras PvfActiveVoteList (r:1 w:1) + /// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CodeByHashRefs (r:1 w:1) /// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured) - /// Storage: Paras FutureCodeUpgrades (r:0 w:1) - /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) /// The range of component `b` is `[1, 3145728]`. fn schedule_code_upgrade(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `28` - // Estimated: `3493` - // Minimum execution time: 39_645_000 picoseconds. - Weight::from_parts(39_768_000, 0) - .saturating_add(Weight::from_parts(0, 3493)) + // Measured: `177` + // Estimated: `3642` + // Minimum execution time: 39_123_000 picoseconds. + Weight::from_parts(39_606_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_956, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_997, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(8)) + .saturating_add(T::DbWeight::get().writes(7)) } /// Storage: Paras Heads (r:0 w:1) /// Proof Skipped: Paras Heads (max_values: None, max_size: None, mode: Measured) @@ -205,11 +205,11 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_568_000 picoseconds. - Weight::from_parts(9_661_000, 0) + // Minimum execution time: 8_541_000 picoseconds. + Weight::from_parts(8_632_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 2 - .saturating_add(Weight::from_parts(859, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(896, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().writes(1)) } } diff --git a/runtime/westend/src/weights/runtime_common_slots.rs b/runtime/westend/src/weights/runtime_common_slots.rs index 947cff369733..cd75f5a077e8 100644 --- a/runtime/westend/src/weights/runtime_common_slots.rs +++ b/runtime/westend/src/weights/runtime_common_slots.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::slots` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -55,8 +55,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: // Measured: `0 + c * (47 ±0) + t * (308 ±0)` - // Estimated: `2657 + c * (2526 ±0) + t * (2789 ±0)` - // Minimum execution time: 637_316_000 picoseconds. - Weight::from_parts(645_590_000, 0) - .saturating_add(Weight::from_parts(0, 2657)) - // Standard Error: 80_601 - .saturating_add(Weight::from_parts(2_659_004, 0).saturating_mul(c.into())) - // Standard Error: 80_601 - .saturating_add(Weight::from_parts(11_359_760, 0).saturating_mul(t.into())) + // Estimated: `2694 + c * (2526 ±0) + t * (2789 ±0)` + // Minimum execution time: 631_561_000 picoseconds. + Weight::from_parts(639_647_000, 0) + .saturating_add(Weight::from_parts(0, 2694)) + // Standard Error: 81_236 + .saturating_add(Weight::from_parts(2_631_500, 0).saturating_mul(c.into())) + // Standard Error: 81_236 + .saturating_add(Weight::from_parts(11_312_809, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(t.into()))) @@ -103,8 +103,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `564` - // Estimated: `4029` - // Minimum execution time: 27_452_000 picoseconds. - Weight::from_parts(28_127_000, 0) - .saturating_add(Weight::from_parts(0, 4029)) + // Measured: `601` + // Estimated: `4066` + // Minimum execution time: 26_943_000 picoseconds. + Weight::from_parts(27_706_000, 0) + .saturating_add(Weight::from_parts(0, 4066)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/westend/src/weights/runtime_parachains_configuration.rs b/runtime/westend/src/weights/runtime_parachains_configuration.rs index ec769bb2fa15..53619093f7e9 100644 --- a/runtime/westend/src/weights/runtime_parachains_configuration.rs +++ b/runtime/westend/src/weights/runtime_parachains_configuration.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::configuration` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -55,11 +55,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_block_number() -> Weight { // Proof Size summary in bytes: - // Measured: `90` - // Estimated: `1575` - // Minimum execution time: 10_053_000 picoseconds. - Weight::from_parts(10_343_000, 0) - .saturating_add(Weight::from_parts(0, 1575)) + // Measured: `127` + // Estimated: `1612` + // Minimum execution time: 9_772_000 picoseconds. + Weight::from_parts(10_158_000, 0) + .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -71,11 +71,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { // Proof Size summary in bytes: - // Measured: `90` - // Estimated: `1575` - // Minimum execution time: 9_978_000 picoseconds. - Weight::from_parts(10_327_000, 0) - .saturating_add(Weight::from_parts(0, 1575)) + // Measured: `127` + // Estimated: `1612` + // Minimum execution time: 9_803_000 picoseconds. + Weight::from_parts(10_025_000, 0) + .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -114,11 +114,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `90` - // Estimated: `1575` - // Minimum execution time: 10_012_000 picoseconds. - Weight::from_parts(10_360_000, 0) - .saturating_add(Weight::from_parts(0, 1575)) + // Measured: `127` + // Estimated: `1612` + // Minimum execution time: 9_920_000 picoseconds. + Weight::from_parts(10_199_000, 0) + .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -130,11 +130,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_executor_params() -> Weight { // Proof Size summary in bytes: - // Measured: `90` - // Estimated: `1575` - // Minimum execution time: 11_070_000 picoseconds. - Weight::from_parts(11_346_000, 0) - .saturating_add(Weight::from_parts(0, 1575)) + // Measured: `127` + // Estimated: `1612` + // Minimum execution time: 10_942_000 picoseconds. + Weight::from_parts(11_317_000, 0) + .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/runtime_parachains_disputes.rs b/runtime/westend/src/weights/runtime_parachains_disputes.rs index 51017184ff10..3bfc7679707e 100644 --- a/runtime/westend/src/weights/runtime_parachains_disputes.rs +++ b/runtime/westend/src/weights/runtime_parachains_disputes.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -53,8 +53,8 @@ impl runtime_parachains::disputes::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_073_000 picoseconds. - Weight::from_parts(3_223_000, 0) + // Minimum execution time: 2_814_000 picoseconds. + Weight::from_parts(2_977_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/runtime_parachains_disputes_slashing.rs b/runtime/westend/src/weights/runtime_parachains_disputes_slashing.rs index f7aacbb1105b..69cb5b50c866 100644 --- a/runtime/westend/src/weights/runtime_parachains_disputes_slashing.rs +++ b/runtime/westend/src/weights/runtime_parachains_disputes_slashing.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes::slashing` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -88,11 +88,11 @@ impl runtime_parachains::disputes::slashing::WeightInfo // Proof Size summary in bytes: // Measured: `4816 + n * (289 ±0)` // Estimated: `8127 + n * (292 ±0)` - // Minimum execution time: 81_381_000 picoseconds. - Weight::from_parts(124_327_643, 0) + // Minimum execution time: 80_684_000 picoseconds. + Weight::from_parts(122_798_665, 0) .saturating_add(Weight::from_parts(0, 8127)) - // Standard Error: 4_028 - .saturating_add(Weight::from_parts(385_497, 0).saturating_mul(n.into())) + // Standard Error: 3_919 + .saturating_add(Weight::from_parts(368_026, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(17)) .saturating_add(T::DbWeight::get().writes(9)) .saturating_add(Weight::from_parts(0, 292).saturating_mul(n.into())) diff --git a/runtime/westend/src/weights/runtime_parachains_hrmp.rs b/runtime/westend/src/weights/runtime_parachains_hrmp.rs index 775cd3703aa9..30d14664cf9f 100644 --- a/runtime/westend/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/westend/src/weights/runtime_parachains_hrmp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::hrmp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -67,8 +67,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `307` // Estimated: `6247` - // Minimum execution time: 35_676_000 picoseconds. - Weight::from_parts(36_006_000, 0) + // Minimum execution time: 36_335_000 picoseconds. + Weight::from_parts(36_717_000, 0) .saturating_add(Weight::from_parts(0, 6247)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -89,8 +89,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `421` // Estimated: `3886` - // Minimum execution time: 33_198_000 picoseconds. - Weight::from_parts(33_588_000, 0) + // Minimum execution time: 32_597_000 picoseconds. + Weight::from_parts(33_024_000, 0) .saturating_add(Weight::from_parts(0, 3886)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -109,8 +109,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `238` // Estimated: `3703` - // Minimum execution time: 28_228_000 picoseconds. - Weight::from_parts(28_564_000, 0) + // Minimum execution time: 28_086_000 picoseconds. + Weight::from_parts(29_050_000, 0) .saturating_add(Weight::from_parts(0, 3703)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -133,13 +133,13 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `158 + e * (100 ±0) + i * (100 ±0)` // Estimated: `3620 + e * (2575 ±0) + i * (2575 ±0)` - // Minimum execution time: 1_068_293_000 picoseconds. - Weight::from_parts(2_873_264, 0) + // Minimum execution time: 1_095_485_000 picoseconds. + Weight::from_parts(1_103_346_000, 0) .saturating_add(Weight::from_parts(0, 3620)) - // Standard Error: 13_425 - .saturating_add(Weight::from_parts(8_559_882, 0).saturating_mul(i.into())) - // Standard Error: 13_425 - .saturating_add(Weight::from_parts(8_694_931, 0).saturating_mul(e.into())) + // Standard Error: 97_658 + .saturating_add(Weight::from_parts(3_178_300, 0).saturating_mul(i.into())) + // Standard Error: 97_658 + .saturating_add(Weight::from_parts(3_228_781, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(e.into()))) @@ -170,11 +170,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `386 + c * (136 ±0)` // Estimated: `1841 + c * (5086 ±0)` - // Minimum execution time: 6_423_000 picoseconds. - Weight::from_parts(2_076_802, 0) + // Minimum execution time: 6_046_000 picoseconds. + Weight::from_parts(2_309_892, 0) .saturating_add(Weight::from_parts(0, 1841)) - // Standard Error: 14_748 - .saturating_add(Weight::from_parts(18_408_814, 0).saturating_mul(c.into())) + // Standard Error: 19_666 + .saturating_add(Weight::from_parts(18_787_919, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -198,11 +198,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `229 + c * (124 ±0)` // Estimated: `1689 + c * (2600 ±0)` - // Minimum execution time: 5_202_000 picoseconds. - Weight::from_parts(2_150_391, 0) + // Minimum execution time: 4_970_000 picoseconds. + Weight::from_parts(2_926_083, 0) .saturating_add(Weight::from_parts(0, 1689)) - // Standard Error: 10_345 - .saturating_add(Weight::from_parts(11_317_859, 0).saturating_mul(c.into())) + // Standard Error: 14_037 + .saturating_add(Weight::from_parts(11_504_890, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -220,11 +220,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `920 + c * (13 ±0)` // Estimated: `4189 + c * (15 ±0)` - // Minimum execution time: 20_886_000 picoseconds. - Weight::from_parts(27_091_693, 0) + // Minimum execution time: 20_983_000 picoseconds. + Weight::from_parts(26_973_795, 0) .saturating_add(Weight::from_parts(0, 4189)) - // Standard Error: 1_558 - .saturating_add(Weight::from_parts(64_035, 0).saturating_mul(c.into())) + // Standard Error: 1_482 + .saturating_add(Weight::from_parts(66_495, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 15).saturating_mul(c.into())) @@ -238,11 +238,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `137 + c * (63 ±0)` // Estimated: `1616 + c * (2538 ±0)` - // Minimum execution time: 3_797_000 picoseconds. - Weight::from_parts(4_558_669, 0) + // Minimum execution time: 3_917_000 picoseconds. + Weight::from_parts(5_155_322, 0) .saturating_add(Weight::from_parts(0, 1616)) - // Standard Error: 2_558 - .saturating_add(Weight::from_parts(3_051_570, 0).saturating_mul(c.into())) + // Standard Error: 3_800 + .saturating_add(Weight::from_parts(3_123_833, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -273,8 +273,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `307` // Estimated: `6247` - // Minimum execution time: 49_847_000 picoseconds. - Weight::from_parts(50_287_000, 0) + // Minimum execution time: 49_411_000 picoseconds. + Weight::from_parts(49_849_000, 0) .saturating_add(Weight::from_parts(0, 6247)) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(8)) diff --git a/runtime/westend/src/weights/runtime_parachains_inclusion.rs b/runtime/westend/src/weights/runtime_parachains_inclusion.rs index 112abc3aa181..5c3dea30384f 100644 --- a/runtime/westend/src/weights/runtime_parachains_inclusion.rs +++ b/runtime/westend/src/weights/runtime_parachains_inclusion.rs @@ -1,4 +1,4 @@ -// Copyright 2017-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // This file is part of Polkadot. // Polkadot is free software: you can redistribute it and/or modify @@ -13,16 +13,17 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . + //! Autogenerated weights for `runtime_parachains::inclusion` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-02-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: -// ./target/release/polkadot +// ./target/production/polkadot // benchmark // pallet // --chain=westend-dev @@ -33,34 +34,39 @@ // --execution=wasm // --wasm-execution=compiled // --header=./file_header.txt -// --output=./runtime/westend/src/weights +// --output=./runtime/westend/src/weights/runtime_parachains_inclusion.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `runtime_parachains::inclusion`. pub struct WeightInfo(PhantomData); impl runtime_parachains::inclusion::WeightInfo for WeightInfo { /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: MessageQueue Pages (r:1 w:999) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(131122), added: 133597, mode: MaxEncodedLen) + /// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1) + /// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) + /// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1) /// The range of component `i` is `[1, 1000]`. fn receive_upward_messages(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `51490` - // Estimated: `70587` - // Minimum execution time: 49_053 nanoseconds. - Weight::from_parts(49_506_000, 0) - .saturating_add(Weight::from_parts(0, 70587)) - // Standard Error: 62_734 - .saturating_add(Weight::from_parts(43_511_974, 0).saturating_mul(i.into())) + // Measured: `131297` + // Estimated: `134587` + // Minimum execution time: 201_036_000 picoseconds. + Weight::from_parts(10_796_073, 0) + .saturating_add(Weight::from_parts(0, 134587)) + // Standard Error: 33_391 + .saturating_add(Weight::from_parts(185_599_737, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } } diff --git a/runtime/westend/src/weights/runtime_parachains_initializer.rs b/runtime/westend/src/weights/runtime_parachains_initializer.rs index dc5e698b0c03..0648c13b7920 100644 --- a/runtime/westend/src/weights/runtime_parachains_initializer.rs +++ b/runtime/westend/src/weights/runtime_parachains_initializer.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::initializer` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -54,11 +54,11 @@ impl runtime_parachains::initializer::WeightInfo for We // Proof Size summary in bytes: // Measured: `0 + d * (11 ±0)` // Estimated: `1480 + d * (11 ±0)` - // Minimum execution time: 3_934_000 picoseconds. - Weight::from_parts(6_571_129, 0) + // Minimum execution time: 3_840_000 picoseconds. + Weight::from_parts(6_157_099, 0) .saturating_add(Weight::from_parts(0, 1480)) // Standard Error: 4 - .saturating_add(Weight::from_parts(1_278, 0).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(1_293, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 11).saturating_mul(d.into())) diff --git a/runtime/westend/src/weights/runtime_parachains_paras.rs b/runtime/westend/src/weights/runtime_parachains_paras.rs index 7d5685c30d0e..c72ce57aa7a4 100644 --- a/runtime/westend/src/weights/runtime_parachains_paras.rs +++ b/runtime/westend/src/weights/runtime_parachains_paras.rs @@ -17,30 +17,29 @@ //! Autogenerated weights for `runtime_parachains::paras` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: -// target/production/polkadot +// ./target/production/polkadot // benchmark // pallet +// --chain=westend-dev // --steps=50 // --repeat=20 +// --pallet=runtime_parachains::paras // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json -// --pallet=runtime_parachains::paras -// --chain=westend-dev // --header=./file_header.txt -// --output=./runtime/westend/src/weights/ +// --output=./runtime/westend/src/weights/runtime_parachains_paras.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; @@ -65,11 +64,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `8309` // Estimated: `11774` - // Minimum execution time: 31_695_000 picoseconds. - Weight::from_parts(31_903_000, 0) + // Minimum execution time: 31_633_000 picoseconds. + Weight::from_parts(31_801_000, 0) .saturating_add(Weight::from_parts(0, 11774)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_979, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_988, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -80,11 +79,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_642_000 picoseconds. - Weight::from_parts(8_730_000, 0) + // Minimum execution time: 8_372_000 picoseconds. + Weight::from_parts(8_553_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(890, 0).saturating_mul(s.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(892, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Paras FutureCodeHash (r:1 w:1) @@ -108,13 +107,13 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// The range of component `c` is `[1, 3145728]`. fn force_schedule_code_upgrade(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `8391` - // Estimated: `11856` - // Minimum execution time: 46_791_000 picoseconds. - Weight::from_parts(47_083_000, 0) - .saturating_add(Weight::from_parts(0, 11856)) + // Measured: `8428` + // Estimated: `11893` + // Minimum execution time: 46_598_000 picoseconds. + Weight::from_parts(46_974_000, 0) + .saturating_add(Weight::from_parts(0, 11893)) // Standard Error: 1 - .saturating_add(Weight::from_parts(2_011, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(2_007, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -129,11 +128,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `95` // Estimated: `3560` - // Minimum execution time: 13_939_000 picoseconds. - Weight::from_parts(14_133_000, 0) + // Minimum execution time: 13_631_000 picoseconds. + Weight::from_parts(13_764_000, 0) .saturating_add(Weight::from_parts(0, 3560)) // Standard Error: 2 - .saturating_add(Weight::from_parts(901, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(893, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -143,11 +142,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) fn force_queue_action() -> Weight { // Proof Size summary in bytes: - // Measured: `4251` - // Estimated: `7716` - // Minimum execution time: 19_323_000 picoseconds. - Weight::from_parts(19_629_000, 0) - .saturating_add(Weight::from_parts(0, 7716)) + // Measured: `4288` + // Estimated: `7753` + // Minimum execution time: 19_686_000 picoseconds. + Weight::from_parts(20_007_000, 0) + .saturating_add(Weight::from_parts(0, 7753)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -162,13 +161,13 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// The range of component `c` is `[1, 3145728]`. fn add_trusted_validation_code(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `622` - // Estimated: `4087` - // Minimum execution time: 81_851_000 picoseconds. - Weight::from_parts(65_672_617, 0) - .saturating_add(Weight::from_parts(0, 4087)) + // Measured: `659` + // Estimated: `4124` + // Minimum execution time: 76_229_000 picoseconds. + Weight::from_parts(42_872_845, 0) + .saturating_add(Weight::from_parts(0, 4124)) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_442, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_492, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -180,8 +179,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `28` // Estimated: `3493` - // Minimum execution time: 5_926_000 picoseconds. - Weight::from_parts(6_126_000, 0) + // Minimum execution time: 5_798_000 picoseconds. + Weight::from_parts(6_004_000, 0) .saturating_add(Weight::from_parts(0, 3493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -194,11 +193,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement() -> Weight { // Proof Size summary in bytes: - // Measured: `26645` - // Estimated: `30110` - // Minimum execution time: 91_618_000 picoseconds. - Weight::from_parts(92_712_000, 0) - .saturating_add(Weight::from_parts(0, 30110)) + // Measured: `26682` + // Estimated: `30147` + // Minimum execution time: 85_610_000 picoseconds. + Weight::from_parts(87_453_000, 0) + .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -218,11 +217,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_upgrade_accept() -> Weight { // Proof Size summary in bytes: - // Measured: `27199` - // Estimated: `30664` - // Minimum execution time: 773_592_000 picoseconds. - Weight::from_parts(781_309_000, 0) - .saturating_add(Weight::from_parts(0, 30664)) + // Measured: `27236` + // Estimated: `30701` + // Minimum execution time: 782_299_000 picoseconds. + Weight::from_parts(794_101_000, 0) + .saturating_add(Weight::from_parts(0, 30701)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(104)) } @@ -234,11 +233,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_upgrade_reject() -> Weight { // Proof Size summary in bytes: - // Measured: `27177` - // Estimated: `30642` - // Minimum execution time: 86_554_000 picoseconds. - Weight::from_parts(88_691_000, 0) - .saturating_add(Weight::from_parts(0, 30642)) + // Measured: `27214` + // Estimated: `30679` + // Minimum execution time: 85_738_000 picoseconds. + Weight::from_parts(87_231_000, 0) + .saturating_add(Weight::from_parts(0, 30679)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -254,11 +253,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_onboarding_accept() -> Weight { // Proof Size summary in bytes: - // Measured: `26667` - // Estimated: `30132` - // Minimum execution time: 617_351_000 picoseconds. - Weight::from_parts(621_906_000, 0) - .saturating_add(Weight::from_parts(0, 30132)) + // Measured: `26704` + // Estimated: `30169` + // Minimum execution time: 612_630_000 picoseconds. + Weight::from_parts(620_689_000, 0) + .saturating_add(Weight::from_parts(0, 30169)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -270,11 +269,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn /// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured) fn include_pvf_check_statement_finalize_onboarding_reject() -> Weight { // Proof Size summary in bytes: - // Measured: `26645` - // Estimated: `30110` - // Minimum execution time: 85_943_000 picoseconds. - Weight::from_parts(87_442_000, 0) - .saturating_add(Weight::from_parts(0, 30110)) + // Measured: `26682` + // Estimated: `30147` + // Minimum execution time: 85_356_000 picoseconds. + Weight::from_parts(86_598_000, 0) + .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs b/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs index 42eb1650d929..93d1d634c63a 100644 --- a/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs +++ b/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::paras_inherent` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -101,10 +101,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParaScheduler Scheduled (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler ValidatorGroups (r:1 w:0) /// Proof Skipped: ParaScheduler ValidatorGroups (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Hrmp HrmpWatermarks (r:0 w:1) /// Proof Skipped: Hrmp HrmpWatermarks (max_values: None, max_size: None, mode: Measured) /// Storage: Paras Heads (r:0 w:1) @@ -114,15 +110,15 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// The range of component `v` is `[10, 200]`. fn enter_variable_disputes(v: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `50561` - // Estimated: `56501 + v * (23 ±0)` - // Minimum execution time: 767_903_000 picoseconds. - Weight::from_parts(302_720_945, 0) - .saturating_add(Weight::from_parts(0, 56501)) - // Standard Error: 24_056 - .saturating_add(Weight::from_parts(48_074_394, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(29)) - .saturating_add(T::DbWeight::get().writes(17)) + // Measured: `50518` + // Estimated: `56458 + v * (23 ±0)` + // Minimum execution time: 755_127_000 picoseconds. + Weight::from_parts(279_514_953, 0) + .saturating_add(Weight::from_parts(0, 56458)) + // Standard Error: 27_909 + .saturating_add(Weight::from_parts(48_567_316, 0).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads(27)) + .saturating_add(T::DbWeight::get().writes(15)) .saturating_add(Weight::from_parts(0, 23).saturating_mul(v.into())) } /// Storage: ParaInherent Included (r:1 w:1) @@ -173,10 +169,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParaScheduler Scheduled (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler ValidatorGroups (r:1 w:0) /// Proof Skipped: ParaScheduler ValidatorGroups (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion AvailabilityBitfields (r:0 w:1) /// Proof Skipped: ParaInclusion AvailabilityBitfields (max_values: None, max_size: None, mode: Measured) /// Storage: ParasDisputes Included (r:0 w:1) @@ -189,13 +181,13 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Paras UpgradeGoAheadSignal (max_values: None, max_size: None, mode: Measured) fn enter_bitfields() -> Weight { // Proof Size summary in bytes: - // Measured: `42395` - // Estimated: `48335` - // Minimum execution time: 327_582_000 picoseconds. - Weight::from_parts(333_866_000, 0) - .saturating_add(Weight::from_parts(0, 48335)) - .saturating_add(T::DbWeight::get().reads(27)) - .saturating_add(T::DbWeight::get().writes(18)) + // Measured: `42352` + // Estimated: `48292` + // Minimum execution time: 316_856_000 picoseconds. + Weight::from_parts(324_523_000, 0) + .saturating_add(Weight::from_parts(0, 48292)) + .saturating_add(T::DbWeight::get().reads(25)) + .saturating_add(T::DbWeight::get().writes(16)) } /// Storage: ParaInherent Included (r:1 w:1) /// Proof Skipped: ParaInherent Included (max_values: Some(1), max_size: None, mode: Measured) @@ -247,12 +239,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParaScheduler ValidatorGroups (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras CurrentCodeHash (r:1 w:0) /// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump RelayDispatchQueueSize (r:1 w:0) - /// Proof Skipped: Ump RelayDispatchQueueSize (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras ParaLifecycles (r:1 w:0) + /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: ParasDisputes Included (r:0 w:1) /// Proof Skipped: ParasDisputes Included (max_values: None, max_size: None, mode: Measured) /// Storage: Hrmp HrmpWatermarks (r:0 w:1) @@ -264,15 +254,15 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// The range of component `v` is `[101, 200]`. fn enter_backed_candidates_variable(v: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `42426` - // Estimated: `48366` - // Minimum execution time: 5_553_408_000 picoseconds. - Weight::from_parts(793_193_886, 0) - .saturating_add(Weight::from_parts(0, 48366)) - // Standard Error: 35_242 - .saturating_add(Weight::from_parts(47_466_619, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(30)) - .saturating_add(T::DbWeight::get().writes(17)) + // Measured: `42387` + // Estimated: `48327` + // Minimum execution time: 5_544_322_000 picoseconds. + Weight::from_parts(805_988_490, 0) + .saturating_add(Weight::from_parts(0, 48327)) + // Standard Error: 43_249 + .saturating_add(Weight::from_parts(47_856_057, 0).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads(29)) + .saturating_add(T::DbWeight::get().writes(15)) } /// Storage: ParaInherent Included (r:1 w:1) /// Proof Skipped: ParaInherent Included (max_values: Some(1), max_size: None, mode: Measured) @@ -328,12 +318,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Paras FutureCodeHash (max_values: None, max_size: None, mode: Measured) /// Storage: Paras UpgradeRestrictionSignal (r:1 w:0) /// Proof Skipped: Paras UpgradeRestrictionSignal (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump RelayDispatchQueueSize (r:1 w:0) - /// Proof Skipped: Ump RelayDispatchQueueSize (max_values: None, max_size: None, mode: Measured) - /// Storage: Ump NeedsDispatch (r:1 w:1) - /// Proof Skipped: Ump NeedsDispatch (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Ump NextDispatchRoundStartWith (r:1 w:1) - /// Proof Skipped: Ump NextDispatchRoundStartWith (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Paras ParaLifecycles (r:1 w:0) + /// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen) /// Storage: ParasDisputes Included (r:0 w:1) /// Proof Skipped: ParasDisputes Included (max_values: None, max_size: None, mode: Measured) /// Storage: Hrmp HrmpWatermarks (r:0 w:1) @@ -344,12 +332,12 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Paras UpgradeGoAheadSignal (max_values: None, max_size: None, mode: Measured) fn enter_backed_candidate_code_upgrade() -> Weight { // Proof Size summary in bytes: - // Measured: `42453` - // Estimated: `48393` - // Minimum execution time: 32_607_954_000 picoseconds. - Weight::from_parts(33_000_333_000, 0) - .saturating_add(Weight::from_parts(0, 48393)) - .saturating_add(T::DbWeight::get().reads(32)) - .saturating_add(T::DbWeight::get().writes(17)) + // Measured: `42414` + // Estimated: `48354` + // Minimum execution time: 33_537_056_000 picoseconds. + Weight::from_parts(33_702_104_000, 0) + .saturating_add(Weight::from_parts(0, 48354)) + .saturating_add(T::DbWeight::get().reads(31)) + .saturating_add(T::DbWeight::get().writes(15)) } } From b6b74fdf546c14bf9ac93c03916abda9ee33a52f Mon Sep 17 00:00:00 2001 From: Mara Robin B Date: Tue, 13 Jun 2023 16:30:05 +0200 Subject: [PATCH 14/56] sync master with 0.9.43 (#7358) * sync workspace version with 0.9.43 * sync spec and tx ver with 0.9.43 * 0943 migrations --- Cargo.lock | 174 ++++++++++++++++++------------------ Cargo.toml | 2 +- runtime/kusama/src/lib.rs | 20 +++-- runtime/polkadot/src/lib.rs | 12 +-- runtime/rococo/src/lib.rs | 26 +++--- runtime/westend/src/lib.rs | 26 +++--- 6 files changed, 140 insertions(+), 120 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 162bd76a76c0..715468af2f75 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2199,7 +2199,7 @@ dependencies = [ [[package]] name = "erasure_coding_fuzzer" -version = "0.9.41" +version = "0.9.43" dependencies = [ "honggfuzz", "polkadot-erasure-coding", @@ -3905,7 +3905,7 @@ checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" [[package]] name = "kusama-runtime" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bitvec", "frame-benchmarking", @@ -4011,7 +4011,7 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.41" +version = "0.9.43" dependencies = [ "frame-support", "polkadot-primitives", @@ -6562,7 +6562,7 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -6586,7 +6586,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.41" +version = "0.9.43" dependencies = [ "frame-benchmarking", "frame-support", @@ -6907,7 +6907,7 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "polkadot" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_cmd", "color-eyre", @@ -6924,7 +6924,7 @@ dependencies = [ [[package]] name = "polkadot-approval-distribution" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "env_logger 0.9.0", @@ -6950,7 +6950,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "bitvec", @@ -6975,7 +6975,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "derive_more", @@ -7004,7 +7004,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "env_logger 0.9.0", @@ -7033,7 +7033,7 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.41" +version = "0.9.43" dependencies = [ "clap 4.2.5", "frame-benchmarking-cli", @@ -7064,7 +7064,7 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.41" +version = "0.9.43" dependencies = [ "async-trait", "frame-benchmarking", @@ -7108,7 +7108,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.41" +version = "0.9.43" dependencies = [ "always-assert", "assert_matches", @@ -7137,7 +7137,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.41" +version = "0.9.43" dependencies = [ "parity-scale-codec", "scale-info", @@ -7148,7 +7148,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "async-channel", @@ -7181,7 +7181,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.41" +version = "0.9.43" dependencies = [ "criterion", "parity-scale-codec", @@ -7195,7 +7195,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "async-trait", @@ -7222,7 +7222,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.41" +version = "0.9.43" dependencies = [ "always-assert", "assert_matches", @@ -7251,7 +7251,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.41" +version = "0.9.43" dependencies = [ "futures", "parity-scale-codec", @@ -7270,7 +7270,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "async-trait", @@ -7309,7 +7309,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "bitvec", @@ -7338,7 +7338,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "bitvec", @@ -7364,7 +7364,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.41" +version = "0.9.43" dependencies = [ "futures", "polkadot-node-subsystem", @@ -7380,7 +7380,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "async-trait", @@ -7404,7 +7404,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.41" +version = "0.9.43" dependencies = [ "futures", "maplit", @@ -7423,7 +7423,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "futures", @@ -7444,7 +7444,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "fatality", @@ -7472,7 +7472,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.41" +version = "0.9.43" dependencies = [ "async-trait", "futures", @@ -7488,7 +7488,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bitvec", "fatality", @@ -7509,7 +7509,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.41" +version = "0.9.43" dependencies = [ "always-assert", "assert_matches", @@ -7543,7 +7543,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.41" +version = "0.9.43" dependencies = [ "futures", "futures-timer", @@ -7566,7 +7566,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" -version = "0.9.41" +version = "0.9.43" dependencies = [ "cpu-time", "futures", @@ -7588,7 +7588,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-execute-worker" -version = "0.9.41" +version = "0.9.43" dependencies = [ "cpu-time", "futures", @@ -7607,7 +7607,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-prepare-worker" -version = "0.9.41" +version = "0.9.43" dependencies = [ "futures", "libc", @@ -7629,7 +7629,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.41" +version = "0.9.43" dependencies = [ "futures", "lru 0.9.0", @@ -7650,7 +7650,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.41" +version = "0.9.43" dependencies = [ "lazy_static", "log", @@ -7667,7 +7667,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_cmd", "bs58", @@ -7694,7 +7694,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.41" +version = "0.9.43" dependencies = [ "async-channel", "async-trait", @@ -7717,7 +7717,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bounded-vec", "futures", @@ -7739,7 +7739,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.41" +version = "0.9.43" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7748,7 +7748,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-test-helpers" -version = "0.9.41" +version = "0.9.43" dependencies = [ "async-trait", "futures", @@ -7766,7 +7766,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.41" +version = "0.9.43" dependencies = [ "async-trait", "derive_more", @@ -7788,7 +7788,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "async-trait", @@ -7829,7 +7829,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "async-trait", @@ -7855,7 +7855,7 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bounded-collections", "derive_more", @@ -7871,7 +7871,7 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.41" +version = "0.9.43" dependencies = [ "env_logger 0.9.0", "kusama-runtime", @@ -7888,7 +7888,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bitvec", "hex-literal 0.4.1", @@ -7913,7 +7913,7 @@ dependencies = [ [[package]] name = "polkadot-primitives-test-helpers" -version = "0.9.41" +version = "0.9.43" dependencies = [ "polkadot-primitives", "rand 0.8.5", @@ -7925,7 +7925,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.41" +version = "0.9.43" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -7956,7 +7956,7 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bitvec", "frame-benchmarking", @@ -8058,7 +8058,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bitvec", "frame-benchmarking", @@ -8109,7 +8109,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.41" +version = "0.9.43" dependencies = [ "frame-support", "polkadot-primitives", @@ -8122,7 +8122,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bs58", "frame-benchmarking", @@ -8134,7 +8134,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "bitflags", @@ -8188,7 +8188,7 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "async-trait", @@ -8304,7 +8304,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.41" +version = "0.9.43" dependencies = [ "arrayvec 0.5.2", "assert_matches", @@ -8335,7 +8335,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.41" +version = "0.9.43" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -8344,7 +8344,7 @@ dependencies = [ [[package]] name = "polkadot-test-client" -version = "0.9.41" +version = "0.9.43" dependencies = [ "futures", "parity-scale-codec", @@ -8370,7 +8370,7 @@ dependencies = [ [[package]] name = "polkadot-test-malus" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "async-trait", @@ -8399,7 +8399,7 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bitvec", "frame-election-provider-support", @@ -8464,7 +8464,7 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.9.41" +version = "0.9.43" dependencies = [ "frame-benchmarking", "frame-system", @@ -8518,7 +8518,7 @@ dependencies = [ [[package]] name = "polkadot-voter-bags" -version = "0.9.41" +version = "0.9.43" dependencies = [ "clap 4.2.5", "generate-bags", @@ -9211,7 +9211,7 @@ checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "remote-ext-tests-bags-list" -version = "0.9.41" +version = "0.9.43" dependencies = [ "clap 4.2.5", "frame-system", @@ -9343,7 +9343,7 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.41" +version = "0.9.43" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -9437,7 +9437,7 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.41" +version = "0.9.43" dependencies = [ "frame-support", "polkadot-primitives", @@ -11213,7 +11213,7 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "slot-range-helper" -version = "0.9.41" +version = "0.9.43" dependencies = [ "enumn", "parity-scale-codec", @@ -12067,7 +12067,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staking-miner" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_cmd", "clap 4.2.5", @@ -12514,7 +12514,7 @@ checksum = "13a4ec180a2de59b57434704ccfad967f789b12737738798fa08798cd5824c16" [[package]] name = "test-parachain-adder" -version = "0.9.41" +version = "0.9.43" dependencies = [ "dlmalloc", "parity-scale-codec", @@ -12527,7 +12527,7 @@ dependencies = [ [[package]] name = "test-parachain-adder-collator" -version = "0.9.41" +version = "0.9.43" dependencies = [ "clap 4.2.5", "futures", @@ -12553,7 +12553,7 @@ dependencies = [ [[package]] name = "test-parachain-halt" -version = "0.9.41" +version = "0.9.43" dependencies = [ "rustversion", "substrate-wasm-builder", @@ -12561,7 +12561,7 @@ dependencies = [ [[package]] name = "test-parachain-undying" -version = "0.9.41" +version = "0.9.43" dependencies = [ "dlmalloc", "log", @@ -12575,7 +12575,7 @@ dependencies = [ [[package]] name = "test-parachain-undying-collator" -version = "0.9.41" +version = "0.9.43" dependencies = [ "clap 4.2.5", "futures", @@ -12601,7 +12601,7 @@ dependencies = [ [[package]] name = "test-parachains" -version = "0.9.41" +version = "0.9.43" dependencies = [ "parity-scale-codec", "sp-core", @@ -12612,7 +12612,7 @@ dependencies = [ [[package]] name = "test-runtime-constants" -version = "0.9.41" +version = "0.9.43" dependencies = [ "frame-support", "polkadot-primitives", @@ -13040,7 +13040,7 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.41" +version = "0.9.43" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -13050,7 +13050,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "expander 2.0.0", @@ -14122,7 +14122,7 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bitvec", "frame-benchmarking", @@ -14220,7 +14220,7 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.41" +version = "0.9.43" dependencies = [ "frame-support", "polkadot-primitives", @@ -14619,7 +14619,7 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.41" +version = "0.9.43" dependencies = [ "bounded-collections", "derivative", @@ -14637,7 +14637,7 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.41" +version = "0.9.43" dependencies = [ "assert_matches", "frame-support", @@ -14664,7 +14664,7 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.41" +version = "0.9.43" dependencies = [ "environmental", "frame-benchmarking", @@ -14683,7 +14683,7 @@ dependencies = [ [[package]] name = "xcm-executor-integration-tests" -version = "0.9.41" +version = "0.9.43" dependencies = [ "frame-support", "frame-system", @@ -14703,7 +14703,7 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "0.9.41" +version = "0.9.43" dependencies = [ "Inflector", "proc-macro2", @@ -14713,7 +14713,7 @@ dependencies = [ [[package]] name = "xcm-simulator" -version = "0.9.41" +version = "0.9.43" dependencies = [ "frame-support", "parity-scale-codec", @@ -14730,7 +14730,7 @@ dependencies = [ [[package]] name = "xcm-simulator-example" -version = "0.9.41" +version = "0.9.43" dependencies = [ "frame-support", "frame-system", @@ -14757,7 +14757,7 @@ dependencies = [ [[package]] name = "xcm-simulator-fuzzer" -version = "0.9.41" +version = "0.9.43" dependencies = [ "arbitrary", "frame-support", @@ -14833,7 +14833,7 @@ dependencies = [ [[package]] name = "zombienet-backchannel" -version = "0.9.41" +version = "0.9.43" dependencies = [ "futures-util", "lazy_static", diff --git a/Cargo.toml b/Cargo.toml index cc3b4e4c1d35..3b81c97351d9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ version.workspace = true authors = ["Parity Technologies "] edition = "2021" repository = "https://github.com/paritytech/polkadot.git" -version = "0.9.41" +version = "0.9.43" [dependencies] color-eyre = { version = "0.6.1", default-features = false } diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 16f2e7927b49..7954ba0326ef 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -130,13 +130,13 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("kusama"), impl_name: create_runtime_str!("parity-kusama"), authoring_version: 2, - spec_version: 9410, + spec_version: 9430, impl_version: 0, #[cfg(not(feature = "disable-runtime-api"))] apis: RUNTIME_API_VERSIONS, #[cfg(feature = "disable-runtime-api")] apis: sp_version::create_apis_vec![[]], - transaction_version: 21, + transaction_version: 23, state_version: 0, }; @@ -1504,8 +1504,13 @@ impl Get for NominationPoolsMigrationV4OldPallet { /// /// This contains the combined migrations of the last 10 releases. It allows to skip runtime /// upgrades in case governance decides to do so. THE ORDER IS IMPORTANT. -pub type Migrations = - (migrations::V0940, migrations::V0941, migrations::V0942, migrations::Unreleased); +pub type Migrations = ( + migrations::V0940, + migrations::V0941, + migrations::V0942, + migrations::V0943, + migrations::Unreleased, +); /// The runtime migrations per release. #[allow(deprecated, missing_docs)] @@ -1526,15 +1531,16 @@ pub mod migrations { pallet_offences::migration::v1::MigrateToV1, runtime_common::session::migration::ClearOldSessionStorage, ); - - /// Unreleased migrations. Add new ones here: - pub type Unreleased = ( + pub type V0943 = ( SetStorageVersions, // Remove UMP dispatch queue parachains_configuration::migration::v6::MigrateToV6, ump_migrations::UpdateUmpLimits, ); + /// Unreleased migrations. Add new ones here: + pub type Unreleased = (); + /// Migrations that set `StorageVersion`s we missed to set. pub struct SetStorageVersions; diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 3349cfd321dd..c24f87ce8e80 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -126,13 +126,13 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("polkadot"), impl_name: create_runtime_str!("parity-polkadot"), authoring_version: 0, - spec_version: 9410, + spec_version: 9430, impl_version: 0, #[cfg(not(feature = "disable-runtime-api"))] apis: RUNTIME_API_VERSIONS, #[cfg(feature = "disable-runtime-api")] apis: sp_version::create_apis_vec![[]], - transaction_version: 22, + transaction_version: 24, state_version: 0, }; @@ -1487,6 +1487,7 @@ pub type Migrations = ( migrations::V0940, migrations::V0941, migrations::V0942, + migrations::V0943, migrations::Unreleased, ); @@ -1515,15 +1516,16 @@ pub mod migrations { pallet_offences::migration::v1::MigrateToV1, runtime_common::session::migration::ClearOldSessionStorage, ); - - /// Unreleased migrations. Add new ones here: - pub type Unreleased = ( + pub type V0943 = ( SetStorageVersions, // Remove UMP dispatch queue parachains_configuration::migration::v6::MigrateToV6, ump_migrations::UpdateUmpLimits, ); + /// Unreleased migrations. Add new ones here: + pub type Unreleased = (); + /// Migrations that set `StorageVersion`s we missed to set. pub struct SetStorageVersions; diff --git a/runtime/rococo/src/lib.rs b/runtime/rococo/src/lib.rs index 694d6f54fa85..0b97cf56744c 100644 --- a/runtime/rococo/src/lib.rs +++ b/runtime/rococo/src/lib.rs @@ -112,13 +112,13 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("rococo"), impl_name: create_runtime_str!("parity-rococo-v2.0"), authoring_version: 0, - spec_version: 9410, + spec_version: 9430, impl_version: 0, #[cfg(not(feature = "disable-runtime-api"))] apis: RUNTIME_API_VERSIONS, #[cfg(feature = "disable-runtime-api")] apis: sp_version::create_apis_vec![[]], - transaction_version: 20, + transaction_version: 22, state_version: 1, }; @@ -1525,8 +1525,13 @@ pub type UncheckedExtrinsic = /// /// This contains the combined migrations of the last 10 releases. It allows to skip runtime /// upgrades in case governance decides to do so. THE ORDER IS IMPORTANT. -pub type Migrations = - (migrations::V0940, migrations::V0941, migrations::V0942, migrations::Unreleased); +pub type Migrations = ( + migrations::V0940, + migrations::V0941, + migrations::V0942, + migrations::V0943, + migrations::Unreleased, +); /// The runtime migrations per release. #[allow(deprecated, missing_docs)] @@ -1540,6 +1545,12 @@ pub mod migrations { parachains_configuration::migration::v5::MigrateToV5, pallet_offences::migration::v1::MigrateToV1, ); + pub type V0943 = ( + SetStorageVersions, + // Remove UMP dispatch queue + parachains_configuration::migration::v6::MigrateToV6, + ump_migrations::UpdateUmpLimits, + ); /// Migrations that set `StorageVersion`s we missed to set. /// @@ -1624,12 +1635,7 @@ pub mod migrations { } /// Unreleased migrations. Add new ones here: - pub type Unreleased = ( - SetStorageVersions, - // Remove UMP dispatch queue - parachains_configuration::migration::v6::MigrateToV6, - ump_migrations::UpdateUmpLimits, - ); + pub type Unreleased = (); } /// Helpers to configure all migrations. diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index 592d552bfee9..6f89547c7a83 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -116,13 +116,13 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("westend"), impl_name: create_runtime_str!("parity-westend"), authoring_version: 2, - spec_version: 9410, + spec_version: 9430, impl_version: 0, #[cfg(not(feature = "disable-runtime-api"))] apis: RUNTIME_API_VERSIONS, #[cfg(feature = "disable-runtime-api")] apis: sp_version::create_apis_vec![[]], - transaction_version: 20, + transaction_version: 22, state_version: 1, }; @@ -1275,8 +1275,13 @@ impl Get for NominationPoolsMigrationV4OldPallet { /// /// This contains the combined migrations of the last 10 releases. It allows to skip runtime /// upgrades in case governance decides to do so. THE ORDER IS IMPORTANT. -pub type Migrations = - (migrations::V0940, migrations::V0941, migrations::V0942, migrations::Unreleased); +pub type Migrations = ( + migrations::V0940, + migrations::V0941, + migrations::V0942, + migrations::V0943, + migrations::Unreleased, +); /// The runtime migrations per release. #[allow(deprecated, missing_docs)] @@ -1298,6 +1303,12 @@ pub mod migrations { parachains_configuration::migration::v5::MigrateToV5, pallet_offences::migration::v1::MigrateToV1, ); + pub type V0943 = ( + SetStorageVersions, + // Remove UMP dispatch queue + parachains_configuration::migration::v6::MigrateToV6, + ump_migrations::UpdateUmpLimits, + ); /// Migrations that set `StorageVersion`s we missed to set. pub struct SetStorageVersions; @@ -1314,12 +1325,7 @@ pub mod migrations { } /// Unreleased migrations. Add new ones here: - pub type Unreleased = ( - SetStorageVersions, - // Remove UMP dispatch queue - parachains_configuration::migration::v6::MigrateToV6, - ump_migrations::UpdateUmpLimits, - ); + pub type Unreleased = (); } /// Helpers to configure all migrations. From 59072a3a84f1735bf083d11e3ec90a77f079f667 Mon Sep 17 00:00:00 2001 From: eskimor Date: Wed, 14 Jun 2023 10:57:06 +0200 Subject: [PATCH 15/56] Unify code paths of create_inherent and enter (#7137) * Remove redundant enter call. * Remove optionality in dispute signature checking * Make enter_inner and create_inherent the same. * Remove redundant metric. * Unification: enter and create_inherent. * Remove `enter_inner` function. * Remove dead code. * Remove redundant import. * Remove dead code in disputes. * ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras_inherent * ".git/.scripts/commands/bench/bench.sh" runtime kusama runtime_parachains::paras_inherent * ".git/.scripts/commands/bench/bench.sh" runtime westend runtime_parachains::paras_inherent * Merge fix. * Fix tests. * Remove obsolete comment. * ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras_inherent * ".git/.scripts/commands/bench/bench.sh" runtime westend runtime_parachains::paras_inherent * ".git/.scripts/commands/bench/bench.sh" runtime kusama runtime_parachains::paras_inherent * Review remarks, fixes. * Guide updates. * Fmt. * ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras_inherent --------- Co-authored-by: eskimor Co-authored-by: command-bot <> --- node/metrics/src/runtime/parachain.rs | 5 +- primitives/src/v5/metrics.rs | 26 +- .../src/runtime/parainherent.md | 79 +- .../runtime_parachains_paras_inherent.rs | 106 +-- runtime/parachains/src/disputes.rs | 115 +-- runtime/parachains/src/disputes/tests.rs | 180 +---- runtime/parachains/src/inclusion/mod.rs | 93 +-- runtime/parachains/src/inclusion/tests.rs | 285 +++---- runtime/parachains/src/metrics.rs | 28 +- runtime/parachains/src/paras_inherent/mod.rs | 733 +++++------------- .../parachains/src/paras_inherent/tests.rs | 280 ++----- .../runtime_parachains_paras_inherent.rs | 122 +-- .../runtime_parachains_paras_inherent.rs | 106 +-- 13 files changed, 642 insertions(+), 1516 deletions(-) diff --git a/node/metrics/src/runtime/parachain.rs b/node/metrics/src/runtime/parachain.rs index b1377182088e..becc7c64d59d 100644 --- a/node/metrics/src/runtime/parachain.rs +++ b/node/metrics/src/runtime/parachain.rs @@ -21,13 +21,12 @@ use crate::runtime::RuntimeMetricsProvider; use primitives::metric_definitions::{ PARACHAIN_CREATE_INHERENT_BITFIELDS_SIGNATURE_CHECKS, PARACHAIN_INHERENT_DATA_BITFIELDS_PROCESSED, PARACHAIN_INHERENT_DATA_CANDIDATES_PROCESSED, - PARACHAIN_INHERENT_DATA_DISPUTE_SETS_INCLUDED, PARACHAIN_INHERENT_DATA_DISPUTE_SETS_PROCESSED, - PARACHAIN_INHERENT_DATA_WEIGHT, PARACHAIN_VERIFY_DISPUTE_SIGNATURE, + PARACHAIN_INHERENT_DATA_DISPUTE_SETS_PROCESSED, PARACHAIN_INHERENT_DATA_WEIGHT, + PARACHAIN_VERIFY_DISPUTE_SIGNATURE, }; /// Register the parachain runtime metrics. pub fn register_metrics(runtime_metrics_provider: &RuntimeMetricsProvider) { - runtime_metrics_provider.register_counter(PARACHAIN_INHERENT_DATA_DISPUTE_SETS_INCLUDED); runtime_metrics_provider.register_counter(PARACHAIN_INHERENT_DATA_BITFIELDS_PROCESSED); runtime_metrics_provider.register_countervec(PARACHAIN_INHERENT_DATA_WEIGHT); diff --git a/primitives/src/v5/metrics.rs b/primitives/src/v5/metrics.rs index cf57be0b8092..f947c7392dcb 100644 --- a/primitives/src/v5/metrics.rs +++ b/primitives/src/v5/metrics.rs @@ -147,45 +147,39 @@ pub mod metric_definitions { labels: &["when"], }; - /// Counts the number of bitfields processed in `enter_inner`. + /// Counts the number of bitfields processed in `process_inherent_data`. pub const PARACHAIN_INHERENT_DATA_BITFIELDS_PROCESSED: CounterDefinition = CounterDefinition { name: "polkadot_parachain_inherent_data_bitfields_processed", - description: "Counts the number of bitfields processed in `enter_inner`.", + description: "Counts the number of bitfields processed in `process_inherent_data`.", }; /// Counts the `total`, `sanitized` and `included` number of parachain block candidates - /// in `enter_inner`. + /// in `process_inherent_data`. pub const PARACHAIN_INHERENT_DATA_CANDIDATES_PROCESSED: CounterVecDefinition = CounterVecDefinition { name: "polkadot_parachain_inherent_data_candidates_processed", description: - "Counts the number of parachain block candidates processed in `enter_inner`.", + "Counts the number of parachain block candidates processed in `process_inherent_data`.", labels: &["category"], }; /// Counts the number of `imported`, `current` and `concluded_invalid` dispute statements sets - /// processed in `enter_inner`. The `current` label refers to the disputes statement sets of + /// processed in `process_inherent_data`. The `current` label refers to the disputes statement sets of /// the current session. pub const PARACHAIN_INHERENT_DATA_DISPUTE_SETS_PROCESSED: CounterVecDefinition = CounterVecDefinition { name: "polkadot_parachain_inherent_data_dispute_sets_processed", - description: "Counts the number of dispute statements sets processed in `enter_inner`.", - labels: &["category"], - }; - - /// Counts the number of dispute statements sets included in a block in `enter_inner`. - pub const PARACHAIN_INHERENT_DATA_DISPUTE_SETS_INCLUDED: CounterDefinition = - CounterDefinition { - name: "polkadot_parachain_inherent_data_dispute_sets_included", description: - "Counts the number of dispute statements sets included in a block in `enter_inner`.", + "Counts the number of dispute statements sets processed in `process_inherent_data`.", + labels: &["category"], }; - /// Counts the number of `valid` and `invalid` bitfields signature checked in `enter_inner`. + /// Counts the number of `valid` and `invalid` bitfields signature checked in `process_inherent_data`. pub const PARACHAIN_CREATE_INHERENT_BITFIELDS_SIGNATURE_CHECKS: CounterVecDefinition = CounterVecDefinition { name: "polkadot_parachain_create_inherent_bitfields_signature_checks", - description: "Counts the number of bitfields signature checked in `enter_inner`.", + description: + "Counts the number of bitfields signature checked in `process_inherent_data`.", labels: &["validity"], }; diff --git a/roadmap/implementers-guide/src/runtime/parainherent.md b/roadmap/implementers-guide/src/runtime/parainherent.md index dd67f9f108f8..405468c609a7 100644 --- a/roadmap/implementers-guide/src/runtime/parainherent.md +++ b/roadmap/implementers-guide/src/runtime/parainherent.md @@ -1,6 +1,6 @@ # `ParaInherent` -This module is responsible for providing all data given to the runtime by the block author to the various parachains modules. The entry-point is mandatory, in that it must be invoked exactly once within every block, and it is also "inherent", in that it is provided with no origin by the block author. The data within it carries its own authentication; i.e. the data takes the form of signed statements by validators. If any of the steps within fails, the entry-point is considered as having failed and the block will be invalid. +This module is responsible for providing all data given to the runtime by the block author to the various parachains modules. The entry-point is mandatory, in that it must be invoked exactly once within every block, and it is also "inherent", in that it is provided with no origin by the block author. The data within it carries its own authentication; i.e. the data takes the form of signed statements by validators. Invalid data will be filtered and not applied. This module does not have the same initialization/finalization concerns as the others, as it only requires that entry points be triggered after all modules have initialized and that finalization happens after entry points are triggered. Both of these are assumptions we have already made about the runtime's order of operations, so this module doesn't need to be initialized or finalized by the `Initializer`. @@ -30,59 +30,28 @@ OnChainVotes: Option, ## Entry Points * `enter`: This entry-point accepts one parameter: [`ParaInherentData`](../types/runtime.md#ParaInherentData). - 1. Ensure the origin is none. - 1. Ensure `Included` is set as `None`. - 1. Set `Included` as `Some`. - 1. Unpack `ParachainsInherentData` into `signed_bitfields`, `backed_candidates`, `parent_header`, and `disputes`. - 1. Hash the parent header and make sure that it corresponds to the block hash of the parent (tracked by the `frame_system` FRAME module). - 1. Calculate the `candidate_weight`, `bitfields_weight`, and `disputes_weight`. - 1. If the sum of `candidate_weight`, `bitfields_weight`, and `disputes_weight` is greater than the max block weight we do the following with the goal of prioritizing the inclusion of disputes without making it game-able by block authors: - 1. clear `bitfields` and set `bitfields_weight` equal to 0. - 1. clear `backed_candidates` and set `candidate_weight` equal to 0. - 1. invoke `limit_disputes` on the `disputes` with the max block weight iff the disputes weight is greater than the max block weight. - 1. Invoke `Disputes::provide_multi_dispute_data`. - 1. If `Disputes::is_frozen`, return. - 1. If there are any concluded disputes from the current session, invoke `Inclusion::collect_disputed` with the disputed candidates. Annotate each returned core with `FreedReason::Concluded`, sort them, and invoke `Scheduler::free_cores` with them. - 1. The `Bitfields` are first forwarded to the `Inclusion::process_bitfields` routine, returning a set included candidates and the respective freed cores. Provide the number of availability cores (`Scheduler::availability_cores().len()`) as the expected number of bits and a `Scheduler::core_para` as a core-lookup to the `process_bitfields` routine. Annotate each of these freed cores with `FreedReason::Concluded`. - 1. For each freed candidate from the `Inclusion::process_bitfields` call, invoke `Disputes::note_included(current_session, candidate)`. - 1. If `Scheduler::availability_timeout_predicate` is `Some`, invoke `Inclusion::collect_pending` using it and annotate each of those freed cores with `FreedReason::TimedOut`. - 1. Combine and sort the the bitfield-freed cores and the timed-out cores. - 1. Invoke `Scheduler::clear` - 1. Invoke `Scheduler::schedule(freed_cores, System::current_block())` - 1. Extract `parent_storage_root` from the parent header, - 1. If `Disputes::concluded_invalid(current_session, candidate)` is true for any of the `backed_candidates`, fail. - 1. Invoke the `Inclusion::process_candidates` routine with the parameters `(parent_storage_root, backed_candidates, Scheduler::scheduled(), Scheduler::group_validators)`. - 1. Deconstruct the returned `ProcessedCandidates` value into `occupied` core indices, and backing validators by candidate `backing_validators_per_candidate` represented by `Vec<(CandidateReceipt, Vec<(ValidatorIndex, ValidityAttestation)>)>`. - 1. Set `OnChainVotes` to `ScrapedOnChainVotes`, based on the `current_session`, concluded `disputes`, and `backing_validators_per_candidate`. - 1. Call `Scheduler::occupied` using the `occupied` core indices of the returned above, first sorting the list of assigned core indices. - 1. Call the `Ump::process_pending_upward_messages` routine to execute all messages in upward dispatch queues. - 1. If all of the above succeeds, set `Included` to `Some(())`. +* `create_inherent`: This entry-point accepts one parameter: `InherentData`. +Both entry points share mostly the same code. `create_inherent` will +meaningfully limit inherent data to adhere to the weight limit, in addition to +sanitizing any inputs and filtering out invalid data. Conceptually it is part of +the block production. The `enter` call on the other hand is part of block import +and consumes/imports the data previously produced by `create_inherent`. + +In practice both calls process inherent data and apply it to the state. Block +production and block import should arrive at the same new state. Hence we re-use +the same logic to ensure this is the case. + +The only real difference between the two is, that on `create_inherent` we +actually need the processed and filtered inherent data to build the block, while +on `enter` the processed data should for one be identical to the incoming +inherent data (assuming honest block producers) and second it is irrelevant, as +we are not building a block but just processing it, so the processed inherent +data is simply dropped. + +This also means that the `enter` function keeps data around for no good reason. +This seems acceptable though as the size of a block is rather limited. +Nevertheless if we ever wanted to optimize this we can easily implement an +inherent collector that has two implementations, where one clones and stores the +data and the other just passes it on. -* `create_inherent`: This entry-point accepts one parameter: `InherentData`. - 1. Invoke [`create_inherent_inner(InherentData)`](#routines), the unit testable logic for filtering and sanitzing the inherent data used when invoking `enter`. Save the result as `inherent_data`. - 1. If the `inherent_data` is an `Err` variant, return the `enter` call signature with all inherent data cleared else return the `enter` call signature with `inherent_data` passed in as the `data` param. - -# Routines - -* `create_inherent_inner(data: &InherentData) -> Option>` - 1. Unpack `InherentData` into its parts, `bitfields`, `backed_candidates`, `disputes` and the `parent_header`. If data cannot be unpacked return `None`. - 1. Hash the `parent_header` and make sure that it corresponds to the block hash of the parent (tracked by the `frame_system` FRAME module). - 1. Invoke `Disputes::filter_multi_dispute_data` to remove duplicates et al from `disputes`. - 1. Run the following within a `with_transaction` closure to avoid side effects (we are essentially replicating the logic that would otherwise happen within `enter` so we can get the filtered bitfields and the `concluded_invalid_disputes` + `scheduled` to use in filtering the `backed_candidates`.): - 1. Invoke `Disputes::provide_multi_dispute_data`. - 1. Collect `current_concluded_invalid_disputes`, the disputed candidate hashes from the current session that have concluded invalid. - 1. Collect `concluded_invalid_disputes`, the disputed candidate hashes from the given `backed_candidates`. - 1. Invoke `Inclusion::collect_disputed` with the newly disputed candidates. Annotate each returned core with `FreedReason::Concluded`, sort them, and invoke `Scheduler::free_cores` with them. - 1. Collect filtered `bitfields` by invoking [`sanitize_bitfields`](inclusion.md#Routines). - 1. Collect `freed_concluded` by invoking `update_pending_availability_and_get_freed_cores` on the filtered bitfields. - 1. Collect all `freed` cores by invoking `collect_all_freed_cores` on `freed_concluding`. - 1. Invoke `scheduler::Pallet>::clear()`. - 1. Invoke `scheduler::Pallet>::schedule` with `freed` and the current block number to create the same schedule of the cores that `enter` will create. - 1. Read the new `>::scheduled()` into `schedule`. - 1. From the `with_transaction` closure return `concluded_invalid_disputes`, `bitfields`, and `scheduled`. - 1. Invoke `sanitize_backed_candidates` using the `scheduled` return from the `with_transaction` and pass the closure `|candidate_hash: CandidateHash| -> bool { DisputesHandler::concluded_invalid(current_session, candidate_hash) }` for the param `candidate_has_concluded_invalid_dispute`. - 1. create a `rng` from `rand_chacha::ChaChaRng::from_seed(compute_entropy::(parent_hash))`. - 1. Invoke `limit_disputes` with the max block weight and `rng`, storing the returned weigh in `remaining_weight`. - 1. Fill up the remaining of the block weight with backed candidates and bitfields by invoking `apply_weight_limit` with `remaining_weigh` and `rng`. - 1. Return `Some(ParachainsInherentData { bitfields, backed_candidates, disputes, parent_header }`. diff --git a/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs b/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs index 965988e4bb0b..50b2e02364b1 100644 --- a/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs +++ b/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs @@ -17,24 +17,26 @@ //! Autogenerated weights for `runtime_parachains::paras_inherent` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot +// target/production/polkadot // benchmark // pallet -// --chain=kusama-dev // --steps=50 // --repeat=20 -// --pallet=runtime_parachains::paras_inherent // --extrinsic=* // --execution=wasm // --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json +// --pallet=runtime_parachains::paras_inherent +// --chain=kusama-dev // --header=./file_header.txt -// --output=./runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs +// --output=./runtime/kusama/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -53,6 +55,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) + /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Babe AuthorVrfRandomness (r:1 w:0) /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaSessionInfo Sessions (r:1 w:0) @@ -61,8 +67,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParasDisputes BackersOnDisputes (r:1 w:1) /// Proof Skipped: ParasDisputes BackersOnDisputes (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) - /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasDisputes Included (r:1 w:1) /// Proof Skipped: ParasDisputes Included (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -73,12 +77,12 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) /// Storage: Staking ErasRewardPoints (r:1 w:1) /// Proof Skipped: Staking ErasRewardPoints (max_values: None, max_size: None, mode: Measured) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasDisputes Frozen (r:1 w:0) /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) - /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras Parachains (r:1 w:0) /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) @@ -91,8 +95,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) /// Proof Skipped: ParaScheduler SessionStartBlock (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler ParathreadQueue (r:1 w:1) @@ -112,11 +114,11 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `50671` // Estimated: `56611 + v * (23 ±0)` - // Minimum execution time: 765_925_000 picoseconds. - Weight::from_parts(297_309_443, 0) + // Minimum execution time: 800_725_000 picoseconds. + Weight::from_parts(336_254_020, 0) .saturating_add(Weight::from_parts(0, 56611)) - // Standard Error: 26_133 - .saturating_add(Weight::from_parts(48_559_543, 0).saturating_mul(v.into())) + // Standard Error: 25_581 + .saturating_add(Weight::from_parts(48_329_153, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(27)) .saturating_add(T::DbWeight::get().writes(15)) .saturating_add(Weight::from_parts(0, 23).saturating_mul(v.into())) @@ -127,18 +129,20 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Babe AuthorVrfRandomness (r:1 w:0) - /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Frozen (r:1 w:0) - /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras Parachains (r:1 w:0) - /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Babe AuthorVrfRandomness (r:1 w:0) + /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasDisputes Frozen (r:1 w:0) + /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) + /// Storage: Paras Parachains (r:1 w:0) + /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) /// Proof Skipped: ParaInclusion PendingAvailabilityCommitments (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -157,8 +161,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasDisputes Disputes (r:1 w:0) /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) @@ -183,8 +185,8 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42504` // Estimated: `48444` - // Minimum execution time: 317_981_000 picoseconds. - Weight::from_parts(326_881_000, 0) + // Minimum execution time: 352_534_000 picoseconds. + Weight::from_parts(361_737_000, 0) .saturating_add(Weight::from_parts(0, 48444)) .saturating_add(T::DbWeight::get().reads(25)) .saturating_add(T::DbWeight::get().writes(16)) @@ -195,18 +197,20 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Babe AuthorVrfRandomness (r:1 w:0) - /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Frozen (r:1 w:0) - /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras Parachains (r:1 w:0) - /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Babe AuthorVrfRandomness (r:1 w:0) + /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasDisputes Frozen (r:1 w:0) + /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) + /// Storage: Paras Parachains (r:1 w:0) + /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) /// Proof Skipped: ParaInclusion PendingAvailabilityCommitments (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -225,9 +229,7 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Disputes (r:2 w:0) + /// Storage: ParasDisputes Disputes (r:1 w:0) /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) /// Proof Skipped: ParaScheduler SessionStartBlock (max_values: Some(1), max_size: None, mode: Measured) @@ -256,12 +258,12 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42540` // Estimated: `48480` - // Minimum execution time: 5_573_801_000 picoseconds. - Weight::from_parts(827_804_247, 0) + // Minimum execution time: 5_727_163_000 picoseconds. + Weight::from_parts(969_937_276, 0) .saturating_add(Weight::from_parts(0, 48480)) - // Standard Error: 49_742 - .saturating_add(Weight::from_parts(47_813_417, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(29)) + // Standard Error: 52_405 + .saturating_add(Weight::from_parts(47_875_548, 0).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads(28)) .saturating_add(T::DbWeight::get().writes(15)) } /// Storage: ParaInherent Included (r:1 w:1) @@ -270,18 +272,20 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Babe AuthorVrfRandomness (r:1 w:0) - /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Frozen (r:1 w:0) - /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras Parachains (r:1 w:0) - /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Babe AuthorVrfRandomness (r:1 w:0) + /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasDisputes Frozen (r:1 w:0) + /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) + /// Storage: Paras Parachains (r:1 w:0) + /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) /// Proof Skipped: ParaInclusion PendingAvailabilityCommitments (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -300,9 +304,7 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Disputes (r:2 w:0) + /// Storage: ParasDisputes Disputes (r:1 w:0) /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) /// Proof Skipped: ParaScheduler SessionStartBlock (max_values: Some(1), max_size: None, mode: Measured) @@ -334,10 +336,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42567` // Estimated: `48507` - // Minimum execution time: 33_592_912_000 picoseconds. - Weight::from_parts(34_625_823_000, 0) + // Minimum execution time: 32_796_206_000 picoseconds. + Weight::from_parts(33_220_759_000, 0) .saturating_add(Weight::from_parts(0, 48507)) - .saturating_add(T::DbWeight::get().reads(31)) + .saturating_add(T::DbWeight::get().reads(30)) .saturating_add(T::DbWeight::get().writes(15)) } } diff --git a/runtime/parachains/src/disputes.rs b/runtime/parachains/src/disputes.rs index 6a3d61ff8047..3e96c25a26c2 100644 --- a/runtime/parachains/src/disputes.rs +++ b/runtime/parachains/src/disputes.rs @@ -136,19 +136,6 @@ impl SlashingHandler for () { fn initializer_on_new_session(_: SessionIndex) {} } -/// Binary discriminator to determine if the expensive signature -/// checks are necessary. -#[derive(Clone, Copy)] -pub enum VerifyDisputeSignatures { - /// Yes, verify the signatures. - Yes, - /// No, skip the signature verification. - /// - /// Only done if there exists an invariant that - /// can guaranteed the signature was checked before. - Skip, -} - /// Provide a `Ordering` for the two provided dispute statement sets according to the /// following prioritization: /// 1. Prioritize local disputes over remote disputes @@ -184,36 +171,6 @@ where } } -use super::paras_inherent::IsSortedBy; - -/// Returns `true` if duplicate items were found, otherwise `false`. -/// -/// `check_equal(a: &T, b: &T)` _must_ return `true`, iff `a` and `b` are equal, otherwise `false. -/// The definition of _equal_ is to be defined by the user. -/// -/// Attention: Requires the input `iter` to be sorted, such that _equals_ -/// would be adjacent in respect whatever `check_equal` defines as equality! -fn contains_duplicates_in_sorted_iter< - 'a, - T: 'a, - I: 'a + IntoIterator, - C: 'static + FnMut(&T, &T) -> bool, ->( - iter: I, - mut check_equal: C, -) -> bool { - let mut iter = iter.into_iter(); - if let Some(mut previous) = iter.next() { - while let Some(current) = iter.next() { - if check_equal(previous, current) { - return true - } - previous = current; - } - } - return false -} - /// Hook into disputes handling. /// /// Allows decoupling parachains handling from disputes so that it can @@ -223,23 +180,6 @@ pub trait DisputesHandler { /// any new parachain blocks for backing or inclusion. fn is_frozen() -> bool; - /// Assure sanity - fn assure_deduplicated_and_sorted(statement_sets: &MultiDisputeStatementSet) -> Result<(), ()> { - if !IsSortedBy::is_sorted_by( - statement_sets.as_slice(), - dispute_ordering_compare::, - ) { - return Err(()) - } - // Sorted, so according to session and candidate hash, this will detect duplicates. - if contains_duplicates_in_sorted_iter(statement_sets, |previous, current| { - current.session == previous.session && current.candidate_hash == previous.candidate_hash - }) { - return Err(()) - } - Ok(()) - } - /// Remove dispute statement duplicates and sort the non-duplicates based on /// local (lower indicies) vs remotes (higher indices) and age (older with lower indices). /// @@ -274,7 +214,6 @@ pub trait DisputesHandler { fn filter_dispute_data( statement_set: DisputeStatementSet, post_conclusion_acceptance_period: BlockNumber, - verify_sigs: VerifyDisputeSignatures, ) -> Option; /// Handle sets of dispute statements corresponding to 0 or more candidates. @@ -322,7 +261,6 @@ impl DisputesHandler for () { fn filter_dispute_data( _set: DisputeStatementSet, _post_conclusion_acceptance_period: BlockNumber, - _verify_sigs: VerifyDisputeSignatures, ) -> Option { None } @@ -371,14 +309,9 @@ where fn filter_dispute_data( set: DisputeStatementSet, post_conclusion_acceptance_period: T::BlockNumber, - verify_sigs: VerifyDisputeSignatures, ) -> Option { - pallet::Pallet::::filter_dispute_data( - &set, - post_conclusion_acceptance_period, - verify_sigs, - ) - .filter_statement_set(set) + pallet::Pallet::::filter_dispute_data(&set, post_conclusion_acceptance_period) + .filter_statement_set(set) } fn process_checked_multi_dispute_data( @@ -1005,7 +938,6 @@ impl Pallet { fn filter_dispute_data( set: &DisputeStatementSet, post_conclusion_acceptance_period: ::BlockNumber, - verify_sigs: VerifyDisputeSignatures, ) -> StatementSetFilter { let mut filter = StatementSetFilter::RemoveIndices(Vec::new()); @@ -1068,29 +1000,26 @@ impl Pallet { }, }; - // Avoid checking signatures repeatedly. - if let VerifyDisputeSignatures::Yes = verify_sigs { - // Check signature after attempting import. - // - // Since we expect that this filter will be applied to - // disputes long after they're concluded, 99% of the time, - // the duplicate filter above will catch them before needing - // to do a heavy signature check. - // - // This is only really important until the post-conclusion acceptance threshold - // is reached, and then no part of this loop will be hit. - if let Err(()) = check_signature( - &validator_public, - set.candidate_hash, - set.session, - statement, - signature, - ) { - importer.undo(undo); - filter.remove_index(i); - continue - } - } + // Check signature after attempting import. + // + // Since we expect that this filter will be applied to + // disputes long after they're concluded, 99% of the time, + // the duplicate filter above will catch them before needing + // to do a heavy signature check. + // + // This is only really important until the post-conclusion acceptance threshold + // is reached, and then no part of this loop will be hit. + if let Err(()) = check_signature( + &validator_public, + set.candidate_hash, + set.session, + statement, + signature, + ) { + importer.undo(undo); + filter.remove_index(i); + continue + }; } importer.finish() diff --git a/runtime/parachains/src/disputes/tests.rs b/runtime/parachains/src/disputes/tests.rs index 9ca3468083c8..eaf1bde12353 100644 --- a/runtime/parachains/src/disputes/tests.rs +++ b/runtime/parachains/src/disputes/tests.rs @@ -42,16 +42,41 @@ fn filter_dispute_set(stmts: MultiDisputeStatementSet) -> CheckedMultiDisputeSta stmts .into_iter() .filter_map(|set| { - let filter = Pallet::::filter_dispute_data( - &set, - post_conclusion_acceptance_period, - VerifyDisputeSignatures::Skip, - ); + let filter = + Pallet::::filter_dispute_data(&set, post_conclusion_acceptance_period); filter.filter_statement_set(set) }) .collect::>() } +/// Returns `true` if duplicate items were found, otherwise `false`. +/// +/// `check_equal(a: &T, b: &T)` _must_ return `true`, iff `a` and `b` are equal, otherwise `false. +/// The definition of _equal_ is to be defined by the user. +/// +/// Attention: Requires the input `iter` to be sorted, such that _equals_ +/// would be adjacent in respect whatever `check_equal` defines as equality! +fn contains_duplicates_in_sorted_iter< + 'a, + T: 'a, + I: 'a + IntoIterator, + C: 'static + FnMut(&T, &T) -> bool, +>( + iter: I, + mut check_equal: C, +) -> bool { + let mut iter = iter.into_iter(); + if let Some(mut previous) = iter.next() { + while let Some(current) = iter.next() { + if check_equal(previous, current) { + return true + } + previous = current; + } + } + return false +} + // All arguments for `initializer::on_new_session` type NewSession<'a> = ( bool, @@ -2061,7 +2086,6 @@ fn apply_filter_all>( if let Some(checked) = as DisputesHandler<::BlockNumber>>::filter_dispute_data( dispute_statement, post_conclusion_acceptance_period, - VerifyDisputeSignatures::Yes, ) { acc.push(checked); } @@ -2136,11 +2160,7 @@ fn filter_removes_duplicates_within_set() { let post_conclusion_acceptance_period = 10; let statements = as DisputesHandler< ::BlockNumber, - >>::filter_dispute_data( - statements, - post_conclusion_acceptance_period, - VerifyDisputeSignatures::Yes, - ); + >>::filter_dispute_data(statements, post_conclusion_acceptance_period); assert_eq!( statements, @@ -2441,144 +2461,6 @@ fn filter_removes_duplicate_statements_sets() { }) } -#[test] -fn assure_no_duplicate_statements_sets_are_fine() { - new_test_ext(Default::default()).execute_with(|| { - let v0 = ::Pair::generate().0; - let v1 = ::Pair::generate().0; - - run_to_block(3, |b| { - // a new session at each block - Some(( - true, - b, - vec![(&0, v0.public()), (&1, v1.public())], - Some(vec![(&0, v0.public()), (&1, v1.public())]), - )) - }); - - let candidate_hash_a = CandidateHash(sp_core::H256::repeat_byte(1)); - - let payload = ExplicitDisputeStatement { - valid: true, - candidate_hash: candidate_hash_a.clone(), - session: 1, - } - .signing_payload(); - - let payload_against = ExplicitDisputeStatement { - valid: false, - candidate_hash: candidate_hash_a.clone(), - session: 1, - } - .signing_payload(); - - let sig_a = v0.sign(&payload); - let sig_a_against = v1.sign(&payload_against); - - let statements = vec![ - ( - DisputeStatement::Valid(ValidDisputeStatementKind::Explicit), - ValidatorIndex(0), - sig_a.clone(), - ), - ( - DisputeStatement::Invalid(InvalidDisputeStatementKind::Explicit), - ValidatorIndex(1), - sig_a_against.clone(), - ), - ]; - - let sets = vec![ - DisputeStatementSet { - candidate_hash: candidate_hash_a.clone(), - session: 1, - statements: statements.clone(), - }, - DisputeStatementSet { - candidate_hash: candidate_hash_a.clone(), - session: 2, - statements: statements.clone(), - }, - ]; - - // `Err(())` indicates presence of duplicates - assert!( as DisputesHandler< - ::BlockNumber, - >>::assure_deduplicated_and_sorted(&sets) - .is_ok()); - }) -} - -#[test] -fn assure_detects_duplicate_statements_sets() { - new_test_ext(Default::default()).execute_with(|| { - let v0 = ::Pair::generate().0; - let v1 = ::Pair::generate().0; - - run_to_block(3, |b| { - // a new session at each block - Some(( - true, - b, - vec![(&0, v0.public()), (&1, v1.public())], - Some(vec![(&0, v0.public()), (&1, v1.public())]), - )) - }); - - let candidate_hash_a = CandidateHash(sp_core::H256::repeat_byte(1)); - - let payload = ExplicitDisputeStatement { - valid: true, - candidate_hash: candidate_hash_a.clone(), - session: 1, - } - .signing_payload(); - - let payload_against = ExplicitDisputeStatement { - valid: false, - candidate_hash: candidate_hash_a.clone(), - session: 1, - } - .signing_payload(); - - let sig_a = v0.sign(&payload); - let sig_a_against = v1.sign(&payload_against); - - let statements = vec![ - ( - DisputeStatement::Valid(ValidDisputeStatementKind::Explicit), - ValidatorIndex(0), - sig_a.clone(), - ), - ( - DisputeStatement::Invalid(InvalidDisputeStatementKind::Explicit), - ValidatorIndex(1), - sig_a_against.clone(), - ), - ]; - - let sets = vec![ - DisputeStatementSet { - candidate_hash: candidate_hash_a.clone(), - session: 1, - statements: statements.clone(), - }, - DisputeStatementSet { - candidate_hash: candidate_hash_a.clone(), - session: 1, - statements: statements.clone(), - }, - ]; - - // `Err(())` indicates presence of duplicates - assert!( as DisputesHandler< - ::BlockNumber, - >>::assure_deduplicated_and_sorted(&sets) - .is_err()); - }) -} - #[test] fn filter_ignores_single_sided() { new_test_ext(Default::default()).execute_with(|| { diff --git a/runtime/parachains/src/inclusion/mod.rs b/runtime/parachains/src/inclusion/mod.rs index 92cc98bdee69..3815aa45a4b1 100644 --- a/runtime/parachains/src/inclusion/mod.rs +++ b/runtime/parachains/src/inclusion/mod.rs @@ -23,7 +23,6 @@ use crate::{ configuration::{self, HostConfiguration}, disputes, dmp, hrmp, paras, - paras_inherent::DisputedBitfield, scheduler::CoreAssignment, shared, }; @@ -39,8 +38,8 @@ use parity_scale_codec::{Decode, Encode}; use primitives::{ supermajority_threshold, well_known_keys, AvailabilityBitfield, BackedCandidate, CandidateCommitments, CandidateDescriptor, CandidateHash, CandidateReceipt, - CommittedCandidateReceipt, CoreIndex, GroupIndex, Hash, HeadData, Id as ParaId, SigningContext, - UncheckedSignedAvailabilityBitfields, UpwardMessage, ValidatorId, ValidatorIndex, + CommittedCandidateReceipt, CoreIndex, GroupIndex, Hash, HeadData, Id as ParaId, + SignedAvailabilityBitfields, SigningContext, UpwardMessage, ValidatorId, ValidatorIndex, ValidityAttestation, }; use scale_info::TypeInfo; @@ -92,19 +91,6 @@ pub struct AvailabilityBitfieldRecord { submitted_at: N, // for accounting, as meaning of bits may change over time. } -/// Determines if all checks should be applied or if a subset was already completed -/// in a code path that will be executed afterwards or was already executed before. -#[derive(Clone, Copy, Encode, Decode, PartialEq, Eq, RuntimeDebug, TypeInfo)] -pub(crate) enum FullCheck { - /// Yes, do a full check, skip nothing. - Yes, - /// Skip a subset of checks that are already completed before. - /// - /// Attention: Should only be used when absolutely sure that the required - /// checks are completed before. - Skip, -} - /// A backed candidate pending availability. #[derive(Encode, Decode, PartialEq, TypeInfo)] #[cfg_attr(test, derive(Debug))] @@ -497,13 +483,17 @@ impl Pallet { /// Extract the freed cores based on cores that became available. /// + /// Bitfields are expected to have been sanitized already. E.g. via `sanitize_bitfields`! + /// /// Updates storage items `PendingAvailability` and `AvailabilityBitfields`. + /// + /// Returns a `Vec` of `CandidateHash`es and their respective `AvailabilityCore`s that became available, + /// and cores free. pub(crate) fn update_pending_availability_and_get_freed_cores( expected_bits: usize, validators: &[ValidatorId], - signed_bitfields: UncheckedSignedAvailabilityBitfields, + signed_bitfields: SignedAvailabilityBitfields, core_lookup: F, - enact_candidate: bool, ) -> Vec<(CoreIndex, CandidateHash)> where F: Fn(CoreIndex) -> Option, @@ -518,9 +508,8 @@ impl Pallet { let now = >::block_number(); for (checked_bitfield, validator_index) in signed_bitfields.into_iter().map(|signed_bitfield| { - // extracting unchecked data, since it's checked in `fn sanitize_bitfields` already. - let validator_idx = signed_bitfield.unchecked_validator_index(); - let checked_bitfield = signed_bitfield.unchecked_into_payload(); + let validator_idx = signed_bitfield.validator_index(); + let checked_bitfield = signed_bitfield.into_payload(); (checked_bitfield, validator_idx) }) { for (bit_idx, _) in checked_bitfield.0.iter().enumerate().filter(|(_, is_av)| **is_av) { @@ -575,20 +564,18 @@ impl Pallet { }, }; - if enact_candidate { - let receipt = CommittedCandidateReceipt { - descriptor: pending_availability.descriptor, - commitments, - }; - let _weight = Self::enact_candidate( - pending_availability.relay_parent_number, - receipt, - pending_availability.backers, - pending_availability.availability_votes, - pending_availability.core, - pending_availability.backing_group, - ); - } + let receipt = CommittedCandidateReceipt { + descriptor: pending_availability.descriptor, + commitments, + }; + let _weight = Self::enact_candidate( + pending_availability.relay_parent_number, + receipt, + pending_availability.backers, + pending_availability.availability_votes, + pending_availability.core, + pending_availability.backing_group, + ); freed_cores.push((pending_availability.core, pending_availability.hash)); } else { @@ -599,42 +586,6 @@ impl Pallet { freed_cores } - /// Process a set of incoming bitfields. - /// - /// Returns a `Vec` of `CandidateHash`es and their respective `AvailabilityCore`s that became available, - /// and cores free. - pub(crate) fn process_bitfields( - expected_bits: usize, - signed_bitfields: UncheckedSignedAvailabilityBitfields, - disputed_bitfield: DisputedBitfield, - core_lookup: impl Fn(CoreIndex) -> Option, - full_check: FullCheck, - ) -> Result, crate::inclusion::Error> { - let validators = shared::Pallet::::active_validator_keys(); - let session_index = shared::Pallet::::session_index(); - let parent_hash = frame_system::Pallet::::parent_hash(); - - let checked_bitfields = crate::paras_inherent::assure_sanity_bitfields::( - signed_bitfields, - disputed_bitfield, - expected_bits, - parent_hash, - session_index, - &validators[..], - full_check, - )?; - - let freed_cores = Self::update_pending_availability_and_get_freed_cores::<_>( - expected_bits, - &validators[..], - checked_bitfields, - core_lookup, - true, - ); - - Ok(freed_cores) - } - /// Process candidates that have been backed. Provide the relay storage root, a set of candidates /// and scheduled cores. /// diff --git a/runtime/parachains/src/inclusion/tests.rs b/runtime/parachains/src/inclusion/tests.rs index 28b7090ce9c9..d921c000b149 100644 --- a/runtime/parachains/src/inclusion/tests.rs +++ b/runtime/parachains/src/inclusion/tests.rs @@ -26,23 +26,20 @@ use crate::{ paras_inherent::DisputedBitfield, scheduler::AssignmentKind, }; -use assert_matches::assert_matches; +use primitives::{SignedAvailabilityBitfields, UncheckedSignedAvailabilityBitfields}; + use frame_support::assert_noop; use keyring::Sr25519Keyring; use parity_scale_codec::DecodeAll; use primitives::{ BlockNumber, CandidateCommitments, CandidateDescriptor, CollatorId, CompactStatement as Statement, Hash, SignedAvailabilityBitfield, SignedStatement, - UncheckedSignedAvailabilityBitfield, ValidationCode, ValidatorId, ValidityAttestation, - PARACHAIN_KEY_TYPE_ID, + ValidationCode, ValidatorId, ValidityAttestation, PARACHAIN_KEY_TYPE_ID, }; use sc_keystore::LocalKeystore; use sp_keystore::{Keystore, KeystorePtr}; use std::sync::Arc; -use test_helpers::{ - dummy_candidate_receipt, dummy_collator, dummy_collator_signature, dummy_hash, - dummy_validation_code, -}; +use test_helpers::{dummy_collator, dummy_collator_signature, dummy_validation_code}; fn default_config() -> HostConfiguration { let mut config = HostConfiguration::default(); @@ -313,6 +310,41 @@ pub(crate) fn make_vdata_hash(para_id: ParaId) -> Option { Some(persisted_validation_data.hash()) } +/// Wrapper around `sanitize_bitfields` with less parameters. +fn simple_sanitize_bitfields( + unchecked_bitfields: UncheckedSignedAvailabilityBitfields, + disputed_bitfield: DisputedBitfield, + expected_bits: usize, +) -> SignedAvailabilityBitfields { + let parent_hash = frame_system::Pallet::::parent_hash(); + let session_index = shared::Pallet::::session_index(); + let validators = shared::Pallet::::active_validator_keys(); + + crate::paras_inherent::sanitize_bitfields::( + unchecked_bitfields, + disputed_bitfield, + expected_bits, + parent_hash, + session_index, + &validators, + ) +} +/// Process a set of already sanitized bitfields. +pub(crate) fn process_bitfields( + expected_bits: usize, + signed_bitfields: SignedAvailabilityBitfields, + core_lookup: impl Fn(CoreIndex) -> Option, +) -> Vec<(CoreIndex, CandidateHash)> { + let validators = shared::Pallet::::active_validator_keys(); + + ParaInclusion::update_pending_availability_and_get_freed_cores::<_>( + expected_bits, + &validators[..], + signed_bitfields, + core_lookup, + ) +} + #[test] fn collect_pending_cleans_up_pending() { let chain_a = ParaId::from(1_u32); @@ -419,26 +451,6 @@ fn bitfield_checks() { _ => panic!("out of bounds for testing"), }; - // mark all candidates as pending availability - let set_pending_av = || { - for (p_id, _) in paras { - let receipt = dummy_candidate_receipt(dummy_hash()); - PendingAvailability::::insert( - p_id, - CandidatePendingAvailability { - availability_votes: default_availability_votes(), - core: CoreIndex(0), - hash: receipt.hash(), - descriptor: receipt.descriptor, - backers: BitVec::default(), - relay_parent_number: BlockNumber::from(0_u32), - backed_in_number: BlockNumber::from(0_u32), - backing_group: GroupIndex(0), - }, - ) - } - }; - // too many bits in bitfield { let mut bare_bitfield = default_bitfield(); @@ -451,15 +463,15 @@ fn bitfield_checks() { &signing_context, ); - assert_matches!( - ParaInclusion::process_bitfields( - expected_bits(), - vec![signed.into()], - DisputedBitfield::zeros(expected_bits()), - &core_lookup, - FullCheck::Yes, - ), - Err(Error::::WrongBitfieldSize) + let checked_bitfields = simple_sanitize_bitfields( + vec![signed.into()], + DisputedBitfield::zeros(expected_bits()), + expected_bits(), + ); + assert_eq!( + checked_bitfields.len(), + 0, + "Bitfield has wrong size, it should have been filtered." ); } @@ -474,126 +486,16 @@ fn bitfield_checks() { &signing_context, ); - assert_matches!( - ParaInclusion::process_bitfields( - expected_bits() + 1, - vec![signed.into()], - DisputedBitfield::zeros(expected_bits()), - &core_lookup, - FullCheck::Yes, - ), - Err(Error::::WrongBitfieldSize) - ); - } - - // duplicate. - { - set_pending_av.clone()(); - let back_core_0_bitfield = { - let mut b = default_bitfield(); - b.0.set(0, true); - b - }; - let signed: UncheckedSignedAvailabilityBitfield = sign_bitfield( - &keystore, - &validators[0], - ValidatorIndex(0), - back_core_0_bitfield, - &signing_context, - ) - .into(); - - assert_eq!( - >::get(chain_a) - .unwrap() - .availability_votes - .count_ones(), - 0 - ); - - // the threshold to free a core is 4 availability votes, but we only expect 1 valid - // valid bitfield. - assert_matches!( - ParaInclusion::process_bitfields( - expected_bits(), - vec![signed.clone(), signed], - DisputedBitfield::zeros(expected_bits()), - &core_lookup, - FullCheck::Yes, - ), - Err(Error::::UnsortedOrDuplicateValidatorIndices) - ); - - assert_eq!( - >::get(chain_a) - .unwrap() - .availability_votes - .count_ones(), - 0 - ); - - // clean up - #[allow(deprecated)] - PendingAvailability::::remove_all(None); - } - - // out of order. - { - set_pending_av.clone()(); - let back_core_0_bitfield = { - let mut b = default_bitfield(); - b.0.set(0, true); - b - }; - let signed_0 = sign_bitfield( - &keystore, - &validators[0], - ValidatorIndex(0), - back_core_0_bitfield.clone(), - &signing_context, - ) - .into(); - - let signed_1 = sign_bitfield( - &keystore, - &validators[1], - ValidatorIndex(1), - back_core_0_bitfield, - &signing_context, - ) - .into(); - - assert_eq!( - >::get(chain_a) - .unwrap() - .availability_votes - .count_ones(), - 0 - ); - - // the threshold to free a core is 4 availability votes, but we only expect 1 valid - // valid bitfield because `signed_0` will get skipped for being out of order. - assert_matches!( - ParaInclusion::process_bitfields( - expected_bits(), - vec![signed_1, signed_0], - DisputedBitfield::zeros(expected_bits()), - &core_lookup, - FullCheck::Yes, - ), - Err(Error::::UnsortedOrDuplicateValidatorIndices) + let checked_bitfields = simple_sanitize_bitfields( + vec![signed.into()], + DisputedBitfield::zeros(expected_bits()), + expected_bits() + 1, ); - assert_eq!( - >::get(chain_a) - .unwrap() - .availability_votes - .count_ones(), - 0 + checked_bitfields.len(), + 0, + "Bitfield has wrong size, it should have been filtered." ); - - #[allow(deprecated)] - PendingAvailability::::remove_all(None); } // non-pending bit set. @@ -608,13 +510,17 @@ fn bitfield_checks() { &signing_context, ); - assert_matches!(ParaInclusion::process_bitfields( - expected_bits(), + // the threshold to free a core is 4 availability votes, but we only expect 1 valid + // valid bitfield because `signed_0` will get skipped for being out of order. + let checked_bitfields = simple_sanitize_bitfields( vec![signed.into()], DisputedBitfield::zeros(expected_bits()), - &core_lookup, - FullCheck::Yes, - ), Ok(x) => { assert!(x.is_empty())}); + expected_bits(), + ); + assert_eq!(checked_bitfields.len(), 1, "No bitfields should have been filtered!"); + + let x = process_bitfields(expected_bits(), checked_bitfields, core_lookup); + assert!(x.is_empty(), "No core should be freed."); } // empty bitfield signed: always ok, but kind of useless. @@ -627,14 +533,15 @@ fn bitfield_checks() { bare_bitfield, &signing_context, ); - - assert_matches!(ParaInclusion::process_bitfields( - expected_bits(), + let checked_bitfields = simple_sanitize_bitfields( vec![signed.into()], DisputedBitfield::zeros(expected_bits()), - &core_lookup, - FullCheck::Yes, - ), Ok(x) => { assert!(x.is_empty())}); + expected_bits(), + ); + assert_eq!(checked_bitfields.len(), 1, "No bitfields should have been filtered!"); + + let x = process_bitfields(expected_bits(), checked_bitfields, core_lookup); + assert!(x.is_empty(), "No core should be freed."); } // bitfield signed with pending bit signed. @@ -668,13 +575,15 @@ fn bitfield_checks() { &signing_context, ); - assert_matches!(ParaInclusion::process_bitfields( - expected_bits(), + let checked_bitfields = simple_sanitize_bitfields( vec![signed.into()], DisputedBitfield::zeros(expected_bits()), - &core_lookup, - FullCheck::Yes, - ), Ok(v) => { assert!(v.is_empty())} ); + expected_bits(), + ); + assert_eq!(checked_bitfields.len(), 1, "No bitfields should have been filtered!"); + + let x = process_bitfields(expected_bits(), checked_bitfields, core_lookup); + assert!(x.is_empty(), "No core should be freed."); >::remove(chain_a); PendingAvailabilityCommitments::::remove(chain_a); @@ -710,14 +619,16 @@ fn bitfield_checks() { &signing_context, ); - // no core is freed - assert_matches!(ParaInclusion::process_bitfields( - expected_bits(), + let checked_bitfields = simple_sanitize_bitfields( vec![signed.into()], DisputedBitfield::zeros(expected_bits()), - &core_lookup, - FullCheck::Yes, - ), Ok(v) => { assert!(v.is_empty()) }); + expected_bits(), + ); + assert_eq!(checked_bitfields.len(), 1, "No bitfields should have been filtered!"); + + let x = process_bitfields(expected_bits(), checked_bitfields, core_lookup); + // no core is freed + assert!(x.is_empty(), "No core should be freed."); } }); } @@ -862,21 +773,19 @@ fn supermajority_bitfields_trigger_availability() { .into(), ) }) - .collect(); + .collect::>(); - // only chain A's core is freed. - assert_matches!( - ParaInclusion::process_bitfields( - expected_bits(), - signed_bitfields, - DisputedBitfield::zeros(expected_bits()), - &core_lookup, - FullCheck::Yes, - ), - Ok(v) => { - assert_eq!(vec![(CoreIndex(0), candidate_a.hash())], v); - } + let old_len = signed_bitfields.len(); + let checked_bitfields = simple_sanitize_bitfields( + signed_bitfields, + DisputedBitfield::zeros(expected_bits()), + expected_bits(), ); + assert_eq!(checked_bitfields.len(), old_len, "No bitfields should have been filtered!"); + + // only chain A's core is freed. + let v = process_bitfields(expected_bits(), checked_bitfields, core_lookup); + assert_eq!(vec![(CoreIndex(0), candidate_a.hash())], v); // chain A had 4 signing off, which is >= threshold. // chain B has 3 signing off, which is < threshold. diff --git a/runtime/parachains/src/metrics.rs b/runtime/parachains/src/metrics.rs index 9c6cc344faca..023bd09f83a8 100644 --- a/runtime/parachains/src/metrics.rs +++ b/runtime/parachains/src/metrics.rs @@ -20,22 +20,20 @@ use polkadot_runtime_metrics::{Counter, CounterVec, Histogram}; use primitives::metric_definitions::{ PARACHAIN_CREATE_INHERENT_BITFIELDS_SIGNATURE_CHECKS, PARACHAIN_INHERENT_DATA_BITFIELDS_PROCESSED, PARACHAIN_INHERENT_DATA_CANDIDATES_PROCESSED, - PARACHAIN_INHERENT_DATA_DISPUTE_SETS_INCLUDED, PARACHAIN_INHERENT_DATA_DISPUTE_SETS_PROCESSED, - PARACHAIN_INHERENT_DATA_WEIGHT, PARACHAIN_VERIFY_DISPUTE_SIGNATURE, + PARACHAIN_INHERENT_DATA_DISPUTE_SETS_PROCESSED, PARACHAIN_INHERENT_DATA_WEIGHT, + PARACHAIN_VERIFY_DISPUTE_SIGNATURE, }; pub struct Metrics { /// Samples inherent data weight. inherent_data_weight: CounterVec, - /// Counts how many inherent bitfields processed in `enter_inner`. + /// Counts how many inherent bitfields processed in `process_inherent_data`. bitfields_processed: Counter, - /// Counts how many parachain candidates processed in `enter_inner`. + /// Counts how many parachain candidates processed in `process_inherent_data`. candidates_processed: CounterVec, - /// Counts dispute statements sets processed in `enter_inner`. + /// Counts dispute statements sets processed in `process_inherent_data`. dispute_sets_processed: CounterVec, - /// Counts dispute statements sets included in `enter_inner`. - disputes_included: Counter, - /// Counts bitfield signature checks in `enter_inner`. + /// Counts bitfield signature checks in `process_inherent_data`. bitfields_signature_checks: CounterVec, /// Histogram with the time spent checking a validator signature of a dispute statement @@ -68,22 +66,17 @@ impl Metrics { self.candidates_processed.with_label_values(&["sanitized"]).inc_by(value); } - /// Increment the total number of parachain candidates received in `enter_inner`. + /// Increment the total number of parachain candidates received in `process_inherent_data`. pub fn on_candidates_processed_total(&self, value: u64) { self.candidates_processed.with_label_values(&["total"]).inc_by(value); } /// Sample the relay chain freeze events causing runtime to not process candidates in - /// `enter_inner`. + /// `process_inherent_data`. pub fn on_relay_chain_freeze(&self) { self.dispute_sets_processed.with_label_values(&["frozen"]).inc(); } - /// Sample the number of dispute sets processed from the current session. - pub fn on_current_session_disputes_processed(&self, value: u64) { - self.dispute_sets_processed.with_label_values(&["current"]).inc_by(value); - } - /// Increment the number of disputes that have concluded as invalid. pub fn on_disputes_concluded_invalid(&self, value: u64) { self.dispute_sets_processed @@ -96,10 +89,6 @@ impl Metrics { self.dispute_sets_processed.with_label_values(&["imported"]).inc_by(value); } - pub fn on_disputes_included(&self, value: u64) { - self.disputes_included.inc_by(value); - } - pub fn on_valid_bitfield_signature(&self) { self.bitfields_signature_checks.with_label_values(&["valid"]).inc_by(1); } @@ -118,7 +107,6 @@ pub const METRICS: Metrics = Metrics { bitfields_processed: Counter::new(PARACHAIN_INHERENT_DATA_BITFIELDS_PROCESSED), candidates_processed: CounterVec::new(PARACHAIN_INHERENT_DATA_CANDIDATES_PROCESSED), dispute_sets_processed: CounterVec::new(PARACHAIN_INHERENT_DATA_DISPUTE_SETS_PROCESSED), - disputes_included: Counter::new(PARACHAIN_INHERENT_DATA_DISPUTE_SETS_INCLUDED), bitfields_signature_checks: CounterVec::new( PARACHAIN_CREATE_INHERENT_BITFIELDS_SIGNATURE_CHECKS, ), diff --git a/runtime/parachains/src/paras_inherent/mod.rs b/runtime/parachains/src/paras_inherent/mod.rs index e71b5e9cb8a6..f20af3ba7d64 100644 --- a/runtime/parachains/src/paras_inherent/mod.rs +++ b/runtime/parachains/src/paras_inherent/mod.rs @@ -23,9 +23,9 @@ use crate::{ configuration, - disputes::{DisputesHandler, VerifyDisputeSignatures}, + disputes::DisputesHandler, inclusion, - inclusion::{CandidateCheckContext, FullCheck}, + inclusion::CandidateCheckContext, initializer, metrics::METRICS, scheduler::{self, CoreAssignment, FreedReason}, @@ -33,6 +33,7 @@ use crate::{ }; use bitvec::prelude::BitVec; use frame_support::{ + dispatch::{DispatchErrorWithPostInfo, PostDispatchInfo}, inherent::{InherentData, InherentIdentifier, MakeFatalError, ProvideInherent}, pallet_prelude::*, traits::Randomness, @@ -43,7 +44,7 @@ use primitives::{ BackedCandidate, CandidateHash, CandidateReceipt, CheckedDisputeStatementSet, CheckedMultiDisputeStatementSet, CoreIndex, DisputeStatementSet, InherentData as ParachainsInherentData, MultiDisputeStatementSet, ScrapedOnChainVotes, - SessionIndex, SigningContext, UncheckedSignedAvailabilityBitfield, + SessionIndex, SignedAvailabilityBitfields, SigningContext, UncheckedSignedAvailabilityBitfield, UncheckedSignedAvailabilityBitfields, ValidatorId, ValidatorIndex, ValidityAttestation, PARACHAINS_INHERENT_IDENTIFIER, }; @@ -209,32 +210,6 @@ pub mod pallet { fn create_inherent(data: &InherentData) -> Option { let inherent_data = Self::create_inherent_inner(data)?; - // Sanity check: session changes can invalidate an inherent, - // and we _really_ don't want that to happen. - // See - - // Calling `Self::enter` here is a safe-guard, to avoid any discrepancy between on-chain checks - // (`enter`) and the off-chain checks by the block author (this function). Once we are confident - // in all the logic in this module this check should be removed to optimize performance. - - let inherent_data = match Self::enter_inner(inherent_data.clone(), FullCheck::Skip) { - Ok(_) => inherent_data, - Err(err) => { - log::error!( - target: LOG_TARGET, - "dropping paras inherent data because they produced \ - an invalid paras inherent: {:?}", - err.error, - ); - - ParachainsInherentData { - bitfields: Vec::new(), - backed_candidates: Vec::new(), - disputes: Vec::new(), - parent_header: inherent_data.parent_header, - } - }, - }; Some(Call::enter { data: inherent_data }) } @@ -294,36 +269,69 @@ pub mod pallet { ensure!(!Included::::exists(), Error::::TooManyInclusionInherents); Included::::set(Some(())); - Self::enter_inner(data, FullCheck::Yes) + Self::process_inherent_data(data).map(|(_processed, post_info)| post_info) } } } impl Pallet { - pub(crate) fn enter_inner( + /// Create the `ParachainsInherentData` that gets passed to [`Self::enter`] in [`Self::create_inherent`]. + /// This code is pulled out of [`Self::create_inherent`] so it can be unit tested. + fn create_inherent_inner(data: &InherentData) -> Option> { + let parachains_inherent_data = match data.get_data(&Self::INHERENT_IDENTIFIER) { + Ok(Some(d)) => d, + Ok(None) => return None, + Err(_) => { + log::warn!(target: LOG_TARGET, "ParachainsInherentData failed to decode"); + return None + }, + }; + match Self::process_inherent_data(parachains_inherent_data) { + Ok((processed, _)) => Some(processed), + Err(err) => { + log::warn!(target: LOG_TARGET, "Processing inherent data failed: {:?}", err); + None + }, + } + } + + /// Process inherent data. + /// + /// The given inherent data is processed and state is altered accordingly. If any data could + /// not be applied (inconsitencies, weight limit, ...) it is removed. + /// + /// This function can both be called on block creation in `create_inherent` and on block import + /// in `enter`. The mutation of `data` is only useful in the `create_inherent` case as it + /// avoids overweight blocks for example. + /// + /// Returns: Result containing processed inherent data and weight, the processed inherent would + /// consume. + fn process_inherent_data( data: ParachainsInherentData, - full_check: FullCheck, - ) -> DispatchResultWithPostInfo { + ) -> sp_std::result::Result< + (ParachainsInherentData, PostDispatchInfo), + DispatchErrorWithPostInfo, + > { + #[cfg(feature = "runtime-metrics")] + sp_io::init_tracing(); + let ParachainsInherentData { - bitfields: mut signed_bitfields, + mut bitfields, mut backed_candidates, parent_header, mut disputes, } = data; - #[cfg(feature = "runtime-metrics")] - sp_io::init_tracing(); log::debug!( target: LOG_TARGET, - "[enter_inner] parent_header={:?} bitfields.len(): {}, backed_candidates.len(): {}, disputes.len(): {}", - parent_header.hash(), - signed_bitfields.len(), + "[process_inherent_data] bitfields.len(): {}, backed_candidates.len(): {}, disputes.len() {}", + bitfields.len(), backed_candidates.len(), disputes.len() ); - // Check that the submitted parent header indeed corresponds to the previous block hash. let parent_hash = >::parent_hash(); + ensure!( parent_header.hash().as_ref() == parent_hash.as_ref(), Error::::InvalidParentHeader, @@ -331,157 +339,152 @@ impl Pallet { let now = >::block_number(); - let mut candidates_weight = backed_candidates_weight::(&backed_candidates); - let mut bitfields_weight = signed_bitfields_weight::(signed_bitfields.len()); + let candidates_weight = backed_candidates_weight::(&backed_candidates); + let bitfields_weight = signed_bitfields_weight::(bitfields.len()); let disputes_weight = multi_dispute_statement_sets_weight::(&disputes); - let current_session = >::session_index(); - - let max_block_weight = ::BlockWeights::get().max_block; - METRICS .on_before_filter((candidates_weight + bitfields_weight + disputes_weight).ref_time()); - T::DisputesHandler::assure_deduplicated_and_sorted(&mut disputes) - .map_err(|_e| Error::::DisputeStatementsUnsortedOrDuplicates)?; - - let (checked_disputes, total_consumed_weight) = { - // Obtain config params.. - let config = >::config(); - let post_conclusion_acceptance_period = - config.dispute_post_conclusion_acceptance_period; + let current_session = >::session_index(); + let expected_bits = >::availability_cores().len(); + let validator_public = shared::Pallet::::active_validator_keys(); + let max_block_weight = ::BlockWeights::get().max_block; - let verify_dispute_sigs = if let FullCheck::Yes = full_check { - VerifyDisputeSignatures::Yes - } else { - VerifyDisputeSignatures::Skip - }; + let entropy = compute_entropy::(parent_hash); + let mut rng = rand_chacha::ChaChaRng::from_seed(entropy.into()); - // .. and prepare a helper closure. - let dispute_set_validity_check = move |set| { - T::DisputesHandler::filter_dispute_data( - set, - post_conclusion_acceptance_period, - verify_dispute_sigs, - ) - }; + // Filter out duplicates and continue. + if let Err(()) = T::DisputesHandler::deduplicate_and_sort_dispute_data(&mut disputes) { + log::debug!(target: LOG_TARGET, "Found duplicate statement sets, retaining the first"); + } - // In case of an overweight block, consume up to the entire block weight - // in disputes, since we will never process anything else, but invalidate - // the block. It's still reasonable to protect against a massive amount of disputes. - if candidates_weight - .saturating_add(bitfields_weight) - .saturating_add(disputes_weight) - .any_gt(max_block_weight) - { - log::warn!("Overweight para inherent data reached the runtime {:?}", parent_hash); - backed_candidates.clear(); - candidates_weight = Weight::zero(); - signed_bitfields.clear(); - bitfields_weight = Weight::zero(); - } + let config = >::config(); + let post_conclusion_acceptance_period = config.dispute_post_conclusion_acceptance_period; - let entropy = compute_entropy::(parent_hash); - let mut rng = rand_chacha::ChaChaRng::from_seed(entropy.into()); + let dispute_statement_set_valid = move |set: DisputeStatementSet| { + T::DisputesHandler::filter_dispute_data(set, post_conclusion_acceptance_period) + }; - let (checked_disputes, checked_disputes_weight) = limit_and_sanitize_disputes::( + // Limit the disputes first, since the following statements depend on the votes include here. + let (checked_disputes_sets, checked_disputes_sets_consumed_weight) = + limit_and_sanitize_disputes::( disputes, - &dispute_set_validity_check, + dispute_statement_set_valid, max_block_weight, &mut rng, ); - ( - checked_disputes, - checked_disputes_weight - .saturating_add(candidates_weight) - .saturating_add(bitfields_weight), - ) - }; - let expected_bits = >::availability_cores().len(); + // Assure the maximum block weight is adhered, by limiting bitfields and backed + // candidates. Dispute statement sets were already limited before. + let non_disputes_weight = apply_weight_limit::( + &mut backed_candidates, + &mut bitfields, + max_block_weight.saturating_sub(checked_disputes_sets_consumed_weight), + &mut rng, + ); - // Handle disputes logic. - let disputed_bitfield = { - let new_current_dispute_sets: Vec<_> = checked_disputes - .iter() - .map(AsRef::as_ref) - .filter(|s| s.session == current_session) - .map(|s| (s.session, s.candidate_hash)) - .collect(); + let full_weight = non_disputes_weight.saturating_add(checked_disputes_sets_consumed_weight); - // Note that `process_checked_multi_dispute_data` will iterate and import each - // dispute; so the input here must be reasonably bounded, - // which is guaranteed by the checks and weight limitation above. - let _ = T::DisputesHandler::process_checked_multi_dispute_data(&checked_disputes)?; - METRICS.on_disputes_imported(checked_disputes.len() as u64); + METRICS.on_after_filter(full_weight.ref_time()); - if T::DisputesHandler::is_frozen() { - // Relay chain freeze, at this point we will not include any parachain blocks. - METRICS.on_relay_chain_freeze(); + if full_weight.any_gt(max_block_weight) { + log::warn!(target: LOG_TARGET, "Post weight limiting weight is still too large."); + } - // The relay chain we are currently on is invalid. Proceed no further on parachains. - return Ok(Some(total_consumed_weight).into()) - } + // Note that `process_checked_multi_dispute_data` will iterate and import each + // dispute; so the input here must be reasonably bounded, + // which is guaranteed by the checks and weight limitation above. + // We don't care about fresh or not disputes + // this writes them to storage, so let's query it via those means + // if this fails for whatever reason, that's ok. + if let Err(e) = + T::DisputesHandler::process_checked_multi_dispute_data(&checked_disputes_sets) + { + log::warn!(target: LOG_TARGET, "MultiDisputesData failed to update: {:?}", e); + }; + METRICS.on_disputes_imported(checked_disputes_sets.len() as u64); + + set_scrapable_on_chain_disputes::(current_session, checked_disputes_sets.clone()); + + if T::DisputesHandler::is_frozen() { + // Relay chain freeze, at this point we will not include any parachain blocks. + METRICS.on_relay_chain_freeze(); - // Process the dispute sets of the current session. - METRICS.on_current_session_disputes_processed(new_current_dispute_sets.len() as u64); - - let mut freed_disputed = if !new_current_dispute_sets.is_empty() { - let concluded_invalid_disputes = new_current_dispute_sets - .iter() - .filter(|(session, candidate)| { - T::DisputesHandler::concluded_invalid(*session, *candidate) - }) - .map(|(_, candidate)| *candidate) - .collect::>(); - - // Count invalid dispute sets. - METRICS.on_disputes_concluded_invalid(concluded_invalid_disputes.len() as u64); - - let freed_disputed: Vec<_> = - >::collect_disputed(&concluded_invalid_disputes) - .into_iter() - .map(|core| (core, FreedReason::Concluded)) - .collect(); - - freed_disputed - } else { - Vec::new() + let disputes = checked_disputes_sets + .into_iter() + .map(|checked| checked.into()) + .collect::>(); + let processed = ParachainsInherentData { + bitfields: Vec::new(), + backed_candidates: Vec::new(), + disputes, + parent_header, }; - // Create a bit index from the set of core indices where each index corresponds to - // a core index that was freed due to a dispute. - // - // I.e. 010100 would indicate, the candidates on Core 1 and 3 would be disputed. - let disputed_bitfield = create_disputed_bitfield( - expected_bits, - freed_disputed.iter().map(|(core_index, _)| core_index), - ); + // The relay chain we are currently on is invalid. Proceed no further on parachains. + return Ok((processed, Some(checked_disputes_sets_consumed_weight).into())) + } - if !freed_disputed.is_empty() { - // unstable sort is fine, because core indices are unique - // i.e. the same candidate can't occupy 2 cores at once. - freed_disputed.sort_unstable_by_key(|pair| pair.0); // sort by core index - >::free_cores(freed_disputed); - } + // Contains the disputes that are concluded in the current session only, + // since these are the only ones that are relevant for the occupied cores + // and lightens the load on `collect_disputed` significantly. + // Cores can't be occupied with candidates of the previous sessions, and only + // things with new votes can have just concluded. We only need to collect + // cores with disputes that conclude just now, because disputes that + // concluded longer ago have already had any corresponding cores cleaned up. + let current_concluded_invalid_disputes = checked_disputes_sets + .iter() + .map(AsRef::as_ref) + .filter(|dss| dss.session == current_session) + .map(|dss| (dss.session, dss.candidate_hash)) + .filter(|(session, candidate)| { + ::DisputesHandler::concluded_invalid(*session, *candidate) + }) + .map(|(_session, candidate)| candidate) + .collect::>(); - disputed_bitfield - }; + let mut freed_disputed: Vec<_> = + >::collect_disputed(¤t_concluded_invalid_disputes) + .into_iter() + .map(|core| (core, FreedReason::Concluded)) + .collect(); - METRICS.on_bitfields_processed(signed_bitfields.len() as u64); + // Create a bit index from the set of core indices where each index corresponds to + // a core index that was freed due to a dispute. + // + // I.e. 010100 would indicate, the candidates on Core 1 and 3 would be disputed. + let disputed_bitfield = create_disputed_bitfield( + expected_bits, + freed_disputed.iter().map(|(core_index, _)| core_index), + ); + + if !freed_disputed.is_empty() { + // unstable sort is fine, because core indices are unique + // i.e. the same candidate can't occupy 2 cores at once. + freed_disputed.sort_unstable_by_key(|pair| pair.0); // sort by core index + >::free_cores(freed_disputed.clone()); + } + + let bitfields = sanitize_bitfields::( + bitfields, + disputed_bitfield, + expected_bits, + parent_hash, + current_session, + &validator_public[..], + ); + METRICS.on_bitfields_processed(bitfields.len() as u64); // Process new availability bitfields, yielding any availability cores whose // work has now concluded. - let freed_concluded = >::process_bitfields( - expected_bits, - signed_bitfields, - disputed_bitfield, - >::core_para, - full_check, - )?; - // any error in the previous function will cause an invalid block and not include - // the `DisputeState` to be written to the storage, hence this is ok. - set_scrapable_on_chain_disputes::(current_session, checked_disputes.clone()); + let freed_concluded = + >::update_pending_availability_and_get_freed_cores::<_>( + expected_bits, + &validator_public[..], + bitfields.clone(), + >::core_para, + ); // Inform the disputes module of all included candidates. for (_, candidate_hash) in &freed_concluded { @@ -489,23 +492,39 @@ impl Pallet { } METRICS.on_candidates_included(freed_concluded.len() as u64); + let freed = collect_all_freed_cores::(freed_concluded.iter().cloned()); >::clear(); >::schedule(freed, now); + let scheduled = >::scheduled(); + + let relay_parent_number = now - One::one(); + let parent_storage_root = *parent_header.state_root(); + + let check_ctx = CandidateCheckContext::::new(now, relay_parent_number); + METRICS.on_candidates_processed_total(backed_candidates.len() as u64); - let scheduled = >::scheduled(); - assure_sanity_backed_candidates::( + let backed_candidates = sanitize_backed_candidates::( parent_hash, - &backed_candidates, - move |_candidate_index: usize, backed_candidate: &BackedCandidate| -> bool { - ::DisputesHandler::concluded_invalid(current_session, backed_candidate.hash()) - // `fn process_candidates` does the verification checks + backed_candidates, + move |candidate_idx: usize, + backed_candidate: &BackedCandidate<::Hash>| + -> bool { + // never include a concluded-invalid candidate + current_concluded_invalid_disputes.contains(&backed_candidate.hash()) || + // Instead of checking the candidates with code upgrades twice + // move the checking up here and skip it in the training wheels fallback. + // That way we avoid possible duplicate checks while assuring all + // backed candidates fine to pass on. + check_ctx + .verify_backed_candidate(parent_hash, parent_storage_root, candidate_idx, backed_candidate) + .is_err() }, &scheduled[..], - )?; + ); METRICS.on_candidates_sanitized(backed_candidates.len() as u64); @@ -516,247 +535,28 @@ impl Pallet { candidate_receipt_with_backing_validator_indices, } = >::process_candidates( parent_storage_root, - backed_candidates, + backed_candidates.clone(), scheduled, >::group_validators, )?; - - METRICS.on_disputes_included(checked_disputes.len() as u64); + // Note which of the scheduled cores were actually occupied by a backed candidate. + >::occupied(&occupied); set_scrapable_on_chain_backings::( current_session, candidate_receipt_with_backing_validator_indices, ); - // Note which of the scheduled cores were actually occupied by a backed candidate. - >::occupied(&occupied); - - METRICS.on_after_filter(total_consumed_weight.ref_time()); - - Ok(Some(total_consumed_weight).into()) - } -} - -impl Pallet { - /// Create the `ParachainsInherentData` that gets passed to [`Self::enter`] in [`Self::create_inherent`]. - /// This code is pulled out of [`Self::create_inherent`] so it can be unit tested. - fn create_inherent_inner(data: &InherentData) -> Option> { - let ParachainsInherentData:: { - bitfields, - backed_candidates, - mut disputes, - parent_header, - } = match data.get_data(&Self::INHERENT_IDENTIFIER) { - Ok(Some(d)) => d, - Ok(None) => return None, - Err(_) => { - log::warn!(target: LOG_TARGET, "ParachainsInherentData failed to decode"); - return None - }, - }; - - log::debug!( - target: LOG_TARGET, - "[create_inherent_inner] bitfields.len(): {}, backed_candidates.len(): {}, disputes.len() {}", - bitfields.len(), - backed_candidates.len(), - disputes.len() - ); - - let parent_hash = >::parent_hash(); - - if parent_hash != parent_header.hash() { - log::warn!( - target: LOG_TARGET, - "ParachainsInherentData references a different parent header hash than frame" - ); - return None - } - - let current_session = >::session_index(); - let expected_bits = >::availability_cores().len(); - let validator_public = shared::Pallet::::active_validator_keys(); - let max_block_weight = ::BlockWeights::get().max_block; - - let entropy = compute_entropy::(parent_hash); - let mut rng = rand_chacha::ChaChaRng::from_seed(entropy.into()); - - // Filter out duplicates and continue. - if let Err(_) = T::DisputesHandler::deduplicate_and_sort_dispute_data(&mut disputes) { - log::debug!(target: LOG_TARGET, "Found duplicate statement sets, retaining the first"); - } - - let config = >::config(); - let post_conclusion_acceptance_period = config.dispute_post_conclusion_acceptance_period; - - // TODO: Better if we can convert this to `with_transactional` and handle an error if - // too many transactional layers are spawned. - let ( - mut backed_candidates, - mut bitfields, - checked_disputes_sets, - checked_disputes_sets_consumed_weight, - ) = frame_support::storage::with_transaction_unchecked(|| { - let dispute_statement_set_valid = move |set: DisputeStatementSet| { - T::DisputesHandler::filter_dispute_data( - set, - post_conclusion_acceptance_period, - // `DisputeCoordinator` on the node side only forwards - // valid dispute statement sets and hence this does not - // need to be checked. - VerifyDisputeSignatures::Skip, - ) - }; - - // Limit the disputes first, since the following statements depend on the votes include here. - let (checked_disputes_sets, checked_disputes_sets_consumed_weight) = - limit_and_sanitize_disputes::( - disputes, - dispute_statement_set_valid, - max_block_weight, - &mut rng, - ); - - // we don't care about fresh or not disputes - // this writes them to storage, so let's query it via those means - // if this fails for whatever reason, that's ok - let _ = T::DisputesHandler::process_checked_multi_dispute_data(&checked_disputes_sets) - .map_err(|e| { - log::warn!(target: LOG_TARGET, "MultiDisputesData failed to update: {:?}", e); - e - }); - - // Contains the disputes that are concluded in the current session only, - // since these are the only ones that are relevant for the occupied cores - // and lightens the load on `collect_disputed` significantly. - // Cores can't be occupied with candidates of the previous sessions, and only - // things with new votes can have just concluded. We only need to collect - // cores with disputes that conclude just now, because disputes that - // concluded longer ago have already had any corresponding cores cleaned up. - let current_concluded_invalid_disputes = checked_disputes_sets - .iter() - .map(AsRef::as_ref) - .filter(|dss| dss.session == current_session) - .map(|dss| (dss.session, dss.candidate_hash)) - .filter(|(session, candidate)| { - ::DisputesHandler::concluded_invalid(*session, *candidate) - }) - .map(|(_session, candidate)| candidate) - .collect::>(); - - // All concluded invalid disputes, that are relevant for the set of candidates - // the inherent provided. - let concluded_invalid_disputes = backed_candidates - .iter() - .map(|backed_candidate| backed_candidate.hash()) - .filter(|candidate| { - ::DisputesHandler::concluded_invalid(current_session, *candidate) - }) - .collect::>(); - - let mut freed_disputed: Vec<_> = - >::collect_disputed(¤t_concluded_invalid_disputes) - .into_iter() - .map(|core| (core, FreedReason::Concluded)) - .collect(); - - let disputed_bitfield = - create_disputed_bitfield(expected_bits, freed_disputed.iter().map(|(x, _)| x)); - - if !freed_disputed.is_empty() { - // unstable sort is fine, because core indices are unique - // i.e. the same candidate can't occupy 2 cores at once. - freed_disputed.sort_unstable_by_key(|pair| pair.0); // sort by core index - >::free_cores(freed_disputed.clone()); - } - - // The following 3 calls are equiv to a call to `process_bitfields` - // but we can retain access to `bitfields`. - let bitfields = sanitize_bitfields::( - bitfields, - disputed_bitfield, - expected_bits, - parent_hash, - current_session, - &validator_public[..], - FullCheck::Yes, - ); - - let freed_concluded = - >::update_pending_availability_and_get_freed_cores::<_>( - expected_bits, - &validator_public[..], - bitfields.clone(), - >::core_para, - false, - ); - - let freed = collect_all_freed_cores::(freed_concluded.iter().cloned()); - - >::clear(); - let now = >::block_number(); - >::schedule(freed, now); - - let scheduled = >::scheduled(); - - let relay_parent_number = now - One::one(); - let parent_storage_root = *parent_header.state_root(); - - let check_ctx = CandidateCheckContext::::new(now, relay_parent_number); - let backed_candidates = sanitize_backed_candidates::( - parent_hash, - backed_candidates, - move |candidate_idx: usize, - backed_candidate: &BackedCandidate<::Hash>| - -> bool { - // never include a concluded-invalid candidate - concluded_invalid_disputes.contains(&backed_candidate.hash()) || - // Instead of checking the candidates with code upgrades twice - // move the checking up here and skip it in the training wheels fallback. - // That way we avoid possible duplicate checks while assuring all - // backed candidates fine to pass on. - check_ctx - .verify_backed_candidate(parent_hash, parent_storage_root, candidate_idx, backed_candidate) - .is_err() - }, - &scheduled[..], - ); - - frame_support::storage::TransactionOutcome::Rollback(( - // filtered backed candidates - backed_candidates, - // filtered bitfields - bitfields, - // checked disputes sets - checked_disputes_sets, - checked_disputes_sets_consumed_weight, - )) - }); - - // Assure the maximum block weight is adhered, by limiting bitfields and backed - // candidates. Dispute statement sets were already limited before. - let actual_weight = apply_weight_limit::( - &mut backed_candidates, - &mut bitfields, - max_block_weight.saturating_sub(checked_disputes_sets_consumed_weight), - &mut rng, - ); - - if actual_weight.any_gt(max_block_weight) { - log::warn!(target: LOG_TARGET, "Post weight limiting weight is still too large."); - } - let disputes = checked_disputes_sets .into_iter() .map(|checked| checked.into()) .collect::>(); - Some(ParachainsInherentData:: { - bitfields, - backed_candidates, - disputes, - parent_header, - }) + let bitfields = bitfields.into_iter().map(|v| v.into_unchecked()).collect(); + + let processed = + ParachainsInherentData { bitfields, backed_candidates, disputes, parent_header }; + Ok((processed, Some(full_weight).into())) } } @@ -929,13 +729,6 @@ fn apply_weight_limit( /// 5. remove any disputed core indices /// /// If any of those is not passed, the bitfield is dropped. -/// -/// While this function technically returns a set of unchecked bitfields, -/// they were actually checked and filtered to allow using it in both -/// cases, as `filtering` and `checking` stage. -/// -/// `full_check` determines if validator signatures are checked. If `::Yes`, -/// bitfields that have an invalid signature will be filtered out. pub(crate) fn sanitize_bitfields( unchecked_bitfields: UncheckedSignedAvailabilityBitfields, disputed_bitfield: DisputedBitfield, @@ -943,8 +736,7 @@ pub(crate) fn sanitize_bitfields( parent_hash: T::Hash, session_index: SessionIndex, validators: &[ValidatorId], - full_check: FullCheck, -) -> UncheckedSignedAvailabilityBitfields { +) -> SignedAvailabilityBitfields { let mut bitfields = Vec::with_capacity(unchecked_bitfields.len()); let mut last_index: Option = None; @@ -963,8 +755,7 @@ pub(crate) fn sanitize_bitfields( if unchecked_bitfield.unchecked_payload().0.len() != expected_bits { log::trace!( target: LOG_TARGET, - "[{:?}] bad bitfield length: {} != {:?}", - full_check, + "bad bitfield length: {} != {:?}", unchecked_bitfield.unchecked_payload().0.len(), expected_bits, ); @@ -976,8 +767,7 @@ pub(crate) fn sanitize_bitfields( { log::trace!( target: LOG_TARGET, - "[{:?}] bitfield contains disputed cores: {:?}", - full_check, + "bitfield contains disputed cores: {:?}", unchecked_bitfield.unchecked_payload().0.clone() & disputed_bitfield.0.clone() ); continue @@ -988,8 +778,7 @@ pub(crate) fn sanitize_bitfields( if !last_index.map_or(true, |last_index: ValidatorIndex| last_index < validator_index) { log::trace!( target: LOG_TARGET, - "[{:?}] bitfield validator index is not greater than last: !({:?} < {})", - full_check, + "bitfield validator index is not greater than last: !({:?} < {})", last_index.as_ref().map(|x| x.0), validator_index.0 ); @@ -999,8 +788,7 @@ pub(crate) fn sanitize_bitfields( if unchecked_bitfield.unchecked_validator_index().0 as usize >= validators.len() { log::trace!( target: LOG_TARGET, - "[{:?}] bitfield validator index is out of bounds: {} >= {}", - full_check, + "bitfield validator index is out of bounds: {} >= {}", validator_index.0, validators.len(), ); @@ -1009,81 +797,22 @@ pub(crate) fn sanitize_bitfields( let validator_public = &validators[validator_index.0 as usize]; - if let FullCheck::Yes = full_check { - // Validate bitfield signature. - if let Ok(signed_bitfield) = - unchecked_bitfield.try_into_checked(&signing_context, validator_public) - { - bitfields.push(signed_bitfield.into_unchecked()); - METRICS.on_valid_bitfield_signature(); - } else { - log::warn!(target: LOG_TARGET, "Invalid bitfield signature"); - METRICS.on_invalid_bitfield_signature(); - }; + // Validate bitfield signature. + if let Ok(signed_bitfield) = + unchecked_bitfield.try_into_checked(&signing_context, validator_public) + { + bitfields.push(signed_bitfield); + METRICS.on_valid_bitfield_signature(); } else { - bitfields.push(unchecked_bitfield); - } + log::warn!(target: LOG_TARGET, "Invalid bitfield signature"); + METRICS.on_invalid_bitfield_signature(); + }; last_index = Some(validator_index); } bitfields } -pub(crate) fn assure_sanity_bitfields( - unchecked_bitfields: UncheckedSignedAvailabilityBitfields, - disputed_bitfield: DisputedBitfield, - expected_bits: usize, - parent_hash: T::Hash, - session_index: SessionIndex, - validators: &[ValidatorId], - full_check: FullCheck, -) -> Result> { - let mut last_index: Option = None; - - use crate::inclusion::Error; - - ensure!(disputed_bitfield.0.len() == expected_bits, Error::::WrongBitfieldSize); - - let mut bitfields = Vec::with_capacity(unchecked_bitfields.len()); - - let signing_context = SigningContext { parent_hash, session_index }; - for unchecked_bitfield in unchecked_bitfields { - // Find and skip invalid bitfields. - ensure!( - unchecked_bitfield.unchecked_payload().0.len() == expected_bits, - Error::::WrongBitfieldSize - ); - - let validator_index = unchecked_bitfield.unchecked_validator_index(); - - if !last_index.map_or(true, |last_index: ValidatorIndex| last_index < validator_index) { - return Err(Error::::UnsortedOrDuplicateValidatorIndices) - } - - if unchecked_bitfield.unchecked_validator_index().0 as usize >= validators.len() { - return Err(Error::::ValidatorIndexOutOfBounds) - } - - let validator_public = &validators[validator_index.0 as usize]; - - if let FullCheck::Yes = full_check { - // Validate bitfield signature. - if let Ok(signed_bitfield) = - unchecked_bitfield.try_into_checked(&signing_context, validator_public) - { - bitfields.push(signed_bitfield.into_unchecked()); - } else { - return Err(Error::::InvalidBitfieldSignature) - } - } else { - bitfields.push(unchecked_bitfield); - } - - last_index = Some(validator_index); - } - Ok(bitfields) -} - /// Filter out any candidates that have a concluded invalid dispute. /// /// `scheduled` follows the same naming scheme as provided in the @@ -1139,46 +868,6 @@ fn sanitize_backed_candidates< backed_candidates } -/// Assumes sorted candidates. -pub(crate) fn assure_sanity_backed_candidates< - T: crate::inclusion::Config, - F: FnMut(usize, &BackedCandidate) -> bool, ->( - relay_parent: T::Hash, - backed_candidates: &[BackedCandidate], - mut candidate_has_concluded_invalid_dispute_or_is_invalid: F, - scheduled: &[CoreAssignment], -) -> Result<(), crate::inclusion::Error> { - use crate::inclusion::Error; - - for (idx, backed_candidate) in backed_candidates.iter().enumerate() { - if candidate_has_concluded_invalid_dispute_or_is_invalid(idx, backed_candidate) { - return Err(Error::::UnsortedOrDuplicateBackedCandidates) - } - // Assure the backed candidate's `ParaId`'s core is free. - // This holds under the assumption that `Scheduler::schedule` is called _before_. - // Also checks the candidate references the correct relay parent. - let desc = backed_candidate.descriptor(); - if desc.relay_parent != relay_parent { - return Err(Error::::UnexpectedRelayParent) - } - } - - let scheduled_paras_to_core_idx = scheduled - .into_iter() - .map(|core_assignment| (core_assignment.para_id, core_assignment.core)) - .collect::>(); - - if !IsSortedBy::is_sorted_by(backed_candidates, |x, y| { - // Never panics, since we would have early returned on those in the above loop. - scheduled_paras_to_core_idx[&x.descriptor().para_id] - .cmp(&scheduled_paras_to_core_idx[&y.descriptor().para_id]) - }) { - return Err(Error::::UnsortedOrDuplicateBackedCandidates) - } - Ok(()) -} - /// Derive entropy from babe provided per block randomness. /// /// In the odd case none is available, uses the `parent_hash` and diff --git a/runtime/parachains/src/paras_inherent/tests.rs b/runtime/parachains/src/paras_inherent/tests.rs index f499b0a5ae3e..9e2e8c8fff6b 100644 --- a/runtime/parachains/src/paras_inherent/tests.rs +++ b/runtime/parachains/src/paras_inherent/tests.rs @@ -111,16 +111,6 @@ mod enter { expected_para_inherent_data ); - // The schedule is still empty prior to calling `enter`. (`create_inherent_inner` should not - // alter storage, but just double checking for sanity). - assert_eq!(>::scheduled(), vec![]); - - assert_eq!(Pallet::::on_chain_votes(), None); - // Call enter with our 2 backed candidates - assert_ok!(Pallet::::enter( - frame_system::RawOrigin::None.into(), - expected_para_inherent_data - )); assert_eq!( // The length of this vec is equal to the number of candidates, so we know our 2 // backed candidates did not get filtered out @@ -286,12 +276,6 @@ mod enter { &expected_para_inherent_data.disputes[..2], ); - // The schedule is still empty prior to calling `enter`. (`create_inherent_inner` should not - // alter storage, but just double checking for sanity). - assert_eq!(>::scheduled(), vec![]); - - assert_eq!(Pallet::::on_chain_votes(), None); - // Call enter with our 2 disputes assert_ok!(Pallet::::enter( frame_system::RawOrigin::None.into(), multi_dispute_inherent_data, @@ -357,12 +341,6 @@ mod enter { assert_eq!(limit_inherent_data.disputes[0].session, 1); assert_eq!(limit_inherent_data.disputes[1].session, 2); - // The schedule is still empty prior to calling `enter`. (`create_inherent_inner` should not - // alter storage, but just double checking for sanity). - assert_eq!(>::scheduled(), vec![]); - - assert_eq!(Pallet::::on_chain_votes(), None); - // Call enter with our 2 disputes assert_ok!(Pallet::::enter( frame_system::RawOrigin::None.into(), limit_inherent_data, @@ -382,51 +360,6 @@ mod enter { }); } - #[test] - // Ensure that when dispute data establishes an over weight block that we abort - // due to an over weight block - fn limit_dispute_data_overweight() { - new_test_ext(MockGenesisConfig::default()).execute_with(|| { - // Create the inherent data for this block - let dispute_statements = BTreeMap::new(); - // No backed and concluding cores, so all cores will be filled with disputes. - let backed_and_concluding = BTreeMap::new(); - - let scenario = make_inherent_data(TestConfig { - dispute_statements, - dispute_sessions: vec![2, 2, 1], // 3 cores with disputes - backed_and_concluding, - num_validators_per_core: 6, - code_upgrade: None, - }); - - let expected_para_inherent_data = scenario.data.clone(); - - // Check the para inherent data is as expected: - // * 1 bitfield per validator (6 validators per core, 3 disputes => 18 validators) - assert_eq!(expected_para_inherent_data.bitfields.len(), 18); - // * 0 backed candidate per core - assert_eq!(expected_para_inherent_data.backed_candidates.len(), 0); - // * 3 disputes. - assert_eq!(expected_para_inherent_data.disputes.len(), 3); - let mut inherent_data = InherentData::new(); - inherent_data - .put_data(PARACHAINS_INHERENT_IDENTIFIER, &expected_para_inherent_data) - .unwrap(); - - // The current schedule is empty prior to calling `create_inherent_enter`. - assert_eq!(>::scheduled(), vec![]); - - assert_matches!(Pallet::::enter( - frame_system::RawOrigin::None.into(), - expected_para_inherent_data, - ), Err(e) => { dbg!(e) }); - - // The block was not included, as such, `on_chain_votes` _must_ return `None`. - assert_eq!(Pallet::::on_chain_votes(), None,); - }); - } - #[test] // Ensure that when a block is over weight due to disputes, but there is still sufficient // block weight to include a number of signed bitfields, the inherent data is filtered @@ -484,12 +417,6 @@ mod enter { // Ensure that all backed candidates are filtered out as either would make the block over weight assert_eq!(limit_inherent_data.backed_candidates.len(), 0); - // The schedule is still empty prior to calling `enter`. (`create_inherent_inner` should not - // alter storage, but just double checking for sanity). - assert_eq!(>::scheduled(), vec![]); - - assert_eq!(Pallet::::on_chain_votes(), None); - // Call enter with our 2 disputes assert_ok!(Pallet::::enter( frame_system::RawOrigin::None.into(), limit_inherent_data, @@ -510,56 +437,6 @@ mod enter { }); } - #[test] - // Ensure that we abort if we encounter an over weight block for disputes + bitfields - fn limit_dispute_data_ignore_backed_candidates_overweight() { - new_test_ext(MockGenesisConfig::default()).execute_with(|| { - // Create the inherent data for this block - let dispute_statements = BTreeMap::new(); - - let mut backed_and_concluding = BTreeMap::new(); - // 2 backed candidates shall be scheduled - backed_and_concluding.insert(0, 2); - backed_and_concluding.insert(1, 2); - - let scenario = make_inherent_data(TestConfig { - dispute_statements, - dispute_sessions: vec![2, 2, 1], // 3 cores with disputes - backed_and_concluding, - num_validators_per_core: 4, - code_upgrade: None, - }); - - let expected_para_inherent_data = scenario.data.clone(); - - // Check the para inherent data is as expected: - // * 1 bitfield per validator (4 validators per core, 2 backed candidates, 3 disputes => 4*5 = 20) - assert_eq!(expected_para_inherent_data.bitfields.len(), 20); - // * 2 backed candidates - assert_eq!(expected_para_inherent_data.backed_candidates.len(), 2); - // * 3 disputes. - assert_eq!(expected_para_inherent_data.disputes.len(), 3); - let mut inherent_data = InherentData::new(); - inherent_data - .put_data(PARACHAINS_INHERENT_IDENTIFIER, &expected_para_inherent_data) - .unwrap(); - - // The current schedule is empty prior to calling `create_inherent_enter`. - assert_eq!(>::scheduled(), vec![]); - - // Ensure that calling enter with 3 disputes and 2 candidates is over weight - assert_matches!(Pallet::::enter( - frame_system::RawOrigin::None.into(), - expected_para_inherent_data, - ), Err(e) => { - dbg!(e) - }); - - // The block was not included, as such, `on_chain_votes` _must_ return `None`. - assert_eq!(Pallet::::on_chain_votes(), None,); - }); - } - #[test] // Ensure an overweight block with an excess amount of disputes and bitfields, the bitfields are // filtered to accommodate the block size and no backed candidates are included. @@ -621,12 +498,6 @@ mod enter { // Ensure that all backed candidates are filtered out as either would make the block over weight assert_eq!(limit_inherent_data.backed_candidates.len(), 0); - // The schedule is still empty prior to calling `enter`. (`create_inherent_inner` should not - // alter storage, but just double checking for sanity). - assert_eq!(>::scheduled(), vec![]); - - assert_eq!(Pallet::::on_chain_votes(), None); - // Call enter with our 2 disputes assert_ok!(Pallet::::enter( frame_system::RawOrigin::None.into(), limit_inherent_data, @@ -648,7 +519,7 @@ mod enter { } #[test] - // Ensure that when a block is over weight due to disputes and bitfields, we abort + // Ensure that when a block is over weight due to disputes and bitfields, we filter. fn limit_bitfields_overweight() { new_test_ext(MockGenesisConfig::default()).execute_with(|| { // Create the inherent data for this block @@ -686,18 +557,11 @@ mod enter { .put_data(PARACHAINS_INHERENT_IDENTIFIER, &expected_para_inherent_data) .unwrap(); - // The current schedule is empty prior to calling `create_inherent_enter`. - assert_eq!(>::scheduled(), vec![]); - - assert_matches!(Pallet::::enter( - frame_system::RawOrigin::None.into(), - expected_para_inherent_data, - ), Err(_e) => { - /* TODO */ - }); - - // The block was not included, as such, `on_chain_votes` _must_ return `None`. - assert_matches!(Pallet::::on_chain_votes(), None); + let limit_inherent_data = + Pallet::::create_inherent_inner(&inherent_data.clone()).unwrap(); + assert_eq!(limit_inherent_data.bitfields.len(), 20); + assert_eq!(limit_inherent_data.disputes.len(), 2); + assert_eq!(limit_inherent_data.backed_candidates.len(), 0); }); } @@ -733,7 +597,7 @@ mod enter { } #[test] - // Ensure that when a block is over weight due to disputes and bitfields, we abort + // Ensure that when a block is over weight due to disputes and bitfields, we filter. fn limit_candidates_over_weight_1() { new_test_ext(MockGenesisConfig::default()).execute_with(|| { // Create the inherent data for this block @@ -790,9 +654,6 @@ mod enter { // * 3 disputes. assert_eq!(limit_inherent_data.disputes.len(), 2); - // The current schedule is empty prior to calling `create_inherent_enter`. - assert_eq!(>::scheduled(), vec![]); - assert_ok!(Pallet::::enter( frame_system::RawOrigin::None.into(), limit_inherent_data, @@ -812,51 +673,6 @@ mod enter { ); }); } - - #[test] - // Ensure that when a block is over weight due to disputes and bitfields, we abort - fn limit_candidates_over_weight_0() { - new_test_ext(MockGenesisConfig::default()).execute_with(|| { - // Create the inherent data for this block - let mut dispute_statements = BTreeMap::new(); - // Control the number of statements per dispute to ensure we have enough space - // in the block for some (but not all) bitfields - dispute_statements.insert(2, 17); - dispute_statements.insert(3, 17); - dispute_statements.insert(4, 17); - - let mut backed_and_concluding = BTreeMap::new(); - // 2 backed candidates shall be scheduled - backed_and_concluding.insert(0, 16); - backed_and_concluding.insert(1, 25); - - let scenario = make_inherent_data(TestConfig { - dispute_statements, - dispute_sessions: vec![2, 2, 1], // 3 cores with disputes - backed_and_concluding, - num_validators_per_core: 5, - code_upgrade: None, - }); - - let expected_para_inherent_data = scenario.data.clone(); - - // Check the para inherent data is as expected: - // * 1 bitfield per validator (5 validators per core, 2 backed candidates, 3 disputes => 5*5 = 25) - assert_eq!(expected_para_inherent_data.bitfields.len(), 25); - // * 2 backed candidates - assert_eq!(expected_para_inherent_data.backed_candidates.len(), 2); - // * 3 disputes. - assert_eq!(expected_para_inherent_data.disputes.len(), 3); - - assert_matches!(Pallet::::enter( - frame_system::RawOrigin::None.into(), - expected_para_inherent_data, - ), Err(e) => { dbg!(e) }); - - // The block was not included, as such, `on_chain_votes` _must_ return `None`. - assert_matches!(Pallet::::on_chain_votes(), None); - }); - } } fn default_header() -> primitives::Header { @@ -921,7 +737,7 @@ mod sanitizers { } let validator_public = validator_pubkeys(&validators); - let unchecked_bitfields = [ + let checked_bitfields = [ BitVec::::repeat(true, expected_bits), BitVec::::repeat(true, expected_bits), { @@ -943,9 +759,14 @@ mod sanitizers { ) .unwrap() .unwrap() - .into_unchecked() }) - .collect::>(); + .collect::>(); + + let unchecked_bitfields = checked_bitfields + .iter() + .cloned() + .map(|v| v.into_unchecked()) + .collect::>(); let disputed_bitfield = DisputedBitfield::zeros(expected_bits); @@ -958,9 +779,8 @@ mod sanitizers { parent_hash, session_index, &validator_public[..], - FullCheck::Skip, ), - unchecked_bitfields.clone() + checked_bitfields.clone() ); assert_eq!( sanitize_bitfields::( @@ -970,9 +790,8 @@ mod sanitizers { parent_hash, session_index, &validator_public[..], - FullCheck::Yes ), - unchecked_bitfields.clone() + checked_bitfields.clone() ); } @@ -991,7 +810,6 @@ mod sanitizers { parent_hash, session_index, &validator_public[..], - FullCheck::Yes ) .len(), 1 @@ -1004,7 +822,6 @@ mod sanitizers { parent_hash, session_index, &validator_public[..], - FullCheck::Skip ) .len(), 1 @@ -1020,7 +837,6 @@ mod sanitizers { parent_hash, session_index, &validator_public[..], - FullCheck::Yes ) .is_empty()); assert!(sanitize_bitfields::( @@ -1030,7 +846,6 @@ mod sanitizers { parent_hash, session_index, &validator_public[..], - FullCheck::Skip ) .is_empty()); } @@ -1046,9 +861,8 @@ mod sanitizers { parent_hash, session_index, &validator_public[..shortened], - FullCheck::Yes, )[..], - &unchecked_bitfields[..shortened] + &checked_bitfields[..shortened] ); assert_eq!( &sanitize_bitfields::( @@ -1058,9 +872,8 @@ mod sanitizers { parent_hash, session_index, &validator_public[..shortened], - FullCheck::Skip, )[..], - &unchecked_bitfields[..shortened] + &checked_bitfields[..shortened] ); } @@ -1069,30 +882,18 @@ mod sanitizers { let mut unchecked_bitfields = unchecked_bitfields.clone(); let x = unchecked_bitfields.swap_remove(0); unchecked_bitfields.push(x); - assert_eq!( - &sanitize_bitfields::( - unchecked_bitfields.clone(), - disputed_bitfield.clone(), - expected_bits, - parent_hash, - session_index, - &validator_public[..], - FullCheck::Yes - )[..], - &unchecked_bitfields[..(unchecked_bitfields.len() - 2)] - ); - assert_eq!( - &sanitize_bitfields::( - unchecked_bitfields.clone(), - disputed_bitfield.clone(), - expected_bits, - parent_hash, - session_index, - &validator_public[..], - FullCheck::Skip - )[..], - &unchecked_bitfields[..(unchecked_bitfields.len() - 2)] - ); + let result: UncheckedSignedAvailabilityBitfields = sanitize_bitfields::( + unchecked_bitfields.clone(), + disputed_bitfield.clone(), + expected_bits, + parent_hash, + session_index, + &validator_public[..], + ) + .into_iter() + .map(|v| v.into_unchecked()) + .collect(); + assert_eq!(&result, &unchecked_bitfields[..(unchecked_bitfields.len() - 2)]); } // check the validators signature @@ -1113,21 +914,30 @@ mod sanitizers { parent_hash, session_index, &validator_public[..], - FullCheck::Yes )[..], - &unchecked_bitfields[..last_bit_idx] + &checked_bitfields[..last_bit_idx] ); + } + // duplicate bitfields + { + let mut unchecked_bitfields = unchecked_bitfields.clone(); + + // insert a bad signature for the last bitfield + let last_bit_idx = unchecked_bitfields.len() - 1; + unchecked_bitfields + .get_mut(last_bit_idx) + .and_then(|u| Some(u.set_signature(UncheckedFrom::unchecked_from([1u8; 64])))) + .expect("we are accessing a valid index"); assert_eq!( &sanitize_bitfields::( - unchecked_bitfields.clone(), + unchecked_bitfields.clone().into_iter().chain(unchecked_bitfields).collect(), disputed_bitfield.clone(), expected_bits, parent_hash, session_index, &validator_public[..], - FullCheck::Skip )[..], - &unchecked_bitfields[..] + &checked_bitfields[..last_bit_idx] ); } } diff --git a/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs b/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs index 0f7493af8567..b5fb1e79da90 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs @@ -17,24 +17,26 @@ //! Autogenerated weights for `runtime_parachains::paras_inherent` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-13, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot +// target/production/polkadot // benchmark // pallet -// --chain=polkadot-dev // --steps=50 // --repeat=20 -// --pallet=runtime_parachains::paras_inherent // --extrinsic=* // --execution=wasm // --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json +// --pallet=runtime_parachains::paras_inherent +// --chain=polkadot-dev // --header=./file_header.txt -// --output=./runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs +// --output=./runtime/polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -53,18 +55,20 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Configuration ActiveConfig (r:1 w:0) - /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) + /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Babe AuthorVrfRandomness (r:1 w:0) /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaSessionInfo Sessions (r:1 w:0) /// Proof Skipped: ParaSessionInfo Sessions (max_values: None, max_size: None, mode: Measured) /// Storage: ParasDisputes Disputes (r:1 w:1) /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParasDisputes BackersOnDisputes (r:1 w:1) /// Proof Skipped: ParasDisputes BackersOnDisputes (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) - /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasDisputes Included (r:1 w:1) /// Proof Skipped: ParasDisputes Included (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -75,12 +79,12 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) /// Storage: Staking ErasRewardPoints (r:1 w:1) /// Proof Skipped: Staking ErasRewardPoints (max_values: None, max_size: None, mode: Measured) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasDisputes Frozen (r:1 w:0) /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) - /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras Parachains (r:1 w:0) /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) @@ -93,8 +97,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) /// Proof Skipped: ParaScheduler SessionStartBlock (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler ParathreadQueue (r:1 w:1) @@ -114,11 +116,11 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `50915` // Estimated: `56855 + v * (23 ±0)` - // Minimum execution time: 767_508_000 picoseconds. - Weight::from_parts(298_394_077, 0) + // Minimum execution time: 813_782_000 picoseconds. + Weight::from_parts(342_553_675, 0) .saturating_add(Weight::from_parts(0, 56855)) - // Standard Error: 19_865 - .saturating_add(Weight::from_parts(48_079_769, 0).saturating_mul(v.into())) + // Standard Error: 26_456 + .saturating_add(Weight::from_parts(48_553_593, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(28)) .saturating_add(T::DbWeight::get().writes(15)) .saturating_add(Weight::from_parts(0, 23).saturating_mul(v.into())) @@ -129,20 +131,22 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Configuration ActiveConfig (r:1 w:0) - /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Babe AuthorVrfRandomness (r:1 w:0) - /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Frozen (r:1 w:0) - /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras Parachains (r:1 w:0) - /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Babe AuthorVrfRandomness (r:1 w:0) + /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasDisputes Frozen (r:1 w:0) + /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) + /// Storage: Paras Parachains (r:1 w:0) + /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) /// Proof Skipped: ParaInclusion PendingAvailabilityCommitments (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -161,8 +165,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasDisputes Disputes (r:1 w:0) /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) @@ -187,8 +189,8 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42748` // Estimated: `48688` - // Minimum execution time: 324_159_000 picoseconds. - Weight::from_parts(331_096_000, 0) + // Minimum execution time: 361_186_000 picoseconds. + Weight::from_parts(371_834_000, 0) .saturating_add(Weight::from_parts(0, 48688)) .saturating_add(T::DbWeight::get().reads(26)) .saturating_add(T::DbWeight::get().writes(16)) @@ -199,20 +201,22 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Configuration ActiveConfig (r:1 w:0) - /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Babe AuthorVrfRandomness (r:1 w:0) - /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Frozen (r:1 w:0) - /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras Parachains (r:1 w:0) - /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Babe AuthorVrfRandomness (r:1 w:0) + /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasDisputes Frozen (r:1 w:0) + /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) + /// Storage: Paras Parachains (r:1 w:0) + /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) /// Proof Skipped: ParaInclusion PendingAvailabilityCommitments (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -231,9 +235,7 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Disputes (r:2 w:0) + /// Storage: ParasDisputes Disputes (r:1 w:0) /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) /// Proof Skipped: ParaScheduler SessionStartBlock (max_values: Some(1), max_size: None, mode: Measured) @@ -262,12 +264,12 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42784` // Estimated: `48724` - // Minimum execution time: 5_551_865_000 picoseconds. - Weight::from_parts(784_879_818, 0) + // Minimum execution time: 5_751_598_000 picoseconds. + Weight::from_parts(994_531_629, 0) .saturating_add(Weight::from_parts(0, 48724)) - // Standard Error: 37_120 - .saturating_add(Weight::from_parts(47_603_511, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(30)) + // Standard Error: 52_254 + .saturating_add(Weight::from_parts(48_035_531, 0).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads(29)) .saturating_add(T::DbWeight::get().writes(15)) } /// Storage: ParaInherent Included (r:1 w:1) @@ -276,20 +278,22 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Configuration ActiveConfig (r:1 w:0) - /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Babe AuthorVrfRandomness (r:1 w:0) - /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Frozen (r:1 w:0) - /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras Parachains (r:1 w:0) - /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Babe AuthorVrfRandomness (r:1 w:0) + /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) + /// Storage: Configuration ActiveConfig (r:1 w:0) + /// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasDisputes Frozen (r:1 w:0) + /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) + /// Storage: Paras Parachains (r:1 w:0) + /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) /// Proof Skipped: ParaInclusion PendingAvailabilityCommitments (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -308,9 +312,7 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Disputes (r:2 w:0) + /// Storage: ParasDisputes Disputes (r:1 w:0) /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) /// Proof Skipped: ParaScheduler SessionStartBlock (max_values: Some(1), max_size: None, mode: Measured) @@ -342,10 +344,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42811` // Estimated: `48751` - // Minimum execution time: 32_605_022_000 picoseconds. - Weight::from_parts(32_862_445_000, 0) + // Minimum execution time: 33_397_333_000 picoseconds. + Weight::from_parts(34_386_874_000, 0) .saturating_add(Weight::from_parts(0, 48751)) - .saturating_add(T::DbWeight::get().reads(32)) + .saturating_add(T::DbWeight::get().reads(31)) .saturating_add(T::DbWeight::get().writes(15)) } } diff --git a/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs b/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs index 93d1d634c63a..fcacd7019c35 100644 --- a/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs +++ b/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs @@ -17,24 +17,26 @@ //! Autogenerated weights for `runtime_parachains::paras_inherent` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot +// target/production/polkadot // benchmark // pallet -// --chain=westend-dev // --steps=50 // --repeat=20 -// --pallet=runtime_parachains::paras_inherent // --extrinsic=* // --execution=wasm // --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json +// --pallet=runtime_parachains::paras_inherent +// --chain=westend-dev // --header=./file_header.txt -// --output=./runtime/westend/src/weights/runtime_parachains_paras_inherent.rs +// --output=./runtime/westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -53,6 +55,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) + /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) + /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Babe AuthorVrfRandomness (r:1 w:0) /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaSessionInfo Sessions (r:1 w:0) @@ -61,8 +67,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParasDisputes BackersOnDisputes (r:1 w:1) /// Proof Skipped: ParasDisputes BackersOnDisputes (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) - /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasDisputes Included (r:1 w:1) /// Proof Skipped: ParasDisputes Included (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -73,12 +77,12 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) /// Storage: Staking ErasRewardPoints (r:1 w:1) /// Proof Skipped: Staking ErasRewardPoints (max_values: None, max_size: None, mode: Measured) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasDisputes Frozen (r:1 w:0) /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) - /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) - /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Paras Parachains (r:1 w:0) /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) @@ -91,8 +95,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) /// Proof Skipped: ParaScheduler SessionStartBlock (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaScheduler ParathreadQueue (r:1 w:1) @@ -112,11 +114,11 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `50518` // Estimated: `56458 + v * (23 ±0)` - // Minimum execution time: 755_127_000 picoseconds. - Weight::from_parts(279_514_953, 0) + // Minimum execution time: 787_742_000 picoseconds. + Weight::from_parts(323_859_708, 0) .saturating_add(Weight::from_parts(0, 56458)) - // Standard Error: 27_909 - .saturating_add(Weight::from_parts(48_567_316, 0).saturating_mul(v.into())) + // Standard Error: 23_358 + .saturating_add(Weight::from_parts(48_375_660, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(27)) .saturating_add(T::DbWeight::get().writes(15)) .saturating_add(Weight::from_parts(0, 23).saturating_mul(v.into())) @@ -127,18 +129,20 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Babe AuthorVrfRandomness (r:1 w:0) - /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Frozen (r:1 w:0) - /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras Parachains (r:1 w:0) - /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Babe AuthorVrfRandomness (r:1 w:0) + /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasDisputes Frozen (r:1 w:0) + /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) + /// Storage: Paras Parachains (r:1 w:0) + /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) /// Proof Skipped: ParaInclusion PendingAvailabilityCommitments (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -157,8 +161,6 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasDisputes Disputes (r:1 w:0) /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) @@ -183,8 +185,8 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42352` // Estimated: `48292` - // Minimum execution time: 316_856_000 picoseconds. - Weight::from_parts(324_523_000, 0) + // Minimum execution time: 356_545_000 picoseconds. + Weight::from_parts(362_497_000, 0) .saturating_add(Weight::from_parts(0, 48292)) .saturating_add(T::DbWeight::get().reads(25)) .saturating_add(T::DbWeight::get().writes(16)) @@ -195,18 +197,20 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Babe AuthorVrfRandomness (r:1 w:0) - /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Frozen (r:1 w:0) - /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras Parachains (r:1 w:0) - /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Babe AuthorVrfRandomness (r:1 w:0) + /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasDisputes Frozen (r:1 w:0) + /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) + /// Storage: Paras Parachains (r:1 w:0) + /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) /// Proof Skipped: ParaInclusion PendingAvailabilityCommitments (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -225,9 +229,7 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Disputes (r:2 w:0) + /// Storage: ParasDisputes Disputes (r:1 w:0) /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) /// Proof Skipped: ParaScheduler SessionStartBlock (max_values: Some(1), max_size: None, mode: Measured) @@ -256,12 +258,12 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42387` // Estimated: `48327` - // Minimum execution time: 5_544_322_000 picoseconds. - Weight::from_parts(805_988_490, 0) + // Minimum execution time: 5_733_399_000 picoseconds. + Weight::from_parts(975_216_648, 0) .saturating_add(Weight::from_parts(0, 48327)) - // Standard Error: 43_249 - .saturating_add(Weight::from_parts(47_856_057, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(29)) + // Standard Error: 56_805 + .saturating_add(Weight::from_parts(47_900_476, 0).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads(28)) .saturating_add(T::DbWeight::get().writes(15)) } /// Storage: ParaInherent Included (r:1 w:1) @@ -270,18 +272,20 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) /// Storage: ParasShared CurrentSessionIndex (r:1 w:0) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Babe AuthorVrfRandomness (r:1 w:0) - /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) /// Storage: ParaScheduler AvailabilityCores (r:1 w:1) /// Proof Skipped: ParaScheduler AvailabilityCores (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Frozen (r:1 w:0) - /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParasShared ActiveValidatorKeys (r:1 w:0) /// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Paras Parachains (r:1 w:0) - /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Babe AuthorVrfRandomness (r:1 w:0) + /// Proof: Babe AuthorVrfRandomness (max_values: Some(1), max_size: Some(33), added: 528, mode: MaxEncodedLen) + /// Storage: ParaInherent OnChainVotes (r:1 w:1) + /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParasDisputes Frozen (r:1 w:0) + /// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailability (r:2 w:1) /// Proof Skipped: ParaInclusion PendingAvailability (max_values: None, max_size: None, mode: Measured) + /// Storage: Paras Parachains (r:1 w:0) + /// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured) /// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1) /// Proof Skipped: ParaInclusion PendingAvailabilityCommitments (max_values: None, max_size: None, mode: Measured) /// Storage: ParaSessionInfo AccountKeys (r:1 w:0) @@ -300,9 +304,7 @@ impl runtime_parachains::paras_inherent::WeightInfo for /// Proof Skipped: Hrmp HrmpChannelDigests (max_values: None, max_size: None, mode: Measured) /// Storage: Paras FutureCodeUpgrades (r:1 w:0) /// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured) - /// Storage: ParaInherent OnChainVotes (r:1 w:1) - /// Proof Skipped: ParaInherent OnChainVotes (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParasDisputes Disputes (r:2 w:0) + /// Storage: ParasDisputes Disputes (r:1 w:0) /// Proof Skipped: ParasDisputes Disputes (max_values: None, max_size: None, mode: Measured) /// Storage: ParaScheduler SessionStartBlock (r:1 w:0) /// Proof Skipped: ParaScheduler SessionStartBlock (max_values: Some(1), max_size: None, mode: Measured) @@ -334,10 +336,10 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42414` // Estimated: `48354` - // Minimum execution time: 33_537_056_000 picoseconds. - Weight::from_parts(33_702_104_000, 0) + // Minimum execution time: 33_300_445_000 picoseconds. + Weight::from_parts(33_593_061_000, 0) .saturating_add(Weight::from_parts(0, 48354)) - .saturating_add(T::DbWeight::get().reads(31)) + .saturating_add(T::DbWeight::get().reads(30)) .saturating_add(T::DbWeight::get().writes(15)) } } From 94cadaeace9bb38e9c91302d688dc9194525fc13 Mon Sep 17 00:00:00 2001 From: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com> Date: Wed, 14 Jun 2023 11:55:41 +0200 Subject: [PATCH 16/56] Patch CI for split out worker binaries (#7360) --- scripts/ci/dockerfiles/polkadot_injected_debug.Dockerfile | 2 +- scripts/ci/gitlab/pipeline/build.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/ci/dockerfiles/polkadot_injected_debug.Dockerfile b/scripts/ci/dockerfiles/polkadot_injected_debug.Dockerfile index 40dfe3949b32..128b802b7adc 100644 --- a/scripts/ci/dockerfiles/polkadot_injected_debug.Dockerfile +++ b/scripts/ci/dockerfiles/polkadot_injected_debug.Dockerfile @@ -33,7 +33,7 @@ RUN apt-get update && \ ln -s /data /polkadot/.local/share/polkadot # add polkadot binary to docker image -COPY ./polkadot /usr/local/bin +COPY ./polkadot ./polkadot-*-worker /usr/local/bin USER polkadot diff --git a/scripts/ci/gitlab/pipeline/build.yml b/scripts/ci/gitlab/pipeline/build.yml index c631f1265002..28b08fa20d81 100644 --- a/scripts/ci/gitlab/pipeline/build.yml +++ b/scripts/ci/gitlab/pipeline/build.yml @@ -26,6 +26,8 @@ build-linux-stable: - mkdir -p ./artifacts - VERSION="${CI_COMMIT_REF_NAME}" # will be tag or branch name - mv ./target/testnet/polkadot ./artifacts/. + - mv ./target/testnet/polkadot-prepare-worker ./artifacts/. 2 > /dev/null || true + - mv ./target/testnet/polkadot-execute-worker ./artifacts/. 2 > /dev/null || true - pushd artifacts - sha256sum polkadot | tee polkadot.sha256 - shasum -c polkadot.sha256 From 3d98062645516cf95be95e40feff1b5d5f35a004 Mon Sep 17 00:00:00 2001 From: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com> Date: Wed, 14 Jun 2023 14:43:32 +0200 Subject: [PATCH 17/56] Hotfix for #7360 (#7365) * CI job hotfix * Instruct `cargo` to build all the binaries --- scripts/ci/gitlab/pipeline/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/ci/gitlab/pipeline/build.yml b/scripts/ci/gitlab/pipeline/build.yml index 28b08fa20d81..d07037626d65 100644 --- a/scripts/ci/gitlab/pipeline/build.yml +++ b/scripts/ci/gitlab/pipeline/build.yml @@ -21,13 +21,13 @@ build-linux-stable: # Ensure we run the UI tests. RUN_UI_TESTS: 1 script: - - time cargo build --locked --profile testnet --features pyroscope,fast-runtime --verbose --bin polkadot + - time cargo build --locked --profile testnet --features pyroscope,fast-runtime --verbose --bins # pack artifacts - mkdir -p ./artifacts - VERSION="${CI_COMMIT_REF_NAME}" # will be tag or branch name - mv ./target/testnet/polkadot ./artifacts/. - - mv ./target/testnet/polkadot-prepare-worker ./artifacts/. 2 > /dev/null || true - - mv ./target/testnet/polkadot-execute-worker ./artifacts/. 2 > /dev/null || true + - mv ./target/testnet/polkadot-prepare-worker ./artifacts/. 2>/dev/null || true + - mv ./target/testnet/polkadot-execute-worker ./artifacts/. 2>/dev/null || true - pushd artifacts - sha256sum polkadot | tee polkadot.sha256 - shasum -c polkadot.sha256 From 84ee743026259b7ff641e8f99fd4ad8b7a73e053 Mon Sep 17 00:00:00 2001 From: Andrei Sandu <54316454+sandreim@users.noreply.github.com> Date: Wed, 14 Jun 2023 18:02:53 +0300 Subject: [PATCH 18/56] adjust buckets (#7368) Signed-off-by: Andrei Sandu --- node/core/provisioner/src/metrics.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/core/provisioner/src/metrics.rs b/node/core/provisioner/src/metrics.rs index 747b39f3da83..c65d999d04a7 100644 --- a/node/core/provisioner/src/metrics.rs +++ b/node/core/provisioner/src/metrics.rs @@ -203,7 +203,7 @@ impl metrics::Metrics for Metrics { prometheus::HistogramOpts::new( "polkadot_parachain_provisioner_inherent_data_response_bitfields_sent", "Number of inherent bitfields sent in response to `ProvisionerMessage::RequestInherentData`.", - ).buckets(vec![0.0, 10.0, 25.0, 50.0, 75.0, 100.0, 150.0, 200.0, 250.0, 300.0]), + ).buckets(vec![0.0, 25.0, 50.0, 100.0, 150.0, 200.0, 250.0, 300.0, 400.0, 500.0, 600.0]), )?, registry, )?, From 7a54fd6e0b38ce69b320f1d1825ea47888f13291 Mon Sep 17 00:00:00 2001 From: Mira Ressel Date: Thu, 15 Jun 2023 10:30:37 +0200 Subject: [PATCH 19/56] ci: add new test-linux-oldkernel-stable job (#7371) closes paritytech/ci_cd#811 --- scripts/ci/gitlab/pipeline/test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/ci/gitlab/pipeline/test.yml b/scripts/ci/gitlab/pipeline/test.yml index d66ede4e03ef..df3a8c24d047 100644 --- a/scripts/ci/gitlab/pipeline/test.yml +++ b/scripts/ci/gitlab/pipeline/test.yml @@ -43,6 +43,11 @@ test-linux-stable: script: - time cargo test --workspace --profile testnet --verbose --locked --features=runtime-benchmarks,runtime-metrics,try-runtime +test-linux-oldkernel-stable: + extends: test-linux-stable + tags: + - oldkernel-vm + .check-dependent-project: &check-dependent-project stage: test extends: From 0e614b09b842583d5e08d430e2c56254018b92d8 Mon Sep 17 00:00:00 2001 From: Anton Date: Thu, 15 Jun 2023 14:25:57 +0400 Subject: [PATCH 20/56] [frame/im-online] remove network state from heartbeats (#7309) * [frame/im-online] remove external_addresses from heartbeat * new benchmarks * format code * Revert "format code" This reverts commit 586ddaa6f588b4aef92a0169cfd6a9610d1337b8. * remove MaxPeerDataEncodingSize * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <> --- Cargo.lock | 488 +++++++++--------- runtime/kusama/src/lib.rs | 2 - .../kusama/src/weights/pallet_im_online.rs | 26 +- runtime/polkadot/src/lib.rs | 2 - .../polkadot/src/weights/pallet_im_online.rs | 26 +- runtime/rococo/src/lib.rs | 2 - .../rococo/src/weights/pallet_im_online.rs | 26 +- runtime/westend/src/lib.rs | 2 - .../westend/src/weights/pallet_im_online.rs | 26 +- 9 files changed, 292 insertions(+), 308 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 715468af2f75..09bcf41a500c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -523,7 +523,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "hash-db", "log", @@ -1105,9 +1105,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "comfy-table" -version = "6.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121d8a5b0346092c18a4b2fd6f620d7a06f0eb7ac0a45860939a0884bc579c56" +checksum = "f9e1f7e5d046697d34b593bdba8ee31f4649366e452a2ccabb3baf3511e503d1" dependencies = [ "strum", "strum_macros", @@ -2284,19 +2284,6 @@ dependencies = [ "quote", ] -[[package]] -name = "expander" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f360349150728553f92e4c997a16af8915f418d3a0f21b440d34c5632f16ed84" -dependencies = [ - "blake2", - "fs-err", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "expander" version = "2.0.0" @@ -2531,7 +2518,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", ] @@ -2554,7 +2541,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-support-procedural", @@ -2579,7 +2566,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "Inflector", "array-bytes", @@ -2626,7 +2613,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2637,7 +2624,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2654,7 +2641,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-system", @@ -2683,7 +2670,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-recursion", "futures", @@ -2704,7 +2691,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "bitflags", "environmental", @@ -2739,11 +2726,12 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse", + "expander 2.0.0", "frame-support-procedural-tools", "itertools", "macro_magic", @@ -2756,7 +2744,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2768,7 +2756,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "proc-macro2", "quote", @@ -2778,7 +2766,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-executive", @@ -2805,7 +2793,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-system", @@ -2817,7 +2805,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "cfg-if", "frame-support", @@ -2836,7 +2824,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -2851,7 +2839,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "sp-api", @@ -2860,7 +2848,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "parity-scale-codec", @@ -3042,13 +3030,12 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "chrono", "frame-election-provider-support", "frame-support", "frame-system", - "git2", "num-format", "pallet-staking", ] @@ -3136,19 +3123,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "git2" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf7f68c2995f392c49fffb4f95ae2c873297830eb25c6bc4c114ce8f4562acc" -dependencies = [ - "bitflags", - "libc", - "libgit2-sys", - "log", - "url", -] - [[package]] name = "glob" version = "0.3.0" @@ -3474,10 +3448,25 @@ dependencies = [ "rustls 0.20.7", "rustls-native-certs", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.2", "webpki-roots", ] +[[package]] +name = "hyper-rustls" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7" +dependencies = [ + "http", + "hyper", + "log", + "rustls 0.21.2", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.24.1", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -3770,7 +3759,7 @@ dependencies = [ "soketto", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.2", "tokio-util", "tracing", "webpki-roots", @@ -3812,7 +3801,7 @@ checksum = "cc345b0a43c6bc49b947ebeb936e886a419ee3d894421790c969cc56040542ad" dependencies = [ "async-trait", "hyper", - "hyper-rustls", + "hyper-rustls 0.23.0", "jsonrpsee-core", "jsonrpsee-types", "rustc-hash", @@ -4102,18 +4091,6 @@ dependencies = [ "rle-decode-fast", ] -[[package]] -name = "libgit2-sys" -version = "0.14.2+1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4" -dependencies = [ - "cc", - "libc", - "libz-sys", - "pkg-config", -] - [[package]] name = "libloading" version = "0.7.2" @@ -4625,7 +4602,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" dependencies = [ "cc", - "libc", "pkg-config", "vcpkg", ] @@ -4760,9 +4736,9 @@ dependencies = [ [[package]] name = "macro_magic" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e7c1b5ffe892e88b288611ccf55f9c4f4e43214aea6f7f80f0c2c53c85e68e" +checksum = "0a2d6d7fe4741b5621cf7c8048e472933877c7ea870cbf1420da55ea9f3bb08c" dependencies = [ "macro_magic_core", "macro_magic_macros", @@ -4772,9 +4748,9 @@ dependencies = [ [[package]] name = "macro_magic_core" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e812c59de90e5d50405131c676dad7d239de39ccc975620c72d467c70138851" +checksum = "3005604258419767cacc5989c2dd75263f8b33773dd680734f598eb88baf5370" dependencies = [ "derive-syn-parse", "macro_magic_core_macros", @@ -4785,9 +4761,9 @@ dependencies = [ [[package]] name = "macro_magic_core_macros" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b1906fa06ee8c02b24595e121be94e0036cb64f9dce5e587edd1e823c87c94" +checksum = "de6267819c9042df1a9e62ca279e5a34254ad5dfdcb13ff988f560d75576e8b4" dependencies = [ "proc-macro2", "quote", @@ -4796,9 +4772,9 @@ dependencies = [ [[package]] name = "macro_magic_macros" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49e8939ee52e99672a887d8ee13776d0f54262c058ce7e911185fed8e43e3a59" +checksum = "dc7176ac15ab2ed7f335e2398f729b9562dae0c233705bc1e1e3acd8452d403d" dependencies = [ "macro_magic_core", "quote", @@ -4988,7 +4964,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "futures", "log", @@ -5007,7 +4983,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "anyhow", "jsonrpsee", @@ -5590,7 +5566,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5605,7 +5581,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-system", @@ -5621,7 +5597,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-system", @@ -5635,7 +5611,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5659,7 +5635,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5679,7 +5655,7 @@ dependencies = [ [[package]] name = "pallet-bags-list-remote-tests" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-election-provider-support", "frame-remote-externalities", @@ -5698,7 +5674,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5713,7 +5689,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-system", @@ -5732,7 +5708,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -5756,7 +5732,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5774,7 +5750,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5793,7 +5769,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5810,7 +5786,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5827,7 +5803,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5845,7 +5821,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5868,7 +5844,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5881,7 +5857,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5899,7 +5875,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "docify", "frame-benchmarking", @@ -5918,7 +5894,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5941,7 +5917,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5957,7 +5933,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5977,7 +5953,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5994,7 +5970,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6011,7 +5987,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6030,7 +6006,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6047,7 +6023,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6063,7 +6039,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6079,7 +6055,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-system", @@ -6096,7 +6072,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6116,7 +6092,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6127,7 +6103,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-system", @@ -6144,7 +6120,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6168,7 +6144,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6185,7 +6161,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6200,7 +6176,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6218,7 +6194,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6233,7 +6209,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6252,7 +6228,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6269,7 +6245,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-system", @@ -6290,7 +6266,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6306,7 +6282,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-system", @@ -6320,7 +6296,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6343,7 +6319,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6354,7 +6330,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "log", "sp-arithmetic", @@ -6363,7 +6339,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "sp-api", @@ -6372,7 +6348,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6389,7 +6365,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6404,7 +6380,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6422,7 +6398,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6441,7 +6417,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-support", "frame-system", @@ -6457,7 +6433,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6473,7 +6449,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6485,7 +6461,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6502,7 +6478,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6517,7 +6493,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6533,7 +6509,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -6548,7 +6524,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -9252,7 +9228,7 @@ dependencies = [ "http", "http-body", "hyper", - "hyper-rustls", + "hyper-rustls 0.23.0", "hyper-tls", "ipnet", "js-sys", @@ -9269,7 +9245,7 @@ dependencies = [ "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.23.2", "tower-service", "url", "wasm-bindgen", @@ -9601,6 +9577,18 @@ dependencies = [ "webpki 0.22.0", ] +[[package]] +name = "rustls" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e32ca28af694bc1bbf399c33a516dbdf1c90090b8ab23c2bc24f834aa2247f5f" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct 0.7.0", +] + [[package]] name = "rustls-native-certs" version = "0.6.1" @@ -9631,6 +9619,16 @@ dependencies = [ "base64 0.21.0", ] +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.6" @@ -9675,7 +9673,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "log", "sp-core", @@ -9686,7 +9684,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "futures", @@ -9715,7 +9713,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "futures", "futures-timer", @@ -9738,7 +9736,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9753,7 +9751,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9772,7 +9770,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9783,7 +9781,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "chrono", @@ -9823,7 +9821,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "fnv", "futures", @@ -9850,7 +9848,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "hash-db", "kvdb", @@ -9876,7 +9874,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "futures", @@ -9901,7 +9899,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "fork-tree", @@ -9937,7 +9935,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "futures", "jsonrpsee", @@ -9959,7 +9957,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "async-channel", @@ -9995,7 +9993,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "futures", "jsonrpsee", @@ -10014,7 +10012,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10027,7 +10025,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "ahash 0.8.2", "array-bytes", @@ -10067,7 +10065,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "finality-grandpa", "futures", @@ -10087,7 +10085,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "futures", @@ -10110,7 +10108,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -10132,7 +10130,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -10144,7 +10142,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "anyhow", "cfg-if", @@ -10162,7 +10160,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "ansi_term", "futures", @@ -10178,7 +10176,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -10192,7 +10190,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "async-channel", @@ -10238,7 +10236,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-channel", "cid", @@ -10259,7 +10257,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "async-trait", @@ -10286,7 +10284,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "ahash 0.8.2", "futures", @@ -10304,7 +10302,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "async-channel", @@ -10326,7 +10324,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "async-channel", @@ -10360,7 +10358,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "futures", @@ -10378,7 +10376,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "bytes", @@ -10386,7 +10384,7 @@ dependencies = [ "futures", "futures-timer", "hyper", - "hyper-rustls", + "hyper-rustls 0.24.0", "libp2p", "num_cpus", "once_cell", @@ -10408,7 +10406,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10417,7 +10415,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "futures", "jsonrpsee", @@ -10448,7 +10446,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10467,7 +10465,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "http", "jsonrpsee", @@ -10482,7 +10480,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "futures", @@ -10508,7 +10506,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "directories", @@ -10574,7 +10572,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "log", "parity-scale-codec", @@ -10585,7 +10583,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "clap 4.2.5", "fs4", @@ -10601,7 +10599,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10620,7 +10618,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "futures", "libc", @@ -10639,7 +10637,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "chrono", "futures", @@ -10658,7 +10656,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "ansi_term", "atty", @@ -10689,7 +10687,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10700,7 +10698,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "futures", @@ -10726,7 +10724,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "futures", @@ -10742,7 +10740,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-channel", "futures", @@ -11290,7 +11288,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "hash-db", "log", @@ -11310,11 +11308,11 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "Inflector", "blake2", - "expander 1.0.0", + "expander 2.0.0", "proc-macro-crate", "proc-macro2", "quote", @@ -11324,7 +11322,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "scale-info", @@ -11337,7 +11335,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "integer-sqrt", "num-traits", @@ -11351,7 +11349,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "scale-info", @@ -11364,7 +11362,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "sp-api", @@ -11376,7 +11374,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "futures", "log", @@ -11394,7 +11392,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "futures", @@ -11409,7 +11407,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "parity-scale-codec", @@ -11427,7 +11425,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "parity-scale-codec", @@ -11448,7 +11446,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11467,7 +11465,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "finality-grandpa", "log", @@ -11485,7 +11483,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "scale-info", @@ -11497,7 +11495,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "bitflags", @@ -11541,7 +11539,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "blake2b_simd", "byteorder", @@ -11555,7 +11553,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "proc-macro2", "quote", @@ -11566,7 +11564,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11575,7 +11573,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "proc-macro2", "quote", @@ -11585,7 +11583,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "environmental", "parity-scale-codec", @@ -11596,7 +11594,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11611,7 +11609,7 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "bytes", "ed25519", @@ -11637,7 +11635,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "lazy_static", "sp-core", @@ -11648,7 +11646,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "futures", "parity-scale-codec", @@ -11662,7 +11660,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11671,7 +11669,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11682,7 +11680,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11700,7 +11698,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "scale-info", @@ -11714,7 +11712,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "sp-api", "sp-core", @@ -11724,7 +11722,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "backtrace", "lazy_static", @@ -11734,7 +11732,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "rustc-hash", "serde", @@ -11744,7 +11742,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "either", "hash256-std-hasher", @@ -11766,7 +11764,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11784,7 +11782,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "Inflector", "proc-macro-crate", @@ -11796,7 +11794,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "scale-info", @@ -11810,7 +11808,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "scale-info", @@ -11823,7 +11821,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "hash-db", "log", @@ -11843,7 +11841,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "log", "parity-scale-codec", @@ -11861,12 +11859,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11879,7 +11877,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "futures-timer", @@ -11894,7 +11892,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "sp-std", @@ -11906,7 +11904,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "sp-api", "sp-runtime", @@ -11915,7 +11913,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "log", @@ -11931,7 +11929,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "ahash 0.8.2", "hash-db", @@ -11954,7 +11952,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11971,7 +11969,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11982,7 +11980,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11995,7 +11993,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "parity-scale-codec", "scale-info", @@ -12236,7 +12234,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "platforms", ] @@ -12244,7 +12242,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12263,7 +12261,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "hyper", "log", @@ -12275,7 +12273,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "jsonrpsee", @@ -12288,7 +12286,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "jsonrpsee", "log", @@ -12307,7 +12305,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "array-bytes", "async-trait", @@ -12333,7 +12331,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "futures", "substrate-test-utils-derive", @@ -12343,7 +12341,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12354,7 +12352,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "ansi_term", "build-helper", @@ -12871,6 +12869,16 @@ dependencies = [ "webpki 0.22.0", ] +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.2", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.9" @@ -13199,7 +13207,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#715b24690dd4c16d45b0b593392e8913dde96146" +source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" dependencies = [ "async-trait", "clap 4.2.5", diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 7954ba0326ef..46b0e42c1204 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -619,7 +619,6 @@ parameter_types! { pub const MaxAuthorities: u32 = 100_000; pub const MaxKeys: u32 = 10_000; pub const MaxPeerInHeartbeats: u32 = 10_000; - pub const MaxPeerDataEncodingSize: u32 = 1_000; } impl pallet_treasury::Config for Runtime { @@ -703,7 +702,6 @@ impl pallet_im_online::Config for Runtime { type WeightInfo = weights::pallet_im_online::WeightInfo; type MaxKeys = MaxKeys; type MaxPeerInHeartbeats = MaxPeerInHeartbeats; - type MaxPeerDataEncodingSize = MaxPeerDataEncodingSize; } parameter_types! { diff --git a/runtime/kusama/src/weights/pallet_im_online.rs b/runtime/kusama/src/weights/pallet_im_online.rs index c3c3358c399f..69f34a760ce5 100644 --- a/runtime/kusama/src/weights/pallet_im_online.rs +++ b/runtime/kusama/src/weights/pallet_im_online.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_im_online` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `build-host`, CPU: `AMD EPYC 7601 32-Core Processor` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -54,25 +54,21 @@ impl pallet_im_online::WeightInfo for WeightInfo { /// Storage: ImOnline Keys (r:1 w:0) /// Proof: ImOnline Keys (max_values: Some(1), max_size: Some(320002), added: 320497, mode: MaxEncodedLen) /// Storage: ImOnline ReceivedHeartbeats (r:1 w:1) - /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(10021032), added: 10023507, mode: MaxEncodedLen) + /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(1028), added: 3503, mode: MaxEncodedLen) /// Storage: ImOnline AuthoredBlocks (r:1 w:0) /// Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) /// The range of component `k` is `[1, 1000]`. - /// The range of component `e` is `[1, 100]`. - fn validate_unsigned_and_then_heartbeat(k: u32, e: u32, ) -> Weight { + fn validate_unsigned_and_then_heartbeat(k: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `361 + k * (32 ±0)` - // Estimated: `10024497 + e * (35 ±0) + k * (32 ±0)` - // Minimum execution time: 91_361_000 picoseconds. - Weight::from_parts(72_262_090, 0) - .saturating_add(Weight::from_parts(0, 10024497)) - // Standard Error: 252 - .saturating_add(Weight::from_parts(22_094, 0).saturating_mul(k.into())) - // Standard Error: 2_539 - .saturating_add(Weight::from_parts(395_966, 0).saturating_mul(e.into())) + // Estimated: `321487 + k * (1761 ±0)` + // Minimum execution time: 122_811_000 picoseconds. + Weight::from_parts(134_566_517, 0) + .saturating_add(Weight::from_parts(0, 321487)) + // Standard Error: 639 + .saturating_add(Weight::from_parts(42_176, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 35).saturating_mul(e.into())) - .saturating_add(Weight::from_parts(0, 32).saturating_mul(k.into())) + .saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into())) } } diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index c24f87ce8e80..3ebccf5a94f4 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -655,7 +655,6 @@ parameter_types! { pub const MaxAuthorities: u32 = 100_000; pub const MaxKeys: u32 = 10_000; pub const MaxPeerInHeartbeats: u32 = 10_000; - pub const MaxPeerDataEncodingSize: u32 = 1_000; pub const RootSpendOriginMaxAmount: Balance = Balance::MAX; pub const CouncilSpendOriginMaxAmount: Balance = Balance::MAX; } @@ -754,7 +753,6 @@ impl pallet_im_online::Config for Runtime { type WeightInfo = weights::pallet_im_online::WeightInfo; type MaxKeys = MaxKeys; type MaxPeerInHeartbeats = MaxPeerInHeartbeats; - type MaxPeerDataEncodingSize = MaxPeerDataEncodingSize; } parameter_types! { diff --git a/runtime/polkadot/src/weights/pallet_im_online.rs b/runtime/polkadot/src/weights/pallet_im_online.rs index b4b980b12692..9bdd8f197042 100644 --- a/runtime/polkadot/src/weights/pallet_im_online.rs +++ b/runtime/polkadot/src/weights/pallet_im_online.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_im_online` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-30, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `build-host`, CPU: `AMD EPYC 7601 32-Core Processor` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -54,25 +54,21 @@ impl pallet_im_online::WeightInfo for WeightInfo { /// Storage: ImOnline Keys (r:1 w:0) /// Proof: ImOnline Keys (max_values: Some(1), max_size: Some(320002), added: 320497, mode: MaxEncodedLen) /// Storage: ImOnline ReceivedHeartbeats (r:1 w:1) - /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(10021032), added: 10023507, mode: MaxEncodedLen) + /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(1028), added: 3503, mode: MaxEncodedLen) /// Storage: ImOnline AuthoredBlocks (r:1 w:0) /// Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) /// The range of component `k` is `[1, 1000]`. - /// The range of component `e` is `[1, 100]`. - fn validate_unsigned_and_then_heartbeat(k: u32, e: u32, ) -> Weight { + fn validate_unsigned_and_then_heartbeat(k: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `361 + k * (32 ±0)` - // Estimated: `10024497 + e * (35 ±0) + k * (32 ±0)` - // Minimum execution time: 92_822_000 picoseconds. - Weight::from_parts(72_049_970, 0) - .saturating_add(Weight::from_parts(0, 10024497)) - // Standard Error: 302 - .saturating_add(Weight::from_parts(25_047, 0).saturating_mul(k.into())) - // Standard Error: 3_048 - .saturating_add(Weight::from_parts(394_650, 0).saturating_mul(e.into())) + // Estimated: `321487 + k * (1761 ±0)` + // Minimum execution time: 125_307_000 picoseconds. + Weight::from_parts(220_092_525, 0) + .saturating_add(Weight::from_parts(0, 321487)) + // Standard Error: 6_932 + .saturating_add(Weight::from_parts(27_914, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 35).saturating_mul(e.into())) - .saturating_add(Weight::from_parts(0, 32).saturating_mul(k.into())) + .saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into())) } } diff --git a/runtime/rococo/src/lib.rs b/runtime/rococo/src/lib.rs index 0b97cf56744c..a00655c6cd1b 100644 --- a/runtime/rococo/src/lib.rs +++ b/runtime/rococo/src/lib.rs @@ -551,7 +551,6 @@ parameter_types! { pub const MaxAuthorities: u32 = 100_000; pub const MaxKeys: u32 = 10_000; pub const MaxPeerInHeartbeats: u32 = 10_000; - pub const MaxPeerDataEncodingSize: u32 = 1_000; } type ApproveOrigin = EitherOfDiverse< @@ -651,7 +650,6 @@ impl pallet_im_online::Config for Runtime { type WeightInfo = weights::pallet_im_online::WeightInfo; type MaxKeys = MaxKeys; type MaxPeerInHeartbeats = MaxPeerInHeartbeats; - type MaxPeerDataEncodingSize = MaxPeerDataEncodingSize; } parameter_types! { diff --git a/runtime/rococo/src/weights/pallet_im_online.rs b/runtime/rococo/src/weights/pallet_im_online.rs index 6062c30ab938..b866426de52a 100644 --- a/runtime/rococo/src/weights/pallet_im_online.rs +++ b/runtime/rococo/src/weights/pallet_im_online.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_im_online` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `build-host`, CPU: `AMD EPYC 7601 32-Core Processor` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -56,25 +56,21 @@ impl pallet_im_online::WeightInfo for WeightInfo { /// Storage: unknown `0x39e295d143ed41353167609a3d816584` (r:1 w:0) /// Proof Skipped: unknown `0x39e295d143ed41353167609a3d816584` (r:1 w:0) /// Storage: ImOnline ReceivedHeartbeats (r:1 w:1) - /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(10021032), added: 10023507, mode: MaxEncodedLen) + /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(1028), added: 3503, mode: MaxEncodedLen) /// Storage: ImOnline AuthoredBlocks (r:1 w:0) /// Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) /// The range of component `k` is `[1, 1000]`. - /// The range of component `e` is `[1, 100]`. - fn validate_unsigned_and_then_heartbeat(k: u32, e: u32, ) -> Weight { + fn validate_unsigned_and_then_heartbeat(k: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `394 + k * (32 ±0)` - // Estimated: `10024497 + e * (35 ±0) + k * (32 ±0)` - // Minimum execution time: 92_998_000 picoseconds. - Weight::from_parts(75_068_960, 0) - .saturating_add(Weight::from_parts(0, 10024497)) - // Standard Error: 361 - .saturating_add(Weight::from_parts(24_450, 0).saturating_mul(k.into())) - // Standard Error: 3_641 - .saturating_add(Weight::from_parts(386_239, 0).saturating_mul(e.into())) + // Estimated: `321487 + k * (1761 ±0)` + // Minimum execution time: 132_910_000 picoseconds. + Weight::from_parts(149_854_501, 0) + .saturating_add(Weight::from_parts(0, 321487)) + // Standard Error: 3_317 + .saturating_add(Weight::from_parts(61_141, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 35).saturating_mul(e.into())) - .saturating_add(Weight::from_parts(0, 32).saturating_mul(k.into())) + .saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into())) } } diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index 6f89547c7a83..eb1d25e37014 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -569,7 +569,6 @@ parameter_types! { pub const ImOnlineUnsignedPriority: TransactionPriority = TransactionPriority::max_value(); pub const MaxKeys: u32 = 10_000; pub const MaxPeerInHeartbeats: u32 = 10_000; - pub const MaxPeerDataEncodingSize: u32 = 1_000; } impl pallet_im_online::Config for Runtime { @@ -582,7 +581,6 @@ impl pallet_im_online::Config for Runtime { type WeightInfo = weights::pallet_im_online::WeightInfo; type MaxKeys = MaxKeys; type MaxPeerInHeartbeats = MaxPeerInHeartbeats; - type MaxPeerDataEncodingSize = MaxPeerDataEncodingSize; } parameter_types! { diff --git a/runtime/westend/src/weights/pallet_im_online.rs b/runtime/westend/src/weights/pallet_im_online.rs index b3a372947aa5..5a4e27316900 100644 --- a/runtime/westend/src/weights/pallet_im_online.rs +++ b/runtime/westend/src/weights/pallet_im_online.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_im_online` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-05-30, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `build-host`, CPU: `AMD EPYC 7601 32-Core Processor` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -54,25 +54,21 @@ impl pallet_im_online::WeightInfo for WeightInfo { /// Storage: ImOnline Keys (r:1 w:0) /// Proof: ImOnline Keys (max_values: Some(1), max_size: Some(320002), added: 320497, mode: MaxEncodedLen) /// Storage: ImOnline ReceivedHeartbeats (r:1 w:1) - /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(10021032), added: 10023507, mode: MaxEncodedLen) + /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(1028), added: 3503, mode: MaxEncodedLen) /// Storage: ImOnline AuthoredBlocks (r:1 w:0) /// Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) /// The range of component `k` is `[1, 1000]`. - /// The range of component `e` is `[1, 100]`. - fn validate_unsigned_and_then_heartbeat(k: u32, e: u32, ) -> Weight { + fn validate_unsigned_and_then_heartbeat(k: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `361 + k * (32 ±0)` - // Estimated: `10024497 + e * (35 ±0) + k * (32 ±0)` - // Minimum execution time: 92_017_000 picoseconds. - Weight::from_parts(73_188_461, 0) - .saturating_add(Weight::from_parts(0, 10024497)) - // Standard Error: 316 - .saturating_add(Weight::from_parts(23_357, 0).saturating_mul(k.into())) - // Standard Error: 3_193 - .saturating_add(Weight::from_parts(392_783, 0).saturating_mul(e.into())) + // Estimated: `321487 + k * (1761 ±0)` + // Minimum execution time: 122_571_000 picoseconds. + Weight::from_parts(162_954_849, 0) + .saturating_add(Weight::from_parts(0, 321487)) + // Standard Error: 8_676 + .saturating_add(Weight::from_parts(11_122, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 35).saturating_mul(e.into())) - .saturating_add(Weight::from_parts(0, 32).saturating_mul(k.into())) + .saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into())) } } From 2d840ffb2f778831faef07eb4cbd50ce66eeac1f Mon Sep 17 00:00:00 2001 From: Andrei Eres Date: Thu, 15 Jun 2023 15:46:06 +0200 Subject: [PATCH 21/56] Delay reputation updates (#7214) * Add futures-timer * Make cost_or_benefit public * Update ReportPeer message format * Add delay to reputation updates (dirtywork) * Update ReputationAggregator * Update tests * Fix flucky tests * Move reputation to state * Use the main loop for handling reputation sendings * Update * Move reputation to utils * Update reputation sending * Fix arguments order * Update state * Remove new from state * Add constant * Add failing test for delay * Change mocking approach * Fix type errors * Fix comments * Add message handling to select * Fix bitfields-distribution tests * Add docs to reputation aggregator * Replace .into_base_rep * Use one REPUTATION_CHANGE_INTERVAL by default * Add reputation change to statement-distribution * Update polkadot-availability-bitfield-distribution * Update futures selecting in subsystems * Update reputation adding * Send malicious changes right away without adding to state * Add reputation to StatementDistributionSubsystem * Handle reputation in statement distribution * Add delay test for polkadot-statement-distribution * Fix collator-protocol tests before applying reputation delay * Remove into_base_rep * Add reputation to State * Fix failed tests * Add reputation delay * Update tests * Add batched network message for peer reporting * Update approval-distribution tests * Update bitfield-distribution tests * Update statement-distribution tests * Update collator-protocol tests * Remove levels in matching * Address clippy errors * Fix overseer test * Add a metric for original count of rep changes * Update Reputation * Revert "Add a metric for original count of rep changes" This reverts commit 6c9b0c1ec34491d16e562bdcba8db6b9dcf484db. * Update node/subsystem-util/src/reputation.rs Co-authored-by: Vsevolod Stakhov * Remove redundant vec --------- Co-authored-by: Vsevolod Stakhov --- Cargo.lock | 2 + node/network/approval-distribution/Cargo.toml | 3 +- node/network/approval-distribution/src/lib.rs | 192 +++- .../approval-distribution/src/tests.rs | 136 ++- node/network/bitfield-distribution/Cargo.toml | 1 + node/network/bitfield-distribution/src/lib.rs | 251 +++-- .../bitfield-distribution/src/tests.rs | 187 +++- node/network/bridge/src/network.rs | 10 +- node/network/bridge/src/rx/mod.rs | 8 +- node/network/bridge/src/rx/tests.rs | 14 +- node/network/bridge/src/tx/mod.rs | 21 +- node/network/bridge/src/tx/tests.rs | 10 +- .../network/bridge/src/validator_discovery.rs | 4 +- .../src/collator_side/mod.rs | 59 +- .../src/collator_side/tests.rs | 950 ++++++++++-------- node/network/collator-protocol/src/lib.rs | 8 +- .../src/validator_side/mod.rs | 134 ++- .../src/validator_side/tests.rs | 148 ++- node/network/protocol/src/reputation.rs | 9 +- .../src/request_response/incoming/mod.rs | 5 +- .../network/statement-distribution/Cargo.toml | 1 + .../network/statement-distribution/src/lib.rs | 181 ++-- .../statement-distribution/src/tests.rs | 547 +++++++++- node/overseer/src/tests.rs | 7 +- node/subsystem-types/src/messages.rs | 14 +- node/subsystem-util/src/lib.rs | 2 + node/subsystem-util/src/reputation.rs | 116 +++ 27 files changed, 2223 insertions(+), 797 deletions(-) create mode 100644 node/subsystem-util/src/reputation.rs diff --git a/Cargo.lock b/Cargo.lock index 09bcf41a500c..68356fb49514 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6905,6 +6905,7 @@ dependencies = [ "assert_matches", "env_logger 0.9.0", "futures", + "futures-timer", "log", "polkadot-node-jaeger", "polkadot-node-metrics", @@ -6932,6 +6933,7 @@ dependencies = [ "bitvec", "env_logger 0.9.0", "futures", + "futures-timer", "log", "maplit", "polkadot-node-network-protocol", diff --git a/node/network/approval-distribution/Cargo.toml b/node/network/approval-distribution/Cargo.toml index 87e7d8456188..34afca6d48f0 100644 --- a/node/network/approval-distribution/Cargo.toml +++ b/node/network/approval-distribution/Cargo.toml @@ -9,18 +9,19 @@ polkadot-node-metrics = { path = "../../metrics" } polkadot-node-network-protocol = { path = "../protocol" } polkadot-node-primitives = { path = "../../primitives" } polkadot-node-subsystem = { path = "../../subsystem" } +polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-primitives = { path = "../../../primitives" } polkadot-node-jaeger = { path = "../../jaeger" } rand = "0.8" futures = "0.3.21" +futures-timer = "3.0.2" gum = { package = "tracing-gum", path = "../../gum" } [dev-dependencies] sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] } -polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } polkadot-primitives-test-helpers = { path = "../../../primitives/test-helpers" } diff --git a/node/network/approval-distribution/src/lib.rs b/node/network/approval-distribution/src/lib.rs index 0707716b33f0..79aa090a140f 100644 --- a/node/network/approval-distribution/src/lib.rs +++ b/node/network/approval-distribution/src/lib.rs @@ -20,7 +20,7 @@ #![warn(missing_docs)] -use futures::{channel::oneshot, FutureExt as _}; +use futures::{channel::oneshot, select, FutureExt as _}; use polkadot_node_jaeger as jaeger; use polkadot_node_network_protocol::{ self as net_protocol, @@ -38,11 +38,15 @@ use polkadot_node_subsystem::{ }, overseer, FromOrchestra, OverseerSignal, SpawnedSubsystem, SubsystemError, }; +use polkadot_node_subsystem_util::reputation::{ReputationAggregator, REPUTATION_CHANGE_INTERVAL}; use polkadot_primitives::{ BlockNumber, CandidateIndex, Hash, SessionIndex, ValidatorIndex, ValidatorSignature, }; use rand::{CryptoRng, Rng, SeedableRng}; -use std::collections::{hash_map, BTreeMap, HashMap, HashSet, VecDeque}; +use std::{ + collections::{hash_map, BTreeMap, HashMap, HashSet, VecDeque}, + time::Duration, +}; use self::metrics::Metrics; @@ -187,6 +191,9 @@ struct State { /// Current approval checking finality lag. approval_checking_lag: BlockNumber, + + /// Aggregated reputation change + reputation: ReputationAggregator, } #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -755,7 +762,13 @@ impl State { "Unexpected assignment", ); if !self.recent_outdated_blocks.is_recent_outdated(&block_hash) { - modify_reputation(ctx.sender(), peer_id, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + COST_UNEXPECTED_MESSAGE, + ) + .await; } } return @@ -780,7 +793,13 @@ impl State { ?message_subject, "Duplicate assignment", ); - modify_reputation(ctx.sender(), peer_id, COST_DUPLICATE_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + COST_DUPLICATE_MESSAGE, + ) + .await; } return } @@ -792,13 +811,25 @@ impl State { ?message_subject, "Assignment from a peer is out of view", ); - modify_reputation(ctx.sender(), peer_id, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + COST_UNEXPECTED_MESSAGE, + ) + .await; }, } // if the assignment is known to be valid, reward the peer if entry.knowledge.contains(&message_subject, message_kind) { - modify_reputation(ctx.sender(), peer_id, BENEFIT_VALID_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + BENEFIT_VALID_MESSAGE, + ) + .await; if let Some(peer_knowledge) = entry.known_by.get_mut(&peer_id) { gum::trace!(target: LOG_TARGET, ?peer_id, ?message_subject, "Known assignment"); peer_knowledge.received.insert(message_subject, message_kind); @@ -834,7 +865,13 @@ impl State { ); match result { AssignmentCheckResult::Accepted => { - modify_reputation(ctx.sender(), peer_id, BENEFIT_VALID_MESSAGE_FIRST).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + BENEFIT_VALID_MESSAGE_FIRST, + ) + .await; entry.knowledge.known_messages.insert(message_subject.clone(), message_kind); if let Some(peer_knowledge) = entry.known_by.get_mut(&peer_id) { peer_knowledge.received.insert(message_subject.clone(), message_kind); @@ -862,8 +899,13 @@ impl State { ?peer_id, "Got an assignment too far in the future", ); - modify_reputation(ctx.sender(), peer_id, COST_ASSIGNMENT_TOO_FAR_IN_THE_FUTURE) - .await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + COST_ASSIGNMENT_TOO_FAR_IN_THE_FUTURE, + ) + .await; return }, AssignmentCheckResult::Bad(error) => { @@ -874,7 +916,13 @@ impl State { %error, "Got a bad assignment from peer", ); - modify_reputation(ctx.sender(), peer_id, COST_INVALID_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + COST_INVALID_MESSAGE, + ) + .await; return }, } @@ -1024,7 +1072,13 @@ impl State { _ => { if let Some(peer_id) = source.peer_id() { if !self.recent_outdated_blocks.is_recent_outdated(&block_hash) { - modify_reputation(ctx.sender(), peer_id, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + COST_UNEXPECTED_MESSAGE, + ) + .await; } } return @@ -1043,7 +1097,13 @@ impl State { ?message_subject, "Unknown approval assignment", ); - modify_reputation(ctx.sender(), peer_id, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + COST_UNEXPECTED_MESSAGE, + ) + .await; return } @@ -1060,7 +1120,13 @@ impl State { "Duplicate approval", ); - modify_reputation(ctx.sender(), peer_id, COST_DUPLICATE_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + COST_DUPLICATE_MESSAGE, + ) + .await; } return } @@ -1072,14 +1138,26 @@ impl State { ?message_subject, "Approval from a peer is out of view", ); - modify_reputation(ctx.sender(), peer_id, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + COST_UNEXPECTED_MESSAGE, + ) + .await; }, } // if the approval is known to be valid, reward the peer if entry.knowledge.contains(&message_subject, message_kind) { gum::trace!(target: LOG_TARGET, ?peer_id, ?message_subject, "Known approval"); - modify_reputation(ctx.sender(), peer_id, BENEFIT_VALID_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + BENEFIT_VALID_MESSAGE, + ) + .await; if let Some(peer_knowledge) = entry.known_by.get_mut(&peer_id) { peer_knowledge.received.insert(message_subject.clone(), message_kind); } @@ -1110,7 +1188,13 @@ impl State { ); match result { ApprovalCheckResult::Accepted => { - modify_reputation(ctx.sender(), peer_id, BENEFIT_VALID_MESSAGE_FIRST).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + BENEFIT_VALID_MESSAGE_FIRST, + ) + .await; entry.knowledge.insert(message_subject.clone(), message_kind); if let Some(peer_knowledge) = entry.known_by.get_mut(&peer_id) { @@ -1118,7 +1202,13 @@ impl State { } }, ApprovalCheckResult::Bad(error) => { - modify_reputation(ctx.sender(), peer_id, COST_INVALID_MESSAGE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + peer_id, + COST_INVALID_MESSAGE, + ) + .await; gum::info!( target: LOG_TARGET, ?peer_id, @@ -1669,6 +1759,7 @@ async fn adjust_required_routing_and_propagate message, - Err(e) => { - gum::debug!(target: LOG_TARGET, err = ?e, "Failed to receive a message from Overseer, exiting"); - return + select! { + _ = reputation_delay => { + state.reputation.send(ctx.sender()).await; + reputation_delay = new_reputation_delay(); }, - }; - match message { - FromOrchestra::Communication { msg } => - Self::handle_incoming(&mut ctx, state, msg, &self.metrics, rng).await, - FromOrchestra::Signal(OverseerSignal::ActiveLeaves(update)) => { - gum::trace!(target: LOG_TARGET, "active leaves signal (ignored)"); - // the relay chain blocks relevant to the approval subsystems - // are those that are available, but not finalized yet - // actived and deactivated heads hence are irrelevant to this subsystem, other than - // for tracing purposes. - if let Some(activated) = update.activated { - let head = activated.hash; - let approval_distribution_span = - jaeger::PerLeafSpan::new(activated.span, "approval-distribution"); - state.spans.insert(head, approval_distribution_span); + message = ctx.recv().fuse() => { + let message = match message { + Ok(message) => message, + Err(e) => { + gum::debug!(target: LOG_TARGET, err = ?e, "Failed to receive a message from Overseer, exiting"); + return + }, + }; + match message { + FromOrchestra::Communication { msg } => + Self::handle_incoming(&mut ctx, state, msg, &self.metrics, rng).await, + FromOrchestra::Signal(OverseerSignal::ActiveLeaves(update)) => { + gum::trace!(target: LOG_TARGET, "active leaves signal (ignored)"); + // the relay chain blocks relevant to the approval subsystems + // are those that are available, but not finalized yet + // actived and deactivated heads hence are irrelevant to this subsystem, other than + // for tracing purposes. + if let Some(activated) = update.activated { + let head = activated.hash; + let approval_distribution_span = + jaeger::PerLeafSpan::new(activated.span, "approval-distribution"); + state.spans.insert(head, approval_distribution_span); + } + }, + FromOrchestra::Signal(OverseerSignal::BlockFinalized(_hash, number)) => { + gum::trace!(target: LOG_TARGET, number = %number, "finalized signal"); + state.handle_block_finalized(&mut ctx, &self.metrics, number).await; + }, + FromOrchestra::Signal(OverseerSignal::Conclude) => return, } }, - FromOrchestra::Signal(OverseerSignal::BlockFinalized(_hash, number)) => { - gum::trace!(target: LOG_TARGET, number = %number, "finalized signal"); - state.handle_block_finalized(&mut ctx, &self.metrics, number).await; - }, - FromOrchestra::Signal(OverseerSignal::Conclude) => return, } } } diff --git a/node/network/approval-distribution/src/tests.rs b/node/network/approval-distribution/src/tests.rs index f4b507b18fd6..979f0ada4ee6 100644 --- a/node/network/approval-distribution/src/tests.rs +++ b/node/network/approval-distribution/src/tests.rs @@ -26,9 +26,11 @@ use polkadot_node_network_protocol::{ use polkadot_node_primitives::approval::{ AssignmentCertKind, VrfOutput, VrfProof, VrfSignature, RELAY_VRF_MODULO_CONTEXT, }; -use polkadot_node_subsystem::messages::{network_bridge_event, AllMessages, ApprovalCheckError}; +use polkadot_node_subsystem::messages::{ + network_bridge_event, AllMessages, ApprovalCheckError, ReportPeerMessage, +}; use polkadot_node_subsystem_test_helpers as test_helpers; -use polkadot_node_subsystem_util::TimeoutExt as _; +use polkadot_node_subsystem_util::{reputation::add_reputation, TimeoutExt as _}; use polkadot_primitives::{AuthorityDiscoveryId, BlakeTwo256, HashT}; use polkadot_primitives_test_helpers::dummy_signature; use rand::SeedableRng; @@ -54,7 +56,8 @@ fn test_harness>( { let mut rng = rand_chacha::ChaCha12Rng::seed_from_u64(12345); - let subsystem = subsystem.run_inner(context, &mut state, &mut rng); + let subsystem = + subsystem.run_inner(context, &mut state, REPUTATION_CHANGE_TEST_INTERVAL, &mut rng); let test_fut = test_fn(virtual_overseer); @@ -78,6 +81,7 @@ fn test_harness>( } const TIMEOUT: Duration = Duration::from_millis(200); +const REPUTATION_CHANGE_TEST_INTERVAL: Duration = Duration::from_millis(1); async fn overseer_send(overseer: &mut VirtualOverseer, msg: ApprovalDistributionMessage) { gum::trace!(msg = ?msg, "Sending message"); @@ -273,22 +277,46 @@ fn fake_assignment_cert(block_hash: Hash, validator: ValidatorIndex) -> Indirect async fn expect_reputation_change( virtual_overseer: &mut VirtualOverseer, peer_id: &PeerId, - expected_reputation_change: Rep, + rep: Rep, ) { assert_matches!( overseer_recv(virtual_overseer).await, - AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer( - rep_peer, - rep, - ) - ) => { - assert_eq!(peer_id, &rep_peer); - assert_eq!(expected_reputation_change, rep); + AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer( + ReportPeerMessage::Single(p, r), + )) => { + assert_eq!(p, *peer_id); + assert_eq!(r, rep.into()); } ); } +async fn expect_reputation_changes( + virtual_overseer: &mut VirtualOverseer, + peer_id: &PeerId, + reps: Vec, +) { + let mut acc = HashMap::new(); + for rep in reps { + add_reputation(&mut acc, *peer_id, rep); + } + assert_matches!( + overseer_recv(virtual_overseer).await, + AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer( + ReportPeerMessage::Batch(v), + )) => { + assert_eq!(v, acc); + } + ); +} + +fn state_without_reputation_delay() -> State { + State { reputation: ReputationAggregator::new(|_| true), ..Default::default() } +} + +fn state_with_reputation_delay() -> State { + State { reputation: ReputationAggregator::new(|_| false), ..Default::default() } +} + /// import an assignment /// connect a new peer /// the new peer sends us the same assignment @@ -301,7 +329,7 @@ fn try_import_the_same_assignment() { let parent_hash = Hash::repeat_byte(0xFF); let hash = Hash::repeat_byte(0xAA); - let _ = test_harness(State::default(), |mut virtual_overseer| async move { + let _ = test_harness(state_without_reputation_delay(), |mut virtual_overseer| async move { let overseer = &mut virtual_overseer; // setup peers setup_peer_with_view(overseer, &peer_a, view![]).await; @@ -373,6 +401,65 @@ fn try_import_the_same_assignment() { }); } +/// import an assignment +/// connect a new peer +/// state sends aggregated reputation change +#[test] +fn delay_reputation_change() { + let peer = PeerId::random(); + let parent_hash = Hash::repeat_byte(0xFF); + let hash = Hash::repeat_byte(0xAA); + + let _ = test_harness(state_with_reputation_delay(), |mut virtual_overseer| async move { + let overseer = &mut virtual_overseer; + + // Setup peers + setup_peer_with_view(overseer, &peer, view![]).await; + + // new block `hash_a` with 1 candidates + let meta = BlockApprovalMeta { + hash, + parent_hash, + number: 2, + candidates: vec![Default::default(); 1], + slot: 1.into(), + session: 1, + }; + let msg = ApprovalDistributionMessage::NewBlocks(vec![meta]); + overseer_send(overseer, msg).await; + + // send the assignment related to `hash` + let validator_index = ValidatorIndex(0); + let cert = fake_assignment_cert(hash, validator_index); + let assignments = vec![(cert.clone(), 0u32)]; + + let msg = protocol_v1::ApprovalDistributionMessage::Assignments(assignments.clone()); + send_message_from_peer(overseer, &peer, msg).await; + + // send an `Accept` message from the Approval Voting subsystem + assert_matches!( + overseer_recv(overseer).await, + AllMessages::ApprovalVoting(ApprovalVotingMessage::CheckAndImportAssignment( + assignment, + 0u32, + tx, + )) => { + assert_eq!(assignment, cert); + tx.send(AssignmentCheckResult::Accepted).unwrap(); + } + ); + expect_reputation_changes( + overseer, + &peer, + vec![COST_UNEXPECTED_MESSAGE, BENEFIT_VALID_MESSAGE_FIRST], + ) + .await; + assert!(overseer.recv().timeout(TIMEOUT).await.is_none(), "no message should be sent"); + + virtual_overseer + }); +} + /// /// /// 1. Send a view update that removes block B from their view. @@ -385,7 +472,7 @@ fn spam_attack_results_in_negative_reputation_change() { let peer_a = PeerId::random(); let hash_b = Hash::repeat_byte(0xBB); - let _ = test_harness(State::default(), |mut virtual_overseer| async move { + let _ = test_harness(state_without_reputation_delay(), |mut virtual_overseer| async move { let overseer = &mut virtual_overseer; let peer = &peer_a; setup_peer_with_view(overseer, peer, view![]).await; @@ -469,7 +556,7 @@ fn peer_sending_us_the_same_we_just_sent_them_is_ok() { let peer_a = PeerId::random(); let hash = Hash::repeat_byte(0xAA); - let _ = test_harness(State::default(), |mut virtual_overseer| async move { + let _ = test_harness(state_without_reputation_delay(), |mut virtual_overseer| async move { let overseer = &mut virtual_overseer; let peer = &peer_a; setup_peer_with_view(overseer, peer, view![]).await; @@ -545,7 +632,7 @@ fn import_approval_happy_path() { let parent_hash = Hash::repeat_byte(0xFF); let hash = Hash::repeat_byte(0xAA); - let _ = test_harness(State::default(), |mut virtual_overseer| async move { + let _ = test_harness(state_without_reputation_delay(), |mut virtual_overseer| async move { let overseer = &mut virtual_overseer; // setup peers setup_peer_with_view(overseer, &peer_a, view![]).await; @@ -633,7 +720,7 @@ fn import_approval_bad() { let parent_hash = Hash::repeat_byte(0xFF); let hash = Hash::repeat_byte(0xAA); - let _ = test_harness(State::default(), |mut virtual_overseer| async move { + let _ = test_harness(state_without_reputation_delay(), |mut virtual_overseer| async move { let overseer = &mut virtual_overseer; // setup peers setup_peer_with_view(overseer, &peer_a, view![]).await; @@ -942,7 +1029,7 @@ fn import_remotely_then_locally() { let hash = Hash::repeat_byte(0xAA); let peer = &peer_a; - let _ = test_harness(State::default(), |mut virtual_overseer| async move { + let _ = test_harness(state_without_reputation_delay(), |mut virtual_overseer| async move { let overseer = &mut virtual_overseer; // setup the peer setup_peer_with_view(overseer, peer, view![hash]).await; @@ -1114,7 +1201,7 @@ fn race_condition_in_local_vs_remote_view_update() { let peer_a = PeerId::random(); let hash_b = Hash::repeat_byte(0xBB); - let _ = test_harness(State::default(), |mut virtual_overseer| async move { + let _ = test_harness(state_without_reputation_delay(), |mut virtual_overseer| async move { let overseer = &mut virtual_overseer; let peer = &peer_a; @@ -1294,7 +1381,7 @@ fn propagates_assignments_along_unshared_dimension() { let peers = make_peers_and_authority_ids(100); - let _ = test_harness(State::default(), |mut virtual_overseer| async move { + let _ = test_harness(state_without_reputation_delay(), |mut virtual_overseer| async move { let overseer = &mut virtual_overseer; // Connect all peers. @@ -1883,7 +1970,7 @@ fn non_originator_aggression_l1() { let peers = make_peers_and_authority_ids(100); - let mut state = State::default(); + let mut state = state_without_reputation_delay(); state.aggression_config.resend_unfinalized_period = None; let aggression_l1_threshold = state.aggression_config.l1_threshold.clone().unwrap(); @@ -1987,7 +2074,7 @@ fn non_originator_aggression_l2() { let peers = make_peers_and_authority_ids(100); - let mut state = State::default(); + let mut state = state_without_reputation_delay(); state.aggression_config.resend_unfinalized_period = None; let aggression_l1_threshold = state.aggression_config.l1_threshold.clone().unwrap(); @@ -2154,7 +2241,7 @@ fn resends_messages_periodically() { let peers = make_peers_and_authority_ids(100); - let mut state = State::default(); + let mut state = state_without_reputation_delay(); state.aggression_config.l1_threshold = None; state.aggression_config.l2_threshold = None; state.aggression_config.resend_unfinalized_period = Some(2); @@ -2298,7 +2385,8 @@ fn batch_test_round(message_count: usize) { let subsystem = ApprovalDistribution::new(Default::default()); let mut rng = rand_chacha::ChaCha12Rng::seed_from_u64(12345); let mut sender = context.sender().clone(); - let subsystem = subsystem.run_inner(context, &mut state, &mut rng); + let subsystem = + subsystem.run_inner(context, &mut state, REPUTATION_CHANGE_TEST_INTERVAL, &mut rng); let test_fut = async move { let overseer = &mut virtual_overseer; diff --git a/node/network/bitfield-distribution/Cargo.toml b/node/network/bitfield-distribution/Cargo.toml index 8ac7c2ac6bfb..8f7f00d6a682 100644 --- a/node/network/bitfield-distribution/Cargo.toml +++ b/node/network/bitfield-distribution/Cargo.toml @@ -6,6 +6,7 @@ edition.workspace = true [dependencies] futures = "0.3.21" +futures-timer = "3.0.2" gum = { package = "tracing-gum", path = "../../gum" } polkadot-primitives = { path = "../../../primitives" } polkadot-node-subsystem = {path = "../../subsystem" } diff --git a/node/network/bitfield-distribution/src/lib.rs b/node/network/bitfield-distribution/src/lib.rs index a3dcaf0f2ff3..ca407ba2de8c 100644 --- a/node/network/bitfield-distribution/src/lib.rs +++ b/node/network/bitfield-distribution/src/lib.rs @@ -35,11 +35,18 @@ use polkadot_node_subsystem::{ jaeger, messages::*, overseer, ActiveLeavesUpdate, FromOrchestra, OverseerSignal, PerLeafSpan, SpawnedSubsystem, SubsystemError, SubsystemResult, }; -use polkadot_node_subsystem_util::{self as util}; +use polkadot_node_subsystem_util::{ + self as util, + reputation::{ReputationAggregator, REPUTATION_CHANGE_INTERVAL}, +}; +use futures::select; use polkadot_primitives::{Hash, SignedAvailabilityBitfield, SigningContext, ValidatorId}; use rand::{CryptoRng, Rng, SeedableRng}; -use std::collections::{HashMap, HashSet}; +use std::{ + collections::{HashMap, HashSet}, + time::Duration, +}; use self::metrics::Metrics; @@ -97,6 +104,9 @@ struct ProtocolState { /// Additional data particular to a relay parent. per_relay_parent: HashMap, + + /// Aggregated reputation change + reputation: ReputationAggregator, } /// Data for a particular relay parent. @@ -178,95 +188,107 @@ impl BitfieldDistribution { async fn run(self, ctx: Context) { let mut state = ProtocolState::default(); let mut rng = rand::rngs::StdRng::from_entropy(); - self.run_inner(ctx, &mut state, &mut rng).await + self.run_inner(ctx, &mut state, REPUTATION_CHANGE_INTERVAL, &mut rng).await } async fn run_inner( self, mut ctx: Context, state: &mut ProtocolState, + reputation_interval: Duration, rng: &mut (impl CryptoRng + Rng), ) { // work: process incoming messages from the overseer and process accordingly. + let new_reputation_delay = || futures_timer::Delay::new(reputation_interval).fuse(); + let mut reputation_delay = new_reputation_delay(); + loop { - let message = match ctx.recv().await { - Ok(message) => message, - Err(err) => { - gum::error!( - target: LOG_TARGET, - ?err, - "Failed to receive a message from Overseer, exiting" - ); - return - }, - }; - match message { - FromOrchestra::Communication { - msg: - BitfieldDistributionMessage::DistributeBitfield( - relay_parent, - signed_availability, - ), - } => { - gum::trace!(target: LOG_TARGET, ?relay_parent, "Processing DistributeBitfield"); - handle_bitfield_distribution( - &mut ctx, - state, - &self.metrics, - relay_parent, - signed_availability, - rng, - ) - .await; + select! { + _ = reputation_delay => { + state.reputation.send(ctx.sender()).await; + reputation_delay = new_reputation_delay(); }, - FromOrchestra::Communication { - msg: BitfieldDistributionMessage::NetworkBridgeUpdate(event), - } => { - gum::trace!(target: LOG_TARGET, "Processing NetworkMessage"); - // a network message was received - handle_network_msg(&mut ctx, state, &self.metrics, event, rng).await; - }, - FromOrchestra::Signal(OverseerSignal::ActiveLeaves(ActiveLeavesUpdate { - activated, - .. - })) => { - let _timer = self.metrics.time_active_leaves_update(); - - if let Some(activated) = activated { - let relay_parent = activated.hash; - - gum::trace!(target: LOG_TARGET, ?relay_parent, "activated"); - let span = PerLeafSpan::new(activated.span, "bitfield-distribution"); - let _span = span.child("query-basics"); - - // query validator set and signing context per relay_parent once only - match query_basics(&mut ctx, relay_parent).await { - Ok(Some((validator_set, signing_context))) => { - // If our runtime API fails, we don't take down the node, - // but we might alter peers' reputations erroneously as a result - // of not having the correct bookkeeping. If we have lost a race - // with state pruning, it is unlikely that peers will be sending - // us anything to do with this relay-parent anyway. - let _ = state.per_relay_parent.insert( + message = ctx.recv().fuse() => { + let message = match message { + Ok(message) => message, + Err(err) => { + gum::error!( + target: LOG_TARGET, + ?err, + "Failed to receive a message from Overseer, exiting" + ); + return + }, + }; + match message { + FromOrchestra::Communication { + msg: + BitfieldDistributionMessage::DistributeBitfield( relay_parent, - PerRelayParentData::new(signing_context, validator_set, span), - ); - }, - Err(err) => { - gum::warn!(target: LOG_TARGET, ?err, "query_basics has failed"); - }, - _ => {}, - } + signed_availability, + ), + } => { + gum::trace!(target: LOG_TARGET, ?relay_parent, "Processing DistributeBitfield"); + handle_bitfield_distribution( + &mut ctx, + state, + &self.metrics, + relay_parent, + signed_availability, + rng, + ) + .await; + }, + FromOrchestra::Communication { + msg: BitfieldDistributionMessage::NetworkBridgeUpdate(event), + } => { + gum::trace!(target: LOG_TARGET, "Processing NetworkMessage"); + // a network message was received + handle_network_msg(&mut ctx, state, &self.metrics, event, rng).await; + }, + FromOrchestra::Signal(OverseerSignal::ActiveLeaves(ActiveLeavesUpdate { + activated, + .. + })) => { + let _timer = self.metrics.time_active_leaves_update(); + + if let Some(activated) = activated { + let relay_parent = activated.hash; + + gum::trace!(target: LOG_TARGET, ?relay_parent, "activated"); + let span = PerLeafSpan::new(activated.span, "bitfield-distribution"); + let _span = span.child("query-basics"); + + // query validator set and signing context per relay_parent once only + match query_basics(&mut ctx, relay_parent).await { + Ok(Some((validator_set, signing_context))) => { + // If our runtime API fails, we don't take down the node, + // but we might alter peers' reputations erroneously as a result + // of not having the correct bookkeeping. If we have lost a race + // with state pruning, it is unlikely that peers will be sending + // us anything to do with this relay-parent anyway. + let _ = state.per_relay_parent.insert( + relay_parent, + PerRelayParentData::new(signing_context, validator_set, span), + ); + }, + Err(err) => { + gum::warn!(target: LOG_TARGET, ?err, "query_basics has failed"); + }, + _ => {}, + } + } + }, + FromOrchestra::Signal(OverseerSignal::BlockFinalized(hash, number)) => { + gum::trace!(target: LOG_TARGET, ?hash, %number, "block finalized"); + }, + FromOrchestra::Signal(OverseerSignal::Conclude) => { + gum::info!(target: LOG_TARGET, "Conclude"); + return + }, } - }, - FromOrchestra::Signal(OverseerSignal::BlockFinalized(hash, number)) => { - gum::trace!(target: LOG_TARGET, ?hash, %number, "block finalized"); - }, - FromOrchestra::Signal(OverseerSignal::Conclude) => { - gum::info!(target: LOG_TARGET, "Conclude"); - return - }, + } } } } @@ -274,6 +296,7 @@ impl BitfieldDistribution { /// Modify the reputation of a peer based on its behavior. async fn modify_reputation( + reputation: &mut ReputationAggregator, sender: &mut impl overseer::BitfieldDistributionSenderTrait, relay_parent: Hash, peer: PeerId, @@ -281,7 +304,7 @@ async fn modify_reputation( ) { gum::trace!(target: LOG_TARGET, ?relay_parent, ?rep, %peer, "reputation change"); - sender.send_message(NetworkBridgeTxMessage::ReportPeer(peer, rep)).await + reputation.modify(sender, peer, rep).await; } /// Distribute a given valid and signature checked bitfield message. /// @@ -454,7 +477,14 @@ async fn process_incoming_peer_message( ); // we don't care about this, not part of our view. if !state.view.contains(&relay_parent) { - modify_reputation(ctx.sender(), relay_parent, origin, COST_NOT_IN_VIEW).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + relay_parent, + origin, + COST_NOT_IN_VIEW, + ) + .await; return } @@ -463,7 +493,14 @@ async fn process_incoming_peer_message( let job_data: &mut _ = if let Some(ref mut job_data) = job_data { job_data } else { - modify_reputation(ctx.sender(), relay_parent, origin, COST_NOT_IN_VIEW).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + relay_parent, + origin, + COST_NOT_IN_VIEW, + ) + .await; return }; @@ -480,7 +517,14 @@ async fn process_incoming_peer_message( let validator_set = &job_data.validator_set; if validator_set.is_empty() { gum::trace!(target: LOG_TARGET, ?relay_parent, ?origin, "Validator set is empty",); - modify_reputation(ctx.sender(), relay_parent, origin, COST_MISSING_PEER_SESSION_KEY).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + relay_parent, + origin, + COST_MISSING_PEER_SESSION_KEY, + ) + .await; return } @@ -490,7 +534,14 @@ async fn process_incoming_peer_message( let validator = if let Some(validator) = validator_set.get(validator_index.0 as usize) { validator.clone() } else { - modify_reputation(ctx.sender(), relay_parent, origin, COST_VALIDATOR_INDEX_INVALID).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + relay_parent, + origin, + COST_VALIDATOR_INDEX_INVALID, + ) + .await; return }; @@ -503,7 +554,14 @@ async fn process_incoming_peer_message( received_set.insert(validator.clone()); } else { gum::trace!(target: LOG_TARGET, ?validator_index, ?origin, "Duplicate message"); - modify_reputation(ctx.sender(), relay_parent, origin, COST_PEER_DUPLICATE_MESSAGE).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + relay_parent, + origin, + COST_PEER_DUPLICATE_MESSAGE, + ) + .await; return }; @@ -517,13 +575,27 @@ async fn process_incoming_peer_message( "already received a message for validator", ); if old_message.signed_availability.as_unchecked() == &bitfield { - modify_reputation(ctx.sender(), relay_parent, origin, BENEFIT_VALID_MESSAGE).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + relay_parent, + origin, + BENEFIT_VALID_MESSAGE, + ) + .await; } return } let signed_availability = match bitfield.try_into_checked(&signing_context, &validator) { Err(_) => { - modify_reputation(ctx.sender(), relay_parent, origin, COST_SIGNATURE_INVALID).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + relay_parent, + origin, + COST_SIGNATURE_INVALID, + ) + .await; return }, Ok(bitfield) => bitfield, @@ -552,7 +624,14 @@ async fn process_incoming_peer_message( ) .await; - modify_reputation(ctx.sender(), relay_parent, origin, BENEFIT_VALID_MESSAGE_FIRST).await + modify_reputation( + &mut state.reputation, + ctx.sender(), + relay_parent, + origin, + BENEFIT_VALID_MESSAGE_FIRST, + ) + .await } /// Deal with network bridge updates and track what needs to be tracked diff --git a/node/network/bitfield-distribution/src/tests.rs b/node/network/bitfield-distribution/src/tests.rs index f1bdca0dc584..8e640e7e25d7 100644 --- a/node/network/bitfield-distribution/src/tests.rs +++ b/node/network/bitfield-distribution/src/tests.rs @@ -28,9 +28,10 @@ use polkadot_node_network_protocol::{ use polkadot_node_subsystem::{ jaeger, jaeger::{PerLeafSpan, Span}, + messages::ReportPeerMessage, }; use polkadot_node_subsystem_test_helpers::make_subsystem_context; -use polkadot_node_subsystem_util::TimeoutExt; +use polkadot_node_subsystem_util::{reputation::add_reputation, TimeoutExt}; use polkadot_primitives::{AvailabilityBitfield, Signed, ValidatorIndex}; use rand_chacha::ChaCha12Rng; use sp_application_crypto::AppCrypto; @@ -87,14 +88,16 @@ fn prewarmed_state( peer_views: peers.iter().cloned().map(|peer| (peer, view!(relay_parent))).collect(), topologies, view: our_view!(relay_parent), + reputation: ReputationAggregator::new(|_| true), } } fn state_with_view( view: OurView, relay_parent: Hash, + reputation: ReputationAggregator, ) -> (ProtocolState, SigningContext, KeystorePtr, ValidatorId) { - let mut state = ProtocolState::default(); + let mut state = ProtocolState { reputation, ..Default::default() }; let signing_context = SigningContext { session_index: 1, parent_hash: relay_parent.clone() }; @@ -234,10 +237,10 @@ fn receive_invalid_signature() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) ) => { assert_eq!(peer, peer_b); - assert_eq!(rep, COST_SIGNATURE_INVALID) + assert_eq!(rep.value, COST_SIGNATURE_INVALID.cost_or_benefit()) } ); }); @@ -258,8 +261,11 @@ fn receive_invalid_validator_index() { assert_ne!(peer_a, peer_b); // validator 0 key pair - let (mut state, signing_context, keystore, validator) = - state_with_view(our_view![hash_a, hash_b], hash_a.clone()); + let (mut state, signing_context, keystore, validator) = state_with_view( + our_view![hash_a, hash_b], + hash_a.clone(), + ReputationAggregator::new(|_| true), + ); state.peer_views.insert(peer_b.clone(), view![hash_a]); @@ -295,10 +301,10 @@ fn receive_invalid_validator_index() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) ) => { assert_eq!(peer, peer_b); - assert_eq!(rep, COST_VALIDATOR_INDEX_INVALID) + assert_eq!(rep.value, COST_VALIDATOR_INDEX_INVALID.cost_or_benefit()) } ); }); @@ -319,8 +325,11 @@ fn receive_duplicate_messages() { assert_ne!(peer_a, peer_b); // validator 0 key pair - let (mut state, signing_context, keystore, validator) = - state_with_view(our_view![hash_a, hash_b], hash_a.clone()); + let (mut state, signing_context, keystore, validator) = state_with_view( + our_view![hash_a, hash_b], + hash_a.clone(), + ReputationAggregator::new(|_| true), + ); // create a signed message by validator 0 let payload = AvailabilityBitfield(bitvec![u8, bitvec::order::Lsb0; 1u8; 32]); @@ -371,10 +380,10 @@ fn receive_duplicate_messages() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) ) => { assert_eq!(peer, peer_b); - assert_eq!(rep, BENEFIT_VALID_MESSAGE_FIRST) + assert_eq!(rep.value, BENEFIT_VALID_MESSAGE_FIRST.cost_or_benefit()) } ); @@ -390,10 +399,10 @@ fn receive_duplicate_messages() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) ) => { assert_eq!(peer, peer_a); - assert_eq!(rep, BENEFIT_VALID_MESSAGE) + assert_eq!(rep.value, BENEFIT_VALID_MESSAGE.cost_or_benefit()) } ); @@ -409,15 +418,126 @@ fn receive_duplicate_messages() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) ) => { assert_eq!(peer, peer_b); - assert_eq!(rep, COST_PEER_DUPLICATE_MESSAGE) + assert_eq!(rep.value, COST_PEER_DUPLICATE_MESSAGE.cost_or_benefit()) } ); }); } +#[test] +fn delay_reputation_change() { + let _ = env_logger::builder() + .filter(None, log::LevelFilter::Trace) + .is_test(true) + .try_init(); + + let hash_a: Hash = [0; 32].into(); + let hash_b: Hash = [1; 32].into(); + + let peer = PeerId::random(); + + // validator 0 key pair + let (mut state, signing_context, keystore, validator) = state_with_view( + our_view![hash_a, hash_b], + hash_a.clone(), + ReputationAggregator::new(|_| false), + ); + + // create a signed message by validator 0 + let payload = AvailabilityBitfield(bitvec![u8, bitvec::order::Lsb0; 1u8; 32]); + let signed_bitfield = Signed::::sign( + &keystore, + payload, + &signing_context, + ValidatorIndex(0), + &validator, + ) + .ok() + .flatten() + .expect("should be signed"); + + let msg = BitfieldGossipMessage { + relay_parent: hash_a.clone(), + signed_availability: signed_bitfield.clone(), + }; + + let pool = sp_core::testing::TaskExecutor::new(); + let (ctx, mut handle) = make_subsystem_context::(pool); + let mut rng = dummy_rng(); + let reputation_interval = Duration::from_millis(1); + + let bg = async move { + let subsystem = BitfieldDistribution::new(Default::default()); + subsystem.run_inner(ctx, &mut state, reputation_interval, &mut rng).await; + }; + + let test_fut = async move { + // send a first message + handle + .send(FromOrchestra::Communication { + msg: BitfieldDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerMessage( + peer.clone(), + msg.clone().into_network_message(), + ), + ), + }) + .await; + + // none of our peers has any interest in any messages + // so we do not receive a network send type message here + // but only the one for the next subsystem + assert_matches!( + handle.recv().await, + AllMessages::Provisioner(ProvisionerMessage::ProvisionableData( + _, + ProvisionableData::Bitfield(hash, signed) + )) => { + assert_eq!(hash, hash_a); + assert_eq!(signed, signed_bitfield) + } + ); + + // let peer send the initial message again + handle + .send(FromOrchestra::Communication { + msg: BitfieldDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerMessage( + peer.clone(), + msg.clone().into_network_message(), + ), + ), + }) + .await; + + // Wait enough to fire reputation delay + futures_timer::Delay::new(reputation_interval).await; + + assert_matches!( + handle.recv().await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Batch(v)) + ) => { + let mut expected_change = HashMap::new(); + for rep in vec![BENEFIT_VALID_MESSAGE_FIRST, COST_PEER_DUPLICATE_MESSAGE] { + add_reputation(&mut expected_change, peer, rep) + } + assert_eq!(v, expected_change) + } + ); + + handle.send(FromOrchestra::Signal(OverseerSignal::Conclude)).await; + }; + + futures::pin_mut!(bg); + futures::pin_mut!(test_fut); + + executor::block_on(futures::future::join(bg, test_fut)); +} + #[test] fn do_not_relay_message_twice() { let _ = env_logger::builder() @@ -433,7 +553,7 @@ fn do_not_relay_message_twice() { // validator 0 key pair let (mut state, signing_context, keystore, validator) = - state_with_view(our_view![hash], hash.clone()); + state_with_view(our_view![hash], hash.clone(), ReputationAggregator::new(|_| true)); // create a signed message by validator 0 let payload = AvailabilityBitfield(bitvec![u8, bitvec::order::Lsb0; 1u8; 32]); @@ -543,8 +663,11 @@ fn changing_view() { assert_ne!(peer_a, peer_b); // validator 0 key pair - let (mut state, signing_context, keystore, validator) = - state_with_view(our_view![hash_a, hash_b], hash_a.clone()); + let (mut state, signing_context, keystore, validator) = state_with_view( + our_view![hash_a, hash_b], + hash_a.clone(), + ReputationAggregator::new(|_| true), + ); // create a signed message by validator 0 let payload = AvailabilityBitfield(bitvec![u8, bitvec::order::Lsb0; 1u8; 32]); @@ -618,10 +741,10 @@ fn changing_view() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) ) => { assert_eq!(peer, peer_b); - assert_eq!(rep, BENEFIT_VALID_MESSAGE_FIRST) + assert_eq!(rep.value, BENEFIT_VALID_MESSAGE_FIRST.cost_or_benefit()) } ); @@ -650,10 +773,10 @@ fn changing_view() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) ) => { assert_eq!(peer, peer_b); - assert_eq!(rep, COST_PEER_DUPLICATE_MESSAGE) + assert_eq!(rep.value, COST_PEER_DUPLICATE_MESSAGE.cost_or_benefit()) } ); @@ -682,10 +805,10 @@ fn changing_view() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) ) => { assert_eq!(peer, peer_a); - assert_eq!(rep, COST_NOT_IN_VIEW) + assert_eq!(rep.value, COST_NOT_IN_VIEW.cost_or_benefit()) } ); }); @@ -705,7 +828,8 @@ fn do_not_send_message_back_to_origin() { assert_ne!(peer_a, peer_b); // validator 0 key pair - let (mut state, signing_context, keystore, validator) = state_with_view(our_view![hash], hash); + let (mut state, signing_context, keystore, validator) = + state_with_view(our_view![hash], hash, ReputationAggregator::new(|_| true)); // create a signed message by validator 0 let payload = AvailabilityBitfield(bitvec![u8, bitvec::order::Lsb0; 1u8; 32]); @@ -767,10 +891,10 @@ fn do_not_send_message_back_to_origin() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) ) => { assert_eq!(peer, peer_b); - assert_eq!(rep, BENEFIT_VALID_MESSAGE_FIRST) + assert_eq!(rep.value, BENEFIT_VALID_MESSAGE_FIRST.cost_or_benefit()) } ); }); @@ -786,7 +910,8 @@ fn topology_test() { let hash: Hash = [0; 32].into(); // validator 0 key pair - let (mut state, signing_context, keystore, validator) = state_with_view(our_view![hash], hash); + let (mut state, signing_context, keystore, validator) = + state_with_view(our_view![hash], hash, ReputationAggregator::new(|_| true)); // Create a simple grid without any shuffling. We occupy position 1. let topology_peer_info: Vec<_> = (0..49) @@ -888,10 +1013,10 @@ fn topology_test() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) ) => { assert_eq!(peer, peers_x[0]); - assert_eq!(rep, BENEFIT_VALID_MESSAGE_FIRST) + assert_eq!(rep.value, BENEFIT_VALID_MESSAGE_FIRST.cost_or_benefit()) } ); }); diff --git a/node/network/bridge/src/network.rs b/node/network/bridge/src/network.rs index 9365439ed03c..f309224d175e 100644 --- a/node/network/bridge/src/network.rs +++ b/node/network/bridge/src/network.rs @@ -24,13 +24,13 @@ use parity_scale_codec::Encode; use sc_network::{ config::parse_addr, multiaddr::Multiaddr, types::ProtocolName, Event as NetworkEvent, IfDisconnected, NetworkEventStream, NetworkNotification, NetworkPeers, NetworkRequest, - NetworkService, OutboundFailure, RequestFailure, + NetworkService, OutboundFailure, ReputationChange, RequestFailure, }; use polkadot_node_network_protocol::{ peer_set::{PeerSet, PeerSetProtocolNames, ProtocolVersion}, request_response::{OutgoingRequest, Recipient, ReqProtocolNames, Requests}, - PeerId, UnifiedReputationChange as Rep, + PeerId, }; use polkadot_primitives::{AuthorityDiscoveryId, Block, Hash}; @@ -106,7 +106,7 @@ pub trait Network: Clone + Send + 'static { ); /// Report a given peer as either beneficial (+) or costly (-) according to the given scalar. - fn report_peer(&self, who: PeerId, cost_benefit: Rep); + fn report_peer(&self, who: PeerId, rep: ReputationChange); /// Disconnect a given peer from the protocol specified without harming reputation. fn disconnect_peer(&self, who: PeerId, protocol: ProtocolName); @@ -133,8 +133,8 @@ impl Network for Arc> { NetworkService::remove_peers_from_reserved_set(&**self, protocol, peers); } - fn report_peer(&self, who: PeerId, cost_benefit: Rep) { - NetworkService::report_peer(&**self, who, cost_benefit.into_base_rep()); + fn report_peer(&self, who: PeerId, rep: ReputationChange) { + NetworkService::report_peer(&**self, who, rep); } fn disconnect_peer(&self, who: PeerId, protocol: ProtocolName) { diff --git a/node/network/bridge/src/rx/mod.rs b/node/network/bridge/src/rx/mod.rs index 8b170edf04a3..499a73f0a49a 100644 --- a/node/network/bridge/src/rx/mod.rs +++ b/node/network/bridge/src/rx/mod.rs @@ -364,7 +364,7 @@ where let v_messages = match v_messages { Err(rep) => { gum::debug!(target: LOG_TARGET, action = "ReportPeer"); - network_service.report_peer(remote, rep); + network_service.report_peer(remote, rep.into()); continue }, @@ -395,7 +395,7 @@ where let c_messages = match c_messages { Err(rep) => { gum::debug!(target: LOG_TARGET, action = "ReportPeer"); - network_service.report_peer(remote, rep); + network_service.report_peer(remote, rep.into()); continue }, @@ -441,7 +441,7 @@ where }; for report in reports { - network_service.report_peer(remote, report); + network_service.report_peer(remote, report.into()); } dispatch_validation_events_to_all(events, &mut sender).await; @@ -474,7 +474,7 @@ where }; for report in reports { - network_service.report_peer(remote, report); + network_service.report_peer(remote, report.into()); } dispatch_collation_events_to_all(events, &mut sender).await; diff --git a/node/network/bridge/src/rx/tests.rs b/node/network/bridge/src/rx/tests.rs index 51e895f52f9b..42faaee68361 100644 --- a/node/network/bridge/src/rx/tests.rs +++ b/node/network/bridge/src/rx/tests.rs @@ -27,7 +27,7 @@ use std::{ sync::atomic::{AtomicBool, Ordering}, }; -use sc_network::{Event as NetworkEvent, IfDisconnected, ProtocolName}; +use sc_network::{Event as NetworkEvent, IfDisconnected, ProtocolName, ReputationChange}; use polkadot_node_network_protocol::{ peer_set::PeerSetProtocolNames, @@ -51,12 +51,12 @@ use polkadot_primitives::{AuthorityDiscoveryId, Hash}; use sc_network::Multiaddr; use sp_keyring::Sr25519Keyring; -use crate::{network::Network, validator_discovery::AuthorityDiscovery, Rep}; +use crate::{network::Network, validator_discovery::AuthorityDiscovery}; #[derive(Debug, PartialEq)] pub enum NetworkAction { /// Note a change in reputation for a peer. - ReputationChange(PeerId, Rep), + ReputationChange(PeerId, ReputationChange), /// Disconnect a peer from the given peer-set. DisconnectPeer(PeerId, PeerSet), /// Write a notification to a given peer on the given peer-set. @@ -128,10 +128,10 @@ impl Network for TestNetwork { ) { } - fn report_peer(&self, who: PeerId, cost_benefit: Rep) { + fn report_peer(&self, who: PeerId, rep: ReputationChange) { self.action_tx .lock() - .unbounded_send(NetworkAction::ReputationChange(who, cost_benefit)) + .unbounded_send(NetworkAction::ReputationChange(who, rep)) .unwrap(); } @@ -947,7 +947,7 @@ fn relays_collation_protocol_messages() { let actions = network_handle.next_network_actions(3).await; assert_network_actions_contains( &actions, - &NetworkAction::ReputationChange(peer_a.clone(), UNCONNECTED_PEERSET_COST), + &NetworkAction::ReputationChange(peer_a.clone(), UNCONNECTED_PEERSET_COST.into()), ); // peer B has the message relayed. @@ -1142,7 +1142,7 @@ fn view_finalized_number_can_not_go_down() { let actions = network_handle.next_network_actions(2).await; assert_network_actions_contains( &actions, - &NetworkAction::ReputationChange(peer_a.clone(), MALFORMED_VIEW_COST), + &NetworkAction::ReputationChange(peer_a.clone(), MALFORMED_VIEW_COST.into()), ); virtual_overseer }); diff --git a/node/network/bridge/src/tx/mod.rs b/node/network/bridge/src/tx/mod.rs index 3b9f6b8602d6..ff2e60fbe80b 100644 --- a/node/network/bridge/src/tx/mod.rs +++ b/node/network/bridge/src/tx/mod.rs @@ -24,14 +24,16 @@ use polkadot_node_network_protocol::{ }; use polkadot_node_subsystem::{ - errors::SubsystemError, messages::NetworkBridgeTxMessage, overseer, FromOrchestra, - OverseerSignal, SpawnedSubsystem, + errors::SubsystemError, + messages::{NetworkBridgeTxMessage, ReportPeerMessage}, + overseer, FromOrchestra, OverseerSignal, SpawnedSubsystem, }; /// Peer set info for network initialization. /// /// To be added to [`NetworkConfiguration::extra_sets`]. pub use polkadot_node_network_protocol::peer_set::{peer_sets_info, IsAuthority}; +use sc_network::ReputationChange; use crate::validator_discovery; @@ -148,14 +150,25 @@ where AD: validator_discovery::AuthorityDiscovery + Clone, { match msg { - NetworkBridgeTxMessage::ReportPeer(peer, rep) => { - if !rep.is_benefit() { + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)) => { + if !rep.value.is_positive() { gum::debug!(target: LOG_TARGET, ?peer, ?rep, action = "ReportPeer"); } metrics.on_report_event(); network_service.report_peer(peer, rep); }, + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Batch(batch)) => { + for (peer, score) in batch { + let rep = ReputationChange::new(score, "Aggregated reputation change"); + if !rep.value.is_positive() { + gum::debug!(target: LOG_TARGET, ?peer, ?rep, action = "ReportPeer"); + } + + metrics.on_report_event(); + network_service.report_peer(peer, rep); + } + }, NetworkBridgeTxMessage::DisconnectPeer(peer, peer_set) => { gum::trace!( target: LOG_TARGET, diff --git a/node/network/bridge/src/tx/tests.rs b/node/network/bridge/src/tx/tests.rs index c03c131d9e18..f6ff16237b7d 100644 --- a/node/network/bridge/src/tx/tests.rs +++ b/node/network/bridge/src/tx/tests.rs @@ -22,7 +22,7 @@ use async_trait::async_trait; use parking_lot::Mutex; use std::collections::HashSet; -use sc_network::{Event as NetworkEvent, IfDisconnected, ProtocolName}; +use sc_network::{Event as NetworkEvent, IfDisconnected, ProtocolName, ReputationChange}; use polkadot_node_network_protocol::{ peer_set::PeerSetProtocolNames, @@ -39,12 +39,12 @@ use sp_keyring::Sr25519Keyring; const TIMEOUT: std::time::Duration = polkadot_node_subsystem_test_helpers::TestSubsystemContextHandle::::TIMEOUT; -use crate::{network::Network, validator_discovery::AuthorityDiscovery, Rep}; +use crate::{network::Network, validator_discovery::AuthorityDiscovery}; #[derive(Debug, PartialEq)] pub enum NetworkAction { /// Note a change in reputation for a peer. - ReputationChange(PeerId, Rep), + ReputationChange(PeerId, ReputationChange), /// Disconnect a peer from the given peer-set. DisconnectPeer(PeerId, PeerSet), /// Write a notification to a given peer on the given peer-set. @@ -116,10 +116,10 @@ impl Network for TestNetwork { ) { } - fn report_peer(&self, who: PeerId, cost_benefit: Rep) { + fn report_peer(&self, who: PeerId, rep: ReputationChange) { self.action_tx .lock() - .unbounded_send(NetworkAction::ReputationChange(who, cost_benefit)) + .unbounded_send(NetworkAction::ReputationChange(who, rep)) .unwrap(); } diff --git a/node/network/bridge/src/validator_discovery.rs b/node/network/bridge/src/validator_discovery.rs index 8da08dd53e7f..f5b3346451ca 100644 --- a/node/network/bridge/src/validator_discovery.rs +++ b/node/network/bridge/src/validator_discovery.rs @@ -174,7 +174,7 @@ mod tests { PeerId, }; use polkadot_primitives::Hash; - use sc_network::{Event as NetworkEvent, IfDisconnected, ProtocolName}; + use sc_network::{Event as NetworkEvent, IfDisconnected, ProtocolName, ReputationChange}; use sp_keyring::Sr25519Keyring; use std::collections::{HashMap, HashSet}; @@ -249,7 +249,7 @@ mod tests { ) { } - fn report_peer(&self, _: PeerId, _: crate::Rep) { + fn report_peer(&self, _: PeerId, _: ReputationChange) { panic!() } diff --git a/node/network/collator-protocol/src/collator_side/mod.rs b/node/network/collator-protocol/src/collator_side/mod.rs index 9aaeb0deb9eb..91db405d56b3 100644 --- a/node/network/collator-protocol/src/collator_side/mod.rs +++ b/node/network/collator-protocol/src/collator_side/mod.rs @@ -44,6 +44,7 @@ use polkadot_node_subsystem::{ overseer, FromOrchestra, OverseerSignal, PerLeafSpan, }; use polkadot_node_subsystem_util::{ + reputation::{ReputationAggregator, REPUTATION_CHANGE_INTERVAL}, runtime::{get_availability_cores, get_group_rotation_info, RuntimeInfo}, TimeoutExt, }; @@ -53,7 +54,10 @@ use polkadot_primitives::{ }; use super::LOG_TARGET; -use crate::error::{log_error, Error, FatalError, Result}; +use crate::{ + error::{log_error, Error, FatalError, Result}, + modify_reputation, +}; use fatality::Split; mod metrics; @@ -245,12 +249,20 @@ struct State { /// /// Each future returns the relay parent of the finished collation fetch. active_collation_fetches: ActiveCollationFetches, + + /// Aggregated reputation change + reputation: ReputationAggregator, } impl State { /// Creates a new `State` instance with the given parameters and setting all remaining /// state fields to their default values (i.e. empty). - fn new(local_peer_id: PeerId, collator_pair: CollatorPair, metrics: Metrics) -> State { + fn new( + local_peer_id: PeerId, + collator_pair: CollatorPair, + metrics: Metrics, + reputation: ReputationAggregator, + ) -> State { State { local_peer_id, collator_pair, @@ -267,6 +279,7 @@ impl State { last_connected_at: None, waiting_collation_fetches: Default::default(), active_collation_fetches: Default::default(), + reputation, } } @@ -707,7 +720,7 @@ async fn handle_incoming_peer_message( "AdvertiseCollation message is not expected on the collator side of the protocol", ); - ctx.send_message(NetworkBridgeTxMessage::ReportPeer(origin, COST_UNEXPECTED_MESSAGE)) + modify_reputation(&mut state.reputation, ctx.sender(), origin, COST_UNEXPECTED_MESSAGE) .await; // If we are advertised to, this is another collator, and we should disconnect. @@ -794,8 +807,13 @@ async fn handle_incoming_request( target: LOG_TARGET, "Dropping incoming request as peer has a request in flight already." ); - ctx.send_message(NetworkBridgeTxMessage::ReportPeer(req.peer, COST_APPARENT_FLOOD)) - .await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + req.peer, + COST_APPARENT_FLOOD.into(), + ) + .await; return Ok(()) } @@ -940,15 +958,40 @@ async fn handle_our_view_change(state: &mut State, view: OurView) -> Result<()> /// The collator protocol collator side main loop. #[overseer::contextbounds(CollatorProtocol, prefix = crate::overseer)] pub(crate) async fn run( + ctx: Context, + local_peer_id: PeerId, + collator_pair: CollatorPair, + req_receiver: IncomingRequestReceiver, + metrics: Metrics, +) -> std::result::Result<(), FatalError> { + run_inner( + ctx, + local_peer_id, + collator_pair, + req_receiver, + metrics, + ReputationAggregator::default(), + REPUTATION_CHANGE_INTERVAL, + ) + .await +} + +#[overseer::contextbounds(CollatorProtocol, prefix = crate::overseer)] +async fn run_inner( mut ctx: Context, local_peer_id: PeerId, collator_pair: CollatorPair, mut req_receiver: IncomingRequestReceiver, metrics: Metrics, + reputation: ReputationAggregator, + reputation_interval: Duration, ) -> std::result::Result<(), FatalError> { use OverseerSignal::*; - let mut state = State::new(local_peer_id, collator_pair, metrics); + let new_reputation_delay = || futures_timer::Delay::new(reputation_interval).fuse(); + let mut reputation_delay = new_reputation_delay(); + + let mut state = State::new(local_peer_id, collator_pair, metrics, reputation); let mut runtime = RuntimeInfo::new(None); let reconnect_stream = super::tick_stream(RECONNECT_POLL); @@ -958,6 +1001,10 @@ pub(crate) async fn run( let recv_req = req_receiver.recv(|| vec![COST_INVALID_REQUEST]).fuse(); pin_mut!(recv_req); select! { + _ = reputation_delay => { + state.reputation.send(ctx.sender()).await; + reputation_delay = new_reputation_delay(); + }, msg = ctx.recv().fuse() => match msg.map_err(FatalError::SubsystemReceive)? { FromOrchestra::Communication { msg } => { log_error( diff --git a/node/network/collator-protocol/src/collator_side/tests.rs b/node/network/collator-protocol/src/collator_side/tests.rs index 71a873582aeb..757ef813a3d0 100644 --- a/node/network/collator-protocol/src/collator_side/tests.rs +++ b/node/network/collator-protocol/src/collator_side/tests.rs @@ -38,17 +38,19 @@ use polkadot_node_network_protocol::{ use polkadot_node_primitives::BlockData; use polkadot_node_subsystem::{ jaeger, - messages::{AllMessages, RuntimeApiMessage, RuntimeApiRequest}, + messages::{AllMessages, ReportPeerMessage, RuntimeApiMessage, RuntimeApiRequest}, ActivatedLeaf, ActiveLeavesUpdate, LeafStatus, }; use polkadot_node_subsystem_test_helpers as test_helpers; -use polkadot_node_subsystem_util::TimeoutExt; +use polkadot_node_subsystem_util::{reputation::add_reputation, TimeoutExt}; use polkadot_primitives::{ AuthorityDiscoveryId, CollatorPair, GroupIndex, GroupRotationInfo, IndexedVec, ScheduledCore, SessionIndex, SessionInfo, ValidatorId, ValidatorIndex, }; use polkadot_primitives_test_helpers::TestCandidateBuilder; +const REPUTATION_CHANGE_TEST_INTERVAL: Duration = Duration::from_millis(10); + #[derive(Clone)] struct TestState { para_id: ParaId, @@ -197,6 +199,7 @@ struct TestHarness { fn test_harness>( local_peer_id: PeerId, collator_pair: CollatorPair, + reputation: ReputationAggregator, test: impl FnOnce(TestHarness) -> T, ) { let _ = env_logger::builder() @@ -215,9 +218,17 @@ fn test_harness>( let (collation_req_receiver, req_cfg) = IncomingRequest::get_config_receiver(&req_protocol_names); let subsystem = async { - run(context, local_peer_id, collator_pair, collation_req_receiver, Default::default()) - .await - .unwrap(); + run_inner( + context, + local_peer_id, + collator_pair, + collation_req_receiver, + Default::default(), + reputation, + REPUTATION_CHANGE_TEST_INTERVAL, + ) + .await + .unwrap(); }; let test_fut = test(TestHarness { virtual_overseer, req_cfg }); @@ -511,60 +522,47 @@ fn advertise_and_send_collation() { let local_peer_id = test_state.local_peer_id.clone(); let collator_pair = test_state.collator_pair.clone(); - test_harness(local_peer_id, collator_pair, |test_harness| async move { - let mut virtual_overseer = test_harness.virtual_overseer; - let mut req_cfg = test_harness.req_cfg; + test_harness( + local_peer_id, + collator_pair, + ReputationAggregator::new(|_| true), + |test_harness| async move { + let mut virtual_overseer = test_harness.virtual_overseer; + let mut req_cfg = test_harness.req_cfg; + + setup_system(&mut virtual_overseer, &test_state).await; + + let DistributeCollation { candidate, pov_block } = + distribute_collation(&mut virtual_overseer, &test_state, true).await; + + for (val, peer) in test_state + .current_group_validator_authority_ids() + .into_iter() + .zip(test_state.current_group_validator_peer_ids()) + { + connect_peer(&mut virtual_overseer, peer.clone(), Some(val.clone())).await; + } - setup_system(&mut virtual_overseer, &test_state).await; + // We declare to the connected validators that we are a collator. + // We need to catch all `Declare` messages to the validators we've + // previously connected to. + for peer_id in test_state.current_group_validator_peer_ids() { + expect_declare_msg(&mut virtual_overseer, &test_state, &peer_id).await; + } - let DistributeCollation { candidate, pov_block } = - distribute_collation(&mut virtual_overseer, &test_state, true).await; + let peer = test_state.current_group_validator_peer_ids()[0].clone(); - for (val, peer) in test_state - .current_group_validator_authority_ids() - .into_iter() - .zip(test_state.current_group_validator_peer_ids()) - { - connect_peer(&mut virtual_overseer, peer.clone(), Some(val.clone())).await; - } + // Send info about peer's view. + send_peer_view_change(&mut virtual_overseer, &peer, vec![test_state.relay_parent]) + .await; - // We declare to the connected validators that we are a collator. - // We need to catch all `Declare` messages to the validators we've - // previously connected to. - for peer_id in test_state.current_group_validator_peer_ids() { - expect_declare_msg(&mut virtual_overseer, &test_state, &peer_id).await; - } + // The peer is interested in a leaf that we have a collation for; + // advertise it. + expect_advertise_collation_msg(&mut virtual_overseer, &peer, test_state.relay_parent) + .await; - let peer = test_state.current_group_validator_peer_ids()[0].clone(); - - // Send info about peer's view. - send_peer_view_change(&mut virtual_overseer, &peer, vec![test_state.relay_parent]).await; - - // The peer is interested in a leaf that we have a collation for; - // advertise it. - expect_advertise_collation_msg(&mut virtual_overseer, &peer, test_state.relay_parent).await; - - // Request a collation. - let (pending_response, rx) = oneshot::channel(); - req_cfg - .inbound_queue - .as_mut() - .unwrap() - .send(RawIncomingRequest { - peer, - payload: CollationFetchingRequest { - relay_parent: test_state.relay_parent, - para_id: test_state.para_id, - } - .encode(), - pending_response, - }) - .await - .unwrap(); - // Second request by same validator should get dropped and peer reported: - { + // Request a collation. let (pending_response, rx) = oneshot::channel(); - req_cfg .inbound_queue .as_mut() @@ -580,76 +578,198 @@ fn advertise_and_send_collation() { }) .await .unwrap(); - assert_matches!( - overseer_recv(&mut virtual_overseer).await, - AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer(bad_peer, _)) => { - assert_eq!(bad_peer, peer); - } - ); + // Second request by same validator should get dropped and peer reported: + { + let (pending_response, rx) = oneshot::channel(); + + req_cfg + .inbound_queue + .as_mut() + .unwrap() + .send(RawIncomingRequest { + peer, + payload: CollationFetchingRequest { + relay_parent: test_state.relay_parent, + para_id: test_state.para_id, + } + .encode(), + pending_response, + }) + .await + .unwrap(); + assert_matches!( + overseer_recv(&mut virtual_overseer).await, + AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(bad_peer, _))) => { + assert_eq!(bad_peer, peer); + } + ); + assert_matches!( + rx.await, + Err(_), + "Multiple concurrent requests by the same validator should get dropped." + ); + } + assert_matches!( rx.await, - Err(_), - "Multiple concurrent requests by the same validator should get dropped." + Ok(full_response) => { + let CollationFetchingResponse::Collation(receipt, pov): CollationFetchingResponse + = CollationFetchingResponse::decode( + &mut full_response.result + .expect("We should have a proper answer").as_ref() + ) + .expect("Decoding should work"); + assert_eq!(receipt, candidate); + assert_eq!(pov, pov_block); + } ); - } - assert_matches!( - rx.await, - Ok(full_response) => { - let CollationFetchingResponse::Collation(receipt, pov): CollationFetchingResponse - = CollationFetchingResponse::decode( - &mut full_response.result - .expect("We should have a proper answer").as_ref() - ) - .expect("Decoding should work"); - assert_eq!(receipt, candidate); - assert_eq!(pov, pov_block); - } - ); + let old_relay_parent = test_state.relay_parent; + test_state.advance_to_new_round(&mut virtual_overseer, false).await; - let old_relay_parent = test_state.relay_parent; - test_state.advance_to_new_round(&mut virtual_overseer, false).await; + let peer = test_state.validator_peer_id[2].clone(); - let peer = test_state.validator_peer_id[2].clone(); + // Re-request a collation. + let (pending_response, rx) = oneshot::channel(); - // Re-request a collation. - let (pending_response, rx) = oneshot::channel(); + req_cfg + .inbound_queue + .as_mut() + .unwrap() + .send(RawIncomingRequest { + peer, + payload: CollationFetchingRequest { + relay_parent: old_relay_parent, + para_id: test_state.para_id, + } + .encode(), + pending_response, + }) + .await + .unwrap(); + // Re-requesting collation should fail: + rx.await.unwrap_err(); - req_cfg - .inbound_queue - .as_mut() - .unwrap() - .send(RawIncomingRequest { - peer, - payload: CollationFetchingRequest { - relay_parent: old_relay_parent, - para_id: test_state.para_id, - } - .encode(), - pending_response, - }) - .await - .unwrap(); - // Re-requesting collation should fail: - rx.await.unwrap_err(); + assert!(overseer_recv_with_timeout(&mut virtual_overseer, TIMEOUT).await.is_none()); - assert!(overseer_recv_with_timeout(&mut virtual_overseer, TIMEOUT).await.is_none()); + distribute_collation(&mut virtual_overseer, &test_state, true).await; - distribute_collation(&mut virtual_overseer, &test_state, true).await; + // Send info about peer's view. + overseer_send( + &mut virtual_overseer, + CollatorProtocolMessage::NetworkBridgeUpdate(NetworkBridgeEvent::PeerViewChange( + peer.clone(), + view![test_state.relay_parent], + )), + ) + .await; - // Send info about peer's view. - overseer_send( - &mut virtual_overseer, - CollatorProtocolMessage::NetworkBridgeUpdate(NetworkBridgeEvent::PeerViewChange( - peer.clone(), - view![test_state.relay_parent], - )), - ) - .await; + expect_advertise_collation_msg(&mut virtual_overseer, &peer, test_state.relay_parent) + .await; + TestHarness { virtual_overseer, req_cfg } + }, + ); +} - expect_advertise_collation_msg(&mut virtual_overseer, &peer, test_state.relay_parent).await; - TestHarness { virtual_overseer, req_cfg } - }); +#[test] +fn delay_reputation_change() { + let test_state = TestState::default(); + let local_peer_id = test_state.local_peer_id.clone(); + let collator_pair = test_state.collator_pair.clone(); + + test_harness( + local_peer_id, + collator_pair, + ReputationAggregator::new(|_| false), + |test_harness| async move { + let mut virtual_overseer = test_harness.virtual_overseer; + let mut req_cfg = test_harness.req_cfg; + + setup_system(&mut virtual_overseer, &test_state).await; + + let _ = distribute_collation(&mut virtual_overseer, &test_state, true).await; + + for (val, peer) in test_state + .current_group_validator_authority_ids() + .into_iter() + .zip(test_state.current_group_validator_peer_ids()) + { + connect_peer(&mut virtual_overseer, peer.clone(), Some(val.clone())).await; + } + + // We declare to the connected validators that we are a collator. + // We need to catch all `Declare` messages to the validators we've + // previously connected to. + for peer_id in test_state.current_group_validator_peer_ids() { + expect_declare_msg(&mut virtual_overseer, &test_state, &peer_id).await; + } + + let peer = test_state.current_group_validator_peer_ids()[0].clone(); + + // Send info about peer's view. + send_peer_view_change(&mut virtual_overseer, &peer, vec![test_state.relay_parent]) + .await; + + // The peer is interested in a leaf that we have a collation for; + // advertise it. + expect_advertise_collation_msg(&mut virtual_overseer, &peer, test_state.relay_parent) + .await; + + // Request a collation. + let (pending_response, _rx) = oneshot::channel(); + req_cfg + .inbound_queue + .as_mut() + .unwrap() + .send(RawIncomingRequest { + peer, + payload: CollationFetchingRequest { + relay_parent: test_state.relay_parent, + para_id: test_state.para_id, + } + .encode(), + pending_response, + }) + .await + .unwrap(); + // Second request by same validator should get dropped and peer reported: + { + let (pending_response, _rx) = oneshot::channel(); + + req_cfg + .inbound_queue + .as_mut() + .unwrap() + .send(RawIncomingRequest { + peer, + payload: CollationFetchingRequest { + relay_parent: test_state.relay_parent, + para_id: test_state.para_id, + } + .encode(), + pending_response, + }) + .await + .unwrap(); + + // Wait enough to fire reputation delay + futures_timer::Delay::new(REPUTATION_CHANGE_TEST_INTERVAL).await; + + assert_matches!( + overseer_recv(&mut virtual_overseer).await, + AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Batch(v))) => { + let mut expected_change = HashMap::new(); + for rep in vec![COST_APPARENT_FLOOD] { + add_reputation(&mut expected_change, peer, rep); + } + assert_eq!(v, expected_change); + } + ); + } + + TestHarness { virtual_overseer, req_cfg } + }, + ); } #[test] @@ -681,17 +801,23 @@ fn collators_declare_to_connected_peers() { let local_peer_id = test_state.local_peer_id.clone(); let collator_pair = test_state.collator_pair.clone(); - test_harness(local_peer_id, collator_pair, |mut test_harness| async move { - let peer = test_state.validator_peer_id[0].clone(); - let validator_id = test_state.current_group_validator_authority_ids()[0].clone(); - - setup_system(&mut test_harness.virtual_overseer, &test_state).await; - - // A validator connected to us - connect_peer(&mut test_harness.virtual_overseer, peer.clone(), Some(validator_id)).await; - expect_declare_msg(&mut test_harness.virtual_overseer, &test_state, &peer).await; - test_harness - }) + test_harness( + local_peer_id, + collator_pair, + ReputationAggregator::new(|_| true), + |mut test_harness| async move { + let peer = test_state.validator_peer_id[0].clone(); + let validator_id = test_state.current_group_validator_authority_ids()[0].clone(); + + setup_system(&mut test_harness.virtual_overseer, &test_state).await; + + // A validator connected to us + connect_peer(&mut test_harness.virtual_overseer, peer.clone(), Some(validator_id)) + .await; + expect_declare_msg(&mut test_harness.virtual_overseer, &test_state, &peer).await; + test_harness + }, + ) } #[test] @@ -700,40 +826,45 @@ fn collations_are_only_advertised_to_validators_with_correct_view() { let local_peer_id = test_state.local_peer_id.clone(); let collator_pair = test_state.collator_pair.clone(); - test_harness(local_peer_id, collator_pair, |mut test_harness| async move { - let virtual_overseer = &mut test_harness.virtual_overseer; + test_harness( + local_peer_id, + collator_pair, + ReputationAggregator::new(|_| true), + |mut test_harness| async move { + let virtual_overseer = &mut test_harness.virtual_overseer; - let peer = test_state.current_group_validator_peer_ids()[0].clone(); - let validator_id = test_state.current_group_validator_authority_ids()[0].clone(); + let peer = test_state.current_group_validator_peer_ids()[0].clone(); + let validator_id = test_state.current_group_validator_authority_ids()[0].clone(); - let peer2 = test_state.current_group_validator_peer_ids()[1].clone(); - let validator_id2 = test_state.current_group_validator_authority_ids()[1].clone(); + let peer2 = test_state.current_group_validator_peer_ids()[1].clone(); + let validator_id2 = test_state.current_group_validator_authority_ids()[1].clone(); - setup_system(virtual_overseer, &test_state).await; + setup_system(virtual_overseer, &test_state).await; - // A validator connected to us - connect_peer(virtual_overseer, peer.clone(), Some(validator_id)).await; + // A validator connected to us + connect_peer(virtual_overseer, peer.clone(), Some(validator_id)).await; - // Connect the second validator - connect_peer(virtual_overseer, peer2.clone(), Some(validator_id2)).await; + // Connect the second validator + connect_peer(virtual_overseer, peer2.clone(), Some(validator_id2)).await; - expect_declare_msg(virtual_overseer, &test_state, &peer).await; - expect_declare_msg(virtual_overseer, &test_state, &peer2).await; + expect_declare_msg(virtual_overseer, &test_state, &peer).await; + expect_declare_msg(virtual_overseer, &test_state, &peer2).await; - // And let it tell us that it is has the same view. - send_peer_view_change(virtual_overseer, &peer2, vec![test_state.relay_parent]).await; + // And let it tell us that it is has the same view. + send_peer_view_change(virtual_overseer, &peer2, vec![test_state.relay_parent]).await; - distribute_collation(virtual_overseer, &test_state, true).await; + distribute_collation(virtual_overseer, &test_state, true).await; - expect_advertise_collation_msg(virtual_overseer, &peer2, test_state.relay_parent).await; + expect_advertise_collation_msg(virtual_overseer, &peer2, test_state.relay_parent).await; - // The other validator announces that it changed its view. - send_peer_view_change(virtual_overseer, &peer, vec![test_state.relay_parent]).await; + // The other validator announces that it changed its view. + send_peer_view_change(virtual_overseer, &peer, vec![test_state.relay_parent]).await; - // After changing the view we should receive the advertisement - expect_advertise_collation_msg(virtual_overseer, &peer, test_state.relay_parent).await; - test_harness - }) + // After changing the view we should receive the advertisement + expect_advertise_collation_msg(virtual_overseer, &peer, test_state.relay_parent).await; + test_harness + }, + ) } #[test] @@ -742,43 +873,48 @@ fn collate_on_two_different_relay_chain_blocks() { let local_peer_id = test_state.local_peer_id.clone(); let collator_pair = test_state.collator_pair.clone(); - test_harness(local_peer_id, collator_pair, |mut test_harness| async move { - let virtual_overseer = &mut test_harness.virtual_overseer; + test_harness( + local_peer_id, + collator_pair, + ReputationAggregator::new(|_| true), + |mut test_harness| async move { + let virtual_overseer = &mut test_harness.virtual_overseer; - let peer = test_state.current_group_validator_peer_ids()[0].clone(); - let validator_id = test_state.current_group_validator_authority_ids()[0].clone(); + let peer = test_state.current_group_validator_peer_ids()[0].clone(); + let validator_id = test_state.current_group_validator_authority_ids()[0].clone(); - let peer2 = test_state.current_group_validator_peer_ids()[1].clone(); - let validator_id2 = test_state.current_group_validator_authority_ids()[1].clone(); + let peer2 = test_state.current_group_validator_peer_ids()[1].clone(); + let validator_id2 = test_state.current_group_validator_authority_ids()[1].clone(); - setup_system(virtual_overseer, &test_state).await; + setup_system(virtual_overseer, &test_state).await; - // A validator connected to us - connect_peer(virtual_overseer, peer.clone(), Some(validator_id)).await; + // A validator connected to us + connect_peer(virtual_overseer, peer.clone(), Some(validator_id)).await; - // Connect the second validator - connect_peer(virtual_overseer, peer2.clone(), Some(validator_id2)).await; + // Connect the second validator + connect_peer(virtual_overseer, peer2.clone(), Some(validator_id2)).await; - expect_declare_msg(virtual_overseer, &test_state, &peer).await; - expect_declare_msg(virtual_overseer, &test_state, &peer2).await; + expect_declare_msg(virtual_overseer, &test_state, &peer).await; + expect_declare_msg(virtual_overseer, &test_state, &peer2).await; - distribute_collation(virtual_overseer, &test_state, true).await; + distribute_collation(virtual_overseer, &test_state, true).await; - let old_relay_parent = test_state.relay_parent; + let old_relay_parent = test_state.relay_parent; - // Advance to a new round, while informing the subsystem that the old and the new relay parent are active. - test_state.advance_to_new_round(virtual_overseer, true).await; + // Advance to a new round, while informing the subsystem that the old and the new relay parent are active. + test_state.advance_to_new_round(virtual_overseer, true).await; - distribute_collation(virtual_overseer, &test_state, true).await; + distribute_collation(virtual_overseer, &test_state, true).await; - send_peer_view_change(virtual_overseer, &peer, vec![old_relay_parent]).await; - expect_advertise_collation_msg(virtual_overseer, &peer, old_relay_parent).await; + send_peer_view_change(virtual_overseer, &peer, vec![old_relay_parent]).await; + expect_advertise_collation_msg(virtual_overseer, &peer, old_relay_parent).await; - send_peer_view_change(virtual_overseer, &peer2, vec![test_state.relay_parent]).await; + send_peer_view_change(virtual_overseer, &peer2, vec![test_state.relay_parent]).await; - expect_advertise_collation_msg(virtual_overseer, &peer2, test_state.relay_parent).await; - test_harness - }) + expect_advertise_collation_msg(virtual_overseer, &peer2, test_state.relay_parent).await; + test_harness + }, + ) } #[test] @@ -787,33 +923,38 @@ fn validator_reconnect_does_not_advertise_a_second_time() { let local_peer_id = test_state.local_peer_id.clone(); let collator_pair = test_state.collator_pair.clone(); - test_harness(local_peer_id, collator_pair, |mut test_harness| async move { - let virtual_overseer = &mut test_harness.virtual_overseer; + test_harness( + local_peer_id, + collator_pair, + ReputationAggregator::new(|_| true), + |mut test_harness| async move { + let virtual_overseer = &mut test_harness.virtual_overseer; - let peer = test_state.current_group_validator_peer_ids()[0].clone(); - let validator_id = test_state.current_group_validator_authority_ids()[0].clone(); + let peer = test_state.current_group_validator_peer_ids()[0].clone(); + let validator_id = test_state.current_group_validator_authority_ids()[0].clone(); - setup_system(virtual_overseer, &test_state).await; + setup_system(virtual_overseer, &test_state).await; - // A validator connected to us - connect_peer(virtual_overseer, peer.clone(), Some(validator_id.clone())).await; - expect_declare_msg(virtual_overseer, &test_state, &peer).await; + // A validator connected to us + connect_peer(virtual_overseer, peer.clone(), Some(validator_id.clone())).await; + expect_declare_msg(virtual_overseer, &test_state, &peer).await; - distribute_collation(virtual_overseer, &test_state, true).await; + distribute_collation(virtual_overseer, &test_state, true).await; - send_peer_view_change(virtual_overseer, &peer, vec![test_state.relay_parent]).await; - expect_advertise_collation_msg(virtual_overseer, &peer, test_state.relay_parent).await; + send_peer_view_change(virtual_overseer, &peer, vec![test_state.relay_parent]).await; + expect_advertise_collation_msg(virtual_overseer, &peer, test_state.relay_parent).await; - // Disconnect and reconnect directly - disconnect_peer(virtual_overseer, peer.clone()).await; - connect_peer(virtual_overseer, peer.clone(), Some(validator_id)).await; - expect_declare_msg(virtual_overseer, &test_state, &peer).await; + // Disconnect and reconnect directly + disconnect_peer(virtual_overseer, peer.clone()).await; + connect_peer(virtual_overseer, peer.clone(), Some(validator_id)).await; + expect_declare_msg(virtual_overseer, &test_state, &peer).await; - send_peer_view_change(virtual_overseer, &peer, vec![test_state.relay_parent]).await; + send_peer_view_change(virtual_overseer, &peer, vec![test_state.relay_parent]).await; - assert!(overseer_recv_with_timeout(virtual_overseer, TIMEOUT).await.is_none()); - test_harness - }) + assert!(overseer_recv_with_timeout(virtual_overseer, TIMEOUT).await.is_none()); + test_harness + }, + ) } #[test] @@ -823,40 +964,45 @@ fn collators_reject_declare_messages() { let collator_pair = test_state.collator_pair.clone(); let collator_pair2 = CollatorPair::generate().0; - test_harness(local_peer_id, collator_pair, |mut test_harness| async move { - let virtual_overseer = &mut test_harness.virtual_overseer; - - let peer = test_state.current_group_validator_peer_ids()[0].clone(); - let validator_id = test_state.current_group_validator_authority_ids()[0].clone(); - - setup_system(virtual_overseer, &test_state).await; - - // A validator connected to us - connect_peer(virtual_overseer, peer.clone(), Some(validator_id)).await; - expect_declare_msg(virtual_overseer, &test_state, &peer).await; - - overseer_send( - virtual_overseer, - CollatorProtocolMessage::NetworkBridgeUpdate(NetworkBridgeEvent::PeerMessage( - peer.clone(), - Versioned::V1(protocol_v1::CollatorProtocolMessage::Declare( - collator_pair2.public(), - ParaId::from(5), - collator_pair2.sign(b"garbage"), + test_harness( + local_peer_id, + collator_pair, + ReputationAggregator::new(|_| true), + |mut test_harness| async move { + let virtual_overseer = &mut test_harness.virtual_overseer; + + let peer = test_state.current_group_validator_peer_ids()[0].clone(); + let validator_id = test_state.current_group_validator_authority_ids()[0].clone(); + + setup_system(virtual_overseer, &test_state).await; + + // A validator connected to us + connect_peer(virtual_overseer, peer.clone(), Some(validator_id)).await; + expect_declare_msg(virtual_overseer, &test_state, &peer).await; + + overseer_send( + virtual_overseer, + CollatorProtocolMessage::NetworkBridgeUpdate(NetworkBridgeEvent::PeerMessage( + peer.clone(), + Versioned::V1(protocol_v1::CollatorProtocolMessage::Declare( + collator_pair2.public(), + ParaId::from(5), + collator_pair2.sign(b"garbage"), + )), )), - )), - ) - .await; + ) + .await; - assert_matches!( - overseer_recv(virtual_overseer).await, - AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::DisconnectPeer( - p, - PeerSet::Collation, - )) if p == peer - ); - test_harness - }) + assert_matches!( + overseer_recv(virtual_overseer).await, + AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::DisconnectPeer( + p, + PeerSet::Collation, + )) if p == peer + ); + test_harness + }, + ) } /// Run tests on validator response sequence. @@ -877,118 +1023,125 @@ where let local_peer_id = test_state.local_peer_id.clone(); let collator_pair = test_state.collator_pair.clone(); - test_harness(local_peer_id, collator_pair, |mut test_harness| async move { - let virtual_overseer = &mut test_harness.virtual_overseer; - let req_cfg = &mut test_harness.req_cfg; - - setup_system(virtual_overseer, &test_state).await; + test_harness( + local_peer_id, + collator_pair, + ReputationAggregator::new(|_| true), + |mut test_harness| async move { + let virtual_overseer = &mut test_harness.virtual_overseer; + let req_cfg = &mut test_harness.req_cfg; + + setup_system(virtual_overseer, &test_state).await; + + let DistributeCollation { candidate, pov_block } = + distribute_collation(virtual_overseer, &test_state, true).await; + + for (val, peer) in test_state + .current_group_validator_authority_ids() + .into_iter() + .zip(test_state.current_group_validator_peer_ids()) + { + connect_peer(virtual_overseer, peer.clone(), Some(val.clone())).await; + } - let DistributeCollation { candidate, pov_block } = - distribute_collation(virtual_overseer, &test_state, true).await; + // We declare to the connected validators that we are a collator. + // We need to catch all `Declare` messages to the validators we've + // previously connected to. + for peer_id in test_state.current_group_validator_peer_ids() { + expect_declare_msg(virtual_overseer, &test_state, &peer_id).await; + } - for (val, peer) in test_state - .current_group_validator_authority_ids() - .into_iter() - .zip(test_state.current_group_validator_peer_ids()) - { - connect_peer(virtual_overseer, peer.clone(), Some(val.clone())).await; - } + let validator_0 = test_state.current_group_validator_peer_ids()[0].clone(); + let validator_1 = test_state.current_group_validator_peer_ids()[1].clone(); - // We declare to the connected validators that we are a collator. - // We need to catch all `Declare` messages to the validators we've - // previously connected to. - for peer_id in test_state.current_group_validator_peer_ids() { - expect_declare_msg(virtual_overseer, &test_state, &peer_id).await; - } + // Send info about peer's view. + send_peer_view_change(virtual_overseer, &validator_0, vec![test_state.relay_parent]) + .await; + send_peer_view_change(virtual_overseer, &validator_1, vec![test_state.relay_parent]) + .await; - let validator_0 = test_state.current_group_validator_peer_ids()[0].clone(); - let validator_1 = test_state.current_group_validator_peer_ids()[1].clone(); + // The peer is interested in a leaf that we have a collation for; + // advertise it. + expect_advertise_collation_msg(virtual_overseer, &validator_0, test_state.relay_parent) + .await; + expect_advertise_collation_msg(virtual_overseer, &validator_1, test_state.relay_parent) + .await; - // Send info about peer's view. - send_peer_view_change(virtual_overseer, &validator_0, vec![test_state.relay_parent]).await; - send_peer_view_change(virtual_overseer, &validator_1, vec![test_state.relay_parent]).await; + // Request a collation. + let (pending_response, rx) = oneshot::channel(); + req_cfg + .inbound_queue + .as_mut() + .unwrap() + .send(RawIncomingRequest { + peer: validator_0, + payload: CollationFetchingRequest { + relay_parent: test_state.relay_parent, + para_id: test_state.para_id, + } + .encode(), + pending_response, + }) + .await + .unwrap(); - // The peer is interested in a leaf that we have a collation for; - // advertise it. - expect_advertise_collation_msg(virtual_overseer, &validator_0, test_state.relay_parent) - .await; - expect_advertise_collation_msg(virtual_overseer, &validator_1, test_state.relay_parent) - .await; + // Keep the feedback channel alive because we need to use it to inform about the finished transfer. + let feedback_tx = assert_matches!( + rx.await, + Ok(full_response) => { + let CollationFetchingResponse::Collation(receipt, pov): CollationFetchingResponse + = CollationFetchingResponse::decode( + &mut full_response.result + .expect("We should have a proper answer").as_ref() + ) + .expect("Decoding should work"); + assert_eq!(receipt, candidate); + assert_eq!(pov, pov_block); - // Request a collation. - let (pending_response, rx) = oneshot::channel(); - req_cfg - .inbound_queue - .as_mut() - .unwrap() - .send(RawIncomingRequest { - peer: validator_0, - payload: CollationFetchingRequest { - relay_parent: test_state.relay_parent, - para_id: test_state.para_id, + full_response.sent_feedback.expect("Feedback channel is always set") } - .encode(), - pending_response, - }) - .await - .unwrap(); - - // Keep the feedback channel alive because we need to use it to inform about the finished transfer. - let feedback_tx = assert_matches!( - rx.await, - Ok(full_response) => { - let CollationFetchingResponse::Collation(receipt, pov): CollationFetchingResponse - = CollationFetchingResponse::decode( - &mut full_response.result - .expect("We should have a proper answer").as_ref() - ) - .expect("Decoding should work"); - assert_eq!(receipt, candidate); - assert_eq!(pov, pov_block); - - full_response.sent_feedback.expect("Feedback channel is always set") - } - ); + ); - // Let the second validator request the collation. - let (pending_response, rx) = oneshot::channel(); - req_cfg - .inbound_queue - .as_mut() - .unwrap() - .send(RawIncomingRequest { - peer: validator_1, - payload: CollationFetchingRequest { - relay_parent: test_state.relay_parent, - para_id: test_state.para_id, - } - .encode(), - pending_response, - }) - .await - .unwrap(); + // Let the second validator request the collation. + let (pending_response, rx) = oneshot::channel(); + req_cfg + .inbound_queue + .as_mut() + .unwrap() + .send(RawIncomingRequest { + peer: validator_1, + payload: CollationFetchingRequest { + relay_parent: test_state.relay_parent, + para_id: test_state.para_id, + } + .encode(), + pending_response, + }) + .await + .unwrap(); - let rx = handle_first_response(rx, feedback_tx).await; + let rx = handle_first_response(rx, feedback_tx).await; - // Now we should send it to the second validator - assert_matches!( - rx.await, - Ok(full_response) => { - let CollationFetchingResponse::Collation(receipt, pov): CollationFetchingResponse - = CollationFetchingResponse::decode( - &mut full_response.result - .expect("We should have a proper answer").as_ref() - ) - .expect("Decoding should work"); - assert_eq!(receipt, candidate); - assert_eq!(pov, pov_block); - - full_response.sent_feedback.expect("Feedback channel is always set") - } - ); + // Now we should send it to the second validator + assert_matches!( + rx.await, + Ok(full_response) => { + let CollationFetchingResponse::Collation(receipt, pov): CollationFetchingResponse + = CollationFetchingResponse::decode( + &mut full_response.result + .expect("We should have a proper answer").as_ref() + ) + .expect("Decoding should work"); + assert_eq!(receipt, candidate); + assert_eq!(pov, pov_block); - test_harness - }); + full_response.sent_feedback.expect("Feedback channel is always set") + } + ); + + test_harness + }, + ); } #[test] @@ -997,97 +1150,102 @@ fn connect_to_buffered_groups() { let local_peer_id = test_state.local_peer_id.clone(); let collator_pair = test_state.collator_pair.clone(); - test_harness(local_peer_id, collator_pair, |test_harness| async move { - let mut virtual_overseer = test_harness.virtual_overseer; - let mut req_cfg = test_harness.req_cfg; + test_harness( + local_peer_id, + collator_pair, + ReputationAggregator::new(|_| true), + |test_harness| async move { + let mut virtual_overseer = test_harness.virtual_overseer; + let mut req_cfg = test_harness.req_cfg; - setup_system(&mut virtual_overseer, &test_state).await; + setup_system(&mut virtual_overseer, &test_state).await; - let group_a = test_state.current_group_validator_authority_ids(); - let peers_a = test_state.current_group_validator_peer_ids(); - assert!(group_a.len() > 1); + let group_a = test_state.current_group_validator_authority_ids(); + let peers_a = test_state.current_group_validator_peer_ids(); + assert!(group_a.len() > 1); - distribute_collation(&mut virtual_overseer, &test_state, false).await; + distribute_collation(&mut virtual_overseer, &test_state, false).await; - assert_matches!( - overseer_recv(&mut virtual_overseer).await, - AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ConnectToValidators { validator_ids, .. } - ) => { - assert_eq!(group_a, validator_ids); - } - ); + assert_matches!( + overseer_recv(&mut virtual_overseer).await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::ConnectToValidators { validator_ids, .. } + ) => { + assert_eq!(group_a, validator_ids); + } + ); - let head_a = test_state.relay_parent; + let head_a = test_state.relay_parent; - for (val, peer) in group_a.iter().zip(&peers_a) { - connect_peer(&mut virtual_overseer, peer.clone(), Some(val.clone())).await; - } + for (val, peer) in group_a.iter().zip(&peers_a) { + connect_peer(&mut virtual_overseer, peer.clone(), Some(val.clone())).await; + } - for peer_id in &peers_a { - expect_declare_msg(&mut virtual_overseer, &test_state, peer_id).await; - } + for peer_id in &peers_a { + expect_declare_msg(&mut virtual_overseer, &test_state, peer_id).await; + } - // Update views. - for peed_id in &peers_a { - send_peer_view_change(&mut virtual_overseer, peed_id, vec![head_a]).await; - expect_advertise_collation_msg(&mut virtual_overseer, peed_id, head_a).await; - } + // Update views. + for peed_id in &peers_a { + send_peer_view_change(&mut virtual_overseer, peed_id, vec![head_a]).await; + expect_advertise_collation_msg(&mut virtual_overseer, peed_id, head_a).await; + } - let peer = peers_a[0]; - // Peer from the group fetches the collation. - let (pending_response, rx) = oneshot::channel(); - req_cfg - .inbound_queue - .as_mut() - .unwrap() - .send(RawIncomingRequest { - peer, - payload: CollationFetchingRequest { - relay_parent: head_a, - para_id: test_state.para_id, + let peer = peers_a[0]; + // Peer from the group fetches the collation. + let (pending_response, rx) = oneshot::channel(); + req_cfg + .inbound_queue + .as_mut() + .unwrap() + .send(RawIncomingRequest { + peer, + payload: CollationFetchingRequest { + relay_parent: head_a, + para_id: test_state.para_id, + } + .encode(), + pending_response, + }) + .await + .unwrap(); + assert_matches!( + rx.await, + Ok(full_response) => { + let CollationFetchingResponse::Collation(..): CollationFetchingResponse = + CollationFetchingResponse::decode( + &mut full_response.result.expect("We should have a proper answer").as_ref(), + ) + .expect("Decoding should work"); } - .encode(), - pending_response, - }) - .await - .unwrap(); - assert_matches!( - rx.await, - Ok(full_response) => { - let CollationFetchingResponse::Collation(..): CollationFetchingResponse = - CollationFetchingResponse::decode( - &mut full_response.result.expect("We should have a proper answer").as_ref(), - ) - .expect("Decoding should work"); - } - ); + ); - test_state.advance_to_new_round(&mut virtual_overseer, true).await; - test_state.group_rotation_info = test_state.group_rotation_info.bump_rotation(); + test_state.advance_to_new_round(&mut virtual_overseer, true).await; + test_state.group_rotation_info = test_state.group_rotation_info.bump_rotation(); - let head_b = test_state.relay_parent; - let group_b = test_state.current_group_validator_authority_ids(); - assert_ne!(head_a, head_b); - assert_ne!(group_a, group_b); + let head_b = test_state.relay_parent; + let group_b = test_state.current_group_validator_authority_ids(); + assert_ne!(head_a, head_b); + assert_ne!(group_a, group_b); - distribute_collation(&mut virtual_overseer, &test_state, false).await; + distribute_collation(&mut virtual_overseer, &test_state, false).await; - // Should be connected to both groups except for the validator that fetched advertised - // collation. - assert_matches!( - overseer_recv(&mut virtual_overseer).await, - AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ConnectToValidators { validator_ids, .. } - ) => { - assert!(!validator_ids.contains(&group_a[0])); + // Should be connected to both groups except for the validator that fetched advertised + // collation. + assert_matches!( + overseer_recv(&mut virtual_overseer).await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::ConnectToValidators { validator_ids, .. } + ) => { + assert!(!validator_ids.contains(&group_a[0])); - for validator in group_a[1..].iter().chain(&group_b) { - assert!(validator_ids.contains(validator)); + for validator in group_a[1..].iter().chain(&group_b) { + assert!(validator_ids.contains(validator)); + } } - } - ); + ); - TestHarness { virtual_overseer, req_cfg } - }); + TestHarness { virtual_overseer, req_cfg } + }, + ); } diff --git a/node/network/collator-protocol/src/lib.rs b/node/network/collator-protocol/src/lib.rs index 0831f8907a2b..8e710a26ad71 100644 --- a/node/network/collator-protocol/src/lib.rs +++ b/node/network/collator-protocol/src/lib.rs @@ -28,6 +28,7 @@ use futures::{ FutureExt, TryFutureExt, }; +use polkadot_node_subsystem_util::reputation::ReputationAggregator; use sp_keystore::KeystorePtr; use polkadot_node_network_protocol::{ @@ -36,9 +37,7 @@ use polkadot_node_network_protocol::{ }; use polkadot_primitives::CollatorPair; -use polkadot_node_subsystem::{ - errors::SubsystemError, messages::NetworkBridgeTxMessage, overseer, SpawnedSubsystem, -}; +use polkadot_node_subsystem::{errors::SubsystemError, overseer, SpawnedSubsystem}; mod error; @@ -124,6 +123,7 @@ impl CollatorProtocolSubsystem { /// Modify the reputation of a peer based on its behavior. async fn modify_reputation( + reputation: &mut ReputationAggregator, sender: &mut impl overseer::CollatorProtocolSenderTrait, peer: PeerId, rep: Rep, @@ -135,7 +135,7 @@ async fn modify_reputation( "reputation change for peer", ); - sender.send_message(NetworkBridgeTxMessage::ReportPeer(peer, rep)).await; + reputation.modify(sender, peer, rep).await; } /// Wait until tick and return the timestamp for the following one. diff --git a/node/network/collator-protocol/src/validator_side/mod.rs b/node/network/collator-protocol/src/validator_side/mod.rs index 3d422336d292..f098609034eb 100644 --- a/node/network/collator-protocol/src/validator_side/mod.rs +++ b/node/network/collator-protocol/src/validator_side/mod.rs @@ -52,7 +52,10 @@ use polkadot_node_subsystem::{ }, overseer, FromOrchestra, OverseerSignal, PerLeafSpan, SubsystemSender, }; -use polkadot_node_subsystem_util::metrics::{self, prometheus}; +use polkadot_node_subsystem_util::{ + metrics::{self, prometheus}, + reputation::{ReputationAggregator, REPUTATION_CHANGE_INTERVAL}, +}; use polkadot_primitives::{CandidateReceipt, CollatorId, Hash, Id as ParaId}; use crate::error::Result; @@ -612,6 +615,9 @@ struct State { /// Keep track of all pending candidate collations pending_candidates: HashMap, + + /// Aggregated reputation change + reputation: ReputationAggregator, } // O(n) search for collator ID by iterating through the peers map. This should be fast enough @@ -675,28 +681,31 @@ async fn fetch_collation( /// Report a collator for some malicious actions. async fn report_collator( + reputation: &mut ReputationAggregator, sender: &mut impl overseer::CollatorProtocolSenderTrait, peer_data: &HashMap, id: CollatorId, ) { if let Some(peer_id) = collator_peer_id(peer_data, &id) { - modify_reputation(sender, peer_id, COST_REPORT_BAD).await; + modify_reputation(reputation, sender, peer_id, COST_REPORT_BAD).await; } } /// Some other subsystem has reported a collator as a good one, bump reputation. async fn note_good_collation( + reputation: &mut ReputationAggregator, sender: &mut impl overseer::CollatorProtocolSenderTrait, peer_data: &HashMap, id: CollatorId, ) { if let Some(peer_id) = collator_peer_id(peer_data, &id) { - modify_reputation(sender, peer_id, BENEFIT_NOTIFY_GOOD).await; + modify_reputation(reputation, sender, peer_id, BENEFIT_NOTIFY_GOOD).await; } } /// Notify a collator that its collation got seconded. async fn notify_collation_seconded( + reputation: &mut ReputationAggregator, sender: &mut impl overseer::CollatorProtocolSenderTrait, peer_id: PeerId, relay_parent: Hash, @@ -711,7 +720,7 @@ async fn notify_collation_seconded( )) .await; - modify_reputation(sender, peer_id, BENEFIT_NOTIFY_GOOD).await; + modify_reputation(reputation, sender, peer_id, BENEFIT_NOTIFY_GOOD).await; } /// A peer's view has changed. A number of things should be done: @@ -813,7 +822,13 @@ async fn process_incoming_peer_message( match msg { Declare(collator_id, para_id, signature) => { if collator_peer_id(&state.peer_data, &collator_id).is_some() { - modify_reputation(ctx.sender(), origin, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + origin, + COST_UNEXPECTED_MESSAGE, + ) + .await; return } @@ -826,7 +841,13 @@ async fn process_incoming_peer_message( ?para_id, "Unknown peer", ); - modify_reputation(ctx.sender(), origin, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + origin, + COST_UNEXPECTED_MESSAGE, + ) + .await; return }, }; @@ -838,7 +859,13 @@ async fn process_incoming_peer_message( ?para_id, "Peer is not in the collating state", ); - modify_reputation(ctx.sender(), origin, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + origin, + COST_UNEXPECTED_MESSAGE, + ) + .await; return } @@ -849,7 +876,13 @@ async fn process_incoming_peer_message( ?para_id, "Signature verification failure", ); - modify_reputation(ctx.sender(), origin, COST_INVALID_SIGNATURE).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + origin, + COST_INVALID_SIGNATURE, + ) + .await; return } @@ -872,7 +905,13 @@ async fn process_incoming_peer_message( "Declared as collator for unneeded para", ); - modify_reputation(ctx.sender(), origin, COST_UNNEEDED_COLLATOR).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + origin, + COST_UNNEEDED_COLLATOR, + ) + .await; gum::trace!(target: LOG_TARGET, "Disconnecting unneeded collator"); disconnect_peer(ctx.sender(), origin).await; } @@ -890,7 +929,13 @@ async fn process_incoming_peer_message( "Advertise collation out of view", ); - modify_reputation(ctx.sender(), origin, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + origin, + COST_UNEXPECTED_MESSAGE, + ) + .await; return } @@ -902,7 +947,13 @@ async fn process_incoming_peer_message( ?relay_parent, "Advertise collation message has been received from an unknown peer", ); - modify_reputation(ctx.sender(), origin, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + origin, + COST_UNEXPECTED_MESSAGE, + ) + .await; return }, Some(p) => p, @@ -961,7 +1012,13 @@ async fn process_incoming_peer_message( "Invalid advertisement", ); - modify_reputation(ctx.sender(), origin, COST_UNEXPECTED_MESSAGE).await; + modify_reputation( + &mut state.reputation, + ctx.sender(), + origin, + COST_UNEXPECTED_MESSAGE, + ) + .await; }, } }, @@ -1106,7 +1163,7 @@ async fn process_msg( ); }, ReportCollator(id) => { - report_collator(ctx.sender(), &state.peer_data, id).await; + report_collator(&mut state.reputation, ctx.sender(), &state.peer_data, id).await; }, NetworkBridgeUpdate(event) => { if let Err(e) = handle_network_msg(ctx, state, keystore, event).await { @@ -1121,8 +1178,21 @@ async fn process_msg( if let Some(collation_event) = state.pending_candidates.remove(&parent) { let (collator_id, pending_collation) = collation_event; let PendingCollation { relay_parent, peer_id, .. } = pending_collation; - note_good_collation(ctx.sender(), &state.peer_data, collator_id).await; - notify_collation_seconded(ctx.sender(), peer_id, relay_parent, stmt).await; + note_good_collation( + &mut state.reputation, + ctx.sender(), + &state.peer_data, + collator_id, + ) + .await; + notify_collation_seconded( + &mut state.reputation, + ctx.sender(), + peer_id, + relay_parent, + stmt, + ) + .await; if let Some(collations) = state.collations_per_relay_parent.get_mut(&parent) { collations.status = CollationStatus::Seconded; @@ -1153,7 +1223,8 @@ async fn process_msg( Entry::Vacant(_) => return, }; - report_collator(ctx.sender(), &state.peer_data, id.clone()).await; + report_collator(&mut state.reputation, ctx.sender(), &state.peer_data, id.clone()) + .await; dequeue_next_collation_and_fetch(ctx, state, parent, id).await; }, @@ -1163,12 +1234,35 @@ async fn process_msg( /// The main run loop. #[overseer::contextbounds(CollatorProtocol, prefix = self::overseer)] pub(crate) async fn run( + ctx: Context, + keystore: KeystorePtr, + eviction_policy: crate::CollatorEvictionPolicy, + metrics: Metrics, +) -> std::result::Result<(), crate::error::FatalError> { + run_inner( + ctx, + keystore, + eviction_policy, + metrics, + ReputationAggregator::default(), + REPUTATION_CHANGE_INTERVAL, + ) + .await +} + +#[overseer::contextbounds(CollatorProtocol, prefix = self::overseer)] +async fn run_inner( mut ctx: Context, keystore: KeystorePtr, eviction_policy: crate::CollatorEvictionPolicy, metrics: Metrics, + reputation: ReputationAggregator, + reputation_interval: Duration, ) -> std::result::Result<(), crate::error::FatalError> { - let mut state = State { metrics, ..Default::default() }; + let new_reputation_delay = || futures_timer::Delay::new(reputation_interval).fuse(); + let mut reputation_delay = new_reputation_delay(); + + let mut state = State { metrics, reputation, ..Default::default() }; let next_inactivity_stream = tick_stream(ACTIVITY_POLL); futures::pin_mut!(next_inactivity_stream); @@ -1178,6 +1272,10 @@ pub(crate) async fn run( loop { select! { + _ = reputation_delay => { + state.reputation.send(ctx.sender()).await; + reputation_delay = new_reputation_delay(); + }, res = ctx.recv().fuse() => { match res { Ok(FromOrchestra::Communication { msg }) => { @@ -1217,7 +1315,7 @@ pub(crate) async fn run( ).await; for (peer_id, rep) in reputation_changes { - modify_reputation(ctx.sender(), peer_id, rep).await; + modify_reputation(&mut state.reputation,ctx.sender(), peer_id, rep).await; } }, } diff --git a/node/network/collator-protocol/src/validator_side/tests.rs b/node/network/collator-protocol/src/validator_side/tests.rs index 97d4391b4df6..a2e92e8c78d2 100644 --- a/node/network/collator-protocol/src/validator_side/tests.rs +++ b/node/network/collator-protocol/src/validator_side/tests.rs @@ -29,9 +29,11 @@ use polkadot_node_network_protocol::{ ObservedRole, }; use polkadot_node_primitives::BlockData; -use polkadot_node_subsystem::messages::{AllMessages, RuntimeApiMessage, RuntimeApiRequest}; +use polkadot_node_subsystem::messages::{ + AllMessages, ReportPeerMessage, RuntimeApiMessage, RuntimeApiRequest, +}; use polkadot_node_subsystem_test_helpers as test_helpers; -use polkadot_node_subsystem_util::TimeoutExt; +use polkadot_node_subsystem_util::{reputation::add_reputation, TimeoutExt}; use polkadot_primitives::{ CollatorPair, CoreState, GroupIndex, GroupRotationInfo, OccupiedCore, ScheduledCore, ValidatorId, ValidatorIndex, @@ -42,6 +44,7 @@ use polkadot_primitives_test_helpers::{ const ACTIVITY_TIMEOUT: Duration = Duration::from_millis(500); const DECLARE_TIMEOUT: Duration = Duration::from_millis(25); +const REPUTATION_CHANGE_TEST_INTERVAL: Duration = Duration::from_millis(10); #[derive(Clone)] struct TestState { @@ -119,7 +122,10 @@ struct TestHarness { virtual_overseer: VirtualOverseer, } -fn test_harness>(test: impl FnOnce(TestHarness) -> T) { +fn test_harness>( + reputation: ReputationAggregator, + test: impl FnOnce(TestHarness) -> T, +) { let _ = env_logger::builder() .is_test(true) .filter(Some("polkadot_collator_protocol"), log::LevelFilter::Trace) @@ -138,7 +144,7 @@ fn test_harness>(test: impl FnOnce(TestHarne ) .unwrap(); - let subsystem = run( + let subsystem = run_inner( context, Arc::new(keystore), crate::CollatorEvictionPolicy { @@ -146,6 +152,8 @@ fn test_harness>(test: impl FnOnce(TestHarne undeclared: DECLARE_TIMEOUT, }, Metrics::default(), + reputation, + REPUTATION_CHANGE_TEST_INTERVAL, ); let test_fut = test(TestHarness { virtual_overseer }); @@ -348,7 +356,7 @@ async fn advertise_collation( fn act_on_advertisement() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; let pair = CollatorPair::generate().0; @@ -392,7 +400,7 @@ fn act_on_advertisement() { fn collator_reporting_works() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; overseer_send( @@ -433,10 +441,10 @@ fn collator_reporting_works() { assert_matches!( overseer_recv(&mut virtual_overseer).await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep), + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)), ) => { assert_eq!(peer, peer_b); - assert_eq!(rep, COST_REPORT_BAD); + assert_eq!(rep.value, COST_REPORT_BAD.cost_or_benefit()); } ); @@ -449,7 +457,7 @@ fn collator_reporting_works() { fn collator_authentication_verification_works() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; let peer_b = PeerId::random(); @@ -483,10 +491,10 @@ fn collator_authentication_verification_works() { assert_matches!( overseer_recv(&mut virtual_overseer).await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(peer, rep), + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(peer, rep)), ) => { assert_eq!(peer, peer_b); - assert_eq!(rep, COST_INVALID_SIGNATURE); + assert_eq!(rep.value, COST_INVALID_SIGNATURE.cost_or_benefit()); } ); virtual_overseer @@ -500,7 +508,7 @@ fn collator_authentication_verification_works() { fn fetch_one_collation_at_a_time() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; let second = Hash::random(); @@ -585,7 +593,7 @@ fn fetch_one_collation_at_a_time() { fn fetches_next_collation() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; let second = Hash::random(); @@ -683,7 +691,7 @@ fn fetches_next_collation() { fn reject_connection_to_next_group() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; overseer_send( @@ -709,11 +717,10 @@ fn reject_connection_to_next_group() { assert_matches!( overseer_recv(&mut virtual_overseer).await, AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer( - peer, - rep, + ReportPeerMessage::Single(peer, rep), )) => { assert_eq!(peer, peer_b); - assert_eq!(rep, COST_UNNEEDED_COLLATOR); + assert_eq!(rep.value, COST_UNNEEDED_COLLATOR.cost_or_benefit()); } ); @@ -728,7 +735,7 @@ fn reject_connection_to_next_group() { fn fetch_next_collation_on_invalid_collation() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; let second = Hash::random(); @@ -802,11 +809,10 @@ fn fetch_next_collation_on_invalid_collation() { assert_matches!( overseer_recv(&mut virtual_overseer).await, AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer( - peer, - rep, + ReportPeerMessage::Single(peer, rep), )) => { assert_eq!(peer, peer_b); - assert_eq!(rep, COST_REPORT_BAD); + assert_eq!(rep.value, COST_REPORT_BAD.cost_or_benefit()); } ); @@ -826,7 +832,7 @@ fn fetch_next_collation_on_invalid_collation() { fn inactive_disconnected() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; let pair = CollatorPair::generate().0; @@ -872,7 +878,7 @@ fn inactive_disconnected() { fn activity_extends_life() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; let pair = CollatorPair::generate().0; @@ -937,7 +943,7 @@ fn activity_extends_life() { fn disconnect_if_no_declare() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; overseer_send( @@ -973,7 +979,7 @@ fn disconnect_if_no_declare() { fn disconnect_if_wrong_declare() { let test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; let pair = CollatorPair::generate().0; @@ -1017,11 +1023,10 @@ fn disconnect_if_wrong_declare() { assert_matches!( overseer_recv(&mut virtual_overseer).await, AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer( - peer, - rep, + ReportPeerMessage::Single(peer, rep), )) => { assert_eq!(peer, peer_b); - assert_eq!(rep, COST_UNNEEDED_COLLATOR); + assert_eq!(rep.value, COST_UNNEEDED_COLLATOR.cost_or_benefit()); } ); @@ -1031,11 +1036,96 @@ fn disconnect_if_wrong_declare() { }) } +#[test] +fn delay_reputation_change() { + let test_state = TestState::default(); + + test_harness(ReputationAggregator::new(|_| false), |test_harness| async move { + let TestHarness { mut virtual_overseer } = test_harness; + + let pair = CollatorPair::generate().0; + + overseer_send( + &mut virtual_overseer, + CollatorProtocolMessage::NetworkBridgeUpdate(NetworkBridgeEvent::OurViewChange( + our_view![test_state.relay_parent], + )), + ) + .await; + + respond_to_core_info_queries(&mut virtual_overseer, &test_state).await; + + let peer_b = PeerId::random(); + + overseer_send( + &mut virtual_overseer, + CollatorProtocolMessage::NetworkBridgeUpdate(NetworkBridgeEvent::PeerConnected( + peer_b.clone(), + ObservedRole::Full, + CollationVersion::V1.into(), + None, + )), + ) + .await; + + overseer_send( + &mut virtual_overseer, + CollatorProtocolMessage::NetworkBridgeUpdate(NetworkBridgeEvent::PeerMessage( + peer_b.clone(), + Versioned::V1(protocol_v1::CollatorProtocolMessage::Declare( + pair.public(), + ParaId::from(69), + pair.sign(&protocol_v1::declare_signature_payload(&peer_b)), + )), + )), + ) + .await; + + overseer_send( + &mut virtual_overseer, + CollatorProtocolMessage::NetworkBridgeUpdate(NetworkBridgeEvent::PeerMessage( + peer_b.clone(), + Versioned::V1(protocol_v1::CollatorProtocolMessage::Declare( + pair.public(), + ParaId::from(69), + pair.sign(&protocol_v1::declare_signature_payload(&peer_b)), + )), + )), + ) + .await; + + // Wait enough to fire reputation delay + futures_timer::Delay::new(REPUTATION_CHANGE_TEST_INTERVAL).await; + + loop { + match overseer_recv(&mut virtual_overseer).await { + AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::DisconnectPeer(_, _)) => { + gum::trace!("`Disconnecting inactive peer` message skipped"); + continue + }, + AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer( + ReportPeerMessage::Batch(v), + )) => { + let mut expected_change = HashMap::new(); + for rep in vec![COST_UNNEEDED_COLLATOR, COST_UNNEEDED_COLLATOR] { + add_reputation(&mut expected_change, peer_b, rep); + } + assert_eq!(v, expected_change); + break + }, + _ => panic!("Message should be either `DisconnectPeer` or `ReportPeer`"), + } + } + + virtual_overseer + }) +} + #[test] fn view_change_clears_old_collators() { let mut test_state = TestState::default(); - test_harness(|test_harness| async move { + test_harness(ReputationAggregator::new(|_| true), |test_harness| async move { let TestHarness { mut virtual_overseer } = test_harness; let pair = CollatorPair::generate().0; diff --git a/node/network/protocol/src/reputation.rs b/node/network/protocol/src/reputation.rs index 7cd2aa5143cf..55bd96b4e4a3 100644 --- a/node/network/protocol/src/reputation.rs +++ b/node/network/protocol/src/reputation.rs @@ -42,7 +42,7 @@ impl UnifiedReputationChange { /// /// The whole range of an `i32` should be used, so order of magnitude of /// something malicious should be `1<<20` (give or take). - const fn cost_or_benefit(&self) -> i32 { + pub const fn cost_or_benefit(&self) -> i32 { match self { Self::CostMinor(_) => -100_000, Self::CostMajor(_) => -300_000, @@ -81,9 +81,10 @@ impl UnifiedReputationChange { _ => false, } } +} - /// Convert into a base reputation as used with substrate. - pub const fn into_base_rep(self) -> ReputationChange { - ReputationChange::new(self.cost_or_benefit(), self.description()) +impl From for ReputationChange { + fn from(value: UnifiedReputationChange) -> Self { + ReputationChange::new(value.cost_or_benefit(), value.description()) } } diff --git a/node/network/protocol/src/request_response/incoming/mod.rs b/node/network/protocol/src/request_response/incoming/mod.rs index d8dae9da92a7..e2b8ad526488 100644 --- a/node/network/protocol/src/request_response/incoming/mod.rs +++ b/node/network/protocol/src/request_response/incoming/mod.rs @@ -88,8 +88,7 @@ where let payload = match Req::decode(&mut payload.as_ref()) { Ok(payload) => payload, Err(err) => { - let reputation_changes = - reputation_changes.into_iter().map(|r| r.into_base_rep()).collect(); + let reputation_changes = reputation_changes.into_iter().map(|r| r.into()).collect(); let response = sc_network::config::OutgoingResponse { result: Err(()), reputation_changes, @@ -175,7 +174,7 @@ where let response = netconfig::OutgoingResponse { result: result.map(|v| v.encode()), - reputation_changes: reputation_changes.into_iter().map(|c| c.into_base_rep()).collect(), + reputation_changes: reputation_changes.into_iter().map(|c| c.into()).collect(), sent_feedback, }; diff --git a/node/network/statement-distribution/Cargo.toml b/node/network/statement-distribution/Cargo.toml index 7ca5fe1624cb..6cf81ee37b6b 100644 --- a/node/network/statement-distribution/Cargo.toml +++ b/node/network/statement-distribution/Cargo.toml @@ -7,6 +7,7 @@ edition.workspace = true [dependencies] futures = "0.3.21" +futures-timer = "3.0.2" gum = { package = "tracing-gum", path = "../../gum" } polkadot-primitives = { path = "../../../primitives" } sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } diff --git a/node/network/statement-distribution/src/lib.rs b/node/network/statement-distribution/src/lib.rs index 502165b0b462..1c97cbfab523 100644 --- a/node/network/statement-distribution/src/lib.rs +++ b/node/network/statement-distribution/src/lib.rs @@ -55,12 +55,19 @@ use futures::{ channel::{mpsc, oneshot}, future::RemoteHandle, prelude::*, + select, }; use indexmap::{map::Entry as IEntry, IndexMap}; use sp_keystore::KeystorePtr; -use util::runtime::RuntimeInfo; +use util::{ + reputation::{ReputationAggregator, REPUTATION_CHANGE_INTERVAL}, + runtime::RuntimeInfo, +}; -use std::collections::{hash_map::Entry, HashMap, HashSet, VecDeque}; +use std::{ + collections::{hash_map::Entry, HashMap, HashSet, VecDeque}, + time::Duration, +}; use fatality::Nested; @@ -126,6 +133,8 @@ pub struct StatementDistributionSubsystem { metrics: Metrics, /// Pseudo-random generator for peers selection logic rng: R, + /// Aggregated reputation change + reputation: ReputationAggregator, } #[overseer::subsystem(StatementDistribution, error=SubsystemError, prefix=self::overseer)] @@ -1167,12 +1176,14 @@ async fn send_statements( } } -async fn report_peer( +/// Modify the reputation of a peer based on its behavior. +async fn modify_reputation( + reputation: &mut ReputationAggregator, sender: &mut impl overseer::StatementDistributionSenderTrait, peer: PeerId, rep: Rep, ) { - sender.send_message(NetworkBridgeTxMessage::ReportPeer(peer, rep)).await + reputation.modify(sender, peer, rep).await; } /// If message contains a statement, then retrieve it, otherwise fork task to fetch it. @@ -1319,6 +1330,7 @@ async fn handle_incoming_message_and_circulate<'a, Context, R>( metrics: &Metrics, runtime: &mut RuntimeInfo, rng: &mut R, + reputation: &mut ReputationAggregator, ) where R: rand::Rng, { @@ -1333,6 +1345,7 @@ async fn handle_incoming_message_and_circulate<'a, Context, R>( message, req_sender, metrics, + reputation, ) .await, None => None, @@ -1397,6 +1410,7 @@ async fn handle_incoming_message<'a, Context>( message: protocol_v1::StatementDistributionMessage, req_sender: &mpsc::Sender, metrics: &Metrics, + reputation: &mut ReputationAggregator, ) -> Option<(Hash, StoredStatement<'a>)> { let relay_parent = message.get_relay_parent(); let _ = metrics.time_network_bridge_update_v1("handle_incoming_message"); @@ -1411,7 +1425,7 @@ async fn handle_incoming_message<'a, Context>( ); if !recent_outdated_heads.is_recent_outdated(&relay_parent) { - report_peer(ctx.sender(), peer, COST_UNEXPECTED_STATEMENT).await; + modify_reputation(reputation, ctx.sender(), peer, COST_UNEXPECTED_STATEMENT).await; } return None @@ -1421,7 +1435,7 @@ async fn handle_incoming_message<'a, Context>( if let protocol_v1::StatementDistributionMessage::LargeStatement(_) = message { if let Err(rep) = peer_data.receive_large_statement(&relay_parent) { gum::debug!(target: LOG_TARGET, ?peer, ?message, ?rep, "Unexpected large statement.",); - report_peer(ctx.sender(), peer, rep).await; + modify_reputation(reputation, ctx.sender(), peer, rep).await; return None } } @@ -1462,16 +1476,16 @@ async fn handle_incoming_message<'a, Context>( // Report peer merely if this is not a duplicate out-of-view statement that // was caused by a missing Seconded statement from this peer if unexpected_count == 0_usize { - report_peer(ctx.sender(), peer, rep).await; + modify_reputation(reputation, ctx.sender(), peer, rep).await; } }, // This happens when we have an unexpected remote peer that announced Seconded COST_UNEXPECTED_STATEMENT_REMOTE => { metrics.on_unexpected_statement_seconded(); - report_peer(ctx.sender(), peer, rep).await; + modify_reputation(reputation, ctx.sender(), peer, rep).await; }, _ => { - report_peer(ctx.sender(), peer, rep).await; + modify_reputation(reputation, ctx.sender(), peer, rep).await; }, } @@ -1492,7 +1506,7 @@ async fn handle_incoming_message<'a, Context>( peer_data .receive(&relay_parent, &fingerprint, max_message_count) .expect("checked in `check_can_receive` above; qed"); - report_peer(ctx.sender(), peer, BENEFIT_VALID_STATEMENT).await; + modify_reputation(reputation, ctx.sender(), peer, BENEFIT_VALID_STATEMENT).await; return None }, @@ -1502,7 +1516,7 @@ async fn handle_incoming_message<'a, Context>( match check_statement_signature(&active_head, relay_parent, unchecked_compact) { Err(statement) => { gum::debug!(target: LOG_TARGET, ?peer, ?statement, "Invalid statement signature"); - report_peer(ctx.sender(), peer, COST_INVALID_SIGNATURE).await; + modify_reputation(reputation, ctx.sender(), peer, COST_INVALID_SIGNATURE).await; return None }, Ok(statement) => statement, @@ -1528,7 +1542,7 @@ async fn handle_incoming_message<'a, Context>( is_large_statement, "Full statement had bad payload." ); - report_peer(ctx.sender(), peer, COST_WRONG_HASH).await; + modify_reputation(reputation, ctx.sender(), peer, COST_WRONG_HASH).await; return None }, Ok(statement) => statement, @@ -1567,7 +1581,7 @@ async fn handle_incoming_message<'a, Context>( unreachable!("checked in `is_useful_or_unknown` above; qed"); }, NotedStatement::Fresh(statement) => { - report_peer(ctx.sender(), peer, BENEFIT_VALID_STATEMENT_FIRST).await; + modify_reputation(reputation, ctx.sender(), peer, BENEFIT_VALID_STATEMENT_FIRST).await; let mut _span = handle_incoming_span.child("notify-backing"); @@ -1641,6 +1655,7 @@ async fn handle_network_update( metrics: &Metrics, runtime: &mut RuntimeInfo, rng: &mut R, + reputation: &mut ReputationAggregator, ) where R: rand::Rng, { @@ -1713,6 +1728,7 @@ async fn handle_network_update( metrics, runtime, rng, + reputation, ) .await; }, @@ -1750,10 +1766,27 @@ impl StatementDistributionSubsystem { metrics: Metrics, rng: R, ) -> Self { - Self { keystore, req_receiver: Some(req_receiver), metrics, rng } + Self { + keystore, + req_receiver: Some(req_receiver), + metrics, + rng, + reputation: Default::default(), + } + } + + async fn run(self, ctx: Context) -> std::result::Result<(), FatalError> { + self.run_inner(ctx, REPUTATION_CHANGE_INTERVAL).await } - async fn run(mut self, mut ctx: Context) -> std::result::Result<(), FatalError> { + async fn run_inner( + mut self, + mut ctx: Context, + reputation_interval: Duration, + ) -> std::result::Result<(), FatalError> { + let new_reputation_delay = || futures_timer::Delay::new(reputation_interval).fuse(); + let mut reputation_delay = new_reputation_delay(); + let mut peers: HashMap = HashMap::new(); let mut topology_storage: SessionBoundGridTopologyStorage = Default::default(); let mut authorities: HashMap = HashMap::new(); @@ -1778,55 +1811,61 @@ impl StatementDistributionSubsystem { .map_err(FatalError::SpawnTask)?; loop { - let message = - MuxedMessage::receive(&mut ctx, &mut req_receiver, &mut res_receiver).await; - match message { - MuxedMessage::Subsystem(result) => { - let result = self - .handle_subsystem_message( - &mut ctx, - &mut runtime, - &mut peers, - &mut topology_storage, - &mut authorities, - &mut active_heads, - &mut recent_outdated_heads, - &req_sender, - result?, - ) - .await; - match result.into_nested()? { - Ok(true) => break, - Ok(false) => {}, - Err(jfyi) => gum::debug!(target: LOG_TARGET, error = ?jfyi), - } - }, - MuxedMessage::Requester(result) => { - let result = self - .handle_requester_message( - &mut ctx, - &topology_storage, - &mut peers, - &mut active_heads, - &recent_outdated_heads, - &req_sender, - &mut runtime, - result.ok_or(FatalError::RequesterReceiverFinished)?, - ) - .await; - log_error(result.map_err(From::from), "handle_requester_message")?; + select! { + _ = reputation_delay => { + self.reputation.send(ctx.sender()).await; + reputation_delay = new_reputation_delay(); }, - MuxedMessage::Responder(result) => { - let result = self - .handle_responder_message( - &peers, - &mut active_heads, - result.ok_or(FatalError::ResponderReceiverFinished)?, - ) - .await; - log_error(result.map_err(From::from), "handle_responder_message")?; - }, - }; + message = MuxedMessage::receive(&mut ctx, &mut req_receiver, &mut res_receiver).fuse() => { + match message { + MuxedMessage::Subsystem(result) => { + let result = self + .handle_subsystem_message( + &mut ctx, + &mut runtime, + &mut peers, + &mut topology_storage, + &mut authorities, + &mut active_heads, + &mut recent_outdated_heads, + &req_sender, + result?, + ) + .await; + match result.into_nested()? { + Ok(true) => break, + Ok(false) => {}, + Err(jfyi) => gum::debug!(target: LOG_TARGET, error = ?jfyi), + } + }, + MuxedMessage::Requester(result) => { + let result = self + .handle_requester_message( + &mut ctx, + &topology_storage, + &mut peers, + &mut active_heads, + &recent_outdated_heads, + &req_sender, + &mut runtime, + result.ok_or(FatalError::RequesterReceiverFinished)?, + ) + .await; + log_error(result.map_err(From::from), "handle_requester_message")?; + }, + MuxedMessage::Responder(result) => { + let result = self + .handle_responder_message( + &peers, + &mut active_heads, + result.ok_or(FatalError::ResponderReceiverFinished)?, + ) + .await; + log_error(result.map_err(From::from), "handle_responder_message")?; + }, + }; + } + } } Ok(()) } @@ -1890,9 +1929,16 @@ impl StatementDistributionSubsystem { bad_peers, } => { for bad in bad_peers { - report_peer(ctx.sender(), bad, COST_FETCH_FAIL).await; + modify_reputation(&mut self.reputation, ctx.sender(), bad, COST_FETCH_FAIL) + .await; } - report_peer(ctx.sender(), from_peer, BENEFIT_VALID_RESPONSE).await; + modify_reputation( + &mut self.reputation, + ctx.sender(), + from_peer, + BENEFIT_VALID_RESPONSE, + ) + .await; let active_head = active_heads .get_mut(&relay_parent) @@ -1932,6 +1978,7 @@ impl StatementDistributionSubsystem { &self.metrics, runtime, &mut self.rng, + &mut self.reputation, ) .await; } @@ -1975,7 +2022,8 @@ impl StatementDistributionSubsystem { } } }, - RequesterMessage::ReportPeer(peer, rep) => report_peer(ctx.sender(), peer, rep).await, + RequesterMessage::ReportPeer(peer, rep) => + modify_reputation(&mut self.reputation, ctx.sender(), peer, rep).await, } Ok(()) } @@ -2113,6 +2161,7 @@ impl StatementDistributionSubsystem { metrics, runtime, &mut self.rng, + &mut self.reputation, ) .await; }, diff --git a/node/network/statement-distribution/src/tests.rs b/node/network/statement-distribution/src/tests.rs index 7726f1c0a5a4..3f3e6e589616 100644 --- a/node/network/statement-distribution/src/tests.rs +++ b/node/network/statement-distribution/src/tests.rs @@ -31,7 +31,9 @@ use polkadot_node_network_protocol::{ use polkadot_node_primitives::{Statement, UncheckedSignedFullStatement}; use polkadot_node_subsystem::{ jaeger, - messages::{network_bridge_event, AllMessages, RuntimeApiMessage, RuntimeApiRequest}, + messages::{ + network_bridge_event, AllMessages, ReportPeerMessage, RuntimeApiMessage, RuntimeApiRequest, + }, ActivatedLeaf, LeafStatus, }; use polkadot_node_subsystem_test_helpers::mock::make_ferdie_keystore; @@ -47,6 +49,7 @@ use sp_authority_discovery::AuthorityPair; use sp_keyring::Sr25519Keyring; use sp_keystore::{Keystore, KeystorePtr}; use std::{iter::FromIterator as _, sync::Arc, time::Duration}; +use util::reputation::add_reputation; // Some deterministic genesis hash for protocol names const GENESIS_HASH: Hash = Hash::repeat_byte(0xff); @@ -733,12 +736,13 @@ fn receiving_from_one_sends_to_another_and_to_candidate_backing() { let (statement_req_receiver, _) = IncomingRequest::get_config_receiver(&req_protocol_names); let bg = async move { - let s = StatementDistributionSubsystem::new( - Arc::new(LocalKeystore::in_memory()), - statement_req_receiver, - Default::default(), - AlwaysZeroRng, - ); + let s = StatementDistributionSubsystem { + keystore: Arc::new(LocalKeystore::in_memory()), + req_receiver: Some(statement_req_receiver), + metrics: Default::default(), + rng: AlwaysZeroRng, + reputation: ReputationAggregator::new(|_| true), + }; s.run(ctx).await.unwrap(); }; @@ -862,8 +866,8 @@ fn receiving_from_one_sends_to_another_and_to_candidate_backing() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(p, r) - ) if p == peer_a && r == BENEFIT_VALID_STATEMENT_FIRST => {} + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(p, r)) + ) if p == peer_a && r == BENEFIT_VALID_STATEMENT_FIRST.into() => {} ); assert_matches!( @@ -936,12 +940,13 @@ fn receiving_large_statement_from_one_sends_to_another_and_to_candidate_backing( IncomingRequest::get_config_receiver(&req_protocol_names); let bg = async move { - let s = StatementDistributionSubsystem::new( - make_ferdie_keystore(), - statement_req_receiver, - Default::default(), - AlwaysZeroRng, - ); + let s = StatementDistributionSubsystem { + keystore: make_ferdie_keystore(), + req_receiver: Some(statement_req_receiver), + metrics: Default::default(), + rng: AlwaysZeroRng, + reputation: ReputationAggregator::new(|_| true), + }; s.run(ctx).await.unwrap(); }; @@ -1226,8 +1231,8 @@ fn receiving_large_statement_from_one_sends_to_another_and_to_candidate_backing( assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(p, r) - ) if p == peer_bad && r == COST_WRONG_HASH => {} + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(p, r)) + ) if p == peer_bad && r == COST_WRONG_HASH.into() => {} ); // a is tried again (retried in reverse order): @@ -1277,22 +1282,22 @@ fn receiving_large_statement_from_one_sends_to_another_and_to_candidate_backing( assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(p, r) - ) if p == peer_a && r == COST_FETCH_FAIL => {} + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(p, r)) + ) if p == peer_a && r == COST_FETCH_FAIL.into() => {} ); assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(p, r) - ) if p == peer_c && r == BENEFIT_VALID_RESPONSE => {} + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(p, r)) + ) if p == peer_c && r == BENEFIT_VALID_RESPONSE.into() => {} ); assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(p, r) - ) if p == peer_a && r == BENEFIT_VALID_STATEMENT_FIRST => {} + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(p, r)) + ) if p == peer_a && r == BENEFIT_VALID_STATEMENT_FIRST.into() => {} ); assert_matches!( @@ -1392,6 +1397,441 @@ fn receiving_large_statement_from_one_sends_to_another_and_to_candidate_backing( executor::block_on(future::join(test_fut, bg)); } +#[test] +fn delay_reputation_changes() { + sp_tracing::try_init_simple(); + let hash_a = Hash::repeat_byte(1); + + let candidate = { + let mut c = dummy_committed_candidate_receipt(dummy_hash()); + c.descriptor.relay_parent = hash_a; + c.descriptor.para_id = 1.into(); + c.commitments.new_validation_code = Some(ValidationCode(vec![1, 2, 3])); + c + }; + + let peer_a = PeerId::random(); // Alice + let peer_b = PeerId::random(); // Bob + let peer_c = PeerId::random(); // Charlie + let peer_bad = PeerId::random(); // No validator + + let validators = vec![ + Sr25519Keyring::Alice.pair(), + Sr25519Keyring::Bob.pair(), + Sr25519Keyring::Charlie.pair(), + // We: + Sr25519Keyring::Ferdie.pair(), + ]; + + let session_info = make_session_info(validators, vec![vec![0, 1, 2, 4], vec![3]]); + + let session_index = 1; + + let pool = sp_core::testing::TaskExecutor::new(); + let (ctx, mut handle) = polkadot_node_subsystem_test_helpers::make_subsystem_context(pool); + + let req_protocol_names = ReqProtocolNames::new(&GENESIS_HASH, None); + let (statement_req_receiver, _) = IncomingRequest::get_config_receiver(&req_protocol_names); + + let reputation_interval = Duration::from_millis(100); + + let bg = async move { + let s = StatementDistributionSubsystem { + keystore: make_ferdie_keystore(), + req_receiver: Some(statement_req_receiver), + metrics: Default::default(), + rng: AlwaysZeroRng, + reputation: ReputationAggregator::new(|_| false), + }; + s.run_inner(ctx, reputation_interval).await.unwrap(); + }; + + let test_fut = async move { + // register our active heads. + handle + .send(FromOrchestra::Signal(OverseerSignal::ActiveLeaves( + ActiveLeavesUpdate::start_work(ActivatedLeaf { + hash: hash_a, + number: 1, + status: LeafStatus::Fresh, + span: Arc::new(jaeger::Span::Disabled), + }), + ))) + .await; + + assert_matches!( + handle.recv().await, + AllMessages::RuntimeApi( + RuntimeApiMessage::Request(r, RuntimeApiRequest::SessionIndexForChild(tx)) + ) + if r == hash_a + => { + let _ = tx.send(Ok(session_index)); + } + ); + + assert_matches!( + handle.recv().await, + AllMessages::RuntimeApi( + RuntimeApiMessage::Request(r, RuntimeApiRequest::SessionInfo(sess_index, tx)) + ) + if r == hash_a && sess_index == session_index + => { + let _ = tx.send(Ok(Some(session_info))); + } + ); + + // notify of peers and view + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerConnected( + peer_a.clone(), + ObservedRole::Full, + ValidationVersion::V1.into(), + Some(HashSet::from([Sr25519Keyring::Alice.public().into()])), + ), + ), + }) + .await; + + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerConnected( + peer_b.clone(), + ObservedRole::Full, + ValidationVersion::V1.into(), + Some(HashSet::from([Sr25519Keyring::Bob.public().into()])), + ), + ), + }) + .await; + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerConnected( + peer_c.clone(), + ObservedRole::Full, + ValidationVersion::V1.into(), + Some(HashSet::from([Sr25519Keyring::Charlie.public().into()])), + ), + ), + }) + .await; + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerConnected( + peer_bad.clone(), + ObservedRole::Full, + ValidationVersion::V1.into(), + None, + ), + ), + }) + .await; + + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerViewChange(peer_a.clone(), view![hash_a]), + ), + }) + .await; + + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerViewChange(peer_b.clone(), view![hash_a]), + ), + }) + .await; + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerViewChange(peer_c.clone(), view![hash_a]), + ), + }) + .await; + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerViewChange(peer_bad.clone(), view![hash_a]), + ), + }) + .await; + + // receive a seconded statement from peer A, which does not provide the request data, + // then get that data from peer C. It should be propagated onwards to peer B and to + // candidate backing. + let statement = { + let signing_context = SigningContext { parent_hash: hash_a, session_index }; + + let keystore: KeystorePtr = Arc::new(LocalKeystore::in_memory()); + let alice_public = Keystore::sr25519_generate_new( + &*keystore, + ValidatorId::ID, + Some(&Sr25519Keyring::Alice.to_seed()), + ) + .unwrap(); + + SignedFullStatement::sign( + &keystore, + Statement::Seconded(candidate.clone()), + &signing_context, + ValidatorIndex(0), + &alice_public.into(), + ) + .ok() + .flatten() + .expect("should be signed") + }; + + let metadata = derive_metadata_assuming_seconded(hash_a, statement.clone().into()); + + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerMessage( + peer_a.clone(), + Versioned::V1(protocol_v1::StatementDistributionMessage::LargeStatement( + metadata.clone(), + )), + ), + ), + }) + .await; + + assert_matches!( + handle.recv().await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::SendRequests( + mut reqs, IfDisconnected::ImmediateError + ) + ) => { + let reqs = reqs.pop().unwrap(); + let outgoing = match reqs { + Requests::StatementFetchingV1(outgoing) => outgoing, + _ => panic!("Unexpected request"), + }; + let req = outgoing.payload; + assert_eq!(req.relay_parent, metadata.relay_parent); + assert_eq!(req.candidate_hash, metadata.candidate_hash); + assert_eq!(outgoing.peer, Recipient::Peer(peer_a)); + // Just drop request - should trigger error. + } + ); + + // There is a race between request handler asking for more peers and processing of the + // coming `PeerMessage`s, we want the request handler to ask first here for better test + // coverage: + Delay::new(Duration::from_millis(20)).await; + + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerMessage( + peer_c.clone(), + Versioned::V1(protocol_v1::StatementDistributionMessage::LargeStatement( + metadata.clone(), + )), + ), + ), + }) + .await; + + // Malicious peer: + handle + .send(FromOrchestra::Communication { + msg: StatementDistributionMessage::NetworkBridgeUpdate( + NetworkBridgeEvent::PeerMessage( + peer_bad.clone(), + Versioned::V1(protocol_v1::StatementDistributionMessage::LargeStatement( + metadata.clone(), + )), + ), + ), + }) + .await; + + // Let c fail once too: + assert_matches!( + handle.recv().await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::SendRequests( + mut reqs, IfDisconnected::ImmediateError + ) + ) => { + let reqs = reqs.pop().unwrap(); + let outgoing = match reqs { + Requests::StatementFetchingV1(outgoing) => outgoing, + _ => panic!("Unexpected request"), + }; + let req = outgoing.payload; + assert_eq!(req.relay_parent, metadata.relay_parent); + assert_eq!(req.candidate_hash, metadata.candidate_hash); + assert_eq!(outgoing.peer, Recipient::Peer(peer_c)); + } + ); + + // a fails again: + assert_matches!( + handle.recv().await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::SendRequests( + mut reqs, IfDisconnected::ImmediateError + ) + ) => { + let reqs = reqs.pop().unwrap(); + let outgoing = match reqs { + Requests::StatementFetchingV1(outgoing) => outgoing, + _ => panic!("Unexpected request"), + }; + let req = outgoing.payload; + assert_eq!(req.relay_parent, metadata.relay_parent); + assert_eq!(req.candidate_hash, metadata.candidate_hash); + // On retry, we should have reverse order: + assert_eq!(outgoing.peer, Recipient::Peer(peer_a)); + } + ); + + // Send invalid response (all other peers have been tried now): + assert_matches!( + handle.recv().await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::SendRequests( + mut reqs, IfDisconnected::ImmediateError + ) + ) => { + let reqs = reqs.pop().unwrap(); + let outgoing = match reqs { + Requests::StatementFetchingV1(outgoing) => outgoing, + _ => panic!("Unexpected request"), + }; + let req = outgoing.payload; + assert_eq!(req.relay_parent, metadata.relay_parent); + assert_eq!(req.candidate_hash, metadata.candidate_hash); + assert_eq!(outgoing.peer, Recipient::Peer(peer_bad)); + let bad_candidate = { + let mut bad = candidate.clone(); + bad.descriptor.para_id = 0xeadbeaf.into(); + bad + }; + let response = StatementFetchingResponse::Statement(bad_candidate); + outgoing.pending_response.send(Ok(response.encode())).unwrap(); + } + ); + + // a is tried again (retried in reverse order): + assert_matches!( + handle.recv().await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::SendRequests( + mut reqs, IfDisconnected::ImmediateError + ) + ) => { + let reqs = reqs.pop().unwrap(); + let outgoing = match reqs { + Requests::StatementFetchingV1(outgoing) => outgoing, + _ => panic!("Unexpected request"), + }; + let req = outgoing.payload; + assert_eq!(req.relay_parent, metadata.relay_parent); + assert_eq!(req.candidate_hash, metadata.candidate_hash); + // On retry, we should have reverse order: + assert_eq!(outgoing.peer, Recipient::Peer(peer_a)); + } + ); + + // c succeeds now: + assert_matches!( + handle.recv().await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::SendRequests( + mut reqs, IfDisconnected::ImmediateError + ) + ) => { + let reqs = reqs.pop().unwrap(); + let outgoing = match reqs { + Requests::StatementFetchingV1(outgoing) => outgoing, + _ => panic!("Unexpected request"), + }; + let req = outgoing.payload; + assert_eq!(req.relay_parent, metadata.relay_parent); + assert_eq!(req.candidate_hash, metadata.candidate_hash); + // On retry, we should have reverse order: + assert_eq!(outgoing.peer, Recipient::Peer(peer_c)); + let response = StatementFetchingResponse::Statement(candidate.clone()); + outgoing.pending_response.send(Ok(response.encode())).unwrap(); + } + ); + + assert_matches!( + handle.recv().await, + AllMessages::CandidateBacking( + CandidateBackingMessage::Statement(r, s) + ) if r == hash_a && s == statement => {} + ); + + // Now messages should go out: + assert_matches!( + handle.recv().await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::SendValidationMessage( + mut recipients, + Versioned::V1(protocol_v1::ValidationProtocol::StatementDistribution( + protocol_v1::StatementDistributionMessage::LargeStatement(meta) + )), + ) + ) => { + gum::debug!( + target: LOG_TARGET, + ?recipients, + "Recipients received" + ); + recipients.sort(); + let mut expected = vec![peer_b, peer_c, peer_bad]; + expected.sort(); + assert_eq!(recipients, expected); + assert_eq!(meta.relay_parent, hash_a); + assert_eq!(meta.candidate_hash, statement.payload().candidate_hash()); + assert_eq!(meta.signed_by, statement.validator_index()); + assert_eq!(&meta.signature, statement.signature()); + } + ); + + // Wait enough to fire reputation delay + futures_timer::Delay::new(reputation_interval).await; + + assert_matches!( + handle.recv().await, + AllMessages::NetworkBridgeTx( + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Batch(v)) + ) => { + let mut expected_change = HashMap::new(); + for rep in vec![COST_FETCH_FAIL, BENEFIT_VALID_STATEMENT_FIRST] { + add_reputation(&mut expected_change, peer_a, rep) + } + for rep in vec![BENEFIT_VALID_RESPONSE, BENEFIT_VALID_STATEMENT] { + add_reputation(&mut expected_change, peer_c, rep) + } + for rep in vec![COST_WRONG_HASH, BENEFIT_VALID_STATEMENT] { + add_reputation(&mut expected_change, peer_bad, rep) + } + assert_eq!(v, expected_change); + } + ); + + handle.send(FromOrchestra::Signal(OverseerSignal::Conclude)).await; + }; + + futures::pin_mut!(test_fut); + futures::pin_mut!(bg); + + executor::block_on(future::join(test_fut, bg)); +} + #[test] fn share_prioritizes_backing_group() { sp_tracing::try_init_simple(); @@ -1448,12 +1888,13 @@ fn share_prioritizes_backing_group() { IncomingRequest::get_config_receiver(&req_protocol_names); let bg = async move { - let s = StatementDistributionSubsystem::new( - make_ferdie_keystore(), - statement_req_receiver, - Default::default(), - AlwaysZeroRng, - ); + let s = StatementDistributionSubsystem { + keystore: make_ferdie_keystore(), + req_receiver: Some(statement_req_receiver), + metrics: Default::default(), + rng: AlwaysZeroRng, + reputation: ReputationAggregator::new(|_| true), + }; s.run(ctx).await.unwrap(); }; @@ -1741,12 +2182,13 @@ fn peer_cant_flood_with_large_statements() { let req_protocol_names = ReqProtocolNames::new(&GENESIS_HASH, None); let (statement_req_receiver, _) = IncomingRequest::get_config_receiver(&req_protocol_names); let bg = async move { - let s = StatementDistributionSubsystem::new( - make_ferdie_keystore(), - statement_req_receiver, - Default::default(), - AlwaysZeroRng, - ); + let s = StatementDistributionSubsystem { + keystore: make_ferdie_keystore(), + req_receiver: Some(statement_req_receiver), + metrics: Default::default(), + rng: AlwaysZeroRng, + reputation: ReputationAggregator::new(|_| true), + }; s.run(ctx).await.unwrap(); }; @@ -1873,9 +2315,9 @@ fn peer_cant_flood_with_large_statements() { requested = true; }, - AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer(p, r)) - if p == peer_a && r == COST_APPARENT_FLOOD => - { + AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::ReportPeer( + ReportPeerMessage::Single(p, r), + )) if p == peer_a && r == COST_APPARENT_FLOOD.into() => { punished = true; }, @@ -1945,12 +2387,13 @@ fn handle_multiple_seconded_statements() { let (statement_req_receiver, _) = IncomingRequest::get_config_receiver(&req_protocol_names); let virtual_overseer_fut = async move { - let s = StatementDistributionSubsystem::new( - Arc::new(LocalKeystore::in_memory()), - statement_req_receiver, - Default::default(), - AlwaysZeroRng, - ); + let s = StatementDistributionSubsystem { + keystore: Arc::new(LocalKeystore::in_memory()), + req_receiver: Some(statement_req_receiver), + metrics: Default::default(), + rng: AlwaysZeroRng, + reputation: ReputationAggregator::new(|_| true), + }; s.run(ctx).await.unwrap(); }; @@ -2136,10 +2579,10 @@ fn handle_multiple_seconded_statements() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(p, r) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(p, r)) ) => { assert_eq!(p, peer_a); - assert_eq!(r, BENEFIT_VALID_STATEMENT_FIRST); + assert_eq!(r, BENEFIT_VALID_STATEMENT_FIRST.into()); } ); @@ -2188,10 +2631,10 @@ fn handle_multiple_seconded_statements() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(p, r) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(p, r)) ) => { assert_eq!(p, peer_b); - assert_eq!(r, BENEFIT_VALID_STATEMENT); + assert_eq!(r, BENEFIT_VALID_STATEMENT.into()); } ); @@ -2237,10 +2680,10 @@ fn handle_multiple_seconded_statements() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(p, r) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(p, r)) ) => { assert_eq!(p, peer_a); - assert_eq!(r, BENEFIT_VALID_STATEMENT_FIRST); + assert_eq!(r, BENEFIT_VALID_STATEMENT_FIRST.into()); } ); @@ -2290,10 +2733,10 @@ fn handle_multiple_seconded_statements() { assert_matches!( handle.recv().await, AllMessages::NetworkBridgeTx( - NetworkBridgeTxMessage::ReportPeer(p, r) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single(p, r)) ) => { assert_eq!(p, peer_b); - assert_eq!(r, BENEFIT_VALID_STATEMENT); + assert_eq!(r, BENEFIT_VALID_STATEMENT.into()); } ); diff --git a/node/overseer/src/tests.rs b/node/overseer/src/tests.rs index 35efa4e1bd6f..c53050e9fb0a 100644 --- a/node/overseer/src/tests.rs +++ b/node/overseer/src/tests.rs @@ -26,7 +26,7 @@ use polkadot_node_primitives::{ }; use polkadot_node_subsystem_types::{ jaeger, - messages::{NetworkBridgeEvent, RuntimeApiRequest}, + messages::{NetworkBridgeEvent, ReportPeerMessage, RuntimeApiRequest}, ActivatedLeaf, LeafStatus, }; use polkadot_primitives::{ @@ -855,7 +855,10 @@ fn test_availability_store_msg() -> AvailabilityStoreMessage { } fn test_network_bridge_tx_msg() -> NetworkBridgeTxMessage { - NetworkBridgeTxMessage::ReportPeer(PeerId::random(), UnifiedReputationChange::BenefitMinor("")) + NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single( + PeerId::random(), + UnifiedReputationChange::BenefitMinor("").into(), + )) } fn test_network_bridge_rx_msg() -> NetworkBridgeRxMessage { diff --git a/node/subsystem-types/src/messages.rs b/node/subsystem-types/src/messages.rs index d190e33f5e21..14fa88663ee5 100644 --- a/node/subsystem-types/src/messages.rs +++ b/node/subsystem-types/src/messages.rs @@ -23,14 +23,13 @@ //! Subsystems' APIs are defined separately from their implementation, leading to easier mocking. use futures::channel::oneshot; -use sc_network::Multiaddr; +use sc_network::{Multiaddr, ReputationChange}; use thiserror::Error; pub use sc_network::IfDisconnected; use polkadot_node_network_protocol::{ self as net_protocol, peer_set::PeerSet, request_response::Requests, PeerId, - UnifiedReputationChange, }; use polkadot_node_primitives::{ approval::{BlockApprovalMeta, IndirectAssignmentCert, IndirectSignedApprovalVote}, @@ -305,11 +304,20 @@ pub enum NetworkBridgeRxMessage { }, } +/// Type of peer reporting +#[derive(Debug)] +pub enum ReportPeerMessage { + /// Single peer report about malicious actions which should be sent right away + Single(PeerId, ReputationChange), + /// Delayed report for other actions. + Batch(HashMap), +} + /// Messages received from other subsystems by the network bridge subsystem. #[derive(Debug)] pub enum NetworkBridgeTxMessage { /// Report a peer for their actions. - ReportPeer(PeerId, UnifiedReputationChange), + ReportPeer(ReportPeerMessage), /// Disconnect a peer from the given peer-set without affecting their reputation. DisconnectPeer(PeerId, PeerSet), diff --git a/node/subsystem-util/src/lib.rs b/node/subsystem-util/src/lib.rs index d6984d697aaa..de869bd91f12 100644 --- a/node/subsystem-util/src/lib.rs +++ b/node/subsystem-util/src/lib.rs @@ -77,6 +77,8 @@ pub mod database; /// tasks, sending messages back. pub mod nesting_sender; +pub mod reputation; + mod determine_new_blocks; #[cfg(test)] diff --git a/node/subsystem-util/src/reputation.rs b/node/subsystem-util/src/reputation.rs new file mode 100644 index 000000000000..d1010f000ed5 --- /dev/null +++ b/node/subsystem-util/src/reputation.rs @@ -0,0 +1,116 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! A utility abstraction to collect and send reputation changes. + +use polkadot_node_network_protocol::{PeerId, UnifiedReputationChange}; +use polkadot_node_subsystem::{ + messages::{NetworkBridgeTxMessage, ReportPeerMessage}, + overseer, +}; +use std::{collections::HashMap, time::Duration}; + +/// Default delay for sending reputation changes +pub const REPUTATION_CHANGE_INTERVAL: Duration = Duration::from_secs(30); + +type BatchReputationChange = HashMap; + +/// Collects reputation changes and sends them in one batch to relieve network channels +#[derive(Debug, Clone)] +pub struct ReputationAggregator { + send_immediately_if: fn(UnifiedReputationChange) -> bool, + by_peer: Option, +} + +impl Default for ReputationAggregator { + fn default() -> Self { + Self::new(|rep| matches!(rep, UnifiedReputationChange::Malicious(_))) + } +} + +impl ReputationAggregator { + /// New ReputationAggregator + /// + /// # Arguments + /// + /// * `send_immediately_if` - A function, takes `UnifiedReputationChange`, + /// results shows if we need to send the changes right away. + /// By default, it is used for sending `UnifiedReputationChange::Malicious` changes immediately and for testing. + pub fn new(send_immediately_if: fn(UnifiedReputationChange) -> bool) -> Self { + Self { by_peer: Default::default(), send_immediately_if } + } + + /// Sends collected reputation changes in a batch, + /// removing them from inner state + pub async fn send( + &mut self, + sender: &mut impl overseer::SubsystemSender, + ) { + if let Some(by_peer) = self.by_peer.take() { + sender + .send_message(NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Batch(by_peer))) + .await; + } + } + + /// Adds reputation change to inner state + /// or sends it right away if the change is dangerous + pub async fn modify( + &mut self, + sender: &mut impl overseer::SubsystemSender, + peer_id: PeerId, + rep: UnifiedReputationChange, + ) { + if (self.send_immediately_if)(rep) { + self.single_send(sender, peer_id, rep).await; + } else { + self.add(peer_id, rep); + } + } + + async fn single_send( + &self, + sender: &mut impl overseer::SubsystemSender, + peer_id: PeerId, + rep: UnifiedReputationChange, + ) { + sender + .send_message(NetworkBridgeTxMessage::ReportPeer(ReportPeerMessage::Single( + peer_id, + rep.into(), + ))) + .await; + } + + fn add(&mut self, peer_id: PeerId, rep: UnifiedReputationChange) { + if self.by_peer.is_none() { + self.by_peer = Some(HashMap::new()); + } + if let Some(ref mut by_peer) = self.by_peer { + add_reputation(by_peer, peer_id, rep) + } + } +} + +/// Add a reputation change to an existing collection. +pub fn add_reputation( + acc: &mut BatchReputationChange, + peer_id: PeerId, + rep: UnifiedReputationChange, +) { + let cost = rep.cost_or_benefit(); + acc.entry(peer_id).and_modify(|v| *v = v.saturating_add(cost)).or_insert(cost); +} From 7a19bf09147605f185421a51ec254c51d2c7d060 Mon Sep 17 00:00:00 2001 From: Keith Yeung Date: Thu, 15 Jun 2023 19:22:35 +0100 Subject: [PATCH 22/56] [XCM] Make NetworkId and Junction versioned (#7376) * [XCM] Make NetworkId and Junction versioned * Fixes --------- Co-authored-by: parity-processbot <> --- xcm/src/lib.rs | 20 ++++++++++++++++++++ xcm/src/v2/mod.rs | 25 +++++++++++++++++-------- xcm/src/v3/junction.rs | 12 ++++++++++++ 3 files changed, 49 insertions(+), 8 deletions(-) diff --git a/xcm/src/lib.rs b/xcm/src/lib.rs index 40ba1dc7dcb4..2e8ea78b5c15 100644 --- a/xcm/src/lib.rs +++ b/xcm/src/lib.rs @@ -242,6 +242,26 @@ versioned_type! { } } +versioned_type! { + /// A single `NetworkId` value, together with its version code. + pub enum VersionedNetworkId { + #[codec(index = 2)] + V2(v2::NetworkId), + #[codec(index = 3)] + V3(v3::NetworkId), + } +} + +versioned_type! { + /// A single `Junction` value, together with its version code. + pub enum VersionedJunction { + #[codec(index = 2)] + V2(v2::Junction), + #[codec(index = 3)] + V3(v3::Junction), + } +} + versioned_type! { /// A single `MultiLocation` value, together with its version code. #[derive(Ord, PartialOrd)] diff --git a/xcm/src/v2/mod.rs b/xcm/src/v2/mod.rs index 6a24cf0720e7..014942d6b679 100644 --- a/xcm/src/v2/mod.rs +++ b/xcm/src/v2/mod.rs @@ -117,16 +117,25 @@ pub enum NetworkId { Kusama, } -impl TryInto for Option { +impl TryFrom> for NetworkId { type Error = (); - fn try_into(self) -> result::Result { + fn try_from(new: Option) -> result::Result { + match new { + None => Ok(NetworkId::Any), + Some(id) => Self::try_from(id), + } + } +} + +impl TryFrom for NetworkId { + type Error = (); + fn try_from(new: NewNetworkId) -> result::Result { use NewNetworkId::*; - Ok(match self { - None => NetworkId::Any, - Some(Polkadot) => NetworkId::Polkadot, - Some(Kusama) => NetworkId::Kusama, - _ => return Err(()), - }) + match new { + Polkadot => Ok(NetworkId::Polkadot), + Kusama => Ok(NetworkId::Kusama), + _ => Err(()), + } } } diff --git a/xcm/src/v3/junction.rs b/xcm/src/v3/junction.rs index cf3437ac6a14..5fee8d1f83bd 100644 --- a/xcm/src/v3/junction.rs +++ b/xcm/src/v3/junction.rs @@ -88,6 +88,18 @@ impl From for Option { } } +impl TryFrom for NetworkId { + type Error = (); + fn try_from(old: OldNetworkId) -> Result { + use OldNetworkId::*; + match old { + Any | Named(_) => Err(()), + Polkadot => Ok(NetworkId::Polkadot), + Kusama => Ok(NetworkId::Kusama), + } + } +} + /// An identifier of a pluralistic body. #[derive( Copy, From c92432964618276d709c6d0697c2d3b36e177a85 Mon Sep 17 00:00:00 2001 From: Aaro Altonen <48052676+altonen@users.noreply.github.com> Date: Fri, 16 Jun 2023 10:32:52 +0300 Subject: [PATCH 23/56] Wait peers to connect before doing anything else (#7375) There is a race condition in `NetworkBridgeRx` between registering incoming peers and handling overseer signals. While the peer connection was sent to `NetworkBridgeRx` first, sometimes the peer would be added to `validation/collation_peers` with enough delay that the bridge handled an overseer signal that was meant do send notifications to the registered peer and as the peer was not present in the bridge, the notification was never sent and the test would hang. When peers are registered to `NetworkBridgeRx` using `connect_peer()`, wait until they show up in `shared.validation/collation_peers` before doing anything else. Co-authored-by: parity-processbot <> --- node/network/bridge/src/rx/tests.rs | 70 +++++++++++++++++++++++------ 1 file changed, 57 insertions(+), 13 deletions(-) diff --git a/node/network/bridge/src/rx/tests.rs b/node/network/bridge/src/rx/tests.rs index 42faaee68361..d98b1d4f0856 100644 --- a/node/network/bridge/src/rx/tests.rs +++ b/node/network/bridge/src/rx/tests.rs @@ -291,6 +291,27 @@ type VirtualOverseer = TestSubsystemContextHandle; struct TestHarness { network_handle: TestNetworkHandle, virtual_overseer: VirtualOverseer, + shared: Shared, +} + +// wait until all needed validation and collation peers have connected. +async fn await_peer_connections( + shared: &Shared, + num_validation_peers: usize, + num_collation_peers: usize, +) { + loop { + { + let shared = shared.0.lock(); + if shared.validation_peers.len() == num_validation_peers && + shared.collation_peers.len() == num_collation_peers + { + break + } + } + + futures_timer::Delay::new(std::time::Duration::from_millis(100)).await; + } } fn test_harness>( @@ -306,13 +327,14 @@ fn test_harness>( let (context, virtual_overseer) = polkadot_node_subsystem_test_helpers::make_subsystem_context(pool); let network_stream = network.event_stream(); + let shared = Shared::default(); let bridge = NetworkBridgeRx { network_service: network, authority_discovery_service: discovery, metrics: Metrics(None), sync_oracle, - shared: Shared::default(), + shared: shared.clone(), peerset_protocol_names, }; @@ -320,7 +342,7 @@ fn test_harness>( .map_err(|_| panic!("subsystem execution failed")) .map(|_| ()); - let test_fut = test(TestHarness { network_handle, virtual_overseer }); + let test_fut = test(TestHarness { network_handle, virtual_overseer, shared }); futures::pin_mut!(test_fut); futures::pin_mut!(network_bridge); @@ -386,7 +408,7 @@ async fn assert_sends_collation_event_to_all( fn send_our_view_upon_connection() { let (oracle, handle) = make_sync_oracle(false); test_harness(Box::new(oracle), |test_harness| async move { - let TestHarness { mut network_handle, mut virtual_overseer } = test_harness; + let TestHarness { mut network_handle, mut virtual_overseer, shared } = test_harness; let peer = PeerId::random(); @@ -411,6 +433,8 @@ fn send_our_view_upon_connection() { .connect_peer(peer.clone(), PeerSet::Collation, ObservedRole::Full) .await; + await_peer_connections(&shared, 1, 1).await; + let view = view![head]; let actions = network_handle.next_network_actions(2).await; assert_network_actions_contains( @@ -437,7 +461,7 @@ fn send_our_view_upon_connection() { fn sends_view_updates_to_peers() { let (oracle, handle) = make_sync_oracle(false); test_harness(Box::new(oracle), |test_harness| async move { - let TestHarness { mut network_handle, mut virtual_overseer } = test_harness; + let TestHarness { mut network_handle, mut virtual_overseer, shared } = test_harness; let peer_a = PeerId::random(); let peer_b = PeerId::random(); @@ -458,6 +482,8 @@ fn sends_view_updates_to_peers() { .connect_peer(peer_b.clone(), PeerSet::Collation, ObservedRole::Full) .await; + await_peer_connections(&shared, 1, 1).await; + let actions = network_handle.next_network_actions(2).await; let wire_message = WireMessage::::ViewUpdate(View::default()).encode(); @@ -506,7 +532,7 @@ fn sends_view_updates_to_peers() { fn do_not_send_view_update_until_synced() { let (oracle, handle) = make_sync_oracle(true); test_harness(Box::new(oracle), |test_harness| async move { - let TestHarness { mut network_handle, mut virtual_overseer } = test_harness; + let TestHarness { mut network_handle, mut virtual_overseer, shared } = test_harness; let peer_a = PeerId::random(); let peer_b = PeerId::random(); @@ -519,6 +545,8 @@ fn do_not_send_view_update_until_synced() { .connect_peer(peer_b.clone(), PeerSet::Collation, ObservedRole::Full) .await; + await_peer_connections(&shared, 1, 1).await; + { let actions = network_handle.next_network_actions(2).await; let wire_message = @@ -600,7 +628,7 @@ fn do_not_send_view_update_until_synced() { #[test] fn do_not_send_view_update_when_only_finalized_block_changed() { test_harness(done_syncing_oracle(), |test_harness| async move { - let TestHarness { mut network_handle, mut virtual_overseer } = test_harness; + let TestHarness { mut network_handle, mut virtual_overseer, shared } = test_harness; let peer_a = PeerId::random(); let peer_b = PeerId::random(); @@ -612,6 +640,8 @@ fn do_not_send_view_update_when_only_finalized_block_changed() { .connect_peer(peer_b.clone(), PeerSet::Validation, ObservedRole::Full) .await; + await_peer_connections(&shared, 2, 0).await; + let hash_a = Hash::repeat_byte(1); virtual_overseer @@ -660,7 +690,7 @@ fn do_not_send_view_update_when_only_finalized_block_changed() { #[test] fn peer_view_updates_sent_via_overseer() { test_harness(done_syncing_oracle(), |test_harness| async move { - let TestHarness { mut network_handle, mut virtual_overseer } = test_harness; + let TestHarness { mut network_handle, mut virtual_overseer, shared } = test_harness; let peer = PeerId::random(); @@ -668,6 +698,8 @@ fn peer_view_updates_sent_via_overseer() { .connect_peer(peer.clone(), PeerSet::Validation, ObservedRole::Full) .await; + await_peer_connections(&shared, 1, 0).await; + let view = view![Hash::repeat_byte(1)]; // bridge will inform about all connected peers. @@ -710,7 +742,7 @@ fn peer_view_updates_sent_via_overseer() { #[test] fn peer_messages_sent_via_overseer() { test_harness(done_syncing_oracle(), |test_harness| async move { - let TestHarness { mut network_handle, mut virtual_overseer } = test_harness; + let TestHarness { mut network_handle, mut virtual_overseer, shared } = test_harness; let peer = PeerId::random(); @@ -718,6 +750,8 @@ fn peer_messages_sent_via_overseer() { .connect_peer(peer.clone(), PeerSet::Validation, ObservedRole::Full) .await; + await_peer_connections(&shared, 1, 0).await; + // bridge will inform about all connected peers. { assert_sends_validation_event_to_all( @@ -782,7 +816,7 @@ fn peer_messages_sent_via_overseer() { #[test] fn peer_disconnect_from_just_one_peerset() { test_harness(done_syncing_oracle(), |test_harness| async move { - let TestHarness { mut network_handle, mut virtual_overseer } = test_harness; + let TestHarness { mut network_handle, mut virtual_overseer, shared } = test_harness; let peer = PeerId::random(); @@ -793,6 +827,8 @@ fn peer_disconnect_from_just_one_peerset() { .connect_peer(peer.clone(), PeerSet::Collation, ObservedRole::Full) .await; + await_peer_connections(&shared, 1, 1).await; + // bridge will inform about all connected peers. { assert_sends_validation_event_to_all( @@ -874,7 +910,7 @@ fn peer_disconnect_from_just_one_peerset() { #[test] fn relays_collation_protocol_messages() { test_harness(done_syncing_oracle(), |test_harness| async move { - let TestHarness { mut network_handle, mut virtual_overseer } = test_harness; + let TestHarness { mut network_handle, mut virtual_overseer, shared } = test_harness; let peer_a = PeerId::random(); let peer_b = PeerId::random(); @@ -886,6 +922,8 @@ fn relays_collation_protocol_messages() { .connect_peer(peer_b.clone(), PeerSet::Collation, ObservedRole::Full) .await; + await_peer_connections(&shared, 1, 1).await; + // bridge will inform about all connected peers. { assert_sends_validation_event_to_all( @@ -978,7 +1016,7 @@ fn relays_collation_protocol_messages() { #[test] fn different_views_on_different_peer_sets() { test_harness(done_syncing_oracle(), |test_harness| async move { - let TestHarness { mut network_handle, mut virtual_overseer } = test_harness; + let TestHarness { mut network_handle, mut virtual_overseer, shared } = test_harness; let peer = PeerId::random(); @@ -989,6 +1027,8 @@ fn different_views_on_different_peer_sets() { .connect_peer(peer.clone(), PeerSet::Collation, ObservedRole::Full) .await; + await_peer_connections(&shared, 1, 1).await; + // bridge will inform about all connected peers. { assert_sends_validation_event_to_all( @@ -1065,7 +1105,7 @@ fn different_views_on_different_peer_sets() { #[test] fn sent_views_include_finalized_number_update() { test_harness(done_syncing_oracle(), |test_harness| async move { - let TestHarness { mut network_handle, mut virtual_overseer } = test_harness; + let TestHarness { mut network_handle, mut virtual_overseer, shared } = test_harness; let peer_a = PeerId::random(); @@ -1073,6 +1113,8 @@ fn sent_views_include_finalized_number_update() { .connect_peer(peer_a.clone(), PeerSet::Validation, ObservedRole::Full) .await; + await_peer_connections(&shared, 1, 0).await; + let hash_a = Hash::repeat_byte(1); let hash_b = Hash::repeat_byte(2); @@ -1110,7 +1152,7 @@ fn sent_views_include_finalized_number_update() { #[test] fn view_finalized_number_can_not_go_down() { test_harness(done_syncing_oracle(), |test_harness| async move { - let TestHarness { mut network_handle, virtual_overseer } = test_harness; + let TestHarness { mut network_handle, virtual_overseer, shared } = test_harness; let peer_a = PeerId::random(); @@ -1118,6 +1160,8 @@ fn view_finalized_number_can_not_go_down() { .connect_peer(peer_a.clone(), PeerSet::Validation, ObservedRole::Full) .await; + await_peer_connections(&shared, 1, 0).await; + network_handle .peer_message( peer_a.clone(), From cdc906f1f089b7f447bed47f129883099910e176 Mon Sep 17 00:00:00 2001 From: Mira Ressel Date: Fri, 16 Jun 2023 13:14:16 +0200 Subject: [PATCH 24/56] docs: update references to NetworkConfiguration::extra_sets (#7386) * docs: update references to NetworkConfiguration::extra_sets Since paritytech/substrate#14080, this struct field no longer exists, now the `add_notification_protocol()` function of `sc_network::config::FullNetworkConfiguration` is used. Also neuter the doc links for now; rustdoc can't resolve them (presumably because sc_network::config isn't in scope, though weirdly enough even spelling the link out as ``[`FullNetworkConfiguration`](struct@sc_network::config::FullNetworkConfiguration)`` doesn't work?). Normally this wouldn't be an issue and rustdoc would just not generate links, but rust 1.70 has a bug that completely crashes rustdoc in this case. --- node/network/bridge/src/lib.rs | 2 +- node/network/bridge/src/rx/mod.rs | 2 +- node/network/bridge/src/tx/mod.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/node/network/bridge/src/lib.rs b/node/network/bridge/src/lib.rs index 0dd6227b71a2..46d4a00faace 100644 --- a/node/network/bridge/src/lib.rs +++ b/node/network/bridge/src/lib.rs @@ -34,7 +34,7 @@ use polkadot_node_network_protocol::{ /// Peer set info for network initialization. /// -/// To be added to [`NetworkConfiguration::extra_sets`]. +/// To be passed to [`FullNetworkConfiguration::add_notification_protocol`](). pub use polkadot_node_network_protocol::peer_set::{peer_sets_info, IsAuthority}; use std::{collections::HashMap, sync::Arc}; diff --git a/node/network/bridge/src/rx/mod.rs b/node/network/bridge/src/rx/mod.rs index 499a73f0a49a..e757b2822184 100644 --- a/node/network/bridge/src/rx/mod.rs +++ b/node/network/bridge/src/rx/mod.rs @@ -49,7 +49,7 @@ use polkadot_primitives::{AuthorityDiscoveryId, BlockNumber, Hash, ValidatorInde /// Peer set info for network initialization. /// -/// To be added to [`NetworkConfiguration::extra_sets`]. +/// To be passed to [`FullNetworkConfiguration::add_notification_protocol`](). pub use polkadot_node_network_protocol::peer_set::{peer_sets_info, IsAuthority}; use std::{ diff --git a/node/network/bridge/src/tx/mod.rs b/node/network/bridge/src/tx/mod.rs index ff2e60fbe80b..2b54f6f0f06d 100644 --- a/node/network/bridge/src/tx/mod.rs +++ b/node/network/bridge/src/tx/mod.rs @@ -31,7 +31,7 @@ use polkadot_node_subsystem::{ /// Peer set info for network initialization. /// -/// To be added to [`NetworkConfiguration::extra_sets`]. +/// To be passed to [`FullNetworkConfiguration::add_notification_protocol`](). pub use polkadot_node_network_protocol::peer_set::{peer_sets_info, IsAuthority}; use sc_network::ReputationChange; From 48bbf363cec069277dd2561edc549a7c85775af6 Mon Sep 17 00:00:00 2001 From: Juan Date: Fri, 16 Jun 2023 13:34:50 +0200 Subject: [PATCH 25/56] Companion for Soft deprecate GenesisConfig (#7288) * update genesis config * fix wrong RuntimeGenesisConfig name * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <> --- Cargo.lock | 366 +++++++++--------- node/service/src/chain_spec.rs | 70 ++-- node/test/service/src/chain_spec.rs | 10 +- .../src/fungible/mock.rs | 2 +- xcm/pallet-xcm-benchmarks/src/generic/mock.rs | 2 +- 5 files changed, 226 insertions(+), 224 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 68356fb49514..10e4f0b7de58 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -523,7 +523,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "hash-db", "log", @@ -2518,7 +2518,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", ] @@ -2541,7 +2541,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-support-procedural", @@ -2566,7 +2566,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "Inflector", "array-bytes", @@ -2613,7 +2613,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2624,7 +2624,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2641,7 +2641,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-system", @@ -2670,7 +2670,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-recursion", "futures", @@ -2691,7 +2691,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "bitflags", "environmental", @@ -2726,7 +2726,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "Inflector", "cfg-expr", @@ -2744,7 +2744,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2756,7 +2756,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "proc-macro2", "quote", @@ -2766,7 +2766,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-executive", @@ -2793,7 +2793,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-system", @@ -2805,7 +2805,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "cfg-if", "frame-support", @@ -2824,7 +2824,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -2839,7 +2839,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "sp-api", @@ -2848,7 +2848,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "parity-scale-codec", @@ -3030,7 +3030,7 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "chrono", "frame-election-provider-support", @@ -4964,7 +4964,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "futures", "log", @@ -4983,7 +4983,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "anyhow", "jsonrpsee", @@ -5566,7 +5566,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5581,7 +5581,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-system", @@ -5597,7 +5597,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-system", @@ -5611,7 +5611,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5635,7 +5635,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5655,7 +5655,7 @@ dependencies = [ [[package]] name = "pallet-bags-list-remote-tests" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-election-provider-support", "frame-remote-externalities", @@ -5674,7 +5674,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5689,7 +5689,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-system", @@ -5708,7 +5708,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -5732,7 +5732,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5750,7 +5750,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5769,7 +5769,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5786,7 +5786,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5803,7 +5803,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5821,7 +5821,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5844,7 +5844,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5857,7 +5857,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5875,7 +5875,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "docify", "frame-benchmarking", @@ -5894,7 +5894,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5917,7 +5917,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5933,7 +5933,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5953,7 +5953,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5970,7 +5970,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -5987,7 +5987,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6006,7 +6006,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6023,7 +6023,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6039,7 +6039,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6055,7 +6055,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-system", @@ -6072,7 +6072,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6092,7 +6092,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6103,7 +6103,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-system", @@ -6120,7 +6120,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6144,7 +6144,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6161,7 +6161,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6176,7 +6176,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6194,7 +6194,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6209,7 +6209,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6228,7 +6228,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6245,7 +6245,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-system", @@ -6266,7 +6266,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6282,7 +6282,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-system", @@ -6296,7 +6296,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6319,7 +6319,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6330,7 +6330,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "log", "sp-arithmetic", @@ -6339,7 +6339,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "sp-api", @@ -6348,7 +6348,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6365,7 +6365,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6380,7 +6380,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6398,7 +6398,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6417,7 +6417,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-support", "frame-system", @@ -6433,7 +6433,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6449,7 +6449,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6461,7 +6461,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6478,7 +6478,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6493,7 +6493,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6509,7 +6509,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -6524,7 +6524,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-benchmarking", "frame-support", @@ -9675,7 +9675,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "log", "sp-core", @@ -9686,7 +9686,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "futures", @@ -9715,7 +9715,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "futures", "futures-timer", @@ -9738,7 +9738,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9753,7 +9753,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9772,7 +9772,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9783,7 +9783,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "chrono", @@ -9823,7 +9823,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "fnv", "futures", @@ -9850,7 +9850,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "hash-db", "kvdb", @@ -9876,7 +9876,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "futures", @@ -9901,7 +9901,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "fork-tree", @@ -9937,7 +9937,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "futures", "jsonrpsee", @@ -9959,7 +9959,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "async-channel", @@ -9995,7 +9995,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "futures", "jsonrpsee", @@ -10014,7 +10014,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10027,7 +10027,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "ahash 0.8.2", "array-bytes", @@ -10067,7 +10067,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "finality-grandpa", "futures", @@ -10087,7 +10087,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "futures", @@ -10110,7 +10110,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -10132,7 +10132,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -10144,7 +10144,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "anyhow", "cfg-if", @@ -10162,7 +10162,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "ansi_term", "futures", @@ -10178,7 +10178,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -10192,7 +10192,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "async-channel", @@ -10238,7 +10238,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-channel", "cid", @@ -10259,7 +10259,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "async-trait", @@ -10286,7 +10286,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "ahash 0.8.2", "futures", @@ -10304,7 +10304,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "async-channel", @@ -10326,7 +10326,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "async-channel", @@ -10360,7 +10360,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "futures", @@ -10378,7 +10378,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "bytes", @@ -10408,7 +10408,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10417,7 +10417,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "futures", "jsonrpsee", @@ -10448,7 +10448,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10467,7 +10467,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "http", "jsonrpsee", @@ -10482,7 +10482,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "futures", @@ -10508,7 +10508,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "directories", @@ -10574,7 +10574,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "log", "parity-scale-codec", @@ -10585,7 +10585,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "clap 4.2.5", "fs4", @@ -10601,7 +10601,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10620,7 +10620,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "futures", "libc", @@ -10639,7 +10639,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "chrono", "futures", @@ -10658,7 +10658,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "ansi_term", "atty", @@ -10689,7 +10689,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10700,7 +10700,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "futures", @@ -10726,7 +10726,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "futures", @@ -10742,7 +10742,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-channel", "futures", @@ -11290,7 +11290,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "hash-db", "log", @@ -11310,7 +11310,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "Inflector", "blake2", @@ -11324,7 +11324,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "scale-info", @@ -11337,7 +11337,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "integer-sqrt", "num-traits", @@ -11351,7 +11351,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "scale-info", @@ -11364,7 +11364,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "sp-api", @@ -11376,7 +11376,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "futures", "log", @@ -11394,7 +11394,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "futures", @@ -11409,7 +11409,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "parity-scale-codec", @@ -11427,7 +11427,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "parity-scale-codec", @@ -11448,7 +11448,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11467,7 +11467,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "finality-grandpa", "log", @@ -11485,7 +11485,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "scale-info", @@ -11497,7 +11497,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "bitflags", @@ -11541,7 +11541,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "blake2b_simd", "byteorder", @@ -11555,7 +11555,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "proc-macro2", "quote", @@ -11566,7 +11566,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11575,7 +11575,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "proc-macro2", "quote", @@ -11585,7 +11585,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "environmental", "parity-scale-codec", @@ -11596,7 +11596,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11611,7 +11611,7 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "bytes", "ed25519", @@ -11637,7 +11637,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "lazy_static", "sp-core", @@ -11648,7 +11648,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "futures", "parity-scale-codec", @@ -11662,7 +11662,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11671,7 +11671,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11682,7 +11682,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11700,7 +11700,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "scale-info", @@ -11714,7 +11714,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "sp-api", "sp-core", @@ -11724,7 +11724,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "backtrace", "lazy_static", @@ -11734,7 +11734,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "rustc-hash", "serde", @@ -11744,7 +11744,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "either", "hash256-std-hasher", @@ -11766,7 +11766,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11784,7 +11784,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "Inflector", "proc-macro-crate", @@ -11796,7 +11796,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "scale-info", @@ -11810,7 +11810,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "scale-info", @@ -11823,7 +11823,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "hash-db", "log", @@ -11843,7 +11843,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "log", "parity-scale-codec", @@ -11861,12 +11861,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11879,7 +11879,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "futures-timer", @@ -11894,7 +11894,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "sp-std", @@ -11906,7 +11906,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "sp-api", "sp-runtime", @@ -11915,7 +11915,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "log", @@ -11931,7 +11931,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "ahash 0.8.2", "hash-db", @@ -11954,7 +11954,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11971,7 +11971,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11982,7 +11982,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11995,7 +11995,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "parity-scale-codec", "scale-info", @@ -12236,7 +12236,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "platforms", ] @@ -12244,7 +12244,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12263,7 +12263,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "hyper", "log", @@ -12275,7 +12275,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "jsonrpsee", @@ -12288,7 +12288,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "jsonrpsee", "log", @@ -12307,7 +12307,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "array-bytes", "async-trait", @@ -12333,7 +12333,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "futures", "substrate-test-utils-derive", @@ -12343,7 +12343,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12354,7 +12354,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "ansi_term", "build-helper", @@ -13209,7 +13209,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#51b2f0ed6af8dd4facb18f1a489e192fd0673f7b" +source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" dependencies = [ "async-trait", "clap 4.2.5", diff --git a/node/service/src/chain_spec.rs b/node/service/src/chain_spec.rs index d5c9d25698b6..9e788bc8326f 100644 --- a/node/service/src/chain_spec.rs +++ b/node/service/src/chain_spec.rs @@ -77,7 +77,7 @@ pub struct Extensions { /// The `ChainSpec` parameterized for the polkadot runtime. #[cfg(feature = "polkadot-native")] -pub type PolkadotChainSpec = service::GenericChainSpec; +pub type PolkadotChainSpec = service::GenericChainSpec; // Dummy chain spec, in case when we don't have the native runtime. pub type DummyChainSpec = service::GenericChainSpec<(), Extensions>; @@ -88,7 +88,7 @@ pub type PolkadotChainSpec = DummyChainSpec; /// The `ChainSpec` parameterized for the kusama runtime. #[cfg(feature = "kusama-native")] -pub type KusamaChainSpec = service::GenericChainSpec; +pub type KusamaChainSpec = service::GenericChainSpec; /// The `ChainSpec` parameterized for the kusama runtime. // Dummy chain spec, but that is fine when we don't have the native runtime. @@ -97,7 +97,7 @@ pub type KusamaChainSpec = DummyChainSpec; /// The `ChainSpec` parameterized for the westend runtime. #[cfg(feature = "westend-native")] -pub type WestendChainSpec = service::GenericChainSpec; +pub type WestendChainSpec = service::GenericChainSpec; /// The `ChainSpec` parameterized for the westend runtime. // Dummy chain spec, but that is fine when we don't have the native runtime. @@ -123,7 +123,7 @@ pub type RococoChainSpec = DummyChainSpec; #[cfg(feature = "rococo-native")] pub struct RococoGenesisExt { /// The runtime genesis config. - runtime_genesis_config: rococo::GenesisConfig, + runtime_genesis_config: rococo::RuntimeGenesisConfig, /// The session length in blocks. /// /// If `None` is supplied, the default value is used. @@ -301,7 +301,7 @@ fn rococo_session_keys( } #[cfg(feature = "polkadot-native")] -fn polkadot_staging_testnet_config_genesis(wasm_binary: &[u8]) -> polkadot::GenesisConfig { +fn polkadot_staging_testnet_config_genesis(wasm_binary: &[u8]) -> polkadot::RuntimeGenesisConfig { // subkey inspect "$SECRET" let endowed_accounts = vec![]; @@ -319,7 +319,7 @@ fn polkadot_staging_testnet_config_genesis(wasm_binary: &[u8]) -> polkadot::Gene const ENDOWMENT: u128 = 1_000_000 * DOT; const STASH: u128 = 100 * DOT; - polkadot::GenesisConfig { + polkadot::RuntimeGenesisConfig { system: polkadot::SystemConfig { code: wasm_binary.to_vec() }, balances: polkadot::BalancesConfig { balances: endowed_accounts @@ -389,7 +389,7 @@ fn polkadot_staging_testnet_config_genesis(wasm_binary: &[u8]) -> polkadot::Gene } #[cfg(feature = "westend-native")] -fn westend_staging_testnet_config_genesis(wasm_binary: &[u8]) -> westend::GenesisConfig { +fn westend_staging_testnet_config_genesis(wasm_binary: &[u8]) -> westend::RuntimeGenesisConfig { use hex_literal::hex; use sp_core::crypto::UncheckedInto; @@ -510,7 +510,7 @@ fn westend_staging_testnet_config_genesis(wasm_binary: &[u8]) -> westend::Genesi const ENDOWMENT: u128 = 1_000_000 * WND; const STASH: u128 = 100 * WND; - westend::GenesisConfig { + westend::RuntimeGenesisConfig { system: westend::SystemConfig { code: wasm_binary.to_vec() }, balances: westend::BalancesConfig { balances: endowed_accounts @@ -574,7 +574,7 @@ fn westend_staging_testnet_config_genesis(wasm_binary: &[u8]) -> westend::Genesi } #[cfg(feature = "kusama-native")] -fn kusama_staging_testnet_config_genesis(wasm_binary: &[u8]) -> kusama::GenesisConfig { +fn kusama_staging_testnet_config_genesis(wasm_binary: &[u8]) -> kusama::RuntimeGenesisConfig { use hex_literal::hex; use sp_core::crypto::UncheckedInto; @@ -700,7 +700,7 @@ fn kusama_staging_testnet_config_genesis(wasm_binary: &[u8]) -> kusama::GenesisC const ENDOWMENT: u128 = 1_000_000 * KSM; const STASH: u128 = 100 * KSM; - kusama::GenesisConfig { + kusama::RuntimeGenesisConfig { system: kusama::SystemConfig { code: wasm_binary.to_vec() }, balances: kusama::BalancesConfig { balances: endowed_accounts @@ -763,7 +763,9 @@ fn kusama_staging_testnet_config_genesis(wasm_binary: &[u8]) -> kusama::GenesisC } #[cfg(feature = "rococo-native")] -fn rococo_staging_testnet_config_genesis(wasm_binary: &[u8]) -> rococo_runtime::GenesisConfig { +fn rococo_staging_testnet_config_genesis( + wasm_binary: &[u8], +) -> rococo_runtime::RuntimeGenesisConfig { use hex_literal::hex; use sp_core::crypto::UncheckedInto; @@ -1006,7 +1008,7 @@ fn rococo_staging_testnet_config_genesis(wasm_binary: &[u8]) -> rococo_runtime:: const ENDOWMENT: u128 = 1_000_000 * ROC; const STASH: u128 = 100 * ROC; - rococo_runtime::GenesisConfig { + rococo_runtime::RuntimeGenesisConfig { system: rococo_runtime::SystemConfig { code: wasm_binary.to_vec() }, balances: rococo_runtime::BalancesConfig { balances: endowed_accounts @@ -1286,7 +1288,7 @@ fn testnet_accounts() -> Vec { ] } -/// Helper function to create polkadot `GenesisConfig` for testing +/// Helper function to create polkadot `RuntimeGenesisConfig` for testing #[cfg(feature = "polkadot-native")] pub fn polkadot_testnet_genesis( wasm_binary: &[u8], @@ -1302,13 +1304,13 @@ pub fn polkadot_testnet_genesis( )>, _root_key: AccountId, endowed_accounts: Option>, -) -> polkadot::GenesisConfig { +) -> polkadot::RuntimeGenesisConfig { let endowed_accounts: Vec = endowed_accounts.unwrap_or_else(testnet_accounts); const ENDOWMENT: u128 = 1_000_000 * DOT; const STASH: u128 = 100 * DOT; - polkadot::GenesisConfig { + polkadot::RuntimeGenesisConfig { system: polkadot::SystemConfig { code: wasm_binary.to_vec() }, indices: polkadot::IndicesConfig { indices: vec![] }, balances: polkadot::BalancesConfig { @@ -1373,7 +1375,7 @@ pub fn polkadot_testnet_genesis( } } -/// Helper function to create kusama `GenesisConfig` for testing +/// Helper function to create kusama `RuntimeGenesisConfig` for testing #[cfg(feature = "kusama-native")] pub fn kusama_testnet_genesis( wasm_binary: &[u8], @@ -1389,13 +1391,13 @@ pub fn kusama_testnet_genesis( )>, _root_key: AccountId, endowed_accounts: Option>, -) -> kusama::GenesisConfig { +) -> kusama::RuntimeGenesisConfig { let endowed_accounts: Vec = endowed_accounts.unwrap_or_else(testnet_accounts); const ENDOWMENT: u128 = 1_000_000 * KSM; const STASH: u128 = 100 * KSM; - kusama::GenesisConfig { + kusama::RuntimeGenesisConfig { system: kusama::SystemConfig { code: wasm_binary.to_vec() }, indices: kusama::IndicesConfig { indices: vec![] }, balances: kusama::BalancesConfig { @@ -1453,7 +1455,7 @@ pub fn kusama_testnet_genesis( } } -/// Helper function to create westend `GenesisConfig` for testing +/// Helper function to create westend `RuntimeGenesisConfig` for testing #[cfg(feature = "westend-native")] pub fn westend_testnet_genesis( wasm_binary: &[u8], @@ -1469,13 +1471,13 @@ pub fn westend_testnet_genesis( )>, root_key: AccountId, endowed_accounts: Option>, -) -> westend::GenesisConfig { +) -> westend::RuntimeGenesisConfig { let endowed_accounts: Vec = endowed_accounts.unwrap_or_else(testnet_accounts); const ENDOWMENT: u128 = 1_000_000 * WND; const STASH: u128 = 100 * WND; - westend::GenesisConfig { + westend::RuntimeGenesisConfig { system: westend::SystemConfig { code: wasm_binary.to_vec() }, indices: westend::IndicesConfig { indices: vec![] }, balances: westend::BalancesConfig { @@ -1534,7 +1536,7 @@ pub fn westend_testnet_genesis( } } -/// Helper function to create rococo `GenesisConfig` for testing +/// Helper function to create rococo `RuntimeGenesisConfig` for testing #[cfg(feature = "rococo-native")] pub fn rococo_testnet_genesis( wasm_binary: &[u8], @@ -1551,12 +1553,12 @@ pub fn rococo_testnet_genesis( )>, root_key: AccountId, endowed_accounts: Option>, -) -> rococo_runtime::GenesisConfig { +) -> rococo_runtime::RuntimeGenesisConfig { let endowed_accounts: Vec = endowed_accounts.unwrap_or_else(testnet_accounts); const ENDOWMENT: u128 = 1_000_000 * ROC; - rococo_runtime::GenesisConfig { + rococo_runtime::RuntimeGenesisConfig { system: rococo_runtime::SystemConfig { code: wasm_binary.to_vec() }, beefy: Default::default(), indices: rococo_runtime::IndicesConfig { indices: vec![] }, @@ -1619,7 +1621,7 @@ pub fn rococo_testnet_genesis( } #[cfg(feature = "polkadot-native")] -fn polkadot_development_config_genesis(wasm_binary: &[u8]) -> polkadot::GenesisConfig { +fn polkadot_development_config_genesis(wasm_binary: &[u8]) -> polkadot::RuntimeGenesisConfig { polkadot_testnet_genesis( wasm_binary, vec![get_authority_keys_from_seed_no_beefy("Alice")], @@ -1629,7 +1631,7 @@ fn polkadot_development_config_genesis(wasm_binary: &[u8]) -> polkadot::GenesisC } #[cfg(feature = "kusama-native")] -fn kusama_development_config_genesis(wasm_binary: &[u8]) -> kusama::GenesisConfig { +fn kusama_development_config_genesis(wasm_binary: &[u8]) -> kusama::RuntimeGenesisConfig { kusama_testnet_genesis( wasm_binary, vec![get_authority_keys_from_seed_no_beefy("Alice")], @@ -1639,7 +1641,7 @@ fn kusama_development_config_genesis(wasm_binary: &[u8]) -> kusama::GenesisConfi } #[cfg(feature = "westend-native")] -fn westend_development_config_genesis(wasm_binary: &[u8]) -> westend::GenesisConfig { +fn westend_development_config_genesis(wasm_binary: &[u8]) -> westend::RuntimeGenesisConfig { westend_testnet_genesis( wasm_binary, vec![get_authority_keys_from_seed_no_beefy("Alice")], @@ -1649,7 +1651,7 @@ fn westend_development_config_genesis(wasm_binary: &[u8]) -> westend::GenesisCon } #[cfg(feature = "rococo-native")] -fn rococo_development_config_genesis(wasm_binary: &[u8]) -> rococo_runtime::GenesisConfig { +fn rococo_development_config_genesis(wasm_binary: &[u8]) -> rococo_runtime::RuntimeGenesisConfig { rococo_testnet_genesis( wasm_binary, vec![get_authority_keys_from_seed("Alice")], @@ -1786,7 +1788,7 @@ pub fn wococo_development_config() -> Result { } #[cfg(feature = "polkadot-native")] -fn polkadot_local_testnet_genesis(wasm_binary: &[u8]) -> polkadot::GenesisConfig { +fn polkadot_local_testnet_genesis(wasm_binary: &[u8]) -> polkadot::RuntimeGenesisConfig { polkadot_testnet_genesis( wasm_binary, vec![ @@ -1818,7 +1820,7 @@ pub fn polkadot_local_testnet_config() -> Result { } #[cfg(feature = "kusama-native")] -fn kusama_local_testnet_genesis(wasm_binary: &[u8]) -> kusama::GenesisConfig { +fn kusama_local_testnet_genesis(wasm_binary: &[u8]) -> kusama::RuntimeGenesisConfig { kusama_testnet_genesis( wasm_binary, vec![ @@ -1850,7 +1852,7 @@ pub fn kusama_local_testnet_config() -> Result { } #[cfg(feature = "westend-native")] -fn westend_local_testnet_genesis(wasm_binary: &[u8]) -> westend::GenesisConfig { +fn westend_local_testnet_genesis(wasm_binary: &[u8]) -> westend::RuntimeGenesisConfig { westend_testnet_genesis( wasm_binary, vec![ @@ -1882,7 +1884,7 @@ pub fn westend_local_testnet_config() -> Result { } #[cfg(feature = "rococo-native")] -fn rococo_local_testnet_genesis(wasm_binary: &[u8]) -> rococo_runtime::GenesisConfig { +fn rococo_local_testnet_genesis(wasm_binary: &[u8]) -> rococo_runtime::RuntimeGenesisConfig { rococo_testnet_genesis( wasm_binary, vec![get_authority_keys_from_seed("Alice"), get_authority_keys_from_seed("Bob")], @@ -1916,7 +1918,7 @@ pub fn rococo_local_testnet_config() -> Result { /// Wococo is a temporary testnet that uses almost the same runtime as rococo. #[cfg(feature = "rococo-native")] -fn wococo_local_testnet_genesis(wasm_binary: &[u8]) -> rococo_runtime::GenesisConfig { +fn wococo_local_testnet_genesis(wasm_binary: &[u8]) -> rococo_runtime::RuntimeGenesisConfig { rococo_testnet_genesis( wasm_binary, vec![ @@ -1955,7 +1957,7 @@ pub fn wococo_local_testnet_config() -> Result { /// `Versi` is a temporary testnet that uses the same runtime as rococo. #[cfg(feature = "rococo-native")] -fn versi_local_testnet_genesis(wasm_binary: &[u8]) -> rococo_runtime::GenesisConfig { +fn versi_local_testnet_genesis(wasm_binary: &[u8]) -> rococo_runtime::RuntimeGenesisConfig { rococo_testnet_genesis( wasm_binary, vec![ diff --git a/node/test/service/src/chain_spec.rs b/node/test/service/src/chain_spec.rs index 943167d96a58..d48722599a67 100644 --- a/node/test/service/src/chain_spec.rs +++ b/node/test/service/src/chain_spec.rs @@ -34,7 +34,7 @@ const DEFAULT_PROTOCOL_ID: &str = "dot"; /// The `ChainSpec` parameterized for polkadot test runtime. pub type PolkadotChainSpec = - sc_service::GenericChainSpec; + sc_service::GenericChainSpec; /// Local testnet config (multivalidator Alice + Bob) pub fn polkadot_local_testnet_config() -> PolkadotChainSpec { @@ -53,7 +53,7 @@ pub fn polkadot_local_testnet_config() -> PolkadotChainSpec { } /// Local testnet genesis config (multivalidator Alice + Bob) -pub fn polkadot_local_testnet_genesis() -> polkadot_test_runtime::GenesisConfig { +pub fn polkadot_local_testnet_genesis() -> polkadot_test_runtime::RuntimeGenesisConfig { polkadot_testnet_genesis( vec![get_authority_keys_from_seed("Alice"), get_authority_keys_from_seed("Bob")], get_account_id_from_seed::("Alice"), @@ -93,7 +93,7 @@ fn testnet_accounts() -> Vec { ] } -/// Helper function to create polkadot `GenesisConfig` for testing +/// Helper function to create polkadot `RuntimeGenesisConfig` for testing fn polkadot_testnet_genesis( initial_authorities: Vec<( AccountId, @@ -106,7 +106,7 @@ fn polkadot_testnet_genesis( )>, root_key: AccountId, endowed_accounts: Option>, -) -> polkadot_test_runtime::GenesisConfig { +) -> polkadot_test_runtime::RuntimeGenesisConfig { use polkadot_test_runtime as runtime; let endowed_accounts: Vec = endowed_accounts.unwrap_or_else(testnet_accounts); @@ -114,7 +114,7 @@ fn polkadot_testnet_genesis( const ENDOWMENT: u128 = 1_000_000 * DOTS; const STASH: u128 = 100 * DOTS; - runtime::GenesisConfig { + runtime::RuntimeGenesisConfig { system: runtime::SystemConfig { code: runtime::WASM_BINARY.expect("Wasm binary must be built for testing").to_vec(), ..Default::default() diff --git a/xcm/pallet-xcm-benchmarks/src/fungible/mock.rs b/xcm/pallet-xcm-benchmarks/src/fungible/mock.rs index 6f99ac60fc7b..a8b50215e315 100644 --- a/xcm/pallet-xcm-benchmarks/src/fungible/mock.rs +++ b/xcm/pallet-xcm-benchmarks/src/fungible/mock.rs @@ -209,7 +209,7 @@ impl xcm_balances_benchmark::Config for Test { #[cfg(feature = "runtime-benchmarks")] pub fn new_test_ext() -> sp_io::TestExternalities { use sp_runtime::BuildStorage; - let t = GenesisConfig { ..Default::default() }.build_storage().unwrap(); + let t = RuntimeGenesisConfig { ..Default::default() }.build_storage().unwrap(); sp_tracing::try_init_simple(); t.into() } diff --git a/xcm/pallet-xcm-benchmarks/src/generic/mock.rs b/xcm/pallet-xcm-benchmarks/src/generic/mock.rs index 2d1df0164ab4..5c2ca5ca7088 100644 --- a/xcm/pallet-xcm-benchmarks/src/generic/mock.rs +++ b/xcm/pallet-xcm-benchmarks/src/generic/mock.rs @@ -211,7 +211,7 @@ impl generic::Config for Test { #[cfg(feature = "runtime-benchmarks")] pub fn new_test_ext() -> sp_io::TestExternalities { use sp_runtime::BuildStorage; - let t = GenesisConfig { ..Default::default() }.build_storage().unwrap(); + let t = RuntimeGenesisConfig { ..Default::default() }.build_storage().unwrap(); sp_tracing::try_init_simple(); t.into() } From 47c8c36d6e3f90da77ebccb8b672e4fb4f33c84c Mon Sep 17 00:00:00 2001 From: Gavin Wood Date: Sun, 18 Jun 2023 18:54:31 +0200 Subject: [PATCH 26/56] Runtime: Kusama gets Society v2 (#7356) * Remove println * Kusama gets the new society * Integrate migration * Formatting * Add Society weights * Remive diener * Fixes * Update Cargo.toml Co-authored-by: Liam Aharon * Add real historical payment info for Society. * Fixes * Bump Substrate --------- Co-authored-by: Liam Aharon --- Cargo.lock | 391 ++++++++--------- parachain/Cargo.toml | 2 +- runtime/kusama/Cargo.toml | 4 +- runtime/kusama/src/lib.rs | 35 +- runtime/kusama/src/past_payouts.rs | 312 ++++++++++++++ runtime/kusama/src/weights/mod.rs | 1 + runtime/kusama/src/weights/pallet_society.rs | 428 +++++++++++++++++++ runtime/kusama/src/xcm_config.rs | 14 +- runtime/rococo/src/lib.rs | 32 +- runtime/rococo/src/xcm_config.rs | 14 +- xcm/Cargo.toml | 2 +- xcm/pallet-xcm/Cargo.toml | 2 +- 12 files changed, 972 insertions(+), 265 deletions(-) create mode 100644 runtime/kusama/src/past_payouts.rs create mode 100644 runtime/kusama/src/weights/pallet_society.rs diff --git a/Cargo.lock b/Cargo.lock index 10e4f0b7de58..9e4eea9b93fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -523,7 +523,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "hash-db", "log", @@ -679,9 +679,9 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "bounded-collections" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07fbd1d11282a1eb134d3c3b7cf8ce213b5161c6e5f73fb1b98618482c606b64" +checksum = "eb5b05133427c07c4776906f673ccf36c21b102c9829c641a5b56bd151d44fd6" dependencies = [ "log", "parity-scale-codec", @@ -2518,7 +2518,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", ] @@ -2541,7 +2541,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "frame-support-procedural", @@ -2566,7 +2566,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "Inflector", "array-bytes", @@ -2613,7 +2613,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2624,7 +2624,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2641,7 +2641,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "frame-system", @@ -2670,7 +2670,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-recursion", "futures", @@ -2691,7 +2691,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "bitflags", "environmental", @@ -2726,7 +2726,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "Inflector", "cfg-expr", @@ -2744,7 +2744,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2756,7 +2756,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "proc-macro2", "quote", @@ -2766,7 +2766,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-executive", @@ -2793,7 +2793,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "frame-system", @@ -2805,7 +2805,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "cfg-if", "frame-support", @@ -2824,7 +2824,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -2839,7 +2839,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "sp-api", @@ -2848,7 +2848,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "parity-scale-codec", @@ -3030,7 +3030,7 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "chrono", "frame-election-provider-support", @@ -4736,9 +4736,9 @@ dependencies = [ [[package]] name = "macro_magic" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2d6d7fe4741b5621cf7c8048e472933877c7ea870cbf1420da55ea9f3bb08c" +checksum = "614b1304ab7877b499925b4dcc5223ff480f2646ad4db1ee7065badb8d530439" dependencies = [ "macro_magic_core", "macro_magic_macros", @@ -4748,9 +4748,9 @@ dependencies = [ [[package]] name = "macro_magic_core" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3005604258419767cacc5989c2dd75263f8b33773dd680734f598eb88baf5370" +checksum = "a8d72c1b662d07b8e482c80d3a7fc4168e058b3bef4c573e94feb714b670f406" dependencies = [ "derive-syn-parse", "macro_magic_core_macros", @@ -4761,9 +4761,9 @@ dependencies = [ [[package]] name = "macro_magic_core_macros" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de6267819c9042df1a9e62ca279e5a34254ad5dfdcb13ff988f560d75576e8b4" +checksum = "93d7d9e6e234c040dafc745c7592738d56a03ad04b1fa04ab60821deb597466a" dependencies = [ "proc-macro2", "quote", @@ -4772,9 +4772,9 @@ dependencies = [ [[package]] name = "macro_magic_macros" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc7176ac15ab2ed7f335e2398f729b9562dae0c233705bc1e1e3acd8452d403d" +checksum = "ffd19f13cfd2bfbd83692adfef8c244fe5109b3eb822a1fb4e0a6253b406cd81" dependencies = [ "macro_magic_core", "quote", @@ -4964,7 +4964,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "futures", "log", @@ -4983,7 +4983,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "anyhow", "jsonrpsee", @@ -5566,7 +5566,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5581,7 +5581,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "frame-system", @@ -5597,7 +5597,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "frame-system", @@ -5611,7 +5611,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5635,7 +5635,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5655,7 +5655,7 @@ dependencies = [ [[package]] name = "pallet-bags-list-remote-tests" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-election-provider-support", "frame-remote-externalities", @@ -5674,7 +5674,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5689,7 +5689,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "frame-system", @@ -5708,7 +5708,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -5732,7 +5732,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5750,7 +5750,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5769,7 +5769,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5786,7 +5786,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5803,7 +5803,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5821,7 +5821,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5844,7 +5844,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5857,7 +5857,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5875,7 +5875,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "docify", "frame-benchmarking", @@ -5894,7 +5894,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5917,7 +5917,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5933,7 +5933,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5953,7 +5953,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5970,7 +5970,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5987,7 +5987,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6006,7 +6006,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6023,7 +6023,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6039,7 +6039,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6055,7 +6055,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "frame-system", @@ -6072,7 +6072,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6092,7 +6092,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6103,7 +6103,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "frame-system", @@ -6120,7 +6120,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6144,7 +6144,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6161,7 +6161,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6176,7 +6176,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6194,7 +6194,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6209,7 +6209,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6228,7 +6228,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6245,7 +6245,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "frame-system", @@ -6266,7 +6266,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6282,13 +6282,18 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", + "hex-literal 0.3.4", + "log", "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", + "sp-arithmetic", + "sp-io", "sp-runtime", "sp-std", ] @@ -6296,7 +6301,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6319,7 +6324,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6330,7 +6335,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "log", "sp-arithmetic", @@ -6339,7 +6344,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "sp-api", @@ -6348,7 +6353,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6365,7 +6370,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6380,7 +6385,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6398,7 +6403,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6417,7 +6422,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-support", "frame-system", @@ -6433,7 +6438,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6449,7 +6454,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6461,7 +6466,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6478,7 +6483,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6493,7 +6498,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6509,7 +6514,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6524,7 +6529,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-benchmarking", "frame-support", @@ -9675,7 +9680,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "log", "sp-core", @@ -9686,7 +9691,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "futures", @@ -9715,7 +9720,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "futures", "futures-timer", @@ -9738,7 +9743,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9753,7 +9758,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9772,7 +9777,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9783,7 +9788,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "chrono", @@ -9823,7 +9828,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "fnv", "futures", @@ -9850,7 +9855,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "hash-db", "kvdb", @@ -9876,7 +9881,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "futures", @@ -9901,7 +9906,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "fork-tree", @@ -9937,7 +9942,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "futures", "jsonrpsee", @@ -9959,7 +9964,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "async-channel", @@ -9995,7 +10000,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "futures", "jsonrpsee", @@ -10014,7 +10019,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10027,7 +10032,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "ahash 0.8.2", "array-bytes", @@ -10067,7 +10072,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "finality-grandpa", "futures", @@ -10087,7 +10092,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "futures", @@ -10110,7 +10115,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -10132,7 +10137,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -10144,7 +10149,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "anyhow", "cfg-if", @@ -10162,7 +10167,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "ansi_term", "futures", @@ -10178,7 +10183,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -10192,7 +10197,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "async-channel", @@ -10238,7 +10243,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-channel", "cid", @@ -10259,7 +10264,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "async-trait", @@ -10286,7 +10291,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "ahash 0.8.2", "futures", @@ -10304,7 +10309,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "async-channel", @@ -10326,7 +10331,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "async-channel", @@ -10360,7 +10365,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "futures", @@ -10378,7 +10383,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "bytes", @@ -10408,7 +10413,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10417,7 +10422,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "futures", "jsonrpsee", @@ -10448,7 +10453,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10467,7 +10472,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "http", "jsonrpsee", @@ -10482,7 +10487,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "futures", @@ -10508,7 +10513,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "directories", @@ -10574,7 +10579,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "log", "parity-scale-codec", @@ -10585,7 +10590,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "clap 4.2.5", "fs4", @@ -10601,7 +10606,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10620,7 +10625,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "futures", "libc", @@ -10639,7 +10644,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "chrono", "futures", @@ -10658,7 +10663,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "ansi_term", "atty", @@ -10689,7 +10694,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10700,7 +10705,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "futures", @@ -10726,7 +10731,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "futures", @@ -10742,7 +10747,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-channel", "futures", @@ -11290,7 +11295,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "hash-db", "log", @@ -11310,7 +11315,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "Inflector", "blake2", @@ -11324,7 +11329,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "scale-info", @@ -11337,7 +11342,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "integer-sqrt", "num-traits", @@ -11351,7 +11356,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "scale-info", @@ -11364,7 +11369,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "sp-api", @@ -11376,7 +11381,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "futures", "log", @@ -11394,7 +11399,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "futures", @@ -11409,7 +11414,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "parity-scale-codec", @@ -11427,7 +11432,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "parity-scale-codec", @@ -11448,7 +11453,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11467,7 +11472,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "finality-grandpa", "log", @@ -11485,7 +11490,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "scale-info", @@ -11497,7 +11502,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "bitflags", @@ -11541,7 +11546,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "blake2b_simd", "byteorder", @@ -11555,7 +11560,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "proc-macro2", "quote", @@ -11566,7 +11571,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11575,7 +11580,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "proc-macro2", "quote", @@ -11585,7 +11590,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "environmental", "parity-scale-codec", @@ -11596,7 +11601,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11611,7 +11616,7 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "bytes", "ed25519", @@ -11637,7 +11642,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "lazy_static", "sp-core", @@ -11648,7 +11653,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "futures", "parity-scale-codec", @@ -11662,7 +11667,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11671,7 +11676,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11682,7 +11687,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11700,7 +11705,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "scale-info", @@ -11714,7 +11719,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "sp-api", "sp-core", @@ -11724,7 +11729,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "backtrace", "lazy_static", @@ -11734,7 +11739,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "rustc-hash", "serde", @@ -11744,7 +11749,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "either", "hash256-std-hasher", @@ -11766,7 +11771,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11784,7 +11789,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "Inflector", "proc-macro-crate", @@ -11796,7 +11801,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "scale-info", @@ -11810,7 +11815,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "scale-info", @@ -11823,7 +11828,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "hash-db", "log", @@ -11843,7 +11848,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "log", "parity-scale-codec", @@ -11861,12 +11866,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11879,7 +11884,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "futures-timer", @@ -11894,7 +11899,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "sp-std", @@ -11906,7 +11911,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "sp-api", "sp-runtime", @@ -11915,7 +11920,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "log", @@ -11931,7 +11936,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "ahash 0.8.2", "hash-db", @@ -11954,7 +11959,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11971,7 +11976,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11982,7 +11987,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11995,7 +12000,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "parity-scale-codec", "scale-info", @@ -12236,7 +12241,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "platforms", ] @@ -12244,7 +12249,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12263,7 +12268,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "hyper", "log", @@ -12275,7 +12280,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "jsonrpsee", @@ -12288,7 +12293,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "jsonrpsee", "log", @@ -12307,7 +12312,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "array-bytes", "async-trait", @@ -12333,7 +12338,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "futures", "substrate-test-utils-derive", @@ -12343,7 +12348,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12354,7 +12359,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "ansi_term", "build-helper", @@ -13209,7 +13214,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6e1a5c438c54c0f2607966c6c43f8e5f0d616593" +source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" dependencies = [ "async-trait", "clap 4.2.5", diff --git a/parachain/Cargo.toml b/parachain/Cargo.toml index 605f41930a33..a88717f0d92f 100644 --- a/parachain/Cargo.toml +++ b/parachain/Cargo.toml @@ -17,7 +17,7 @@ sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } polkadot-core-primitives = { path = "../core-primitives", default-features = false } derive_more = "0.99.11" -bounded-collections = { version = "0.1.7", default-features = false, features = ["serde"] } +bounded-collections = { version = "0.1.8", default-features = false, features = ["serde"] } # all optional crates. serde = { version = "1.0.163", default-features = false, features = ["derive", "alloc"] } diff --git a/runtime/kusama/Cargo.toml b/runtime/kusama/Cargo.toml index b317cc9e88da..75aebdc703e8 100644 --- a/runtime/kusama/Cargo.toml +++ b/runtime/kusama/Cargo.toml @@ -93,7 +93,7 @@ pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", pallet-nomination-pools-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } pallet-election-provider-support-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -hex-literal = { version = "0.4.1", optional = true } +hex-literal = "0.4.1" runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } runtime-parachains = { package = "polkadot-runtime-parachains", path = "../parachains", default-features = false } @@ -104,7 +104,6 @@ xcm-executor = { package = "xcm-executor", path = "../../xcm/xcm-executor", defa xcm-builder = { package = "xcm-builder", path = "../../xcm/xcm-builder", default-features = false } [dev-dependencies] -hex-literal = "0.4.1" tiny-keccak = { version = "2.0.2", features = ["keccak"] } keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } @@ -249,7 +248,6 @@ runtime-benchmarks = [ "pallet-whitelist/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", "frame-system-benchmarking/runtime-benchmarks", - "hex-literal", "xcm-builder/runtime-benchmarks", "frame-election-provider-support/runtime-benchmarks", "pallet-bags-list/runtime-benchmarks", diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 46b0e42c1204..88d6b613f92f 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -105,6 +105,9 @@ mod weights; // Voter bag threshold definitions. mod bag_thresholds; +// Historical information of society finances. +mod past_payouts; + // XCM configurations. pub mod xcm_config; @@ -863,14 +866,6 @@ impl pallet_recovery::Config for Runtime { } parameter_types! { - pub const CandidateDeposit: Balance = 10 * QUID; - pub const WrongSideDeduction: Balance = 2 * QUID; - pub const MaxStrikes: u32 = 10; - pub const RotationPeriod: BlockNumber = 7 * DAYS; - pub const PeriodSpend: Balance = 500 * QUID; - pub const MaxLockDuration: BlockNumber = 36 * 30 * DAYS; - pub const ChallengePeriod: BlockNumber = 7 * DAYS; - pub const MaxCandidateIntake: u32 = 1; pub const SocietyPalletId: PalletId = PalletId(*b"py/socie"); } @@ -878,18 +873,17 @@ impl pallet_society::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; type Randomness = pallet_babe::RandomnessFromOneEpochAgo; - type CandidateDeposit = CandidateDeposit; - type WrongSideDeduction = WrongSideDeduction; - type MaxStrikes = MaxStrikes; - type PeriodSpend = PeriodSpend; - type MembershipChanged = (); - type RotationPeriod = RotationPeriod; - type MaxLockDuration = MaxLockDuration; + type GraceStrikes = ConstU32<10>; + type PeriodSpend = ConstU128<{ 500 * QUID }>; + type VotingPeriod = ConstU32<{ 5 * DAYS }>; + type ClaimPeriod = ConstU32<{ 2 * DAYS }>; + type MaxLockDuration = ConstU32<{ 36 * 30 * DAYS }>; type FounderSetOrigin = EnsureRoot; - type SuspensionJudgementOrigin = pallet_society::EnsureFounder; - type ChallengePeriod = ChallengePeriod; - type MaxCandidateIntake = MaxCandidateIntake; + type ChallengePeriod = ConstU32<{ 7 * DAYS }>; + type MaxPayouts = ConstU32<8>; + type MaxBids = ConstU32<512>; type PalletId = SocietyPalletId; + type WeightInfo = weights::pallet_society::WeightInfo; } parameter_types! { @@ -1529,6 +1523,7 @@ pub mod migrations { pallet_offences::migration::v1::MigrateToV1, runtime_common::session::migration::ClearOldSessionStorage, ); + pub type V0943 = ( SetStorageVersions, // Remove UMP dispatch queue @@ -1537,7 +1532,8 @@ pub mod migrations { ); /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = + (pallet_society::migrations::MigrateToV2,); /// Migrations that set `StorageVersion`s we missed to set. pub struct SetStorageVersions; @@ -1641,6 +1637,7 @@ mod benches { [pallet_referenda, FellowshipReferenda] [pallet_scheduler, Scheduler] [pallet_session, SessionBench::] + [pallet_society, Society] [pallet_staking, Staking] [frame_system, SystemBench::] [pallet_timestamp, Timestamp] diff --git a/runtime/kusama/src/past_payouts.rs b/runtime/kusama/src/past_payouts.rs new file mode 100644 index 000000000000..2d8b67902b89 --- /dev/null +++ b/runtime/kusama/src/past_payouts.rs @@ -0,0 +1,312 @@ +// This file is part of Polkadot. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use super::*; +use hex_literal::hex; +use pallet_society::migrations::from_raw_past_payouts; + +parameter_types! { + pub PastPayouts: Vec<(AccountId, Balance)> = from_raw_past_payouts::(vec![ + (hex!["04152389a92e4356ed03ed30625afba062b9c4496116cba888e89f347834a31e"], 89000000000000u128), + (hex!["0483de2b96cd3756f05301eb1bca875166ae5be67a81f86a1dad152bccad6909"], 54666600000000u128), + (hex!["048a62b89589f7573c5f80584de850b9c8bcd4cb7a8766948d3db713d8a57204"], 83000000000000u128), + (hex!["060e1eacd9f4460ae43b28d39e472078784482139e483307436344019a48f26e"], 15513300000000u128), + (hex!["0ab0b61984dfcfe2fcb82147f0a2f00f992fa8a6b5ee81490387f8210a1ab678"], 6766666600u128), + (hex!["0c6e31c65ee1e82129879a145eb0c0d4de45e60c3dcab1d2219628cd70673a6b"], 69000000000000u128), + (hex!["10e9e630de91310a60b0bc7a4a2303a60b703afde9239750921514deb2655a0d"], 54333200000000u128), + (hex!["162eb21266fef25e25eb8286994264450b8c80ccf2911967cc42ee4cc55c2061"], 14223300000000u128), + (hex!["183f8c4d5084d96816ae7d82d44373b99bb134a16845d1589df4467671e3b56a"], 23333300000000u128), + (hex!["18b2624ddf0eca6c9698496801dcda614580367a4d54833fe75bbf54a9a09966"], 52999900000000u128), + (hex!["18b44d4c64c3aa3fb20d88b016a412d8f27000912fa7b350ed270ac8f55b3a27"], 5135000000000u128), + (hex!["1aa23df47ab442adc15f6c923cfd0f6c4255b2cacc19538028685e37410a691f"], 54000000000000u128), + (hex!["1ce0527c225ce227c1cceed0317eae0817bd600be3aa87489a704678c95a5451"], 41166600000000u128), + (hex!["1e20318bd5c0bc44576955b7205354b8ed9c8e4a783ba9da70d5cee0e11b4740"], 11000000000000u128), + (hex!["1e6fa8ff46b01fe3b8c52ea50a5ab61313ffac31393a28f621625840a6b3776d"], 11556600000000u128), + (hex!["20243c6b74a5f83b89ec202a337bd06ebc985fe7b1557184bfd012dc9bc97873"], 13000000000000u128), + (hex!["22cabf36e0954f0c013af666e27e46cb9a41f7a0db46ccec245f43b5ba438452"], 31000000000000u128), + (hex!["24172a563943291c97d252def71e17abf467a1626bca358728a90a82b3de3118"], 200000000000000u128), + (hex!["247f22a3073d04a85ab417505bb7667a5941ed74cfa596dfc7402813198a0560"], 68999000000000u128), + (hex!["28250c422851313e923c89cc0a41fec2af80cc124290343ae250f77ff60d767d"], 6993300000000u128), + (hex!["2c709012f807af8fc3f0d2abb0c51ca9a88d4ef24d1a092bf89dacf5ce63ea1d"], 333333333332u128), + (hex!["305b27652a4dc8038c587df4cf1d7758b413fe18a97b3a3a5c7d609f50092e11"], 39000000000000u128), + (hex!["3063796fb70f0bcde597bb7ed4d50f6ec7755686c894c7dbaa1ea2e33103876e"], 11650000000000u128), + (hex!["325c848b9000d5430844bd5486d34d844acd89e11964ed1b535bf45557e1c87f"], 10666600000000u128), + (hex!["3a632ab63a0ec92f1b67af756a49c8849f5722a345e54ef51cb294bef569070b"], 14993300000000u128), + (hex!["3c97e1879015dfb64a367e0f0eb32f16968fb6be6a48da7de7776bc8953c854d"], 18149900000000u128), + (hex!["3e8eb90cd422b7d72f166f135ed3db2137d0d9216e14cfdbd0ca75d2a18e2235"], 83000000000000u128), + (hex!["3ea89a71ac11ea023bf42d9d6215a9d8c775e626a2ee38d574b297f42c58a622"], 15056500000000u128), + (hex!["402d95c5f6d37ab03ecbec4628d290b2cc7571ff790ee5757b21bbcba4108924"], 12666600000000u128), + (hex!["40300fe00bcfb90f3ded42dc082b775dd9a8a8ea491261a262a78155a069a268"], 112000000000000u128), + (hex!["406855a4bb07710384d3876cf37cacbd66f2f1dab2346ebea130b00f63d0d317"], 83500000000000u128), + (hex!["40c6e021d4d80b9b38d850b1c5334ea88b2bcc148d07e83f5be1b45b8ceb3740"], 9893300000000u128), + (hex!["40f8a816b07bd23e166d2e479cfd5a3e5118f3937230ca5088eff9e33c84b552"], 12790000000000u128), + (hex!["422286e0da2fb826f04e46d2f6ef1319a43412261d0f8d91274a81eee21af24e"], 69000000000000u128), + (hex!["484a648ebe737d7dbee39d8e169d5ded94d29f70100e4d3ee87162c4a8bbdf73"], 2483300000000u128), + (hex!["4c4a2f66cd9f5000968f0913f01ac1181ccd2db137d6af152252ee3de689450b"], 2000000000000u128), + (hex!["505eb7820f60d0949697617b2f3366bd616d8c7e96724aa681e0113f6bf45c46"], 898900000000u128), + (hex!["569f5ab70b93bb40ecb5a8888bbbc781c785ac3709863e9866422f0fd62f2477"], 8000000000000u128), + (hex!["5c1be3d517926a6c194d42131d996140f3e8d7398764423cab176341b882ee7b"], 8490000000000u128), + (hex!["5c32313c22eebc15ecf28ebb75ed8e264d53e50429a5ce09ed3a86e72732c56d"], 5000000000000u128), + (hex!["5c436629095023be4d2ed2120002497bc18295fb485a11e83e529e617412626f"], 6999900000000u128), + (hex!["5c81f3afd924f4cdd7c151d539c7abc3cd3de33eebd59403b81b568b8efa2d3b"], 15000000000000u128), + (hex!["602d798e4d6f076cb28719b4bc757645ff0894a591173bd923bc8cb631fdeb0c"], 201660000000000u128), + (hex!["621014fccda62dbd21d32b3628691f68cecafa887a62d641ba8876e3e7e4c068"], 8000000000000u128), + (hex!["6613962cf897114a56ba84bbad47f52c46dc56960aae8ccfc71805cfc3fced19"], 32666600000000u128), + (hex!["662ef2fa0d3a90f1f9691d05daee187d35fb17482cc72b3e03922358d0bdcc6f"], 10000000000000u128), + (hex!["687b7e0289f5d116a2b68cf9d0496f62de37e579ea777ce39d81471c09ec142b"], 275000000000000u128), + (hex!["688de40f61eb6ecc19b4c3702267c0bbf052ed9ee843ff6d346d765f89ed6067"], 7000000000000u128), + (hex!["68fae6be10c90d572388d42129e074005005baf68d116a993073c5648ec78865"], 6356600000000u128), + (hex!["6a8cafed3a670189545d5b242aec4d52bb4fe90f5af2f5984d8a14eb44713a70"], 12780000000000u128), + (hex!["6c64f0ac3b73174aa0b0cd935b5576611e405c8485ef13a0be8bf2ea3a48da6f"], 8000000000000u128), + (hex!["6eb31a06ff9d943b174f683f8327e3b4847a02e197e951f01ac7759b4c102f10"], 52333300000000u128), + (hex!["6ed537e76f1ef68764d7544cd7a8be19cbaba2ef8af181090d281d80105fd963"], 175000000000000u128), + (hex!["7241b3a590243df346a79a2d0ebf79dc990f07c1c499145d0424f3769ca4c826"], 81000000000000u128), + (hex!["728ea7cd638962b92ec6405e7b5572b67cfbc96c7c2fc7becf4cddb22b50b02c"], 11890000000000u128), + (hex!["7a91a646fd4d7592aabed6ad7f3c1d9f12371f200ae3d644454c80272b8e8c14"], 44000000000000u128), + (hex!["7c9ae158bf660dbd429592d055efe4897fad8a07c4ed61accd1861380c5c3843"], 24666600000000u128), + (hex!["7cb95b196a81bb0b7952e94ff0624b9b1429e81bee0f03c8bf2f3cea5213c611"], 5805000000000u128), + (hex!["7ec0c61a682519e78e65026c51ceea52273870636814605a33518f02ad543317"], 6969600000000u128), + (hex!["802c32932fca84ba9c80d57e4b0ebccc8404ee75a346ae0b50a17666bb38c01c"], 4986600000000u128), + (hex!["806369b4f04792b7bd1a0d8586b7aa528591ba732362e3fb3d52d7b01e741b18"], 8660866667000u128), + (hex!["80a551df4b4b67586a512356fc0e513d641e39f62172d185465dfee61e67143a"], 15160000000000u128), + (hex!["821e24cd21f1da627bea7b7077d591b9c8a48f93dd87eb7f3f1ac4ec512f7b5f"], 7500000000000u128), + (hex!["84c62d27805ac9c7a62086e31dfae23703ac9dfb37fbd31bec95aa611c5d2c33"], 999666600000000u128), + (hex!["865facd74193d96f1b35a702efe05116e7be752d77f46c7fe4720905728ccb36"], 6993300000000u128), + (hex!["88077737732044369dc52dd7f7bf400cfb493a219f013fbfdd46f7cd52673d6f"], 67666600000000u128), + (hex!["8865278958eaaba42406d1ae16545267c944113c216fffc386edb4d6a8cffd36"], 5000000000000u128), + (hex!["8ad06fa44a5669702a29b394424560714a1af90ad9efb57f3864b93b1ff7961c"], 100000000000u128), + (hex!["8e7215d5218f170d0865fcbe16b2ceb752db7e7bfce3f3d487ecb60e776a2c36"], 39333200000000u128), + (hex!["8ef7167c4d50be846c6a03591e13005fa68ef858d87321bb79428b121e105a11"], 9166600000000u128), + (hex!["90bc6fc1133c3df447222e89b5ceaa028b69348ee381385239377b31df275248"], 15000000000000u128), + (hex!["90da58a51d922ae69f27d8020d52e2fc71a5e5af1b63571bae81ddb87f8ff424"], 6696900000000u128), + (hex!["92af8236baeef25f6e85ed30d85b758f5604c5c4c4c3637657fea1946a3da61b"], 13000000000000u128), + (hex!["969fe4cba88544e8d3d71f31790cc1d377cf85a89e1b3d03e7a8b932aed1d312"], 84000000000000u128), + (hex!["96be4635aeb775be58f3c0843bd8bc1832d257e56905525dcb3d38126d8f855e"], 12166600000000u128), + (hex!["9822df7da6d3c119f5118587b29eaa30aaf00839e2a03161c2df4222a0d8744e"], 8999900000000u128), + (hex!["9cb774a6051717a844657f0c037a93173f70afc000babd2f7f0be7d1e8475436"], 9000000000000u128), + (hex!["9eb27cde65b09610cbe8a3d3b82c6730f5a5dd51aeb082fdd74236c4765a040a"], 8890000000000u128), + (hex!["a0c6e8d74992d1ea3e43081624b2cddbd98b50d7a75998662ce6adbb2290aa64"], 175000000000000u128), + (hex!["a2b8bfb3c0c1f04346134e7b27cb5b63de8a7af0d57c502d09c05ba7b3dd1e28"], 9326600000000u128), + (hex!["a415a980463876c54b503c358613b5c02d8ac9781c13378797c54ab37fc07c05"], 8666600000000u128), + (hex!["a48539457aa2e54048493ccaf980be18253d8cabd6eecd295e6b62e6a357352f"], 8879900000000u128), + (hex!["a60b82ce304c28aad744e2a95924b3e1e560803a75e5a39fc91300556e9a9538"], 83499000000000u128), + (hex!["a673009c77c4734fbc09f3bf505e3414282f714e89688ca3fa9292921cb7e51d"], 93000000000000u128), + (hex!["a69f19b16dfdfb01b1d480c59512b0d589e600538cd9102de9619ef419211f1b"], 11993300000000u128), + (hex!["aa17e09d3e9685a53d52d5123cc7f4f6f9fc7f3ab34f268a6f8860de68f2b612"], 15000000000000u128), + (hex!["aa893ab408a0c0b8bb175ed7fa2b042e0fd30915e6ab8f66a9ac524e552d167f"], 11480000000000u128), + (hex!["accd5106f4794d9052617617a993556b15c6e62859282bad7edb24592d728a69"], 94999000000000u128), + (hex!["ae4bada5af908d3bddd0cb7e250d38da99cf9d6508a6b1118a89dc59fb372a4a"], 17000000000000u128), + (hex!["b2012e8078883fdd9693d75c90bb669834f7b2c302def049e6eb486e56dc7365"], 13500000000000u128), + (hex!["b2fa9763f56890cabe29a1ea971851a3234aecd03584c44f822e036fbd9c5156"], 8554600000000u128), + (hex!["b8a750597d770430e4f9771829cf964825ea6750a6229deb06dc515371c7033f"], 96600000000u128), + (hex!["ba8a15ff06ff808a77b93ad335884ac66e3744a5cea908f8b8a865d98a934541"], 21333300000000u128), + (hex!["baf98d06056833e2e887c85c938aeb1c31dff74a91d35d9863327abc8ec93f4a"], 7500000000000u128), + (hex!["c2487c00d0e309fdb96d1e0ed7bb2da173d777b3ae26b25c1369992add25972d"], 21000000000000u128), + (hex!["c2fc6a3cc910e05c508c8b252f32c6df760858d12c6a636b256135e966edcf7e"], 9715500000000u128), + (hex!["c443922426297f4ded0e635f0a92b8e31823b2e6893398b1e8351c34a728fe34"], 6493300000000u128), + (hex!["c4f4760edf86fffa05380f31bf047c72837cccfc684d9dd9b1d7fa4e3503ce51"], 14500000000000u128), + (hex!["c676a26c89e3be0451afa1126516b8f88b3da99511aba215ec99707ac5f08e3c"], 14833300000000u128), + (hex!["d25af2fedd4eb672f218932fde44f97f10c1d7788efd0079957ffad4f186ae78"], 100000000000000u128), + (hex!["d4610b986b4e4cb505ce0003142df98f803b7c3413acc9f7805992dc2a00483c"], 110000000000000u128), + (hex!["d80cb19a68fb4ae325cd0209e8563cf3d5ff0368e2ede5530940f29371a02a25"], 19000000000000u128), + (hex!["dc8f45881886ba4d2e2409ea49661b14a29a72e64d7a59d98465a9cee8084107"], 34666600000000u128), + (hex!["de3898d3824e41435b6519f2095d25af51954af6be4a946d5d2df46df3ea264f"], 110000000000000u128), + (hex!["e2094a5bcc479f2e6c83bfdbc88fe3658b817522ba1fb240f804b131ffa81600"], 41000000000000u128), + (hex!["e27bc8259449251380d0b6c848cd607b12a09b0fa8fd8875ae3f6eea70c3fd69"], 1993300000000u128), + (hex!["e45c09f0387a72f3a1eeb9e1a8f23feb738bc48d56d99ab88c8a910807c48a0c"], 18646600000000u128), + (hex!["e62321ed84ec54791122f2ec72e9e36d3cb336ed358d6848a65b8410b405650a"], 9216100000000u128), + (hex!["e80d8a511c20f08d8abbd69f1258fa27c28181ffa8fbee0989f706e7b6c48b21"], 9000000000000u128), + (hex!["ea53405eb9054ddf0b6b82de940a4646c70cb815ba4c4616394fe0488030bb32"], 72333300000000u128), + (hex!["eedfb6337bed7b15d7a0338820e8a4981d96fe7284e444885c7f478fe649012f"], 14566600000000u128), + (hex!["f20f603b0314b04a4c3b295cbfc7b53c11370cc0349ddb3cd32c91c5b416fc51"], 7493300000000u128), + (hex!["f4fa6e013f0a33b809b8c1dc8d73c1461407a474106f5def66c109a3d7c4f556"], 56666600000000u128), + (hex!["faaede0e8cfb95d55e325e29a4737decb4a20960a525384003248c5610405b7d"], 1893300000000u128), + (hex!["fae2f8b2e08e32c333e0332b4254119241c2f15421846b76b693eba714b3e571"], 20333300000000u128), + (hex!["44152e29de73d969a8d5bc6d0b3497f31ee7e7f6e01722a5a91fccadd6bcce76"], 14900000000000u128), + (hex!["4adb5df8ae7001c508d3e630deda167bce1760aa0e7c8544a1e3b70358ac3b45"], 15900000000000u128), + (hex!["f04581f47bc54daf59437fe8a8e7e76ab3f034d8b30f3629652a6a013f7e0b38"], 13986600000000u128), + (hex!["9c107fbcac10f60dc1910e27210283c39f8d5951816f8d7c8f5f96d0c71dbb29"], 26666666400u128), + ].into_iter()); +} + +#[test] +fn check_addresses() { + use sp_core::{ + crypto::{AccountId32, Ss58Codec}, + hexdisplay::HexDisplay, + }; + + let payouts: Vec<(&'static str, f64)> = vec![ + ("CffzJo8UPWwvwPF73VcbEv4jSG4ckvGwNePL9V52hYh743X", 89f64), + ("CgEt8AwW9SThQXpLBAZy3MpKgNG7ZHaEDGeV5MLqHVPVoJg", 54.6666f64), + ("CgGpRVgE8WXd2hjc3GBVxGpnG9KpjkvEGNkM6AAaCBmhQY9", 83f64), + ("CiFzvmP1wyXB8nUHh6rA1j7tFQFBx2akg57TwdTGjRAXicm", 15.5133f64), + ("CpLVRWcUd7PxDPSmtXwQC3628dwEYiMd3GbqZTnqvphMN3B", 0.0067666666f64), + ("CrcpvEZP2Z82iYFUPConih1t46VFwttrX7Tv19NW6hoCzKG", 69f64), + ("CxVmQoEyZKimVp3eMgtNHSwiFrEU3gwF1NGNPBo2gUNSr1g", 54.3332f64), + ("D5QSdd589pFWeJm9bz1j3RTyy14ejKpnUKyEa4GBW9kYkVC", 14.2233f64), + ("D87YYjk4agajQXHr1VyiW1qpzfm5QV4L8bk7XduhimVVS7H", 23.3333f64), + ("D8hf8DjZ2eb8X6cyNAYx14fRa7hVUqB52ejx5YNc2ed81gC", 52.9999f64), + ("D8iEArcApNbkH9BxEvc2AfLLWMD1sWS9F2XdRXyY9J6QDpi", 5.135f64), + ("DBExZRq4qoK8xiZaHTR7iP9tWmQ8FL9JSQG8DLyLL8yV2J8", 54f64), + ("DEBVjNhPic2eVBw2y42xJpTJfCSvDXXA6ibs7MzpXp2s2hj", 41.1666f64), + ("DFpWz9jGga5ZKcRghQGchhMhSHURUcUc2TaT7dMB4pQhkeB", 11f64), + ("DGE8ATd2NaitqX4jdvZNXFNMmY9Qui6swnfoheCiz7efWGG", 11.5566f64), + ("DJTpC2pbDJeoJ2CTHSQBurbkbd9ZgkD2WYNDtCmJhem3swh", 13f64), + ("DMwNfM1mwrraAoSG3LSnZcwGzuUcKipqYmRsFeCuvTvrdgL", 31f64), + ("DPe86fQfixDTfejAiEJbRt2mvbtcGkWdGXsyCFDu37iKYVu", 200f64), + ("DQB1TYcr7dw4UsHaNbNhM2jtyYaoQQrBoWS7jLb95D39XGb", 68.999f64), + ("DUxSQ29BxeZWDXin4jZN7ogArgxJDohyeuKsqY83WqPhT4h", 6.9933f64), + ("DaViizibrmJZwyUchRMRebv5YMXadS4PbYBLuZhbfMTtxPm", 0f64), + ("Dab4bfYTZRUDMWjYAUQuFbDreQ9mt7nULWu3Dw7jodbzVe9", 0.333333333332f64), + ("DfitqjAjNxJykJYaigWQmSRw7T847hfytxwVRuAwscdtYUh", 39f64), + ("DfmNCWtsVSG9D8KWazZ84VdkSVgxot6989W1qL7bHEAP7SF", 11.65f64), + ("DiMPtqB6HeYpYkjJJKNR6btJjmUNeG8yyhSg1N8UL3st5Um", 10.6666f64), + ("Dikw9VJqJ4fJFcXuKaSqu3eSwBQM6zC8ja9rdAP3RbfeK1Y", 0f64), + ("Dtskg3rQsxSpxxBG4pJYjTujm9fo48Q7qnEYtBfJ6UDqtSS", 14.9933f64), + ("DwmWULE1g84ZMYyM4du8SmcQCkuz7VL7C6GmaWKoRXSG6vJ", 18.1499f64), + ("DzLtEdo7ScPi1o3izPETynSm9kdXJF8H1Y68b3eFbsQUgm6", 83f64), + ("DzUa9PynyTKBEJ9Yjk27o44aav9XaJG8p57YHKVNaorxbZu", 15.0565f64), + ("E2U89NfSnVCmY3hBQHEdJ9KV6shd6B8h4EWkNLcSJCPRAk8", 12.6666f64), + ("E2UrpeDCGs2mb9SZLzAk8E89yWaZncAvjFD5VnbYbDp44Xo", 112f64), + ("E2maNj3d7YZZhpeUwCGGeThD7JX2zk1W8AUQ1Rqb2K9oDBR", 83.5f64), + ("E3FfH6nbxCwQ9bg3oHAmBFpS3qEtWLbQ4QV8XUqn6qQaaab", 9.8933f64), + ("E3WSzAdgZtu3o8NjTJdwweJjpmSGwcf42pZAFDR7CsNTrrr", 12.79f64), + ("E52wAv1fTdLGUNR4CNSbeCmj1yNUeSFnj1CPKbRzTubt3YU", 69f64), + ("ED74i7eA79DtKFu5WXbcLXLWT2E1XSDEdJSAEkU3ePN7LE4", 2.4833f64), + ("EDQWMYr6a9aLjTbsMtKFAcoUsVA6qvm66RJsyJsNgbpxCFx", 0f64), + ("EJ4FuvmVpU7Ri2GRMtQVhhfHsHzGLYngbKJzJ58RkmRrzJm", 0f64), + ("EJMCExEPNyuq6EofbvwD2ErZKwuZCJVTFhiDcDwuW12c187", 2f64), + ("EPhV6vifCet2sJPPCNGnUZdRhsQpfcsbxRvDkjsMPPCCvwR", 0.8989f64), + ("EQ12pCgs4H3XHgDTc5n44xfXo6WNNkAg33b4aDFv3eUSgZd", 0f64), + ("EXtySo37DkJUdQb5425KGzUCG8ecYL4nVkcNB5XZpDQPH73", 8f64), + ("Ef6D2jpq92FoX8wSKihodFCg8juMjFu9CBnMwwBQDbYi4XU", 8.49f64), + ("EfCqHrWEwRnRq2ekmTmWvKzYwKtcgD4uaJAm3T92wx3ekUx", 5f64), + ("EfHwkqXCDup8Hi7DVWsPTDQoGiaW55HXgbQV3XzVSCEu1ii", 6.9999f64), + ("EfcXWwDMt9UoYhj6KRfEA4NLccsZK2eQ2AFpGw4EGatNwcj", 15f64), + ("EkRd7vCKiDZi6BM6tHKs5YAeGmE3MmQgChrrbtkRkf6SBwW", 201.66f64), + ("EntzFKky1rX9oYWzEiv4K4D997XGtCH9BHCmairrXhrW2gb", 8f64), + ("EtADjuauj4ETanscktz4jpejZdkCMVPnRxKos6AwgpzLdHM", 32.6666f64), + ("EtJMBiUVsHm3bwfMhWksQ14mv1P69BHjp7ELYDWdqXynR6K", 10f64), + ("EwKBYgaaELEEB5Vm9QAgArinAtps3dRUmb9bwBVTg5HqvxJ", 275f64), + ("EwQeYkCGQtBHMgKvNZ7NZ9Dy9tqKJDqN3DknJm5XF8czbYB", 7f64), + ("Ewy2kju7jdqBFbp95Nw1go31KyiMHS9rRVaevGkM62F1btd", 6.3566f64), + ("Ez2PN6BKn31byeQTrTBqP6MAv4WF7eKF3J8UXXxaaAd1Kuv", 12.78f64), + ("F2Sg6L8dTASXBz4rn9Rv4xsfaCKPn21pDzAX9HSAR8krMzR", 8f64), + ("F5TzLdntQpfz5RXcqCqJM4NKrjS7jVnAcNRKhu5FpLLWm2i", 52.3333f64), + ("F5e8A2i3XZvA5jZTYmwcUiHzVsoTAhJDgMxZEnsFe8dq2VA", 175f64), + ("FA8VcXg8Yzg9RvVrTdhcKk5JLSH1hcwrS9fr7pjFraCRWcm", 81f64), + ("FAXMVgYUWh6s2SFaX9h33mrjXXeq8HTcNwFHEy9D1eimrLK", 11.89f64), + ("FM2dJMRnBkbJDbdtqhRpLfgRbwJBkiw6iKT8u6UJ7pojypt", 44f64), + ("FPhTtxHSTKZM4fTndfgBSSXyTpdMkpEnqojAvGTS1c8hv9S", 24.6666f64), + ("FPrWyj8aDy3dofjmXZE5mx4o6Kf82MnEGGpjVEHjH7khReo", 5.805f64), + ("FSWpLozBJnXdVhE8t7LXYEpBybwse3S795WYFKiobhZWKVE", 6.9696f64), + ("FUNmzDNdzWtXK51EZmwbDJXQALhcYGCQUeo8E4rtcx9QBX7", 4.9866f64), + ("FUfBKr2pDxKrxmExGp4hjU6St4BDgffzKcyAqv6pruGnez1", 8.660866667f64), + ("FUzksiAhxzSvvPqiYvUEwK32rFf6Fmyug9GZEdbMaoLmwh5", 15.16f64), + ("FWvhQBV91wrvaqWiqDZfq4QPYYPFS28UV8zNgeJYyUexxXm", 7.5f64), + ("FaQi6AhM49SdjBd7oZJftAPE6tt9mrH8AdySztpYUU1B6Vq", 999.6666f64), + ("FcWMb9VtQutzQ5hxguyQrWKtN28zaXKuXLbL3D9oX6AJbiC", 6.9933f64), + ("FcxNWVy5RESDsErjwyZmPCW6Z8Y3fbfLzmou34YZTrbcraL", 0f64), + ("FegFL7hjGtjwRWvDMabMuPFGTzToioEWu4BLxjRxYPfvCpn", 67.6666f64), + ("FfA5YrMeaPzBYB4rE4JBuauXua6BEAQoJPTd8dRCLCdRdhM", 5f64), + ("FiL3XNxVpx5Cgnh4WPpPWms5Ed9tGqA44YEtHVDyPacHVGt", 0.1f64), + ("Fo6D1N9EjneyZYYPGxiW1WNKsj1S9Gx1nxcrMCkKGQ1bwDM", 39.3332f64), + ("Fomib3HNL24Cv6CbLJUf59yDF5shGFyDg8Wx7eGtmDdwrRF", 9.1666f64), + ("Fr6PbzHWKrTvmFJmiYy7MD1iaUpTKHN91VS5iQZZgo7BWCw", 15f64), + ("FrFGwHJKqLTyGDwqWfLgGYFDkjP12yAATQuh4oNpZMhpFzM", 6.6969f64), + ("Ft2cSCw4V47d2S7V9nN2S6V5ByGmAnkfbkFbWUVuHVuaMvW", 0f64), + ("FtG8FbxJXfDj6fcGp3eTL9tKJzkfqT9k8PREKXDgKmbnSDR", 0f64), + ("FteeR6d11cvmoRUmvoBeYYHNpMd5onPnpGy5PUcR6Vo7dJX", 13f64), + ("FypCVBt2MU61ZVL3N6mePXaUXrFX9nvGK6h5yqR89jc6JeW", 84f64), + ("FyyDvxKBmKr81HwQWtbugiFRiu2P1JpSqBDid56AfFevuTV", 12.1666f64), + ("G1o9z4HVf2pW7bbyKKNRP9MnmGEN4n7Ada3yJRpNzaiPoKd", 8.9999f64), + ("G7oV7X7FzJJ2g8TetMvAaC4GvM1ZCzPCnfSk5KcnVy2PJEF", 9f64), + ("GAQ75C8zHzVjWJLDH5PqFbLxfyck89wLJkhCzMZTXBFV5L7", 8.89f64), + ("GD8GVB4Ai4uCSzMCiX6C4vuY4DVkBctQRT6QMqD6y5mJfr9", 175f64), + ("GFgA4KV6Mm2TsHwEYtXfXZCf6QzebuN7c69UJGcRF2vCDTD", 9.3266f64), + ("GHTohCLUcLyB8w4xMr4TyDkvUzDnim6fadWfJ7edPke971d", 8.6666f64), + ("GJ2wraBjTtXH3m2TUxsVEc1bQdiuo6yiZUfczsws19uioX9", 8.8799f64), + ("GL2tM9Q6KL6XxMEWBg5jdjLezP4EzYsh3bqR1pjTmwDY1Mf", 83.499f64), + ("GLZdTryDdiHe3gVwFdncm2a6pKN6EiMxTGJQFHq5RxcNJZt", 93f64), + ("GLnjFi1U2jk6hDs7HCL1Y8XHsVLPHd2UAQh3AqRgpcUAUcn", 11.9933f64), + ("GRLkXUQUNqQMxKnNH1cM5TvWmu2H3yxGx9ohvJXSxRHUyJq", 15f64), + ("GRvRXw8jB2H9EGojmmjM4vZCeofuu91W2Zpbtr2QC5f7iLb", 11.48f64), + ("GUtkCnQKsVXzjqJvSZkiHtvdwZoEyukZrDE1iLTyV8F7tH6", 94.999f64), + ("GWrL9KsayVkniG2GmkYoTRDaFHhpTTSf6fL25e623bHVkRt", 17f64), + ("GbiPhuH4m4BCYiiLpqo2S2TyFxvgpfdSKWMdp9ZrbKdtXeM", 13.5f64), + ("GczUwD9zRdzJnTCr9kyREURmVeYpZAg1wNWrZMjqqimHcds", 8.5546f64), + ("GkS2m7UK6RSUkFiCHYPRtp8GCKdPtrBwP1wj7448gWoiut8", 0.0966f64), + ("Gnh63rW5fy3FAbnZQPkajyrQXxQGkg56Waoe2Ede1RjRjrJ", 0f64), + ("GnkMTVovNUith3JMaN5yvpuuwPzVeFbjM15wzg6LrAQSN6P", 0f64), + ("GnuSjJqE7VWMUGYsEEqsMioXwzNXfhu7FPMvdfKCiVazJwD", 21.3333f64), + ("GoUZE6g169BskxYVFV6prDUN4siKxa6Mr8VZD8B6TU9MEtX", 7.5f64), + ("Gy4LfGahVbR4eM8Sj2aCC4hHFk4fbUWGZCWQV5pjSGwJRZb", 21f64), + ("GyynnvzZzcJt24FQ6DNNg77Mgbfe8ddLdUiQG6nssoBVpmE", 9.7155f64), + ("H1eyZGi1DKxTGdtM8UQRA1RGEe6kGhvKC4onRpy97qKqiPE", 6.4933f64), + ("H2ZXJi5QAVB29d48oWgM1oBAmg2ngiofft4yEeyq58pViwt", 14.5f64), + ("H4YEv9v4DzU6WJsF2pxSHGcVxZEZDS761XWYsnRKX7P3aMQ", 14.8333f64), + ("H9eSvWe34vQDJAWckeTHWSqSChRat8bgKHG39GC1fjvEm7y", 0f64), + ("HJHs8fpzT916HTQgdGf6s69qp5zwNmZpTTnGXmm6qNqaQyW", 0f64), + ("HL8bEp8YicBdrUmJocCAWVLKUaR2dd1y6jnD934pbre3un1", 100f64), + ("HNnVpuhqgXRRDL8h4H39EgvvXtVYEtFSPi1XBWHcEW4cEYc", 110f64), + ("HTbdbMAMsFkUVeoMQ6pbH341DgQ1a4MpdCcaBu5N6uShJBq", 19f64), + ("HZWcWK1Px51bWgu1BD5d9M6A1djczFsdRWVwhVpRrU6VUJH", 34.6666f64), + ("Hbgxh54N33ApEZrpnYGhhvPJNYWD5LNprZodPVnSHq7QDDh", 110f64), + ("Hgh6jDVF9SXHs5pw6TfAXMWj4qHXpU6Q4dXh7h8zpx26cdw", 41f64), + ("HhH7NMA7FEkj327ZktSzkthknuQU591tLr1vX8zuc4E4JkB", 1.9933f64), + ("Hjjn1CmyGWKCswCmVZJFTFMJkruTtgeycEmvR4rWJYU7izQ", 18.6466f64), + ("HkRdC1w5XDvQQadAS2nL58mPRBCLyUCZAAiaV7DUWJgj7P8", 0f64), + ("Hn4y5xom4rBD49e2eMTpsEbqAJgE7uSR62VGLVv78ZqCuxT", 9.2161f64), + ("Hpaecetm5cBAJYDVqN9VeFUgVNQh3AAJAqUKAFW8PZGRst6", 9f64), + ("HsZTGLU5foma6bWoC7BGAs51aRu9TNc2RKRQBcfaHhJES1z", 72.3333f64), + ("HyXNSykBLZFMK8eAdys5L97ncetUhnStnLKMpuSp7kM9bCU", 14.5666f64), + ("J3hg1qmm6VeU6WWcxGQnKaMnD8wYAxnFQwaysE7RhVXbNvs", 7.4933f64), + ("J7XbTDFU4SRUaW6t6mYiK4tzDXtguhwa5ZK13EVCE5F2qak", 56.6666f64), + ("J9c2fcmRhhNaJAxA8yLMkxap7PEWuYc1UaaTqxunfKscjG3", 0f64), + ("JBfNxpntp7DaRM7pzg4XEm9TYX3gCaAVZvwgZW25ZzwXjy2", 0f64), + ("JEzQAbxmotcDNAXFFgcDcjgEF9gbuxaxer4bhGdKEfQqyRw", 0f64), + ("JF1SD3o1qZFdLBWmKTRHcHgBsXZRGGJhkwLeStYNoHs7ep1", 1.8933f64), + ("JFGuwWzqiyJZ3MPM8NRy7kK75MdxwSkh7GNZcsVd6BpZq2h", 20.3333f64), + ("D5WYdgC7f4W6jGCkQaQ3Lfe5P5F7JvfhYBAX9G6CBToMYe4", 0f64), + ("EJgdRddcYSd6XWnwr8oZkkzxJJX8SLwig38d5yxZSRgJGQZ", 0f64), + ("FXRK8xzufVJ45bCXuCCRr6FuS1dCfx9VjiuwqZDSqzEWgLm", 0f64), + ("Gt8ferkwFEX9jLbxpuhLYqKdNzP9KtjZcGYVN2mMbuCwhAP", 0f64), + ("HHCd33jjDBJJDZic7rbQZMuMaoe5ddYaRkaLf7tDURHpE56", 0f64), + ("E7b4mfFEhpnbw7iKdhvnBw7fXoQ1QFQE4TtTRhseWMU1H2E", 14.9000f64), + ("EGUE7VyrVLVSoaG43XVrEf3eKcgzJC8p3mFRtPUTMNLhdYs", 15.9000f64), + ("EtommijqrHDFWFvBxP515oUbkXx9vK2qohzrmwpCXbU7Yx2", 0f64), + ("GxzBsXcxZXXaKcLXj4CWGDdoCaXRVmcRkyiUAHFc1AfTMEV", 0f64), + ("H1heyw8DdkexFHAJ85GhuJr5om72Kx2DdK6sHsmb2f9ebUJ", 0f64), + ("J1Mf8RWcRWpuCRBAQVq6yRgb9exuHdKJdfV2NymtbXdkTF4", 13.9866f64), + ("FX6PCBQr4gtejvdR5dCdstrxmS3oFrzjZHtAKXSBumEse96", 0f64), + ("EdE26hU1nVmmVoteHWGKX8BuayykEg84iz7x3MCmzfocn2u", 0f64), + ("DzN3bMAAKKam6DBr9co4r1TBSj5X6Looh3JvNmfegiVrUgy", 0f64), + ("Dx2p54FSAxrqvFVN4ptvjV9LoUHkKQirM8SbLjD9PVnAonv", 0f64), + ("G6wtWujSHgT24UxXhDHVaVbnY5fBkUJLsjykyWBvtNs2aGQ", 0.0266666664f64), + ("DMrWWv31QiiDDESjGjyVcGhoCYMkPvrSTHHUDK5mR1riV2A", 0f64), + ("EkahQVDKRCe97ZT9TgS1YyfTzLgPah5PHa8NsfGFLsPKpjo", 0f64), + ("GhQ3gB8oaLZfjSd6gyeYZgymnJ2LEmvaUrSELBbva9342Y6", 0f64), + ]; + for (who, amount) in payouts.into_iter().filter(|&(_, amount)| amount > 0f64) { + println!( + "(hex![\"{}\"], {}u128),", + HexDisplay::from(AsRef::<[u8; 32]>::as_ref(&AccountId32::from_string(who).unwrap())), + (amount * 1_000_000_000_000f64).round() as u128, + ) + } +} diff --git a/runtime/kusama/src/weights/mod.rs b/runtime/kusama/src/weights/mod.rs index 433e35a9c225..b3642d49d463 100644 --- a/runtime/kusama/src/weights/mod.rs +++ b/runtime/kusama/src/weights/mod.rs @@ -44,6 +44,7 @@ pub mod pallet_referenda_fellowship_referenda; pub mod pallet_referenda_referenda; pub mod pallet_scheduler; pub mod pallet_session; +pub mod pallet_society; pub mod pallet_staking; pub mod pallet_timestamp; pub mod pallet_tips; diff --git a/runtime/kusama/src/weights/pallet_society.rs b/runtime/kusama/src/weights/pallet_society.rs new file mode 100644 index 000000000000..a174862e0785 --- /dev/null +++ b/runtime/kusama/src/weights/pallet_society.rs @@ -0,0 +1,428 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_society` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-12, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `36-26-2A-C3-ED-FB`, CPU: `` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// target/release/polkadot +// benchmark +// pallet +// --chain=kusama-dev +// --repeat=1 +// --pallet=pallet_society +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --heap-pages=4096 +// --header=./file_header.txt +// --output=./runtime/kusama/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_society`. +pub struct WeightInfo(PhantomData); +impl pallet_society::WeightInfo for WeightInfo { + /// Storage: Society Bids (r:1 w:1) + /// Proof Skipped: Society Bids (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Candidates (r:1 w:0) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Members (r:1 w:0) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + /// Storage: Society SuspendedMembers (r:1 w:0) + /// Proof Skipped: Society SuspendedMembers (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Parameters (r:1 w:0) + /// Proof Skipped: Society Parameters (max_values: Some(1), max_size: None, mode: Measured) + fn bid() -> Weight { + // Proof Size summary in bytes: + // Measured: `416` + // Estimated: `3881` + // Minimum execution time: 42_000_000 picoseconds. + Weight::from_parts(42_000_000, 0) + .saturating_add(Weight::from_parts(0, 3881)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Society Bids (r:1 w:1) + /// Proof Skipped: Society Bids (max_values: Some(1), max_size: None, mode: Measured) + fn unbid() -> Weight { + // Proof Size summary in bytes: + // Measured: `433` + // Estimated: `1918` + // Minimum execution time: 32_000_000 picoseconds. + Weight::from_parts(32_000_000, 0) + .saturating_add(Weight::from_parts(0, 1918)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Society Bids (r:1 w:1) + /// Proof Skipped: Society Bids (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Candidates (r:1 w:0) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Members (r:2 w:1) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + /// Storage: Society SuspendedMembers (r:1 w:0) + /// Proof Skipped: Society SuspendedMembers (max_values: None, max_size: None, mode: Measured) + fn vouch() -> Weight { + // Proof Size summary in bytes: + // Measured: `453` + // Estimated: `6393` + // Minimum execution time: 27_000_000 picoseconds. + Weight::from_parts(27_000_000, 0) + .saturating_add(Weight::from_parts(0, 6393)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Society Bids (r:1 w:1) + /// Proof Skipped: Society Bids (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Members (r:1 w:1) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + fn unvouch() -> Weight { + // Proof Size summary in bytes: + // Measured: `507` + // Estimated: `3972` + // Minimum execution time: 19_000_000 picoseconds. + Weight::from_parts(19_000_000, 0) + .saturating_add(Weight::from_parts(0, 3972)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Society Candidates (r:1 w:1) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Members (r:1 w:0) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Votes (r:1 w:1) + /// Proof Skipped: Society Votes (max_values: None, max_size: None, mode: Measured) + fn vote() -> Weight { + // Proof Size summary in bytes: + // Measured: `541` + // Estimated: `4006` + // Minimum execution time: 24_000_000 picoseconds. + Weight::from_parts(24_000_000, 0) + .saturating_add(Weight::from_parts(0, 4006)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Society Defending (r:1 w:1) + /// Proof Skipped: Society Defending (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Members (r:1 w:0) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + /// Storage: Society ChallengeRoundCount (r:1 w:0) + /// Proof Skipped: Society ChallengeRoundCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society DefenderVotes (r:1 w:1) + /// Proof Skipped: Society DefenderVotes (max_values: None, max_size: None, mode: Measured) + fn defender_vote() -> Weight { + // Proof Size summary in bytes: + // Measured: `533` + // Estimated: `3998` + // Minimum execution time: 22_000_000 picoseconds. + Weight::from_parts(22_000_000, 0) + .saturating_add(Weight::from_parts(0, 3998)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Society Members (r:1 w:0) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Payouts (r:1 w:1) + /// Proof Skipped: Society Payouts (max_values: None, max_size: None, mode: Measured) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn payout() -> Weight { + // Proof Size summary in bytes: + // Measured: `622` + // Estimated: `4087` + // Minimum execution time: 55_000_000 picoseconds. + Weight::from_parts(55_000_000, 0) + .saturating_add(Weight::from_parts(0, 4087)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Society Members (r:1 w:1) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Payouts (r:1 w:1) + /// Proof Skipped: Society Payouts (max_values: None, max_size: None, mode: Measured) + fn waive_repay() -> Weight { + // Proof Size summary in bytes: + // Measured: `519` + // Estimated: `3984` + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(21_000_000, 0) + .saturating_add(Weight::from_parts(0, 3984)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Society Head (r:1 w:1) + /// Proof Skipped: Society Head (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society MemberCount (r:1 w:1) + /// Proof Skipped: Society MemberCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society MemberByIndex (r:0 w:1) + /// Proof Skipped: Society MemberByIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Founder (r:0 w:1) + /// Proof Skipped: Society Founder (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Rules (r:0 w:1) + /// Proof Skipped: Society Rules (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Members (r:0 w:1) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Parameters (r:0 w:1) + /// Proof Skipped: Society Parameters (max_values: Some(1), max_size: None, mode: Measured) + fn found_society() -> Weight { + // Proof Size summary in bytes: + // Measured: `114` + // Estimated: `1599` + // Minimum execution time: 21_000_000 picoseconds. + Weight::from_parts(21_000_000, 0) + .saturating_add(Weight::from_parts(0, 1599)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: Society Founder (r:1 w:1) + /// Proof Skipped: Society Founder (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society MemberCount (r:1 w:1) + /// Proof Skipped: Society MemberCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Members (r:5 w:5) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + /// Storage: Society MemberByIndex (r:5 w:5) + /// Proof Skipped: Society MemberByIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Votes (r:4 w:4) + /// Proof Skipped: Society Votes (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Candidates (r:4 w:4) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Head (r:0 w:1) + /// Proof Skipped: Society Head (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Defending (r:0 w:1) + /// Proof Skipped: Society Defending (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society ChallengeRoundCount (r:0 w:1) + /// Proof Skipped: Society ChallengeRoundCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Skeptic (r:0 w:1) + /// Proof Skipped: Society Skeptic (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Pot (r:0 w:1) + /// Proof Skipped: Society Pot (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Rules (r:0 w:1) + /// Proof Skipped: Society Rules (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society RoundCount (r:0 w:1) + /// Proof Skipped: Society RoundCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Bids (r:0 w:1) + /// Proof Skipped: Society Bids (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Parameters (r:0 w:1) + /// Proof Skipped: Society Parameters (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society NextHead (r:0 w:1) + /// Proof Skipped: Society NextHead (max_values: Some(1), max_size: None, mode: Measured) + fn dissolve() -> Weight { + // Proof Size summary in bytes: + // Measured: `1626` + // Estimated: `14991` + // Minimum execution time: 70_000_000 picoseconds. + Weight::from_parts(70_000_000, 0) + .saturating_add(Weight::from_parts(0, 14991)) + .saturating_add(T::DbWeight::get().reads(20)) + .saturating_add(T::DbWeight::get().writes(30)) + } + /// Storage: Society Founder (r:1 w:0) + /// Proof Skipped: Society Founder (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society SuspendedMembers (r:1 w:1) + /// Proof Skipped: Society SuspendedMembers (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Payouts (r:1 w:0) + /// Proof Skipped: Society Payouts (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Pot (r:1 w:1) + /// Proof Skipped: Society Pot (max_values: Some(1), max_size: None, mode: Measured) + fn judge_suspended_member() -> Weight { + // Proof Size summary in bytes: + // Measured: `456` + // Estimated: `3921` + // Minimum execution time: 25_000_000 picoseconds. + Weight::from_parts(25_000_000, 0) + .saturating_add(Weight::from_parts(0, 3921)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Society Founder (r:1 w:0) + /// Proof Skipped: Society Founder (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society MemberCount (r:1 w:0) + /// Proof Skipped: Society MemberCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Parameters (r:0 w:1) + /// Proof Skipped: Society Parameters (max_values: Some(1), max_size: None, mode: Measured) + fn set_parameters() -> Weight { + // Proof Size summary in bytes: + // Measured: `359` + // Estimated: `1844` + // Minimum execution time: 16_000_000 picoseconds. + Weight::from_parts(16_000_000, 0) + .saturating_add(Weight::from_parts(0, 1844)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Society Candidates (r:1 w:1) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society RoundCount (r:1 w:0) + /// Proof Skipped: Society RoundCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Skeptic (r:1 w:0) + /// Proof Skipped: Society Skeptic (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Votes (r:1 w:0) + /// Proof Skipped: Society Votes (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Members (r:1 w:1) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Parameters (r:1 w:0) + /// Proof Skipped: Society Parameters (max_values: Some(1), max_size: None, mode: Measured) + fn punish_skeptic() -> Weight { + // Proof Size summary in bytes: + // Measured: `608` + // Estimated: `4073` + // Minimum execution time: 25_000_000 picoseconds. + Weight::from_parts(25_000_000, 0) + .saturating_add(Weight::from_parts(0, 4073)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Society Candidates (r:1 w:1) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society RoundCount (r:1 w:0) + /// Proof Skipped: Society RoundCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Parameters (r:1 w:0) + /// Proof Skipped: Society Parameters (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society MemberCount (r:1 w:1) + /// Proof Skipped: Society MemberCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society NextHead (r:1 w:1) + /// Proof Skipped: Society NextHead (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: Society MemberByIndex (r:0 w:1) + /// Proof Skipped: Society MemberByIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Members (r:0 w:1) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + fn claim_membership() -> Weight { + // Proof Size summary in bytes: + // Measured: `604` + // Estimated: `4069` + // Minimum execution time: 43_000_000 picoseconds. + Weight::from_parts(43_000_000, 0) + .saturating_add(Weight::from_parts(0, 4069)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: Society Founder (r:1 w:0) + /// Proof Skipped: Society Founder (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Candidates (r:1 w:1) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society RoundCount (r:1 w:0) + /// Proof Skipped: Society RoundCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Parameters (r:1 w:0) + /// Proof Skipped: Society Parameters (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society MemberCount (r:1 w:1) + /// Proof Skipped: Society MemberCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society NextHead (r:1 w:1) + /// Proof Skipped: Society NextHead (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: Society MemberByIndex (r:0 w:1) + /// Proof Skipped: Society MemberByIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Members (r:0 w:1) + /// Proof Skipped: Society Members (max_values: None, max_size: None, mode: Measured) + fn bestow_membership() -> Weight { + // Proof Size summary in bytes: + // Measured: `622` + // Estimated: `4087` + // Minimum execution time: 45_000_000 picoseconds. + Weight::from_parts(45_000_000, 0) + .saturating_add(Weight::from_parts(0, 4087)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: Society Founder (r:1 w:0) + /// Proof Skipped: Society Founder (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society Candidates (r:1 w:1) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society RoundCount (r:1 w:0) + /// Proof Skipped: Society RoundCount (max_values: Some(1), max_size: None, mode: Measured) + fn kick_candidate() -> Weight { + // Proof Size summary in bytes: + // Measured: `507` + // Estimated: `3972` + // Minimum execution time: 16_000_000 picoseconds. + Weight::from_parts(16_000_000, 0) + .saturating_add(Weight::from_parts(0, 3972)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Society Candidates (r:1 w:1) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society RoundCount (r:1 w:0) + /// Proof Skipped: Society RoundCount (max_values: Some(1), max_size: None, mode: Measured) + fn resign_candidacy() -> Weight { + // Proof Size summary in bytes: + // Measured: `477` + // Estimated: `3942` + // Minimum execution time: 13_000_000 picoseconds. + Weight::from_parts(13_000_000, 0) + .saturating_add(Weight::from_parts(0, 3942)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Society Candidates (r:1 w:1) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society RoundCount (r:1 w:0) + /// Proof Skipped: Society RoundCount (max_values: Some(1), max_size: None, mode: Measured) + fn drop_candidate() -> Weight { + // Proof Size summary in bytes: + // Measured: `489` + // Estimated: `3954` + // Minimum execution time: 13_000_000 picoseconds. + Weight::from_parts(13_000_000, 0) + .saturating_add(Weight::from_parts(0, 3954)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Society Candidates (r:1 w:0) + /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) + /// Storage: Society VoteClearCursor (r:1 w:0) + /// Proof Skipped: Society VoteClearCursor (max_values: None, max_size: None, mode: Measured) + /// Storage: Society Votes (r:2 w:2) + /// Proof Skipped: Society Votes (max_values: None, max_size: None, mode: Measured) + fn cleanup_candidacy() -> Weight { + // Proof Size summary in bytes: + // Measured: `524` + // Estimated: `6464` + // Minimum execution time: 19_000_000 picoseconds. + Weight::from_parts(19_000_000, 0) + .saturating_add(Weight::from_parts(0, 6464)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Society ChallengeRoundCount (r:1 w:0) + /// Proof Skipped: Society ChallengeRoundCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Society DefenderVotes (r:1 w:1) + /// Proof Skipped: Society DefenderVotes (max_values: None, max_size: None, mode: Measured) + fn cleanup_challenge() -> Weight { + // Proof Size summary in bytes: + // Measured: `482` + // Estimated: `3947` + // Minimum execution time: 13_000_000 picoseconds. + Weight::from_parts(13_000_000, 0) + .saturating_add(Weight::from_parts(0, 3947)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/runtime/kusama/src/xcm_config.rs b/runtime/kusama/src/xcm_config.rs index c2fa52a59b4d..0aa50a364a0c 100644 --- a/runtime/kusama/src/xcm_config.rs +++ b/runtime/kusama/src/xcm_config.rs @@ -265,19 +265,7 @@ impl Contains for SafeCallFilter { pallet_identity::Call::remove_sub { .. } | pallet_identity::Call::quit_sub { .. }, ) | - RuntimeCall::Society( - pallet_society::Call::bid { .. } | - pallet_society::Call::unbid { .. } | - pallet_society::Call::vouch { .. } | - pallet_society::Call::unvouch { .. } | - pallet_society::Call::vote { .. } | - pallet_society::Call::defender_vote { .. } | - pallet_society::Call::payout { .. } | - pallet_society::Call::unfound { .. } | - pallet_society::Call::judge_suspended_member { .. } | - pallet_society::Call::judge_suspended_candidate { .. } | - pallet_society::Call::set_max_members { .. }, - ) | + RuntimeCall::Society(..) | RuntimeCall::Recovery(..) | RuntimeCall::Vesting(..) | RuntimeCall::Bounties( diff --git a/runtime/rococo/src/lib.rs b/runtime/rococo/src/lib.rs index a00655c6cd1b..68528fa8e7d3 100644 --- a/runtime/rococo/src/lib.rs +++ b/runtime/rococo/src/lib.rs @@ -809,14 +809,6 @@ impl pallet_recovery::Config for Runtime { } parameter_types! { - pub const CandidateDeposit: Balance = 1000 * CENTS; - pub const WrongSideDeduction: Balance = 200 * CENTS; - pub const MaxStrikes: u32 = 10; - pub const RotationPeriod: BlockNumber = 7 * DAYS; - pub const PeriodSpend: Balance = 50000 * CENTS; - pub const MaxLockDuration: BlockNumber = 36 * 30 * DAYS; - pub const ChallengePeriod: BlockNumber = 7 * DAYS; - pub const MaxCandidateIntake: u32 = 1; pub const SocietyPalletId: PalletId = PalletId(*b"py/socie"); } @@ -824,19 +816,17 @@ impl pallet_society::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; type Randomness = pallet_babe::RandomnessFromOneEpochAgo; - type CandidateDeposit = CandidateDeposit; - type WrongSideDeduction = WrongSideDeduction; - type MaxStrikes = MaxStrikes; - type PeriodSpend = PeriodSpend; - type MembershipChanged = (); - type RotationPeriod = RotationPeriod; - type MaxLockDuration = MaxLockDuration; - type FounderSetOrigin = - pallet_collective::EnsureProportionMoreThan; - type SuspensionJudgementOrigin = pallet_society::EnsureFounder; - type ChallengePeriod = ChallengePeriod; - type MaxCandidateIntake = MaxCandidateIntake; + type GraceStrikes = ConstU32<1>; + type PeriodSpend = ConstU128<{ 50_000 * CENTS }>; + type VotingPeriod = ConstU32<{ 5 * DAYS }>; + type ClaimPeriod = ConstU32<{ 2 * DAYS }>; + type MaxLockDuration = ConstU32<{ 36 * 30 * DAYS }>; + type FounderSetOrigin = EnsureRoot; + type ChallengePeriod = ConstU32<{ 7 * DAYS }>; + type MaxPayouts = ConstU32<8>; + type MaxBids = ConstU32<512>; type PalletId = SocietyPalletId; + type WeightInfo = (); } parameter_types! { @@ -1633,7 +1623,7 @@ pub mod migrations { } /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = (pallet_society::migrations::MigrateToV2,); } /// Helpers to configure all migrations. diff --git a/runtime/rococo/src/xcm_config.rs b/runtime/rococo/src/xcm_config.rs index b488ba73e6a7..bc78ab7ab878 100644 --- a/runtime/rococo/src/xcm_config.rs +++ b/runtime/rococo/src/xcm_config.rs @@ -259,19 +259,7 @@ impl Contains for SafeCallFilter { pallet_identity::Call::remove_sub { .. } | pallet_identity::Call::quit_sub { .. }, ) | - RuntimeCall::Society( - pallet_society::Call::bid { .. } | - pallet_society::Call::unbid { .. } | - pallet_society::Call::vouch { .. } | - pallet_society::Call::unvouch { .. } | - pallet_society::Call::vote { .. } | - pallet_society::Call::defender_vote { .. } | - pallet_society::Call::payout { .. } | - pallet_society::Call::unfound { .. } | - pallet_society::Call::judge_suspended_member { .. } | - pallet_society::Call::judge_suspended_candidate { .. } | - pallet_society::Call::set_max_members { .. }, - ) | + RuntimeCall::Society(..) | RuntimeCall::Recovery(..) | RuntimeCall::Vesting(..) | RuntimeCall::Bounties( diff --git a/xcm/Cargo.toml b/xcm/Cargo.toml index ffcc38e26a4c..1f51d176507a 100644 --- a/xcm/Cargo.toml +++ b/xcm/Cargo.toml @@ -6,7 +6,7 @@ authors.workspace = true edition.workspace = true [dependencies] -bounded-collections = { version = "0.1.7", default-features = false, features = ["serde"] } +bounded-collections = { version = "0.1.8", default-features = false, features = ["serde"] } derivative = { version = "2.2.0", default-features = false, features = [ "use_core" ] } impl-trait-for-tuples = "0.2.2" log = { version = "0.4.17", default-features = false } diff --git a/xcm/pallet-xcm/Cargo.toml b/xcm/pallet-xcm/Cargo.toml index 9ebd11228b21..e202ef158190 100644 --- a/xcm/pallet-xcm/Cargo.toml +++ b/xcm/pallet-xcm/Cargo.toml @@ -6,7 +6,7 @@ version.workspace = true [dependencies] -bounded-collections = { version = "0.1.7", default-features = false } +bounded-collections = { version = "0.1.8", default-features = false } codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false, features = ["derive"] } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } serde = { version = "1.0.163", optional = true, features = ["derive"] } From 10ab43f26cd98b3562b64c9466bb9d9938f213cd Mon Sep 17 00:00:00 2001 From: Rashmirreddy <133352493+Rashmirreddy@users.noreply.github.com> Date: Tue, 20 Jun 2023 14:38:52 +0200 Subject: [PATCH 27/56] Fixed a link issue. (#7395) --- runtime/common/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/common/src/lib.rs b/runtime/common/src/lib.rs index 8c68ff97fca8..a9abfbe4dd34 100644 --- a/runtime/common/src/lib.rs +++ b/runtime/common/src/lib.rs @@ -101,7 +101,7 @@ parameter_types! { } /// Parameterized slow adjusting fee updated based on -/// https://research.web3.foundation/en/latest/polkadot/overview/2-token-economics.html#-2.-slow-adjusting-mechanism +/// https://research.web3.foundation/Polkadot/overview/token-economics#2-slow-adjusting-mechanism pub type SlowAdjustingFeeUpdate = TargetedFeeAdjustment< R, TargetBlockFullness, From 86213dfa1048f65a3bba6763aac971b6af7d753c Mon Sep 17 00:00:00 2001 From: asynchronous rob Date: Tue, 20 Jun 2023 14:07:31 -0700 Subject: [PATCH 28/56] fix dependency for "cli" feature in polkadot-cli (#7399) --- cli/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 1fe9fa696cfd..64ce6e7ca595 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -57,6 +57,7 @@ cli = [ "polkadot-client", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", + "service", ] runtime-benchmarks = [ "service/runtime-benchmarks", From a98f456f2ebb0032ae2c78d3da0a60a5d70b6452 Mon Sep 17 00:00:00 2001 From: eskimor Date: Wed, 21 Jun 2023 12:23:03 +0200 Subject: [PATCH 29/56] Clarification on the use of vstaging (#7359) * Clarifications on vstaging. * Typos. --------- Co-authored-by: eskimor --- primitives/src/runtime_api.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/primitives/src/runtime_api.rs b/primitives/src/runtime_api.rs index aea069db7694..ec05beea9d5f 100644 --- a/primitives/src/runtime_api.rs +++ b/primitives/src/runtime_api.rs @@ -92,8 +92,12 @@ //! Let's introduce two types of `ParachainHost` API implementation: //! * stable - used on stable production networks like Polkadot and Kusama. There is only one //! stable API at a single point in time. -//! * staging - used on test networks like Westend or Rococo. Depending on the development needs -//! there can be zero, one or multiple staging APIs. +//! * staging - methods that are ready for production, but will be released on Rococo first. We can +//! batch together multiple changes and then release all of them to production, by making staging +//! production (bump base version). We can not change or remove any method in staging after a +//! release, as this would break Rococo. It should be ok to keep adding methods to staging +//! across several releases. For experimental methods, you have to keep them on a separate branch +//! until ready. //! //! The stable version of `ParachainHost` is indicated by the base version of the API. Any staging //! method must use `api_version` attribute so that it is assigned to a specific version of a From c13e4cdc8d34c4fa59b4c4eef23f997ad8cabee0 Mon Sep 17 00:00:00 2001 From: Koute Date: Wed, 21 Jun 2023 11:24:24 +0100 Subject: [PATCH 30/56] Bump `parity-scale-codec` to 3.6.1 (#7382) --- Cargo.lock | 20 +++++++++---------- core-primitives/Cargo.toml | 2 +- erasure-coding/Cargo.toml | 2 +- node/collation-generation/Cargo.toml | 2 +- node/core/approval-voting/Cargo.toml | 2 +- node/core/av-store/Cargo.toml | 2 +- node/core/candidate-validation/Cargo.toml | 2 +- node/core/chain-api/Cargo.toml | 2 +- node/core/chain-selection/Cargo.toml | 2 +- node/core/dispute-coordinator/Cargo.toml | 2 +- node/core/pvf/Cargo.toml | 2 +- node/core/pvf/common/Cargo.toml | 2 +- node/core/pvf/execute-worker/Cargo.toml | 2 +- node/core/pvf/prepare-worker/Cargo.toml | 2 +- node/jaeger/Cargo.toml | 2 +- node/metrics/Cargo.toml | 2 +- .../availability-distribution/Cargo.toml | 2 +- node/network/availability-recovery/Cargo.toml | 2 +- node/network/bridge/Cargo.toml | 2 +- node/network/collator-protocol/Cargo.toml | 2 +- node/network/dispute-distribution/Cargo.toml | 2 +- node/network/protocol/Cargo.toml | 2 +- .../network/statement-distribution/Cargo.toml | 2 +- node/primitives/Cargo.toml | 2 +- node/subsystem-util/Cargo.toml | 2 +- node/test/client/Cargo.toml | 2 +- node/zombienet-backchannel/Cargo.toml | 2 +- parachain/Cargo.toml | 2 +- parachain/test-parachains/Cargo.toml | 2 +- parachain/test-parachains/adder/Cargo.toml | 2 +- .../test-parachains/adder/collator/Cargo.toml | 2 +- parachain/test-parachains/undying/Cargo.toml | 2 +- .../undying/collator/Cargo.toml | 2 +- primitives/Cargo.toml | 2 +- runtime/common/Cargo.toml | 2 +- runtime/common/slot_range_helper/Cargo.toml | 2 +- runtime/kusama/Cargo.toml | 2 +- runtime/metrics/Cargo.toml | 2 +- runtime/parachains/Cargo.toml | 2 +- runtime/polkadot/Cargo.toml | 2 +- runtime/rococo/Cargo.toml | 2 +- runtime/test-runtime/Cargo.toml | 2 +- runtime/westend/Cargo.toml | 2 +- statement-table/Cargo.toml | 2 +- utils/staking-miner/Cargo.toml | 2 +- xcm/Cargo.toml | 2 +- xcm/pallet-xcm-benchmarks/Cargo.toml | 2 +- xcm/pallet-xcm/Cargo.toml | 2 +- xcm/xcm-builder/Cargo.toml | 2 +- xcm/xcm-executor/Cargo.toml | 2 +- xcm/xcm-simulator/Cargo.toml | 2 +- xcm/xcm-simulator/example/Cargo.toml | 2 +- xcm/xcm-simulator/fuzzer/Cargo.toml | 2 +- 53 files changed, 62 insertions(+), 62 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9e4eea9b93fc..9536f8372068 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6612,9 +6612,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.4.0" +version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637935964ff85a605d114591d4d2c13c5d1ba2806dae97cea6bf180238a749ac" +checksum = "2287753623c76f953acd29d15d8100bcab84d29db78fb6f352adb3c53e83b967" dependencies = [ "arrayvec 0.7.2", "bitvec", @@ -6627,9 +6627,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.1.4" +version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b26a931f824dd4eca30b3e43bb4f31cd5f0d3a403c5f5ff27106b805bfde7b" +checksum = "2b6937b5e67bfba3351b87b040d48352a2fcb6ad72f81855412ce97b45c8f110" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8718,9 +8718,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" dependencies = [ "unicode-ident", ] @@ -10978,18 +10978,18 @@ checksum = "f97841a747eef040fcd2e7b3b9a220a7205926e60488e673d9e4926d27772ce5" [[package]] name = "serde" -version = "1.0.163" +version = "1.0.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" +checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.163" +version = "1.0.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" +checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" dependencies = [ "proc-macro2", "quote", diff --git a/core-primitives/Cargo.toml b/core-primitives/Cargo.toml index 56dca0535eed..7412c2b6e7e0 100644 --- a/core-primitives/Cargo.toml +++ b/core-primitives/Cargo.toml @@ -9,7 +9,7 @@ sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = [ "derive" ] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = [ "derive" ] } [features] default = [ "std" ] diff --git a/erasure-coding/Cargo.toml b/erasure-coding/Cargo.toml index d7a9236b93cd..44aa86f881c8 100644 --- a/erasure-coding/Cargo.toml +++ b/erasure-coding/Cargo.toml @@ -8,7 +8,7 @@ edition.workspace = true polkadot-primitives = { path = "../primitives" } polkadot-node-primitives = { package = "polkadot-node-primitives", path = "../node/primitives" } novelpoly = { package = "reed-solomon-novelpoly", version = "1.0.0" } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["std", "derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["std", "derive"] } sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } thiserror = "1.0.31" diff --git a/node/collation-generation/Cargo.toml b/node/collation-generation/Cargo.toml index 68410c2cecbe..a7badc877d45 100644 --- a/node/collation-generation/Cargo.toml +++ b/node/collation-generation/Cargo.toml @@ -15,7 +15,7 @@ polkadot-primitives = { path = "../../primitives" } sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-maybe-compressed-blob = { git = "https://github.com/paritytech/substrate", branch = "master" } thiserror = "1.0.31" -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["bit-vec", "derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["bit-vec", "derive"] } [dev-dependencies] polkadot-node-subsystem-test-helpers = { path = "../subsystem-test-helpers" } diff --git a/node/core/approval-voting/Cargo.toml b/node/core/approval-voting/Cargo.toml index e35a3610b82e..0cb12b501aea 100644 --- a/node/core/approval-voting/Cargo.toml +++ b/node/core/approval-voting/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] futures = "0.3.21" futures-timer = "3.0.2" -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["bit-vec", "derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["bit-vec", "derive"] } gum = { package = "tracing-gum", path = "../../gum" } bitvec = { version = "1.0.0", default-features = false, features = ["alloc"] } lru = "0.9" diff --git a/node/core/av-store/Cargo.toml b/node/core/av-store/Cargo.toml index 4f47ac14539d..37404c864d8b 100644 --- a/node/core/av-store/Cargo.toml +++ b/node/core/av-store/Cargo.toml @@ -12,7 +12,7 @@ thiserror = "1.0.31" gum = { package = "tracing-gum", path = "../../gum" } bitvec = "1.0.0" -parity-scale-codec = { version = "3.4.0", features = ["derive"] } +parity-scale-codec = { version = "3.6.1", features = ["derive"] } erasure = { package = "polkadot-erasure-coding", path = "../../../erasure-coding" } polkadot-node-subsystem = {path = "../../subsystem" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } diff --git a/node/core/candidate-validation/Cargo.toml b/node/core/candidate-validation/Cargo.toml index 18826f7e2376..515aabbb3b41 100644 --- a/node/core/candidate-validation/Cargo.toml +++ b/node/core/candidate-validation/Cargo.toml @@ -11,7 +11,7 @@ futures-timer = "3.0.2" gum = { package = "tracing-gum", path = "../../gum" } sp-maybe-compressed-blob = { package = "sp-maybe-compressed-blob", git = "https://github.com/paritytech/substrate", branch = "master" } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["bit-vec", "derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["bit-vec", "derive"] } polkadot-primitives = { path = "../../../primitives" } polkadot-parachain = { path = "../../../parachain" } diff --git a/node/core/chain-api/Cargo.toml b/node/core/chain-api/Cargo.toml index 5051e96c6352..8400a2a5bf86 100644 --- a/node/core/chain-api/Cargo.toml +++ b/node/core/chain-api/Cargo.toml @@ -17,7 +17,7 @@ sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = [dev-dependencies] futures = { version = "0.3.21", features = ["thread-pool"] } maplit = "1.0.2" -parity-scale-codec = "3.4.0" +parity-scale-codec = "3.6.1" polkadot-node-primitives = { path = "../../primitives" } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/core/chain-selection/Cargo.toml b/node/core/chain-selection/Cargo.toml index 750b0b5976bb..b4104bc6f12d 100644 --- a/node/core/chain-selection/Cargo.toml +++ b/node/core/chain-selection/Cargo.toml @@ -15,7 +15,7 @@ polkadot-node-subsystem = { path = "../../subsystem" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } kvdb = "0.13.0" thiserror = "1.0.31" -parity-scale-codec = "3.4.0" +parity-scale-codec = "3.6.1" [dev-dependencies] polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } diff --git a/node/core/dispute-coordinator/Cargo.toml b/node/core/dispute-coordinator/Cargo.toml index c6f5b6d2f362..b26e3cc0cfba 100644 --- a/node/core/dispute-coordinator/Cargo.toml +++ b/node/core/dispute-coordinator/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] futures = "0.3.21" gum = { package = "tracing-gum", path = "../../gum" } -parity-scale-codec = "3.4.0" +parity-scale-codec = "3.6.1" kvdb = "0.13.0" thiserror = "1.0.31" lru = "0.9.0" diff --git a/node/core/pvf/Cargo.toml b/node/core/pvf/Cargo.toml index d00c13fda2b0..396f8b7ce05b 100644 --- a/node/core/pvf/Cargo.toml +++ b/node/core/pvf/Cargo.toml @@ -20,7 +20,7 @@ slotmap = "1.0" tempfile = "3.3.0" tokio = { version = "1.24.2", features = ["fs", "process"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } polkadot-parachain = { path = "../../../parachain" } polkadot-core-primitives = { path = "../../../core-primitives" } diff --git a/node/core/pvf/common/Cargo.toml b/node/core/pvf/common/Cargo.toml index f896da4909a9..5f5a3a461c2f 100644 --- a/node/core/pvf/common/Cargo.toml +++ b/node/core/pvf/common/Cargo.toml @@ -11,7 +11,7 @@ gum = { package = "tracing-gum", path = "../../../gum" } libc = "0.2.139" tokio = { version = "1.24.2", features = ["fs", "process", "io-util"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } polkadot-parachain = { path = "../../../../parachain" } polkadot-primitives = { path = "../../../../primitives" } diff --git a/node/core/pvf/execute-worker/Cargo.toml b/node/core/pvf/execute-worker/Cargo.toml index dcfb2908ef9a..167e8b4311a3 100644 --- a/node/core/pvf/execute-worker/Cargo.toml +++ b/node/core/pvf/execute-worker/Cargo.toml @@ -12,7 +12,7 @@ rayon = "1.5.1" tikv-jemalloc-ctl = { version = "0.5.0", optional = true } tokio = { version = "1.24.2", features = ["fs", "process"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } polkadot-node-core-pvf-common = { path = "../common" } polkadot-parachain = { path = "../../../../parachain" } diff --git a/node/core/pvf/prepare-worker/Cargo.toml b/node/core/pvf/prepare-worker/Cargo.toml index 07386de35962..3bd1fd43b673 100644 --- a/node/core/pvf/prepare-worker/Cargo.toml +++ b/node/core/pvf/prepare-worker/Cargo.toml @@ -12,7 +12,7 @@ rayon = "1.5.1" tikv-jemalloc-ctl = { version = "0.5.0", optional = true } tokio = { version = "1.24.2", features = ["fs", "process"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } polkadot-node-core-pvf-common = { path = "../common" } polkadot-parachain = { path = "../../../../parachain" } diff --git a/node/jaeger/Cargo.toml b/node/jaeger/Cargo.toml index fccdaff79a4e..8131d4076674 100644 --- a/node/jaeger/Cargo.toml +++ b/node/jaeger/Cargo.toml @@ -16,4 +16,4 @@ sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } thiserror = "1.0.31" tokio = "1.24.2" log = "0.4.17" -parity-scale-codec = { version = "3.4.0", default-features = false } +parity-scale-codec = { version = "3.6.1", default-features = false } diff --git a/node/metrics/Cargo.toml b/node/metrics/Cargo.toml index ced0fbb315b0..7365d7593d7d 100644 --- a/node/metrics/Cargo.toml +++ b/node/metrics/Cargo.toml @@ -18,7 +18,7 @@ sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "master" } -codec = { package = "parity-scale-codec", version = "3.4.0" } +codec = { package = "parity-scale-codec", version = "3.6.1" } primitives = { package = "polkadot-primitives", path = "../../primitives/" } bs58 = { version = "0.4.0", features = ["alloc"] } log = "0.4.17" diff --git a/node/network/availability-distribution/Cargo.toml b/node/network/availability-distribution/Cargo.toml index 3cb5fdbef9c7..26550859890b 100644 --- a/node/network/availability-distribution/Cargo.toml +++ b/node/network/availability-distribution/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] futures = "0.3.21" gum = { package = "tracing-gum", path = "../../gum" } -parity-scale-codec = { version = "3.4.0", features = ["std"] } +parity-scale-codec = { version = "3.6.1", features = ["std"] } polkadot-primitives = { path = "../../../primitives" } polkadot-erasure-coding = { path = "../../../erasure-coding" } polkadot-node-network-protocol = { path = "../../network/protocol" } diff --git a/node/network/availability-recovery/Cargo.toml b/node/network/availability-recovery/Cargo.toml index 9107fec17d7f..1a2bc1850c57 100644 --- a/node/network/availability-recovery/Cargo.toml +++ b/node/network/availability-recovery/Cargo.toml @@ -18,7 +18,7 @@ polkadot-node-primitives = { path = "../../primitives" } polkadot-node-subsystem = {path = "../../subsystem" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-network-protocol = { path = "../../network/protocol" } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } [dev-dependencies] diff --git a/node/network/bridge/Cargo.toml b/node/network/bridge/Cargo.toml index bba32588b275..d45900f06dfb 100644 --- a/node/network/bridge/Cargo.toml +++ b/node/network/bridge/Cargo.toml @@ -10,7 +10,7 @@ async-trait = "0.1.57" futures = "0.3.21" gum = { package = "tracing-gum", path = "../../gum" } polkadot-primitives = { path = "../../../primitives" } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-node-metrics = { path = "../../metrics"} diff --git a/node/network/collator-protocol/Cargo.toml b/node/network/collator-protocol/Cargo.toml index 7eea0a0972e9..25bb4fdb825f 100644 --- a/node/network/collator-protocol/Cargo.toml +++ b/node/network/collator-protocol/Cargo.toml @@ -31,7 +31,7 @@ assert_matches = "1.4.0" sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] } sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } -parity-scale-codec = { version = "3.4.0", features = ["std"] } +parity-scale-codec = { version = "3.6.1", features = ["std"] } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } polkadot-primitives-test-helpers = { path = "../../../primitives/test-helpers" } diff --git a/node/network/dispute-distribution/Cargo.toml b/node/network/dispute-distribution/Cargo.toml index b344c326a29d..e88c61f1831d 100644 --- a/node/network/dispute-distribution/Cargo.toml +++ b/node/network/dispute-distribution/Cargo.toml @@ -9,7 +9,7 @@ futures = "0.3.21" futures-timer = "3.0.2" gum = { package = "tracing-gum", path = "../../gum" } derive_more = "0.99.17" -parity-scale-codec = { version = "3.4.0", features = ["std"] } +parity-scale-codec = { version = "3.6.1", features = ["std"] } polkadot-primitives = { path = "../../../primitives" } polkadot-erasure-coding = { path = "../../../erasure-coding" } polkadot-node-subsystem = {path = "../../subsystem" } diff --git a/node/network/protocol/Cargo.toml b/node/network/protocol/Cargo.toml index 12c06f838bc8..f1a481081200 100644 --- a/node/network/protocol/Cargo.toml +++ b/node/network/protocol/Cargo.toml @@ -12,7 +12,7 @@ hex = "0.4.3" polkadot-primitives = { path = "../../../primitives" } polkadot-node-primitives = { path = "../../primitives" } polkadot-node-jaeger = { path = "../../jaeger" } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } strum = { version = "0.24", features = ["derive"] } diff --git a/node/network/statement-distribution/Cargo.toml b/node/network/statement-distribution/Cargo.toml index 6cf81ee37b6b..c338b0276e51 100644 --- a/node/network/statement-distribution/Cargo.toml +++ b/node/network/statement-distribution/Cargo.toml @@ -18,7 +18,7 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-network-protocol = { path = "../../network/protocol" } arrayvec = "0.5.2" indexmap = "1.9.1" -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } thiserror = "1.0.31" fatality = "0.0.6" diff --git a/node/primitives/Cargo.toml b/node/primitives/Cargo.toml index f965018c07d9..1bf9c81b60f9 100644 --- a/node/primitives/Cargo.toml +++ b/node/primitives/Cargo.toml @@ -9,7 +9,7 @@ edition.workspace = true bounded-vec = "0.7" futures = "0.3.21" polkadot-primitives = { path = "../../primitives" } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/subsystem-util/Cargo.toml b/node/subsystem-util/Cargo.toml index cf80b34aeeb5..ad100b798b0a 100644 --- a/node/subsystem-util/Cargo.toml +++ b/node/subsystem-util/Cargo.toml @@ -10,7 +10,7 @@ async-trait = "0.1.57" futures = "0.3.21" futures-channel = "0.3.23" itertools = "0.10" -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } parking_lot = "0.11.2" pin-project = "1.0.9" rand = "0.8.5" diff --git a/node/test/client/Cargo.toml b/node/test/client/Cargo.toml index 950662a8c72c..7f61ed2408ab 100644 --- a/node/test/client/Cargo.toml +++ b/node/test/client/Cargo.toml @@ -5,7 +5,7 @@ authors.workspace = true edition.workspace = true [dependencies] -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } # Polkadot dependencies polkadot-test-runtime = { path = "../../../runtime/test-runtime" } diff --git a/node/zombienet-backchannel/Cargo.toml b/node/zombienet-backchannel/Cargo.toml index cd48ed4601ed..f0959c4b43dc 100644 --- a/node/zombienet-backchannel/Cargo.toml +++ b/node/zombienet-backchannel/Cargo.toml @@ -14,7 +14,7 @@ url = "2.3.1" tokio-tungstenite = "0.17" futures-util = "0.3.23" lazy_static = "1.4.0" -parity-scale-codec = { version = "3.4.0", features = ["derive"] } +parity-scale-codec = { version = "3.6.1", features = ["derive"] } reqwest = "0.11" thiserror = "1.0.31" gum = { package = "tracing-gum", path = "../gum/" } diff --git a/parachain/Cargo.toml b/parachain/Cargo.toml index a88717f0d92f..70eafb3b8b31 100644 --- a/parachain/Cargo.toml +++ b/parachain/Cargo.toml @@ -9,7 +9,7 @@ version.workspace = true # note: special care is taken to avoid inclusion of `sp-io` externals when compiling # this crate for WASM. This is critical to avoid forcing all parachain WASM into implementing # various unnecessary Substrate-specific endpoints. -parity-scale-codec = { version = "3.4.0", default-features = false, features = [ "derive" ] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = [ "derive" ] } scale-info = { version = "2.5.0", default-features = false, features = ["derive", "serde"] } sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] } diff --git a/parachain/test-parachains/Cargo.toml b/parachain/test-parachains/Cargo.toml index 3065d682e9f9..40aaae5a6eaf 100644 --- a/parachain/test-parachains/Cargo.toml +++ b/parachain/test-parachains/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] tiny-keccak = { version = "2.0.2", features = ["keccak"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } adder = { package = "test-parachain-adder", path = "adder" } halt = { package = "test-parachain-halt", path = "halt" } diff --git a/parachain/test-parachains/adder/Cargo.toml b/parachain/test-parachains/adder/Cargo.toml index fc48e056134f..64123d312550 100644 --- a/parachain/test-parachains/adder/Cargo.toml +++ b/parachain/test-parachains/adder/Cargo.toml @@ -8,7 +8,7 @@ authors.workspace = true [dependencies] parachain = { package = "polkadot-parachain", path = "../../", default-features = false, features = [ "wasm-api" ] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } tiny-keccak = { version = "2.0.2", features = ["keccak"] } dlmalloc = { version = "0.2.4", features = [ "global" ] } diff --git a/parachain/test-parachains/adder/collator/Cargo.toml b/parachain/test-parachains/adder/collator/Cargo.toml index 7fe4aefc688d..29a10069e3e0 100644 --- a/parachain/test-parachains/adder/collator/Cargo.toml +++ b/parachain/test-parachains/adder/collator/Cargo.toml @@ -14,7 +14,7 @@ name = "adder_collator_puppet_worker" path = "bin/puppet_worker.rs" [dependencies] -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } clap = { version = "4.0.9", features = ["derive"] } futures = "0.3.21" futures-timer = "3.0.2" diff --git a/parachain/test-parachains/undying/Cargo.toml b/parachain/test-parachains/undying/Cargo.toml index 848e48ec623b..e2a8448ebf15 100644 --- a/parachain/test-parachains/undying/Cargo.toml +++ b/parachain/test-parachains/undying/Cargo.toml @@ -8,7 +8,7 @@ edition.workspace = true [dependencies] parachain = { package = "polkadot-parachain", path = "../../", default-features = false, features = [ "wasm-api" ] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } tiny-keccak = { version = "2.0.2", features = ["keccak"] } dlmalloc = { version = "0.2.4", features = [ "global" ] } diff --git a/parachain/test-parachains/undying/collator/Cargo.toml b/parachain/test-parachains/undying/collator/Cargo.toml index 2b9d80401f5d..f63757a20958 100644 --- a/parachain/test-parachains/undying/collator/Cargo.toml +++ b/parachain/test-parachains/undying/collator/Cargo.toml @@ -14,7 +14,7 @@ name = "undying_collator_puppet_worker" path = "bin/puppet_worker.rs" [dependencies] -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } clap = { version = "4.0.9", features = ["derive"] } futures = "0.3.19" futures-timer = "3.0.2" diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index ae79adb8dcf7..ae2bf0573c18 100644 --- a/primitives/Cargo.toml +++ b/primitives/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] bitvec = { version = "1.0.0", default-features = false, features = ["alloc"] } hex-literal = "0.4.1" -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["bit-vec", "derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["bit-vec", "derive"] } scale-info = { version = "2.5.0", default-features = false, features = ["bit-vec", "derive", "serde"] } serde = { version = "1.0.163", default-features = false, features = ["derive", "alloc"] } diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml index 571711caddbe..b671a5026fd4 100644 --- a/runtime/common/Cargo.toml +++ b/runtime/common/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] impl-trait-for-tuples = "0.2.2" bitvec = { version = "1.0.0", default-features = false, features = ["alloc"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } log = { version = "0.4.17", default-features = false } rustc-hex = { version = "2.1.0", default-features = false } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } diff --git a/runtime/common/slot_range_helper/Cargo.toml b/runtime/common/slot_range_helper/Cargo.toml index e9af09a9a529..3012b64cbd0b 100644 --- a/runtime/common/slot_range_helper/Cargo.toml +++ b/runtime/common/slot_range_helper/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] paste = "1.0" enumn = "0.1.8" -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } diff --git a/runtime/kusama/Cargo.toml b/runtime/kusama/Cargo.toml index 75aebdc703e8..43faa286eacb 100644 --- a/runtime/kusama/Cargo.toml +++ b/runtime/kusama/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] bitvec = { version = "1.0.0", default-features = false, features = ["alloc"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive", "max-encoded-len"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive", "max-encoded-len"] } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } log = { version = "0.4.17", default-features = false } rustc-hex = { version = "2.1.0", default-features = false } diff --git a/runtime/metrics/Cargo.toml b/runtime/metrics/Cargo.toml index bd673635186a..ebabb6a832a9 100644 --- a/runtime/metrics/Cargo.toml +++ b/runtime/metrics/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false} sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -parity-scale-codec = { version = "3.4.0", default-features = false } +parity-scale-codec = { version = "3.6.1", default-features = false } primitives = { package = "polkadot-primitives", path = "../../primitives", default-features = false } frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } diff --git a/runtime/parachains/Cargo.toml b/runtime/parachains/Cargo.toml index 5c3aae86b39c..240eb48d6882 100644 --- a/runtime/parachains/Cargo.toml +++ b/runtime/parachains/Cargo.toml @@ -6,7 +6,7 @@ edition.workspace = true [dependencies] bitvec = { version = "1.0.0", default-features = false, features = ["alloc"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive", "max-encoded-len"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive", "max-encoded-len"] } log = { version = "0.4.17", default-features = false } rustc-hex = { version = "2.1.0", default-features = false } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } diff --git a/runtime/polkadot/Cargo.toml b/runtime/polkadot/Cargo.toml index e287ab3646ee..929ee9364dc2 100644 --- a/runtime/polkadot/Cargo.toml +++ b/runtime/polkadot/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] bitvec = { version = "1.0.0", default-features = false, features = ["alloc"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive", "max-encoded-len"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive", "max-encoded-len"] } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } log = { version = "0.4.17", default-features = false } rustc-hex = { version = "2.1.0", default-features = false } diff --git a/runtime/rococo/Cargo.toml b/runtime/rococo/Cargo.toml index 3b39756e3b40..b991e2793a7a 100644 --- a/runtime/rococo/Cargo.toml +++ b/runtime/rococo/Cargo.toml @@ -6,7 +6,7 @@ authors.workspace = true edition.workspace = true [dependencies] -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive", "max-encoded-len"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive", "max-encoded-len"] } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } log = { version = "0.4.17", default-features = false } serde = { version = "1.0.163", default-features = false } diff --git a/runtime/test-runtime/Cargo.toml b/runtime/test-runtime/Cargo.toml index 73bd3ab3688d..1de4d34fd0c0 100644 --- a/runtime/test-runtime/Cargo.toml +++ b/runtime/test-runtime/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] bitvec = { version = "1.0.0", default-features = false, features = ["alloc"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } log = { version = "0.4.17", default-features = false } rustc-hex = { version = "2.1.0", default-features = false } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } diff --git a/runtime/westend/Cargo.toml b/runtime/westend/Cargo.toml index bcc406a7c2a2..da47ca0e4b28 100644 --- a/runtime/westend/Cargo.toml +++ b/runtime/westend/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] bitvec = { version = "1.0.0", default-features = false, features = ["alloc"] } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive", "max-encoded-len"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive", "max-encoded-len"] } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } log = { version = "0.4.17", default-features = false } rustc-hex = { version = "2.1.0", default-features = false } diff --git a/statement-table/Cargo.toml b/statement-table/Cargo.toml index 8ac120c237df..04a309685b6b 100644 --- a/statement-table/Cargo.toml +++ b/statement-table/Cargo.toml @@ -5,6 +5,6 @@ authors.workspace = true edition.workspace = true [dependencies] -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } primitives = { package = "polkadot-primitives", path = "../primitives" } diff --git a/utils/staking-miner/Cargo.toml b/utils/staking-miner/Cargo.toml index 1f2d0c1c8acf..903cdf1235ed 100644 --- a/utils/staking-miner/Cargo.toml +++ b/utils/staking-miner/Cargo.toml @@ -9,7 +9,7 @@ authors.workspace = true edition.workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.4.0" } +codec = { package = "parity-scale-codec", version = "3.6.1" } clap = { version = "4.0.9", features = ["derive", "env"] } tracing-subscriber = { version = "0.3.11", features = ["env-filter"] } jsonrpsee = { version = "0.16.2", features = ["ws-client", "macros"] } diff --git a/xcm/Cargo.toml b/xcm/Cargo.toml index 1f51d176507a..ca407dc908fb 100644 --- a/xcm/Cargo.toml +++ b/xcm/Cargo.toml @@ -10,7 +10,7 @@ bounded-collections = { version = "0.1.8", default-features = false, features = derivative = { version = "2.2.0", default-features = false, features = [ "use_core" ] } impl-trait-for-tuples = "0.2.2" log = { version = "0.4.17", default-features = false } -parity-scale-codec = { version = "3.4.0", default-features = false, features = [ "derive", "max-encoded-len" ] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = [ "derive", "max-encoded-len" ] } scale-info = { version = "2.5.0", default-features = false, features = ["derive", "serde"] } sp-weights = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] } serde = { version = "1.0.163", default-features = false, features = ["alloc", "derive"] } diff --git a/xcm/pallet-xcm-benchmarks/Cargo.toml b/xcm/pallet-xcm-benchmarks/Cargo.toml index 34a5a8fa9c88..a74c8baac49a 100644 --- a/xcm/pallet-xcm-benchmarks/Cargo.toml +++ b/xcm/pallet-xcm-benchmarks/Cargo.toml @@ -8,7 +8,7 @@ version.workspace = true targets = ["x86_64-unknown-linux-gnu"] [dependencies] -codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } frame-support = { default-features = false, branch = "master", git = "https://github.com/paritytech/substrate" } frame-system = { default-features = false, branch = "master", git = "https://github.com/paritytech/substrate" } diff --git a/xcm/pallet-xcm/Cargo.toml b/xcm/pallet-xcm/Cargo.toml index e202ef158190..20bd5126861f 100644 --- a/xcm/pallet-xcm/Cargo.toml +++ b/xcm/pallet-xcm/Cargo.toml @@ -7,7 +7,7 @@ version.workspace = true [dependencies] bounded-collections = { version = "0.1.8", default-features = false } -codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false, features = ["derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } serde = { version = "1.0.163", optional = true, features = ["derive"] } log = { version = "0.4.17", default-features = false } diff --git a/xcm/xcm-builder/Cargo.toml b/xcm/xcm-builder/Cargo.toml index 465d338fd0a7..7dc7a7fc0aa2 100644 --- a/xcm/xcm-builder/Cargo.toml +++ b/xcm/xcm-builder/Cargo.toml @@ -7,7 +7,7 @@ version.workspace = true [dependencies] impl-trait-for-tuples = "0.2.1" -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } xcm = { path = "..", default-features = false } xcm-executor = { path = "../xcm-executor", default-features = false } diff --git a/xcm/xcm-executor/Cargo.toml b/xcm/xcm-executor/Cargo.toml index f91626eec359..41463bbfbded 100644 --- a/xcm/xcm-executor/Cargo.toml +++ b/xcm/xcm-executor/Cargo.toml @@ -8,7 +8,7 @@ version.workspace = true [dependencies] impl-trait-for-tuples = "0.2.2" environmental = { version = "1.1.4", default-features = false } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { version = "3.6.1", default-features = false, features = ["derive"] } xcm = { path = "..", default-features = false } sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } diff --git a/xcm/xcm-simulator/Cargo.toml b/xcm/xcm-simulator/Cargo.toml index 5a4589659103..bb23b8b092a4 100644 --- a/xcm/xcm-simulator/Cargo.toml +++ b/xcm/xcm-simulator/Cargo.toml @@ -6,7 +6,7 @@ authors.workspace = true edition.workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.4.0" } +codec = { package = "parity-scale-codec", version = "3.6.1" } paste = "1.0.7" frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/xcm/xcm-simulator/example/Cargo.toml b/xcm/xcm-simulator/example/Cargo.toml index 47b7c82243d3..0bf0654cc4ed 100644 --- a/xcm/xcm-simulator/example/Cargo.toml +++ b/xcm/xcm-simulator/example/Cargo.toml @@ -6,7 +6,7 @@ edition.workspace = true version.workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.4.0" } +codec = { package = "parity-scale-codec", version = "3.6.1" } scale-info = { version = "2.5.0", features = ["derive"] } log = { version = "0.4.14", default-features = false } diff --git a/xcm/xcm-simulator/fuzzer/Cargo.toml b/xcm/xcm-simulator/fuzzer/Cargo.toml index f8cdfa9424cf..1c36a1595ec0 100644 --- a/xcm/xcm-simulator/fuzzer/Cargo.toml +++ b/xcm/xcm-simulator/fuzzer/Cargo.toml @@ -6,7 +6,7 @@ authors.workspace = true edition.workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.4.0" } +codec = { package = "parity-scale-codec", version = "3.6.1" } honggfuzz = "0.5.55" arbitrary = "1.2.0" scale-info = { version = "2.5.0", features = ["derive"] } From eee4ea3cb228485b0551b4cdf2091a2ff21ac2cb Mon Sep 17 00:00:00 2001 From: Oleg Plakida <112385193+oleg-plakida@users.noreply.github.com> Date: Wed, 21 Jun 2023 14:01:38 +0100 Subject: [PATCH 31/56] Transition to VM weights (#7342) * ".git/.scripts/commands/bench-vm/bench-vm.sh" all westend * ".git/.scripts/commands/bench-vm/bench-vm.sh" all polkadot * ".git/.scripts/commands/bench-vm/bench-vm.sh" all kusama --------- Co-authored-by: command-bot <> --- .../constants/src/weights/block_weights.rs | 20 +- .../src/weights/extrinsic_weights.rs | 20 +- .../weights/frame_benchmarking_baseline.rs | 35 +- .../frame_election_provider_support.rs | 31 +- runtime/kusama/src/weights/frame_system.rs | 55 +-- .../kusama/src/weights/pallet_bags_list.rs | 19 +- .../src/weights/pallet_balances_balances.rs | 154 +++++++ ...allet_balances_nis_counterpart_balances.rs | 43 +- runtime/kusama/src/weights/pallet_bounties.rs | 59 +-- .../src/weights/pallet_child_bounties.rs | 41 +- .../src/weights/pallet_conviction_voting.rs | 43 +- .../pallet_election_provider_multi_phase.rs | 77 ++-- .../kusama/src/weights/pallet_fast_unstake.rs | 39 +- runtime/kusama/src/weights/pallet_identity.rs | 167 ++++---- .../kusama/src/weights/pallet_im_online.rs | 17 +- runtime/kusama/src/weights/pallet_indices.rs | 27 +- .../src/weights/pallet_message_queue.rs | 47 ++- runtime/kusama/src/weights/pallet_multisig.rs | 75 ++-- runtime/kusama/src/weights/pallet_nis.rs | 59 +-- .../src/weights/pallet_nomination_pools.rs | 107 ++--- runtime/kusama/src/weights/pallet_offences.rs | 222 ++++++++++ runtime/kusama/src/weights/pallet_preimage.rs | 67 +-- runtime/kusama/src/weights/pallet_proxy.rs | 99 ++--- .../src/weights/pallet_ranked_collective.rs | 47 ++- runtime/kusama/src/weights/pallet_recovery.rs | 186 +++++++++ .../pallet_referenda_fellowship_referenda.rs | 127 +++--- .../src/weights/pallet_referenda_referenda.rs | 127 +++--- .../kusama/src/weights/pallet_scheduler.rs | 79 ++-- runtime/kusama/src/weights/pallet_session.rs | 15 +- runtime/kusama/src/weights/pallet_society.rs | 129 +++--- runtime/kusama/src/weights/pallet_staking.rs | 195 ++++----- .../kusama/src/weights/pallet_timestamp.rs | 15 +- runtime/kusama/src/weights/pallet_treasury.rs | 39 +- runtime/kusama/src/weights/pallet_utility.rs | 39 +- runtime/kusama/src/weights/pallet_vesting.rs | 103 ++--- .../kusama/src/weights/pallet_whitelist.rs | 31 +- runtime/kusama/src/weights/pallet_xcm.rs | 107 ++--- .../weights/pallet_xcm_benchmarks_fungible.rs | 183 ++++++++ .../weights/pallet_xcm_benchmarks_generic.rs | 393 ++++++++++++++++++ .../src/weights/runtime_common_auctions.rs | 23 +- .../src/weights/runtime_common_claims.rs | 27 +- .../src/weights/runtime_common_crowdloan.rs | 51 +-- .../weights/runtime_common_paras_registrar.rs | 43 +- .../src/weights/runtime_common_slots.rs | 31 +- .../runtime_parachains_configuration.rs | 37 +- .../weights/runtime_parachains_disputes.rs | 11 +- .../runtime_parachains_disputes_slashing.rs | 27 +- .../src/weights/runtime_parachains_hrmp.rs | 67 +-- .../weights/runtime_parachains_inclusion.rs | 15 +- .../weights/runtime_parachains_initializer.rs | 15 +- .../src/weights/runtime_parachains_paras.rs | 75 ++-- .../runtime_parachains_paras_inherent.rs | 41 +- .../constants/src/weights/block_weights.rs | 20 +- .../src/weights/extrinsic_weights.rs | 20 +- .../weights/frame_benchmarking_baseline.rs | 35 +- .../frame_election_provider_support.rs | 31 +- runtime/polkadot/src/weights/frame_system.rs | 55 +-- .../polkadot/src/weights/pallet_bags_list.rs | 19 +- .../polkadot/src/weights/pallet_balances.rs | 43 +- .../polkadot/src/weights/pallet_bounties.rs | 59 +-- .../src/weights/pallet_child_bounties.rs | 43 +- .../src/weights/pallet_collective_council.rs | 129 +++--- .../pallet_collective_technical_committee.rs | 131 +++--- .../src/weights/pallet_conviction_voting.rs | 43 +- .../polkadot/src/weights/pallet_democracy.rs | 151 +++---- .../pallet_election_provider_multi_phase.rs | 75 ++-- .../src/weights/pallet_elections_phragmen.rs | 83 ++-- .../src/weights/pallet_fast_unstake.rs | 39 +- .../polkadot/src/weights/pallet_identity.rs | 167 ++++---- .../polkadot/src/weights/pallet_im_online.rs | 17 +- .../polkadot/src/weights/pallet_indices.rs | 27 +- .../polkadot/src/weights/pallet_membership.rs | 63 +-- .../src/weights/pallet_message_queue.rs | 47 ++- .../polkadot/src/weights/pallet_multisig.rs | 75 ++-- .../src/weights/pallet_nomination_pools.rs | 103 ++--- .../polkadot/src/weights/pallet_offences.rs | 222 ++++++++++ .../polkadot/src/weights/pallet_preimage.rs | 67 +-- runtime/polkadot/src/weights/pallet_proxy.rs | 95 +++-- .../polkadot/src/weights/pallet_referenda.rs | 127 +++--- .../polkadot/src/weights/pallet_scheduler.rs | 79 ++-- .../polkadot/src/weights/pallet_session.rs | 15 +- .../polkadot/src/weights/pallet_staking.rs | 195 ++++----- .../polkadot/src/weights/pallet_timestamp.rs | 15 +- runtime/polkadot/src/weights/pallet_tips.rs | 55 +-- .../polkadot/src/weights/pallet_treasury.rs | 39 +- .../polkadot/src/weights/pallet_utility.rs | 39 +- .../polkadot/src/weights/pallet_vesting.rs | 103 ++--- .../polkadot/src/weights/pallet_whitelist.rs | 29 +- runtime/polkadot/src/weights/pallet_xcm.rs | 67 +-- .../src/weights/runtime_common_auctions.rs | 23 +- .../src/weights/runtime_common_claims.rs | 27 +- .../src/weights/runtime_common_crowdloan.rs | 51 +-- .../weights/runtime_common_paras_registrar.rs | 43 +- .../src/weights/runtime_common_slots.rs | 31 +- .../runtime_parachains_configuration.rs | 34 +- .../weights/runtime_parachains_disputes.rs | 11 +- .../runtime_parachains_disputes_slashing.rs | 27 +- .../src/weights/runtime_parachains_hrmp.rs | 67 +-- .../weights/runtime_parachains_inclusion.rs | 15 +- .../weights/runtime_parachains_initializer.rs | 15 +- .../src/weights/runtime_parachains_paras.rs | 75 ++-- .../runtime_parachains_paras_inherent.rs | 41 +- .../constants/src/weights/block_weights.rs | 20 +- .../src/weights/extrinsic_weights.rs | 20 +- .../frame_election_provider_support.rs | 31 +- runtime/westend/src/weights/frame_system.rs | 55 +-- .../westend/src/weights/pallet_bags_list.rs | 19 +- .../westend/src/weights/pallet_balances.rs | 43 +- .../pallet_election_provider_multi_phase.rs | 73 ++-- .../src/weights/pallet_fast_unstake.rs | 39 +- .../westend/src/weights/pallet_identity.rs | 167 ++++---- .../westend/src/weights/pallet_im_online.rs | 3 + runtime/westend/src/weights/pallet_indices.rs | 27 +- .../src/weights/pallet_message_queue.rs | 47 ++- .../westend/src/weights/pallet_multisig.rs | 75 ++-- .../src/weights/pallet_nomination_pools.rs | 107 ++--- .../westend/src/weights/pallet_offences.rs | 222 ++++++++++ .../westend/src/weights/pallet_preimage.rs | 67 +-- runtime/westend/src/weights/pallet_proxy.rs | 103 ++--- .../westend/src/weights/pallet_recovery.rs | 186 +++++++++ .../westend/src/weights/pallet_scheduler.rs | 79 ++-- runtime/westend/src/weights/pallet_session.rs | 15 +- runtime/westend/src/weights/pallet_staking.rs | 193 ++++----- runtime/westend/src/weights/pallet_sudo.rs | 19 +- .../westend/src/weights/pallet_timestamp.rs | 15 +- runtime/westend/src/weights/pallet_utility.rs | 39 +- runtime/westend/src/weights/pallet_vesting.rs | 103 ++--- runtime/westend/src/weights/pallet_xcm.rs | 103 +++-- .../weights/pallet_xcm_benchmarks_fungible.rs | 183 ++++++++ .../weights/pallet_xcm_benchmarks_generic.rs | 393 ++++++++++++++++++ .../src/weights/runtime_common_auctions.rs | 23 +- .../src/weights/runtime_common_crowdloan.rs | 51 +-- .../weights/runtime_common_paras_registrar.rs | 43 +- .../src/weights/runtime_common_slots.rs | 31 +- .../runtime_parachains_configuration.rs | 34 +- .../weights/runtime_parachains_disputes.rs | 11 +- .../runtime_parachains_disputes_slashing.rs | 27 +- .../src/weights/runtime_parachains_hrmp.rs | 67 +-- .../weights/runtime_parachains_inclusion.rs | 15 +- .../weights/runtime_parachains_initializer.rs | 15 +- .../src/weights/runtime_parachains_paras.rs | 75 ++-- .../runtime_parachains_paras_inherent.rs | 41 +- 142 files changed, 6249 insertions(+), 3513 deletions(-) create mode 100644 runtime/kusama/src/weights/pallet_balances_balances.rs create mode 100644 runtime/kusama/src/weights/pallet_offences.rs create mode 100644 runtime/kusama/src/weights/pallet_recovery.rs create mode 100644 runtime/kusama/src/weights/pallet_xcm_benchmarks_fungible.rs create mode 100644 runtime/kusama/src/weights/pallet_xcm_benchmarks_generic.rs create mode 100644 runtime/polkadot/src/weights/pallet_offences.rs create mode 100644 runtime/westend/src/weights/pallet_offences.rs create mode 100644 runtime/westend/src/weights/pallet_recovery.rs create mode 100644 runtime/westend/src/weights/pallet_xcm_benchmarks_fungible.rs create mode 100644 runtime/westend/src/weights/pallet_xcm_benchmarks_generic.rs diff --git a/runtime/kusama/constants/src/weights/block_weights.rs b/runtime/kusama/constants/src/weights/block_weights.rs index bcb112d26e50..8423e1f810c5 100644 --- a/runtime/kusama/constants/src/weights/block_weights.rs +++ b/runtime/kusama/constants/src/weights/block_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26 (Y/M/D) -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-06-19 (Y/M/D) +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 10_334_352, 10_757_886 - /// Average: 10_454_065 - /// Median: 10_437_355 - /// Std-Dev: 81224.63 + /// Min, Max: 14_012_555, 15_267_251 + /// Average: 14_278_073 + /// Median: 14_244_231 + /// Std-Dev: 180701.37 /// /// Percentiles nanoseconds: - /// 99th: 10_652_096 - /// 95th: 10_590_847 - /// 75th: 10_499_221 + /// 99th: 14_916_615 + /// 95th: 14_622_262 + /// 75th: 14_317_299 pub const BlockExecutionWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(10_454_065), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(14_278_073), 0); } #[cfg(test)] diff --git a/runtime/kusama/constants/src/weights/extrinsic_weights.rs b/runtime/kusama/constants/src/weights/extrinsic_weights.rs index 8fbfc15c2588..6a2fb7dd206e 100644 --- a/runtime/kusama/constants/src/weights/extrinsic_weights.rs +++ b/runtime/kusama/constants/src/weights/extrinsic_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26 (Y/M/D) -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-06-19 (Y/M/D) +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 107_858, 110_151 - /// Average: 108_512 - /// Median: 108_463 - /// Std-Dev: 412.57 + /// Min, Max: 123_598, 126_451 + /// Average: 124_706 + /// Median: 124_675 + /// Std-Dev: 548.81 /// /// Percentiles nanoseconds: - /// 99th: 109_769 - /// 95th: 109_271 - /// 75th: 108_635 + /// 99th: 126_070 + /// 95th: 125_605 + /// 75th: 125_041 pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(108_512), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(124_706), 0); } #[cfg(test)] diff --git a/runtime/kusama/src/weights/frame_benchmarking_baseline.rs b/runtime/kusama/src/weights/frame_benchmarking_baseline.rs index e70a49eb1b62..e9f934f56564 100644 --- a/runtime/kusama/src/weights/frame_benchmarking_baseline.rs +++ b/runtime/kusama/src/weights/frame_benchmarking_baseline.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_benchmarking::baseline` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=frame_benchmarking::baseline // --extrinsic=* // --execution=wasm @@ -52,8 +55,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 176_000 picoseconds. - Weight::from_parts(227_529, 0) + // Minimum execution time: 173_000 picoseconds. + Weight::from_parts(235_396, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -61,8 +64,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 173_000 picoseconds. - Weight::from_parts(228_034, 0) + // Minimum execution time: 177_000 picoseconds. + Weight::from_parts(228_745, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -70,8 +73,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 181_000 picoseconds. - Weight::from_parts(231_715, 0) + // Minimum execution time: 178_000 picoseconds. + Weight::from_parts(233_063, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -79,16 +82,16 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 168_000 picoseconds. - Weight::from_parts(214_773, 0) + // Minimum execution time: 167_000 picoseconds. + Weight::from_parts(224_853, 0) .saturating_add(Weight::from_parts(0, 0)) } fn hashing() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 20_121_371_000 picoseconds. - Weight::from_parts(20_280_436_000, 0) + // Minimum execution time: 23_298_471_000 picoseconds. + Weight::from_parts(23_321_832_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 100]`. @@ -96,10 +99,10 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 197_000 picoseconds. - Weight::from_parts(1_266_068, 0) + // Minimum execution time: 228_000 picoseconds. + Weight::from_parts(8_448_493, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 32_183 - .saturating_add(Weight::from_parts(47_292_385, 0).saturating_mul(i.into())) + // Standard Error: 18_878 + .saturating_add(Weight::from_parts(55_611_437, 0).saturating_mul(i.into())) } } diff --git a/runtime/kusama/src/weights/frame_election_provider_support.rs b/runtime/kusama/src/weights/frame_election_provider_support.rs index fb20b77e7672..9cdbd67d5e1d 100644 --- a/runtime/kusama/src/weights/frame_election_provider_support.rs +++ b/runtime/kusama/src/weights/frame_election_provider_support.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_election_provider_support` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=frame_election_provider_support // --extrinsic=* // --execution=wasm @@ -54,13 +57,13 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_152_145_000 picoseconds. - Weight::from_parts(6_210_377_000, 0) + // Minimum execution time: 6_647_123_000 picoseconds. + Weight::from_parts(6_809_648_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 135_056 - .saturating_add(Weight::from_parts(5_727_859, 0).saturating_mul(v.into())) - // Standard Error: 13_807_644 - .saturating_add(Weight::from_parts(1_491_790_113, 0).saturating_mul(d.into())) + // Standard Error: 139_689 + .saturating_add(Weight::from_parts(6_171_199, 0).saturating_mul(v.into())) + // Standard Error: 14_281_333 + .saturating_add(Weight::from_parts(1_423_059_328, 0).saturating_mul(d.into())) } /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. @@ -69,12 +72,12 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_186_828_000 picoseconds. - Weight::from_parts(4_224_591_000, 0) + // Minimum execution time: 4_616_850_000 picoseconds. + Weight::from_parts(4_769_028_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 109_703 - .saturating_add(Weight::from_parts(4_436_722, 0).saturating_mul(v.into())) - // Standard Error: 11_215_655 - .saturating_add(Weight::from_parts(1_254_723_184, 0).saturating_mul(d.into())) + // Standard Error: 123_691 + .saturating_add(Weight::from_parts(4_925_892, 0).saturating_mul(v.into())) + // Standard Error: 12_645_798 + .saturating_add(Weight::from_parts(1_357_902_261, 0).saturating_mul(d.into())) } } diff --git a/runtime/kusama/src/weights/frame_system.rs b/runtime/kusama/src/weights/frame_system.rs index cfc0e98f9d25..927977e9be01 100644 --- a/runtime/kusama/src/weights/frame_system.rs +++ b/runtime/kusama/src/weights/frame_system.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=frame_system // --extrinsic=* // --execution=wasm @@ -52,22 +55,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_218_000 picoseconds. - Weight::from_parts(2_263_000, 0) + // Minimum execution time: 1_951_000 picoseconds. + Weight::from_parts(2_015_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(408, 0).saturating_mul(b.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(431, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_292_000 picoseconds. - Weight::from_parts(7_348_000, 0) + // Minimum execution time: 7_410_000 picoseconds. + Weight::from_parts(7_603_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(1_448, 0).saturating_mul(b.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_793, 0).saturating_mul(b.into())) } /// Storage: System Digest (r:1 w:1) /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) @@ -77,8 +80,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 3_852_000 picoseconds. - Weight::from_parts(4_082_000, 0) + // Minimum execution time: 3_736_000 picoseconds. + Weight::from_parts(3_922_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -91,8 +94,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 82_193_241_000 picoseconds. - Weight::from_parts(83_864_245_000, 0) + // Minimum execution time: 93_052_017_000 picoseconds. + Weight::from_parts(98_271_042_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -104,11 +107,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_132_000 picoseconds. - Weight::from_parts(2_241_000, 0) + // Minimum execution time: 2_100_000 picoseconds. + Weight::from_parts(2_131_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_918 - .saturating_add(Weight::from_parts(671_510, 0).saturating_mul(i.into())) + // Standard Error: 1_975 + .saturating_add(Weight::from_parts(744_852, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -118,11 +121,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_287_000 picoseconds. - Weight::from_parts(2_352_000, 0) + // Minimum execution time: 2_089_000 picoseconds. + Weight::from_parts(2_129_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 804 - .saturating_add(Weight::from_parts(488_896, 0).saturating_mul(i.into())) + // Standard Error: 1_093 + .saturating_add(Weight::from_parts(568_923, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -132,11 +135,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `105 + p * (69 ±0)` // Estimated: `118 + p * (70 ±0)` - // Minimum execution time: 4_068_000 picoseconds. - Weight::from_parts(4_178_000, 0) + // Minimum execution time: 3_913_000 picoseconds. + Weight::from_parts(4_056_000, 0) .saturating_add(Weight::from_parts(0, 118)) - // Standard Error: 1_057 - .saturating_add(Weight::from_parts(1_019_126, 0).saturating_mul(p.into())) + // Standard Error: 2_452 + .saturating_add(Weight::from_parts(1_281_244, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) diff --git a/runtime/kusama/src/weights/pallet_bags_list.rs b/runtime/kusama/src/weights/pallet_bags_list.rs index 3b927544a024..b138ae3003b7 100644 --- a/runtime/kusama/src/weights/pallet_bags_list.rs +++ b/runtime/kusama/src/weights/pallet_bags_list.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bags_list` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_bags_list // --extrinsic=* // --execution=wasm @@ -59,8 +62,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1654` // Estimated: `11506` - // Minimum execution time: 59_912_000 picoseconds. - Weight::from_parts(60_537_000, 0) + // Minimum execution time: 60_661_000 picoseconds. + Weight::from_parts(62_784_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -77,8 +80,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1548` // Estimated: `8877` - // Minimum execution time: 58_687_000 picoseconds. - Weight::from_parts(59_224_000, 0) + // Minimum execution time: 58_537_000 picoseconds. + Weight::from_parts(60_665_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -97,8 +100,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1857` // Estimated: `11506` - // Minimum execution time: 64_701_000 picoseconds. - Weight::from_parts(65_657_000, 0) + // Minimum execution time: 66_168_000 picoseconds. + Weight::from_parts(67_855_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(6)) diff --git a/runtime/kusama/src/weights/pallet_balances_balances.rs b/runtime/kusama/src/weights/pallet_balances_balances.rs new file mode 100644 index 000000000000..f65c5722d8be --- /dev/null +++ b/runtime/kusama/src/weights/pallet_balances_balances.rs @@ -0,0 +1,154 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_balances` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=kusama-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=pallet_balances +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/kusama/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_balances`. +pub struct WeightInfo(PhantomData); +impl pallet_balances::WeightInfo for WeightInfo { + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn transfer_allow_death() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 55_712_000 picoseconds. + Weight::from_parts(56_594_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn transfer_keep_alive() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 42_461_000 picoseconds. + Weight::from_parts(43_407_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn force_set_balance_creating() -> Weight { + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 15_909_000 picoseconds. + Weight::from_parts(16_376_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn force_set_balance_killing() -> Weight { + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 23_026_000 picoseconds. + Weight::from_parts(23_599_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 57_520_000 picoseconds. + Weight::from_parts(58_933_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn transfer_all() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 51_663_000 picoseconds. + Weight::from_parts(52_494_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn force_unreserve() -> Weight { + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 18_726_000 picoseconds. + Weight::from_parts(19_172_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:999 w:999) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `u` is `[1, 1000]`. + /// The range of component `u` is `[1, 1000]`. + fn upgrade_accounts(u: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + u * (135 ±0)` + // Estimated: `990 + u * (2603 ±0)` + // Minimum execution time: 18_041_000 picoseconds. + Weight::from_parts(18_377_000, 0) + .saturating_add(Weight::from_parts(0, 990)) + // Standard Error: 12_295 + .saturating_add(Weight::from_parts(16_146_961, 0).saturating_mul(u.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) + } +} diff --git a/runtime/kusama/src/weights/pallet_balances_nis_counterpart_balances.rs b/runtime/kusama/src/weights/pallet_balances_nis_counterpart_balances.rs index bd4d5edcc8f3..730d622e9abc 100644 --- a/runtime/kusama/src/weights/pallet_balances_nis_counterpart_balances.rs +++ b/runtime/kusama/src/weights/pallet_balances_nis_counterpart_balances.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_balances // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `6164` - // Minimum execution time: 54_130_000 picoseconds. - Weight::from_parts(54_899_000, 0) + // Minimum execution time: 56_458_000 picoseconds. + Weight::from_parts(57_881_000, 0) .saturating_add(Weight::from_parts(0, 6164)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -73,8 +76,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `6164` - // Minimum execution time: 41_648_000 picoseconds. - Weight::from_parts(42_104_000, 0) + // Minimum execution time: 43_014_000 picoseconds. + Weight::from_parts(44_098_000, 0) .saturating_add(Weight::from_parts(0, 6164)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -85,8 +88,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `217` // Estimated: `3577` - // Minimum execution time: 14_945_000 picoseconds. - Weight::from_parts(15_242_000, 0) + // Minimum execution time: 14_712_000 picoseconds. + Weight::from_parts(15_189_000, 0) .saturating_add(Weight::from_parts(0, 3577)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -101,8 +104,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `393` // Estimated: `3593` - // Minimum execution time: 25_268_000 picoseconds. - Weight::from_parts(25_731_000, 0) + // Minimum execution time: 25_131_000 picoseconds. + Weight::from_parts(25_796_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -117,8 +120,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `322` // Estimated: `6196` - // Minimum execution time: 55_768_000 picoseconds. - Weight::from_parts(57_107_000, 0) + // Minimum execution time: 58_350_000 picoseconds. + Weight::from_parts(59_738_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -133,8 +136,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `6164` - // Minimum execution time: 50_928_000 picoseconds. - Weight::from_parts(51_492_000, 0) + // Minimum execution time: 52_544_000 picoseconds. + Weight::from_parts(53_454_000, 0) .saturating_add(Weight::from_parts(0, 6164)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -147,8 +150,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `391` // Estimated: `3593` - // Minimum execution time: 20_353_000 picoseconds. - Weight::from_parts(20_903_000, 0) + // Minimum execution time: 20_615_000 picoseconds. + Weight::from_parts(21_215_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -163,11 +166,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (256 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 20_196_000 picoseconds. - Weight::from_parts(20_569_000, 0) + // Minimum execution time: 20_150_000 picoseconds. + Weight::from_parts(20_438_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 12_940 - .saturating_add(Weight::from_parts(15_636_044, 0).saturating_mul(u.into())) + // Standard Error: 26_020 + .saturating_add(Weight::from_parts(18_369_413, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) diff --git a/runtime/kusama/src/weights/pallet_bounties.rs b/runtime/kusama/src/weights/pallet_bounties.rs index a5ad238e75a7..07ddb5240e6a 100644 --- a/runtime/kusama/src/weights/pallet_bounties.rs +++ b/runtime/kusama/src/weights/pallet_bounties.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_bounties // --extrinsic=* // --execution=wasm @@ -60,11 +63,11 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `177` // Estimated: `3593` - // Minimum execution time: 28_067_000 picoseconds. - Weight::from_parts(29_387_679, 0) + // Minimum execution time: 28_620_000 picoseconds. + Weight::from_parts(30_319_265, 0) .saturating_add(Weight::from_parts(0, 3593)) - // Standard Error: 9 - .saturating_add(Weight::from_parts(743, 0).saturating_mul(d.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(715, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -76,8 +79,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3642` - // Minimum execution time: 10_705_000 picoseconds. - Weight::from_parts(10_867_000, 0) + // Minimum execution time: 10_397_000 picoseconds. + Weight::from_parts(10_777_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -88,8 +91,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `289` // Estimated: `3642` - // Minimum execution time: 9_664_000 picoseconds. - Weight::from_parts(9_881_000, 0) + // Minimum execution time: 9_065_000 picoseconds. + Weight::from_parts(9_477_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -102,8 +105,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `465` // Estimated: `3642` - // Minimum execution time: 39_552_000 picoseconds. - Weight::from_parts(39_988_000, 0) + // Minimum execution time: 42_565_000 picoseconds. + Weight::from_parts(43_956_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -116,8 +119,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `461` // Estimated: `3642` - // Minimum execution time: 26_337_000 picoseconds. - Weight::from_parts(26_835_000, 0) + // Minimum execution time: 27_461_000 picoseconds. + Weight::from_parts(28_307_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -130,8 +133,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `405` // Estimated: `3642` - // Minimum execution time: 18_485_000 picoseconds. - Weight::from_parts(18_997_000, 0) + // Minimum execution time: 19_269_000 picoseconds. + Weight::from_parts(19_884_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -148,8 +151,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `769` // Estimated: `8799` - // Minimum execution time: 109_641_000 picoseconds. - Weight::from_parts(110_672_000, 0) + // Minimum execution time: 120_844_000 picoseconds. + Weight::from_parts(125_606_000, 0) .saturating_add(Weight::from_parts(0, 8799)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) @@ -166,8 +169,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `449` // Estimated: `3642` - // Minimum execution time: 44_842_000 picoseconds. - Weight::from_parts(45_457_000, 0) + // Minimum execution time: 47_439_000 picoseconds. + Weight::from_parts(48_838_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -184,8 +187,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `685` // Estimated: `6196` - // Minimum execution time: 74_312_000 picoseconds. - Weight::from_parts(74_773_000, 0) + // Minimum execution time: 81_354_000 picoseconds. + Weight::from_parts(83_515_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -196,8 +199,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `325` // Estimated: `3642` - // Minimum execution time: 14_885_000 picoseconds. - Weight::from_parts(15_159_000, 0) + // Minimum execution time: 14_850_000 picoseconds. + Weight::from_parts(15_365_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -213,11 +216,11 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + b * (297 ±0)` // Estimated: `1887 + b * (5206 ±0)` - // Minimum execution time: 4_240_000 picoseconds. - Weight::from_parts(893_660, 0) + // Minimum execution time: 4_606_000 picoseconds. + Weight::from_parts(4_691_000, 0) .saturating_add(Weight::from_parts(0, 1887)) - // Standard Error: 30_177 - .saturating_add(Weight::from_parts(37_971_849, 0).saturating_mul(b.into())) + // Standard Error: 15_735 + .saturating_add(Weight::from_parts(44_695_416, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_child_bounties.rs b/runtime/kusama/src/weights/pallet_child_bounties.rs index 3e7394ecfa10..252060ba37b3 100644 --- a/runtime/kusama/src/weights/pallet_child_bounties.rs +++ b/runtime/kusama/src/weights/pallet_child_bounties.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_child_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_child_bounties // --extrinsic=* // --execution=wasm @@ -64,11 +67,11 @@ impl pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `13445` // Estimated: `42428` - // Minimum execution time: 110_399_000 picoseconds. - Weight::from_parts(113_418_000, 0) + // Minimum execution time: 151_077_000 picoseconds. + Weight::from_parts(165_283_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -85,8 +88,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `14166` // Estimated: `83866` - // Minimum execution time: 170_763_000 picoseconds. - Weight::from_parts(176_331_000, 0) + // Minimum execution time: 232_420_000 picoseconds. + Weight::from_parts(244_439_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) @@ -101,8 +104,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `13918` // Estimated: `83866` - // Minimum execution time: 145_996_000 picoseconds. - Weight::from_parts(148_599_000, 0) + // Minimum execution time: 205_017_000 picoseconds. + Weight::from_parts(216_594_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -115,8 +118,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `13004` // Estimated: `30706` - // Minimum execution time: 56_024_000 picoseconds. - Weight::from_parts(58_114_000, 0) + // Minimum execution time: 84_226_000 picoseconds. + Weight::from_parts(91_255_000, 0) .saturating_add(Weight::from_parts(0, 30706)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +141,11 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `29640 + r * (365 ±0)` // Estimated: `83866 + r * (3411 ±0)` - // Minimum execution time: 59_247_000 picoseconds. - Weight::from_parts(1_578_847_390, 0) + // Minimum execution time: 78_708_000 picoseconds. + Weight::from_parts(2_053_488_615, 0) .saturating_add(Weight::from_parts(0, 83866)) - // Standard Error: 137_017 - .saturating_add(Weight::from_parts(37_792_797, 0).saturating_mul(r.into())) + // Standard Error: 179_271 + .saturating_add(Weight::from_parts(47_806_482, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(6)) @@ -160,11 +163,11 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `29555 + r * (365 ±0)` // Estimated: `83866 + r * (3411 ±0)` - // Minimum execution time: 31_674_000 picoseconds. - Weight::from_parts(1_538_332_917, 0) + // Minimum execution time: 45_232_000 picoseconds. + Weight::from_parts(2_045_021_014, 0) .saturating_add(Weight::from_parts(0, 83866)) - // Standard Error: 135_691 - .saturating_add(Weight::from_parts(38_078_566, 0).saturating_mul(r.into())) + // Standard Error: 185_130 + .saturating_add(Weight::from_parts(47_896_011, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -183,8 +186,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `12218` // Estimated: `30706` - // Minimum execution time: 79_728_000 picoseconds. - Weight::from_parts(81_706_000, 0) + // Minimum execution time: 116_446_000 picoseconds. + Weight::from_parts(124_043_000, 0) .saturating_add(Weight::from_parts(0, 30706)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/kusama/src/weights/pallet_election_provider_multi_phase.rs b/runtime/kusama/src/weights/pallet_election_provider_multi_phase.rs index bbf2208f0d8a..d670d324aba0 100644 --- a/runtime/kusama/src/weights/pallet_election_provider_multi_phase.rs +++ b/runtime/kusama/src/weights/pallet_election_provider_multi_phase.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_election_provider_multi_phase` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_election_provider_multi_phase // --extrinsic=* // --execution=wasm @@ -67,8 +70,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `959` // Estimated: `3481` - // Minimum execution time: 20_288_000 picoseconds. - Weight::from_parts(20_855_000, 0) + // Minimum execution time: 21_207_000 picoseconds. + Weight::from_parts(22_059_000, 0) .saturating_add(Weight::from_parts(0, 3481)) .saturating_add(T::DbWeight::get().reads(8)) } @@ -80,8 +83,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `80` // Estimated: `1565` - // Minimum execution time: 12_440_000 picoseconds. - Weight::from_parts(12_779_000, 0) + // Minimum execution time: 11_472_000 picoseconds. + Weight::from_parts(11_772_000, 0) .saturating_add(Weight::from_parts(0, 1565)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -94,8 +97,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `80` // Estimated: `1565` - // Minimum execution time: 13_744_000 picoseconds. - Weight::from_parts(14_037_000, 0) + // Minimum execution time: 12_466_000 picoseconds. + Weight::from_parts(12_954_000, 0) .saturating_add(Weight::from_parts(0, 1565)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -108,8 +111,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 29_460_000 picoseconds. - Weight::from_parts(29_985_000, 0) + // Minimum execution time: 31_347_000 picoseconds. + Weight::from_parts(32_088_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +123,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 20_359_000 picoseconds. - Weight::from_parts(20_663_000, 0) + // Minimum execution time: 21_061_000 picoseconds. + Weight::from_parts(21_819_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -134,17 +137,15 @@ impl pallet_election_provider_multi_phase::WeightInfo f /// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. - fn create_snapshot_internal(v: u32, t: u32, ) -> Weight { + fn create_snapshot_internal(v: u32, _t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 657_591_000 picoseconds. - Weight::from_parts(23_731_735, 0) + // Minimum execution time: 796_200_000 picoseconds. + Weight::from_parts(848_268_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_147 - .saturating_add(Weight::from_parts(578_784, 0).saturating_mul(v.into())) - // Standard Error: 4_292 - .saturating_add(Weight::from_parts(93_667, 0).saturating_mul(t.into())) + // Standard Error: 6_942 + .saturating_add(Weight::from_parts(625_196, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) @@ -173,11 +174,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `832 + a * (1152 ±0) + d * (47 ±0)` // Estimated: `4282 + a * (1152 ±0) + d * (48 ±0)` - // Minimum execution time: 367_245_000 picoseconds. - Weight::from_parts(377_296_000, 0) + // Minimum execution time: 598_364_000 picoseconds. + Weight::from_parts(3_028_177, 0) .saturating_add(Weight::from_parts(0, 4282)) - // Standard Error: 8_804 - .saturating_add(Weight::from_parts(650_426, 0).saturating_mul(a.into())) + // Standard Error: 29_462 + .saturating_add(Weight::from_parts(1_292_240, 0).saturating_mul(a.into())) + // Standard Error: 44_163 + .saturating_add(Weight::from_parts(113_479, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(9)) .saturating_add(Weight::from_parts(0, 1152).saturating_mul(a.into())) @@ -199,8 +202,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `1170` // Estimated: `2655` - // Minimum execution time: 48_759_000 picoseconds. - Weight::from_parts(49_247_000, 0) + // Minimum execution time: 50_887_000 picoseconds. + Weight::from_parts(53_335_000, 0) .saturating_add(Weight::from_parts(0, 2655)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -227,13 +230,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `185 + t * (32 ±0) + v * (809 ±0)` // Estimated: `1670 + t * (32 ±0) + v * (809 ±0)` - // Minimum execution time: 7_057_662_000 picoseconds. - Weight::from_parts(7_137_164_000, 0) + // Minimum execution time: 9_246_269_000 picoseconds. + Weight::from_parts(9_558_256_000, 0) .saturating_add(Weight::from_parts(0, 1670)) - // Standard Error: 22_962 - .saturating_add(Weight::from_parts(101_767, 0).saturating_mul(v.into())) - // Standard Error: 68_046 - .saturating_add(Weight::from_parts(6_760_988, 0).saturating_mul(a.into())) + // Standard Error: 40_767 + .saturating_add(Weight::from_parts(476_361, 0).saturating_mul(v.into())) + // Standard Error: 120_810 + .saturating_add(Weight::from_parts(7_762_441, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) @@ -255,13 +258,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `160 + t * (32 ±0) + v * (809 ±0)` // Estimated: `1645 + t * (32 ±0) + v * (809 ±0)` - // Minimum execution time: 5_873_278_000 picoseconds. - Weight::from_parts(5_985_023_000, 0) + // Minimum execution time: 7_414_707_000 picoseconds. + Weight::from_parts(7_699_413_000, 0) .saturating_add(Weight::from_parts(0, 1645)) - // Standard Error: 20_958 - .saturating_add(Weight::from_parts(52_402, 0).saturating_mul(v.into())) - // Standard Error: 62_107 - .saturating_add(Weight::from_parts(5_452_671, 0).saturating_mul(a.into())) + // Standard Error: 29_542 + .saturating_add(Weight::from_parts(312_856, 0).saturating_mul(v.into())) + // Standard Error: 87_545 + .saturating_add(Weight::from_parts(5_993_730, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) .saturating_add(Weight::from_parts(0, 809).saturating_mul(v.into())) diff --git a/runtime/kusama/src/weights/pallet_fast_unstake.rs b/runtime/kusama/src/weights/pallet_fast_unstake.rs index 75cdbd037502..34fec8e784f7 100644 --- a/runtime/kusama/src/weights/pallet_fast_unstake.rs +++ b/runtime/kusama/src/weights/pallet_fast_unstake.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_fast_unstake` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_fast_unstake // --extrinsic=* // --execution=wasm @@ -82,11 +85,11 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1176 + b * (343 ±0)` // Estimated: `4676 + b * (3774 ±0)` - // Minimum execution time: 87_063_000 picoseconds. - Weight::from_parts(23_428_481, 0) + // Minimum execution time: 90_522_000 picoseconds. + Weight::from_parts(30_621_885, 0) .saturating_add(Weight::from_parts(0, 4676)) - // Standard Error: 48_812 - .saturating_add(Weight::from_parts(53_481_477, 0).saturating_mul(b.into())) + // Standard Error: 35_474 + .saturating_add(Weight::from_parts(58_149_619, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -113,13 +116,13 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1344 + b * (48 ±0) + v * (18487 ±0)` // Estimated: `4676 + b * (49 ±0) + v * (20963 ±0)` - // Minimum execution time: 1_650_957_000 picoseconds. - Weight::from_parts(1_681_546_000, 0) + // Minimum execution time: 1_633_429_000 picoseconds. + Weight::from_parts(1_647_031_000, 0) .saturating_add(Weight::from_parts(0, 4676)) - // Standard Error: 15_020_512 - .saturating_add(Weight::from_parts(482_553_559, 0).saturating_mul(v.into())) - // Standard Error: 60_098_778 - .saturating_add(Weight::from_parts(1_887_735_942, 0).saturating_mul(b.into())) + // Standard Error: 14_231_088 + .saturating_add(Weight::from_parts(454_485_752, 0).saturating_mul(v.into())) + // Standard Error: 56_940_204 + .saturating_add(Weight::from_parts(1_784_096_716, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -160,8 +163,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1826` // Estimated: `4764` - // Minimum execution time: 115_973_000 picoseconds. - Weight::from_parts(118_898_000, 0) + // Minimum execution time: 120_577_000 picoseconds. + Weight::from_parts(123_610_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(15)) .saturating_add(T::DbWeight::get().writes(9)) @@ -180,8 +183,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1084` // Estimated: `4676` - // Minimum execution time: 42_160_000 picoseconds. - Weight::from_parts(43_079_000, 0) + // Minimum execution time: 42_258_000 picoseconds. + Weight::from_parts(43_647_000, 0) .saturating_add(Weight::from_parts(0, 4676)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -192,8 +195,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_597_000 picoseconds. - Weight::from_parts(2_783_000, 0) + // Minimum execution time: 2_524_000 picoseconds. + Weight::from_parts(2_654_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/pallet_identity.rs b/runtime/kusama/src/weights/pallet_identity.rs index d1eff559ac81..f4952db592b4 100644 --- a/runtime/kusama/src/weights/pallet_identity.rs +++ b/runtime/kusama/src/weights/pallet_identity.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_identity` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_identity // --extrinsic=* // --execution=wasm @@ -54,11 +57,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 11_458_000 picoseconds. - Weight::from_parts(12_065_609, 0) + // Minimum execution time: 11_854_000 picoseconds. + Weight::from_parts(12_968_221, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_453 - .saturating_add(Weight::from_parts(115_213, 0).saturating_mul(r.into())) + // Standard Error: 5_813 + .saturating_add(Weight::from_parts(102_873, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -70,13 +73,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `442 + r * (5 ±0)` // Estimated: `11003` - // Minimum execution time: 31_655_000 picoseconds. - Weight::from_parts(31_089_696, 0) + // Minimum execution time: 32_800_000 picoseconds. + Weight::from_parts(28_706_621, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_815 - .saturating_add(Weight::from_parts(74_740, 0).saturating_mul(r.into())) - // Standard Error: 354 - .saturating_add(Weight::from_parts(450_715, 0).saturating_mul(x.into())) + // Standard Error: 12_190 + .saturating_add(Weight::from_parts(261_969, 0).saturating_mul(r.into())) + // Standard Error: 2_378 + .saturating_add(Weight::from_parts(500_617, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -91,11 +94,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `101` // Estimated: `11003 + s * (2589 ±0)` - // Minimum execution time: 9_219_000 picoseconds. - Weight::from_parts(23_941_709, 0) + // Minimum execution time: 8_815_000 picoseconds. + Weight::from_parts(21_946_444, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_938 - .saturating_add(Weight::from_parts(2_691_567, 0).saturating_mul(s.into())) + // Standard Error: 5_757 + .saturating_add(Weight::from_parts(3_241_262, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -113,11 +116,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `194 + p * (32 ±0)` // Estimated: `11003` - // Minimum execution time: 9_187_000 picoseconds. - Weight::from_parts(23_331_230, 0) + // Minimum execution time: 8_892_000 picoseconds. + Weight::from_parts(21_343_974, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_251 - .saturating_add(Weight::from_parts(1_097_123, 0).saturating_mul(p.into())) + // Standard Error: 5_109 + .saturating_add(Weight::from_parts(1_410_415, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) @@ -135,15 +138,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 54_059_000 picoseconds. - Weight::from_parts(33_831_123, 0) + // Minimum execution time: 60_331_000 picoseconds. + Weight::from_parts(29_115_598, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 5_874 - .saturating_add(Weight::from_parts(33_658, 0).saturating_mul(r.into())) - // Standard Error: 1_147 - .saturating_add(Weight::from_parts(1_086_575, 0).saturating_mul(s.into())) - // Standard Error: 1_147 - .saturating_add(Weight::from_parts(217_501, 0).saturating_mul(x.into())) + // Standard Error: 21_877 + .saturating_add(Weight::from_parts(216_644, 0).saturating_mul(r.into())) + // Standard Error: 4_272 + .saturating_add(Weight::from_parts(1_420_433, 0).saturating_mul(s.into())) + // Standard Error: 4_272 + .saturating_add(Weight::from_parts(311_436, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -158,13 +161,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `367 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 32_273_000 picoseconds. - Weight::from_parts(31_276_801, 0) + // Minimum execution time: 33_470_000 picoseconds. + Weight::from_parts(32_277_730, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_127 - .saturating_add(Weight::from_parts(103_894, 0).saturating_mul(r.into())) - // Standard Error: 415 - .saturating_add(Weight::from_parts(465_799, 0).saturating_mul(x.into())) + // Standard Error: 4_577 + .saturating_add(Weight::from_parts(121_062, 0).saturating_mul(r.into())) + // Standard Error: 893 + .saturating_add(Weight::from_parts(496_715, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -176,13 +179,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `398 + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 29_416_000 picoseconds. - Weight::from_parts(28_875_860, 0) + // Minimum execution time: 29_626_000 picoseconds. + Weight::from_parts(28_419_375, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_970 - .saturating_add(Weight::from_parts(71_149, 0).saturating_mul(r.into())) - // Standard Error: 384 - .saturating_add(Weight::from_parts(466_555, 0).saturating_mul(x.into())) + // Standard Error: 5_566 + .saturating_add(Weight::from_parts(143_337, 0).saturating_mul(r.into())) + // Standard Error: 1_086 + .saturating_add(Weight::from_parts(487_332, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +196,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_188_000 picoseconds. - Weight::from_parts(7_679_707, 0) + // Minimum execution time: 7_221_000 picoseconds. + Weight::from_parts(7_708_979, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_115 - .saturating_add(Weight::from_parts(100_745, 0).saturating_mul(r.into())) + // Standard Error: 1_516 + .saturating_add(Weight::from_parts(101_163, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +211,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_344_000 picoseconds. - Weight::from_parts(7_843_267, 0) + // Minimum execution time: 7_288_000 picoseconds. + Weight::from_parts(7_757_754, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_285 - .saturating_add(Weight::from_parts(96_032, 0).saturating_mul(r.into())) + // Standard Error: 1_365 + .saturating_add(Weight::from_parts(95_345, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -223,11 +226,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_298_000 picoseconds. - Weight::from_parts(7_699_423, 0) + // Minimum execution time: 7_204_000 picoseconds. + Weight::from_parts(7_679_617, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_021 - .saturating_add(Weight::from_parts(94_460, 0).saturating_mul(r.into())) + // Standard Error: 1_358 + .saturating_add(Weight::from_parts(100_186, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -241,13 +244,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `445 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 22_813_000 picoseconds. - Weight::from_parts(22_518_747, 0) + // Minimum execution time: 23_125_000 picoseconds. + Weight::from_parts(22_392_893, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_126 - .saturating_add(Weight::from_parts(91_405, 0).saturating_mul(r.into())) - // Standard Error: 393 - .saturating_add(Weight::from_parts(739_711, 0).saturating_mul(x.into())) + // Standard Error: 5_154 + .saturating_add(Weight::from_parts(121_813, 0).saturating_mul(r.into())) + // Standard Error: 953 + .saturating_add(Weight::from_parts(806_355, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -266,15 +269,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 68_514_000 picoseconds. - Weight::from_parts(49_427_829, 0) + // Minimum execution time: 76_226_000 picoseconds. + Weight::from_parts(35_456_327, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 4_883 - .saturating_add(Weight::from_parts(25_681, 0).saturating_mul(r.into())) - // Standard Error: 953 - .saturating_add(Weight::from_parts(1_094_735, 0).saturating_mul(s.into())) - // Standard Error: 953 - .saturating_add(Weight::from_parts(223_048, 0).saturating_mul(x.into())) + // Standard Error: 18_829 + .saturating_add(Weight::from_parts(615_512, 0).saturating_mul(r.into())) + // Standard Error: 3_677 + .saturating_add(Weight::from_parts(1_462_016, 0).saturating_mul(s.into())) + // Standard Error: 3_677 + .saturating_add(Weight::from_parts(328_050, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -290,11 +293,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `475 + s * (36 ±0)` // Estimated: `11003` - // Minimum execution time: 28_279_000 picoseconds. - Weight::from_parts(33_153_595, 0) + // Minimum execution time: 29_381_000 picoseconds. + Weight::from_parts(33_288_068, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_304 - .saturating_add(Weight::from_parts(62_546, 0).saturating_mul(s.into())) + // Standard Error: 1_624 + .saturating_add(Weight::from_parts(120_173, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -307,11 +310,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + s * (3 ±0)` // Estimated: `11003` - // Minimum execution time: 12_641_000 picoseconds. - Weight::from_parts(14_600_226, 0) + // Minimum execution time: 12_418_000 picoseconds. + Weight::from_parts(13_798_930, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 525 - .saturating_add(Weight::from_parts(17_307, 0).saturating_mul(s.into())) + // Standard Error: 856 + .saturating_add(Weight::from_parts(43_306, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -326,11 +329,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `638 + s * (35 ±0)` // Estimated: `11003` - // Minimum execution time: 31_796_000 picoseconds. - Weight::from_parts(34_973_700, 0) + // Minimum execution time: 33_242_000 picoseconds. + Weight::from_parts(36_552_253, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 934 - .saturating_add(Weight::from_parts(52_308, 0).saturating_mul(s.into())) + // Standard Error: 2_385 + .saturating_add(Weight::from_parts(98_359, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -345,11 +348,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704 + s * (37 ±0)` // Estimated: `6723` - // Minimum execution time: 23_740_000 picoseconds. - Weight::from_parts(26_342_512, 0) + // Minimum execution time: 24_017_000 picoseconds. + Weight::from_parts(27_149_414, 0) .saturating_add(Weight::from_parts(0, 6723)) - // Standard Error: 961 - .saturating_add(Weight::from_parts(55_063, 0).saturating_mul(s.into())) + // Standard Error: 1_769 + .saturating_add(Weight::from_parts(79_539, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/kusama/src/weights/pallet_im_online.rs b/runtime/kusama/src/weights/pallet_im_online.rs index 69f34a760ce5..3bb3d65c4a6b 100644 --- a/runtime/kusama/src/weights/pallet_im_online.rs +++ b/runtime/kusama/src/weights/pallet_im_online.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_im_online` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `build-host`, CPU: `AMD EPYC 7601 32-Core Processor` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_im_online // --extrinsic=* // --execution=wasm @@ -54,7 +57,7 @@ impl pallet_im_online::WeightInfo for WeightInfo { /// Storage: ImOnline Keys (r:1 w:0) /// Proof: ImOnline Keys (max_values: Some(1), max_size: Some(320002), added: 320497, mode: MaxEncodedLen) /// Storage: ImOnline ReceivedHeartbeats (r:1 w:1) - /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(1028), added: 3503, mode: MaxEncodedLen) + /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(25), added: 2500, mode: MaxEncodedLen) /// Storage: ImOnline AuthoredBlocks (r:1 w:0) /// Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) /// The range of component `k` is `[1, 1000]`. @@ -62,11 +65,11 @@ impl pallet_im_online::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361 + k * (32 ±0)` // Estimated: `321487 + k * (1761 ±0)` - // Minimum execution time: 122_811_000 picoseconds. - Weight::from_parts(134_566_517, 0) + // Minimum execution time: 82_038_000 picoseconds. + Weight::from_parts(100_726_620, 0) .saturating_add(Weight::from_parts(0, 321487)) - // Standard Error: 639 - .saturating_add(Weight::from_parts(42_176, 0).saturating_mul(k.into())) + // Standard Error: 600 + .saturating_add(Weight::from_parts(30_346, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into())) diff --git a/runtime/kusama/src/weights/pallet_indices.rs b/runtime/kusama/src/weights/pallet_indices.rs index 5bc26544cc79..b26562975cf8 100644 --- a/runtime/kusama/src/weights/pallet_indices.rs +++ b/runtime/kusama/src/weights/pallet_indices.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_indices` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_indices // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3534` - // Minimum execution time: 23_844_000 picoseconds. - Weight::from_parts(24_387_000, 0) + // Minimum execution time: 25_322_000 picoseconds. + Weight::from_parts(26_124_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -67,8 +70,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 34_861_000 picoseconds. - Weight::from_parts(35_285_000, 0) + // Minimum execution time: 36_790_000 picoseconds. + Weight::from_parts(37_218_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +82,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 25_146_000 picoseconds. - Weight::from_parts(25_439_000, 0) + // Minimum execution time: 25_968_000 picoseconds. + Weight::from_parts(26_450_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +96,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 27_330_000 picoseconds. - Weight::from_parts(27_869_000, 0) + // Minimum execution time: 27_734_000 picoseconds. + Weight::from_parts(28_523_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -105,8 +108,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 27_352_000 picoseconds. - Weight::from_parts(27_819_000, 0) + // Minimum execution time: 27_980_000 picoseconds. + Weight::from_parts(28_448_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_message_queue.rs b/runtime/kusama/src/weights/pallet_message_queue.rs index 6fbbba512bbf..f149eef194fb 100644 --- a/runtime/kusama/src/weights/pallet_message_queue.rs +++ b/runtime/kusama/src/weights/pallet_message_queue.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_message_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_message_queue // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `248` // Estimated: `6050` - // Minimum execution time: 11_016_000 picoseconds. - Weight::from_parts(11_315_000, 0) + // Minimum execution time: 11_603_000 picoseconds. + Weight::from_parts(11_953_000, 0) .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -69,8 +72,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `248` // Estimated: `6050` - // Minimum execution time: 10_338_000 picoseconds. - Weight::from_parts(10_638_000, 0) + // Minimum execution time: 10_668_000 picoseconds. + Weight::from_parts(11_105_000, 0) .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -81,8 +84,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `42` // Estimated: `3520` - // Minimum execution time: 4_022_000 picoseconds. - Weight::from_parts(4_230_000, 0) + // Minimum execution time: 4_158_000 picoseconds. + Weight::from_parts(4_379_000, 0) .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +96,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `115` // Estimated: `69051` - // Minimum execution time: 5_556_000 picoseconds. - Weight::from_parts(5_664_000, 0) + // Minimum execution time: 5_873_000 picoseconds. + Weight::from_parts(6_002_000, 0) .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -105,8 +108,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `115` // Estimated: `69051` - // Minimum execution time: 5_798_000 picoseconds. - Weight::from_parts(6_034_000, 0) + // Minimum execution time: 6_110_000 picoseconds. + Weight::from_parts(6_385_000, 0) .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -115,8 +118,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 74_017_000 picoseconds. - Weight::from_parts(74_464_000, 0) + // Minimum execution time: 92_242_000 picoseconds. + Weight::from_parts(92_796_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: MessageQueue ServiceHead (r:1 w:1) @@ -127,8 +130,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `149` // Estimated: `3520` - // Minimum execution time: 6_188_000 picoseconds. - Weight::from_parts(6_348_000, 0) + // Minimum execution time: 6_386_000 picoseconds. + Weight::from_parts(6_629_000, 0) .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -145,8 +148,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `65714` // Estimated: `69051` - // Minimum execution time: 59_987_000 picoseconds. - Weight::from_parts(60_597_000, 0) + // Minimum execution time: 59_294_000 picoseconds. + Weight::from_parts(60_608_000, 0) .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) @@ -163,8 +166,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `65714` // Estimated: `69051` - // Minimum execution time: 74_760_000 picoseconds. - Weight::from_parts(75_474_000, 0) + // Minimum execution time: 75_134_000 picoseconds. + Weight::from_parts(76_729_000, 0) .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) @@ -181,8 +184,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `65714` // Estimated: `69051` - // Minimum execution time: 109_391_000 picoseconds. - Weight::from_parts(110_098_000, 0) + // Minimum execution time: 117_320_000 picoseconds. + Weight::from_parts(119_640_000, 0) .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtime/kusama/src/weights/pallet_multisig.rs b/runtime/kusama/src/weights/pallet_multisig.rs index e3bdb46720e9..108189c6ca1d 100644 --- a/runtime/kusama/src/weights/pallet_multisig.rs +++ b/runtime/kusama/src/weights/pallet_multisig.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_multisig // --extrinsic=* // --execution=wasm @@ -52,11 +55,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_815_000 picoseconds. - Weight::from_parts(11_323_012, 0) + // Minimum execution time: 13_299_000 picoseconds. + Weight::from_parts(14_368_762, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(532, 0).saturating_mul(z.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(557, 0).saturating_mul(z.into())) } /// Storage: Multisig Multisigs (r:1 w:1) /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) @@ -66,13 +69,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `301 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 39_448_000 picoseconds. - Weight::from_parts(34_192_255, 0) + // Minimum execution time: 45_147_000 picoseconds. + Weight::from_parts(34_161_081, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 372 - .saturating_add(Weight::from_parts(60_856, 0).saturating_mul(s.into())) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_238, 0).saturating_mul(z.into())) + // Standard Error: 1_022 + .saturating_add(Weight::from_parts(127_000, 0).saturating_mul(s.into())) + // Standard Error: 10 + .saturating_add(Weight::from_parts(1_553, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -84,13 +87,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `320` // Estimated: `6811` - // Minimum execution time: 25_763_000 picoseconds. - Weight::from_parts(20_985_864, 0) + // Minimum execution time: 29_650_000 picoseconds. + Weight::from_parts(20_868_716, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 256 - .saturating_add(Weight::from_parts(55_031, 0).saturating_mul(s.into())) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_217, 0).saturating_mul(z.into())) + // Standard Error: 1_323 + .saturating_add(Weight::from_parts(112_380, 0).saturating_mul(s.into())) + // Standard Error: 12 + .saturating_add(Weight::from_parts(1_440, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -104,13 +107,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `426 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 44_531_000 picoseconds. - Weight::from_parts(37_704_187, 0) + // Minimum execution time: 50_649_000 picoseconds. + Weight::from_parts(34_736_758, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_283 - .saturating_add(Weight::from_parts(74_432, 0).saturating_mul(s.into())) - // Standard Error: 12 - .saturating_add(Weight::from_parts(1_286, 0).saturating_mul(z.into())) + // Standard Error: 1_738 + .saturating_add(Weight::from_parts(182_282, 0).saturating_mul(s.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_824, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -121,11 +124,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `301 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 31_644_000 picoseconds. - Weight::from_parts(32_950_543, 0) + // Minimum execution time: 32_162_000 picoseconds. + Weight::from_parts(33_215_652, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 550 - .saturating_add(Weight::from_parts(63_342, 0).saturating_mul(s.into())) + // Standard Error: 1_093 + .saturating_add(Weight::from_parts(133_715, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -136,11 +139,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `320` // Estimated: `6811` - // Minimum execution time: 18_561_000 picoseconds. - Weight::from_parts(19_413_827, 0) + // Minimum execution time: 18_073_000 picoseconds. + Weight::from_parts(19_038_713, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 405 - .saturating_add(Weight::from_parts(56_806, 0).saturating_mul(s.into())) + // Standard Error: 681 + .saturating_add(Weight::from_parts(111_279, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -151,11 +154,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `492 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 33_073_000 picoseconds. - Weight::from_parts(34_146_589, 0) + // Minimum execution time: 33_867_000 picoseconds. + Weight::from_parts(34_896_470, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 554 - .saturating_add(Weight::from_parts(63_171, 0).saturating_mul(s.into())) + // Standard Error: 1_002 + .saturating_add(Weight::from_parts(116_935, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/pallet_nis.rs b/runtime/kusama/src/weights/pallet_nis.rs index ace6f272294a..2dc8b261eb57 100644 --- a/runtime/kusama/src/weights/pallet_nis.rs +++ b/runtime/kusama/src/weights/pallet_nis.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_nis` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_nis // --extrinsic=* // --execution=wasm @@ -58,11 +61,11 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `10210 + l * (48 ±0)` // Estimated: `51487` - // Minimum execution time: 45_619_000 picoseconds. - Weight::from_parts(47_677_093, 0) + // Minimum execution time: 49_318_000 picoseconds. + Weight::from_parts(47_894_330, 0) .saturating_add(Weight::from_parts(0, 51487)) - // Standard Error: 703 - .saturating_add(Weight::from_parts(72_096, 0).saturating_mul(l.into())) + // Standard Error: 1_184 + .saturating_add(Weight::from_parts(110_633, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -76,8 +79,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `58212` // Estimated: `51487` - // Minimum execution time: 128_405_000 picoseconds. - Weight::from_parts(130_564_000, 0) + // Minimum execution time: 162_699_000 picoseconds. + Weight::from_parts(171_243_000, 0) .saturating_add(Weight::from_parts(0, 51487)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -93,11 +96,11 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `10210 + l * (48 ±0)` // Estimated: `51487` - // Minimum execution time: 49_230_000 picoseconds. - Weight::from_parts(44_102_358, 0) + // Minimum execution time: 51_827_000 picoseconds. + Weight::from_parts(44_282_033, 0) .saturating_add(Weight::from_parts(0, 51487)) - // Standard Error: 714 - .saturating_add(Weight::from_parts(89_380, 0).saturating_mul(l.into())) + // Standard Error: 1_145 + .saturating_add(Weight::from_parts(121_058, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -111,8 +114,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `225` // Estimated: `3593` - // Minimum execution time: 37_644_000 picoseconds. - Weight::from_parts(38_134_000, 0) + // Minimum execution time: 39_765_000 picoseconds. + Weight::from_parts(40_525_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -133,8 +136,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `470` // Estimated: `3593` - // Minimum execution time: 72_806_000 picoseconds. - Weight::from_parts(73_682_000, 0) + // Minimum execution time: 75_890_000 picoseconds. + Weight::from_parts(77_519_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(6)) @@ -157,8 +160,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `660` // Estimated: `3593` - // Minimum execution time: 86_241_000 picoseconds. - Weight::from_parts(86_894_000, 0) + // Minimum execution time: 92_622_000 picoseconds. + Weight::from_parts(94_127_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) @@ -177,8 +180,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `388` // Estimated: `3593` - // Minimum execution time: 48_003_000 picoseconds. - Weight::from_parts(48_450_000, 0) + // Minimum execution time: 49_336_000 picoseconds. + Weight::from_parts(50_333_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -199,8 +202,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `604` // Estimated: `3593` - // Minimum execution time: 91_023_000 picoseconds. - Weight::from_parts(91_858_000, 0) + // Minimum execution time: 98_220_000 picoseconds. + Weight::from_parts(100_348_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -217,8 +220,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `11487` - // Minimum execution time: 23_405_000 picoseconds. - Weight::from_parts(23_795_000, 0) + // Minimum execution time: 33_893_000 picoseconds. + Weight::from_parts(37_495_000, 0) .saturating_add(Weight::from_parts(0, 11487)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -229,8 +232,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `76` // Estimated: `51487` - // Minimum execution time: 4_073_000 picoseconds. - Weight::from_parts(4_178_000, 0) + // Minimum execution time: 4_173_000 picoseconds. + Weight::from_parts(4_322_000, 0) .saturating_add(Weight::from_parts(0, 51487)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -241,8 +244,8 @@ impl pallet_nis::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_911_000 picoseconds. - Weight::from_parts(7_035_000, 0) + // Minimum execution time: 6_747_000 picoseconds. + Weight::from_parts(6_952_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/pallet_nomination_pools.rs b/runtime/kusama/src/weights/pallet_nomination_pools.rs index 8905301053cb..65bb76860b30 100644 --- a/runtime/kusama/src/weights/pallet_nomination_pools.rs +++ b/runtime/kusama/src/weights/pallet_nomination_pools.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_nomination_pools` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_nomination_pools // --extrinsic=* // --execution=wasm @@ -81,8 +84,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3229` // Estimated: `8877` - // Minimum execution time: 179_299_000 picoseconds. - Weight::from_parts(180_182_000, 0) + // Minimum execution time: 198_640_000 picoseconds. + Weight::from_parts(205_158_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(19)) .saturating_add(T::DbWeight::get().writes(12)) @@ -113,8 +116,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3239` // Estimated: `8877` - // Minimum execution time: 175_633_000 picoseconds. - Weight::from_parts(177_175_000, 0) + // Minimum execution time: 191_638_000 picoseconds. + Weight::from_parts(200_580_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(12)) @@ -147,8 +150,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3304` // Estimated: `8877` - // Minimum execution time: 210_213_000 picoseconds. - Weight::from_parts(211_547_000, 0) + // Minimum execution time: 232_697_000 picoseconds. + Weight::from_parts(238_503_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(17)) .saturating_add(T::DbWeight::get().writes(13)) @@ -169,8 +172,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1171` // Estimated: `4182` - // Minimum execution time: 76_246_000 picoseconds. - Weight::from_parts(77_173_000, 0) + // Minimum execution time: 79_834_000 picoseconds. + Weight::from_parts(81_793_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -211,8 +214,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3506` // Estimated: `8877` - // Minimum execution time: 160_774_000 picoseconds. - Weight::from_parts(161_718_000, 0) + // Minimum execution time: 175_155_000 picoseconds. + Weight::from_parts(179_781_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(20)) .saturating_add(T::DbWeight::get().writes(13)) @@ -234,11 +237,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1608` // Estimated: `4764` - // Minimum execution time: 60_544_000 picoseconds. - Weight::from_parts(61_517_925, 0) + // Minimum execution time: 63_367_000 picoseconds. + Weight::from_parts(65_562_125, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 662 - .saturating_add(Weight::from_parts(11_522, 0).saturating_mul(s.into())) + // Standard Error: 1_722 + .saturating_add(Weight::from_parts(47_690, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -269,11 +272,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `2036` // Estimated: `4764` - // Minimum execution time: 124_321_000 picoseconds. - Weight::from_parts(126_047_261, 0) + // Minimum execution time: 132_738_000 picoseconds. + Weight::from_parts(136_968_458, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 675 - .saturating_add(Weight::from_parts(18_085, 0).saturating_mul(s.into())) + // Standard Error: 2_891 + .saturating_add(Weight::from_parts(75_317, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) } @@ -322,13 +325,15 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo /// Storage: NominationPools ClaimPermissions (r:0 w:1) /// Proof: NominationPools ClaimPermissions (max_values: None, max_size: Some(41), added: 2516, mode: MaxEncodedLen) /// The range of component `s` is `[0, 100]`. - fn withdraw_unbonded_kill(_s: u32, ) -> Weight { + fn withdraw_unbonded_kill(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `2394` // Estimated: `6196` - // Minimum execution time: 207_405_000 picoseconds. - Weight::from_parts(210_508_610, 0) + // Minimum execution time: 223_915_000 picoseconds. + Weight::from_parts(229_729_576, 0) .saturating_add(Weight::from_parts(0, 6196)) + // Standard Error: 5_670 + .saturating_add(Weight::from_parts(38_117, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(21)) .saturating_add(T::DbWeight::get().writes(18)) } @@ -380,8 +385,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1222` // Estimated: `6196` - // Minimum execution time: 180_998_000 picoseconds. - Weight::from_parts(182_778_000, 0) + // Minimum execution time: 193_054_000 picoseconds. + Weight::from_parts(200_888_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(22)) .saturating_add(T::DbWeight::get().writes(15)) @@ -415,11 +420,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1774` // Estimated: `4556 + n * (2520 ±0)` - // Minimum execution time: 65_637_000 picoseconds. - Weight::from_parts(65_594_581, 0) + // Minimum execution time: 67_269_000 picoseconds. + Weight::from_parts(68_792_502, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 2_621 - .saturating_add(Weight::from_parts(1_330_797, 0).saturating_mul(n.into())) + // Standard Error: 6_020 + .saturating_add(Weight::from_parts(1_407_587, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -435,8 +440,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1363` // Estimated: `4556` - // Minimum execution time: 35_081_000 picoseconds. - Weight::from_parts(35_804_000, 0) + // Minimum execution time: 35_349_000 picoseconds. + Weight::from_parts(36_869_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -452,11 +457,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `531` // Estimated: `3735` - // Minimum execution time: 14_029_000 picoseconds. - Weight::from_parts(14_521_820, 0) + // Minimum execution time: 13_767_000 picoseconds. + Weight::from_parts(14_685_113, 0) .saturating_add(Weight::from_parts(0, 3735)) - // Standard Error: 54 - .saturating_add(Weight::from_parts(1_359, 0).saturating_mul(n.into())) + // Standard Error: 303 + .saturating_add(Weight::from_parts(1_304, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -476,8 +481,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_155_000 picoseconds. - Weight::from_parts(6_374_000, 0) + // Minimum execution time: 6_044_000 picoseconds. + Weight::from_parts(6_296_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -487,8 +492,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `531` // Estimated: `3685` - // Minimum execution time: 19_310_000 picoseconds. - Weight::from_parts(19_580_000, 0) + // Minimum execution time: 19_642_000 picoseconds. + Weight::from_parts(20_205_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -515,8 +520,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1937` // Estimated: `4556` - // Minimum execution time: 63_944_000 picoseconds. - Weight::from_parts(64_767_000, 0) + // Minimum execution time: 65_923_000 picoseconds. + Weight::from_parts(68_711_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -533,8 +538,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `770` // Estimated: `3685` - // Minimum execution time: 31_633_000 picoseconds. - Weight::from_parts(32_235_000, 0) + // Minimum execution time: 32_824_000 picoseconds. + Weight::from_parts(33_654_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -545,8 +550,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `571` // Estimated: `3685` - // Minimum execution time: 18_403_000 picoseconds. - Weight::from_parts(18_632_000, 0) + // Minimum execution time: 18_577_000 picoseconds. + Weight::from_parts(19_317_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -557,8 +562,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `531` // Estimated: `3685` - // Minimum execution time: 19_310_000 picoseconds. - Weight::from_parts(19_620_000, 0) + // Minimum execution time: 19_228_000 picoseconds. + Weight::from_parts(20_070_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -571,8 +576,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `542` // Estimated: `4182` - // Minimum execution time: 14_143_000 picoseconds. - Weight::from_parts(14_582_000, 0) + // Minimum execution time: 14_300_000 picoseconds. + Weight::from_parts(14_678_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -589,8 +594,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `968` // Estimated: `3685` - // Minimum execution time: 62_619_000 picoseconds. - Weight::from_parts(63_484_000, 0) + // Minimum execution time: 65_367_000 picoseconds. + Weight::from_parts(67_417_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/runtime/kusama/src/weights/pallet_offences.rs b/runtime/kusama/src/weights/pallet_offences.rs new file mode 100644 index 000000000000..12a045d66761 --- /dev/null +++ b/runtime/kusama/src/weights/pallet_offences.rs @@ -0,0 +1,222 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_offences` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=kusama-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=pallet_offences +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/kusama/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_offences`. +pub struct WeightInfo(PhantomData); +impl pallet_offences::WeightInfo for WeightInfo { + /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) + /// Proof Skipped: Offences ConcurrentReportsIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Offences Reports (r:100 w:100) + /// Proof Skipped: Offences Reports (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SlashRewardFraction (r:1 w:0) + /// Proof: Staking SlashRewardFraction (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking ActiveEra (r:1 w:0) + /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// Storage: Staking ErasStartSessionIndex (r:1 w:0) + /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: Staking Invulnerables (r:1 w:0) + /// Proof Skipped: Staking Invulnerables (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking ValidatorSlashInEra (r:100 w:100) + /// Proof: Staking ValidatorSlashInEra (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + /// Storage: Staking SlashingSpans (r:2500 w:2500) + /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SpanSlash (r:2500 w:2500) + /// Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// Storage: Staking Validators (r:100 w:100) + /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// Storage: Staking CounterForValidators (r:1 w:1) + /// Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: VoterList ListNodes (r:299 w:299) + /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + /// Storage: VoterList ListBags (r:1 w:1) + /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: VoterList CounterForListNodes (r:1 w:1) + /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking Nominators (r:100 w:0) + /// Proof: Staking Nominators (max_values: None, max_size: Some(814), added: 3289, mode: MaxEncodedLen) + /// Storage: Staking OffendingValidators (r:1 w:1) + /// Proof Skipped: Staking OffendingValidators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Session Validators (r:1 w:0) + /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking NominatorSlashInEra (r:2400 w:2400) + /// Proof: Staking NominatorSlashInEra (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Staking UnappliedSlashes (r:1 w:1) + /// Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) + /// The range of component `r` is `[1, 100]`. + /// The range of component `o` is `[2, 100]`. + /// The range of component `n` is `[0, 24]`. + fn report_offence_im_online(_r: u32, o: u32, n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + n * (2863 ±0) + o * (1226 ±0)` + // Estimated: `128540 + n * (156186 ±29) + o * (38402 ±7)` + // Minimum execution time: 695_466_000 picoseconds. + Weight::from_parts(705_203_000, 0) + .saturating_add(Weight::from_parts(0, 128540)) + // Standard Error: 4_753_384 + .saturating_add(Weight::from_parts(476_947_930, 0).saturating_mul(o.into())) + // Standard Error: 19_364_925 + .saturating_add(Weight::from_parts(573_438_006, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(172)) + .saturating_add(T::DbWeight::get().reads((51_u64).saturating_mul(o.into()))) + .saturating_add(T::DbWeight::get().reads((185_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(165)) + .saturating_add(T::DbWeight::get().writes((50_u64).saturating_mul(o.into()))) + .saturating_add(T::DbWeight::get().writes((185_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 156186).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 38402).saturating_mul(o.into())) + } + /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) + /// Proof Skipped: Offences ConcurrentReportsIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Offences Reports (r:1 w:1) + /// Proof Skipped: Offences Reports (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SlashRewardFraction (r:1 w:0) + /// Proof: Staking SlashRewardFraction (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking ActiveEra (r:1 w:0) + /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// Storage: Staking ErasStartSessionIndex (r:1 w:0) + /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: Staking Invulnerables (r:1 w:0) + /// Proof Skipped: Staking Invulnerables (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking ValidatorSlashInEra (r:1 w:1) + /// Proof: Staking ValidatorSlashInEra (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + /// Storage: Staking SlashingSpans (r:25 w:25) + /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SpanSlash (r:25 w:25) + /// Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// Storage: Staking Validators (r:1 w:1) + /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// Storage: Staking CounterForValidators (r:1 w:1) + /// Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: VoterList ListNodes (r:2 w:2) + /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + /// Storage: VoterList ListBags (r:1 w:1) + /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: VoterList CounterForListNodes (r:1 w:1) + /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking Nominators (r:1 w:0) + /// Proof: Staking Nominators (max_values: None, max_size: Some(814), added: 3289, mode: MaxEncodedLen) + /// Storage: Staking OffendingValidators (r:1 w:1) + /// Proof Skipped: Staking OffendingValidators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Session Validators (r:1 w:0) + /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking NominatorSlashInEra (r:24 w:24) + /// Proof: Staking NominatorSlashInEra (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Staking UnappliedSlashes (r:1 w:1) + /// Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) + /// The range of component `n` is `[0, 24]`. + fn report_offence_grandpa(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1831 + n * (48 ±0)` + // Estimated: `5686 + n * (2551 ±0)` + // Minimum execution time: 92_093_000 picoseconds. + Weight::from_parts(104_573_662, 0) + .saturating_add(Weight::from_parts(0, 5686)) + // Standard Error: 22_045 + .saturating_add(Weight::from_parts(10_859_187, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(19)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(13)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2551).saturating_mul(n.into())) + } + /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) + /// Proof Skipped: Offences ConcurrentReportsIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Offences Reports (r:1 w:1) + /// Proof Skipped: Offences Reports (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SlashRewardFraction (r:1 w:0) + /// Proof: Staking SlashRewardFraction (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking ActiveEra (r:1 w:0) + /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// Storage: Staking ErasStartSessionIndex (r:1 w:0) + /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: Staking Invulnerables (r:1 w:0) + /// Proof Skipped: Staking Invulnerables (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking ValidatorSlashInEra (r:1 w:1) + /// Proof: Staking ValidatorSlashInEra (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + /// Storage: Staking SlashingSpans (r:25 w:25) + /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SpanSlash (r:25 w:25) + /// Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// Storage: Staking Validators (r:1 w:1) + /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// Storage: Staking CounterForValidators (r:1 w:1) + /// Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: VoterList ListNodes (r:2 w:2) + /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + /// Storage: VoterList ListBags (r:1 w:1) + /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: VoterList CounterForListNodes (r:1 w:1) + /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking Nominators (r:1 w:0) + /// Proof: Staking Nominators (max_values: None, max_size: Some(814), added: 3289, mode: MaxEncodedLen) + /// Storage: Staking OffendingValidators (r:1 w:1) + /// Proof Skipped: Staking OffendingValidators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Session Validators (r:1 w:0) + /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking NominatorSlashInEra (r:24 w:24) + /// Proof: Staking NominatorSlashInEra (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Staking UnappliedSlashes (r:1 w:1) + /// Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) + /// The range of component `n` is `[0, 24]`. + fn report_offence_babe(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1831 + n * (48 ±0)` + // Estimated: `5686 + n * (2551 ±0)` + // Minimum execution time: 92_097_000 picoseconds. + Weight::from_parts(104_496_920, 0) + .saturating_add(Weight::from_parts(0, 5686)) + // Standard Error: 25_384 + .saturating_add(Weight::from_parts(10_982_115, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(19)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(13)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2551).saturating_mul(n.into())) + } +} diff --git a/runtime/kusama/src/weights/pallet_preimage.rs b/runtime/kusama/src/weights/pallet_preimage.rs index b01f3d066b30..8c04eb2cd4ea 100644 --- a/runtime/kusama/src/weights/pallet_preimage.rs +++ b/runtime/kusama/src/weights/pallet_preimage.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_preimage // --extrinsic=* // --execution=wasm @@ -56,11 +59,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `143` // Estimated: `3556` - // Minimum execution time: 28_919_000 picoseconds. - Weight::from_parts(29_073_000, 0) + // Minimum execution time: 29_231_000 picoseconds. + Weight::from_parts(29_712_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_011, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(2_593, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -73,11 +76,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 15_818_000 picoseconds. - Weight::from_parts(16_138_000, 0) + // Minimum execution time: 15_753_000 picoseconds. + Weight::from_parts(15_927_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 3 - .saturating_add(Weight::from_parts(2_034, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(2_585, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -90,11 +93,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 15_184_000 picoseconds. - Weight::from_parts(15_346_000, 0) + // Minimum execution time: 15_147_000 picoseconds. + Weight::from_parts(15_364_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_010, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(2_553, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -106,8 +109,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `289` // Estimated: `3556` - // Minimum execution time: 35_552_000 picoseconds. - Weight::from_parts(36_559_000, 0) + // Minimum execution time: 52_018_000 picoseconds. + Weight::from_parts(57_037_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +123,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 20_145_000 picoseconds. - Weight::from_parts(21_041_000, 0) + // Minimum execution time: 32_110_000 picoseconds. + Weight::from_parts(35_435_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -132,8 +135,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `188` // Estimated: `3556` - // Minimum execution time: 18_949_000 picoseconds. - Weight::from_parts(19_616_000, 0) + // Minimum execution time: 28_380_000 picoseconds. + Weight::from_parts(31_692_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -144,8 +147,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 11_082_000 picoseconds. - Weight::from_parts(11_853_000, 0) + // Minimum execution time: 18_218_000 picoseconds. + Weight::from_parts(20_005_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -156,8 +159,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `3556` - // Minimum execution time: 12_687_000 picoseconds. - Weight::from_parts(13_259_000, 0) + // Minimum execution time: 24_225_000 picoseconds. + Weight::from_parts(27_623_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -168,8 +171,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 8_156_000 picoseconds. - Weight::from_parts(8_324_000, 0) + // Minimum execution time: 11_614_000 picoseconds. + Weight::from_parts(12_372_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -182,8 +185,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 18_817_000 picoseconds. - Weight::from_parts(19_833_000, 0) + // Minimum execution time: 30_214_000 picoseconds. + Weight::from_parts(32_682_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -194,8 +197,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 7_904_000 picoseconds. - Weight::from_parts(8_182_000, 0) + // Minimum execution time: 10_659_000 picoseconds. + Weight::from_parts(12_066_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -206,8 +209,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 7_852_000 picoseconds. - Weight::from_parts(8_131_000, 0) + // Minimum execution time: 10_770_000 picoseconds. + Weight::from_parts(11_745_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_proxy.rs b/runtime/kusama/src/weights/pallet_proxy.rs index d6e5e787c816..d30547d7d01c 100644 --- a/runtime/kusama/src/weights/pallet_proxy.rs +++ b/runtime/kusama/src/weights/pallet_proxy.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_proxy // --extrinsic=* // --execution=wasm @@ -54,11 +57,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 15_194_000 picoseconds. - Weight::from_parts(15_635_162, 0) + // Minimum execution time: 15_098_000 picoseconds. + Weight::from_parts(15_489_847, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 811 - .saturating_add(Weight::from_parts(34_526, 0).saturating_mul(p.into())) + // Standard Error: 2_263 + .saturating_add(Weight::from_parts(63_093, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: Proxy Proxies (r:1 w:0) @@ -73,13 +76,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `554 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 39_539_000 picoseconds. - Weight::from_parts(40_092_644, 0) + // Minimum execution time: 39_651_000 picoseconds. + Weight::from_parts(40_543_916, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 3_904 - .saturating_add(Weight::from_parts(111_177, 0).saturating_mul(a.into())) - // Standard Error: 4_034 - .saturating_add(Weight::from_parts(17_820, 0).saturating_mul(p.into())) + // Standard Error: 4_675 + .saturating_add(Weight::from_parts(155_883, 0).saturating_mul(a.into())) + // Standard Error: 4_830 + .saturating_add(Weight::from_parts(30_475, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -89,15 +92,17 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. - fn remove_announcement(a: u32, _p: u32, ) -> Weight { + fn remove_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 23_974_000 picoseconds. - Weight::from_parts(24_764_838, 0) + // Minimum execution time: 24_096_000 picoseconds. + Weight::from_parts(25_043_982, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_035 - .saturating_add(Weight::from_parts(136_125, 0).saturating_mul(a.into())) + // Standard Error: 2_018 + .saturating_add(Weight::from_parts(161_362, 0).saturating_mul(a.into())) + // Standard Error: 2_085 + .saturating_add(Weight::from_parts(5_869, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -111,11 +116,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 23_933_000 picoseconds. - Weight::from_parts(24_943_251, 0) + // Minimum execution time: 24_544_000 picoseconds. + Weight::from_parts(25_464_879, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_470 - .saturating_add(Weight::from_parts(128_376, 0).saturating_mul(a.into())) + // Standard Error: 1_840 + .saturating_add(Weight::from_parts(157_224, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -131,13 +136,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `486 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 33_086_000 picoseconds. - Weight::from_parts(36_122_064, 0) + // Minimum execution time: 33_869_000 picoseconds. + Weight::from_parts(36_671_590, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 4_107 - .saturating_add(Weight::from_parts(126_429, 0).saturating_mul(a.into())) - // Standard Error: 4_244 - .saturating_add(Weight::from_parts(12_064, 0).saturating_mul(p.into())) + // Standard Error: 4_508 + .saturating_add(Weight::from_parts(170_494, 0).saturating_mul(a.into())) + // Standard Error: 4_657 + .saturating_add(Weight::from_parts(29_881, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -148,11 +153,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_717_000 picoseconds. - Weight::from_parts(26_380_401, 0) + // Minimum execution time: 25_378_000 picoseconds. + Weight::from_parts(26_232_312, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 10_225 - .saturating_add(Weight::from_parts(9_712, 0).saturating_mul(p.into())) + // Standard Error: 1_337 + .saturating_add(Weight::from_parts(62_294, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -163,11 +168,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_710_000 picoseconds. - Weight::from_parts(25_507_296, 0) + // Minimum execution time: 25_306_000 picoseconds. + Weight::from_parts(26_702_472, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_345 - .saturating_add(Weight::from_parts(54_696, 0).saturating_mul(p.into())) + // Standard Error: 1_760 + .saturating_add(Weight::from_parts(52_636, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -178,11 +183,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 21_539_000 picoseconds. - Weight::from_parts(22_177_046, 0) + // Minimum execution time: 22_177_000 picoseconds. + Weight::from_parts(22_859_150, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 934 - .saturating_add(Weight::from_parts(34_366, 0).saturating_mul(p.into())) + // Standard Error: 2_374 + .saturating_add(Weight::from_parts(51_085, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +198,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `4706` - // Minimum execution time: 26_395_000 picoseconds. - Weight::from_parts(27_087_213, 0) + // Minimum execution time: 27_010_000 picoseconds. + Weight::from_parts(27_910_735, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 918 - .saturating_add(Weight::from_parts(9_476, 0).saturating_mul(p.into())) + // Standard Error: 1_618 + .saturating_add(Weight::from_parts(10_864, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +213,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `264 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 22_553_000 picoseconds. - Weight::from_parts(23_438_596, 0) + // Minimum execution time: 23_039_000 picoseconds. + Weight::from_parts(23_903_487, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 843 - .saturating_add(Weight::from_parts(27_814, 0).saturating_mul(p.into())) + // Standard Error: 2_434 + .saturating_add(Weight::from_parts(45_603, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/pallet_ranked_collective.rs b/runtime/kusama/src/weights/pallet_ranked_collective.rs index fd9c6cd57feb..21f3f651f2e3 100644 --- a/runtime/kusama/src/weights/pallet_ranked_collective.rs +++ b/runtime/kusama/src/weights/pallet_ranked_collective.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_ranked_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_ranked_collective // --extrinsic=* // --execution=wasm @@ -59,8 +62,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `76` // Estimated: `3507` - // Minimum execution time: 16_509_000 picoseconds. - Weight::from_parts(16_792_000, 0) + // Minimum execution time: 16_103_000 picoseconds. + Weight::from_parts(16_743_000, 0) .saturating_add(Weight::from_parts(0, 3507)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) @@ -78,11 +81,11 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `550 + r * (281 ±0)` // Estimated: `3519 + r * (2529 ±0)` - // Minimum execution time: 26_935_000 picoseconds. - Weight::from_parts(31_357_299, 0) + // Minimum execution time: 27_225_000 picoseconds. + Weight::from_parts(31_460_102, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 26_610 - .saturating_add(Weight::from_parts(11_691_193, 0).saturating_mul(r.into())) + // Standard Error: 23_877 + .saturating_add(Weight::from_parts(12_798_296, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -102,11 +105,11 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `248 + r * (17 ±0)` // Estimated: `3507` - // Minimum execution time: 19_062_000 picoseconds. - Weight::from_parts(19_681_798, 0) + // Minimum execution time: 18_964_000 picoseconds. + Weight::from_parts(19_901_082, 0) .saturating_add(Weight::from_parts(0, 3507)) - // Standard Error: 3_608 - .saturating_add(Weight::from_parts(310_079, 0).saturating_mul(r.into())) + // Standard Error: 4_560 + .saturating_add(Weight::from_parts(326_770, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -123,11 +126,11 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `566 + r * (72 ±0)` // Estimated: `3519` - // Minimum execution time: 26_905_000 picoseconds. - Weight::from_parts(29_496_059, 0) + // Minimum execution time: 27_310_000 picoseconds. + Weight::from_parts(30_386_652, 0) .saturating_add(Weight::from_parts(0, 3519)) - // Standard Error: 32_930 - .saturating_add(Weight::from_parts(658_420, 0).saturating_mul(r.into())) + // Standard Error: 33_721 + .saturating_add(Weight::from_parts(667_118, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -143,8 +146,8 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `638` // Estimated: `83866` - // Minimum execution time: 49_632_000 picoseconds. - Weight::from_parts(50_336_000, 0) + // Minimum execution time: 50_373_000 picoseconds. + Weight::from_parts(51_359_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -160,11 +163,11 @@ impl pallet_ranked_collective::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `434 + n * (50 ±0)` // Estimated: `4365 + n * (2540 ±0)` - // Minimum execution time: 14_464_000 picoseconds. - Weight::from_parts(17_768_623, 0) + // Minimum execution time: 14_237_000 picoseconds. + Weight::from_parts(16_304_970, 0) .saturating_add(Weight::from_parts(0, 4365)) - // Standard Error: 1_241 - .saturating_add(Weight::from_parts(927_475, 0).saturating_mul(n.into())) + // Standard Error: 2_460 + .saturating_add(Weight::from_parts(1_185_342, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) diff --git a/runtime/kusama/src/weights/pallet_recovery.rs b/runtime/kusama/src/weights/pallet_recovery.rs new file mode 100644 index 000000000000..6f2fdfa334f6 --- /dev/null +++ b/runtime/kusama/src/weights/pallet_recovery.rs @@ -0,0 +1,186 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_recovery` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=kusama-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=pallet_recovery +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/kusama/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_recovery`. +pub struct WeightInfo(PhantomData); +impl pallet_recovery::WeightInfo for WeightInfo { + /// Storage: Recovery Proxy (r:1 w:0) + /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + fn as_recovered() -> Weight { + // Proof Size summary in bytes: + // Measured: `182` + // Estimated: `3545` + // Minimum execution time: 9_088_000 picoseconds. + Weight::from_parts(9_345_000, 0) + .saturating_add(Weight::from_parts(0, 3545)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: Recovery Proxy (r:0 w:1) + /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + fn set_recovered() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_810_000 picoseconds. + Weight::from_parts(9_033_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery Recoverable (r:1 w:1) + /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 9]`. + fn create_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `3816` + // Minimum execution time: 25_748_000 picoseconds. + Weight::from_parts(26_517_291, 0) + .saturating_add(Weight::from_parts(0, 3816)) + // Standard Error: 4_572 + .saturating_add(Weight::from_parts(103_064, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery Recoverable (r:1 w:0) + /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// Storage: Recovery ActiveRecoveries (r:1 w:1) + /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + fn initiate_recovery() -> Weight { + // Proof Size summary in bytes: + // Measured: `173` + // Estimated: `3854` + // Minimum execution time: 28_593_000 picoseconds. + Weight::from_parts(29_386_000, 0) + .saturating_add(Weight::from_parts(0, 3854)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery Recoverable (r:1 w:0) + /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// Storage: Recovery ActiveRecoveries (r:1 w:1) + /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 9]`. + fn vouch_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `261 + n * (64 ±0)` + // Estimated: `3854` + // Minimum execution time: 18_621_000 picoseconds. + Weight::from_parts(19_241_387, 0) + .saturating_add(Weight::from_parts(0, 3854)) + // Standard Error: 5_538 + .saturating_add(Weight::from_parts(263_385, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery Recoverable (r:1 w:0) + /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// Storage: Recovery ActiveRecoveries (r:1 w:0) + /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// Storage: Recovery Proxy (r:1 w:1) + /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 9]`. + fn claim_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `293 + n * (64 ±0)` + // Estimated: `3854` + // Minimum execution time: 22_870_000 picoseconds. + Weight::from_parts(23_779_105, 0) + .saturating_add(Weight::from_parts(0, 3854)) + // Standard Error: 4_668 + .saturating_add(Weight::from_parts(149_312, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery ActiveRecoveries (r:1 w:1) + /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 9]`. + fn close_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `414 + n * (32 ±0)` + // Estimated: `3854` + // Minimum execution time: 34_111_000 picoseconds. + Weight::from_parts(35_420_404, 0) + .saturating_add(Weight::from_parts(0, 3854)) + // Standard Error: 5_909 + .saturating_add(Weight::from_parts(46_955, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Recovery ActiveRecoveries (r:1 w:0) + /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// Storage: Recovery Recoverable (r:1 w:1) + /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 9]`. + fn remove_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `170 + n * (32 ±0)` + // Estimated: `3854` + // Minimum execution time: 30_441_000 picoseconds. + Weight::from_parts(31_553_945, 0) + .saturating_add(Weight::from_parts(0, 3854)) + // Standard Error: 7_463 + .saturating_add(Weight::from_parts(119_815, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery Proxy (r:1 w:1) + /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + fn cancel_recovered() -> Weight { + // Proof Size summary in bytes: + // Measured: `182` + // Estimated: `3545` + // Minimum execution time: 10_937_000 picoseconds. + Weight::from_parts(11_333_000, 0) + .saturating_add(Weight::from_parts(0, 3545)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/runtime/kusama/src/weights/pallet_referenda_fellowship_referenda.rs b/runtime/kusama/src/weights/pallet_referenda_fellowship_referenda.rs index 61a3f230ef29..a4ac06679116 100644 --- a/runtime/kusama/src/weights/pallet_referenda_fellowship_referenda.rs +++ b/runtime/kusama/src/weights/pallet_referenda_fellowship_referenda.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_referenda // --extrinsic=* // --execution=wasm @@ -59,8 +62,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `327` // Estimated: `42428` - // Minimum execution time: 28_816_000 picoseconds. - Weight::from_parts(29_442_000, 0) + // Minimum execution time: 28_969_000 picoseconds. + Weight::from_parts(30_902_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -73,8 +76,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `404` // Estimated: `83866` - // Minimum execution time: 51_772_000 picoseconds. - Weight::from_parts(52_245_000, 0) + // Minimum execution time: 53_500_000 picoseconds. + Weight::from_parts(54_447_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -91,8 +94,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2042` // Estimated: `42428` - // Minimum execution time: 82_832_000 picoseconds. - Weight::from_parts(85_457_000, 0) + // Minimum execution time: 114_321_000 picoseconds. + Weight::from_parts(122_607_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -109,8 +112,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2083` // Estimated: `42428` - // Minimum execution time: 82_836_000 picoseconds. - Weight::from_parts(84_870_000, 0) + // Minimum execution time: 113_476_000 picoseconds. + Weight::from_parts(120_078_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -127,8 +130,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `774` // Estimated: `83866` - // Minimum execution time: 124_692_000 picoseconds. - Weight::from_parts(129_866_000, 0) + // Minimum execution time: 194_798_000 picoseconds. + Weight::from_parts(208_378_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -145,8 +148,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `639` // Estimated: `83866` - // Minimum execution time: 67_096_000 picoseconds. - Weight::from_parts(67_756_000, 0) + // Minimum execution time: 69_502_000 picoseconds. + Weight::from_parts(71_500_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -157,8 +160,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `317` // Estimated: `4365` - // Minimum execution time: 29_622_000 picoseconds. - Weight::from_parts(30_030_000, 0) + // Minimum execution time: 30_561_000 picoseconds. + Weight::from_parts(31_427_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -169,8 +172,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `167` // Estimated: `4365` - // Minimum execution time: 14_586_000 picoseconds. - Weight::from_parts(14_831_000, 0) + // Minimum execution time: 14_535_000 picoseconds. + Weight::from_parts(14_999_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -183,8 +186,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `349` // Estimated: `83866` - // Minimum execution time: 36_883_000 picoseconds. - Weight::from_parts(37_417_000, 0) + // Minimum execution time: 38_532_000 picoseconds. + Weight::from_parts(39_361_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -199,8 +202,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `450` // Estimated: `83866` - // Minimum execution time: 73_928_000 picoseconds. - Weight::from_parts(74_780_000, 0) + // Minimum execution time: 78_956_000 picoseconds. + Weight::from_parts(80_594_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -213,8 +216,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `140` // Estimated: `4277` - // Minimum execution time: 9_654_000 picoseconds. - Weight::from_parts(10_012_000, 0) + // Minimum execution time: 9_450_000 picoseconds. + Weight::from_parts(9_881_000, 0) .saturating_add(Weight::from_parts(0, 4277)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -231,8 +234,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2376` // Estimated: `42428` - // Minimum execution time: 70_626_000 picoseconds. - Weight::from_parts(72_572_000, 0) + // Minimum execution time: 98_126_000 picoseconds. + Weight::from_parts(102_511_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -249,8 +252,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2362` // Estimated: `42428` - // Minimum execution time: 71_530_000 picoseconds. - Weight::from_parts(74_001_000, 0) + // Minimum execution time: 99_398_000 picoseconds. + Weight::from_parts(104_045_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -263,8 +266,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1807` // Estimated: `4365` - // Minimum execution time: 30_582_000 picoseconds. - Weight::from_parts(31_829_000, 0) + // Minimum execution time: 43_734_000 picoseconds. + Weight::from_parts(46_962_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -277,8 +280,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1774` // Estimated: `4365` - // Minimum execution time: 30_773_000 picoseconds. - Weight::from_parts(31_461_000, 0) + // Minimum execution time: 42_863_000 picoseconds. + Weight::from_parts(46_241_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -293,8 +296,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1790` // Estimated: `4365` - // Minimum execution time: 40_566_000 picoseconds. - Weight::from_parts(42_024_000, 0) + // Minimum execution time: 57_511_000 picoseconds. + Weight::from_parts(64_027_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -309,8 +312,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1831` // Estimated: `4365` - // Minimum execution time: 40_030_000 picoseconds. - Weight::from_parts(41_444_000, 0) + // Minimum execution time: 56_726_000 picoseconds. + Weight::from_parts(61_962_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -323,8 +326,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `301` // Estimated: `42428` - // Minimum execution time: 25_069_000 picoseconds. - Weight::from_parts(25_301_000, 0) + // Minimum execution time: 24_870_000 picoseconds. + Weight::from_parts(25_837_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -337,8 +340,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `349` // Estimated: `42428` - // Minimum execution time: 25_200_000 picoseconds. - Weight::from_parts(25_606_000, 0) + // Minimum execution time: 25_297_000 picoseconds. + Weight::from_parts(26_086_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -349,8 +352,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `208` // Estimated: `4365` - // Minimum execution time: 16_687_000 picoseconds. - Weight::from_parts(16_973_000, 0) + // Minimum execution time: 16_776_000 picoseconds. + Weight::from_parts(17_396_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -367,8 +370,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `584` // Estimated: `42428` - // Minimum execution time: 36_977_000 picoseconds. - Weight::from_parts(37_432_000, 0) + // Minimum execution time: 37_780_000 picoseconds. + Weight::from_parts(38_626_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -385,8 +388,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `719` // Estimated: `42428` - // Minimum execution time: 61_625_000 picoseconds. - Weight::from_parts(63_564_000, 0) + // Minimum execution time: 85_265_000 picoseconds. + Weight::from_parts(89_986_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -401,8 +404,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `770` // Estimated: `42428` - // Minimum execution time: 85_412_000 picoseconds. - Weight::from_parts(88_475_000, 0) + // Minimum execution time: 143_283_000 picoseconds. + Weight::from_parts(158_540_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -417,8 +420,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `755` // Estimated: `42428` - // Minimum execution time: 85_495_000 picoseconds. - Weight::from_parts(94_732_000, 0) + // Minimum execution time: 143_736_000 picoseconds. + Weight::from_parts(162_755_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -433,8 +436,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `770` // Estimated: `42428` - // Minimum execution time: 82_931_000 picoseconds. - Weight::from_parts(88_562_000, 0) + // Minimum execution time: 139_021_000 picoseconds. + Weight::from_parts(157_398_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -449,8 +452,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `776` // Estimated: `42428` - // Minimum execution time: 55_853_000 picoseconds. - Weight::from_parts(57_761_000, 0) + // Minimum execution time: 78_530_000 picoseconds. + Weight::from_parts(83_556_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -467,8 +470,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `776` // Estimated: `83866` - // Minimum execution time: 101_251_000 picoseconds. - Weight::from_parts(103_897_000, 0) + // Minimum execution time: 174_165_000 picoseconds. + Weight::from_parts(188_496_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -483,8 +486,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `772` // Estimated: `42428` - // Minimum execution time: 73_658_000 picoseconds. - Weight::from_parts(89_672_000, 0) + // Minimum execution time: 142_964_000 picoseconds. + Weight::from_parts(157_257_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -499,8 +502,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `352` // Estimated: `4365` - // Minimum execution time: 19_993_000 picoseconds. - Weight::from_parts(20_305_000, 0) + // Minimum execution time: 20_126_000 picoseconds. + Weight::from_parts(20_635_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -513,8 +516,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `285` // Estimated: `4365` - // Minimum execution time: 17_815_000 picoseconds. - Weight::from_parts(18_197_000, 0) + // Minimum execution time: 17_716_000 picoseconds. + Weight::from_parts(18_324_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_referenda_referenda.rs b/runtime/kusama/src/weights/pallet_referenda_referenda.rs index 5268652ab76e..accaa0ef10d9 100644 --- a/runtime/kusama/src/weights/pallet_referenda_referenda.rs +++ b/runtime/kusama/src/weights/pallet_referenda_referenda.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_referenda // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `186` // Estimated: `42428` - // Minimum execution time: 38_094_000 picoseconds. - Weight::from_parts(38_828_000, 0) + // Minimum execution time: 39_146_000 picoseconds. + Weight::from_parts(40_383_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) @@ -71,8 +74,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `439` // Estimated: `83866` - // Minimum execution time: 49_501_000 picoseconds. - Weight::from_parts(50_093_000, 0) + // Minimum execution time: 51_385_000 picoseconds. + Weight::from_parts(52_701_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -89,8 +92,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3196` // Estimated: `42428` - // Minimum execution time: 59_688_000 picoseconds. - Weight::from_parts(60_498_000, 0) + // Minimum execution time: 70_018_000 picoseconds. + Weight::from_parts(75_868_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -107,8 +110,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3216` // Estimated: `42428` - // Minimum execution time: 59_067_000 picoseconds. - Weight::from_parts(60_106_000, 0) + // Minimum execution time: 69_311_000 picoseconds. + Weight::from_parts(72_425_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -125,8 +128,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `439` // Estimated: `83866` - // Minimum execution time: 61_251_000 picoseconds. - Weight::from_parts(62_142_000, 0) + // Minimum execution time: 64_385_000 picoseconds. + Weight::from_parts(66_178_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -143,8 +146,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `439` // Estimated: `83866` - // Minimum execution time: 59_626_000 picoseconds. - Weight::from_parts(60_154_000, 0) + // Minimum execution time: 62_200_000 picoseconds. + Weight::from_parts(63_782_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -155,8 +158,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `279` // Estimated: `4401` - // Minimum execution time: 28_706_000 picoseconds. - Weight::from_parts(29_245_000, 0) + // Minimum execution time: 29_677_000 picoseconds. + Weight::from_parts(30_603_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -167,8 +170,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `4401` - // Minimum execution time: 28_846_000 picoseconds. - Weight::from_parts(29_458_000, 0) + // Minimum execution time: 29_897_000 picoseconds. + Weight::from_parts(30_618_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -181,8 +184,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `347` // Estimated: `83866` - // Minimum execution time: 36_353_000 picoseconds. - Weight::from_parts(36_926_000, 0) + // Minimum execution time: 37_697_000 picoseconds. + Weight::from_parts(38_953_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -197,8 +200,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `588` // Estimated: `83866` - // Minimum execution time: 96_203_000 picoseconds. - Weight::from_parts(97_058_000, 0) + // Minimum execution time: 106_001_000 picoseconds. + Weight::from_parts(107_102_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -211,8 +214,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `102` // Estimated: `5477` - // Minimum execution time: 9_097_000 picoseconds. - Weight::from_parts(9_263_000, 0) + // Minimum execution time: 8_987_000 picoseconds. + Weight::from_parts(9_431_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -229,8 +232,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3116` // Estimated: `42428` - // Minimum execution time: 45_993_000 picoseconds. - Weight::from_parts(46_659_000, 0) + // Minimum execution time: 55_344_000 picoseconds. + Weight::from_parts(58_026_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -247,8 +250,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3116` // Estimated: `42428` - // Minimum execution time: 48_602_000 picoseconds. - Weight::from_parts(49_602_000, 0) + // Minimum execution time: 57_003_000 picoseconds. + Weight::from_parts(60_347_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -261,8 +264,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2939` // Estimated: `5477` - // Minimum execution time: 19_201_000 picoseconds. - Weight::from_parts(19_613_000, 0) + // Minimum execution time: 23_001_000 picoseconds. + Weight::from_parts(24_812_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -275,8 +278,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2939` // Estimated: `5477` - // Minimum execution time: 18_900_000 picoseconds. - Weight::from_parts(19_432_000, 0) + // Minimum execution time: 23_299_000 picoseconds. + Weight::from_parts(24_465_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -291,8 +294,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2943` // Estimated: `5477` - // Minimum execution time: 23_865_000 picoseconds. - Weight::from_parts(24_211_000, 0) + // Minimum execution time: 28_223_000 picoseconds. + Weight::from_parts(29_664_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -307,8 +310,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2963` // Estimated: `5477` - // Minimum execution time: 23_494_000 picoseconds. - Weight::from_parts(23_810_000, 0) + // Minimum execution time: 27_474_000 picoseconds. + Weight::from_parts(29_072_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -321,8 +324,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `299` // Estimated: `42428` - // Minimum execution time: 23_956_000 picoseconds. - Weight::from_parts(24_378_000, 0) + // Minimum execution time: 24_405_000 picoseconds. + Weight::from_parts(25_184_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -335,8 +338,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `347` // Estimated: `42428` - // Minimum execution time: 24_240_000 picoseconds. - Weight::from_parts(24_689_000, 0) + // Minimum execution time: 24_572_000 picoseconds. + Weight::from_parts(25_287_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -347,8 +350,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `206` // Estimated: `4401` - // Minimum execution time: 15_993_000 picoseconds. - Weight::from_parts(16_250_000, 0) + // Minimum execution time: 16_042_000 picoseconds. + Weight::from_parts(16_610_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -365,8 +368,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `347` // Estimated: `42428` - // Minimum execution time: 33_540_000 picoseconds. - Weight::from_parts(34_108_000, 0) + // Minimum execution time: 33_639_000 picoseconds. + Weight::from_parts(34_749_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -383,8 +386,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `347` // Estimated: `42428` - // Minimum execution time: 35_555_000 picoseconds. - Weight::from_parts(36_207_000, 0) + // Minimum execution time: 36_467_000 picoseconds. + Weight::from_parts(37_693_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -399,8 +402,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `400` // Estimated: `42428` - // Minimum execution time: 29_686_000 picoseconds. - Weight::from_parts(30_147_000, 0) + // Minimum execution time: 29_857_000 picoseconds. + Weight::from_parts(30_840_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -415,8 +418,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `383` // Estimated: `42428` - // Minimum execution time: 30_244_000 picoseconds. - Weight::from_parts(31_005_000, 0) + // Minimum execution time: 31_028_000 picoseconds. + Weight::from_parts(32_154_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -431,8 +434,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `400` // Estimated: `42428` - // Minimum execution time: 28_024_000 picoseconds. - Weight::from_parts(28_593_000, 0) + // Minimum execution time: 28_594_000 picoseconds. + Weight::from_parts(29_092_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -447,8 +450,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `404` // Estimated: `42428` - // Minimum execution time: 26_850_000 picoseconds. - Weight::from_parts(27_328_000, 0) + // Minimum execution time: 27_246_000 picoseconds. + Weight::from_parts(28_003_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -465,8 +468,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `404` // Estimated: `83866` - // Minimum execution time: 41_999_000 picoseconds. - Weight::from_parts(42_602_000, 0) + // Minimum execution time: 43_426_000 picoseconds. + Weight::from_parts(44_917_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -481,8 +484,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `400` // Estimated: `42428` - // Minimum execution time: 29_932_000 picoseconds. - Weight::from_parts(30_390_000, 0) + // Minimum execution time: 30_285_000 picoseconds. + Weight::from_parts(31_575_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -497,8 +500,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `350` // Estimated: `4401` - // Minimum execution time: 19_181_000 picoseconds. - Weight::from_parts(19_668_000, 0) + // Minimum execution time: 19_254_000 picoseconds. + Weight::from_parts(19_855_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -511,8 +514,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `283` // Estimated: `4401` - // Minimum execution time: 17_095_000 picoseconds. - Weight::from_parts(17_349_000, 0) + // Minimum execution time: 16_957_000 picoseconds. + Weight::from_parts(17_556_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_scheduler.rs b/runtime/kusama/src/weights/pallet_scheduler.rs index 3bffce1beec4..3e8e8810b2e5 100644 --- a/runtime/kusama/src/weights/pallet_scheduler.rs +++ b/runtime/kusama/src/weights/pallet_scheduler.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_scheduler // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69` // Estimated: `1489` - // Minimum execution time: 3_948_000 picoseconds. - Weight::from_parts(4_083_000, 0) + // Minimum execution time: 4_091_000 picoseconds. + Weight::from_parts(4_209_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -66,11 +69,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 3_501_000 picoseconds. - Weight::from_parts(6_388_786, 0) + // Minimum execution time: 3_545_000 picoseconds. + Weight::from_parts(6_437_280, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_937 - .saturating_add(Weight::from_parts(738_398, 0).saturating_mul(s.into())) + // Standard Error: 1_955 + .saturating_add(Weight::from_parts(892_412, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -78,8 +81,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_532_000 picoseconds. - Weight::from_parts(5_615_000, 0) + // Minimum execution time: 5_679_000 picoseconds. + Weight::from_parts(5_799_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Preimage PreimageFor (r:1 w:1) @@ -91,11 +94,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `179 + s * (1 ±0)` // Estimated: `3644 + s * (1 ±0)` - // Minimum execution time: 18_650_000 picoseconds. - Weight::from_parts(18_946_000, 0) + // Minimum execution time: 19_438_000 picoseconds. + Weight::from_parts(19_663_000, 0) .saturating_add(Weight::from_parts(0, 3644)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_248, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_513, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -106,8 +109,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_032_000 picoseconds. - Weight::from_parts(7_271_000, 0) + // Minimum execution time: 7_131_000 picoseconds. + Weight::from_parts(7_388_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -115,24 +118,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_481_000 picoseconds. - Weight::from_parts(5_585_000, 0) + // Minimum execution time: 5_761_000 picoseconds. + Weight::from_parts(5_896_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_signed() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_777_000 picoseconds. - Weight::from_parts(2_856_000, 0) + // Minimum execution time: 2_530_000 picoseconds. + Weight::from_parts(2_632_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_709_000 picoseconds. - Weight::from_parts(2_797_000, 0) + // Minimum execution time: 2_548_000 picoseconds. + Weight::from_parts(2_632_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Scheduler Agenda (r:1 w:1) @@ -142,11 +145,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 12_891_000 picoseconds. - Weight::from_parts(15_819_956, 0) + // Minimum execution time: 12_757_000 picoseconds. + Weight::from_parts(15_453_687, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_724 - .saturating_add(Weight::from_parts(732_277, 0).saturating_mul(s.into())) + // Standard Error: 2_121 + .saturating_add(Weight::from_parts(920_922, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -159,11 +162,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 17_138_000 picoseconds. - Weight::from_parts(16_857_684, 0) + // Minimum execution time: 17_412_000 picoseconds. + Weight::from_parts(16_293_532, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_989 - .saturating_add(Weight::from_parts(1_302_330, 0).saturating_mul(s.into())) + // Standard Error: 2_448 + .saturating_add(Weight::from_parts(1_635_003, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -176,11 +179,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `293 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 15_902_000 picoseconds. - Weight::from_parts(19_837_395, 0) + // Minimum execution time: 16_149_000 picoseconds. + Weight::from_parts(19_661_866, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_706 - .saturating_add(Weight::from_parts(767_437, 0).saturating_mul(s.into())) + // Standard Error: 2_641 + .saturating_add(Weight::from_parts(952_864, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -193,11 +196,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `319 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 18_734_000 picoseconds. - Weight::from_parts(19_091_961, 0) + // Minimum execution time: 18_858_000 picoseconds. + Weight::from_parts(18_380_802, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_067 - .saturating_add(Weight::from_parts(1_330_034, 0).saturating_mul(s.into())) + // Standard Error: 3_271 + .saturating_add(Weight::from_parts(1_687_802, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/kusama/src/weights/pallet_session.rs b/runtime/kusama/src/weights/pallet_session.rs index 6f9746e465ca..3f5469477e58 100644 --- a/runtime/kusama/src/weights/pallet_session.rs +++ b/runtime/kusama/src/weights/pallet_session.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_session // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2050` // Estimated: `17890` - // Minimum execution time: 51_414_000 picoseconds. - Weight::from_parts(52_148_000, 0) + // Minimum execution time: 60_102_000 picoseconds. + Weight::from_parts(63_699_000, 0) .saturating_add(Weight::from_parts(0, 17890)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) @@ -73,8 +76,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1914` // Estimated: `5379` - // Minimum execution time: 36_459_000 picoseconds. - Weight::from_parts(37_037_000, 0) + // Minimum execution time: 42_242_000 picoseconds. + Weight::from_parts(43_575_000, 0) .saturating_add(Weight::from_parts(0, 5379)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(7)) diff --git a/runtime/kusama/src/weights/pallet_society.rs b/runtime/kusama/src/weights/pallet_society.rs index a174862e0785..2b564349b413 100644 --- a/runtime/kusama/src/weights/pallet_society.rs +++ b/runtime/kusama/src/weights/pallet_society.rs @@ -17,22 +17,25 @@ //! Autogenerated weights for `pallet_society` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-12, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `36-26-2A-C3-ED-FB`, CPU: `` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: -// target/release/polkadot +// ./target/production/polkadot // benchmark // pallet // --chain=kusama-dev -// --repeat=1 +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_society // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 // --header=./file_header.txt // --output=./runtime/kusama/src/weights/ @@ -61,8 +64,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `416` // Estimated: `3881` - // Minimum execution time: 42_000_000 picoseconds. - Weight::from_parts(42_000_000, 0) + // Minimum execution time: 35_388_000 picoseconds. + Weight::from_parts(36_165_000, 0) .saturating_add(Weight::from_parts(0, 3881)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) @@ -73,8 +76,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `433` // Estimated: `1918` - // Minimum execution time: 32_000_000 picoseconds. - Weight::from_parts(32_000_000, 0) + // Minimum execution time: 28_387_000 picoseconds. + Weight::from_parts(29_224_000, 0) .saturating_add(Weight::from_parts(0, 1918)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -91,8 +94,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `453` // Estimated: `6393` - // Minimum execution time: 27_000_000 picoseconds. - Weight::from_parts(27_000_000, 0) + // Minimum execution time: 25_337_000 picoseconds. + Weight::from_parts(26_143_000, 0) .saturating_add(Weight::from_parts(0, 6393)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -105,8 +108,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `507` // Estimated: `3972` - // Minimum execution time: 19_000_000 picoseconds. - Weight::from_parts(19_000_000, 0) + // Minimum execution time: 17_975_000 picoseconds. + Weight::from_parts(18_695_000, 0) .saturating_add(Weight::from_parts(0, 3972)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -121,8 +124,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `541` // Estimated: `4006` - // Minimum execution time: 24_000_000 picoseconds. - Weight::from_parts(24_000_000, 0) + // Minimum execution time: 23_173_000 picoseconds. + Weight::from_parts(23_764_000, 0) .saturating_add(Weight::from_parts(0, 4006)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -139,8 +142,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `533` // Estimated: `3998` - // Minimum execution time: 22_000_000 picoseconds. - Weight::from_parts(22_000_000, 0) + // Minimum execution time: 21_744_000 picoseconds. + Weight::from_parts(22_406_000, 0) .saturating_add(Weight::from_parts(0, 3998)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -155,8 +158,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `622` // Estimated: `4087` - // Minimum execution time: 55_000_000 picoseconds. - Weight::from_parts(55_000_000, 0) + // Minimum execution time: 50_058_000 picoseconds. + Weight::from_parts(51_077_000, 0) .saturating_add(Weight::from_parts(0, 4087)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -169,8 +172,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `519` // Estimated: `3984` - // Minimum execution time: 21_000_000 picoseconds. - Weight::from_parts(21_000_000, 0) + // Minimum execution time: 21_305_000 picoseconds. + Weight::from_parts(22_020_000, 0) .saturating_add(Weight::from_parts(0, 3984)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -193,8 +196,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `114` // Estimated: `1599` - // Minimum execution time: 21_000_000 picoseconds. - Weight::from_parts(21_000_000, 0) + // Minimum execution time: 19_952_000 picoseconds. + Weight::from_parts(20_365_000, 0) .saturating_add(Weight::from_parts(0, 1599)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(7)) @@ -235,8 +238,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1626` // Estimated: `14991` - // Minimum execution time: 70_000_000 picoseconds. - Weight::from_parts(70_000_000, 0) + // Minimum execution time: 64_547_000 picoseconds. + Weight::from_parts(66_190_000, 0) .saturating_add(Weight::from_parts(0, 14991)) .saturating_add(T::DbWeight::get().reads(20)) .saturating_add(T::DbWeight::get().writes(30)) @@ -253,8 +256,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `456` // Estimated: `3921` - // Minimum execution time: 25_000_000 picoseconds. - Weight::from_parts(25_000_000, 0) + // Minimum execution time: 22_276_000 picoseconds. + Weight::from_parts(22_817_000, 0) .saturating_add(Weight::from_parts(0, 3921)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -269,8 +272,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `359` // Estimated: `1844` - // Minimum execution time: 16_000_000 picoseconds. - Weight::from_parts(16_000_000, 0) + // Minimum execution time: 14_857_000 picoseconds. + Weight::from_parts(15_268_000, 0) .saturating_add(Weight::from_parts(0, 1844)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -291,8 +294,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `608` // Estimated: `4073` - // Minimum execution time: 25_000_000 picoseconds. - Weight::from_parts(25_000_000, 0) + // Minimum execution time: 24_995_000 picoseconds. + Weight::from_parts(25_968_000, 0) .saturating_add(Weight::from_parts(0, 4073)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -317,8 +320,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `604` // Estimated: `4069` - // Minimum execution time: 43_000_000 picoseconds. - Weight::from_parts(43_000_000, 0) + // Minimum execution time: 41_570_000 picoseconds. + Weight::from_parts(42_576_000, 0) .saturating_add(Weight::from_parts(0, 4069)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(6)) @@ -345,8 +348,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `622` // Estimated: `4087` - // Minimum execution time: 45_000_000 picoseconds. - Weight::from_parts(45_000_000, 0) + // Minimum execution time: 43_450_000 picoseconds. + Weight::from_parts(44_330_000, 0) .saturating_add(Weight::from_parts(0, 4087)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) @@ -357,43 +360,49 @@ impl pallet_society::WeightInfo for WeightInfo { /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) /// Storage: Society RoundCount (r:1 w:0) /// Proof Skipped: Society RoundCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn kick_candidate() -> Weight { // Proof Size summary in bytes: - // Measured: `507` - // Estimated: `3972` - // Minimum execution time: 16_000_000 picoseconds. - Weight::from_parts(16_000_000, 0) - .saturating_add(Weight::from_parts(0, 3972)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `748` + // Estimated: `6196` + // Minimum execution time: 43_754_000 picoseconds. + Weight::from_parts(44_431_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: Society Candidates (r:1 w:1) /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) /// Storage: Society RoundCount (r:1 w:0) /// Proof Skipped: Society RoundCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn resign_candidacy() -> Weight { // Proof Size summary in bytes: - // Measured: `477` - // Estimated: `3942` - // Minimum execution time: 13_000_000 picoseconds. - Weight::from_parts(13_000_000, 0) - .saturating_add(Weight::from_parts(0, 3942)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `718` + // Estimated: `6196` + // Minimum execution time: 38_184_000 picoseconds. + Weight::from_parts(38_748_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: Society Candidates (r:1 w:1) /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) /// Storage: Society RoundCount (r:1 w:0) /// Proof Skipped: Society RoundCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn drop_candidate() -> Weight { // Proof Size summary in bytes: - // Measured: `489` - // Estimated: `3954` - // Minimum execution time: 13_000_000 picoseconds. - Weight::from_parts(13_000_000, 0) - .saturating_add(Weight::from_parts(0, 3954)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `730` + // Estimated: `6196` + // Minimum execution time: 38_442_000 picoseconds. + Weight::from_parts(39_150_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: Society Candidates (r:1 w:0) /// Proof Skipped: Society Candidates (max_values: None, max_size: None, mode: Measured) @@ -405,8 +414,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `524` // Estimated: `6464` - // Minimum execution time: 19_000_000 picoseconds. - Weight::from_parts(19_000_000, 0) + // Minimum execution time: 17_373_000 picoseconds. + Weight::from_parts(18_288_000, 0) .saturating_add(Weight::from_parts(0, 6464)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -419,8 +428,8 @@ impl pallet_society::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `482` // Estimated: `3947` - // Minimum execution time: 13_000_000 picoseconds. - Weight::from_parts(13_000_000, 0) + // Minimum execution time: 12_642_000 picoseconds. + Weight::from_parts(13_281_000, 0) .saturating_add(Weight::from_parts(0, 3947)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/pallet_staking.rs b/runtime/kusama/src/weights/pallet_staking.rs index 7f8192f7f4fe..a7268a21bb99 100644 --- a/runtime/kusama/src/weights/pallet_staking.rs +++ b/runtime/kusama/src/weights/pallet_staking.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_staking` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_staking // --extrinsic=* // --execution=wasm @@ -63,8 +66,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `980` // Estimated: `4764` - // Minimum execution time: 50_904_000 picoseconds. - Weight::from_parts(52_105_000, 0) + // Minimum execution time: 51_609_000 picoseconds. + Weight::from_parts(52_360_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -85,8 +88,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1955` // Estimated: `8877` - // Minimum execution time: 90_871_000 picoseconds. - Weight::from_parts(91_788_000, 0) + // Minimum execution time: 94_514_000 picoseconds. + Weight::from_parts(96_430_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -113,8 +116,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2166` // Estimated: `8877` - // Minimum execution time: 93_863_000 picoseconds. - Weight::from_parts(95_299_000, 0) + // Minimum execution time: 97_981_000 picoseconds. + Weight::from_parts(102_906_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(7)) @@ -132,11 +135,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `944` // Estimated: `4764` - // Minimum execution time: 44_191_000 picoseconds. - Weight::from_parts(45_477_189, 0) + // Minimum execution time: 44_962_000 picoseconds. + Weight::from_parts(46_452_900, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 438 - .saturating_add(Weight::from_parts(13_035, 0).saturating_mul(s.into())) + // Standard Error: 1_541 + .saturating_add(Weight::from_parts(40_855, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -173,11 +176,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2217 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 88_856_000 picoseconds. - Weight::from_parts(92_965_631, 0) + // Minimum execution time: 94_257_000 picoseconds. + Weight::from_parts(102_162_641, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 2_401 - .saturating_add(Weight::from_parts(1_202_406, 0).saturating_mul(s.into())) + // Standard Error: 4_137 + .saturating_add(Weight::from_parts(1_401_944, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -209,8 +212,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1341` // Estimated: `4556` - // Minimum execution time: 56_945_000 picoseconds. - Weight::from_parts(57_483_000, 0) + // Minimum execution time: 57_139_000 picoseconds. + Weight::from_parts(58_021_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(5)) @@ -224,11 +227,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1326 + k * (823 ±0)` // Estimated: `4556 + k * (3289 ±0)` - // Minimum execution time: 29_816_000 picoseconds. - Weight::from_parts(24_697_837, 0) + // Minimum execution time: 36_112_000 picoseconds. + Weight::from_parts(31_474_845, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 10_425 - .saturating_add(Weight::from_parts(8_196_785, 0).saturating_mul(k.into())) + // Standard Error: 13_249 + .saturating_add(Weight::from_parts(9_813_360, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -261,11 +264,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1921 + n * (88 ±0)` // Estimated: `6248 + n * (2520 ±0)` - // Minimum execution time: 64_368_000 picoseconds. - Weight::from_parts(64_137_061, 0) + // Minimum execution time: 66_845_000 picoseconds. + Weight::from_parts(67_790_022, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 11_053 - .saturating_add(Weight::from_parts(2_975_071, 0).saturating_mul(n.into())) + // Standard Error: 18_238 + .saturating_add(Weight::from_parts(3_739_950, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(6)) @@ -289,8 +292,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1671` // Estimated: `6248` - // Minimum execution time: 57_402_000 picoseconds. - Weight::from_parts(58_447_000, 0) + // Minimum execution time: 59_727_000 picoseconds. + Weight::from_parts(61_591_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -303,8 +306,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `735` // Estimated: `4556` - // Minimum execution time: 14_237_000 picoseconds. - Weight::from_parts(14_531_000, 0) + // Minimum execution time: 13_578_000 picoseconds. + Weight::from_parts(14_266_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -317,8 +320,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `834` // Estimated: `8122` - // Minimum execution time: 21_349_000 picoseconds. - Weight::from_parts(21_709_000, 0) + // Minimum execution time: 21_128_000 picoseconds. + Weight::from_parts(21_739_000, 0) .saturating_add(Weight::from_parts(0, 8122)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -329,8 +332,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_347_000 picoseconds. - Weight::from_parts(3_517_000, 0) + // Minimum execution time: 3_016_000 picoseconds. + Weight::from_parts(3_195_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -340,8 +343,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_433_000 picoseconds. - Weight::from_parts(11_762_000, 0) + // Minimum execution time: 9_431_000 picoseconds. + Weight::from_parts(9_624_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -351,8 +354,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_326_000 picoseconds. - Weight::from_parts(11_662_000, 0) + // Minimum execution time: 9_322_000 picoseconds. + Weight::from_parts(9_551_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -362,8 +365,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_380_000 picoseconds. - Weight::from_parts(11_696_000, 0) + // Minimum execution time: 9_209_000 picoseconds. + Weight::from_parts(9_772_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -374,11 +377,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_448_000 picoseconds. - Weight::from_parts(3_614_202, 0) + // Minimum execution time: 3_228_000 picoseconds. + Weight::from_parts(3_437_995, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 24 - .saturating_add(Weight::from_parts(10_569, 0).saturating_mul(v.into())) + // Standard Error: 50 + .saturating_add(Weight::from_parts(12_179, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Staking Bonded (r:1 w:1) @@ -414,11 +417,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1947 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 81_966_000 picoseconds. - Weight::from_parts(87_869_939, 0) + // Minimum execution time: 86_567_000 picoseconds. + Weight::from_parts(93_537_408, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_805 - .saturating_add(Weight::from_parts(1_153_353, 0).saturating_mul(s.into())) + // Standard Error: 3_840 + .saturating_add(Weight::from_parts(1_371_525, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(12)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -431,11 +434,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `66572` // Estimated: `70037` - // Minimum execution time: 113_394_000 picoseconds. - Weight::from_parts(915_759_340, 0) + // Minimum execution time: 129_433_000 picoseconds. + Weight::from_parts(939_746_867, 0) .saturating_add(Weight::from_parts(0, 70037)) - // Standard Error: 58_960 - .saturating_add(Weight::from_parts(4_950_569, 0).saturating_mul(s.into())) + // Standard Error: 58_234 + .saturating_add(Weight::from_parts(4_851_875, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -461,12 +464,12 @@ impl pallet_staking::WeightInfo for WeightInfo { fn payout_stakers_dead_controller(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `34175 + n * (149 ±0)` - // Estimated: `32387 + n * (2603 ±0)` - // Minimum execution time: 90_356_000 picoseconds. - Weight::from_parts(71_381_072, 0) + // Estimated: `32387 + n * (2603 ±1)` + // Minimum execution time: 121_648_000 picoseconds. + Weight::from_parts(145_330_037, 0) .saturating_add(Weight::from_parts(0, 32387)) - // Standard Error: 13_722 - .saturating_add(Weight::from_parts(30_072_130, 0).saturating_mul(n.into())) + // Standard Error: 30_044 + .saturating_add(Weight::from_parts(35_396_961, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -500,11 +503,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `58149 + n * (385 ±0)` // Estimated: `53036 + n * (3774 ±2)` - // Minimum execution time: 113_520_000 picoseconds. - Weight::from_parts(53_414_161, 0) + // Minimum execution time: 159_726_000 picoseconds. + Weight::from_parts(163_012_000, 0) .saturating_add(Weight::from_parts(0, 53036)) - // Standard Error: 17_291 - .saturating_add(Weight::from_parts(49_214_142, 0).saturating_mul(n.into())) + // Standard Error: 96_376 + .saturating_add(Weight::from_parts(59_227_426, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -528,11 +531,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1956 + l * (5 ±0)` // Estimated: `8877` - // Minimum execution time: 85_777_000 picoseconds. - Weight::from_parts(87_370_231, 0) + // Minimum execution time: 88_119_000 picoseconds. + Weight::from_parts(91_343_026, 0) .saturating_add(Weight::from_parts(0, 8877)) - // Standard Error: 2_274 - .saturating_add(Weight::from_parts(22_247, 0).saturating_mul(l.into())) + // Standard Error: 5_157 + .saturating_add(Weight::from_parts(38_885, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -567,11 +570,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2217 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 94_813_000 picoseconds. - Weight::from_parts(95_669_759, 0) + // Minimum execution time: 100_347_000 picoseconds. + Weight::from_parts(103_081_218, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 2_031 - .saturating_add(Weight::from_parts(1_166_063, 0).saturating_mul(s.into())) + // Standard Error: 3_957 + .saturating_add(Weight::from_parts(1_403_417, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -618,14 +621,14 @@ impl pallet_staking::WeightInfo for WeightInfo { fn new_era(v: u32, n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + n * (714 ±0) + v * (3592 ±0)` - // Estimated: `425452 + n * (3566 ±3) + v * (3566 ±38)` - // Minimum execution time: 471_078_000 picoseconds. - Weight::from_parts(473_192_000, 0) + // Estimated: `425452 + n * (3566 ±0) + v * (3566 ±0)` + // Minimum execution time: 543_737_000 picoseconds. + Weight::from_parts(547_799_000, 0) .saturating_add(Weight::from_parts(0, 425452)) - // Standard Error: 1_826_301 - .saturating_add(Weight::from_parts(58_588_817, 0).saturating_mul(v.into())) - // Standard Error: 181_980 - .saturating_add(Weight::from_parts(16_482_813, 0).saturating_mul(n.into())) + // Standard Error: 2_046_982 + .saturating_add(Weight::from_parts(66_708_000, 0).saturating_mul(v.into())) + // Standard Error: 203_970 + .saturating_add(Weight::from_parts(20_246_221, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(173)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -658,13 +661,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3151 + n * (1161 ±0) + v * (389 ±0)` // Estimated: `425452 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 31_480_948_000 picoseconds. - Weight::from_parts(31_598_662_000, 0) + // Minimum execution time: 38_906_963_000 picoseconds. + Weight::from_parts(39_744_147_000, 0) .saturating_add(Weight::from_parts(0, 425452)) - // Standard Error: 346_420 - .saturating_add(Weight::from_parts(4_621_237, 0).saturating_mul(v.into())) - // Standard Error: 346_420 - .saturating_add(Weight::from_parts(3_162_454, 0).saturating_mul(n.into())) + // Standard Error: 411_378 + .saturating_add(Weight::from_parts(3_691_522, 0).saturating_mul(v.into())) + // Standard Error: 411_378 + .saturating_add(Weight::from_parts(5_732_105, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(168)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -683,11 +686,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `917 + v * (50 ±0)` // Estimated: `3510 + v * (2520 ±0)` - // Minimum execution time: 2_229_982_000 picoseconds. - Weight::from_parts(44_832_617, 0) + // Minimum execution time: 2_614_613_000 picoseconds. + Weight::from_parts(127_976_836, 0) .saturating_add(Weight::from_parts(0, 3510)) - // Standard Error: 8_423 - .saturating_add(Weight::from_parts(4_470_332, 0).saturating_mul(v.into())) + // Standard Error: 10_285 + .saturating_add(Weight::from_parts(5_101_327, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -709,8 +712,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_727_000 picoseconds. - Weight::from_parts(7_011_000, 0) + // Minimum execution time: 6_533_000 picoseconds. + Weight::from_parts(6_797_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -730,8 +733,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_057_000 picoseconds. - Weight::from_parts(6_232_000, 0) + // Minimum execution time: 6_056_000 picoseconds. + Weight::from_parts(6_255_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -759,8 +762,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `6248` - // Minimum execution time: 69_929_000 picoseconds. - Weight::from_parts(70_638_000, 0) + // Minimum execution time: 71_915_000 picoseconds. + Weight::from_parts(73_500_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(6)) @@ -773,8 +776,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `627` // Estimated: `3510` - // Minimum execution time: 13_376_000 picoseconds. - Weight::from_parts(13_645_000, 0) + // Minimum execution time: 12_994_000 picoseconds. + Weight::from_parts(13_452_000, 0) .saturating_add(Weight::from_parts(0, 3510)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -785,8 +788,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_271_000 picoseconds. - Weight::from_parts(3_474_000, 0) + // Minimum execution time: 3_191_000 picoseconds. + Weight::from_parts(3_315_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/pallet_timestamp.rs b/runtime/kusama/src/weights/pallet_timestamp.rs index 483c9fb51a8b..ab127fd96064 100644 --- a/runtime/kusama/src/weights/pallet_timestamp.rs +++ b/runtime/kusama/src/weights/pallet_timestamp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_timestamp // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `311` // Estimated: `1493` - // Minimum execution time: 8_934_000 picoseconds. - Weight::from_parts(9_247_000, 0) + // Minimum execution time: 9_183_000 picoseconds. + Weight::from_parts(9_579_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +68,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `94` // Estimated: `0` - // Minimum execution time: 3_709_000 picoseconds. - Weight::from_parts(3_808_000, 0) + // Minimum execution time: 3_897_000 picoseconds. + Weight::from_parts(4_053_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtime/kusama/src/weights/pallet_treasury.rs b/runtime/kusama/src/weights/pallet_treasury.rs index 1fe8b4f31dcc..fe2e4f9cee8f 100644 --- a/runtime/kusama/src/weights/pallet_treasury.rs +++ b/runtime/kusama/src/weights/pallet_treasury.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_treasury` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_treasury // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6` // Estimated: `1887` - // Minimum execution time: 14_279_000 picoseconds. - Weight::from_parts(14_472_000, 0) + // Minimum execution time: 14_076_000 picoseconds. + Weight::from_parts(14_546_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) @@ -71,8 +74,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `1489` - // Minimum execution time: 26_502_000 picoseconds. - Weight::from_parts(26_913_000, 0) + // Minimum execution time: 27_324_000 picoseconds. + Weight::from_parts(27_723_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -85,8 +88,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `265` // Estimated: `3593` - // Minimum execution time: 39_693_000 picoseconds. - Weight::from_parts(40_069_000, 0) + // Minimum execution time: 41_722_000 picoseconds. + Weight::from_parts(42_638_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -100,11 +103,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `433 + p * (8 ±0)` // Estimated: `3573` - // Minimum execution time: 8_705_000 picoseconds. - Weight::from_parts(11_581_749, 0) + // Minimum execution time: 8_332_000 picoseconds. + Weight::from_parts(10_971_007, 0) .saturating_add(Weight::from_parts(0, 3573)) - // Standard Error: 910 - .saturating_add(Weight::from_parts(30_044, 0).saturating_mul(p.into())) + // Standard Error: 1_480 + .saturating_add(Weight::from_parts(78_440, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -114,8 +117,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `1887` - // Minimum execution time: 6_736_000 picoseconds. - Weight::from_parts(6_829_000, 0) + // Minimum execution time: 6_465_000 picoseconds. + Weight::from_parts(6_632_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -137,11 +140,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `264 + p * (251 ±0)` // Estimated: `3593 + p * (5206 ±0)` - // Minimum execution time: 62_118_000 picoseconds. - Weight::from_parts(64_329_756, 0) + // Minimum execution time: 67_339_000 picoseconds. + Weight::from_parts(61_523_213, 0) .saturating_add(Weight::from_parts(0, 3593)) - // Standard Error: 30_434 - .saturating_add(Weight::from_parts(37_643_004, 0).saturating_mul(p.into())) + // Standard Error: 28_817 + .saturating_add(Weight::from_parts(44_009_562, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(5)) diff --git a/runtime/kusama/src/weights/pallet_utility.rs b/runtime/kusama/src/weights/pallet_utility.rs index 2a4d1e7492c3..d6843617fe32 100644 --- a/runtime/kusama/src/weights/pallet_utility.rs +++ b/runtime/kusama/src/weights/pallet_utility.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_utility // --extrinsic=* // --execution=wasm @@ -52,18 +55,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_677_000 picoseconds. - Weight::from_parts(9_349_210, 0) + // Minimum execution time: 6_750_000 picoseconds. + Weight::from_parts(7_924_668, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_455 - .saturating_add(Weight::from_parts(4_414_489, 0).saturating_mul(c.into())) + // Standard Error: 1_937 + .saturating_add(Weight::from_parts(5_116_413, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_114_000 picoseconds. - Weight::from_parts(5_203_000, 0) + // Minimum execution time: 4_928_000 picoseconds. + Weight::from_parts(5_208_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -71,18 +74,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_593_000 picoseconds. - Weight::from_parts(3_285_927, 0) + // Minimum execution time: 6_747_000 picoseconds. + Weight::from_parts(12_311_060, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_019 - .saturating_add(Weight::from_parts(4_703_669, 0).saturating_mul(c.into())) + // Standard Error: 4_311 + .saturating_add(Weight::from_parts(5_344_485, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_876_000 picoseconds. - Weight::from_parts(9_065_000, 0) + // Minimum execution time: 9_012_000 picoseconds. + Weight::from_parts(9_239_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -90,10 +93,10 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_768_000 picoseconds. - Weight::from_parts(16_257_355, 0) + // Minimum execution time: 6_708_000 picoseconds. + Weight::from_parts(10_795_859, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_142 - .saturating_add(Weight::from_parts(4_410_062, 0).saturating_mul(c.into())) + // Standard Error: 2_055 + .saturating_add(Weight::from_parts(5_143_833, 0).saturating_mul(c.into())) } } diff --git a/runtime/kusama/src/weights/pallet_vesting.rs b/runtime/kusama/src/weights/pallet_vesting.rs index 54a03fa598f1..b33a9174bce1 100644 --- a/runtime/kusama/src/weights/pallet_vesting.rs +++ b/runtime/kusama/src/weights/pallet_vesting.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_vesting // --extrinsic=* // --execution=wasm @@ -59,13 +62,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `314 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 33_352_000 picoseconds. - Weight::from_parts(34_205_765, 0) + // Minimum execution time: 34_784_000 picoseconds. + Weight::from_parts(33_272_889, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_172 - .saturating_add(Weight::from_parts(10_660, 0).saturating_mul(l.into())) - // Standard Error: 3_864 - .saturating_add(Weight::from_parts(53_849, 0).saturating_mul(s.into())) + // Standard Error: 1_885 + .saturating_add(Weight::from_parts(59_791, 0).saturating_mul(l.into())) + // Standard Error: 3_354 + .saturating_add(Weight::from_parts(107_412, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -81,13 +84,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `314 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_538_000 picoseconds. - Weight::from_parts(36_213_107, 0) + // Minimum execution time: 38_597_000 picoseconds. + Weight::from_parts(38_328_545, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 791 - .saturating_add(Weight::from_parts(30_659, 0).saturating_mul(l.into())) - // Standard Error: 1_408 - .saturating_add(Weight::from_parts(42_927, 0).saturating_mul(s.into())) + // Standard Error: 1_835 + .saturating_add(Weight::from_parts(30_108, 0).saturating_mul(l.into())) + // Standard Error: 3_265 + .saturating_add(Weight::from_parts(67_840, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -105,13 +108,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `417 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 35_267_000 picoseconds. - Weight::from_parts(34_409_436, 0) + // Minimum execution time: 36_505_000 picoseconds. + Weight::from_parts(35_149_105, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 633 - .saturating_add(Weight::from_parts(41_988, 0).saturating_mul(l.into())) - // Standard Error: 1_126 - .saturating_add(Weight::from_parts(67_595, 0).saturating_mul(s.into())) + // Standard Error: 1_328 + .saturating_add(Weight::from_parts(59_063, 0).saturating_mul(l.into())) + // Standard Error: 2_363 + .saturating_add(Weight::from_parts(102_227, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -129,13 +132,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `417 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 38_463_000 picoseconds. - Weight::from_parts(38_578_723, 0) + // Minimum execution time: 39_946_000 picoseconds. + Weight::from_parts(40_375_572, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_004 - .saturating_add(Weight::from_parts(28_618, 0).saturating_mul(l.into())) - // Standard Error: 1_786 - .saturating_add(Weight::from_parts(27_391, 0).saturating_mul(s.into())) + // Standard Error: 1_657 + .saturating_add(Weight::from_parts(36_203, 0).saturating_mul(l.into())) + // Standard Error: 2_948 + .saturating_add(Weight::from_parts(54_092, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -153,13 +156,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `488 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 68_090_000 picoseconds. - Weight::from_parts(71_277_557, 0) + // Minimum execution time: 73_800_000 picoseconds. + Weight::from_parts(76_190_149, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_585 - .saturating_add(Weight::from_parts(46_935, 0).saturating_mul(l.into())) - // Standard Error: 4_600 - .saturating_add(Weight::from_parts(76_542, 0).saturating_mul(s.into())) + // Standard Error: 3_306 + .saturating_add(Weight::from_parts(62_177, 0).saturating_mul(l.into())) + // Standard Error: 5_882 + .saturating_add(Weight::from_parts(142_130, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -177,13 +180,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + l * (25 ±0) + s * (36 ±0)` // Estimated: `6196` - // Minimum execution time: 69_840_000 picoseconds. - Weight::from_parts(72_484_434, 0) + // Minimum execution time: 74_744_000 picoseconds. + Weight::from_parts(77_992_773, 0) .saturating_add(Weight::from_parts(0, 6196)) - // Standard Error: 1_955 - .saturating_add(Weight::from_parts(47_081, 0).saturating_mul(l.into())) - // Standard Error: 3_478 - .saturating_add(Weight::from_parts(99_787, 0).saturating_mul(s.into())) + // Standard Error: 3_321 + .saturating_add(Weight::from_parts(66_392, 0).saturating_mul(l.into())) + // Standard Error: 5_910 + .saturating_add(Weight::from_parts(142_911, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -201,13 +204,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `415 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_131_000 picoseconds. - Weight::from_parts(35_149_493, 0) + // Minimum execution time: 37_626_000 picoseconds. + Weight::from_parts(36_213_370, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 573 - .saturating_add(Weight::from_parts(42_288, 0).saturating_mul(l.into())) - // Standard Error: 1_058 - .saturating_add(Weight::from_parts(66_676, 0).saturating_mul(s.into())) + // Standard Error: 2_056 + .saturating_add(Weight::from_parts(56_586, 0).saturating_mul(l.into())) + // Standard Error: 3_798 + .saturating_add(Weight::from_parts(111_413, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -225,13 +228,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `415 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 40_178_000 picoseconds. - Weight::from_parts(39_122_430, 0) + // Minimum execution time: 41_647_000 picoseconds. + Weight::from_parts(40_350_649, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 522 - .saturating_add(Weight::from_parts(44_297, 0).saturating_mul(l.into())) - // Standard Error: 964 - .saturating_add(Weight::from_parts(64_862, 0).saturating_mul(s.into())) + // Standard Error: 1_906 + .saturating_add(Weight::from_parts(59_779, 0).saturating_mul(l.into())) + // Standard Error: 3_521 + .saturating_add(Weight::from_parts(111_787, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/kusama/src/weights/pallet_whitelist.rs b/runtime/kusama/src/weights/pallet_whitelist.rs index bd30918a0c45..fe2d317651a0 100644 --- a/runtime/kusama/src/weights/pallet_whitelist.rs +++ b/runtime/kusama/src/weights/pallet_whitelist.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_whitelist` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_whitelist // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `118` // Estimated: `3556` - // Minimum execution time: 18_694_000 picoseconds. - Weight::from_parts(19_144_000, 0) + // Minimum execution time: 19_893_000 picoseconds. + Weight::from_parts(20_176_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -69,8 +72,8 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `247` // Estimated: `3556` - // Minimum execution time: 16_985_000 picoseconds. - Weight::from_parts(17_278_000, 0) + // Minimum execution time: 17_393_000 picoseconds. + Weight::from_parts(18_076_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -86,11 +89,11 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `323 + n * (1 ±0)` // Estimated: `3787 + n * (1 ±0)` - // Minimum execution time: 28_575_000 picoseconds. - Weight::from_parts(28_835_000, 0) + // Minimum execution time: 29_485_000 picoseconds. + Weight::from_parts(29_730_000, 0) .saturating_add(Weight::from_parts(0, 3787)) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_302, 0).saturating_mul(n.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_530, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -104,11 +107,11 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `247` // Estimated: `3556` - // Minimum execution time: 20_924_000 picoseconds. - Weight::from_parts(21_246_138, 0) + // Minimum execution time: 21_190_000 picoseconds. + Weight::from_parts(21_802_426, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_316, 0).saturating_mul(n.into())) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_465, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/kusama/src/weights/pallet_xcm.rs b/runtime/kusama/src/weights/pallet_xcm.rs index 7dbfe7ad5162..8559f45bbadc 100644 --- a/runtime/kusama/src/weights/pallet_xcm.rs +++ b/runtime/kusama/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_xcm // --extrinsic=* // --execution=wasm @@ -47,6 +50,8 @@ use core::marker::PhantomData; /// Weight functions for `pallet_xcm`. pub struct WeightInfo(PhantomData); impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet SupportedVersion (r:1 w:0) @@ -63,34 +68,34 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3676` - // Minimum execution time: 33_093_000 picoseconds. - Weight::from_parts(33_584_000, 0) + // Minimum execution time: 36_359_000 picoseconds. + Weight::from_parts(37_262_000, 0) .saturating_add(Weight::from_parts(0, 3676)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) } fn teleport_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 21_437_000 picoseconds. - Weight::from_parts(21_821_000, 0) + // Minimum execution time: 22_115_000 picoseconds. + Weight::from_parts(22_381_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 21_279_000 picoseconds. - Weight::from_parts(21_738_000, 0) + // Minimum execution time: 21_978_000 picoseconds. + Weight::from_parts(22_407_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_499_000 picoseconds. - Weight::from_parts(9_732_000, 0) + // Minimum execution time: 9_620_000 picoseconds. + Weight::from_parts(10_061_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: XcmPallet SupportedVersion (r:0 w:1) @@ -99,8 +104,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_744_000 picoseconds. - Weight::from_parts(10_013_000, 0) + // Minimum execution time: 9_884_000 picoseconds. + Weight::from_parts(10_207_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -110,8 +115,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_828_000 picoseconds. - Weight::from_parts(2_940_000, 0) + // Minimum execution time: 2_939_000 picoseconds. + Weight::from_parts(3_022_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -119,6 +124,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: XcmPallet VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet QueryCounter (r:1 w:1) /// Proof Skipped: XcmPallet QueryCounter (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet SupportedVersion (r:1 w:0) @@ -137,14 +144,16 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3676` - // Minimum execution time: 37_248_000 picoseconds. - Weight::from_parts(37_960_000, 0) + // Minimum execution time: 40_948_000 picoseconds. + Weight::from_parts(41_577_000, 0) .saturating_add(Weight::from_parts(0, 3676)) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(6)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(7)) } /// Storage: XcmPallet VersionNotifiers (r:1 w:1) /// Proof Skipped: XcmPallet VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet SupportedVersion (r:1 w:0) @@ -161,13 +170,13 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `483` - // Estimated: `3948` - // Minimum execution time: 41_078_000 picoseconds. - Weight::from_parts(42_438_000, 0) - .saturating_add(Weight::from_parts(0, 3948)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(5)) + // Measured: `538` + // Estimated: `4003` + // Minimum execution time: 45_857_000 picoseconds. + Weight::from_parts(47_289_000, 0) + .saturating_add(Weight::from_parts(0, 4003)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(6)) } /// Storage: XcmPallet XcmExecutionSuspended (r:0 w:1) /// Proof Skipped: XcmPallet XcmExecutionSuspended (max_values: Some(1), max_size: None, mode: Measured) @@ -175,8 +184,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_912_000 picoseconds. - Weight::from_parts(3_078_000, 0) + // Minimum execution time: 2_837_000 picoseconds. + Weight::from_parts(3_065_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -186,8 +195,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `229` // Estimated: `11119` - // Minimum execution time: 15_823_000 picoseconds. - Weight::from_parts(16_390_000, 0) + // Minimum execution time: 17_125_000 picoseconds. + Weight::from_parts(17_582_000, 0) .saturating_add(Weight::from_parts(0, 11119)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -198,8 +207,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `233` // Estimated: `11123` - // Minimum execution time: 15_683_000 picoseconds. - Weight::from_parts(15_941_000, 0) + // Minimum execution time: 16_834_000 picoseconds. + Weight::from_parts(17_412_000, 0) .saturating_add(Weight::from_parts(0, 11123)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -210,13 +219,15 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `243` // Estimated: `13608` - // Minimum execution time: 17_277_000 picoseconds. - Weight::from_parts(17_583_000, 0) + // Minimum execution time: 18_784_000 picoseconds. + Weight::from_parts(19_184_000, 0) .saturating_add(Weight::from_parts(0, 13608)) .saturating_add(T::DbWeight::get().reads(5)) } /// Storage: XcmPallet VersionNotifyTargets (r:2 w:1) /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet SupportedVersion (r:1 w:0) @@ -233,11 +244,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `281` // Estimated: `6221` - // Minimum execution time: 35_291_000 picoseconds. - Weight::from_parts(35_829_000, 0) + // Minimum execution time: 38_232_000 picoseconds. + Weight::from_parts(39_125_000, 0) .saturating_add(Weight::from_parts(0, 6221)) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(5)) } /// Storage: XcmPallet VersionNotifyTargets (r:3 w:0) /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) @@ -245,8 +256,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `272` // Estimated: `8687` - // Minimum execution time: 8_887_000 picoseconds. - Weight::from_parts(9_039_000, 0) + // Minimum execution time: 9_661_000 picoseconds. + Weight::from_parts(10_094_000, 0) .saturating_add(Weight::from_parts(0, 8687)) .saturating_add(T::DbWeight::get().reads(3)) } @@ -256,14 +267,16 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `240` // Estimated: `11130` - // Minimum execution time: 15_995_000 picoseconds. - Weight::from_parts(16_623_000, 0) + // Minimum execution time: 17_593_000 picoseconds. + Weight::from_parts(18_158_000, 0) .saturating_add(Weight::from_parts(0, 11130)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: XcmPallet VersionNotifyTargets (r:4 w:2) /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet SupportedVersion (r:1 w:0) @@ -280,10 +293,10 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `285` // Estimated: `11175` - // Minimum execution time: 41_311_000 picoseconds. - Weight::from_parts(42_102_000, 0) + // Minimum execution time: 45_525_000 picoseconds. + Weight::from_parts(46_583_000, 0) .saturating_add(Weight::from_parts(0, 11175)) - .saturating_add(T::DbWeight::get().reads(10)) - .saturating_add(T::DbWeight::get().writes(5)) + .saturating_add(T::DbWeight::get().reads(11)) + .saturating_add(T::DbWeight::get().writes(6)) } } diff --git a/runtime/kusama/src/weights/pallet_xcm_benchmarks_fungible.rs b/runtime/kusama/src/weights/pallet_xcm_benchmarks_fungible.rs new file mode 100644 index 000000000000..5cc9b7e68577 --- /dev/null +++ b/runtime/kusama/src/weights/pallet_xcm_benchmarks_fungible.rs @@ -0,0 +1,183 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_xcm_benchmarks::fungible` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=kusama-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=pallet_xcm_benchmarks::fungible +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/kusama/src/weights/pallet_xcm_benchmarks_fungible.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_xcm_benchmarks::fungible`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm_benchmarks::fungible::WeightInfo for WeightInfo { + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 24_725_000 picoseconds. + Weight::from_parts(25_253_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `6196` + // Minimum execution time: 53_699_000 picoseconds. + Weight::from_parts(54_162_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `312` + // Estimated: `6196` + // Minimum execution time: 79_408_000 picoseconds. + Weight::from_parts(81_430_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: Balances InactiveIssuance (r:1 w:1) + /// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 23_619_000 picoseconds. + Weight::from_parts(24_055_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 26_405_000 picoseconds. + Weight::from_parts(26_700_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `211` + // Estimated: `3676` + // Minimum execution time: 55_304_000 picoseconds. + Weight::from_parts(56_324_000, 0) + .saturating_add(Weight::from_parts(0, 3676)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: Balances InactiveIssuance (r:1 w:1) + /// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `211` + // Estimated: `3676` + // Minimum execution time: 57_377_000 picoseconds. + Weight::from_parts(58_420_000, 0) + .saturating_add(Weight::from_parts(0, 3676)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(6)) + } +} diff --git a/runtime/kusama/src/weights/pallet_xcm_benchmarks_generic.rs b/runtime/kusama/src/weights/pallet_xcm_benchmarks_generic.rs new file mode 100644 index 000000000000..7b5d81343de8 --- /dev/null +++ b/runtime/kusama/src/weights/pallet_xcm_benchmarks_generic.rs @@ -0,0 +1,393 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_xcm_benchmarks::generic` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=kusama-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=pallet_xcm_benchmarks::generic +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/kusama/src/weights/pallet_xcm_benchmarks_generic.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_xcm_benchmarks::generic`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm_benchmarks::generic::WeightInfo for WeightInfo { + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `211` + // Estimated: `3676` + // Minimum execution time: 34_471_000 picoseconds. + Weight::from_parts(35_000_000, 0) + .saturating_add(Weight::from_parts(0, 3676)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) + } + fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_115_000 picoseconds. + Weight::from_parts(3_227_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: XcmPallet Queries (r:1 w:0) + /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) + fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `169` + // Estimated: `3634` + // Minimum execution time: 11_905_000 picoseconds. + Weight::from_parts(12_199_000, 0) + .saturating_add(Weight::from_parts(0, 3634)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 12_426_000 picoseconds. + Weight::from_parts(12_740_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_099_000 picoseconds. + Weight::from_parts(3_200_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_960_000 picoseconds. + Weight::from_parts(3_060_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_947_000 picoseconds. + Weight::from_parts(3_048_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_861_000 picoseconds. + Weight::from_parts(2_990_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_843_000 picoseconds. + Weight::from_parts(4_005_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_915_000 picoseconds. + Weight::from_parts(3_037_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `211` + // Estimated: `3676` + // Minimum execution time: 29_177_000 picoseconds. + Weight::from_parts(29_561_000, 0) + .saturating_add(Weight::from_parts(0, 3676)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: XcmPallet AssetTraps (r:1 w:1) + /// Proof Skipped: XcmPallet AssetTraps (max_values: None, max_size: None, mode: Measured) + fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `226` + // Estimated: `3691` + // Minimum execution time: 16_170_000 picoseconds. + Weight::from_parts(16_629_000, 0) + .saturating_add(Weight::from_parts(0, 3691)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_881_000 picoseconds. + Weight::from_parts(3_014_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: XcmPallet VersionNotifyTargets (r:1 w:1) + /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `211` + // Estimated: `3676` + // Minimum execution time: 35_499_000 picoseconds. + Weight::from_parts(36_678_000, 0) + .saturating_add(Weight::from_parts(0, 3676)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: XcmPallet VersionNotifyTargets (r:0 w:1) + /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_005_000 picoseconds. + Weight::from_parts(5_176_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `211` + // Estimated: `3676` + // Minimum execution time: 33_017_000 picoseconds. + Weight::from_parts(33_514_000, 0) + .saturating_add(Weight::from_parts(0, 3676)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) + } + fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_645_000 picoseconds. + Weight::from_parts(4_827_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_116_000 picoseconds. + Weight::from_parts(3_239_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_930_000 picoseconds. + Weight::from_parts(3_118_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_871_000 picoseconds. + Weight::from_parts(2_990_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_136_000 picoseconds. + Weight::from_parts(3_240_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `211` + // Estimated: `3676` + // Minimum execution time: 36_940_000 picoseconds. + Weight::from_parts(37_766_000, 0) + .saturating_add(Weight::from_parts(0, 3676)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) + } + fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_735_000 picoseconds. + Weight::from_parts(8_957_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `211` + // Estimated: `3676` + // Minimum execution time: 28_967_000 picoseconds. + Weight::from_parts(29_937_000, 0) + .saturating_add(Weight::from_parts(0, 3676)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) + } + fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_907_000 picoseconds. + Weight::from_parts(3_023_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_866_000 picoseconds. + Weight::from_parts(2_960_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_872_000 picoseconds. + Weight::from_parts(3_022_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_936_000 picoseconds. + Weight::from_parts(3_021_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_063_000 picoseconds. + Weight::from_parts(3_153_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/runtime/kusama/src/weights/runtime_common_auctions.rs b/runtime/kusama/src/weights/runtime_common_auctions.rs index 63bfd3bac6d8..2370f98f0703 100644 --- a/runtime/kusama/src/weights/runtime_common_auctions.rs +++ b/runtime/kusama/src/weights/runtime_common_auctions.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::auctions` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::auctions // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `4` // Estimated: `1493` - // Minimum execution time: 11_883_000 picoseconds. - Weight::from_parts(12_111_000, 0) + // Minimum execution time: 12_713_000 picoseconds. + Weight::from_parts(13_211_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +82,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `661` // Estimated: `6060` - // Minimum execution time: 77_025_000 picoseconds. - Weight::from_parts(80_462_000, 0) + // Minimum execution time: 98_648_000 picoseconds. + Weight::from_parts(106_823_000, 0) .saturating_add(Weight::from_parts(0, 6060)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -113,8 +116,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `6947699` // Estimated: `15822990` - // Minimum execution time: 6_420_880_000 picoseconds. - Weight::from_parts(6_519_804_000, 0) + // Minimum execution time: 7_936_854_000 picoseconds. + Weight::from_parts(8_091_086_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3688)) .saturating_add(T::DbWeight::get().writes(3683)) @@ -131,8 +134,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `177732` // Estimated: `15822990` - // Minimum execution time: 4_867_703_000 picoseconds. - Weight::from_parts(4_970_965_000, 0) + // Minimum execution time: 6_127_393_000 picoseconds. + Weight::from_parts(6_302_044_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3673)) .saturating_add(T::DbWeight::get().writes(3673)) diff --git a/runtime/kusama/src/weights/runtime_common_claims.rs b/runtime/kusama/src/weights/runtime_common_claims.rs index 08110ea15d8c..ecf29f0cdc18 100644 --- a/runtime/kusama/src/weights/runtime_common_claims.rs +++ b/runtime/kusama/src/weights/runtime_common_claims.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::claims` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::claims // --extrinsic=* // --execution=wasm @@ -67,8 +70,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `620` // Estimated: `4764` - // Minimum execution time: 150_188_000 picoseconds. - Weight::from_parts(152_188_000, 0) + // Minimum execution time: 213_980_000 picoseconds. + Weight::from_parts(229_096_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -85,8 +88,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `216` // Estimated: `1701` - // Minimum execution time: 10_417_000 picoseconds. - Weight::from_parts(10_727_000, 0) + // Minimum execution time: 13_378_000 picoseconds. + Weight::from_parts(15_841_000, 0) .saturating_add(Weight::from_parts(0, 1701)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(4)) @@ -111,8 +114,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `620` // Estimated: `4764` - // Minimum execution time: 153_796_000 picoseconds. - Weight::from_parts(158_788_000, 0) + // Minimum execution time: 213_747_000 picoseconds. + Weight::from_parts(236_937_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -139,8 +142,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `694` // Estimated: `4764` - // Minimum execution time: 72_825_000 picoseconds. - Weight::from_parts(82_756_000, 0) + // Minimum execution time: 103_706_000 picoseconds. + Weight::from_parts(108_213_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -157,8 +160,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `440` // Estimated: `3905` - // Minimum execution time: 21_180_000 picoseconds. - Weight::from_parts(21_693_000, 0) + // Minimum execution time: 27_331_000 picoseconds. + Weight::from_parts(29_408_000, 0) .saturating_add(Weight::from_parts(0, 3905)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(7)) diff --git a/runtime/kusama/src/weights/runtime_common_crowdloan.rs b/runtime/kusama/src/weights/runtime_common_crowdloan.rs index ac5c57238612..1785e0e5d38b 100644 --- a/runtime/kusama/src/weights/runtime_common_crowdloan.rs +++ b/runtime/kusama/src/weights/runtime_common_crowdloan.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::crowdloan` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::crowdloan // --extrinsic=* // --execution=wasm @@ -61,8 +64,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `415` // Estimated: `3880` - // Minimum execution time: 50_819_000 picoseconds. - Weight::from_parts(52_107_000, 0) + // Minimum execution time: 67_350_000 picoseconds. + Weight::from_parts(70_662_000, 0) .saturating_add(Weight::from_parts(0, 3880)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -87,8 +90,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `463` // Estimated: `3928` - // Minimum execution time: 131_381_000 picoseconds. - Weight::from_parts(132_817_000, 0) + // Minimum execution time: 172_864_000 picoseconds. + Weight::from_parts(181_577_000, 0) .saturating_add(Weight::from_parts(0, 3928)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -105,8 +108,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `690` // Estimated: `6196` - // Minimum execution time: 72_237_000 picoseconds. - Weight::from_parts(73_906_000, 0) + // Minimum execution time: 92_816_000 picoseconds. + Weight::from_parts(102_956_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -118,11 +121,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `128 + k * (189 ±0)` // Estimated: `141 + k * (189 ±0)` - // Minimum execution time: 46_127_000 picoseconds. - Weight::from_parts(59_825_000, 0) + // Minimum execution time: 67_361_000 picoseconds. + Weight::from_parts(73_320_000, 0) .saturating_add(Weight::from_parts(0, 141)) - // Standard Error: 21_686 - .saturating_add(Weight::from_parts(38_510_266, 0).saturating_mul(k.into())) + // Standard Error: 30_080 + .saturating_add(Weight::from_parts(43_879_049, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -137,8 +140,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `515` // Estimated: `6196` - // Minimum execution time: 42_791_000 picoseconds. - Weight::from_parts(43_642_000, 0) + // Minimum execution time: 56_194_000 picoseconds. + Weight::from_parts(63_604_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -149,8 +152,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `235` // Estimated: `3700` - // Minimum execution time: 19_168_000 picoseconds. - Weight::from_parts(19_812_000, 0) + // Minimum execution time: 27_093_000 picoseconds. + Weight::from_parts(32_181_000, 0) .saturating_add(Weight::from_parts(0, 3700)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -163,8 +166,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `412` // Estimated: `3877` - // Minimum execution time: 25_222_000 picoseconds. - Weight::from_parts(26_025_000, 0) + // Minimum execution time: 39_489_000 picoseconds. + Weight::from_parts(44_798_000, 0) .saturating_add(Weight::from_parts(0, 3877)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -177,8 +180,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `239` // Estimated: `3704` - // Minimum execution time: 17_707_000 picoseconds. - Weight::from_parts(18_388_000, 0) + // Minimum execution time: 26_147_000 picoseconds. + Weight::from_parts(30_760_000, 0) .saturating_add(Weight::from_parts(0, 3704)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -208,11 +211,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `130 + n * (356 ±0)` // Estimated: `5385 + n * (2832 ±0)` - // Minimum execution time: 129_542_000 picoseconds. - Weight::from_parts(132_585_000, 0) + // Minimum execution time: 163_693_000 picoseconds. + Weight::from_parts(22_145_813, 0) .saturating_add(Weight::from_parts(0, 5385)) - // Standard Error: 62_947 - .saturating_add(Weight::from_parts(59_944_985, 0).saturating_mul(n.into())) + // Standard Error: 47_670 + .saturating_add(Weight::from_parts(72_049_146, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/kusama/src/weights/runtime_common_paras_registrar.rs b/runtime/kusama/src/weights/runtime_common_paras_registrar.rs index eac64423b121..9426d667346b 100644 --- a/runtime/kusama/src/weights/runtime_common_paras_registrar.rs +++ b/runtime/kusama/src/weights/runtime_common_paras_registrar.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::paras_registrar` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::paras_registrar // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `70` // Estimated: `3535` - // Minimum execution time: 28_760_000 picoseconds. - Weight::from_parts(29_194_000, 0) + // Minimum execution time: 30_262_000 picoseconds. + Weight::from_parts(30_881_000, 0) .saturating_add(Weight::from_parts(0, 3535)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -85,8 +88,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `329` // Estimated: `3794` - // Minimum execution time: 6_373_809_000 picoseconds. - Weight::from_parts(6_493_061_000, 0) + // Minimum execution time: 6_443_064_000 picoseconds. + Weight::from_parts(7_074_736_000, 0) .saturating_add(Weight::from_parts(0, 3794)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(8)) @@ -113,8 +116,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `219` // Estimated: `3684` - // Minimum execution time: 6_360_707_000 picoseconds. - Weight::from_parts(6_473_949_000, 0) + // Minimum execution time: 6_298_725_000 picoseconds. + Weight::from_parts(7_130_498_000, 0) .saturating_add(Weight::from_parts(0, 3684)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(8)) @@ -137,8 +140,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `476` // Estimated: `3941` - // Minimum execution time: 49_769_000 picoseconds. - Weight::from_parts(50_474_000, 0) + // Minimum execution time: 60_696_000 picoseconds. + Weight::from_parts(65_976_000, 0) .saturating_add(Weight::from_parts(0, 3941)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -161,8 +164,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `713` // Estimated: `6653` - // Minimum execution time: 54_021_000 picoseconds. - Weight::from_parts(56_638_000, 0) + // Minimum execution time: 72_165_000 picoseconds. + Weight::from_parts(80_369_000, 0) .saturating_add(Weight::from_parts(0, 6653)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) @@ -190,11 +193,11 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `177` // Estimated: `3642` - // Minimum execution time: 38_997_000 picoseconds. - Weight::from_parts(39_463_000, 0) + // Minimum execution time: 40_883_000 picoseconds. + Weight::from_parts(41_276_000, 0) .saturating_add(Weight::from_parts(0, 3642)) - // Standard Error: 6 - .saturating_add(Weight::from_parts(2_092, 0).saturating_mul(b.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(2_552, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -205,11 +208,11 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_869_000 picoseconds. - Weight::from_parts(8_926_000, 0) + // Minimum execution time: 8_864_000 picoseconds. + Weight::from_parts(9_023_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(887, 0).saturating_mul(b.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(983, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().writes(1)) } } diff --git a/runtime/kusama/src/weights/runtime_common_slots.rs b/runtime/kusama/src/weights/runtime_common_slots.rs index d3e9d2e4bac8..8c76ff2c693a 100644 --- a/runtime/kusama/src/weights/runtime_common_slots.rs +++ b/runtime/kusama/src/weights/runtime_common_slots.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::slots` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::slots // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 9_471_000 picoseconds. - Weight::from_parts(9_872_000, 0) + // Minimum execution time: 9_448_000 picoseconds. + Weight::from_parts(9_847_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -75,8 +76,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 9_555_000 picoseconds. - Weight::from_parts(9_800_000, 0) + // Minimum execution time: 9_493_000 picoseconds. + Weight::from_parts(9_882_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -91,8 +92,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 9_623_000 picoseconds. - Weight::from_parts(9_832_000, 0) + // Minimum execution time: 9_512_000 picoseconds. + Weight::from_parts(9_883_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -117,8 +118,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 9_482_000 picoseconds. - Weight::from_parts(9_797_000, 0) + // Minimum execution time: 9_452_000 picoseconds. + Weight::from_parts(9_821_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -133,8 +134,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 10_753_000 picoseconds. - Weight::from_parts(11_009_000, 0) + // Minimum execution time: 10_107_000 picoseconds. + Weight::from_parts(10_553_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/runtime_parachains_disputes.rs b/runtime/kusama/src/weights/runtime_parachains_disputes.rs index 126a5439be26..be78e3ac86b6 100644 --- a/runtime/kusama/src/weights/runtime_parachains_disputes.rs +++ b/runtime/kusama/src/weights/runtime_parachains_disputes.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::disputes // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl runtime_parachains::disputes::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_846_000 picoseconds. - Weight::from_parts(2_965_000, 0) + // Minimum execution time: 2_684_000 picoseconds. + Weight::from_parts(2_943_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/kusama/src/weights/runtime_parachains_disputes_slashing.rs b/runtime/kusama/src/weights/runtime_parachains_disputes_slashing.rs index c225717c340a..bcde1ef418d8 100644 --- a/runtime/kusama/src/weights/runtime_parachains_disputes_slashing.rs +++ b/runtime/kusama/src/weights/runtime_parachains_disputes_slashing.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes::slashing` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::disputes::slashing // --extrinsic=* // --execution=wasm @@ -51,8 +54,6 @@ impl runtime_parachains::disputes::slashing::WeightInfo /// Proof Skipped: Session CurrentIndex (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Historical HistoricalSessions (r:1 w:0) /// Proof: Historical HistoricalSessions (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParaSessionInfo Sessions (r:1 w:0) - /// Proof Skipped: ParaSessionInfo Sessions (max_values: None, max_size: None, mode: Measured) /// Storage: ParasSlashing UnappliedSlashes (r:1 w:1) /// Proof Skipped: ParasSlashing UnappliedSlashes (max_values: None, max_size: None, mode: Measured) /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) @@ -86,15 +87,15 @@ impl runtime_parachains::disputes::slashing::WeightInfo /// The range of component `n` is `[4, 1000]`. fn report_dispute_lost(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `5647 + n * (284 ±0)` - // Estimated: `8857 + n * (288 ±0)` - // Minimum execution time: 112_007_000 picoseconds. - Weight::from_parts(133_065_927, 0) - .saturating_add(Weight::from_parts(0, 8857)) - // Standard Error: 2_246 - .saturating_add(Weight::from_parts(287_218, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(18)) + // Measured: `5325 + n * (184 ±0)` + // Estimated: `8537 + n * (188 ±0)` + // Minimum execution time: 117_607_000 picoseconds. + Weight::from_parts(165_902_178, 0) + .saturating_add(Weight::from_parts(0, 8537)) + // Standard Error: 3_310 + .saturating_add(Weight::from_parts(358_233, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(17)) .saturating_add(T::DbWeight::get().writes(10)) - .saturating_add(Weight::from_parts(0, 288).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 188).saturating_mul(n.into())) } } diff --git a/runtime/kusama/src/weights/runtime_parachains_hrmp.rs b/runtime/kusama/src/weights/runtime_parachains_hrmp.rs index db7b3eb2aef8..64efe63c956f 100644 --- a/runtime/kusama/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/kusama/src/weights/runtime_parachains_hrmp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::hrmp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::hrmp // --extrinsic=* // --execution=wasm @@ -67,8 +70,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `350` // Estimated: `6290` - // Minimum execution time: 37_693_000 picoseconds. - Weight::from_parts(38_120_000, 0) + // Minimum execution time: 37_901_000 picoseconds. + Weight::from_parts(38_728_000, 0) .saturating_add(Weight::from_parts(0, 6290)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -89,8 +92,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `582` // Estimated: `4047` - // Minimum execution time: 36_808_000 picoseconds. - Weight::from_parts(37_557_000, 0) + // Minimum execution time: 37_634_000 picoseconds. + Weight::from_parts(38_332_000, 0) .saturating_add(Weight::from_parts(0, 4047)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -109,8 +112,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `453` // Estimated: `3918` - // Minimum execution time: 33_005_000 picoseconds. - Weight::from_parts(33_328_000, 0) + // Minimum execution time: 33_719_000 picoseconds. + Weight::from_parts(34_342_000, 0) .saturating_add(Weight::from_parts(0, 3918)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -133,13 +136,13 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `197 + e * (100 ±0) + i * (100 ±0)` // Estimated: `3659 + e * (2575 ±0) + i * (2575 ±0)` - // Minimum execution time: 1_079_297_000 picoseconds. - Weight::from_parts(1_101_267_000, 0) + // Minimum execution time: 1_267_013_000 picoseconds. + Weight::from_parts(1_283_708_000, 0) .saturating_add(Weight::from_parts(0, 3659)) - // Standard Error: 97_981 - .saturating_add(Weight::from_parts(3_177_225, 0).saturating_mul(i.into())) - // Standard Error: 97_981 - .saturating_add(Weight::from_parts(3_187_961, 0).saturating_mul(e.into())) + // Standard Error: 118_117 + .saturating_add(Weight::from_parts(3_722_255, 0).saturating_mul(i.into())) + // Standard Error: 118_117 + .saturating_add(Weight::from_parts(3_701_842, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(e.into()))) @@ -170,11 +173,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `425 + c * (136 ±0)` // Estimated: `1880 + c * (5086 ±0)` - // Minimum execution time: 7_130_000 picoseconds. - Weight::from_parts(1_917_787, 0) + // Minimum execution time: 6_798_000 picoseconds. + Weight::from_parts(6_921_000, 0) .saturating_add(Weight::from_parts(0, 1880)) - // Standard Error: 19_809 - .saturating_add(Weight::from_parts(18_756_271, 0).saturating_mul(c.into())) + // Standard Error: 12_517 + .saturating_add(Weight::from_parts(21_683_294, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -198,11 +201,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `268 + c * (124 ±0)` // Estimated: `1728 + c * (2600 ±0)` - // Minimum execution time: 5_294_000 picoseconds. - Weight::from_parts(3_586_486, 0) + // Minimum execution time: 5_695_000 picoseconds. + Weight::from_parts(5_776_000, 0) .saturating_add(Weight::from_parts(0, 1728)) - // Standard Error: 13_074 - .saturating_add(Weight::from_parts(11_469_437, 0).saturating_mul(c.into())) + // Standard Error: 11_189 + .saturating_add(Weight::from_parts(13_477_149, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -220,11 +223,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `959 + c * (13 ±0)` // Estimated: `4228 + c * (15 ±0)` - // Minimum execution time: 20_920_000 picoseconds. - Weight::from_parts(25_712_296, 0) + // Minimum execution time: 21_141_000 picoseconds. + Weight::from_parts(29_731_969, 0) .saturating_add(Weight::from_parts(0, 4228)) - // Standard Error: 1_480 - .saturating_add(Weight::from_parts(79_877, 0).saturating_mul(c.into())) + // Standard Error: 3_263 + .saturating_add(Weight::from_parts(198_283, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 15).saturating_mul(c.into())) @@ -238,11 +241,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `176 + c * (63 ±0)` // Estimated: `1655 + c * (2538 ±0)` - // Minimum execution time: 4_285_000 picoseconds. - Weight::from_parts(6_911_302, 0) + // Minimum execution time: 4_573_000 picoseconds. + Weight::from_parts(5_593_572, 0) .saturating_add(Weight::from_parts(0, 1655)) - // Standard Error: 3_218 - .saturating_add(Weight::from_parts(2_961_403, 0).saturating_mul(c.into())) + // Standard Error: 4_134 + .saturating_add(Weight::from_parts(3_565_821, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -273,8 +276,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `350` // Estimated: `6290` - // Minimum execution time: 51_517_000 picoseconds. - Weight::from_parts(52_313_000, 0) + // Minimum execution time: 53_253_000 picoseconds. + Weight::from_parts(55_141_000, 0) .saturating_add(Weight::from_parts(0, 6290)) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(8)) diff --git a/runtime/kusama/src/weights/runtime_parachains_inclusion.rs b/runtime/kusama/src/weights/runtime_parachains_inclusion.rs index c73998bef67e..9ca4b2fe2a7e 100644 --- a/runtime/kusama/src/weights/runtime_parachains_inclusion.rs +++ b/runtime/kusama/src/weights/runtime_parachains_inclusion.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::inclusion` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::inclusion // --extrinsic=* // --execution=wasm @@ -60,11 +63,11 @@ impl runtime_parachains::inclusion::WeightInfo for Weig // Proof Size summary in bytes: // Measured: `65761` // Estimated: `69051` - // Minimum execution time: 114_474_000 picoseconds. - Weight::from_parts(115_270_000, 0) + // Minimum execution time: 119_471_000 picoseconds. + Weight::from_parts(120_105_000, 0) .saturating_add(Weight::from_parts(0, 69051)) - // Standard Error: 80_288 - .saturating_add(Weight::from_parts(99_149_045, 0).saturating_mul(i.into())) + // Standard Error: 42_037 + .saturating_add(Weight::from_parts(103_436_040, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) diff --git a/runtime/kusama/src/weights/runtime_parachains_initializer.rs b/runtime/kusama/src/weights/runtime_parachains_initializer.rs index fc1d08daaa15..31878846d328 100644 --- a/runtime/kusama/src/weights/runtime_parachains_initializer.rs +++ b/runtime/kusama/src/weights/runtime_parachains_initializer.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::initializer` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::initializer // --extrinsic=* // --execution=wasm @@ -54,11 +57,11 @@ impl runtime_parachains::initializer::WeightInfo for We // Proof Size summary in bytes: // Measured: `0 + d * (11 ±0)` // Estimated: `1480 + d * (11 ±0)` - // Minimum execution time: 3_888_000 picoseconds. - Weight::from_parts(6_450_046, 0) + // Minimum execution time: 3_509_000 picoseconds. + Weight::from_parts(3_655_000, 0) .saturating_add(Weight::from_parts(0, 1480)) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_301, 0).saturating_mul(d.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(2_861, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 11).saturating_mul(d.into())) diff --git a/runtime/kusama/src/weights/runtime_parachains_paras.rs b/runtime/kusama/src/weights/runtime_parachains_paras.rs index 89e8c121dbab..44db16c4d286 100644 --- a/runtime/kusama/src/weights/runtime_parachains_paras.rs +++ b/runtime/kusama/src/weights/runtime_parachains_paras.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::paras` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::paras // --extrinsic=* // --execution=wasm @@ -64,11 +67,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `8309` // Estimated: `11774` - // Minimum execution time: 31_083_000 picoseconds. - Weight::from_parts(31_375_000, 0) + // Minimum execution time: 33_015_000 picoseconds. + Weight::from_parts(33_678_000, 0) .saturating_add(Weight::from_parts(0, 11774)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_989, 0).saturating_mul(c.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(2_417, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -79,11 +82,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_231_000 picoseconds. - Weight::from_parts(8_432_000, 0) + // Minimum execution time: 8_308_000 picoseconds. + Weight::from_parts(8_473_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(888, 0).saturating_mul(s.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(992, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Paras FutureCodeHash (r:1 w:1) @@ -109,11 +112,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `8428` // Estimated: `11893` - // Minimum execution time: 46_619_000 picoseconds. - Weight::from_parts(47_088_000, 0) + // Minimum execution time: 49_058_000 picoseconds. + Weight::from_parts(49_768_000, 0) .saturating_add(Weight::from_parts(0, 11893)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_011, 0).saturating_mul(c.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(2_541, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -128,11 +131,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `95` // Estimated: `3560` - // Minimum execution time: 13_313_000 picoseconds. - Weight::from_parts(13_485_000, 0) + // Minimum execution time: 13_559_000 picoseconds. + Weight::from_parts(13_774_000, 0) .saturating_add(Weight::from_parts(0, 3560)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(891, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_082, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -144,8 +147,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `4288` // Estimated: `7753` - // Minimum execution time: 19_172_000 picoseconds. - Weight::from_parts(19_503_000, 0) + // Minimum execution time: 20_213_000 picoseconds. + Weight::from_parts(20_576_000, 0) .saturating_add(Weight::from_parts(0, 7753)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -163,11 +166,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `659` // Estimated: `4124` - // Minimum execution time: 75_502_000 picoseconds. - Weight::from_parts(36_339_285, 0) + // Minimum execution time: 99_127_000 picoseconds. + Weight::from_parts(82_909_137, 0) .saturating_add(Weight::from_parts(0, 4124)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_499, 0).saturating_mul(c.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_848, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -179,8 +182,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `28` // Estimated: `3493` - // Minimum execution time: 5_833_000 picoseconds. - Weight::from_parts(6_071_000, 0) + // Minimum execution time: 5_816_000 picoseconds. + Weight::from_parts(6_139_000, 0) .saturating_add(Weight::from_parts(0, 3493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -195,8 +198,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `26682` // Estimated: `30147` - // Minimum execution time: 86_095_000 picoseconds. - Weight::from_parts(88_359_000, 0) + // Minimum execution time: 116_078_000 picoseconds. + Weight::from_parts(119_110_000, 0) .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -219,8 +222,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `27236` // Estimated: `30701` - // Minimum execution time: 773_880_000 picoseconds. - Weight::from_parts(782_923_000, 0) + // Minimum execution time: 934_879_000 picoseconds. + Weight::from_parts(946_892_000, 0) .saturating_add(Weight::from_parts(0, 30701)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(104)) @@ -235,8 +238,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `27214` // Estimated: `30679` - // Minimum execution time: 86_357_000 picoseconds. - Weight::from_parts(87_596_000, 0) + // Minimum execution time: 112_297_000 picoseconds. + Weight::from_parts(118_546_000, 0) .saturating_add(Weight::from_parts(0, 30679)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -255,8 +258,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `26704` // Estimated: `30169` - // Minimum execution time: 613_311_000 picoseconds. - Weight::from_parts(619_055_000, 0) + // Minimum execution time: 723_534_000 picoseconds. + Weight::from_parts(746_144_000, 0) .saturating_add(Weight::from_parts(0, 30169)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -271,8 +274,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `26682` // Estimated: `30147` - // Minimum execution time: 85_516_000 picoseconds. - Weight::from_parts(86_535_000, 0) + // Minimum execution time: 110_352_000 picoseconds. + Weight::from_parts(115_568_000, 0) .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs b/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs index 50b2e02364b1..639164af522b 100644 --- a/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs +++ b/runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs @@ -17,26 +17,27 @@ //! Autogenerated weights for `runtime_parachains::paras_inherent` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 // Executed Command: -// target/production/polkadot +// ./target/production/polkadot // benchmark // pallet +// --chain=kusama-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=runtime_parachains::paras_inherent // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json -// --pallet=runtime_parachains::paras_inherent -// --chain=kusama-dev // --header=./file_header.txt -// --output=./runtime/kusama/src/weights/ +// --output=./runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -114,11 +115,11 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `50671` // Estimated: `56611 + v * (23 ±0)` - // Minimum execution time: 800_725_000 picoseconds. - Weight::from_parts(336_254_020, 0) + // Minimum execution time: 982_516_000 picoseconds. + Weight::from_parts(453_473_787, 0) .saturating_add(Weight::from_parts(0, 56611)) - // Standard Error: 25_581 - .saturating_add(Weight::from_parts(48_329_153, 0).saturating_mul(v.into())) + // Standard Error: 21_034 + .saturating_add(Weight::from_parts(57_212_691, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(27)) .saturating_add(T::DbWeight::get().writes(15)) .saturating_add(Weight::from_parts(0, 23).saturating_mul(v.into())) @@ -185,8 +186,8 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42504` // Estimated: `48444` - // Minimum execution time: 352_534_000 picoseconds. - Weight::from_parts(361_737_000, 0) + // Minimum execution time: 465_674_000 picoseconds. + Weight::from_parts(483_678_000, 0) .saturating_add(Weight::from_parts(0, 48444)) .saturating_add(T::DbWeight::get().reads(25)) .saturating_add(T::DbWeight::get().writes(16)) @@ -258,11 +259,11 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42540` // Estimated: `48480` - // Minimum execution time: 5_727_163_000 picoseconds. - Weight::from_parts(969_937_276, 0) + // Minimum execution time: 6_886_272_000 picoseconds. + Weight::from_parts(1_235_371_688, 0) .saturating_add(Weight::from_parts(0, 48480)) - // Standard Error: 52_405 - .saturating_add(Weight::from_parts(47_875_548, 0).saturating_mul(v.into())) + // Standard Error: 28_012 + .saturating_add(Weight::from_parts(56_395_511, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(28)) .saturating_add(T::DbWeight::get().writes(15)) } @@ -336,8 +337,8 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42567` // Estimated: `48507` - // Minimum execution time: 32_796_206_000 picoseconds. - Weight::from_parts(33_220_759_000, 0) + // Minimum execution time: 42_215_280_000 picoseconds. + Weight::from_parts(43_255_598_000, 0) .saturating_add(Weight::from_parts(0, 48507)) .saturating_add(T::DbWeight::get().reads(30)) .saturating_add(T::DbWeight::get().writes(15)) diff --git a/runtime/polkadot/constants/src/weights/block_weights.rs b/runtime/polkadot/constants/src/weights/block_weights.rs index 12e92cf2eefa..9608fd534069 100644 --- a/runtime/polkadot/constants/src/weights/block_weights.rs +++ b/runtime/polkadot/constants/src/weights/block_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26 (Y/M/D) -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-06-18 (Y/M/D) +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 10_268_668, 10_615_349 - /// Average: 10_351_411 - /// Median: 10_334_352 - /// Std-Dev: 65235.93 + /// Min, Max: 13_546_462, 14_258_156 + /// Average: 13_806_190 + /// Median: 13_798_575 + /// Std-Dev: 141568.11 /// /// Percentiles nanoseconds: - /// 99th: 10_582_089 - /// 95th: 10_458_527 - /// 75th: 10_369_320 + /// 99th: 14_144_016 + /// 95th: 14_039_432 + /// 75th: 13_904_965 pub const BlockExecutionWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(10_351_411), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(13_806_190), 0); } #[cfg(test)] diff --git a/runtime/polkadot/constants/src/weights/extrinsic_weights.rs b/runtime/polkadot/constants/src/weights/extrinsic_weights.rs index 4c51a2c918de..fac87924821f 100644 --- a/runtime/polkadot/constants/src/weights/extrinsic_weights.rs +++ b/runtime/polkadot/constants/src/weights/extrinsic_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26 (Y/M/D) -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-06-18 (Y/M/D) +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 106_778, 108_997 - /// Average: 107_648 - /// Median: 107_566 - /// Std-Dev: 356.3 + /// Min, Max: 125_467, 127_402 + /// Average: 126_045 + /// Median: 126_039 + /// Std-Dev: 310.96 /// /// Percentiles nanoseconds: - /// 99th: 108_865 - /// 95th: 108_344 - /// 75th: 107_744 + /// 99th: 126_699 + /// 95th: 126_620 + /// 75th: 126_207 pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(107_648), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(126_045), 0); } #[cfg(test)] diff --git a/runtime/polkadot/src/weights/frame_benchmarking_baseline.rs b/runtime/polkadot/src/weights/frame_benchmarking_baseline.rs index 0edf676236fa..bb27fdc880ca 100644 --- a/runtime/polkadot/src/weights/frame_benchmarking_baseline.rs +++ b/runtime/polkadot/src/weights/frame_benchmarking_baseline.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_benchmarking::baseline` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=frame_benchmarking::baseline // --extrinsic=* // --execution=wasm @@ -52,8 +55,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 173_000 picoseconds. - Weight::from_parts(207_289, 0) + // Minimum execution time: 163_000 picoseconds. + Weight::from_parts(209_370, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -61,8 +64,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 166_000 picoseconds. - Weight::from_parts(202_031, 0) + // Minimum execution time: 159_000 picoseconds. + Weight::from_parts(203_916, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -70,8 +73,8 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 158_000 picoseconds. - Weight::from_parts(198_075, 0) + // Minimum execution time: 163_000 picoseconds. + Weight::from_parts(211_152, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 1000000]`. @@ -79,16 +82,16 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 169_000 picoseconds. - Weight::from_parts(204_599, 0) + // Minimum execution time: 165_000 picoseconds. + Weight::from_parts(205_618, 0) .saturating_add(Weight::from_parts(0, 0)) } fn hashing() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 19_679_600_000 picoseconds. - Weight::from_parts(19_769_646_000, 0) + // Minimum execution time: 22_794_873_000 picoseconds. + Weight::from_parts(22_858_244_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `i` is `[0, 100]`. @@ -96,10 +99,10 @@ impl frame_benchmarking::baseline::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 231_000 picoseconds. - Weight::from_parts(242_000, 0) + // Minimum execution time: 218_000 picoseconds. + Weight::from_parts(2_663_311, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 8_664 - .saturating_add(Weight::from_parts(46_990_353, 0).saturating_mul(i.into())) + // Standard Error: 6_556 + .saturating_add(Weight::from_parts(55_473_775, 0).saturating_mul(i.into())) } } diff --git a/runtime/polkadot/src/weights/frame_election_provider_support.rs b/runtime/polkadot/src/weights/frame_election_provider_support.rs index 46afd35dfa78..109c82884214 100644 --- a/runtime/polkadot/src/weights/frame_election_provider_support.rs +++ b/runtime/polkadot/src/weights/frame_election_provider_support.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_election_provider_support` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=frame_election_provider_support // --extrinsic=* // --execution=wasm @@ -54,13 +57,13 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_158_701_000 picoseconds. - Weight::from_parts(6_201_339_000, 0) + // Minimum execution time: 6_659_138_000 picoseconds. + Weight::from_parts(6_742_669_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 134_653 - .saturating_add(Weight::from_parts(5_675_928, 0).saturating_mul(v.into())) - // Standard Error: 13_766_537 - .saturating_add(Weight::from_parts(1_476_845_315, 0).saturating_mul(d.into())) + // Standard Error: 134_896 + .saturating_add(Weight::from_parts(5_872_242, 0).saturating_mul(v.into())) + // Standard Error: 13_791_372 + .saturating_add(Weight::from_parts(1_417_540_796, 0).saturating_mul(d.into())) } /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. @@ -69,12 +72,12 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_179_551_000 picoseconds. - Weight::from_parts(4_213_683_000, 0) + // Minimum execution time: 4_614_958_000 picoseconds. + Weight::from_parts(4_655_159_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 107_836 - .saturating_add(Weight::from_parts(4_264_723, 0).saturating_mul(v.into())) - // Standard Error: 11_024_831 - .saturating_add(Weight::from_parts(1_259_185_011, 0).saturating_mul(d.into())) + // Standard Error: 121_610 + .saturating_add(Weight::from_parts(4_875_919, 0).saturating_mul(v.into())) + // Standard Error: 12_432_980 + .saturating_add(Weight::from_parts(1_332_850_451, 0).saturating_mul(d.into())) } } diff --git a/runtime/polkadot/src/weights/frame_system.rs b/runtime/polkadot/src/weights/frame_system.rs index 268029e884e4..e6ece50fc8e0 100644 --- a/runtime/polkadot/src/weights/frame_system.rs +++ b/runtime/polkadot/src/weights/frame_system.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=frame_system // --extrinsic=* // --execution=wasm @@ -52,22 +55,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_338_000 picoseconds. - Weight::from_parts(2_439_000, 0) + // Minimum execution time: 1_933_000 picoseconds. + Weight::from_parts(2_016_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(365, 0).saturating_mul(b.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(469, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_515_000 picoseconds. - Weight::from_parts(7_584_000, 0) + // Minimum execution time: 7_415_000 picoseconds. + Weight::from_parts(7_513_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(1_398, 0).saturating_mul(b.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_834, 0).saturating_mul(b.into())) } /// Storage: System Digest (r:1 w:1) /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) @@ -77,8 +80,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 4_056_000 picoseconds. - Weight::from_parts(4_235_000, 0) + // Minimum execution time: 3_680_000 picoseconds. + Weight::from_parts(3_889_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -91,8 +94,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 82_169_624_000 picoseconds. - Weight::from_parts(85_473_027_000, 0) + // Minimum execution time: 92_505_621_000 picoseconds. + Weight::from_parts(96_677_957_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -104,11 +107,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_321_000 picoseconds. - Weight::from_parts(2_357_000, 0) + // Minimum execution time: 2_080_000 picoseconds. + Weight::from_parts(2_160_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_923 - .saturating_add(Weight::from_parts(662_311, 0).saturating_mul(i.into())) + // Standard Error: 1_639 + .saturating_add(Weight::from_parts(731_622, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -118,11 +121,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_297_000 picoseconds. - Weight::from_parts(2_367_000, 0) + // Minimum execution time: 2_135_000 picoseconds. + Weight::from_parts(2_184_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 743 - .saturating_add(Weight::from_parts(486_141, 0).saturating_mul(i.into())) + // Standard Error: 976 + .saturating_add(Weight::from_parts(554_293, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -132,11 +135,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `132 + p * (69 ±0)` // Estimated: `128 + p * (70 ±0)` - // Minimum execution time: 4_264_000 picoseconds. - Weight::from_parts(4_302_000, 0) + // Minimum execution time: 3_851_000 picoseconds. + Weight::from_parts(4_039_000, 0) .saturating_add(Weight::from_parts(0, 128)) - // Standard Error: 988 - .saturating_add(Weight::from_parts(1_013_913, 0).saturating_mul(p.into())) + // Standard Error: 1_612 + .saturating_add(Weight::from_parts(1_220_557, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) diff --git a/runtime/polkadot/src/weights/pallet_bags_list.rs b/runtime/polkadot/src/weights/pallet_bags_list.rs index 9e975836c77f..47decc88d73e 100644 --- a/runtime/polkadot/src/weights/pallet_bags_list.rs +++ b/runtime/polkadot/src/weights/pallet_bags_list.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bags_list` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_bags_list // --extrinsic=* // --execution=wasm @@ -59,8 +62,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1622` // Estimated: `11506` - // Minimum execution time: 62_340_000 picoseconds. - Weight::from_parts(63_195_000, 0) + // Minimum execution time: 61_742_000 picoseconds. + Weight::from_parts(63_696_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -77,8 +80,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1516` // Estimated: `8877` - // Minimum execution time: 60_800_000 picoseconds. - Weight::from_parts(61_444_000, 0) + // Minimum execution time: 60_247_000 picoseconds. + Weight::from_parts(62_096_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -97,8 +100,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1827` // Estimated: `11506` - // Minimum execution time: 67_340_000 picoseconds. - Weight::from_parts(67_963_000, 0) + // Minimum execution time: 67_049_000 picoseconds. + Weight::from_parts(68_704_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(6)) diff --git a/runtime/polkadot/src/weights/pallet_balances.rs b/runtime/polkadot/src/weights/pallet_balances.rs index 8e9d6116e9b3..374718082615 100644 --- a/runtime/polkadot/src/weights/pallet_balances.rs +++ b/runtime/polkadot/src/weights/pallet_balances.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_balances // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 53_000_000 picoseconds. - Weight::from_parts(53_429_000, 0) + // Minimum execution time: 56_740_000 picoseconds. + Weight::from_parts(57_361_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +68,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 40_689_000 picoseconds. - Weight::from_parts(41_144_000, 0) + // Minimum execution time: 42_767_000 picoseconds. + Weight::from_parts(43_195_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -77,8 +80,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 17_042_000 picoseconds. - Weight::from_parts(17_356_000, 0) + // Minimum execution time: 17_405_000 picoseconds. + Weight::from_parts(17_754_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -89,8 +92,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 23_709_000 picoseconds. - Weight::from_parts(24_210_000, 0) + // Minimum execution time: 24_580_000 picoseconds. + Weight::from_parts(25_063_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -101,8 +104,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 55_909_000 picoseconds. - Weight::from_parts(56_463_000, 0) + // Minimum execution time: 59_923_000 picoseconds. + Weight::from_parts(60_797_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -113,8 +116,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 49_143_000 picoseconds. - Weight::from_parts(49_682_000, 0) + // Minimum execution time: 52_587_000 picoseconds. + Weight::from_parts(53_496_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -125,8 +128,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 20_040_000 picoseconds. - Weight::from_parts(20_293_000, 0) + // Minimum execution time: 20_257_000 picoseconds. + Weight::from_parts(20_977_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +141,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (135 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 18_805_000 picoseconds. - Weight::from_parts(18_952_000, 0) + // Minimum execution time: 19_254_000 picoseconds. + Weight::from_parts(19_508_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 10_429 - .saturating_add(Weight::from_parts(14_177_322, 0).saturating_mul(u.into())) + // Standard Error: 12_504 + .saturating_add(Weight::from_parts(16_053_923, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) diff --git a/runtime/polkadot/src/weights/pallet_bounties.rs b/runtime/polkadot/src/weights/pallet_bounties.rs index 0666702dd712..62a417832901 100644 --- a/runtime/polkadot/src/weights/pallet_bounties.rs +++ b/runtime/polkadot/src/weights/pallet_bounties.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_bounties // --extrinsic=* // --execution=wasm @@ -60,11 +63,11 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `177` // Estimated: `3593` - // Minimum execution time: 29_425_000 picoseconds. - Weight::from_parts(30_250_569, 0) + // Minimum execution time: 30_000_000 picoseconds. + Weight::from_parts(31_021_890, 0) .saturating_add(Weight::from_parts(0, 3593)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(685, 0).saturating_mul(d.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(757, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -76,8 +79,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3642` - // Minimum execution time: 11_967_000 picoseconds. - Weight::from_parts(12_268_000, 0) + // Minimum execution time: 11_055_000 picoseconds. + Weight::from_parts(11_875_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -88,8 +91,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `289` // Estimated: `3642` - // Minimum execution time: 10_716_000 picoseconds. - Weight::from_parts(10_913_000, 0) + // Minimum execution time: 10_266_000 picoseconds. + Weight::from_parts(10_581_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -102,8 +105,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `465` // Estimated: `3642` - // Minimum execution time: 41_451_000 picoseconds. - Weight::from_parts(41_662_000, 0) + // Minimum execution time: 43_566_000 picoseconds. + Weight::from_parts(44_671_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -116,8 +119,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `461` // Estimated: `3642` - // Minimum execution time: 28_082_000 picoseconds. - Weight::from_parts(28_404_000, 0) + // Minimum execution time: 28_400_000 picoseconds. + Weight::from_parts(29_259_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -130,8 +133,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `439` // Estimated: `3642` - // Minimum execution time: 19_885_000 picoseconds. - Weight::from_parts(20_151_000, 0) + // Minimum execution time: 20_071_000 picoseconds. + Weight::from_parts(20_662_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -148,8 +151,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `803` // Estimated: `8799` - // Minimum execution time: 109_282_000 picoseconds. - Weight::from_parts(110_021_000, 0) + // Minimum execution time: 119_806_000 picoseconds. + Weight::from_parts(122_217_000, 0) .saturating_add(Weight::from_parts(0, 8799)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) @@ -166,8 +169,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `483` // Estimated: `3642` - // Minimum execution time: 46_707_000 picoseconds. - Weight::from_parts(47_234_000, 0) + // Minimum execution time: 48_528_000 picoseconds. + Weight::from_parts(49_592_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -184,8 +187,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `719` // Estimated: `6196` - // Minimum execution time: 73_983_000 picoseconds. - Weight::from_parts(74_950_000, 0) + // Minimum execution time: 79_963_000 picoseconds. + Weight::from_parts(81_894_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -196,8 +199,8 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `325` // Estimated: `3642` - // Minimum execution time: 15_943_000 picoseconds. - Weight::from_parts(16_314_000, 0) + // Minimum execution time: 15_794_000 picoseconds. + Weight::from_parts(16_237_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -213,11 +216,11 @@ impl pallet_bounties::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + b * (297 ±0)` // Estimated: `1887 + b * (5206 ±0)` - // Minimum execution time: 5_397_000 picoseconds. - Weight::from_parts(2_177_771, 0) + // Minimum execution time: 5_312_000 picoseconds. + Weight::from_parts(5_480_000, 0) .saturating_add(Weight::from_parts(0, 1887)) - // Standard Error: 17_621 - .saturating_add(Weight::from_parts(38_310_327, 0).saturating_mul(b.into())) + // Standard Error: 12_652 + .saturating_add(Weight::from_parts(45_246_882, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/pallet_child_bounties.rs b/runtime/polkadot/src/weights/pallet_child_bounties.rs index 5a950763b3a8..0e885883f093 100644 --- a/runtime/polkadot/src/weights/pallet_child_bounties.rs +++ b/runtime/polkadot/src/weights/pallet_child_bounties.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_child_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_child_bounties // --extrinsic=* // --execution=wasm @@ -64,11 +67,11 @@ impl pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_child_bounties::WeightInfo for WeightInfo pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` // Estimated: `15762 + m * (1967 ±16) + p * (4332 ±16)` - // Minimum execution time: 17_186_000 picoseconds. - Weight::from_parts(17_523_000, 0) + // Minimum execution time: 17_563_000 picoseconds. + Weight::from_parts(17_790_000, 0) .saturating_add(Weight::from_parts(0, 15762)) - // Standard Error: 41_289 - .saturating_add(Weight::from_parts(4_778_148, 0).saturating_mul(m.into())) - // Standard Error: 41_289 - .saturating_add(Weight::from_parts(7_271_415, 0).saturating_mul(p.into())) + // Standard Error: 43_106 + .saturating_add(Weight::from_parts(4_715_053, 0).saturating_mul(m.into())) + // Standard Error: 43_106 + .saturating_add(Weight::from_parts(8_200_250, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -89,13 +92,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103 + m * (32 ±0)` // Estimated: `1589 + m * (32 ±0)` - // Minimum execution time: 16_611_000 picoseconds. - Weight::from_parts(16_045_877, 0) + // Minimum execution time: 16_175_000 picoseconds. + Weight::from_parts(15_361_457, 0) .saturating_add(Weight::from_parts(0, 1589)) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_268, 0).saturating_mul(b.into())) - // Standard Error: 173 - .saturating_add(Weight::from_parts(13_486, 0).saturating_mul(m.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_795, 0).saturating_mul(b.into())) + // Standard Error: 184 + .saturating_add(Weight::from_parts(14_177, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -111,13 +114,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103 + m * (32 ±0)` // Estimated: `3569 + m * (32 ±0)` - // Minimum execution time: 19_380_000 picoseconds. - Weight::from_parts(18_747_503, 0) + // Minimum execution time: 18_948_000 picoseconds. + Weight::from_parts(18_240_525, 0) .saturating_add(Weight::from_parts(0, 3569)) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_168, 0).saturating_mul(b.into())) - // Standard Error: 172 - .saturating_add(Weight::from_parts(25_562, 0).saturating_mul(m.into())) + // Standard Error: 21 + .saturating_add(Weight::from_parts(1_603, 0).saturating_mul(b.into())) + // Standard Error: 224 + .saturating_add(Weight::from_parts(22_805, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -141,15 +144,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `393 + m * (32 ±0) + p * (36 ±0)` // Estimated: `3785 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 25_368_000 picoseconds. - Weight::from_parts(26_219_123, 0) + // Minimum execution time: 25_762_000 picoseconds. + Weight::from_parts(24_727_354, 0) .saturating_add(Weight::from_parts(0, 3785)) - // Standard Error: 47 - .saturating_add(Weight::from_parts(2_235, 0).saturating_mul(b.into())) - // Standard Error: 493 - .saturating_add(Weight::from_parts(17_422, 0).saturating_mul(m.into())) - // Standard Error: 486 - .saturating_add(Weight::from_parts(122_866, 0).saturating_mul(p.into())) + // Standard Error: 87 + .saturating_add(Weight::from_parts(3_653, 0).saturating_mul(b.into())) + // Standard Error: 908 + .saturating_add(Weight::from_parts(28_147, 0).saturating_mul(m.into())) + // Standard Error: 897 + .saturating_add(Weight::from_parts(198_752, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) @@ -165,11 +168,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `842 + m * (64 ±0)` // Estimated: `4306 + m * (64 ±0)` - // Minimum execution time: 22_475_000 picoseconds. - Weight::from_parts(23_179_966, 0) + // Minimum execution time: 26_644_000 picoseconds. + Weight::from_parts(27_694_655, 0) .saturating_add(Weight::from_parts(0, 4306)) - // Standard Error: 228 - .saturating_add(Weight::from_parts(42_468, 0).saturating_mul(m.into())) + // Standard Error: 624 + .saturating_add(Weight::from_parts(54_184, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -190,13 +193,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `431 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3876 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 27_342_000 picoseconds. - Weight::from_parts(28_499_907, 0) + // Minimum execution time: 27_742_000 picoseconds. + Weight::from_parts(27_892_765, 0) .saturating_add(Weight::from_parts(0, 3876)) - // Standard Error: 397 - .saturating_add(Weight::from_parts(19_421, 0).saturating_mul(m.into())) - // Standard Error: 387 - .saturating_add(Weight::from_parts(115_483, 0).saturating_mul(p.into())) + // Standard Error: 666 + .saturating_add(Weight::from_parts(35_102, 0).saturating_mul(m.into())) + // Standard Error: 649 + .saturating_add(Weight::from_parts(190_180, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -220,13 +223,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `733 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4050 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 38_089_000 picoseconds. - Weight::from_parts(40_502_642, 0) + // Minimum execution time: 39_283_000 picoseconds. + Weight::from_parts(40_633_810, 0) .saturating_add(Weight::from_parts(0, 4050)) - // Standard Error: 124 - .saturating_add(Weight::from_parts(1_913, 0).saturating_mul(b.into())) - // Standard Error: 1_287 - .saturating_add(Weight::from_parts(153_848, 0).saturating_mul(p.into())) + // Standard Error: 144 + .saturating_add(Weight::from_parts(3_292, 0).saturating_mul(b.into())) + // Standard Error: 1_524 + .saturating_add(Weight::from_parts(9_562, 0).saturating_mul(m.into())) + // Standard Error: 1_485 + .saturating_add(Weight::from_parts(237_159, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -251,13 +256,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `451 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3896 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 29_829_000 picoseconds. - Weight::from_parts(30_679_156, 0) + // Minimum execution time: 30_417_000 picoseconds. + Weight::from_parts(30_840_007, 0) .saturating_add(Weight::from_parts(0, 3896)) - // Standard Error: 398 - .saturating_add(Weight::from_parts(24_088, 0).saturating_mul(m.into())) - // Standard Error: 388 - .saturating_add(Weight::from_parts(118_731, 0).saturating_mul(p.into())) + // Standard Error: 662 + .saturating_add(Weight::from_parts(37_877, 0).saturating_mul(m.into())) + // Standard Error: 645 + .saturating_add(Weight::from_parts(189_312, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -283,15 +288,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `753 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4070 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 40_206_000 picoseconds. - Weight::from_parts(42_258_627, 0) + // Minimum execution time: 41_630_000 picoseconds. + Weight::from_parts(42_847_316, 0) .saturating_add(Weight::from_parts(0, 4070)) - // Standard Error: 91 - .saturating_add(Weight::from_parts(1_989, 0).saturating_mul(b.into())) - // Standard Error: 967 - .saturating_add(Weight::from_parts(22_435, 0).saturating_mul(m.into())) - // Standard Error: 943 - .saturating_add(Weight::from_parts(150_564, 0).saturating_mul(p.into())) + // Standard Error: 134 + .saturating_add(Weight::from_parts(3_962, 0).saturating_mul(b.into())) + // Standard Error: 1_423 + .saturating_add(Weight::from_parts(22_489, 0).saturating_mul(m.into())) + // Standard Error: 1_387 + .saturating_add(Weight::from_parts(244_543, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -310,11 +315,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `260 + p * (32 ±0)` // Estimated: `1745 + p * (32 ±0)` - // Minimum execution time: 15_513_000 picoseconds. - Weight::from_parts(17_526_357, 0) + // Minimum execution time: 15_754_000 picoseconds. + Weight::from_parts(17_477_133, 0) .saturating_add(Weight::from_parts(0, 1745)) - // Standard Error: 466 - .saturating_add(Weight::from_parts(110_138, 0).saturating_mul(p.into())) + // Standard Error: 608 + .saturating_add(Weight::from_parts(178_320, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) diff --git a/runtime/polkadot/src/weights/pallet_collective_technical_committee.rs b/runtime/polkadot/src/weights/pallet_collective_technical_committee.rs index 4fbae8a49e1a..07fb1209b0a1 100644 --- a/runtime/polkadot/src/weights/pallet_collective_technical_committee.rs +++ b/runtime/polkadot/src/weights/pallet_collective_technical_committee.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_collective // --extrinsic=* // --execution=wasm @@ -65,13 +68,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` // Estimated: `15800 + m * (1967 ±16) + p * (4332 ±16)` - // Minimum execution time: 17_784_000 picoseconds. - Weight::from_parts(17_964_000, 0) + // Minimum execution time: 18_203_000 picoseconds. + Weight::from_parts(18_473_000, 0) .saturating_add(Weight::from_parts(0, 15800)) - // Standard Error: 41_455 - .saturating_add(Weight::from_parts(4_806_384, 0).saturating_mul(m.into())) - // Standard Error: 41_455 - .saturating_add(Weight::from_parts(7_352_986, 0).saturating_mul(p.into())) + // Standard Error: 43_603 + .saturating_add(Weight::from_parts(4_734_955, 0).saturating_mul(m.into())) + // Standard Error: 43_603 + .saturating_add(Weight::from_parts(8_291_611, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -89,13 +92,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `141 + m * (32 ±0)` // Estimated: `1627 + m * (32 ±0)` - // Minimum execution time: 17_337_000 picoseconds. - Weight::from_parts(16_771_281, 0) + // Minimum execution time: 17_071_000 picoseconds. + Weight::from_parts(16_315_595, 0) .saturating_add(Weight::from_parts(0, 1627)) - // Standard Error: 13 - .saturating_add(Weight::from_parts(1_246, 0).saturating_mul(b.into())) - // Standard Error: 134 - .saturating_add(Weight::from_parts(10_771, 0).saturating_mul(m.into())) + // Standard Error: 14 + .saturating_add(Weight::from_parts(1_706, 0).saturating_mul(b.into())) + // Standard Error: 146 + .saturating_add(Weight::from_parts(13_626, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -111,13 +114,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `141 + m * (32 ±0)` // Estimated: `3607 + m * (32 ±0)` - // Minimum execution time: 20_183_000 picoseconds. - Weight::from_parts(19_490_643, 0) + // Minimum execution time: 19_983_000 picoseconds. + Weight::from_parts(18_925_239, 0) .saturating_add(Weight::from_parts(0, 3607)) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_158, 0).saturating_mul(b.into())) - // Standard Error: 150 - .saturating_add(Weight::from_parts(23_456, 0).saturating_mul(m.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_664, 0).saturating_mul(b.into())) + // Standard Error: 176 + .saturating_add(Weight::from_parts(23_169, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -141,15 +144,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `431 + m * (32 ±0) + p * (36 ±0)` // Estimated: `3823 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 26_350_000 picoseconds. - Weight::from_parts(27_334_953, 0) + // Minimum execution time: 26_490_000 picoseconds. + Weight::from_parts(25_739_853, 0) .saturating_add(Weight::from_parts(0, 3823)) - // Standard Error: 48 - .saturating_add(Weight::from_parts(2_173, 0).saturating_mul(b.into())) - // Standard Error: 504 - .saturating_add(Weight::from_parts(16_328, 0).saturating_mul(m.into())) - // Standard Error: 498 - .saturating_add(Weight::from_parts(123_132, 0).saturating_mul(p.into())) + // Standard Error: 77 + .saturating_add(Weight::from_parts(3_479, 0).saturating_mul(b.into())) + // Standard Error: 807 + .saturating_add(Weight::from_parts(28_438, 0).saturating_mul(m.into())) + // Standard Error: 796 + .saturating_add(Weight::from_parts(199_864, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) @@ -165,11 +168,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `880 + m * (64 ±0)` // Estimated: `4344 + m * (64 ±0)` - // Minimum execution time: 23_362_000 picoseconds. - Weight::from_parts(24_049_731, 0) + // Minimum execution time: 27_693_000 picoseconds. + Weight::from_parts(28_461_881, 0) .saturating_add(Weight::from_parts(0, 4344)) - // Standard Error: 287 - .saturating_add(Weight::from_parts(41_518, 0).saturating_mul(m.into())) + // Standard Error: 592 + .saturating_add(Weight::from_parts(55_442, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -190,13 +193,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3914 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 28_325_000 picoseconds. - Weight::from_parts(29_033_294, 0) + // Minimum execution time: 28_958_000 picoseconds. + Weight::from_parts(28_772_598, 0) .saturating_add(Weight::from_parts(0, 3914)) - // Standard Error: 388 - .saturating_add(Weight::from_parts(22_203, 0).saturating_mul(m.into())) - // Standard Error: 378 - .saturating_add(Weight::from_parts(117_790, 0).saturating_mul(p.into())) + // Standard Error: 673 + .saturating_add(Weight::from_parts(36_736, 0).saturating_mul(m.into())) + // Standard Error: 657 + .saturating_add(Weight::from_parts(191_282, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -220,15 +223,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `771 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4088 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 39_263_000 picoseconds. - Weight::from_parts(40_689_565, 0) + // Minimum execution time: 40_599_000 picoseconds. + Weight::from_parts(40_617_733, 0) .saturating_add(Weight::from_parts(0, 4088)) - // Standard Error: 83 - .saturating_add(Weight::from_parts(2_044, 0).saturating_mul(b.into())) - // Standard Error: 887 - .saturating_add(Weight::from_parts(21_716, 0).saturating_mul(m.into())) - // Standard Error: 864 - .saturating_add(Weight::from_parts(147_844, 0).saturating_mul(p.into())) + // Standard Error: 122 + .saturating_add(Weight::from_parts(3_479, 0).saturating_mul(b.into())) + // Standard Error: 1_296 + .saturating_add(Weight::from_parts(34_407, 0).saturating_mul(m.into())) + // Standard Error: 1_263 + .saturating_add(Weight::from_parts(236_766, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -253,13 +256,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `489 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3934 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 30_902_000 picoseconds. - Weight::from_parts(31_411_723, 0) + // Minimum execution time: 32_265_000 picoseconds. + Weight::from_parts(31_660_039, 0) .saturating_add(Weight::from_parts(0, 3934)) - // Standard Error: 378 - .saturating_add(Weight::from_parts(25_981, 0).saturating_mul(m.into())) - // Standard Error: 368 - .saturating_add(Weight::from_parts(120_072, 0).saturating_mul(p.into())) + // Standard Error: 689 + .saturating_add(Weight::from_parts(39_118, 0).saturating_mul(m.into())) + // Standard Error: 672 + .saturating_add(Weight::from_parts(192_797, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -285,15 +288,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `791 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4108 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 41_784_000 picoseconds. - Weight::from_parts(43_758_989, 0) + // Minimum execution time: 42_456_000 picoseconds. + Weight::from_parts(43_760_828, 0) .saturating_add(Weight::from_parts(0, 4108)) - // Standard Error: 94 - .saturating_add(Weight::from_parts(1_529, 0).saturating_mul(b.into())) - // Standard Error: 1_003 - .saturating_add(Weight::from_parts(22_161, 0).saturating_mul(m.into())) - // Standard Error: 977 - .saturating_add(Weight::from_parts(148_817, 0).saturating_mul(p.into())) + // Standard Error: 132 + .saturating_add(Weight::from_parts(3_531, 0).saturating_mul(b.into())) + // Standard Error: 1_397 + .saturating_add(Weight::from_parts(28_101, 0).saturating_mul(m.into())) + // Standard Error: 1_362 + .saturating_add(Weight::from_parts(248_244, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -312,11 +315,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `298 + p * (32 ±0)` // Estimated: `1783 + p * (32 ±0)` - // Minimum execution time: 16_192_000 picoseconds. - Weight::from_parts(18_102_877, 0) + // Minimum execution time: 16_506_000 picoseconds. + Weight::from_parts(18_127_000, 0) .saturating_add(Weight::from_parts(0, 1783)) - // Standard Error: 435 - .saturating_add(Weight::from_parts(111_478, 0).saturating_mul(p.into())) + // Standard Error: 616 + .saturating_add(Weight::from_parts(175_889, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) diff --git a/runtime/polkadot/src/weights/pallet_conviction_voting.rs b/runtime/polkadot/src/weights/pallet_conviction_voting.rs index 27750528d4e3..ce42464c292f 100644 --- a/runtime/polkadot/src/weights/pallet_conviction_voting.rs +++ b/runtime/polkadot/src/weights/pallet_conviction_voting.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_conviction_voting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_conviction_voting // --extrinsic=* // --execution=wasm @@ -63,8 +66,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `13551` // Estimated: `42428` - // Minimum execution time: 114_438_000 picoseconds. - Weight::from_parts(118_111_000, 0) + // Minimum execution time: 154_104_000 picoseconds. + Weight::from_parts(162_701_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -85,8 +88,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `14272` // Estimated: `83866` - // Minimum execution time: 181_361_000 picoseconds. - Weight::from_parts(184_800_000, 0) + // Minimum execution time: 241_839_000 picoseconds. + Weight::from_parts(251_787_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) @@ -101,8 +104,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `14024` // Estimated: `83866` - // Minimum execution time: 152_441_000 picoseconds. - Weight::from_parts(155_246_000, 0) + // Minimum execution time: 198_871_000 picoseconds. + Weight::from_parts(208_410_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -115,8 +118,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `13110` // Estimated: `30706` - // Minimum execution time: 61_745_000 picoseconds. - Weight::from_parts(63_899_000, 0) + // Minimum execution time: 86_480_000 picoseconds. + Weight::from_parts(90_343_000, 0) .saturating_add(Weight::from_parts(0, 30706)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +141,11 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `29746 + r * (365 ±0)` // Estimated: `83866 + r * (3411 ±0)` - // Minimum execution time: 65_789_000 picoseconds. - Weight::from_parts(1_603_714_264, 0) + // Minimum execution time: 82_384_000 picoseconds. + Weight::from_parts(1_967_705_239, 0) .saturating_add(Weight::from_parts(0, 83866)) - // Standard Error: 138_591 - .saturating_add(Weight::from_parts(38_375_668, 0).saturating_mul(r.into())) + // Standard Error: 169_648 + .saturating_add(Weight::from_parts(46_550_419, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(6)) @@ -160,11 +163,11 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `29661 + r * (365 ±0)` // Estimated: `83866 + r * (3411 ±0)` - // Minimum execution time: 36_299_000 picoseconds. - Weight::from_parts(1_572_849_432, 0) + // Minimum execution time: 50_266_000 picoseconds. + Weight::from_parts(1_956_854_151, 0) .saturating_add(Weight::from_parts(0, 83866)) - // Standard Error: 138_439 - .saturating_add(Weight::from_parts(38_120_454, 0).saturating_mul(r.into())) + // Standard Error: 172_335 + .saturating_add(Weight::from_parts(46_688_704, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -183,8 +186,8 @@ impl pallet_conviction_voting::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `12323` // Estimated: `30706` - // Minimum execution time: 83_395_000 picoseconds. - Weight::from_parts(85_085_000, 0) + // Minimum execution time: 114_930_000 picoseconds. + Weight::from_parts(122_209_000, 0) .saturating_add(Weight::from_parts(0, 30706)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/polkadot/src/weights/pallet_democracy.rs b/runtime/polkadot/src/weights/pallet_democracy.rs index 307e28a76ce4..069b10a2bcc5 100644 --- a/runtime/polkadot/src/weights/pallet_democracy.rs +++ b/runtime/polkadot/src/weights/pallet_democracy.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_democracy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_democracy // --extrinsic=* // --execution=wasm @@ -59,8 +62,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4768` // Estimated: `18187` - // Minimum execution time: 39_969_000 picoseconds. - Weight::from_parts(40_494_000, 0) + // Minimum execution time: 47_165_000 picoseconds. + Weight::from_parts(48_488_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -71,8 +74,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3523` // Estimated: `6695` - // Minimum execution time: 36_939_000 picoseconds. - Weight::from_parts(37_265_000, 0) + // Minimum execution time: 41_328_000 picoseconds. + Weight::from_parts(42_526_000, 0) .saturating_add(Weight::from_parts(0, 6695)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -89,8 +92,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3437` // Estimated: `7260` - // Minimum execution time: 49_599_000 picoseconds. - Weight::from_parts(50_098_000, 0) + // Minimum execution time: 57_941_000 picoseconds. + Weight::from_parts(59_547_000, 0) .saturating_add(Weight::from_parts(0, 7260)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -107,8 +110,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3459` // Estimated: `7260` - // Minimum execution time: 54_081_000 picoseconds. - Weight::from_parts(54_745_000, 0) + // Minimum execution time: 63_933_000 picoseconds. + Weight::from_parts(65_560_000, 0) .saturating_add(Weight::from_parts(0, 7260)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -123,8 +126,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `333` // Estimated: `3666` - // Minimum execution time: 26_892_000 picoseconds. - Weight::from_parts(27_432_000, 0) + // Minimum execution time: 26_501_000 picoseconds. + Weight::from_parts(26_882_000, 0) .saturating_add(Weight::from_parts(0, 3666)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -147,8 +150,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `5877` // Estimated: `18187` - // Minimum execution time: 97_902_000 picoseconds. - Weight::from_parts(99_167_000, 0) + // Minimum execution time: 111_868_000 picoseconds. + Weight::from_parts(116_733_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) @@ -161,8 +164,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3383` // Estimated: `6703` - // Minimum execution time: 14_249_000 picoseconds. - Weight::from_parts(14_626_000, 0) + // Minimum execution time: 13_786_000 picoseconds. + Weight::from_parts(14_280_000, 0) .saturating_add(Weight::from_parts(0, 6703)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -173,8 +176,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_658_000 picoseconds. - Weight::from_parts(3_788_000, 0) + // Minimum execution time: 3_320_000 picoseconds. + Weight::from_parts(3_467_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -184,8 +187,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_800_000 picoseconds. - Weight::from_parts(3_879_000, 0) + // Minimum execution time: 3_540_000 picoseconds. + Weight::from_parts(3_681_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -201,8 +204,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `253` // Estimated: `3518` - // Minimum execution time: 27_937_000 picoseconds. - Weight::from_parts(28_655_000, 0) + // Minimum execution time: 28_074_000 picoseconds. + Weight::from_parts(28_980_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(5)) @@ -217,8 +220,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3486` // Estimated: `6703` - // Minimum execution time: 31_874_000 picoseconds. - Weight::from_parts(32_268_000, 0) + // Minimum execution time: 32_243_000 picoseconds. + Weight::from_parts(32_604_000, 0) .saturating_add(Weight::from_parts(0, 6703)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -235,8 +238,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `5788` // Estimated: `18187` - // Minimum execution time: 80_450_000 picoseconds. - Weight::from_parts(81_381_000, 0) + // Minimum execution time: 93_410_000 picoseconds. + Weight::from_parts(95_323_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -249,8 +252,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3518` - // Minimum execution time: 20_593_000 picoseconds. - Weight::from_parts(20_851_000, 0) + // Minimum execution time: 20_185_000 picoseconds. + Weight::from_parts(20_661_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -266,11 +269,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211 + r * (86 ±0)` // Estimated: `1489 + r * (2676 ±0)` - // Minimum execution time: 7_156_000 picoseconds. - Weight::from_parts(9_576_353, 0) + // Minimum execution time: 7_484_000 picoseconds. + Weight::from_parts(8_532_503, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 5_709 - .saturating_add(Weight::from_parts(2_799_949, 0).saturating_mul(r.into())) + // Standard Error: 6_320 + .saturating_add(Weight::from_parts(3_176_208, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -293,11 +296,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211 + r * (86 ±0)` // Estimated: `18187 + r * (2676 ±0)` - // Minimum execution time: 9_906_000 picoseconds. - Weight::from_parts(13_061_330, 0) + // Minimum execution time: 10_406_000 picoseconds. + Weight::from_parts(11_689_093, 0) .saturating_add(Weight::from_parts(0, 18187)) - // Standard Error: 5_952 - .saturating_add(Weight::from_parts(2_771_886, 0).saturating_mul(r.into())) + // Standard Error: 7_450 + .saturating_add(Weight::from_parts(3_172_162, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -316,11 +319,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `797 + r * (108 ±0)` // Estimated: `19800 + r * (2676 ±0)` - // Minimum execution time: 42_956_000 picoseconds. - Weight::from_parts(47_780_848, 0) + // Minimum execution time: 42_210_000 picoseconds. + Weight::from_parts(47_151_756, 0) .saturating_add(Weight::from_parts(0, 19800)) - // Standard Error: 7_212 - .saturating_add(Weight::from_parts(3_945_465, 0).saturating_mul(r.into())) + // Standard Error: 9_095 + .saturating_add(Weight::from_parts(4_553_285, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -336,11 +339,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `460 + r * (108 ±0)` // Estimated: `13530 + r * (2676 ±0)` - // Minimum execution time: 21_954_000 picoseconds. - Weight::from_parts(24_135_267, 0) + // Minimum execution time: 21_815_000 picoseconds. + Weight::from_parts(21_914_769, 0) .saturating_add(Weight::from_parts(0, 13530)) - // Standard Error: 5_688 - .saturating_add(Weight::from_parts(3_878_222, 0).saturating_mul(r.into())) + // Standard Error: 7_866 + .saturating_add(Weight::from_parts(4_497_036, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -353,8 +356,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_638_000 picoseconds. - Weight::from_parts(3_714_000, 0) + // Minimum execution time: 3_315_000 picoseconds. + Weight::from_parts(3_525_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -371,11 +374,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `530` // Estimated: `7260` - // Minimum execution time: 24_889_000 picoseconds. - Weight::from_parts(37_731_123, 0) + // Minimum execution time: 25_326_000 picoseconds. + Weight::from_parts(40_406_995, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 2_892 - .saturating_add(Weight::from_parts(32_435, 0).saturating_mul(r.into())) + // Standard Error: 3_775 + .saturating_add(Weight::from_parts(111_536, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -392,11 +395,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `531 + r * (22 ±0)` // Estimated: `7260` - // Minimum execution time: 34_731_000 picoseconds. - Weight::from_parts(36_377_948, 0) + // Minimum execution time: 35_263_000 picoseconds. + Weight::from_parts(39_034_189, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 615 - .saturating_add(Weight::from_parts(58_305, 0).saturating_mul(r.into())) + // Standard Error: 2_263 + .saturating_add(Weight::from_parts(143_605, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -409,11 +412,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `695 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 17_027_000 picoseconds. - Weight::from_parts(19_371_582, 0) + // Minimum execution time: 15_880_000 picoseconds. + Weight::from_parts(19_395_916, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 841 - .saturating_add(Weight::from_parts(71_562, 0).saturating_mul(r.into())) + // Standard Error: 1_616 + .saturating_add(Weight::from_parts(144_889, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -426,11 +429,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `695 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 17_321_000 picoseconds. - Weight::from_parts(19_651_381, 0) + // Minimum execution time: 16_157_000 picoseconds. + Weight::from_parts(19_671_561, 0) .saturating_add(Weight::from_parts(0, 7260)) - // Standard Error: 967 - .saturating_add(Weight::from_parts(69_768, 0).saturating_mul(r.into())) + // Standard Error: 1_803 + .saturating_add(Weight::from_parts(143_214, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -444,8 +447,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `323` // Estimated: `3556` - // Minimum execution time: 18_661_000 picoseconds. - Weight::from_parts(19_210_000, 0) + // Minimum execution time: 18_768_000 picoseconds. + Weight::from_parts(19_420_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -458,8 +461,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `253` // Estimated: `3518` - // Minimum execution time: 17_484_000 picoseconds. - Weight::from_parts(17_885_000, 0) + // Minimum execution time: 17_184_000 picoseconds. + Weight::from_parts(17_768_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -474,8 +477,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4855` // Estimated: `18187` - // Minimum execution time: 33_899_000 picoseconds. - Weight::from_parts(34_327_000, 0) + // Minimum execution time: 40_295_000 picoseconds. + Weight::from_parts(41_356_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -488,8 +491,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4789` // Estimated: `18187` - // Minimum execution time: 31_782_000 picoseconds. - Weight::from_parts(32_184_000, 0) + // Minimum execution time: 37_215_000 picoseconds. + Weight::from_parts(38_297_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -502,8 +505,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 15_414_000 picoseconds. - Weight::from_parts(15_612_000, 0) + // Minimum execution time: 14_960_000 picoseconds. + Weight::from_parts(15_339_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -516,8 +519,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3666` - // Minimum execution time: 19_516_000 picoseconds. - Weight::from_parts(19_764_000, 0) + // Minimum execution time: 19_182_000 picoseconds. + Weight::from_parts(19_788_000, 0) .saturating_add(Weight::from_parts(0, 3666)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/pallet_election_provider_multi_phase.rs b/runtime/polkadot/src/weights/pallet_election_provider_multi_phase.rs index 6ecd51e37bc4..f16da40e8ece 100644 --- a/runtime/polkadot/src/weights/pallet_election_provider_multi_phase.rs +++ b/runtime/polkadot/src/weights/pallet_election_provider_multi_phase.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_election_provider_multi_phase` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_election_provider_multi_phase // --extrinsic=* // --execution=wasm @@ -67,8 +70,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `993` // Estimated: `3481` - // Minimum execution time: 18_813_000 picoseconds. - Weight::from_parts(19_474_000, 0) + // Minimum execution time: 19_675_000 picoseconds. + Weight::from_parts(20_310_000, 0) .saturating_add(Weight::from_parts(0, 3481)) .saturating_add(T::DbWeight::get().reads(8)) } @@ -80,8 +83,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `114` // Estimated: `1599` - // Minimum execution time: 13_578_000 picoseconds. - Weight::from_parts(13_926_000, 0) + // Minimum execution time: 12_119_000 picoseconds. + Weight::from_parts(12_730_000, 0) .saturating_add(Weight::from_parts(0, 1599)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -94,8 +97,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `114` // Estimated: `1599` - // Minimum execution time: 14_776_000 picoseconds. - Weight::from_parts(15_271_000, 0) + // Minimum execution time: 13_456_000 picoseconds. + Weight::from_parts(13_787_000, 0) .saturating_add(Weight::from_parts(0, 1599)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -108,8 +111,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 30_542_000 picoseconds. - Weight::from_parts(31_105_000, 0) + // Minimum execution time: 33_871_000 picoseconds. + Weight::from_parts(34_289_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +123,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 21_163_000 picoseconds. - Weight::from_parts(21_698_000, 0) + // Minimum execution time: 22_897_000 picoseconds. + Weight::from_parts(23_307_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +141,11 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 463_295_000 picoseconds. - Weight::from_parts(475_815_000, 0) + // Minimum execution time: 556_279_000 picoseconds. + Weight::from_parts(581_580_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_553 - .saturating_add(Weight::from_parts(270_173, 0).saturating_mul(v.into())) + // Standard Error: 3_088 + .saturating_add(Weight::from_parts(312_241, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) @@ -171,13 +174,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `338 + a * (768 ±0) + d * (48 ±0)` // Estimated: `3890 + a * (768 ±0) + d * (49 ±0)` - // Minimum execution time: 287_420_000 picoseconds. - Weight::from_parts(67_678_335, 0) + // Minimum execution time: 420_334_000 picoseconds. + Weight::from_parts(18_023_312, 0) .saturating_add(Weight::from_parts(0, 3890)) - // Standard Error: 3_162 - .saturating_add(Weight::from_parts(350_650, 0).saturating_mul(a.into())) - // Standard Error: 4_741 - .saturating_add(Weight::from_parts(159_110, 0).saturating_mul(d.into())) + // Standard Error: 7_565 + .saturating_add(Weight::from_parts(659_974, 0).saturating_mul(a.into())) + // Standard Error: 11_339 + .saturating_add(Weight::from_parts(287_336, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(9)) .saturating_add(Weight::from_parts(0, 768).saturating_mul(a.into())) @@ -199,8 +202,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `1204` // Estimated: `2689` - // Minimum execution time: 47_101_000 picoseconds. - Weight::from_parts(47_656_000, 0) + // Minimum execution time: 49_669_000 picoseconds. + Weight::from_parts(52_076_000, 0) .saturating_add(Weight::from_parts(0, 2689)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -227,13 +230,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `219 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1704 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 4_961_265_000 picoseconds. - Weight::from_parts(4_997_281_000, 0) + // Minimum execution time: 5_966_688_000 picoseconds. + Weight::from_parts(6_129_265_000, 0) .saturating_add(Weight::from_parts(0, 1704)) - // Standard Error: 17_513 - .saturating_add(Weight::from_parts(103_620, 0).saturating_mul(v.into())) - // Standard Error: 51_900 - .saturating_add(Weight::from_parts(4_434_894, 0).saturating_mul(a.into())) + // Standard Error: 20_174 + .saturating_add(Weight::from_parts(154_243, 0).saturating_mul(v.into())) + // Standard Error: 59_786 + .saturating_add(Weight::from_parts(5_709_666, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) @@ -255,13 +258,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `194 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1679 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 4_183_198_000 picoseconds. - Weight::from_parts(4_206_878_000, 0) + // Minimum execution time: 5_058_457_000 picoseconds. + Weight::from_parts(5_216_393_000, 0) .saturating_add(Weight::from_parts(0, 1679)) - // Standard Error: 13_924 - .saturating_add(Weight::from_parts(262_602, 0).saturating_mul(v.into())) - // Standard Error: 41_264 - .saturating_add(Weight::from_parts(3_073_902, 0).saturating_mul(a.into())) + // Standard Error: 15_829 + .saturating_add(Weight::from_parts(278_945, 0).saturating_mul(v.into())) + // Standard Error: 46_908 + .saturating_add(Weight::from_parts(3_239_889, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) .saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into())) diff --git a/runtime/polkadot/src/weights/pallet_elections_phragmen.rs b/runtime/polkadot/src/weights/pallet_elections_phragmen.rs index 376bb2055ade..e93de0c14c1c 100644 --- a/runtime/polkadot/src/weights/pallet_elections_phragmen.rs +++ b/runtime/polkadot/src/weights/pallet_elections_phragmen.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_elections_phragmen` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_elections_phragmen // --extrinsic=* // --execution=wasm @@ -64,11 +67,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `369 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 31_706_000 picoseconds. - Weight::from_parts(32_421_047, 0) + // Minimum execution time: 32_711_000 picoseconds. + Weight::from_parts(33_843_954, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_231 - .saturating_add(Weight::from_parts(149_131, 0).saturating_mul(v.into())) + // Standard Error: 3_332 + .saturating_add(Weight::from_parts(148_060, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) @@ -90,11 +93,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `337 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 43_692_000 picoseconds. - Weight::from_parts(44_247_574, 0) + // Minimum execution time: 46_078_000 picoseconds. + Weight::from_parts(46_574_818, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_442 - .saturating_add(Weight::from_parts(145_571, 0).saturating_mul(v.into())) + // Standard Error: 3_834 + .saturating_add(Weight::from_parts(182_895, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) @@ -116,11 +119,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `369 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 43_900_000 picoseconds. - Weight::from_parts(44_349_839, 0) + // Minimum execution time: 45_677_000 picoseconds. + Weight::from_parts(46_613_391, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_917 - .saturating_add(Weight::from_parts(150_475, 0).saturating_mul(v.into())) + // Standard Error: 4_271 + .saturating_add(Weight::from_parts(180_095, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) @@ -135,8 +138,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `891` // Estimated: `4764` - // Minimum execution time: 44_836_000 picoseconds. - Weight::from_parts(45_631_000, 0) + // Minimum execution time: 47_963_000 picoseconds. + Weight::from_parts(48_833_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -152,11 +155,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `2358 + c * (48 ±0)` // Estimated: `3841 + c * (48 ±0)` - // Minimum execution time: 33_381_000 picoseconds. - Weight::from_parts(26_474_842, 0) + // Minimum execution time: 39_368_000 picoseconds. + Weight::from_parts(28_568_416, 0) .saturating_add(Weight::from_parts(0, 3841)) - // Standard Error: 845 - .saturating_add(Weight::from_parts(82_709, 0).saturating_mul(c.into())) + // Standard Error: 1_416 + .saturating_add(Weight::from_parts(131_107, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into())) @@ -168,11 +171,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `250 + c * (48 ±0)` // Estimated: `1722 + c * (48 ±0)` - // Minimum execution time: 29_465_000 picoseconds. - Weight::from_parts(22_140_234, 0) + // Minimum execution time: 34_977_000 picoseconds. + Weight::from_parts(24_677_388, 0) .saturating_add(Weight::from_parts(0, 1722)) - // Standard Error: 890 - .saturating_add(Weight::from_parts(58_966, 0).saturating_mul(c.into())) + // Standard Error: 1_498 + .saturating_add(Weight::from_parts(100_855, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into())) @@ -191,8 +194,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `2599` // Estimated: `4084` - // Minimum execution time: 45_334_000 picoseconds. - Weight::from_parts(45_998_000, 0) + // Minimum execution time: 52_891_000 picoseconds. + Weight::from_parts(53_852_000, 0) .saturating_add(Weight::from_parts(0, 4084)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -203,8 +206,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `1711` // Estimated: `3196` - // Minimum execution time: 30_234_000 picoseconds. - Weight::from_parts(30_790_000, 0) + // Minimum execution time: 36_514_000 picoseconds. + Weight::from_parts(37_441_000, 0) .saturating_add(Weight::from_parts(0, 3196)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -235,8 +238,8 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `2599` // Estimated: `4084` - // Minimum execution time: 62_917_000 picoseconds. - Weight::from_parts(63_253_000, 0) + // Minimum execution time: 73_160_000 picoseconds. + Weight::from_parts(74_548_000, 0) .saturating_add(Weight::from_parts(0, 4084)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -261,11 +264,11 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `36028 + v * (808 ±0)` // Estimated: `39768 + v * (3774 ±0)` - // Minimum execution time: 375_028_005_000 picoseconds. - Weight::from_parts(375_314_106_000, 0) + // Minimum execution time: 434_369_619_000 picoseconds. + Weight::from_parts(436_606_328_000, 0) .saturating_add(Weight::from_parts(0, 39768)) - // Standard Error: 314_247 - .saturating_add(Weight::from_parts(45_913_248, 0).saturating_mul(v.into())) + // Standard Error: 365_744 + .saturating_add(Weight::from_parts(53_633_149, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(v.into()))) @@ -296,13 +299,13 @@ impl pallet_elections_phragmen::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0 + e * (28 ±0) + v * (607 ±0)` // Estimated: `2771984 + c * (2560 ±0) + e * (16 ±0) + v * (2744 ±4)` - // Minimum execution time: 35_217_823_000 picoseconds. - Weight::from_parts(35_344_318_000, 0) + // Minimum execution time: 39_817_678_000 picoseconds. + Weight::from_parts(40_023_537_000, 0) .saturating_add(Weight::from_parts(0, 2771984)) - // Standard Error: 454_138 - .saturating_add(Weight::from_parts(37_389_814, 0).saturating_mul(v.into())) - // Standard Error: 29_143 - .saturating_add(Weight::from_parts(2_031_948, 0).saturating_mul(e.into())) + // Standard Error: 411_583 + .saturating_add(Weight::from_parts(34_005_169, 0).saturating_mul(v.into())) + // Standard Error: 26_412 + .saturating_add(Weight::from_parts(1_743_887, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(269)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) diff --git a/runtime/polkadot/src/weights/pallet_fast_unstake.rs b/runtime/polkadot/src/weights/pallet_fast_unstake.rs index c91925e937ea..38771e04cb57 100644 --- a/runtime/polkadot/src/weights/pallet_fast_unstake.rs +++ b/runtime/polkadot/src/weights/pallet_fast_unstake.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_fast_unstake` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_fast_unstake // --extrinsic=* // --execution=wasm @@ -82,11 +85,11 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1057 + b * (359 ±0)` // Estimated: `2542 + b * (3774 ±0)` - // Minimum execution time: 87_555_000 picoseconds. - Weight::from_parts(39_559_634, 0) + // Minimum execution time: 89_149_000 picoseconds. + Weight::from_parts(41_025_862, 0) .saturating_add(Weight::from_parts(0, 2542)) - // Standard Error: 23_290 - .saturating_add(Weight::from_parts(52_065_741, 0).saturating_mul(b.into())) + // Standard Error: 41_892 + .saturating_add(Weight::from_parts(56_756_404, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -113,13 +116,13 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1411 + b * (48 ±0) + v * (19511 ±0)` // Estimated: `4726 + b * (52 ±0) + v * (21987 ±0)` - // Minimum execution time: 608_230_000 picoseconds. - Weight::from_parts(610_063_000, 0) + // Minimum execution time: 645_357_000 picoseconds. + Weight::from_parts(650_793_000, 0) .saturating_add(Weight::from_parts(0, 4726)) - // Standard Error: 5_579_650 - .saturating_add(Weight::from_parts(186_488_816, 0).saturating_mul(v.into())) - // Standard Error: 89_536_624 - .saturating_add(Weight::from_parts(2_799_095_957, 0).saturating_mul(b.into())) + // Standard Error: 5_811_859 + .saturating_add(Weight::from_parts(194_264_130, 0).saturating_mul(v.into())) + // Standard Error: 93_262_882 + .saturating_add(Weight::from_parts(2_905_419_408, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -160,8 +163,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1919` // Estimated: `6248` - // Minimum execution time: 121_694_000 picoseconds. - Weight::from_parts(122_644_000, 0) + // Minimum execution time: 128_072_000 picoseconds. + Weight::from_parts(133_183_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(10)) @@ -180,8 +183,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1118` // Estimated: `4556` - // Minimum execution time: 40_323_000 picoseconds. - Weight::from_parts(40_980_000, 0) + // Minimum execution time: 40_801_000 picoseconds. + Weight::from_parts(42_396_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -192,8 +195,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_639_000 picoseconds. - Weight::from_parts(2_727_000, 0) + // Minimum execution time: 2_531_000 picoseconds. + Weight::from_parts(2_706_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/pallet_identity.rs b/runtime/polkadot/src/weights/pallet_identity.rs index a249cf352caa..8ec244ea127c 100644 --- a/runtime/polkadot/src/weights/pallet_identity.rs +++ b/runtime/polkadot/src/weights/pallet_identity.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_identity` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_identity // --extrinsic=* // --execution=wasm @@ -54,11 +57,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 12_229_000 picoseconds. - Weight::from_parts(12_744_845, 0) + // Minimum execution time: 12_135_000 picoseconds. + Weight::from_parts(12_609_967, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_380 - .saturating_add(Weight::from_parts(86_209, 0).saturating_mul(r.into())) + // Standard Error: 2_052 + .saturating_add(Weight::from_parts(100_719, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -70,13 +73,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `442 + r * (5 ±0)` // Estimated: `11003` - // Minimum execution time: 31_533_000 picoseconds. - Weight::from_parts(30_833_956, 0) + // Minimum execution time: 32_888_000 picoseconds. + Weight::from_parts(30_128_985, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_017 - .saturating_add(Weight::from_parts(87_620, 0).saturating_mul(r.into())) - // Standard Error: 393 - .saturating_add(Weight::from_parts(482_950, 0).saturating_mul(x.into())) + // Standard Error: 5_003 + .saturating_add(Weight::from_parts(185_434, 0).saturating_mul(r.into())) + // Standard Error: 976 + .saturating_add(Weight::from_parts(470_886, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -91,11 +94,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `101` // Estimated: `11003 + s * (2589 ±0)` - // Minimum execution time: 9_272_000 picoseconds. - Weight::from_parts(24_481_419, 0) + // Minimum execution time: 8_780_000 picoseconds. + Weight::from_parts(21_992_489, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_799 - .saturating_add(Weight::from_parts(2_675_450, 0).saturating_mul(s.into())) + // Standard Error: 3_846 + .saturating_add(Weight::from_parts(3_111_150, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -113,11 +116,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `194 + p * (32 ±0)` // Estimated: `11003` - // Minimum execution time: 9_158_000 picoseconds. - Weight::from_parts(23_481_724, 0) + // Minimum execution time: 8_828_000 picoseconds. + Weight::from_parts(22_708_063, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_312 - .saturating_add(Weight::from_parts(1_092_186, 0).saturating_mul(p.into())) + // Standard Error: 3_578 + .saturating_add(Weight::from_parts(1_303_160, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) @@ -131,17 +134,19 @@ impl pallet_identity::WeightInfo for WeightInfo { /// The range of component `r` is `[1, 20]`. /// The range of component `s` is `[0, 100]`. /// The range of component `x` is `[0, 100]`. - fn clear_identity(_r: u32, s: u32, x: u32, ) -> Weight { + fn clear_identity(r: u32, s: u32, x: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 53_080_000 picoseconds. - Weight::from_parts(35_602_916, 0) + // Minimum execution time: 56_805_000 picoseconds. + Weight::from_parts(32_595_150, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_142 - .saturating_add(Weight::from_parts(1_067_579, 0).saturating_mul(s.into())) - // Standard Error: 1_142 - .saturating_add(Weight::from_parts(211_184, 0).saturating_mul(x.into())) + // Standard Error: 9_806 + .saturating_add(Weight::from_parts(148_154, 0).saturating_mul(r.into())) + // Standard Error: 1_915 + .saturating_add(Weight::from_parts(1_305_241, 0).saturating_mul(s.into())) + // Standard Error: 1_915 + .saturating_add(Weight::from_parts(253_271, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -156,13 +161,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `367 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 32_409_000 picoseconds. - Weight::from_parts(30_960_637, 0) + // Minimum execution time: 32_747_000 picoseconds. + Weight::from_parts(30_894_600, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_064 - .saturating_add(Weight::from_parts(106_641, 0).saturating_mul(r.into())) - // Standard Error: 402 - .saturating_add(Weight::from_parts(460_794, 0).saturating_mul(x.into())) + // Standard Error: 3_575 + .saturating_add(Weight::from_parts(173_522, 0).saturating_mul(r.into())) + // Standard Error: 697 + .saturating_add(Weight::from_parts(484_893, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -174,13 +179,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `398 + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 29_501_000 picoseconds. - Weight::from_parts(28_430_413, 0) + // Minimum execution time: 29_601_000 picoseconds. + Weight::from_parts(28_786_367, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_020 - .saturating_add(Weight::from_parts(93_506, 0).saturating_mul(r.into())) - // Standard Error: 394 - .saturating_add(Weight::from_parts(455_040, 0).saturating_mul(x.into())) + // Standard Error: 4_460 + .saturating_add(Weight::from_parts(120_240, 0).saturating_mul(r.into())) + // Standard Error: 870 + .saturating_add(Weight::from_parts(484_414, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -191,11 +196,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_917_000 picoseconds. - Weight::from_parts(8_240_842, 0) + // Minimum execution time: 7_562_000 picoseconds. + Weight::from_parts(8_106_958, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_592 - .saturating_add(Weight::from_parts(71_347, 0).saturating_mul(r.into())) + // Standard Error: 1_945 + .saturating_add(Weight::from_parts(75_862, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -206,11 +211,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_627_000 picoseconds. - Weight::from_parts(8_060_936, 0) + // Minimum execution time: 7_437_000 picoseconds. + Weight::from_parts(7_970_108, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_211 - .saturating_add(Weight::from_parts(87_495, 0).saturating_mul(r.into())) + // Standard Error: 1_497 + .saturating_add(Weight::from_parts(93_785, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -221,11 +226,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_388_000 picoseconds. - Weight::from_parts(7_927_305, 0) + // Minimum execution time: 7_337_000 picoseconds. + Weight::from_parts(7_782_268, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_105 - .saturating_add(Weight::from_parts(87_992, 0).saturating_mul(r.into())) + // Standard Error: 1_272 + .saturating_add(Weight::from_parts(97_602, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -239,13 +244,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `445 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 22_942_000 picoseconds. - Weight::from_parts(21_999_919, 0) + // Minimum execution time: 22_825_000 picoseconds. + Weight::from_parts(21_046_708, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_753 - .saturating_add(Weight::from_parts(107_980, 0).saturating_mul(r.into())) - // Standard Error: 509 - .saturating_add(Weight::from_parts(725_935, 0).saturating_mul(x.into())) + // Standard Error: 5_012 + .saturating_add(Weight::from_parts(180_118, 0).saturating_mul(r.into())) + // Standard Error: 927 + .saturating_add(Weight::from_parts(788_617, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -264,15 +269,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 68_738_000 picoseconds. - Weight::from_parts(48_699_208, 0) + // Minimum execution time: 75_635_000 picoseconds. + Weight::from_parts(47_274_783, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 4_128 - .saturating_add(Weight::from_parts(48_305, 0).saturating_mul(r.into())) - // Standard Error: 806 - .saturating_add(Weight::from_parts(1_081_373, 0).saturating_mul(s.into())) - // Standard Error: 806 - .saturating_add(Weight::from_parts(231_012, 0).saturating_mul(x.into())) + // Standard Error: 11_632 + .saturating_add(Weight::from_parts(230_554, 0).saturating_mul(r.into())) + // Standard Error: 2_271 + .saturating_add(Weight::from_parts(1_333_461, 0).saturating_mul(s.into())) + // Standard Error: 2_271 + .saturating_add(Weight::from_parts(276_612, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -288,11 +293,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `475 + s * (36 ±0)` // Estimated: `11003` - // Minimum execution time: 28_514_000 picoseconds. - Weight::from_parts(33_283_015, 0) + // Minimum execution time: 29_374_000 picoseconds. + Weight::from_parts(33_426_262, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_317 - .saturating_add(Weight::from_parts(65_007, 0).saturating_mul(s.into())) + // Standard Error: 1_171 + .saturating_add(Weight::from_parts(101_531, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -305,11 +310,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + s * (3 ±0)` // Estimated: `11003` - // Minimum execution time: 12_584_000 picoseconds. - Weight::from_parts(14_577_186, 0) + // Minimum execution time: 12_449_000 picoseconds. + Weight::from_parts(13_803_167, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 521 - .saturating_add(Weight::from_parts(17_810, 0).saturating_mul(s.into())) + // Standard Error: 492 + .saturating_add(Weight::from_parts(39_985, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -324,11 +329,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `638 + s * (35 ±0)` // Estimated: `11003` - // Minimum execution time: 31_911_000 picoseconds. - Weight::from_parts(35_242_463, 0) + // Minimum execution time: 32_962_000 picoseconds. + Weight::from_parts(35_538_881, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 889 - .saturating_add(Weight::from_parts(50_404, 0).saturating_mul(s.into())) + // Standard Error: 1_052 + .saturating_add(Weight::from_parts(96_317, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -343,11 +348,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704 + s * (37 ±0)` // Estimated: `6723` - // Minimum execution time: 24_508_000 picoseconds. - Weight::from_parts(27_259_946, 0) + // Minimum execution time: 25_233_000 picoseconds. + Weight::from_parts(27_271_178, 0) .saturating_add(Weight::from_parts(0, 6723)) - // Standard Error: 965 - .saturating_add(Weight::from_parts(55_903, 0).saturating_mul(s.into())) + // Standard Error: 897 + .saturating_add(Weight::from_parts(92_723, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/polkadot/src/weights/pallet_im_online.rs b/runtime/polkadot/src/weights/pallet_im_online.rs index 9bdd8f197042..93264c0c6991 100644 --- a/runtime/polkadot/src/weights/pallet_im_online.rs +++ b/runtime/polkadot/src/weights/pallet_im_online.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_im_online` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-30, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `build-host`, CPU: `AMD EPYC 7601 32-Core Processor` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_im_online // --extrinsic=* // --execution=wasm @@ -54,7 +57,7 @@ impl pallet_im_online::WeightInfo for WeightInfo { /// Storage: ImOnline Keys (r:1 w:0) /// Proof: ImOnline Keys (max_values: Some(1), max_size: Some(320002), added: 320497, mode: MaxEncodedLen) /// Storage: ImOnline ReceivedHeartbeats (r:1 w:1) - /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(1028), added: 3503, mode: MaxEncodedLen) + /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(25), added: 2500, mode: MaxEncodedLen) /// Storage: ImOnline AuthoredBlocks (r:1 w:0) /// Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) /// The range of component `k` is `[1, 1000]`. @@ -62,11 +65,11 @@ impl pallet_im_online::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361 + k * (32 ±0)` // Estimated: `321487 + k * (1761 ±0)` - // Minimum execution time: 125_307_000 picoseconds. - Weight::from_parts(220_092_525, 0) + // Minimum execution time: 83_488_000 picoseconds. + Weight::from_parts(99_862_268, 0) .saturating_add(Weight::from_parts(0, 321487)) - // Standard Error: 6_932 - .saturating_add(Weight::from_parts(27_914, 0).saturating_mul(k.into())) + // Standard Error: 567 + .saturating_add(Weight::from_parts(35_207, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into())) diff --git a/runtime/polkadot/src/weights/pallet_indices.rs b/runtime/polkadot/src/weights/pallet_indices.rs index 394548484d84..94f2285efc25 100644 --- a/runtime/polkadot/src/weights/pallet_indices.rs +++ b/runtime/polkadot/src/weights/pallet_indices.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_indices` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_indices // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3534` - // Minimum execution time: 24_095_000 picoseconds. - Weight::from_parts(24_752_000, 0) + // Minimum execution time: 24_795_000 picoseconds. + Weight::from_parts(25_532_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -67,8 +70,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 34_727_000 picoseconds. - Weight::from_parts(34_980_000, 0) + // Minimum execution time: 35_879_000 picoseconds. + Weight::from_parts(36_559_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +82,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 24_804_000 picoseconds. - Weight::from_parts(25_326_000, 0) + // Minimum execution time: 25_628_000 picoseconds. + Weight::from_parts(26_584_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +96,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 28_140_000 picoseconds. - Weight::from_parts(28_875_000, 0) + // Minimum execution time: 28_963_000 picoseconds. + Weight::from_parts(29_722_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -105,8 +108,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 27_095_000 picoseconds. - Weight::from_parts(27_430_000, 0) + // Minimum execution time: 27_596_000 picoseconds. + Weight::from_parts(28_182_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/pallet_membership.rs b/runtime/polkadot/src/weights/pallet_membership.rs index d5c201118852..a4e5ce4a7bbb 100644 --- a/runtime/polkadot/src/weights/pallet_membership.rs +++ b/runtime/polkadot/src/weights/pallet_membership.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_membership` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_membership // --extrinsic=* // --execution=wasm @@ -60,11 +63,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 16_961_000 picoseconds. - Weight::from_parts(17_939_571, 0) + // Minimum execution time: 17_443_000 picoseconds. + Weight::from_parts(18_272_399, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 355 - .saturating_add(Weight::from_parts(31_707, 0).saturating_mul(m.into())) + // Standard Error: 376 + .saturating_add(Weight::from_parts(33_633, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -84,11 +87,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_563_000 picoseconds. - Weight::from_parts(20_539_883, 0) + // Minimum execution time: 19_826_000 picoseconds. + Weight::from_parts(20_859_732, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 295 - .saturating_add(Weight::from_parts(32_574, 0).saturating_mul(m.into())) + // Standard Error: 667 + .saturating_add(Weight::from_parts(33_155, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -108,11 +111,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_741_000 picoseconds. - Weight::from_parts(20_531_136, 0) + // Minimum execution time: 20_151_000 picoseconds. + Weight::from_parts(20_774_114, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 349 - .saturating_add(Weight::from_parts(46_173, 0).saturating_mul(m.into())) + // Standard Error: 447 + .saturating_add(Weight::from_parts(44_052, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -132,11 +135,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_040_000 picoseconds. - Weight::from_parts(20_627_014, 0) + // Minimum execution time: 19_846_000 picoseconds. + Weight::from_parts(20_903_563, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 681 - .saturating_add(Weight::from_parts(153_739, 0).saturating_mul(m.into())) + // Standard Error: 865 + .saturating_add(Weight::from_parts(149_306, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -156,11 +159,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 20_125_000 picoseconds. - Weight::from_parts(21_100_082, 0) + // Minimum execution time: 20_523_000 picoseconds. + Weight::from_parts(21_705_085, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 448 - .saturating_add(Weight::from_parts(43_556, 0).saturating_mul(m.into())) + // Standard Error: 948 + .saturating_add(Weight::from_parts(44_568, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -176,11 +179,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + m * (32 ±0)` // Estimated: `4687 + m * (32 ±0)` - // Minimum execution time: 7_903_000 picoseconds. - Weight::from_parts(8_340_087, 0) + // Minimum execution time: 8_032_000 picoseconds. + Weight::from_parts(8_386_682, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 186 - .saturating_add(Weight::from_parts(9_908, 0).saturating_mul(m.into())) + // Standard Error: 190 + .saturating_add(Weight::from_parts(9_724, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) @@ -194,11 +197,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_167_000 picoseconds. - Weight::from_parts(3_341_677, 0) + // Minimum execution time: 3_061_000 picoseconds. + Weight::from_parts(3_304_217, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 63 - .saturating_add(Weight::from_parts(671, 0).saturating_mul(m.into())) + // Standard Error: 80 + .saturating_add(Weight::from_parts(273, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().writes(2)) } } diff --git a/runtime/polkadot/src/weights/pallet_message_queue.rs b/runtime/polkadot/src/weights/pallet_message_queue.rs index 73e3905e237d..b0b9776b0114 100644 --- a/runtime/polkadot/src/weights/pallet_message_queue.rs +++ b/runtime/polkadot/src/weights/pallet_message_queue.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_message_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_message_queue // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `248` // Estimated: `6050` - // Minimum execution time: 12_074_000 picoseconds. - Weight::from_parts(12_337_000, 0) + // Minimum execution time: 12_778_000 picoseconds. + Weight::from_parts(13_167_000, 0) .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -69,8 +72,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `248` // Estimated: `6050` - // Minimum execution time: 11_253_000 picoseconds. - Weight::from_parts(11_498_000, 0) + // Minimum execution time: 11_910_000 picoseconds. + Weight::from_parts(12_318_000, 0) .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -81,8 +84,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `42` // Estimated: `3520` - // Minimum execution time: 4_962_000 picoseconds. - Weight::from_parts(5_157_000, 0) + // Minimum execution time: 5_070_000 picoseconds. + Weight::from_parts(5_266_000, 0) .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +96,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `115` // Estimated: `69051` - // Minimum execution time: 6_660_000 picoseconds. - Weight::from_parts(6_834_000, 0) + // Minimum execution time: 6_812_000 picoseconds. + Weight::from_parts(7_085_000, 0) .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -105,8 +108,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `115` // Estimated: `69051` - // Minimum execution time: 6_860_000 picoseconds. - Weight::from_parts(7_155_000, 0) + // Minimum execution time: 7_136_000 picoseconds. + Weight::from_parts(7_392_000, 0) .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -115,8 +118,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 73_820_000 picoseconds. - Weight::from_parts(74_172_000, 0) + // Minimum execution time: 92_069_000 picoseconds. + Weight::from_parts(92_769_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: MessageQueue ServiceHead (r:1 w:1) @@ -127,8 +130,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `149` // Estimated: `3520` - // Minimum execution time: 7_046_000 picoseconds. - Weight::from_parts(7_251_000, 0) + // Minimum execution time: 7_443_000 picoseconds. + Weight::from_parts(7_670_000, 0) .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -147,8 +150,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `66030` // Estimated: `69051` - // Minimum execution time: 61_912_000 picoseconds. - Weight::from_parts(62_581_000, 0) + // Minimum execution time: 67_176_000 picoseconds. + Weight::from_parts(68_406_000, 0) .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) @@ -167,8 +170,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `66030` // Estimated: `69051` - // Minimum execution time: 76_893_000 picoseconds. - Weight::from_parts(77_488_000, 0) + // Minimum execution time: 83_156_000 picoseconds. + Weight::from_parts(85_134_000, 0) .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) @@ -187,8 +190,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `66030` // Estimated: `69051` - // Minimum execution time: 112_004_000 picoseconds. - Weight::from_parts(112_752_000, 0) + // Minimum execution time: 125_205_000 picoseconds. + Weight::from_parts(127_325_000, 0) .saturating_add(Weight::from_parts(0, 69051)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtime/polkadot/src/weights/pallet_multisig.rs b/runtime/polkadot/src/weights/pallet_multisig.rs index 32b6cab8f329..70df8a78d4f1 100644 --- a/runtime/polkadot/src/weights/pallet_multisig.rs +++ b/runtime/polkadot/src/weights/pallet_multisig.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_multisig // --extrinsic=* // --execution=wasm @@ -52,11 +55,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_058_000 picoseconds. - Weight::from_parts(11_564_289, 0) + // Minimum execution time: 13_729_000 picoseconds. + Weight::from_parts(14_236_505, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(488, 0).saturating_mul(z.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(610, 0).saturating_mul(z.into())) } /// Storage: Multisig Multisigs (r:1 w:1) /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) @@ -66,13 +69,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `267 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 39_928_000 picoseconds. - Weight::from_parts(34_737_567, 0) + // Minimum execution time: 45_550_000 picoseconds. + Weight::from_parts(34_831_496, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 469 - .saturating_add(Weight::from_parts(58_566, 0).saturating_mul(s.into())) - // Standard Error: 4 - .saturating_add(Weight::from_parts(1_198, 0).saturating_mul(z.into())) + // Standard Error: 772 + .saturating_add(Weight::from_parts(120_012, 0).saturating_mul(s.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_567, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -84,13 +87,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `286` // Estimated: `6811` - // Minimum execution time: 26_462_000 picoseconds. - Weight::from_parts(21_434_542, 0) + // Minimum execution time: 29_794_000 picoseconds. + Weight::from_parts(20_091_975, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 296 - .saturating_add(Weight::from_parts(57_155, 0).saturating_mul(s.into())) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_160, 0).saturating_mul(z.into())) + // Standard Error: 775 + .saturating_add(Weight::from_parts(111_349, 0).saturating_mul(s.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_553, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -104,13 +107,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `392 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 44_962_000 picoseconds. - Weight::from_parts(38_088_189, 0) + // Minimum execution time: 51_181_000 picoseconds. + Weight::from_parts(38_235_268, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 335 - .saturating_add(Weight::from_parts(73_724, 0).saturating_mul(s.into())) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_219, 0).saturating_mul(z.into())) + // Standard Error: 973 + .saturating_add(Weight::from_parts(145_449, 0).saturating_mul(s.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_618, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -121,11 +124,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `267 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 32_351_000 picoseconds. - Weight::from_parts(33_189_114, 0) + // Minimum execution time: 33_278_000 picoseconds. + Weight::from_parts(33_697_154, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 516 - .saturating_add(Weight::from_parts(62_294, 0).saturating_mul(s.into())) + // Standard Error: 863 + .saturating_add(Weight::from_parts(122_174, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -136,11 +139,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `286` // Estimated: `6811` - // Minimum execution time: 19_166_000 picoseconds. - Weight::from_parts(19_662_638, 0) + // Minimum execution time: 18_541_000 picoseconds. + Weight::from_parts(19_007_991, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 349 - .saturating_add(Weight::from_parts(57_216, 0).saturating_mul(s.into())) + // Standard Error: 847 + .saturating_add(Weight::from_parts(106_382, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -151,11 +154,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `458 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 33_762_000 picoseconds. - Weight::from_parts(34_937_206, 0) + // Minimum execution time: 34_373_000 picoseconds. + Weight::from_parts(35_062_021, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 1_405 - .saturating_add(Weight::from_parts(51_968, 0).saturating_mul(s.into())) + // Standard Error: 770 + .saturating_add(Weight::from_parts(113_576, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/pallet_nomination_pools.rs b/runtime/polkadot/src/weights/pallet_nomination_pools.rs index d326154ca8d9..7273389a0805 100644 --- a/runtime/polkadot/src/weights/pallet_nomination_pools.rs +++ b/runtime/polkadot/src/weights/pallet_nomination_pools.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_nomination_pools` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_nomination_pools // --extrinsic=* // --execution=wasm @@ -81,8 +84,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3195` // Estimated: `8877` - // Minimum execution time: 177_761_000 picoseconds. - Weight::from_parts(178_787_000, 0) + // Minimum execution time: 191_933_000 picoseconds. + Weight::from_parts(199_790_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(19)) .saturating_add(T::DbWeight::get().writes(12)) @@ -113,8 +116,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3205` // Estimated: `8877` - // Minimum execution time: 175_137_000 picoseconds. - Weight::from_parts(176_638_000, 0) + // Minimum execution time: 189_630_000 picoseconds. + Weight::from_parts(195_241_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(12)) @@ -147,8 +150,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3152` // Estimated: `8799` - // Minimum execution time: 200_546_000 picoseconds. - Weight::from_parts(202_664_000, 0) + // Minimum execution time: 220_371_000 picoseconds. + Weight::from_parts(224_963_000, 0) .saturating_add(Weight::from_parts(0, 8799)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(12)) @@ -169,8 +172,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1137` // Estimated: `4182` - // Minimum execution time: 76_397_000 picoseconds. - Weight::from_parts(77_315_000, 0) + // Minimum execution time: 81_050_000 picoseconds. + Weight::from_parts(82_523_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -211,8 +214,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3475` // Estimated: `8877` - // Minimum execution time: 160_159_000 picoseconds. - Weight::from_parts(160_858_000, 0) + // Minimum execution time: 174_402_000 picoseconds. + Weight::from_parts(180_701_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(20)) .saturating_add(T::DbWeight::get().writes(13)) @@ -234,11 +237,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1580` // Estimated: `4764` - // Minimum execution time: 60_675_000 picoseconds. - Weight::from_parts(62_107_238, 0) + // Minimum execution time: 63_246_000 picoseconds. + Weight::from_parts(65_760_934, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 439 - .saturating_add(Weight::from_parts(10_343, 0).saturating_mul(s.into())) + // Standard Error: 1_105 + .saturating_add(Weight::from_parts(61_621, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -269,11 +272,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `2008` // Estimated: `4764` - // Minimum execution time: 124_898_000 picoseconds. - Weight::from_parts(126_198_233, 0) + // Minimum execution time: 133_264_000 picoseconds. + Weight::from_parts(137_557_538, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 584 - .saturating_add(Weight::from_parts(14_605, 0).saturating_mul(s.into())) + // Standard Error: 2_409 + .saturating_add(Weight::from_parts(71_667, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) } @@ -326,8 +329,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `2364` // Estimated: `6196` - // Minimum execution time: 207_911_000 picoseconds. - Weight::from_parts(211_605_442, 0) + // Minimum execution time: 223_680_000 picoseconds. + Weight::from_parts(232_248_103, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(21)) .saturating_add(T::DbWeight::get().writes(18)) @@ -380,8 +383,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1188` // Estimated: `6196` - // Minimum execution time: 182_491_000 picoseconds. - Weight::from_parts(183_487_000, 0) + // Minimum execution time: 195_007_000 picoseconds. + Weight::from_parts(199_781_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(22)) .saturating_add(T::DbWeight::get().writes(15)) @@ -415,11 +418,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1745` // Estimated: `4556 + n * (2520 ±0)` - // Minimum execution time: 66_449_000 picoseconds. - Weight::from_parts(66_082_796, 0) + // Minimum execution time: 68_155_000 picoseconds. + Weight::from_parts(68_982_265, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 3_327 - .saturating_add(Weight::from_parts(1_317_796, 0).saturating_mul(n.into())) + // Standard Error: 9_798 + .saturating_add(Weight::from_parts(1_483_835, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -435,8 +438,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1333` // Estimated: `4556` - // Minimum execution time: 34_005_000 picoseconds. - Weight::from_parts(34_450_000, 0) + // Minimum execution time: 34_246_000 picoseconds. + Weight::from_parts(35_523_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -452,11 +455,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3735` - // Minimum execution time: 14_776_000 picoseconds. - Weight::from_parts(15_295_730, 0) + // Minimum execution time: 14_742_000 picoseconds. + Weight::from_parts(15_414_886, 0) .saturating_add(Weight::from_parts(0, 3735)) - // Standard Error: 52 - .saturating_add(Weight::from_parts(951, 0).saturating_mul(n.into())) + // Standard Error: 140 + .saturating_add(Weight::from_parts(1_641, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -476,8 +479,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_991_000 picoseconds. - Weight::from_parts(6_257_000, 0) + // Minimum execution time: 6_186_000 picoseconds. + Weight::from_parts(6_325_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -487,8 +490,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3685` - // Minimum execution time: 20_320_000 picoseconds. - Weight::from_parts(20_722_000, 0) + // Minimum execution time: 20_194_000 picoseconds. + Weight::from_parts(21_006_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -515,8 +518,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1908` // Estimated: `4556` - // Minimum execution time: 64_798_000 picoseconds. - Weight::from_parts(65_322_000, 0) + // Minimum execution time: 66_180_000 picoseconds. + Weight::from_parts(68_446_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -533,8 +536,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `736` // Estimated: `3685` - // Minimum execution time: 32_728_000 picoseconds. - Weight::from_parts(33_032_000, 0) + // Minimum execution time: 32_843_000 picoseconds. + Weight::from_parts(33_862_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -545,8 +548,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `537` // Estimated: `3685` - // Minimum execution time: 19_240_000 picoseconds. - Weight::from_parts(19_591_000, 0) + // Minimum execution time: 19_565_000 picoseconds. + Weight::from_parts(20_103_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -557,8 +560,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3685` - // Minimum execution time: 20_175_000 picoseconds. - Weight::from_parts(20_382_000, 0) + // Minimum execution time: 19_957_000 picoseconds. + Weight::from_parts(20_927_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -571,8 +574,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `508` // Estimated: `4182` - // Minimum execution time: 15_206_000 picoseconds. - Weight::from_parts(15_421_000, 0) + // Minimum execution time: 15_092_000 picoseconds. + Weight::from_parts(15_507_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -589,8 +592,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `934` // Estimated: `3685` - // Minimum execution time: 60_497_000 picoseconds. - Weight::from_parts(61_151_000, 0) + // Minimum execution time: 63_775_000 picoseconds. + Weight::from_parts(65_498_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/runtime/polkadot/src/weights/pallet_offences.rs b/runtime/polkadot/src/weights/pallet_offences.rs new file mode 100644 index 000000000000..1233133dfa39 --- /dev/null +++ b/runtime/polkadot/src/weights/pallet_offences.rs @@ -0,0 +1,222 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_offences` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=polkadot-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=pallet_offences +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/polkadot/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_offences`. +pub struct WeightInfo(PhantomData); +impl pallet_offences::WeightInfo for WeightInfo { + /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) + /// Proof Skipped: Offences ConcurrentReportsIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Offences Reports (r:100 w:100) + /// Proof Skipped: Offences Reports (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SlashRewardFraction (r:1 w:0) + /// Proof: Staking SlashRewardFraction (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking ActiveEra (r:1 w:0) + /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// Storage: Staking ErasStartSessionIndex (r:1 w:0) + /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: Staking Invulnerables (r:1 w:0) + /// Proof Skipped: Staking Invulnerables (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking ValidatorSlashInEra (r:100 w:100) + /// Proof: Staking ValidatorSlashInEra (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + /// Storage: Staking SlashingSpans (r:1700 w:1700) + /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SpanSlash (r:1700 w:1700) + /// Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// Storage: Staking Validators (r:100 w:100) + /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// Storage: Staking CounterForValidators (r:1 w:1) + /// Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: VoterList ListNodes (r:299 w:299) + /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + /// Storage: VoterList ListBags (r:1 w:1) + /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: VoterList CounterForListNodes (r:1 w:1) + /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking Nominators (r:100 w:0) + /// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) + /// Storage: Staking OffendingValidators (r:1 w:1) + /// Proof Skipped: Staking OffendingValidators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Session Validators (r:1 w:0) + /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking NominatorSlashInEra (r:1600 w:1600) + /// Proof: Staking NominatorSlashInEra (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Staking UnappliedSlashes (r:1 w:1) + /// Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) + /// The range of component `r` is `[1, 100]`. + /// The range of component `o` is `[2, 100]`. + /// The range of component `n` is `[0, 16]`. + fn report_offence_im_online(_r: u32, o: u32, n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + n * (3454 ±0) + o * (1042 ±0)` + // Estimated: `88614 + n * (157019 ±1_888) + o * (26384 ±310)` + // Minimum execution time: 528_759_000 picoseconds. + Weight::from_parts(538_714_000, 0) + .saturating_add(Weight::from_parts(0, 88614)) + // Standard Error: 3_704_868 + .saturating_add(Weight::from_parts(378_188_057, 0).saturating_mul(o.into())) + // Standard Error: 22_512_446 + .saturating_add(Weight::from_parts(389_244_693, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(124)) + .saturating_add(T::DbWeight::get().reads((37_u64).saturating_mul(o.into()))) + .saturating_add(T::DbWeight::get().reads((187_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(117)) + .saturating_add(T::DbWeight::get().writes((36_u64).saturating_mul(o.into()))) + .saturating_add(T::DbWeight::get().writes((187_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 157019).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 26384).saturating_mul(o.into())) + } + /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) + /// Proof Skipped: Offences ConcurrentReportsIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Offences Reports (r:1 w:1) + /// Proof Skipped: Offences Reports (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SlashRewardFraction (r:1 w:0) + /// Proof: Staking SlashRewardFraction (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking ActiveEra (r:1 w:0) + /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// Storage: Staking ErasStartSessionIndex (r:1 w:0) + /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: Staking Invulnerables (r:1 w:0) + /// Proof Skipped: Staking Invulnerables (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking ValidatorSlashInEra (r:1 w:1) + /// Proof: Staking ValidatorSlashInEra (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + /// Storage: Staking SlashingSpans (r:17 w:17) + /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SpanSlash (r:17 w:17) + /// Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// Storage: Staking Validators (r:1 w:1) + /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// Storage: Staking CounterForValidators (r:1 w:1) + /// Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: VoterList ListNodes (r:2 w:2) + /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + /// Storage: VoterList ListBags (r:1 w:1) + /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: VoterList CounterForListNodes (r:1 w:1) + /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking Nominators (r:1 w:0) + /// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) + /// Storage: Staking OffendingValidators (r:1 w:1) + /// Proof Skipped: Staking OffendingValidators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Session Validators (r:1 w:0) + /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking NominatorSlashInEra (r:16 w:16) + /// Proof: Staking NominatorSlashInEra (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Staking UnappliedSlashes (r:1 w:1) + /// Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) + /// The range of component `n` is `[0, 16]`. + fn report_offence_grandpa(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1709 + n * (66 ±0)` + // Estimated: `5520 + n * (2551 ±0)` + // Minimum execution time: 92_527_000 picoseconds. + Weight::from_parts(104_194_764, 0) + .saturating_add(Weight::from_parts(0, 5520)) + // Standard Error: 32_501 + .saturating_add(Weight::from_parts(11_219_757, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(19)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(13)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2551).saturating_mul(n.into())) + } + /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) + /// Proof Skipped: Offences ConcurrentReportsIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Offences Reports (r:1 w:1) + /// Proof Skipped: Offences Reports (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SlashRewardFraction (r:1 w:0) + /// Proof: Staking SlashRewardFraction (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking ActiveEra (r:1 w:0) + /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// Storage: Staking ErasStartSessionIndex (r:1 w:0) + /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: Staking Invulnerables (r:1 w:0) + /// Proof Skipped: Staking Invulnerables (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking ValidatorSlashInEra (r:1 w:1) + /// Proof: Staking ValidatorSlashInEra (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + /// Storage: Staking SlashingSpans (r:17 w:17) + /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SpanSlash (r:17 w:17) + /// Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// Storage: Staking Validators (r:1 w:1) + /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// Storage: Staking CounterForValidators (r:1 w:1) + /// Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: VoterList ListNodes (r:2 w:2) + /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + /// Storage: VoterList ListBags (r:1 w:1) + /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: VoterList CounterForListNodes (r:1 w:1) + /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking Nominators (r:1 w:0) + /// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) + /// Storage: Staking OffendingValidators (r:1 w:1) + /// Proof Skipped: Staking OffendingValidators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Session Validators (r:1 w:0) + /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking NominatorSlashInEra (r:16 w:16) + /// Proof: Staking NominatorSlashInEra (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Staking UnappliedSlashes (r:1 w:1) + /// Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) + /// The range of component `n` is `[0, 16]`. + fn report_offence_babe(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1709 + n * (66 ±0)` + // Estimated: `5520 + n * (2551 ±0)` + // Minimum execution time: 93_431_000 picoseconds. + Weight::from_parts(104_636_499, 0) + .saturating_add(Weight::from_parts(0, 5520)) + // Standard Error: 31_475 + .saturating_add(Weight::from_parts(11_183_248, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(19)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(13)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2551).saturating_mul(n.into())) + } +} diff --git a/runtime/polkadot/src/weights/pallet_preimage.rs b/runtime/polkadot/src/weights/pallet_preimage.rs index 78b00a7e1e5f..91605e072f09 100644 --- a/runtime/polkadot/src/weights/pallet_preimage.rs +++ b/runtime/polkadot/src/weights/pallet_preimage.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_preimage // --extrinsic=* // --execution=wasm @@ -56,11 +59,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `143` // Estimated: `3556` - // Minimum execution time: 30_119_000 picoseconds. - Weight::from_parts(30_347_000, 0) + // Minimum execution time: 31_712_000 picoseconds. + Weight::from_parts(32_014_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_964, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(2_433, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -73,11 +76,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 16_928_000 picoseconds. - Weight::from_parts(17_129_000, 0) + // Minimum execution time: 16_935_000 picoseconds. + Weight::from_parts(17_306_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_961, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(2_448, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -90,11 +93,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 15_851_000 picoseconds. - Weight::from_parts(16_116_000, 0) + // Minimum execution time: 16_600_000 picoseconds. + Weight::from_parts(16_837_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_962, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(2_424, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -106,8 +109,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `289` // Estimated: `3556` - // Minimum execution time: 37_514_000 picoseconds. - Weight::from_parts(39_179_000, 0) + // Minimum execution time: 50_349_000 picoseconds. + Weight::from_parts(55_322_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +123,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 22_039_000 picoseconds. - Weight::from_parts(22_942_000, 0) + // Minimum execution time: 32_867_000 picoseconds. + Weight::from_parts(36_581_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -132,8 +135,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `188` // Estimated: `3556` - // Minimum execution time: 19_198_000 picoseconds. - Weight::from_parts(20_332_000, 0) + // Minimum execution time: 27_810_000 picoseconds. + Weight::from_parts(30_821_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -144,8 +147,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 12_209_000 picoseconds. - Weight::from_parts(12_816_000, 0) + // Minimum execution time: 17_455_000 picoseconds. + Weight::from_parts(19_842_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -156,8 +159,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `3556` - // Minimum execution time: 12_973_000 picoseconds. - Weight::from_parts(13_637_000, 0) + // Minimum execution time: 19_593_000 picoseconds. + Weight::from_parts(22_947_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -168,8 +171,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 8_868_000 picoseconds. - Weight::from_parts(9_225_000, 0) + // Minimum execution time: 11_066_000 picoseconds. + Weight::from_parts(12_720_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -182,8 +185,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 20_366_000 picoseconds. - Weight::from_parts(21_310_000, 0) + // Minimum execution time: 28_739_000 picoseconds. + Weight::from_parts(31_484_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -194,8 +197,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 8_635_000 picoseconds. - Weight::from_parts(8_876_000, 0) + // Minimum execution time: 10_424_000 picoseconds. + Weight::from_parts(11_233_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -206,8 +209,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 8_564_000 picoseconds. - Weight::from_parts(8_867_000, 0) + // Minimum execution time: 11_087_000 picoseconds. + Weight::from_parts(12_055_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/pallet_proxy.rs b/runtime/polkadot/src/weights/pallet_proxy.rs index 669a4c72efb4..662b610f86ba 100644 --- a/runtime/polkadot/src/weights/pallet_proxy.rs +++ b/runtime/polkadot/src/weights/pallet_proxy.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_proxy // --extrinsic=* // --execution=wasm @@ -54,11 +57,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 15_336_000 picoseconds. - Weight::from_parts(15_677_653, 0) + // Minimum execution time: 15_142_000 picoseconds. + Weight::from_parts(15_809_707, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 663 - .saturating_add(Weight::from_parts(33_059, 0).saturating_mul(p.into())) + // Standard Error: 889 + .saturating_add(Weight::from_parts(29_639, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: Proxy Proxies (r:1 w:0) @@ -73,13 +76,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `554 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 36_949_000 picoseconds. - Weight::from_parts(36_836_707, 0) + // Minimum execution time: 38_116_000 picoseconds. + Weight::from_parts(38_591_703, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_370 - .saturating_add(Weight::from_parts(139_402, 0).saturating_mul(a.into())) - // Standard Error: 1_415 - .saturating_add(Weight::from_parts(27_014, 0).saturating_mul(p.into())) + // Standard Error: 2_336 + .saturating_add(Weight::from_parts(169_558, 0).saturating_mul(a.into())) + // Standard Error: 2_414 + .saturating_add(Weight::from_parts(25_502, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -93,11 +96,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_025_000 picoseconds. - Weight::from_parts(25_085_970, 0) + // Minimum execution time: 24_792_000 picoseconds. + Weight::from_parts(26_160_353, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_065 - .saturating_add(Weight::from_parts(130_776, 0).saturating_mul(a.into())) + // Standard Error: 1_738 + .saturating_add(Weight::from_parts(157_640, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -111,11 +114,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 23_914_000 picoseconds. - Weight::from_parts(25_024_528, 0) + // Minimum execution time: 24_905_000 picoseconds. + Weight::from_parts(26_368_411, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_122 - .saturating_add(Weight::from_parts(133_086, 0).saturating_mul(a.into())) + // Standard Error: 1_895 + .saturating_add(Weight::from_parts(155_491, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -131,13 +134,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `486 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 33_224_000 picoseconds. - Weight::from_parts(33_639_508, 0) + // Minimum execution time: 34_820_000 picoseconds. + Weight::from_parts(35_236_824, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 2_259 - .saturating_add(Weight::from_parts(127_252, 0).saturating_mul(a.into())) - // Standard Error: 2_334 - .saturating_add(Weight::from_parts(20_829, 0).saturating_mul(p.into())) + // Standard Error: 1_574 + .saturating_add(Weight::from_parts(166_722, 0).saturating_mul(a.into())) + // Standard Error: 1_626 + .saturating_add(Weight::from_parts(25_405, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -148,11 +151,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_479_000 picoseconds. - Weight::from_parts(25_372_515, 0) + // Minimum execution time: 25_820_000 picoseconds. + Weight::from_parts(27_003_669, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 976 - .saturating_add(Weight::from_parts(54_028, 0).saturating_mul(p.into())) + // Standard Error: 1_555 + .saturating_add(Weight::from_parts(65_038, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -163,11 +166,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_855_000 picoseconds. - Weight::from_parts(25_879_863, 0) + // Minimum execution time: 26_328_000 picoseconds. + Weight::from_parts(27_336_521, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 2_495 - .saturating_add(Weight::from_parts(53_539, 0).saturating_mul(p.into())) + // Standard Error: 1_703 + .saturating_add(Weight::from_parts(57_107, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -178,11 +181,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 21_980_000 picoseconds. - Weight::from_parts(22_569_152, 0) + // Minimum execution time: 23_016_000 picoseconds. + Weight::from_parts(23_867_116, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 865 - .saturating_add(Weight::from_parts(27_100, 0).saturating_mul(p.into())) + // Standard Error: 1_227 + .saturating_add(Weight::from_parts(38_349, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +196,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `4706` - // Minimum execution time: 26_516_000 picoseconds. - Weight::from_parts(27_059_750, 0) + // Minimum execution time: 27_525_000 picoseconds. + Weight::from_parts(28_670_720, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 743 - .saturating_add(Weight::from_parts(10_840, 0).saturating_mul(p.into())) + // Standard Error: 1_869 + .saturating_add(Weight::from_parts(16_659, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +211,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `264 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 22_843_000 picoseconds. - Weight::from_parts(23_496_760, 0) + // Minimum execution time: 23_877_000 picoseconds. + Weight::from_parts(24_530_683, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 668 - .saturating_add(Weight::from_parts(29_564, 0).saturating_mul(p.into())) + // Standard Error: 1_569 + .saturating_add(Weight::from_parts(49_912, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/pallet_referenda.rs b/runtime/polkadot/src/weights/pallet_referenda.rs index b57460a4dc69..7f6fb0419c76 100644 --- a/runtime/polkadot/src/weights/pallet_referenda.rs +++ b/runtime/polkadot/src/weights/pallet_referenda.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_referenda // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `291` // Estimated: `42428` - // Minimum execution time: 40_270_000 picoseconds. - Weight::from_parts(40_759_000, 0) + // Minimum execution time: 40_432_000 picoseconds. + Weight::from_parts(41_423_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) @@ -71,8 +74,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `544` // Estimated: `83866` - // Minimum execution time: 51_786_000 picoseconds. - Weight::from_parts(52_344_000, 0) + // Minimum execution time: 52_009_000 picoseconds. + Weight::from_parts(54_126_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -89,8 +92,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3331` // Estimated: `42428` - // Minimum execution time: 60_191_000 picoseconds. - Weight::from_parts(61_033_000, 0) + // Minimum execution time: 69_077_000 picoseconds. + Weight::from_parts(71_533_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -107,8 +110,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3351` // Estimated: `42428` - // Minimum execution time: 60_037_000 picoseconds. - Weight::from_parts(60_745_000, 0) + // Minimum execution time: 68_115_000 picoseconds. + Weight::from_parts(70_485_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -125,8 +128,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `544` // Estimated: `83866` - // Minimum execution time: 62_358_000 picoseconds. - Weight::from_parts(63_007_000, 0) + // Minimum execution time: 64_860_000 picoseconds. + Weight::from_parts(66_772_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -143,8 +146,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `544` // Estimated: `83866` - // Minimum execution time: 61_443_000 picoseconds. - Weight::from_parts(62_121_000, 0) + // Minimum execution time: 63_403_000 picoseconds. + Weight::from_parts(64_420_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -155,8 +158,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `384` // Estimated: `4401` - // Minimum execution time: 30_518_000 picoseconds. - Weight::from_parts(30_877_000, 0) + // Minimum execution time: 31_560_000 picoseconds. + Weight::from_parts(32_111_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -167,8 +170,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `374` // Estimated: `4401` - // Minimum execution time: 30_439_000 picoseconds. - Weight::from_parts(30_898_000, 0) + // Minimum execution time: 31_536_000 picoseconds. + Weight::from_parts(32_118_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -181,8 +184,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `452` // Estimated: `83866` - // Minimum execution time: 38_311_000 picoseconds. - Weight::from_parts(38_772_000, 0) + // Minimum execution time: 39_132_000 picoseconds. + Weight::from_parts(39_878_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -197,8 +200,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `693` // Estimated: `83866` - // Minimum execution time: 98_273_000 picoseconds. - Weight::from_parts(99_232_000, 0) + // Minimum execution time: 105_261_000 picoseconds. + Weight::from_parts(106_923_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -211,8 +214,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `207` // Estimated: `5477` - // Minimum execution time: 9_503_000 picoseconds. - Weight::from_parts(9_707_000, 0) + // Minimum execution time: 9_171_000 picoseconds. + Weight::from_parts(9_585_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -229,8 +232,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3221` // Estimated: `42428` - // Minimum execution time: 44_039_000 picoseconds. - Weight::from_parts(44_580_000, 0) + // Minimum execution time: 49_135_000 picoseconds. + Weight::from_parts(50_860_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -247,8 +250,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3221` // Estimated: `42428` - // Minimum execution time: 46_392_000 picoseconds. - Weight::from_parts(47_042_000, 0) + // Minimum execution time: 53_279_000 picoseconds. + Weight::from_parts(54_069_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -261,8 +264,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3044` // Estimated: `5477` - // Minimum execution time: 19_629_000 picoseconds. - Weight::from_parts(19_992_000, 0) + // Minimum execution time: 22_537_000 picoseconds. + Weight::from_parts(23_853_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -275,8 +278,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3044` // Estimated: `5477` - // Minimum execution time: 19_523_000 picoseconds. - Weight::from_parts(19_916_000, 0) + // Minimum execution time: 22_686_000 picoseconds. + Weight::from_parts(23_947_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -291,8 +294,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3048` // Estimated: `5477` - // Minimum execution time: 24_190_000 picoseconds. - Weight::from_parts(24_524_000, 0) + // Minimum execution time: 28_373_000 picoseconds. + Weight::from_parts(29_033_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -307,8 +310,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3068` // Estimated: `5477` - // Minimum execution time: 23_911_000 picoseconds. - Weight::from_parts(24_264_000, 0) + // Minimum execution time: 28_137_000 picoseconds. + Weight::from_parts(28_716_000, 0) .saturating_add(Weight::from_parts(0, 5477)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -321,8 +324,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `404` // Estimated: `42428` - // Minimum execution time: 25_600_000 picoseconds. - Weight::from_parts(26_011_000, 0) + // Minimum execution time: 25_880_000 picoseconds. + Weight::from_parts(26_405_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -335,8 +338,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `452` // Estimated: `42428` - // Minimum execution time: 25_959_000 picoseconds. - Weight::from_parts(26_277_000, 0) + // Minimum execution time: 26_349_000 picoseconds. + Weight::from_parts(27_181_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -347,8 +350,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `311` // Estimated: `4401` - // Minimum execution time: 17_654_000 picoseconds. - Weight::from_parts(17_886_000, 0) + // Minimum execution time: 17_735_000 picoseconds. + Weight::from_parts(18_130_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -365,8 +368,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `452` // Estimated: `42428` - // Minimum execution time: 35_251_000 picoseconds. - Weight::from_parts(35_709_000, 0) + // Minimum execution time: 36_244_000 picoseconds. + Weight::from_parts(37_174_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -383,8 +386,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `452` // Estimated: `42428` - // Minimum execution time: 37_334_000 picoseconds. - Weight::from_parts(37_625_000, 0) + // Minimum execution time: 38_250_000 picoseconds. + Weight::from_parts(38_771_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -399,8 +402,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `505` // Estimated: `42428` - // Minimum execution time: 30_728_000 picoseconds. - Weight::from_parts(31_178_000, 0) + // Minimum execution time: 31_177_000 picoseconds. + Weight::from_parts(31_886_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -415,8 +418,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `488` // Estimated: `42428` - // Minimum execution time: 31_411_000 picoseconds. - Weight::from_parts(31_672_000, 0) + // Minimum execution time: 31_826_000 picoseconds. + Weight::from_parts(32_664_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -431,8 +434,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `505` // Estimated: `42428` - // Minimum execution time: 28_828_000 picoseconds. - Weight::from_parts(29_108_000, 0) + // Minimum execution time: 28_957_000 picoseconds. + Weight::from_parts(29_810_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -447,8 +450,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `509` // Estimated: `42428` - // Minimum execution time: 27_377_000 picoseconds. - Weight::from_parts(27_868_000, 0) + // Minimum execution time: 28_002_000 picoseconds. + Weight::from_parts(28_440_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -465,8 +468,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `509` // Estimated: `83866` - // Minimum execution time: 42_303_000 picoseconds. - Weight::from_parts(42_647_000, 0) + // Minimum execution time: 43_527_000 picoseconds. + Weight::from_parts(44_536_000, 0) .saturating_add(Weight::from_parts(0, 83866)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -481,8 +484,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `505` // Estimated: `42428` - // Minimum execution time: 30_819_000 picoseconds. - Weight::from_parts(31_121_000, 0) + // Minimum execution time: 31_767_000 picoseconds. + Weight::from_parts(32_407_000, 0) .saturating_add(Weight::from_parts(0, 42428)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -497,8 +500,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `455` // Estimated: `4401` - // Minimum execution time: 20_928_000 picoseconds. - Weight::from_parts(21_267_000, 0) + // Minimum execution time: 21_013_000 picoseconds. + Weight::from_parts(21_503_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -511,8 +514,8 @@ impl pallet_referenda::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `388` // Estimated: `4401` - // Minimum execution time: 18_504_000 picoseconds. - Weight::from_parts(18_786_000, 0) + // Minimum execution time: 18_535_000 picoseconds. + Weight::from_parts(19_056_000, 0) .saturating_add(Weight::from_parts(0, 4401)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/pallet_scheduler.rs b/runtime/polkadot/src/weights/pallet_scheduler.rs index 86781625b8c0..79ad62954ec6 100644 --- a/runtime/polkadot/src/weights/pallet_scheduler.rs +++ b/runtime/polkadot/src/weights/pallet_scheduler.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_scheduler // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69` // Estimated: `1489` - // Minimum execution time: 4_734_000 picoseconds. - Weight::from_parts(4_891_000, 0) + // Minimum execution time: 5_003_000 picoseconds. + Weight::from_parts(5_239_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -66,11 +69,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 4_314_000 picoseconds. - Weight::from_parts(7_219_952, 0) + // Minimum execution time: 4_577_000 picoseconds. + Weight::from_parts(7_388_958, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_750 - .saturating_add(Weight::from_parts(766_246, 0).saturating_mul(s.into())) + // Standard Error: 1_944 + .saturating_add(Weight::from_parts(898_872, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -78,8 +81,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_551_000 picoseconds. - Weight::from_parts(5_646_000, 0) + // Minimum execution time: 5_430_000 picoseconds. + Weight::from_parts(5_696_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Preimage PreimageFor (r:1 w:1) @@ -91,11 +94,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `179 + s * (1 ±0)` // Estimated: `3644 + s * (1 ±0)` - // Minimum execution time: 19_818_000 picoseconds. - Weight::from_parts(20_032_000, 0) + // Minimum execution time: 20_567_000 picoseconds. + Weight::from_parts(20_856_000, 0) .saturating_add(Weight::from_parts(0, 3644)) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_196, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_523, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -106,8 +109,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_035_000 picoseconds. - Weight::from_parts(7_221_000, 0) + // Minimum execution time: 7_013_000 picoseconds. + Weight::from_parts(7_231_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -115,24 +118,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_526_000 picoseconds. - Weight::from_parts(5_715_000, 0) + // Minimum execution time: 5_486_000 picoseconds. + Weight::from_parts(5_656_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_signed() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_681_000 picoseconds. - Weight::from_parts(2_766_000, 0) + // Minimum execution time: 2_532_000 picoseconds. + Weight::from_parts(2_635_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_685_000 picoseconds. - Weight::from_parts(2_757_000, 0) + // Minimum execution time: 2_502_000 picoseconds. + Weight::from_parts(2_615_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Scheduler Agenda (r:1 w:1) @@ -142,11 +145,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 14_047_000 picoseconds. - Weight::from_parts(17_123_845, 0) + // Minimum execution time: 14_011_000 picoseconds. + Weight::from_parts(16_753_097, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_745 - .saturating_add(Weight::from_parts(758_104, 0).saturating_mul(s.into())) + // Standard Error: 1_751 + .saturating_add(Weight::from_parts(908_905, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -159,11 +162,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 18_262_000 picoseconds. - Weight::from_parts(17_759_914, 0) + // Minimum execution time: 18_326_000 picoseconds. + Weight::from_parts(17_114_477, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_494 - .saturating_add(Weight::from_parts(1_344_457, 0).saturating_mul(s.into())) + // Standard Error: 2_468 + .saturating_add(Weight::from_parts(1_642_647, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -176,11 +179,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `293 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 17_031_000 picoseconds. - Weight::from_parts(20_862_184, 0) + // Minimum execution time: 16_885_000 picoseconds. + Weight::from_parts(20_432_099, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_677 - .saturating_add(Weight::from_parts(796_797, 0).saturating_mul(s.into())) + // Standard Error: 2_865 + .saturating_add(Weight::from_parts(954_709, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -193,11 +196,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `319 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 19_549_000 picoseconds. - Weight::from_parts(19_969_458, 0) + // Minimum execution time: 19_988_000 picoseconds. + Weight::from_parts(19_533_754, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_851 - .saturating_add(Weight::from_parts(1_370_751, 0).saturating_mul(s.into())) + // Standard Error: 3_226 + .saturating_add(Weight::from_parts(1_671_811, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/polkadot/src/weights/pallet_session.rs b/runtime/polkadot/src/weights/pallet_session.rs index f716f6b94ca0..53f470ef5340 100644 --- a/runtime/polkadot/src/weights/pallet_session.rs +++ b/runtime/polkadot/src/weights/pallet_session.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_session // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1920` // Estimated: `17760` - // Minimum execution time: 51_982_000 picoseconds. - Weight::from_parts(52_833_000, 0) + // Minimum execution time: 59_408_000 picoseconds. + Weight::from_parts(60_600_000, 0) .saturating_add(Weight::from_parts(0, 17760)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) @@ -73,8 +76,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1784` // Estimated: `5249` - // Minimum execution time: 36_941_000 picoseconds. - Weight::from_parts(37_343_000, 0) + // Minimum execution time: 42_078_000 picoseconds. + Weight::from_parts(43_200_000, 0) .saturating_add(Weight::from_parts(0, 5249)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(7)) diff --git a/runtime/polkadot/src/weights/pallet_staking.rs b/runtime/polkadot/src/weights/pallet_staking.rs index 5be7a65bf45b..80a60467eda1 100644 --- a/runtime/polkadot/src/weights/pallet_staking.rs +++ b/runtime/polkadot/src/weights/pallet_staking.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_staking` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_staking // --extrinsic=* // --execution=wasm @@ -63,8 +66,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `980` // Estimated: `4764` - // Minimum execution time: 50_783_000 picoseconds. - Weight::from_parts(51_442_000, 0) + // Minimum execution time: 52_344_000 picoseconds. + Weight::from_parts(53_469_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -85,8 +88,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1925` // Estimated: `8877` - // Minimum execution time: 90_814_000 picoseconds. - Weight::from_parts(91_868_000, 0) + // Minimum execution time: 96_497_000 picoseconds. + Weight::from_parts(98_479_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -113,8 +116,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2132` // Estimated: `8877` - // Minimum execution time: 93_702_000 picoseconds. - Weight::from_parts(94_684_000, 0) + // Minimum execution time: 98_872_000 picoseconds. + Weight::from_parts(101_630_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(7)) @@ -132,11 +135,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `947` // Estimated: `4764` - // Minimum execution time: 41_115_000 picoseconds. - Weight::from_parts(42_487_956, 0) + // Minimum execution time: 42_427_000 picoseconds. + Weight::from_parts(44_370_898, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 449 - .saturating_add(Weight::from_parts(13_969, 0).saturating_mul(s.into())) + // Standard Error: 1_286 + .saturating_add(Weight::from_parts(49_383, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -173,11 +176,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2185 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 89_286_000 picoseconds. - Weight::from_parts(94_449_901, 0) + // Minimum execution time: 95_067_000 picoseconds. + Weight::from_parts(101_507_625, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 2_413 - .saturating_add(Weight::from_parts(1_190_158, 0).saturating_mul(s.into())) + // Standard Error: 3_419 + .saturating_add(Weight::from_parts(1_387_390, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -209,8 +212,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1309` // Estimated: `4556` - // Minimum execution time: 56_383_000 picoseconds. - Weight::from_parts(57_065_000, 0) + // Minimum execution time: 58_106_000 picoseconds. + Weight::from_parts(59_755_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(5)) @@ -224,11 +227,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1214 + k * (569 ±0)` // Estimated: `4556 + k * (3033 ±0)` - // Minimum execution time: 26_181_000 picoseconds. - Weight::from_parts(27_761_581, 0) + // Minimum execution time: 30_053_000 picoseconds. + Weight::from_parts(30_456_129, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 6_622 - .saturating_add(Weight::from_parts(7_777_934, 0).saturating_mul(k.into())) + // Standard Error: 8_026 + .saturating_add(Weight::from_parts(9_197_360, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -261,11 +264,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1805 + n * (102 ±0)` // Estimated: `6248 + n * (2520 ±0)` - // Minimum execution time: 64_691_000 picoseconds. - Weight::from_parts(61_948_806, 0) + // Minimum execution time: 68_438_000 picoseconds. + Weight::from_parts(65_922_031, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 9_772 - .saturating_add(Weight::from_parts(3_173_549, 0).saturating_mul(n.into())) + // Standard Error: 13_125 + .saturating_add(Weight::from_parts(4_057_833, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(6)) @@ -289,8 +292,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1639` // Estimated: `6248` - // Minimum execution time: 57_506_000 picoseconds. - Weight::from_parts(58_752_000, 0) + // Minimum execution time: 61_082_000 picoseconds. + Weight::from_parts(62_694_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -303,8 +306,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `737` // Estimated: `4556` - // Minimum execution time: 14_938_000 picoseconds. - Weight::from_parts(15_280_000, 0) + // Minimum execution time: 14_638_000 picoseconds. + Weight::from_parts(15_251_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -317,8 +320,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `836` // Estimated: `8122` - // Minimum execution time: 21_012_000 picoseconds. - Weight::from_parts(21_346_000, 0) + // Minimum execution time: 21_077_000 picoseconds. + Weight::from_parts(21_635_000, 0) .saturating_add(Weight::from_parts(0, 8122)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -329,8 +332,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_065_000 picoseconds. - Weight::from_parts(3_251_000, 0) + // Minimum execution time: 3_006_000 picoseconds. + Weight::from_parts(3_176_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -340,8 +343,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_351_000 picoseconds. - Weight::from_parts(11_618_000, 0) + // Minimum execution time: 9_462_000 picoseconds. + Weight::from_parts(9_740_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -351,8 +354,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_249_000 picoseconds. - Weight::from_parts(11_622_000, 0) + // Minimum execution time: 9_279_000 picoseconds. + Weight::from_parts(9_662_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -362,8 +365,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_359_000 picoseconds. - Weight::from_parts(11_685_000, 0) + // Minimum execution time: 9_346_000 picoseconds. + Weight::from_parts(9_708_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -374,11 +377,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_336_000 picoseconds. - Weight::from_parts(3_570_362, 0) + // Minimum execution time: 3_120_000 picoseconds. + Weight::from_parts(3_442_453, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 18 - .saturating_add(Weight::from_parts(11_680, 0).saturating_mul(v.into())) + // Standard Error: 40 + .saturating_add(Weight::from_parts(12_464, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Staking Bonded (r:1 w:1) @@ -414,11 +417,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1911 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 81_895_000 picoseconds. - Weight::from_parts(86_950_013, 0) + // Minimum execution time: 86_885_000 picoseconds. + Weight::from_parts(92_726_876, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_757 - .saturating_add(Weight::from_parts(1_163_934, 0).saturating_mul(s.into())) + // Standard Error: 2_614 + .saturating_add(Weight::from_parts(1_393_582, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(12)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -431,11 +434,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `66572` // Estimated: `70037` - // Minimum execution time: 114_268_000 picoseconds. - Weight::from_parts(811_903_683, 0) + // Minimum execution time: 131_927_000 picoseconds. + Weight::from_parts(933_717_768, 0) .saturating_add(Weight::from_parts(0, 70037)) - // Standard Error: 50_528 - .saturating_add(Weight::from_parts(4_280_491, 0).saturating_mul(s.into())) + // Standard Error: 57_864 + .saturating_add(Weight::from_parts(4_834_464, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -461,12 +464,12 @@ impl pallet_staking::WeightInfo for WeightInfo { fn payout_stakers_dead_controller(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `34179 + n * (150 ±0)` - // Estimated: `32391 + n * (2603 ±1)` - // Minimum execution time: 88_488_000 picoseconds. - Weight::from_parts(65_823_061, 0) + // Estimated: `32391 + n * (2603 ±0)` + // Minimum execution time: 118_319_000 picoseconds. + Weight::from_parts(150_596_293, 0) .saturating_add(Weight::from_parts(0, 32391)) - // Standard Error: 12_389 - .saturating_add(Weight::from_parts(29_842_639, 0).saturating_mul(n.into())) + // Standard Error: 18_978 + .saturating_add(Weight::from_parts(34_357_240, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -500,11 +503,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `58153 + n * (388 ±0)` // Estimated: `53040 + n * (3774 ±0)` - // Minimum execution time: 111_856_000 picoseconds. - Weight::from_parts(80_624_419, 0) + // Minimum execution time: 140_238_000 picoseconds. + Weight::from_parts(80_637_879, 0) .saturating_add(Weight::from_parts(0, 53040)) - // Standard Error: 36_291 - .saturating_add(Weight::from_parts(48_279_597, 0).saturating_mul(n.into())) + // Standard Error: 53_109 + .saturating_add(Weight::from_parts(55_488_791, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -528,11 +531,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1926 + l * (5 ±0)` // Estimated: `8877` - // Minimum execution time: 85_391_000 picoseconds. - Weight::from_parts(86_880_622, 0) + // Minimum execution time: 89_764_000 picoseconds. + Weight::from_parts(92_966_007, 0) .saturating_add(Weight::from_parts(0, 8877)) - // Standard Error: 1_648 - .saturating_add(Weight::from_parts(29_083, 0).saturating_mul(l.into())) + // Standard Error: 4_077 + .saturating_add(Weight::from_parts(44_963, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -567,11 +570,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2185 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 95_280_000 picoseconds. - Weight::from_parts(95_843_877, 0) + // Minimum execution time: 102_828_000 picoseconds. + Weight::from_parts(104_295_311, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_518 - .saturating_add(Weight::from_parts(1_164_202, 0).saturating_mul(s.into())) + // Standard Error: 3_221 + .saturating_add(Weight::from_parts(1_380_506, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -618,14 +621,14 @@ impl pallet_staking::WeightInfo for WeightInfo { fn new_era(v: u32, n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + n * (716 ±0) + v * (3594 ±0)` - // Estimated: `456136 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 490_146_000 picoseconds. - Weight::from_parts(492_684_000, 0) + // Estimated: `456136 + n * (3566 ±3) + v * (3566 ±38)` + // Minimum execution time: 543_692_000 picoseconds. + Weight::from_parts(548_108_000, 0) .saturating_add(Weight::from_parts(0, 456136)) - // Standard Error: 1_869_797 - .saturating_add(Weight::from_parts(59_575_010, 0).saturating_mul(v.into())) - // Standard Error: 186_315 - .saturating_add(Weight::from_parts(16_265_127, 0).saturating_mul(n.into())) + // Standard Error: 2_062_056 + .saturating_add(Weight::from_parts(64_901_773, 0).saturating_mul(v.into())) + // Standard Error: 205_472 + .saturating_add(Weight::from_parts(18_855_795, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(185)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -658,13 +661,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3117 + n * (907 ±0) + v * (391 ±0)` // Estimated: `456136 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 30_545_713_000 picoseconds. - Weight::from_parts(30_644_576_000, 0) + // Minimum execution time: 36_757_500_000 picoseconds. + Weight::from_parts(37_291_052_000, 0) .saturating_add(Weight::from_parts(0, 456136)) - // Standard Error: 334_764 - .saturating_add(Weight::from_parts(4_614_430, 0).saturating_mul(v.into())) - // Standard Error: 334_764 - .saturating_add(Weight::from_parts(3_168_850, 0).saturating_mul(n.into())) + // Standard Error: 408_866 + .saturating_add(Weight::from_parts(5_324_689, 0).saturating_mul(v.into())) + // Standard Error: 408_866 + .saturating_add(Weight::from_parts(4_075_058, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(180)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -683,11 +686,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `917 + v * (50 ±0)` // Estimated: `3510 + v * (2520 ±0)` - // Minimum execution time: 2_170_147_000 picoseconds. - Weight::from_parts(38_253_061, 0) + // Minimum execution time: 2_558_883_000 picoseconds. + Weight::from_parts(85_901_228, 0) .saturating_add(Weight::from_parts(0, 3510)) - // Standard Error: 6_583 - .saturating_add(Weight::from_parts(4_321_030, 0).saturating_mul(v.into())) + // Standard Error: 7_392 + .saturating_add(Weight::from_parts(5_071_697, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -709,8 +712,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_504_000 picoseconds. - Weight::from_parts(6_615_000, 0) + // Minimum execution time: 6_298_000 picoseconds. + Weight::from_parts(6_596_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -730,8 +733,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_988_000 picoseconds. - Weight::from_parts(6_227_000, 0) + // Minimum execution time: 5_901_000 picoseconds. + Weight::from_parts(6_092_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -759,8 +762,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1762` // Estimated: `6248` - // Minimum execution time: 68_895_000 picoseconds. - Weight::from_parts(70_207_000, 0) + // Minimum execution time: 72_549_000 picoseconds. + Weight::from_parts(74_685_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(6)) @@ -773,8 +776,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `627` // Estimated: `3510` - // Minimum execution time: 14_189_000 picoseconds. - Weight::from_parts(14_411_000, 0) + // Minimum execution time: 13_882_000 picoseconds. + Weight::from_parts(14_453_000, 0) .saturating_add(Weight::from_parts(0, 3510)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -785,8 +788,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_152_000 picoseconds. - Weight::from_parts(3_306_000, 0) + // Minimum execution time: 2_998_000 picoseconds. + Weight::from_parts(3_175_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/pallet_timestamp.rs b/runtime/polkadot/src/weights/pallet_timestamp.rs index 5c369ff70fc1..27d92d609fd4 100644 --- a/runtime/polkadot/src/weights/pallet_timestamp.rs +++ b/runtime/polkadot/src/weights/pallet_timestamp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_timestamp // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `345` // Estimated: `1493` - // Minimum execution time: 10_111_000 picoseconds. - Weight::from_parts(10_493_000, 0) + // Minimum execution time: 10_314_000 picoseconds. + Weight::from_parts(10_644_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +68,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `128` // Estimated: `0` - // Minimum execution time: 4_664_000 picoseconds. - Weight::from_parts(4_829_000, 0) + // Minimum execution time: 4_852_000 picoseconds. + Weight::from_parts(5_026_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtime/polkadot/src/weights/pallet_tips.rs b/runtime/polkadot/src/weights/pallet_tips.rs index 25f6000d21aa..62e08e017a87 100644 --- a/runtime/polkadot/src/weights/pallet_tips.rs +++ b/runtime/polkadot/src/weights/pallet_tips.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_tips` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_tips // --extrinsic=* // --execution=wasm @@ -56,11 +59,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4` // Estimated: `3469` - // Minimum execution time: 27_492_000 picoseconds. - Weight::from_parts(28_309_105, 0) + // Minimum execution time: 28_332_000 picoseconds. + Weight::from_parts(29_229_064, 0) .saturating_add(Weight::from_parts(0, 3469)) - // Standard Error: 4 - .saturating_add(Weight::from_parts(1_421, 0).saturating_mul(r.into())) + // Standard Error: 20 + .saturating_add(Weight::from_parts(1_717, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -72,8 +75,8 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `221` // Estimated: `3686` - // Minimum execution time: 26_722_000 picoseconds. - Weight::from_parts(27_141_000, 0) + // Minimum execution time: 28_421_000 picoseconds. + Weight::from_parts(29_235_000, 0) .saturating_add(Weight::from_parts(0, 3686)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -90,13 +93,13 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `74 + t * (64 ±0)` // Estimated: `3539 + t * (64 ±0)` - // Minimum execution time: 19_360_000 picoseconds. - Weight::from_parts(17_805_338, 0) + // Minimum execution time: 19_215_000 picoseconds. + Weight::from_parts(18_521_677, 0) .saturating_add(Weight::from_parts(0, 3539)) - // Standard Error: 5 - .saturating_add(Weight::from_parts(1_308, 0).saturating_mul(r.into())) - // Standard Error: 6_949 - .saturating_add(Weight::from_parts(205_861, 0).saturating_mul(t.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_600, 0).saturating_mul(r.into())) + // Standard Error: 5_637 + .saturating_add(Weight::from_parts(171_000, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(t.into())) @@ -110,11 +113,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `295 + t * (112 ±0)` // Estimated: `3760 + t * (112 ±0)` - // Minimum execution time: 15_440_000 picoseconds. - Weight::from_parts(15_579_245, 0) + // Minimum execution time: 15_664_000 picoseconds. + Weight::from_parts(16_047_212, 0) .saturating_add(Weight::from_parts(0, 3760)) - // Standard Error: 1_549 - .saturating_add(Weight::from_parts(128_187, 0).saturating_mul(t.into())) + // Standard Error: 1_859 + .saturating_add(Weight::from_parts(133_685, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) @@ -132,11 +135,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `334 + t * (112 ±0)` // Estimated: `3790 + t * (112 ±0)` - // Minimum execution time: 58_025_000 picoseconds. - Weight::from_parts(58_932_854, 0) + // Minimum execution time: 61_465_000 picoseconds. + Weight::from_parts(62_876_205, 0) .saturating_add(Weight::from_parts(0, 3790)) - // Standard Error: 6_299 - .saturating_add(Weight::from_parts(138_984, 0).saturating_mul(t.into())) + // Standard Error: 6_840 + .saturating_add(Weight::from_parts(133_654, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) @@ -150,11 +153,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3734` - // Minimum execution time: 14_816_000 picoseconds. - Weight::from_parts(15_187_490, 0) + // Minimum execution time: 14_539_000 picoseconds. + Weight::from_parts(15_138_065, 0) .saturating_add(Weight::from_parts(0, 3734)) - // Standard Error: 902 - .saturating_add(Weight::from_parts(19_964, 0).saturating_mul(t.into())) + // Standard Error: 1_577 + .saturating_add(Weight::from_parts(6_176, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/polkadot/src/weights/pallet_treasury.rs b/runtime/polkadot/src/weights/pallet_treasury.rs index 3bf196ba3801..669bfdeb7cfd 100644 --- a/runtime/polkadot/src/weights/pallet_treasury.rs +++ b/runtime/polkadot/src/weights/pallet_treasury.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_treasury` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_treasury // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6` // Estimated: `1887` - // Minimum execution time: 14_970_000 picoseconds. - Weight::from_parts(15_407_000, 0) + // Minimum execution time: 14_843_000 picoseconds. + Weight::from_parts(15_346_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) @@ -71,8 +74,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `1489` - // Minimum execution time: 27_422_000 picoseconds. - Weight::from_parts(28_004_000, 0) + // Minimum execution time: 27_443_000 picoseconds. + Weight::from_parts(28_046_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -85,8 +88,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `265` // Estimated: `3593` - // Minimum execution time: 40_743_000 picoseconds. - Weight::from_parts(41_201_000, 0) + // Minimum execution time: 42_227_000 picoseconds. + Weight::from_parts(44_158_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -100,11 +103,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `433 + p * (8 ±0)` // Estimated: `3573` - // Minimum execution time: 9_881_000 picoseconds. - Weight::from_parts(11_756_505, 0) + // Minimum execution time: 9_538_000 picoseconds. + Weight::from_parts(11_238_300, 0) .saturating_add(Weight::from_parts(0, 3573)) - // Standard Error: 722 - .saturating_add(Weight::from_parts(27_613, 0).saturating_mul(p.into())) + // Standard Error: 1_300 + .saturating_add(Weight::from_parts(72_785, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -114,8 +117,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `1887` - // Minimum execution time: 7_501_000 picoseconds. - Weight::from_parts(7_669_000, 0) + // Minimum execution time: 7_582_000 picoseconds. + Weight::from_parts(7_778_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -137,11 +140,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `251 + p * (251 ±0)` // Estimated: `1887 + p * (5206 ±0)` - // Minimum execution time: 41_977_000 picoseconds. - Weight::from_parts(45_391_299, 0) + // Minimum execution time: 45_157_000 picoseconds. + Weight::from_parts(40_228_554, 0) .saturating_add(Weight::from_parts(0, 1887)) - // Standard Error: 20_464 - .saturating_add(Weight::from_parts(37_477_488, 0).saturating_mul(p.into())) + // Standard Error: 17_245 + .saturating_add(Weight::from_parts(43_213_942, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtime/polkadot/src/weights/pallet_utility.rs b/runtime/polkadot/src/weights/pallet_utility.rs index af6b9b6016a1..1315ad6f8c44 100644 --- a/runtime/polkadot/src/weights/pallet_utility.rs +++ b/runtime/polkadot/src/weights/pallet_utility.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_utility // --extrinsic=* // --execution=wasm @@ -52,18 +55,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_692_000 picoseconds. - Weight::from_parts(18_616_016, 0) + // Minimum execution time: 6_489_000 picoseconds. + Weight::from_parts(13_259_019, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_870 - .saturating_add(Weight::from_parts(4_527_980, 0).saturating_mul(c.into())) + // Standard Error: 2_263 + .saturating_add(Weight::from_parts(5_239_842, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_213_000 picoseconds. - Weight::from_parts(5_326_000, 0) + // Minimum execution time: 5_128_000 picoseconds. + Weight::from_parts(5_402_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -71,18 +74,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_738_000 picoseconds. - Weight::from_parts(6_879_819, 0) + // Minimum execution time: 6_609_000 picoseconds. + Weight::from_parts(9_345_211, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_095 - .saturating_add(Weight::from_parts(4_789_247, 0).saturating_mul(c.into())) + // Standard Error: 2_018 + .saturating_add(Weight::from_parts(5_550_153, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_933_000 picoseconds. - Weight::from_parts(9_310_000, 0) + // Minimum execution time: 8_803_000 picoseconds. + Weight::from_parts(9_123_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -90,10 +93,10 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_055_000 picoseconds. - Weight::from_parts(8_440_642, 0) + // Minimum execution time: 6_630_000 picoseconds. + Weight::from_parts(8_158_486, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_678 - .saturating_add(Weight::from_parts(4_529_605, 0).saturating_mul(c.into())) + // Standard Error: 1_533 + .saturating_add(Weight::from_parts(5_246_137, 0).saturating_mul(c.into())) } } diff --git a/runtime/polkadot/src/weights/pallet_vesting.rs b/runtime/polkadot/src/weights/pallet_vesting.rs index 981e56a93256..916ca4bf6b9c 100644 --- a/runtime/polkadot/src/weights/pallet_vesting.rs +++ b/runtime/polkadot/src/weights/pallet_vesting.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_vesting // --extrinsic=* // --execution=wasm @@ -59,13 +62,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `314 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 33_562_000 picoseconds. - Weight::from_parts(32_430_088, 0) + // Minimum execution time: 34_121_000 picoseconds. + Weight::from_parts(33_874_584, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 463 - .saturating_add(Weight::from_parts(39_620, 0).saturating_mul(l.into())) - // Standard Error: 824 - .saturating_add(Weight::from_parts(69_620, 0).saturating_mul(s.into())) + // Standard Error: 2_001 + .saturating_add(Weight::from_parts(43_368, 0).saturating_mul(l.into())) + // Standard Error: 3_560 + .saturating_add(Weight::from_parts(80_668, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -81,13 +84,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `314 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_524_000 picoseconds. - Weight::from_parts(37_384_316, 0) + // Minimum execution time: 37_615_000 picoseconds. + Weight::from_parts(37_040_523, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 2_019 - .saturating_add(Weight::from_parts(6_086, 0).saturating_mul(l.into())) - // Standard Error: 3_592 - .saturating_add(Weight::from_parts(51_784, 0).saturating_mul(s.into())) + // Standard Error: 1_513 + .saturating_add(Weight::from_parts(44_043, 0).saturating_mul(l.into())) + // Standard Error: 2_692 + .saturating_add(Weight::from_parts(76_579, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -105,13 +108,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `417 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_330_000 picoseconds. - Weight::from_parts(35_332_815, 0) + // Minimum execution time: 36_953_000 picoseconds. + Weight::from_parts(35_679_094, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 552 - .saturating_add(Weight::from_parts(41_285, 0).saturating_mul(l.into())) - // Standard Error: 982 - .saturating_add(Weight::from_parts(67_201, 0).saturating_mul(s.into())) + // Standard Error: 1_788 + .saturating_add(Weight::from_parts(55_569, 0).saturating_mul(l.into())) + // Standard Error: 3_182 + .saturating_add(Weight::from_parts(95_878, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -129,13 +132,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `417 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 39_620_000 picoseconds. - Weight::from_parts(39_168_015, 0) + // Minimum execution time: 39_817_000 picoseconds. + Weight::from_parts(40_592_159, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 826 - .saturating_add(Weight::from_parts(31_114, 0).saturating_mul(l.into())) - // Standard Error: 1_470 - .saturating_add(Weight::from_parts(46_380, 0).saturating_mul(s.into())) + // Standard Error: 2_675 + .saturating_add(Weight::from_parts(34_692, 0).saturating_mul(l.into())) + // Standard Error: 4_760 + .saturating_add(Weight::from_parts(65_300, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -153,13 +156,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `488 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 68_183_000 picoseconds. - Weight::from_parts(68_198_512, 0) + // Minimum execution time: 72_258_000 picoseconds. + Weight::from_parts(74_062_243, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_102 - .saturating_add(Weight::from_parts(45_756, 0).saturating_mul(l.into())) - // Standard Error: 1_961 - .saturating_add(Weight::from_parts(87_559, 0).saturating_mul(s.into())) + // Standard Error: 3_135 + .saturating_add(Weight::from_parts(50_768, 0).saturating_mul(l.into())) + // Standard Error: 5_578 + .saturating_add(Weight::from_parts(83_913, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -177,13 +180,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + l * (25 ±0) + s * (36 ±0)` // Estimated: `6196` - // Minimum execution time: 70_243_000 picoseconds. - Weight::from_parts(70_565_922, 0) + // Minimum execution time: 75_260_000 picoseconds. + Weight::from_parts(75_838_762, 0) .saturating_add(Weight::from_parts(0, 6196)) - // Standard Error: 1_245 - .saturating_add(Weight::from_parts(50_411, 0).saturating_mul(l.into())) - // Standard Error: 2_215 - .saturating_add(Weight::from_parts(87_829, 0).saturating_mul(s.into())) + // Standard Error: 2_742 + .saturating_add(Weight::from_parts(57_676, 0).saturating_mul(l.into())) + // Standard Error: 4_879 + .saturating_add(Weight::from_parts(106_745, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -201,13 +204,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `415 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_847_000 picoseconds. - Weight::from_parts(35_706_131, 0) + // Minimum execution time: 37_553_000 picoseconds. + Weight::from_parts(36_199_505, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 682 - .saturating_add(Weight::from_parts(43_602, 0).saturating_mul(l.into())) - // Standard Error: 1_261 - .saturating_add(Weight::from_parts(77_378, 0).saturating_mul(s.into())) + // Standard Error: 1_594 + .saturating_add(Weight::from_parts(60_107, 0).saturating_mul(l.into())) + // Standard Error: 2_945 + .saturating_add(Weight::from_parts(104_552, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -225,13 +228,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `415 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 40_951_000 picoseconds. - Weight::from_parts(40_065_329, 0) + // Minimum execution time: 41_939_000 picoseconds. + Weight::from_parts(42_113_365, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 528 - .saturating_add(Weight::from_parts(42_774, 0).saturating_mul(l.into())) - // Standard Error: 975 - .saturating_add(Weight::from_parts(66_267, 0).saturating_mul(s.into())) + // Standard Error: 2_119 + .saturating_add(Weight::from_parts(44_822, 0).saturating_mul(l.into())) + // Standard Error: 3_914 + .saturating_add(Weight::from_parts(73_401, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/polkadot/src/weights/pallet_whitelist.rs b/runtime/polkadot/src/weights/pallet_whitelist.rs index 1366317f9826..fd3831a3ef59 100644 --- a/runtime/polkadot/src/weights/pallet_whitelist.rs +++ b/runtime/polkadot/src/weights/pallet_whitelist.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_whitelist` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_whitelist // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `118` // Estimated: `3556` - // Minimum execution time: 20_351_000 picoseconds. - Weight::from_parts(20_799_000, 0) + // Minimum execution time: 20_665_000 picoseconds. + Weight::from_parts(21_174_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -69,8 +72,8 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `247` // Estimated: `3556` - // Minimum execution time: 18_432_000 picoseconds. - Weight::from_parts(18_864_000, 0) + // Minimum execution time: 18_337_000 picoseconds. + Weight::from_parts(18_705_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -86,11 +89,11 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `323 + n * (1 ±0)` // Estimated: `3787 + n * (1 ±0)` - // Minimum execution time: 30_076_000 picoseconds. - Weight::from_parts(30_440_000, 0) + // Minimum execution time: 30_433_000 picoseconds. + Weight::from_parts(30_800_000, 0) .saturating_add(Weight::from_parts(0, 3787)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_169, 0).saturating_mul(n.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_558, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -104,11 +107,11 @@ impl pallet_whitelist::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `247` // Estimated: `3556` - // Minimum execution time: 22_286_000 picoseconds. - Weight::from_parts(22_871_046, 0) + // Minimum execution time: 22_062_000 picoseconds. + Weight::from_parts(22_797_644, 0) .saturating_add(Weight::from_parts(0, 3556)) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_188, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_493, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/polkadot/src/weights/pallet_xcm.rs b/runtime/polkadot/src/weights/pallet_xcm.rs index 8eab633caed8..214ec0920d75 100644 --- a/runtime/polkadot/src/weights/pallet_xcm.rs +++ b/runtime/polkadot/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_xcm // --extrinsic=* // --execution=wasm @@ -65,8 +68,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `527` // Estimated: `3992` - // Minimum execution time: 37_869_000 picoseconds. - Weight::from_parts(38_341_000, 0) + // Minimum execution time: 38_390_000 picoseconds. + Weight::from_parts(38_885_000, 0) .saturating_add(Weight::from_parts(0, 3992)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) @@ -75,16 +78,16 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 23_159_000 picoseconds. - Weight::from_parts(23_625_000, 0) + // Minimum execution time: 23_170_000 picoseconds. + Weight::from_parts(23_644_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 22_295_000 picoseconds. - Weight::from_parts(22_629_000, 0) + // Minimum execution time: 22_672_000 picoseconds. + Weight::from_parts(23_138_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Benchmark Override (r:0 w:0) @@ -103,8 +106,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_556_000 picoseconds. - Weight::from_parts(9_995_000, 0) + // Minimum execution time: 9_462_000 picoseconds. + Weight::from_parts(9_853_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -114,8 +117,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_951_000 picoseconds. - Weight::from_parts(3_052_000, 0) + // Minimum execution time: 2_769_000 picoseconds. + Weight::from_parts(3_001_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -143,8 +146,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `527` // Estimated: `3992` - // Minimum execution time: 41_289_000 picoseconds. - Weight::from_parts(42_037_000, 0) + // Minimum execution time: 41_707_000 picoseconds. + Weight::from_parts(42_742_000, 0) .saturating_add(Weight::from_parts(0, 3992)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(6)) @@ -171,8 +174,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `799` // Estimated: `4264` - // Minimum execution time: 44_827_000 picoseconds. - Weight::from_parts(45_768_000, 0) + // Minimum execution time: 46_077_000 picoseconds. + Weight::from_parts(46_504_000, 0) .saturating_add(Weight::from_parts(0, 4264)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -183,8 +186,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_974_000 picoseconds. - Weight::from_parts(3_083_000, 0) + // Minimum execution time: 2_849_000 picoseconds. + Weight::from_parts(3_018_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -194,8 +197,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `229` // Estimated: `11119` - // Minimum execution time: 16_960_000 picoseconds. - Weight::from_parts(17_421_000, 0) + // Minimum execution time: 17_729_000 picoseconds. + Weight::from_parts(18_210_000, 0) .saturating_add(Weight::from_parts(0, 11119)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -206,8 +209,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `233` // Estimated: `11123` - // Minimum execution time: 17_392_000 picoseconds. - Weight::from_parts(17_851_000, 0) + // Minimum execution time: 17_615_000 picoseconds. + Weight::from_parts(18_157_000, 0) .saturating_add(Weight::from_parts(0, 11123)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -218,8 +221,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `243` // Estimated: `13608` - // Minimum execution time: 18_387_000 picoseconds. - Weight::from_parts(19_047_000, 0) + // Minimum execution time: 19_112_000 picoseconds. + Weight::from_parts(19_512_000, 0) .saturating_add(Weight::from_parts(0, 13608)) .saturating_add(T::DbWeight::get().reads(5)) } @@ -243,8 +246,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `597` // Estimated: `6537` - // Minimum execution time: 39_387_000 picoseconds. - Weight::from_parts(39_896_000, 0) + // Minimum execution time: 38_643_000 picoseconds. + Weight::from_parts(39_380_000, 0) .saturating_add(Weight::from_parts(0, 6537)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) @@ -255,8 +258,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `272` // Estimated: `8687` - // Minimum execution time: 9_289_000 picoseconds. - Weight::from_parts(9_523_000, 0) + // Minimum execution time: 9_326_000 picoseconds. + Weight::from_parts(9_772_000, 0) .saturating_add(Weight::from_parts(0, 8687)) .saturating_add(T::DbWeight::get().reads(3)) } @@ -266,8 +269,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `240` // Estimated: `11130` - // Minimum execution time: 17_544_000 picoseconds. - Weight::from_parts(17_932_000, 0) + // Minimum execution time: 18_184_000 picoseconds. + Weight::from_parts(18_487_000, 0) .saturating_add(Weight::from_parts(0, 11130)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -292,8 +295,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `601` // Estimated: `11491` - // Minimum execution time: 46_012_000 picoseconds. - Weight::from_parts(46_624_000, 0) + // Minimum execution time: 45_891_000 picoseconds. + Weight::from_parts(47_130_000, 0) .saturating_add(Weight::from_parts(0, 11491)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(5)) diff --git a/runtime/polkadot/src/weights/runtime_common_auctions.rs b/runtime/polkadot/src/weights/runtime_common_auctions.rs index cbd2a58e7bf5..8fdac1990620 100644 --- a/runtime/polkadot/src/weights/runtime_common_auctions.rs +++ b/runtime/polkadot/src/weights/runtime_common_auctions.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::auctions` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::auctions // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `4` // Estimated: `1493` - // Minimum execution time: 12_993_000 picoseconds. - Weight::from_parts(13_323_000, 0) + // Minimum execution time: 13_598_000 picoseconds. + Weight::from_parts(14_292_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +82,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `661` // Estimated: `6060` - // Minimum execution time: 77_123_000 picoseconds. - Weight::from_parts(78_483_000, 0) + // Minimum execution time: 93_532_000 picoseconds. + Weight::from_parts(99_534_000, 0) .saturating_add(Weight::from_parts(0, 6060)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -113,8 +116,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `6947699` // Estimated: `15822990` - // Minimum execution time: 6_354_536_000 picoseconds. - Weight::from_parts(6_443_450_000, 0) + // Minimum execution time: 7_832_854_000 picoseconds. + Weight::from_parts(8_120_980_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3688)) .saturating_add(T::DbWeight::get().writes(3683)) @@ -131,8 +134,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `177732` // Estimated: `15822990` - // Minimum execution time: 4_887_283_000 picoseconds. - Weight::from_parts(4_986_738_000, 0) + // Minimum execution time: 6_046_611_000 picoseconds. + Weight::from_parts(6_137_707_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3673)) .saturating_add(T::DbWeight::get().writes(3673)) diff --git a/runtime/polkadot/src/weights/runtime_common_claims.rs b/runtime/polkadot/src/weights/runtime_common_claims.rs index d9fe18d817d5..b16ed97bc3ba 100644 --- a/runtime/polkadot/src/weights/runtime_common_claims.rs +++ b/runtime/polkadot/src/weights/runtime_common_claims.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::claims` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::claims // --extrinsic=* // --execution=wasm @@ -67,8 +70,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `586` // Estimated: `4764` - // Minimum execution time: 147_162_000 picoseconds. - Weight::from_parts(150_920_000, 0) + // Minimum execution time: 192_126_000 picoseconds. + Weight::from_parts(210_300_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -85,8 +88,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `182` // Estimated: `1667` - // Minimum execution time: 11_255_000 picoseconds. - Weight::from_parts(11_576_000, 0) + // Minimum execution time: 15_323_000 picoseconds. + Weight::from_parts(16_648_000, 0) .saturating_add(Weight::from_parts(0, 1667)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(4)) @@ -111,8 +114,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `586` // Estimated: `4764` - // Minimum execution time: 150_031_000 picoseconds. - Weight::from_parts(151_686_000, 0) + // Minimum execution time: 198_285_000 picoseconds. + Weight::from_parts(211_990_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -139,8 +142,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `660` // Estimated: `4764` - // Minimum execution time: 72_642_000 picoseconds. - Weight::from_parts(85_752_000, 0) + // Minimum execution time: 98_860_000 picoseconds. + Weight::from_parts(110_990_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -157,8 +160,8 @@ impl runtime_common::claims::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `406` // Estimated: `3871` - // Minimum execution time: 22_188_000 picoseconds. - Weight::from_parts(22_606_000, 0) + // Minimum execution time: 27_962_000 picoseconds. + Weight::from_parts(30_903_000, 0) .saturating_add(Weight::from_parts(0, 3871)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(7)) diff --git a/runtime/polkadot/src/weights/runtime_common_crowdloan.rs b/runtime/polkadot/src/weights/runtime_common_crowdloan.rs index 196602ae1e91..f9b84ff2f3e2 100644 --- a/runtime/polkadot/src/weights/runtime_common_crowdloan.rs +++ b/runtime/polkadot/src/weights/runtime_common_crowdloan.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::crowdloan` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::crowdloan // --extrinsic=* // --execution=wasm @@ -61,8 +64,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `415` // Estimated: `3880` - // Minimum execution time: 50_128_000 picoseconds. - Weight::from_parts(51_086_000, 0) + // Minimum execution time: 67_401_000 picoseconds. + Weight::from_parts(73_047_000, 0) .saturating_add(Weight::from_parts(0, 3880)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -87,8 +90,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `463` // Estimated: `3928` - // Minimum execution time: 130_923_000 picoseconds. - Weight::from_parts(132_182_000, 0) + // Minimum execution time: 158_577_000 picoseconds. + Weight::from_parts(163_468_000, 0) .saturating_add(Weight::from_parts(0, 3928)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -105,8 +108,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `690` // Estimated: `6196` - // Minimum execution time: 72_225_000 picoseconds. - Weight::from_parts(73_325_000, 0) + // Minimum execution time: 86_038_000 picoseconds. + Weight::from_parts(93_214_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -118,11 +121,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `128 + k * (189 ±0)` // Estimated: `141 + k * (189 ±0)` - // Minimum execution time: 45_224_000 picoseconds. - Weight::from_parts(59_534_000, 0) + // Minimum execution time: 63_322_000 picoseconds. + Weight::from_parts(65_003_000, 0) .saturating_add(Weight::from_parts(0, 141)) - // Standard Error: 19_536 - .saturating_add(Weight::from_parts(37_993_958, 0).saturating_mul(k.into())) + // Standard Error: 27_401 + .saturating_add(Weight::from_parts(45_003_555, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -137,8 +140,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `515` // Estimated: `6196` - // Minimum execution time: 39_856_000 picoseconds. - Weight::from_parts(40_594_000, 0) + // Minimum execution time: 49_151_000 picoseconds. + Weight::from_parts(55_069_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -149,8 +152,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `235` // Estimated: `3700` - // Minimum execution time: 18_809_000 picoseconds. - Weight::from_parts(19_493_000, 0) + // Minimum execution time: 26_691_000 picoseconds. + Weight::from_parts(28_891_000, 0) .saturating_add(Weight::from_parts(0, 3700)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -163,8 +166,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `412` // Estimated: `3877` - // Minimum execution time: 25_280_000 picoseconds. - Weight::from_parts(26_124_000, 0) + // Minimum execution time: 46_088_000 picoseconds. + Weight::from_parts(49_781_000, 0) .saturating_add(Weight::from_parts(0, 3877)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -177,8 +180,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `239` // Estimated: `3704` - // Minimum execution time: 17_998_000 picoseconds. - Weight::from_parts(18_723_000, 0) + // Minimum execution time: 25_350_000 picoseconds. + Weight::from_parts(29_241_000, 0) .saturating_add(Weight::from_parts(0, 3704)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -208,11 +211,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `130 + n * (356 ±0)` // Estimated: `5385 + n * (2832 ±0)` - // Minimum execution time: 127_245_000 picoseconds. - Weight::from_parts(128_163_000, 0) + // Minimum execution time: 154_247_000 picoseconds. + Weight::from_parts(18_164_126, 0) .saturating_add(Weight::from_parts(0, 5385)) - // Standard Error: 55_939 - .saturating_add(Weight::from_parts(59_555_122, 0).saturating_mul(n.into())) + // Standard Error: 71_727 + .saturating_add(Weight::from_parts(72_599_775, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/polkadot/src/weights/runtime_common_paras_registrar.rs b/runtime/polkadot/src/weights/runtime_common_paras_registrar.rs index 9c1ba6e9040f..d176b83a648b 100644 --- a/runtime/polkadot/src/weights/runtime_common_paras_registrar.rs +++ b/runtime/polkadot/src/weights/runtime_common_paras_registrar.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::paras_registrar` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::paras_registrar // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `70` // Estimated: `3535` - // Minimum execution time: 28_986_000 picoseconds. - Weight::from_parts(29_506_000, 0) + // Minimum execution time: 30_388_000 picoseconds. + Weight::from_parts(30_995_000, 0) .saturating_add(Weight::from_parts(0, 3535)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -87,8 +90,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `645` // Estimated: `4110` - // Minimum execution time: 6_306_085_000 picoseconds. - Weight::from_parts(6_347_180_000, 0) + // Minimum execution time: 6_371_660_000 picoseconds. + Weight::from_parts(6_872_164_000, 0) .saturating_add(Weight::from_parts(0, 4110)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(8)) @@ -117,8 +120,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `535` // Estimated: `4000` - // Minimum execution time: 6_300_349_000 picoseconds. - Weight::from_parts(6_340_113_000, 0) + // Minimum execution time: 6_530_996_000 picoseconds. + Weight::from_parts(7_099_049_000, 0) .saturating_add(Weight::from_parts(0, 4000)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(8)) @@ -141,8 +144,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `476` // Estimated: `3941` - // Minimum execution time: 51_738_000 picoseconds. - Weight::from_parts(52_556_000, 0) + // Minimum execution time: 61_803_000 picoseconds. + Weight::from_parts(65_036_000, 0) .saturating_add(Weight::from_parts(0, 3941)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -165,8 +168,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `713` // Estimated: `6653` - // Minimum execution time: 55_456_000 picoseconds. - Weight::from_parts(56_963_000, 0) + // Minimum execution time: 67_847_000 picoseconds. + Weight::from_parts(71_909_000, 0) .saturating_add(Weight::from_parts(0, 6653)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) @@ -196,11 +199,11 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `493` // Estimated: `3958` - // Minimum execution time: 44_101_000 picoseconds. - Weight::from_parts(44_477_000, 0) + // Minimum execution time: 44_170_000 picoseconds. + Weight::from_parts(44_955_000, 0) .saturating_add(Weight::from_parts(0, 3958)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_962, 0).saturating_mul(b.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(2_501, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -211,11 +214,11 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_230_000 picoseconds. - Weight::from_parts(9_476_000, 0) + // Minimum execution time: 8_735_000 picoseconds. + Weight::from_parts(8_851_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(856, 0).saturating_mul(b.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_044, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().writes(1)) } } diff --git a/runtime/polkadot/src/weights/runtime_common_slots.rs b/runtime/polkadot/src/weights/runtime_common_slots.rs index 28dba8904819..7197c8721d8e 100644 --- a/runtime/polkadot/src/weights/runtime_common_slots.rs +++ b/runtime/polkadot/src/weights/runtime_common_slots.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::slots` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::slots // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `443` // Estimated: `1928` - // Minimum execution time: 13_549_000 picoseconds. - Weight::from_parts(13_926_000, 0) + // Minimum execution time: 13_403_000 picoseconds. + Weight::from_parts(13_933_000, 0) .saturating_add(Weight::from_parts(0, 1928)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) @@ -77,8 +80,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `443` // Estimated: `1928` - // Minimum execution time: 13_610_000 picoseconds. - Weight::from_parts(13_923_000, 0) + // Minimum execution time: 13_210_000 picoseconds. + Weight::from_parts(13_674_000, 0) .saturating_add(Weight::from_parts(0, 1928)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,15 +96,14 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_option_u32() -> Weight { // Proof Size summary in bytes: - // Measured: `393` - // Estimated: `1878` - // Minimum execution time: 13_139_000 picoseconds. - Weight::from_parts(13_547_000, 0) - .saturating_add(Weight::from_parts(0, 1878)) + // Measured: `443` + // Estimated: `1928` + // Minimum execution time: 13_351_000 picoseconds. + Weight::from_parts(13_666_000, 0) + .saturating_add(Weight::from_parts(0, 1928)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: Benchmark Override (r:0 w:0) /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) fn set_hrmp_open_request_ttl() -> Weight { @@ -124,8 +126,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `443` // Estimated: `1928` - // Minimum execution time: 13_522_000 picoseconds. - Weight::from_parts(13_880_000, 0) + // Minimum execution time: 13_299_000 picoseconds. + Weight::from_parts(13_892_000, 0) .saturating_add(Weight::from_parts(0, 1928)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) @@ -142,8 +144,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `443` // Estimated: `1928` - // Minimum execution time: 14_724_000 picoseconds. - Weight::from_parts(15_114_000, 0) + // Minimum execution time: 14_002_000 picoseconds. + Weight::from_parts(14_673_000, 0) .saturating_add(Weight::from_parts(0, 1928)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/runtime_parachains_disputes.rs b/runtime/polkadot/src/weights/runtime_parachains_disputes.rs index ded83f9170c0..2746924dc87b 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_disputes.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_disputes.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::disputes // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl runtime_parachains::disputes::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_914_000 picoseconds. - Weight::from_parts(3_088_000, 0) + // Minimum execution time: 2_674_000 picoseconds. + Weight::from_parts(2_822_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/polkadot/src/weights/runtime_parachains_disputes_slashing.rs b/runtime/polkadot/src/weights/runtime_parachains_disputes_slashing.rs index 047aeb7fa731..eda2f14214b1 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_disputes_slashing.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_disputes_slashing.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes::slashing` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::disputes::slashing // --extrinsic=* // --execution=wasm @@ -51,8 +54,6 @@ impl runtime_parachains::disputes::slashing::WeightInfo /// Proof Skipped: Session CurrentIndex (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Historical HistoricalSessions (r:1 w:0) /// Proof: Historical HistoricalSessions (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParaSessionInfo Sessions (r:1 w:0) - /// Proof Skipped: ParaSessionInfo Sessions (max_values: None, max_size: None, mode: Measured) /// Storage: ParasSlashing UnappliedSlashes (r:1 w:1) /// Proof Skipped: ParasSlashing UnappliedSlashes (max_values: None, max_size: None, mode: Measured) /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) @@ -86,15 +87,15 @@ impl runtime_parachains::disputes::slashing::WeightInfo /// The range of component `n` is `[4, 1000]`. fn report_dispute_lost(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `5711 + n * (285 ±0)` - // Estimated: `8939 + n * (288 ±0)` - // Minimum execution time: 113_896_000 picoseconds. - Weight::from_parts(136_630_262, 0) - .saturating_add(Weight::from_parts(0, 8939)) - // Standard Error: 2_274 - .saturating_add(Weight::from_parts(288_526, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(18)) + // Measured: `5392 + n * (185 ±0)` + // Estimated: `8618 + n * (188 ±0)` + // Minimum execution time: 123_913_000 picoseconds. + Weight::from_parts(158_003_304, 0) + .saturating_add(Weight::from_parts(0, 8618)) + // Standard Error: 3_048 + .saturating_add(Weight::from_parts(361_664, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(17)) .saturating_add(T::DbWeight::get().writes(10)) - .saturating_add(Weight::from_parts(0, 288).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 188).saturating_mul(n.into())) } } diff --git a/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs b/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs index 607322a3cb6c..e2fdb821d6e8 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::hrmp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::hrmp // --extrinsic=* // --execution=wasm @@ -69,8 +72,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `666` // Estimated: `6606` - // Minimum execution time: 41_246_000 picoseconds. - Weight::from_parts(41_724_000, 0) + // Minimum execution time: 41_092_000 picoseconds. + Weight::from_parts(43_188_000, 0) .saturating_add(Weight::from_parts(0, 6606)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(5)) @@ -93,8 +96,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `898` // Estimated: `4363` - // Minimum execution time: 43_523_000 picoseconds. - Weight::from_parts(44_142_000, 0) + // Minimum execution time: 43_872_000 picoseconds. + Weight::from_parts(45_130_000, 0) .saturating_add(Weight::from_parts(0, 4363)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) @@ -115,8 +118,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `769` // Estimated: `4234` - // Minimum execution time: 36_434_000 picoseconds. - Weight::from_parts(36_982_000, 0) + // Minimum execution time: 36_749_000 picoseconds. + Weight::from_parts(37_721_000, 0) .saturating_add(Weight::from_parts(0, 4234)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -139,13 +142,13 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `197 + e * (100 ±0) + i * (100 ±0)` // Estimated: `3659 + e * (2575 ±0) + i * (2575 ±0)` - // Minimum execution time: 1_089_251_000 picoseconds. - Weight::from_parts(881_440, 0) + // Minimum execution time: 1_241_128_000 picoseconds. + Weight::from_parts(1_249_625_000, 0) .saturating_add(Weight::from_parts(0, 3659)) - // Standard Error: 12_315 - .saturating_add(Weight::from_parts(8_705_950, 0).saturating_mul(i.into())) - // Standard Error: 12_315 - .saturating_add(Weight::from_parts(8_754_960, 0).saturating_mul(e.into())) + // Standard Error: 114_117 + .saturating_add(Weight::from_parts(3_676_253, 0).saturating_mul(i.into())) + // Standard Error: 114_117 + .saturating_add(Weight::from_parts(3_657_525, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(e.into()))) @@ -178,11 +181,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `741 + c * (136 ±0)` // Estimated: `2196 + c * (5086 ±0)` - // Minimum execution time: 10_610_000 picoseconds. - Weight::from_parts(6_483_567, 0) + // Minimum execution time: 10_559_000 picoseconds. + Weight::from_parts(7_421_722, 0) .saturating_add(Weight::from_parts(0, 2196)) - // Standard Error: 13_188 - .saturating_add(Weight::from_parts(18_662_252, 0).saturating_mul(c.into())) + // Standard Error: 17_031 + .saturating_add(Weight::from_parts(21_174_297, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -206,11 +209,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `268 + c * (124 ±0)` // Estimated: `1728 + c * (2600 ±0)` - // Minimum execution time: 6_545_000 picoseconds. - Weight::from_parts(2_658_037, 0) + // Minimum execution time: 6_657_000 picoseconds. + Weight::from_parts(2_696_128, 0) .saturating_add(Weight::from_parts(0, 1728)) - // Standard Error: 9_624 - .saturating_add(Weight::from_parts(11_479_940, 0).saturating_mul(c.into())) + // Standard Error: 13_124 + .saturating_add(Weight::from_parts(13_190_422, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -228,11 +231,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `959 + c * (13 ±0)` // Estimated: `4228 + c * (15 ±0)` - // Minimum execution time: 22_183_000 picoseconds. - Weight::from_parts(25_944_707, 0) + // Minimum execution time: 22_102_000 picoseconds. + Weight::from_parts(29_549_361, 0) .saturating_add(Weight::from_parts(0, 4228)) - // Standard Error: 827 - .saturating_add(Weight::from_parts(48_560, 0).saturating_mul(c.into())) + // Standard Error: 2_209 + .saturating_add(Weight::from_parts(132_354, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 15).saturating_mul(c.into())) @@ -246,11 +249,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `176 + c * (63 ±0)` // Estimated: `1655 + c * (2538 ±0)` - // Minimum execution time: 5_148_000 picoseconds. - Weight::from_parts(5_686_827, 0) + // Minimum execution time: 5_362_000 picoseconds. + Weight::from_parts(5_817_072, 0) .saturating_add(Weight::from_parts(0, 1655)) - // Standard Error: 2_909 - .saturating_add(Weight::from_parts(3_005_867, 0).saturating_mul(c.into())) + // Standard Error: 4_287 + .saturating_add(Weight::from_parts(3_550_045, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -283,8 +286,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `666` // Estimated: `6606` - // Minimum execution time: 55_043_000 picoseconds. - Weight::from_parts(55_667_000, 0) + // Minimum execution time: 56_136_000 picoseconds. + Weight::from_parts(57_227_000, 0) .saturating_add(Weight::from_parts(0, 6606)) .saturating_add(T::DbWeight::get().reads(14)) .saturating_add(T::DbWeight::get().writes(8)) diff --git a/runtime/polkadot/src/weights/runtime_parachains_inclusion.rs b/runtime/polkadot/src/weights/runtime_parachains_inclusion.rs index a9362a008de2..c1e89a1ea988 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_inclusion.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_inclusion.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::inclusion` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::inclusion // --extrinsic=* // --execution=wasm @@ -62,11 +65,11 @@ impl runtime_parachains::inclusion::WeightInfo for Weig // Proof Size summary in bytes: // Measured: `66077` // Estimated: `69051` - // Minimum execution time: 115_570_000 picoseconds. - Weight::from_parts(116_507_000, 0) + // Minimum execution time: 124_710_000 picoseconds. + Weight::from_parts(126_824_000, 0) .saturating_add(Weight::from_parts(0, 69051)) - // Standard Error: 109_250 - .saturating_add(Weight::from_parts(95_024_656, 0).saturating_mul(i.into())) + // Standard Error: 127_283 + .saturating_add(Weight::from_parts(110_113_768, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) diff --git a/runtime/polkadot/src/weights/runtime_parachains_initializer.rs b/runtime/polkadot/src/weights/runtime_parachains_initializer.rs index d157f4d33bde..87e60aaeb24d 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_initializer.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_initializer.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::initializer` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::initializer // --extrinsic=* // --execution=wasm @@ -54,11 +57,11 @@ impl runtime_parachains::initializer::WeightInfo for We // Proof Size summary in bytes: // Measured: `0 + d * (11 ±0)` // Estimated: `1480 + d * (11 ±0)` - // Minimum execution time: 4_061_000 picoseconds. - Weight::from_parts(7_642_836, 0) + // Minimum execution time: 3_619_000 picoseconds. + Weight::from_parts(3_743_000, 0) .saturating_add(Weight::from_parts(0, 1480)) - // Standard Error: 4 - .saturating_add(Weight::from_parts(1_310, 0).saturating_mul(d.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(3_045, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 11).saturating_mul(d.into())) diff --git a/runtime/polkadot/src/weights/runtime_parachains_paras.rs b/runtime/polkadot/src/weights/runtime_parachains_paras.rs index 229b1d7c8ebb..c8c35f5e7167 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_paras.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_paras.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::paras` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::paras // --extrinsic=* // --execution=wasm @@ -64,11 +67,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `8309` // Estimated: `11774` - // Minimum execution time: 31_933_000 picoseconds. - Weight::from_parts(32_269_000, 0) + // Minimum execution time: 33_840_000 picoseconds. + Weight::from_parts(34_093_000, 0) .saturating_add(Weight::from_parts(0, 11774)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_941, 0).saturating_mul(c.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(2_436, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -79,11 +82,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_221_000 picoseconds. - Weight::from_parts(8_441_000, 0) + // Minimum execution time: 7_922_000 picoseconds. + Weight::from_parts(8_254_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(855, 0).saturating_mul(s.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_040, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Configuration ActiveConfig (r:1 w:0) @@ -111,11 +114,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `8744` // Estimated: `12209` - // Minimum execution time: 50_896_000 picoseconds. - Weight::from_parts(51_286_000, 0) + // Minimum execution time: 52_554_000 picoseconds. + Weight::from_parts(53_345_000, 0) .saturating_add(Weight::from_parts(0, 12209)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_966, 0).saturating_mul(c.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(2_405, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -130,11 +133,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `95` // Estimated: `3560` - // Minimum execution time: 14_358_000 picoseconds. - Weight::from_parts(14_539_000, 0) + // Minimum execution time: 14_465_000 picoseconds. + Weight::from_parts(20_861_569, 0) .saturating_add(Weight::from_parts(0, 3560)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(861, 0).saturating_mul(s.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_002, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -146,8 +149,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `4288` // Estimated: `7753` - // Minimum execution time: 20_315_000 picoseconds. - Weight::from_parts(20_726_000, 0) + // Minimum execution time: 21_354_000 picoseconds. + Weight::from_parts(21_865_000, 0) .saturating_add(Weight::from_parts(0, 7753)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -167,11 +170,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `975` // Estimated: `4440` - // Minimum execution time: 81_220_000 picoseconds. - Weight::from_parts(44_672_627, 0) + // Minimum execution time: 102_448_000 picoseconds. + Weight::from_parts(101_036_531, 0) .saturating_add(Weight::from_parts(0, 4440)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(1_447, 0).saturating_mul(c.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_850, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -183,8 +186,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `28` // Estimated: `3493` - // Minimum execution time: 6_686_000 picoseconds. - Weight::from_parts(6_879_000, 0) + // Minimum execution time: 6_803_000 picoseconds. + Weight::from_parts(7_013_000, 0) .saturating_add(Weight::from_parts(0, 3493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -199,8 +202,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `26682` // Estimated: `30147` - // Minimum execution time: 88_186_000 picoseconds. - Weight::from_parts(90_611_000, 0) + // Minimum execution time: 121_645_000 picoseconds. + Weight::from_parts(125_576_000, 0) .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -225,8 +228,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `27552` // Estimated: `31017` - // Minimum execution time: 791_792_000 picoseconds. - Weight::from_parts(797_800_000, 0) + // Minimum execution time: 956_753_000 picoseconds. + Weight::from_parts(978_268_000, 0) .saturating_add(Weight::from_parts(0, 31017)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(104)) @@ -241,8 +244,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `27214` // Estimated: `30679` - // Minimum execution time: 87_940_000 picoseconds. - Weight::from_parts(89_168_000, 0) + // Minimum execution time: 112_500_000 picoseconds. + Weight::from_parts(120_090_000, 0) .saturating_add(Weight::from_parts(0, 30679)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -263,8 +266,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `27020` // Estimated: `30485` - // Minimum execution time: 625_861_000 picoseconds. - Weight::from_parts(629_850_000, 0) + // Minimum execution time: 760_189_000 picoseconds. + Weight::from_parts(776_400_000, 0) .saturating_add(Weight::from_parts(0, 30485)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(3)) @@ -279,8 +282,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `26682` // Estimated: `30147` - // Minimum execution time: 86_963_000 picoseconds. - Weight::from_parts(88_490_000, 0) + // Minimum execution time: 113_010_000 picoseconds. + Weight::from_parts(118_335_000, 0) .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs b/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs index b5fb1e79da90..ae1c502ae921 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs @@ -17,26 +17,27 @@ //! Autogenerated weights for `runtime_parachains::paras_inherent` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-13, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 // Executed Command: -// target/production/polkadot +// ./target/production/polkadot // benchmark // pallet +// --chain=polkadot-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=runtime_parachains::paras_inherent // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json -// --pallet=runtime_parachains::paras_inherent -// --chain=polkadot-dev // --header=./file_header.txt -// --output=./runtime/polkadot/src/weights/ +// --output=./runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -116,11 +117,11 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `50915` // Estimated: `56855 + v * (23 ±0)` - // Minimum execution time: 813_782_000 picoseconds. - Weight::from_parts(342_553_675, 0) + // Minimum execution time: 999_775_000 picoseconds. + Weight::from_parts(461_856_558, 0) .saturating_add(Weight::from_parts(0, 56855)) - // Standard Error: 26_456 - .saturating_add(Weight::from_parts(48_553_593, 0).saturating_mul(v.into())) + // Standard Error: 15_669 + .saturating_add(Weight::from_parts(56_847_986, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(28)) .saturating_add(T::DbWeight::get().writes(15)) .saturating_add(Weight::from_parts(0, 23).saturating_mul(v.into())) @@ -189,8 +190,8 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42748` // Estimated: `48688` - // Minimum execution time: 361_186_000 picoseconds. - Weight::from_parts(371_834_000, 0) + // Minimum execution time: 457_800_000 picoseconds. + Weight::from_parts(482_446_000, 0) .saturating_add(Weight::from_parts(0, 48688)) .saturating_add(T::DbWeight::get().reads(26)) .saturating_add(T::DbWeight::get().writes(16)) @@ -264,11 +265,11 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42784` // Estimated: `48724` - // Minimum execution time: 5_751_598_000 picoseconds. - Weight::from_parts(994_531_629, 0) + // Minimum execution time: 6_889_257_000 picoseconds. + Weight::from_parts(1_240_166_857, 0) .saturating_add(Weight::from_parts(0, 48724)) - // Standard Error: 52_254 - .saturating_add(Weight::from_parts(48_035_531, 0).saturating_mul(v.into())) + // Standard Error: 23_642 + .saturating_add(Weight::from_parts(56_311_928, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(29)) .saturating_add(T::DbWeight::get().writes(15)) } @@ -344,8 +345,8 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42811` // Estimated: `48751` - // Minimum execution time: 33_397_333_000 picoseconds. - Weight::from_parts(34_386_874_000, 0) + // Minimum execution time: 41_983_250_000 picoseconds. + Weight::from_parts(43_216_188_000, 0) .saturating_add(Weight::from_parts(0, 48751)) .saturating_add(T::DbWeight::get().reads(31)) .saturating_add(T::DbWeight::get().writes(15)) diff --git a/runtime/westend/constants/src/weights/block_weights.rs b/runtime/westend/constants/src/weights/block_weights.rs index df4e38e33746..ab14b155188b 100644 --- a/runtime/westend/constants/src/weights/block_weights.rs +++ b/runtime/westend/constants/src/weights/block_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26 (Y/M/D) -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-06-14 (Y/M/D) +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 379_459, 671_306 - /// Average: 390_664 - /// Median: 382_137 - /// Std-Dev: 31355.18 + /// Min, Max: 449_093, 498_211 + /// Average: 461_988 + /// Median: 459_070 + /// Std-Dev: 10124.58 /// /// Percentiles nanoseconds: - /// 99th: 451_107 - /// 95th: 413_762 - /// 75th: 385_017 + /// 99th: 493_580 + /// 95th: 482_929 + /// 75th: 464_502 pub const BlockExecutionWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(390_664), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(461_988), 0); } #[cfg(test)] diff --git a/runtime/westend/constants/src/weights/extrinsic_weights.rs b/runtime/westend/constants/src/weights/extrinsic_weights.rs index 64bb09a2de59..2542bc9ab64d 100644 --- a/runtime/westend/constants/src/weights/extrinsic_weights.rs +++ b/runtime/westend/constants/src/weights/extrinsic_weights.rs @@ -15,8 +15,8 @@ // along with Polkadot. If not, see . //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-26 (Y/M/D) -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-06-14 (Y/M/D) +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -43,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 95_834, 98_346 - /// Average: 96_589 - /// Median: 96_586 - /// Std-Dev: 401.14 + /// Min, Max: 112_202, 116_271 + /// Average: 113_632 + /// Median: 113_689 + /// Std-Dev: 576.31 /// /// Percentiles nanoseconds: - /// 99th: 98_155 - /// 95th: 97_229 - /// 75th: 96_757 + /// 99th: 114_688 + /// 95th: 114_367 + /// 75th: 113_969 pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(96_589), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(113_632), 0); } #[cfg(test)] diff --git a/runtime/westend/src/weights/frame_election_provider_support.rs b/runtime/westend/src/weights/frame_election_provider_support.rs index f4fa3421dfff..8c098f5130ac 100644 --- a/runtime/westend/src/weights/frame_election_provider_support.rs +++ b/runtime/westend/src/weights/frame_election_provider_support.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_election_provider_support` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=frame_election_provider_support // --extrinsic=* // --execution=wasm @@ -54,13 +57,13 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_093_932_000 picoseconds. - Weight::from_parts(6_174_873_000, 0) + // Minimum execution time: 6_980_226_000 picoseconds. + Weight::from_parts(7_460_761_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 137_795 - .saturating_add(Weight::from_parts(5_788_440, 0).saturating_mul(v.into())) - // Standard Error: 14_087_677 - .saturating_add(Weight::from_parts(1_495_492_921, 0).saturating_mul(d.into())) + // Standard Error: 175_219 + .saturating_add(Weight::from_parts(7_887_353, 0).saturating_mul(v.into())) + // Standard Error: 17_913_846 + .saturating_add(Weight::from_parts(1_549_115_489, 0).saturating_mul(d.into())) } /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. @@ -69,12 +72,12 @@ impl frame_election_provider_support::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_143_575_000 picoseconds. - Weight::from_parts(4_185_323_000, 0) + // Minimum execution time: 4_753_214_000 picoseconds. + Weight::from_parts(5_108_654_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 110_442 - .saturating_add(Weight::from_parts(4_432_315, 0).saturating_mul(v.into())) - // Standard Error: 11_291_242 - .saturating_add(Weight::from_parts(1_268_452_940, 0).saturating_mul(d.into())) + // Standard Error: 145_622 + .saturating_add(Weight::from_parts(6_118_763, 0).saturating_mul(v.into())) + // Standard Error: 14_887_919 + .saturating_add(Weight::from_parts(1_488_590_343, 0).saturating_mul(d.into())) } } diff --git a/runtime/westend/src/weights/frame_system.rs b/runtime/westend/src/weights/frame_system.rs index 7ba71841321e..deef0959363c 100644 --- a/runtime/westend/src/weights/frame_system.rs +++ b/runtime/westend/src/weights/frame_system.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=frame_system // --extrinsic=* // --execution=wasm @@ -52,22 +55,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_954_000 picoseconds. - Weight::from_parts(2_047_000, 0) + // Minimum execution time: 2_050_000 picoseconds. + Weight::from_parts(2_094_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(411, 0).saturating_mul(b.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(490, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_461_000 picoseconds. - Weight::from_parts(7_609_000, 0) + // Minimum execution time: 7_620_000 picoseconds. + Weight::from_parts(7_824_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(1_452, 0).saturating_mul(b.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(2_180, 0).saturating_mul(b.into())) } /// Storage: System Digest (r:1 w:1) /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) @@ -77,8 +80,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 4_174_000 picoseconds. - Weight::from_parts(4_345_000, 0) + // Minimum execution time: 3_746_000 picoseconds. + Weight::from_parts(4_096_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -91,8 +94,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 80_979_741_000 picoseconds. - Weight::from_parts(83_497_147_000, 0) + // Minimum execution time: 120_822_538_000 picoseconds. + Weight::from_parts(128_806_623_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -104,11 +107,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_107_000 picoseconds. - Weight::from_parts(2_160_000, 0) + // Minimum execution time: 2_128_000 picoseconds. + Weight::from_parts(2_198_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_761 - .saturating_add(Weight::from_parts(663_616, 0).saturating_mul(i.into())) + // Standard Error: 3_376 + .saturating_add(Weight::from_parts(824_994, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -118,11 +121,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_154_000 picoseconds. - Weight::from_parts(2_195_000, 0) + // Minimum execution time: 2_110_000 picoseconds. + Weight::from_parts(2_200_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 770 - .saturating_add(Weight::from_parts(492_596, 0).saturating_mul(i.into())) + // Standard Error: 1_859 + .saturating_add(Weight::from_parts(630_789, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: Skipped Metadata (r:0 w:0) @@ -132,11 +135,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `132 + p * (69 ±0)` // Estimated: `107 + p * (70 ±0)` - // Minimum execution time: 4_030_000 picoseconds. - Weight::from_parts(4_108_000, 0) + // Minimum execution time: 4_151_000 picoseconds. + Weight::from_parts(4_226_000, 0) .saturating_add(Weight::from_parts(0, 107)) - // Standard Error: 1_141 - .saturating_add(Weight::from_parts(1_031_790, 0).saturating_mul(p.into())) + // Standard Error: 4_953 + .saturating_add(Weight::from_parts(1_418_957, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) diff --git a/runtime/westend/src/weights/pallet_bags_list.rs b/runtime/westend/src/weights/pallet_bags_list.rs index 2671c30b1855..53e4857bd287 100644 --- a/runtime/westend/src/weights/pallet_bags_list.rs +++ b/runtime/westend/src/weights/pallet_bags_list.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bags_list` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_bags_list // --extrinsic=* // --execution=wasm @@ -59,8 +62,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1656` // Estimated: `11506` - // Minimum execution time: 59_915_000 picoseconds. - Weight::from_parts(60_573_000, 0) + // Minimum execution time: 60_240_000 picoseconds. + Weight::from_parts(62_834_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -77,8 +80,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1550` // Estimated: `8877` - // Minimum execution time: 58_160_000 picoseconds. - Weight::from_parts(58_723_000, 0) + // Minimum execution time: 59_084_000 picoseconds. + Weight::from_parts(60_589_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -97,8 +100,8 @@ impl pallet_bags_list::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1861` // Estimated: `11506` - // Minimum execution time: 64_315_000 picoseconds. - Weight::from_parts(64_937_000, 0) + // Minimum execution time: 65_945_000 picoseconds. + Weight::from_parts(67_429_000, 0) .saturating_add(Weight::from_parts(0, 11506)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(6)) diff --git a/runtime/westend/src/weights/pallet_balances.rs b/runtime/westend/src/weights/pallet_balances.rs index 4a5d1326a673..4508507206c2 100644 --- a/runtime/westend/src/weights/pallet_balances.rs +++ b/runtime/westend/src/weights/pallet_balances.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_balances // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 51_864_000 picoseconds. - Weight::from_parts(52_543_000, 0) + // Minimum execution time: 57_163_000 picoseconds. + Weight::from_parts(58_105_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +68,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 39_686_000 picoseconds. - Weight::from_parts(39_875_000, 0) + // Minimum execution time: 43_085_000 picoseconds. + Weight::from_parts(43_779_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -77,8 +80,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 15_841_000 picoseconds. - Weight::from_parts(16_149_000, 0) + // Minimum execution time: 16_153_000 picoseconds. + Weight::from_parts(16_725_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -89,8 +92,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 22_447_000 picoseconds. - Weight::from_parts(22_935_000, 0) + // Minimum execution time: 23_335_000 picoseconds. + Weight::from_parts(23_715_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -101,8 +104,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 53_749_000 picoseconds. - Weight::from_parts(54_549_000, 0) + // Minimum execution time: 58_776_000 picoseconds. + Weight::from_parts(59_353_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -113,8 +116,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 48_306_000 picoseconds. - Weight::from_parts(48_720_000, 0) + // Minimum execution time: 52_826_000 picoseconds. + Weight::from_parts(53_816_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -125,8 +128,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 18_644_000 picoseconds. - Weight::from_parts(18_969_000, 0) + // Minimum execution time: 19_400_000 picoseconds. + Weight::from_parts(19_746_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +141,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (135 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 17_484_000 picoseconds. - Weight::from_parts(17_670_000, 0) + // Minimum execution time: 18_465_000 picoseconds. + Weight::from_parts(18_670_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 9_919 - .saturating_add(Weight::from_parts(13_951_674, 0).saturating_mul(u.into())) + // Standard Error: 22_827 + .saturating_add(Weight::from_parts(17_357_501, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) diff --git a/runtime/westend/src/weights/pallet_election_provider_multi_phase.rs b/runtime/westend/src/weights/pallet_election_provider_multi_phase.rs index 19b508667c9d..cd315cda2a7b 100644 --- a/runtime/westend/src/weights/pallet_election_provider_multi_phase.rs +++ b/runtime/westend/src/weights/pallet_election_provider_multi_phase.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_election_provider_multi_phase` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_election_provider_multi_phase // --extrinsic=* // --execution=wasm @@ -67,8 +70,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `919` // Estimated: `3481` - // Minimum execution time: 17_169_000 picoseconds. - Weight::from_parts(17_521_000, 0) + // Minimum execution time: 18_263_000 picoseconds. + Weight::from_parts(19_329_000, 0) .saturating_add(Weight::from_parts(0, 3481)) .saturating_add(T::DbWeight::get().reads(8)) } @@ -80,8 +83,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `6` // Estimated: `1491` - // Minimum execution time: 10_999_000 picoseconds. - Weight::from_parts(11_294_000, 0) + // Minimum execution time: 9_839_000 picoseconds. + Weight::from_parts(10_245_000, 0) .saturating_add(Weight::from_parts(0, 1491)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -94,8 +97,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `6` // Estimated: `1491` - // Minimum execution time: 12_251_000 picoseconds. - Weight::from_parts(12_494_000, 0) + // Minimum execution time: 10_981_000 picoseconds. + Weight::from_parts(11_231_000, 0) .saturating_add(Weight::from_parts(0, 1491)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -108,8 +111,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 29_440_000 picoseconds. - Weight::from_parts(29_755_000, 0) + // Minimum execution time: 31_786_000 picoseconds. + Weight::from_parts(32_205_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +123,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 20_113_000 picoseconds. - Weight::from_parts(20_413_000, 0) + // Minimum execution time: 21_236_000 picoseconds. + Weight::from_parts(21_972_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -138,11 +141,11 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 456_690_000 picoseconds. - Weight::from_parts(465_826_000, 0) + // Minimum execution time: 633_519_000 picoseconds. + Weight::from_parts(654_417_363, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_535 - .saturating_add(Weight::from_parts(267_360, 0).saturating_mul(v.into())) + // Standard Error: 25_140 + .saturating_add(Weight::from_parts(454_358, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) @@ -171,13 +174,11 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `229 + a * (768 ±0) + d * (48 ±0)` // Estimated: `3781 + a * (768 ±0) + d * (49 ±0)` - // Minimum execution time: 277_340_000 picoseconds. - Weight::from_parts(61_228_911, 0) + // Minimum execution time: 397_371_000 picoseconds. + Weight::from_parts(434_700_000, 0) .saturating_add(Weight::from_parts(0, 3781)) - // Standard Error: 3_240 - .saturating_add(Weight::from_parts(354_534, 0).saturating_mul(a.into())) - // Standard Error: 4_856 - .saturating_add(Weight::from_parts(141_702, 0).saturating_mul(d.into())) + // Standard Error: 15_899 + .saturating_add(Weight::from_parts(877_242, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(9)) .saturating_add(Weight::from_parts(0, 768).saturating_mul(a.into())) @@ -199,8 +200,8 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `7368` // Estimated: `8853` - // Minimum execution time: 52_231_000 picoseconds. - Weight::from_parts(53_007_000, 0) + // Minimum execution time: 62_891_000 picoseconds. + Weight::from_parts(68_415_000, 0) .saturating_add(Weight::from_parts(0, 8853)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -227,13 +228,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `110 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1595 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 4_778_989_000 picoseconds. - Weight::from_parts(4_853_123_000, 0) + // Minimum execution time: 6_652_347_000 picoseconds. + Weight::from_parts(7_246_265_000, 0) .saturating_add(Weight::from_parts(0, 1595)) - // Standard Error: 16_053 - .saturating_add(Weight::from_parts(130_630, 0).saturating_mul(v.into())) - // Standard Error: 47_572 - .saturating_add(Weight::from_parts(4_178_662, 0).saturating_mul(a.into())) + // Standard Error: 35_723 + .saturating_add(Weight::from_parts(282_336, 0).saturating_mul(v.into())) + // Standard Error: 105_863 + .saturating_add(Weight::from_parts(6_158_464, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) @@ -255,13 +256,13 @@ impl pallet_election_provider_multi_phase::WeightInfo f // Proof Size summary in bytes: // Measured: `85 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1570 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 4_061_330_000 picoseconds. - Weight::from_parts(4_097_199_000, 0) + // Minimum execution time: 5_508_561_000 picoseconds. + Weight::from_parts(6_001_538_000, 0) .saturating_add(Weight::from_parts(0, 1570)) - // Standard Error: 14_131 - .saturating_add(Weight::from_parts(203_770, 0).saturating_mul(v.into())) - // Standard Error: 41_877 - .saturating_add(Weight::from_parts(3_440_009, 0).saturating_mul(a.into())) + // Standard Error: 34_050 + .saturating_add(Weight::from_parts(712_513, 0).saturating_mul(v.into())) + // Standard Error: 100_904 + .saturating_add(Weight::from_parts(4_080_970, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) .saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into())) diff --git a/runtime/westend/src/weights/pallet_fast_unstake.rs b/runtime/westend/src/weights/pallet_fast_unstake.rs index e7802e3a91fd..8c061688fc66 100644 --- a/runtime/westend/src/weights/pallet_fast_unstake.rs +++ b/runtime/westend/src/weights/pallet_fast_unstake.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_fast_unstake` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_fast_unstake // --extrinsic=* // --execution=wasm @@ -82,11 +85,11 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1090 + b * (344 ±0)` // Estimated: `4572 + b * (3774 ±0)` - // Minimum execution time: 85_053_000 picoseconds. - Weight::from_parts(19_863_426, 0) + // Minimum execution time: 88_455_000 picoseconds. + Weight::from_parts(4_625_058, 0) .saturating_add(Weight::from_parts(0, 4572)) - // Standard Error: 51_054 - .saturating_add(Weight::from_parts(53_140_856, 0).saturating_mul(b.into())) + // Standard Error: 92_258 + .saturating_add(Weight::from_parts(61_451_756, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -113,13 +116,13 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1304 + b * (48 ±0) + v * (2485 ±0)` // Estimated: `4622 + b * (49 ±0) + v * (4961 ±0)` - // Minimum execution time: 645_266_000 picoseconds. - Weight::from_parts(653_830_000, 0) + // Minimum execution time: 737_381_000 picoseconds. + Weight::from_parts(747_714_000, 0) .saturating_add(Weight::from_parts(0, 4622)) - // Standard Error: 4_058_300 - .saturating_add(Weight::from_parts(131_343_333, 0).saturating_mul(v.into())) - // Standard Error: 16_237_723 - .saturating_add(Weight::from_parts(507_503_213, 0).saturating_mul(b.into())) + // Standard Error: 4_194_752 + .saturating_add(Weight::from_parts(135_818_708, 0).saturating_mul(v.into())) + // Standard Error: 16_783_682 + .saturating_add(Weight::from_parts(525_457_699, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -160,8 +163,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1826` // Estimated: `4764` - // Minimum execution time: 114_306_000 picoseconds. - Weight::from_parts(115_320_000, 0) + // Minimum execution time: 122_429_000 picoseconds. + Weight::from_parts(125_427_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(15)) .saturating_add(T::DbWeight::get().writes(9)) @@ -180,8 +183,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1118` // Estimated: `4572` - // Minimum execution time: 41_871_000 picoseconds. - Weight::from_parts(42_446_000, 0) + // Minimum execution time: 43_442_000 picoseconds. + Weight::from_parts(44_728_000, 0) .saturating_add(Weight::from_parts(0, 4572)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -192,8 +195,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_673_000 picoseconds. - Weight::from_parts(2_771_000, 0) + // Minimum execution time: 2_471_000 picoseconds. + Weight::from_parts(2_667_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/pallet_identity.rs b/runtime/westend/src/weights/pallet_identity.rs index 96c79d9c561b..8c11482ebdc1 100644 --- a/runtime/westend/src/weights/pallet_identity.rs +++ b/runtime/westend/src/weights/pallet_identity.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_identity` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_identity // --extrinsic=* // --execution=wasm @@ -54,11 +57,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 11_731_000 picoseconds. - Weight::from_parts(12_252_069, 0) + // Minimum execution time: 11_550_000 picoseconds. + Weight::from_parts(12_323_322, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_271 - .saturating_add(Weight::from_parts(112_988, 0).saturating_mul(r.into())) + // Standard Error: 1_709 + .saturating_add(Weight::from_parts(131_132, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -70,13 +73,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `442 + r * (5 ±0)` // Estimated: `11003` - // Minimum execution time: 31_663_000 picoseconds. - Weight::from_parts(30_723_166, 0) + // Minimum execution time: 32_882_000 picoseconds. + Weight::from_parts(30_046_973, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_186 - .saturating_add(Weight::from_parts(82_515, 0).saturating_mul(r.into())) - // Standard Error: 426 - .saturating_add(Weight::from_parts(465_253, 0).saturating_mul(x.into())) + // Standard Error: 7_269 + .saturating_add(Weight::from_parts(250_439, 0).saturating_mul(r.into())) + // Standard Error: 1_418 + .saturating_add(Weight::from_parts(483_981, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -91,11 +94,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `101` // Estimated: `11003 + s * (2589 ±0)` - // Minimum execution time: 9_314_000 picoseconds. - Weight::from_parts(22_473_414, 0) + // Minimum execution time: 9_045_000 picoseconds. + Weight::from_parts(22_036_189, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 8_954 - .saturating_add(Weight::from_parts(2_780_286, 0).saturating_mul(s.into())) + // Standard Error: 4_819 + .saturating_add(Weight::from_parts(3_134_467, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -113,11 +116,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `194 + p * (32 ±0)` // Estimated: `11003` - // Minimum execution time: 9_212_000 picoseconds. - Weight::from_parts(23_501_852, 0) + // Minimum execution time: 8_836_000 picoseconds. + Weight::from_parts(23_025_121, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 3_465 - .saturating_add(Weight::from_parts(1_107_543, 0).saturating_mul(p.into())) + // Standard Error: 4_111 + .saturating_add(Weight::from_parts(1_313_487, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) @@ -135,15 +138,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 53_291_000 picoseconds. - Weight::from_parts(30_248_342, 0) + // Minimum execution time: 60_177_000 picoseconds. + Weight::from_parts(26_533_717, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 9_842 - .saturating_add(Weight::from_parts(90_340, 0).saturating_mul(r.into())) - // Standard Error: 1_922 - .saturating_add(Weight::from_parts(1_086_143, 0).saturating_mul(s.into())) - // Standard Error: 1_922 - .saturating_add(Weight::from_parts(234_032, 0).saturating_mul(x.into())) + // Standard Error: 20_957 + .saturating_add(Weight::from_parts(475_120, 0).saturating_mul(r.into())) + // Standard Error: 4_092 + .saturating_add(Weight::from_parts(1_348_869, 0).saturating_mul(s.into())) + // Standard Error: 4_092 + .saturating_add(Weight::from_parts(314_033, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -158,13 +161,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `367 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 32_457_000 picoseconds. - Weight::from_parts(31_792_415, 0) + // Minimum execution time: 32_818_000 picoseconds. + Weight::from_parts(32_253_281, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_199 - .saturating_add(Weight::from_parts(80_014, 0).saturating_mul(r.into())) - // Standard Error: 429 - .saturating_add(Weight::from_parts(464_202, 0).saturating_mul(x.into())) + // Standard Error: 7_973 + .saturating_add(Weight::from_parts(124_283, 0).saturating_mul(r.into())) + // Standard Error: 1_555 + .saturating_add(Weight::from_parts(512_825, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -176,13 +179,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `398 + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 29_144_000 picoseconds. - Weight::from_parts(28_967_813, 0) + // Minimum execution time: 29_931_000 picoseconds. + Weight::from_parts(28_643_196, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 2_127 - .saturating_add(Weight::from_parts(76_079, 0).saturating_mul(r.into())) - // Standard Error: 415 - .saturating_add(Weight::from_parts(457_505, 0).saturating_mul(x.into())) + // Standard Error: 5_154 + .saturating_add(Weight::from_parts(147_560, 0).saturating_mul(r.into())) + // Standard Error: 1_005 + .saturating_add(Weight::from_parts(490_754, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +196,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_515_000 picoseconds. - Weight::from_parts(7_863_919, 0) + // Minimum execution time: 7_221_000 picoseconds. + Weight::from_parts(7_620_590, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_158 - .saturating_add(Weight::from_parts(95_069, 0).saturating_mul(r.into())) + // Standard Error: 3_611 + .saturating_add(Weight::from_parts(118_590, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +211,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_537_000 picoseconds. - Weight::from_parts(7_884_083, 0) + // Minimum execution time: 7_426_000 picoseconds. + Weight::from_parts(7_928_489, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_070 - .saturating_add(Weight::from_parts(93_113, 0).saturating_mul(r.into())) + // Standard Error: 1_447 + .saturating_add(Weight::from_parts(106_416, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -223,11 +226,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_509_000 picoseconds. - Weight::from_parts(7_813_589, 0) + // Minimum execution time: 7_359_000 picoseconds. + Weight::from_parts(7_803_303, 0) .saturating_add(Weight::from_parts(0, 2626)) - // Standard Error: 1_112 - .saturating_add(Weight::from_parts(91_834, 0).saturating_mul(r.into())) + // Standard Error: 1_272 + .saturating_add(Weight::from_parts(102_561, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -241,13 +244,13 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `445 + r * (57 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 23_050_000 picoseconds. - Weight::from_parts(22_495_353, 0) + // Minimum execution time: 22_742_000 picoseconds. + Weight::from_parts(21_879_281, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 4_148 - .saturating_add(Weight::from_parts(103_139, 0).saturating_mul(r.into())) - // Standard Error: 767 - .saturating_add(Weight::from_parts(773_335, 0).saturating_mul(x.into())) + // Standard Error: 10_027 + .saturating_add(Weight::from_parts(154_816, 0).saturating_mul(r.into())) + // Standard Error: 1_855 + .saturating_add(Weight::from_parts(803_084, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -266,15 +269,15 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` // Estimated: `11003` - // Minimum execution time: 57_402_000 picoseconds. - Weight::from_parts(36_479_092, 0) + // Minimum execution time: 64_467_000 picoseconds. + Weight::from_parts(27_806_692, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 10_362 - .saturating_add(Weight::from_parts(90_209, 0).saturating_mul(r.into())) - // Standard Error: 2_023 - .saturating_add(Weight::from_parts(1_110_142, 0).saturating_mul(s.into())) - // Standard Error: 2_023 - .saturating_add(Weight::from_parts(224_263, 0).saturating_mul(x.into())) + // Standard Error: 22_702 + .saturating_add(Weight::from_parts(666_376, 0).saturating_mul(r.into())) + // Standard Error: 4_433 + .saturating_add(Weight::from_parts(1_396_065, 0).saturating_mul(s.into())) + // Standard Error: 4_433 + .saturating_add(Weight::from_parts(300_762, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -290,11 +293,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `475 + s * (36 ±0)` // Estimated: `11003` - // Minimum execution time: 28_828_000 picoseconds. - Weight::from_parts(33_618_814, 0) + // Minimum execution time: 29_629_000 picoseconds. + Weight::from_parts(33_761_925, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_341 - .saturating_add(Weight::from_parts(62_821, 0).saturating_mul(s.into())) + // Standard Error: 2_047 + .saturating_add(Weight::from_parts(132_184, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -307,11 +310,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `591 + s * (3 ±0)` // Estimated: `11003` - // Minimum execution time: 12_650_000 picoseconds. - Weight::from_parts(14_575_994, 0) + // Minimum execution time: 13_204_000 picoseconds. + Weight::from_parts(14_376_165, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 514 - .saturating_add(Weight::from_parts(18_167, 0).saturating_mul(s.into())) + // Standard Error: 1_699 + .saturating_add(Weight::from_parts(45_951, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -326,11 +329,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `638 + s * (35 ±0)` // Estimated: `11003` - // Minimum execution time: 32_391_000 picoseconds. - Weight::from_parts(35_443_054, 0) + // Minimum execution time: 33_254_000 picoseconds. + Weight::from_parts(35_772_961, 0) .saturating_add(Weight::from_parts(0, 11003)) - // Standard Error: 1_001 - .saturating_add(Weight::from_parts(51_211, 0).saturating_mul(s.into())) + // Standard Error: 1_649 + .saturating_add(Weight::from_parts(116_697, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -345,11 +348,11 @@ impl pallet_identity::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `704 + s * (37 ±0)` // Estimated: `6723` - // Minimum execution time: 23_939_000 picoseconds. - Weight::from_parts(26_720_529, 0) + // Minimum execution time: 24_613_000 picoseconds. + Weight::from_parts(26_548_039, 0) .saturating_add(Weight::from_parts(0, 6723)) - // Standard Error: 907 - .saturating_add(Weight::from_parts(54_990, 0).saturating_mul(s.into())) + // Standard Error: 1_602 + .saturating_add(Weight::from_parts(112_354, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/westend/src/weights/pallet_im_online.rs b/runtime/westend/src/weights/pallet_im_online.rs index 5a4e27316900..a83cd43804df 100644 --- a/runtime/westend/src/weights/pallet_im_online.rs +++ b/runtime/westend/src/weights/pallet_im_online.rs @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_im_online // --extrinsic=* // --execution=wasm diff --git a/runtime/westend/src/weights/pallet_indices.rs b/runtime/westend/src/weights/pallet_indices.rs index 0d5f84d2c186..42316cd90780 100644 --- a/runtime/westend/src/weights/pallet_indices.rs +++ b/runtime/westend/src/weights/pallet_indices.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_indices` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_indices // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3534` - // Minimum execution time: 23_895_000 picoseconds. - Weight::from_parts(24_230_000, 0) + // Minimum execution time: 24_553_000 picoseconds. + Weight::from_parts(25_288_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -67,8 +70,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 34_794_000 picoseconds. - Weight::from_parts(35_207_000, 0) + // Minimum execution time: 35_932_000 picoseconds. + Weight::from_parts(36_801_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +82,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 24_570_000 picoseconds. - Weight::from_parts(24_911_000, 0) + // Minimum execution time: 25_574_000 picoseconds. + Weight::from_parts(26_123_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +96,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341` // Estimated: `3593` - // Minimum execution time: 27_238_000 picoseconds. - Weight::from_parts(27_660_000, 0) + // Minimum execution time: 27_605_000 picoseconds. + Weight::from_parts(28_569_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -105,8 +108,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `238` // Estimated: `3534` - // Minimum execution time: 27_202_000 picoseconds. - Weight::from_parts(27_539_000, 0) + // Minimum execution time: 27_447_000 picoseconds. + Weight::from_parts(28_136_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/westend/src/weights/pallet_message_queue.rs b/runtime/westend/src/weights/pallet_message_queue.rs index fb4c2b502435..17eff9487819 100644 --- a/runtime/westend/src/weights/pallet_message_queue.rs +++ b/runtime/westend/src/weights/pallet_message_queue.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_message_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_message_queue // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `248` // Estimated: `6050` - // Minimum execution time: 11_417_000 picoseconds. - Weight::from_parts(11_822_000, 0) + // Minimum execution time: 12_154_000 picoseconds. + Weight::from_parts(12_559_000, 0) .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -69,8 +72,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `248` // Estimated: `6050` - // Minimum execution time: 10_963_000 picoseconds. - Weight::from_parts(11_228_000, 0) + // Minimum execution time: 11_166_000 picoseconds. + Weight::from_parts(11_526_000, 0) .saturating_add(Weight::from_parts(0, 6050)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -81,8 +84,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `42` // Estimated: `3520` - // Minimum execution time: 4_042_000 picoseconds. - Weight::from_parts(4_205_000, 0) + // Minimum execution time: 4_160_000 picoseconds. + Weight::from_parts(4_445_000, 0) .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +96,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `115` // Estimated: `134587` - // Minimum execution time: 5_554_000 picoseconds. - Weight::from_parts(5_755_000, 0) + // Minimum execution time: 5_872_000 picoseconds. + Weight::from_parts(6_105_000, 0) .saturating_add(Weight::from_parts(0, 134587)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -105,8 +108,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `115` // Estimated: `134587` - // Minimum execution time: 5_940_000 picoseconds. - Weight::from_parts(6_081_000, 0) + // Minimum execution time: 6_145_000 picoseconds. + Weight::from_parts(6_522_000, 0) .saturating_add(Weight::from_parts(0, 134587)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -115,8 +118,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 136_744_000 picoseconds. - Weight::from_parts(137_289_000, 0) + // Minimum execution time: 173_117_000 picoseconds. + Weight::from_parts(175_271_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: MessageQueue ServiceHead (r:1 w:1) @@ -127,8 +130,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `149` // Estimated: `3520` - // Minimum execution time: 6_180_000 picoseconds. - Weight::from_parts(6_420_000, 0) + // Minimum execution time: 6_429_000 picoseconds. + Weight::from_parts(6_743_000, 0) .saturating_add(Weight::from_parts(0, 3520)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -145,8 +148,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `131252` // Estimated: `134587` - // Minimum execution time: 96_550_000 picoseconds. - Weight::from_parts(96_954_000, 0) + // Minimum execution time: 97_068_000 picoseconds. + Weight::from_parts(100_467_000, 0) .saturating_add(Weight::from_parts(0, 134587)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) @@ -163,8 +166,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `131252` // Estimated: `134587` - // Minimum execution time: 125_821_000 picoseconds. - Weight::from_parts(126_396_000, 0) + // Minimum execution time: 126_674_000 picoseconds. + Weight::from_parts(134_114_000, 0) .saturating_add(Weight::from_parts(0, 134587)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) @@ -181,8 +184,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `131252` // Estimated: `134587` - // Minimum execution time: 188_484_000 picoseconds. - Weight::from_parts(189_601_000, 0) + // Minimum execution time: 204_926_000 picoseconds. + Weight::from_parts(221_900_000, 0) .saturating_add(Weight::from_parts(0, 134587)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtime/westend/src/weights/pallet_multisig.rs b/runtime/westend/src/weights/pallet_multisig.rs index 588f2c2af8ba..616aea9c8e73 100644 --- a/runtime/westend/src/weights/pallet_multisig.rs +++ b/runtime/westend/src/weights/pallet_multisig.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_multisig // --extrinsic=* // --execution=wasm @@ -52,11 +55,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_913_000 picoseconds. - Weight::from_parts(11_369_971, 0) + // Minimum execution time: 13_218_000 picoseconds. + Weight::from_parts(14_749_472, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(524, 0).saturating_mul(z.into())) + // Standard Error: 10 + .saturating_add(Weight::from_parts(507, 0).saturating_mul(z.into())) } /// Storage: Multisig Multisigs (r:1 w:1) /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) @@ -66,13 +69,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `309 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 39_268_000 picoseconds. - Weight::from_parts(33_899_393, 0) + // Minimum execution time: 45_891_000 picoseconds. + Weight::from_parts(33_546_627, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 375 - .saturating_add(Weight::from_parts(62_301, 0).saturating_mul(s.into())) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_224, 0).saturating_mul(z.into())) + // Standard Error: 2_347 + .saturating_add(Weight::from_parts(136_466, 0).saturating_mul(s.into())) + // Standard Error: 23 + .saturating_add(Weight::from_parts(1_595, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -84,13 +87,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `286` // Estimated: `6811` - // Minimum execution time: 26_100_000 picoseconds. - Weight::from_parts(20_766_498, 0) + // Minimum execution time: 30_355_000 picoseconds. + Weight::from_parts(19_611_682, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 316 - .saturating_add(Weight::from_parts(61_763, 0).saturating_mul(s.into())) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_182, 0).saturating_mul(z.into())) + // Standard Error: 1_383 + .saturating_add(Weight::from_parts(123_652, 0).saturating_mul(s.into())) + // Standard Error: 13 + .saturating_add(Weight::from_parts(1_488, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -104,13 +107,13 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `392 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 44_072_000 picoseconds. - Weight::from_parts(37_865_237, 0) + // Minimum execution time: 50_453_000 picoseconds. + Weight::from_parts(35_628_285, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 666 - .saturating_add(Weight::from_parts(75_421, 0).saturating_mul(s.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_180, 0).saturating_mul(z.into())) + // Standard Error: 3_693 + .saturating_add(Weight::from_parts(203_453, 0).saturating_mul(s.into())) + // Standard Error: 36 + .saturating_add(Weight::from_parts(1_726, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -121,11 +124,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `314 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 30_839_000 picoseconds. - Weight::from_parts(32_384_946, 0) + // Minimum execution time: 32_500_000 picoseconds. + Weight::from_parts(33_231_806, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 482 - .saturating_add(Weight::from_parts(66_723, 0).saturating_mul(s.into())) + // Standard Error: 1_511 + .saturating_add(Weight::from_parts(134_500, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -136,11 +139,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `286` // Estimated: `6811` - // Minimum execution time: 18_196_000 picoseconds. - Weight::from_parts(18_983_722, 0) + // Minimum execution time: 17_906_000 picoseconds. + Weight::from_parts(18_757_928, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 458 - .saturating_add(Weight::from_parts(61_127, 0).saturating_mul(s.into())) + // Standard Error: 1_172 + .saturating_add(Weight::from_parts(113_535, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -151,11 +154,11 @@ impl pallet_multisig::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `458 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 32_490_000 picoseconds. - Weight::from_parts(33_574_130, 0) + // Minimum execution time: 33_018_000 picoseconds. + Weight::from_parts(34_186_533, 0) .saturating_add(Weight::from_parts(0, 6811)) - // Standard Error: 547 - .saturating_add(Weight::from_parts(64_265, 0).saturating_mul(s.into())) + // Standard Error: 1_188 + .saturating_add(Weight::from_parts(128_449, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/pallet_nomination_pools.rs b/runtime/westend/src/weights/pallet_nomination_pools.rs index c0af06856074..9d43eb249892 100644 --- a/runtime/westend/src/weights/pallet_nomination_pools.rs +++ b/runtime/westend/src/weights/pallet_nomination_pools.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_nomination_pools` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_nomination_pools // --extrinsic=* // --execution=wasm @@ -81,8 +84,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3281` // Estimated: `8877` - // Minimum execution time: 176_369_000 picoseconds. - Weight::from_parts(177_523_000, 0) + // Minimum execution time: 196_298_000 picoseconds. + Weight::from_parts(202_857_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(19)) .saturating_add(T::DbWeight::get().writes(12)) @@ -113,8 +116,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3291` // Estimated: `8877` - // Minimum execution time: 172_285_000 picoseconds. - Weight::from_parts(174_193_000, 0) + // Minimum execution time: 191_639_000 picoseconds. + Weight::from_parts(197_000_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(12)) @@ -147,8 +150,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3186` // Estimated: `8799` - // Minimum execution time: 199_828_000 picoseconds. - Weight::from_parts(200_942_000, 0) + // Minimum execution time: 224_836_000 picoseconds. + Weight::from_parts(230_990_000, 0) .saturating_add(Weight::from_parts(0, 8799)) .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(12)) @@ -169,8 +172,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1137` // Estimated: `4182` - // Minimum execution time: 74_431_000 picoseconds. - Weight::from_parts(75_741_000, 0) + // Minimum execution time: 79_609_000 picoseconds. + Weight::from_parts(81_434_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -211,8 +214,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `3560` // Estimated: `8877` - // Minimum execution time: 158_030_000 picoseconds. - Weight::from_parts(158_878_000, 0) + // Minimum execution time: 175_473_000 picoseconds. + Weight::from_parts(179_976_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(20)) .saturating_add(T::DbWeight::get().writes(13)) @@ -234,11 +237,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1614` // Estimated: `4764` - // Minimum execution time: 59_728_000 picoseconds. - Weight::from_parts(60_957_789, 0) + // Minimum execution time: 63_011_000 picoseconds. + Weight::from_parts(65_966_680, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 741 - .saturating_add(Weight::from_parts(6_046, 0).saturating_mul(s.into())) + // Standard Error: 2_422 + .saturating_add(Weight::from_parts(58_078, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -269,11 +272,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `2042` // Estimated: `4764` - // Minimum execution time: 121_936_000 picoseconds. - Weight::from_parts(123_798_311, 0) + // Minimum execution time: 134_765_000 picoseconds. + Weight::from_parts(140_539_571, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_169 - .saturating_add(Weight::from_parts(21_320, 0).saturating_mul(s.into())) + // Standard Error: 4_169 + .saturating_add(Weight::from_parts(61_448, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) } @@ -322,15 +325,13 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo /// Storage: NominationPools ClaimPermissions (r:0 w:1) /// Proof: NominationPools ClaimPermissions (max_values: None, max_size: Some(41), added: 2516, mode: MaxEncodedLen) /// The range of component `s` is `[0, 100]`. - fn withdraw_unbonded_kill(s: u32, ) -> Weight { + fn withdraw_unbonded_kill(_s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `2398` // Estimated: `6196` - // Minimum execution time: 203_824_000 picoseconds. - Weight::from_parts(206_388_841, 0) + // Minimum execution time: 226_632_000 picoseconds. + Weight::from_parts(234_263_474, 0) .saturating_add(Weight::from_parts(0, 6196)) - // Standard Error: 2_817 - .saturating_add(Weight::from_parts(13_627, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(21)) .saturating_add(T::DbWeight::get().writes(18)) } @@ -382,8 +383,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1222` // Estimated: `6196` - // Minimum execution time: 177_985_000 picoseconds. - Weight::from_parts(179_504_000, 0) + // Minimum execution time: 197_132_000 picoseconds. + Weight::from_parts(202_099_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(22)) .saturating_add(T::DbWeight::get().writes(15)) @@ -417,11 +418,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1779` // Estimated: `4556 + n * (2520 ±0)` - // Minimum execution time: 64_575_000 picoseconds. - Weight::from_parts(64_712_179, 0) + // Minimum execution time: 68_142_000 picoseconds. + Weight::from_parts(68_977_842, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 4_612 - .saturating_add(Weight::from_parts(1_300_327, 0).saturating_mul(n.into())) + // Standard Error: 10_560 + .saturating_add(Weight::from_parts(1_606_142, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -437,8 +438,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1367` // Estimated: `4556` - // Minimum execution time: 35_436_000 picoseconds. - Weight::from_parts(35_843_000, 0) + // Minimum execution time: 36_343_000 picoseconds. + Weight::from_parts(37_669_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -454,11 +455,11 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3735` - // Minimum execution time: 14_017_000 picoseconds. - Weight::from_parts(14_595_057, 0) + // Minimum execution time: 14_157_000 picoseconds. + Weight::from_parts(15_201_514, 0) .saturating_add(Weight::from_parts(0, 3735)) - // Standard Error: 77 - .saturating_add(Weight::from_parts(1_065, 0).saturating_mul(n.into())) + // Standard Error: 194 + .saturating_add(Weight::from_parts(718, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -478,8 +479,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_932_000 picoseconds. - Weight::from_parts(6_145_000, 0) + // Minimum execution time: 6_082_000 picoseconds. + Weight::from_parts(6_275_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -489,8 +490,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3685` - // Minimum execution time: 18_860_000 picoseconds. - Weight::from_parts(19_156_000, 0) + // Minimum execution time: 19_952_000 picoseconds. + Weight::from_parts(20_880_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -517,8 +518,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `1942` // Estimated: `4556` - // Minimum execution time: 62_812_000 picoseconds. - Weight::from_parts(63_227_000, 0) + // Minimum execution time: 66_233_000 picoseconds. + Weight::from_parts(68_181_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -535,8 +536,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `736` // Estimated: `3685` - // Minimum execution time: 31_983_000 picoseconds. - Weight::from_parts(32_552_000, 0) + // Minimum execution time: 33_533_000 picoseconds. + Weight::from_parts(34_915_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -547,8 +548,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `537` // Estimated: `3685` - // Minimum execution time: 18_135_000 picoseconds. - Weight::from_parts(18_821_000, 0) + // Minimum execution time: 18_920_000 picoseconds. + Weight::from_parts(19_410_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -559,8 +560,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `497` // Estimated: `3685` - // Minimum execution time: 18_969_000 picoseconds. - Weight::from_parts(19_175_000, 0) + // Minimum execution time: 19_388_000 picoseconds. + Weight::from_parts(20_346_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -573,8 +574,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `508` // Estimated: `4182` - // Minimum execution time: 13_943_000 picoseconds. - Weight::from_parts(14_374_000, 0) + // Minimum execution time: 14_137_000 picoseconds. + Weight::from_parts(14_846_000, 0) .saturating_add(Weight::from_parts(0, 4182)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -591,8 +592,8 @@ impl pallet_nomination_pools::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `934` // Estimated: `3685` - // Minimum execution time: 61_658_000 picoseconds. - Weight::from_parts(62_636_000, 0) + // Minimum execution time: 66_667_000 picoseconds. + Weight::from_parts(68_573_000, 0) .saturating_add(Weight::from_parts(0, 3685)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/runtime/westend/src/weights/pallet_offences.rs b/runtime/westend/src/weights/pallet_offences.rs new file mode 100644 index 000000000000..2a0039844d4f --- /dev/null +++ b/runtime/westend/src/weights/pallet_offences.rs @@ -0,0 +1,222 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_offences` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=westend-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=pallet_offences +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/westend/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_offences`. +pub struct WeightInfo(PhantomData); +impl pallet_offences::WeightInfo for WeightInfo { + /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) + /// Proof Skipped: Offences ConcurrentReportsIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Offences Reports (r:100 w:100) + /// Proof Skipped: Offences Reports (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SlashRewardFraction (r:1 w:0) + /// Proof: Staking SlashRewardFraction (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking ActiveEra (r:1 w:0) + /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// Storage: Staking ErasStartSessionIndex (r:1 w:0) + /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: Staking Invulnerables (r:1 w:0) + /// Proof Skipped: Staking Invulnerables (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking ValidatorSlashInEra (r:100 w:100) + /// Proof: Staking ValidatorSlashInEra (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + /// Storage: Staking SlashingSpans (r:1700 w:1700) + /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SpanSlash (r:1700 w:1700) + /// Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// Storage: Staking Validators (r:100 w:100) + /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// Storage: Staking CounterForValidators (r:1 w:1) + /// Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: VoterList ListNodes (r:300 w:300) + /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + /// Storage: VoterList CounterForListNodes (r:1 w:1) + /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking Nominators (r:100 w:0) + /// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) + /// Storage: Staking OffendingValidators (r:1 w:1) + /// Proof Skipped: Staking OffendingValidators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Session Validators (r:1 w:0) + /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking NominatorSlashInEra (r:1600 w:1600) + /// Proof: Staking NominatorSlashInEra (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Staking UnappliedSlashes (r:1 w:1) + /// Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) + /// Storage: VoterList ListBags (r:1 w:1) + /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// The range of component `r` is `[1, 100]`. + /// The range of component `o` is `[2, 100]`. + /// The range of component `n` is `[0, 16]`. + fn report_offence_im_online(_r: u32, o: u32, n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + n * (3462 ±0) + o * (1042 ±0)` + // Estimated: `88666 + n * (157019 ±38) + o * (26384 ±6)` + // Minimum execution time: 535_077_000 picoseconds. + Weight::from_parts(552_420_000, 0) + .saturating_add(Weight::from_parts(0, 88666)) + // Standard Error: 4_786_756 + .saturating_add(Weight::from_parts(434_857_612, 0).saturating_mul(o.into())) + // Standard Error: 29_086_480 + .saturating_add(Weight::from_parts(365_733_267, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(124)) + .saturating_add(T::DbWeight::get().reads((37_u64).saturating_mul(o.into()))) + .saturating_add(T::DbWeight::get().reads((187_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(117)) + .saturating_add(T::DbWeight::get().writes((36_u64).saturating_mul(o.into()))) + .saturating_add(T::DbWeight::get().writes((187_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 157019).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 26384).saturating_mul(o.into())) + } + /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) + /// Proof Skipped: Offences ConcurrentReportsIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Offences Reports (r:1 w:1) + /// Proof Skipped: Offences Reports (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SlashRewardFraction (r:1 w:0) + /// Proof: Staking SlashRewardFraction (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking ActiveEra (r:1 w:0) + /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// Storage: Staking ErasStartSessionIndex (r:1 w:0) + /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: Staking Invulnerables (r:1 w:0) + /// Proof Skipped: Staking Invulnerables (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking ValidatorSlashInEra (r:1 w:1) + /// Proof: Staking ValidatorSlashInEra (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + /// Storage: Staking SlashingSpans (r:17 w:17) + /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SpanSlash (r:17 w:17) + /// Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// Storage: Staking Validators (r:1 w:1) + /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// Storage: Staking CounterForValidators (r:1 w:1) + /// Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: VoterList ListNodes (r:3 w:3) + /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + /// Storage: VoterList CounterForListNodes (r:1 w:1) + /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking Nominators (r:1 w:0) + /// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) + /// Storage: Staking OffendingValidators (r:1 w:1) + /// Proof Skipped: Staking OffendingValidators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Session Validators (r:1 w:0) + /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking NominatorSlashInEra (r:16 w:16) + /// Proof: Staking NominatorSlashInEra (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Staking UnappliedSlashes (r:1 w:1) + /// Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) + /// Storage: VoterList ListBags (r:1 w:1) + /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 16]`. + fn report_offence_grandpa(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1763 + n * (65 ±0)` + // Estimated: `8149 + n * (2551 ±0)` + // Minimum execution time: 98_496_000 picoseconds. + Weight::from_parts(103_619_589, 0) + .saturating_add(Weight::from_parts(0, 8149)) + // Standard Error: 46_011 + .saturating_add(Weight::from_parts(12_464_366, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(19)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(13)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2551).saturating_mul(n.into())) + } + /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) + /// Proof Skipped: Offences ConcurrentReportsIndex (max_values: None, max_size: None, mode: Measured) + /// Storage: Offences Reports (r:1 w:1) + /// Proof Skipped: Offences Reports (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SlashRewardFraction (r:1 w:0) + /// Proof: Staking SlashRewardFraction (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking ActiveEra (r:1 w:0) + /// Proof: Staking ActiveEra (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// Storage: Staking ErasStartSessionIndex (r:1 w:0) + /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: Staking Invulnerables (r:1 w:0) + /// Proof Skipped: Staking Invulnerables (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking ValidatorSlashInEra (r:1 w:1) + /// Proof: Staking ValidatorSlashInEra (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + /// Storage: Staking SlashingSpans (r:17 w:17) + /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) + /// Storage: Staking SpanSlash (r:17 w:17) + /// Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// Storage: Staking Validators (r:1 w:1) + /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// Storage: Staking CounterForValidators (r:1 w:1) + /// Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: VoterList ListNodes (r:3 w:3) + /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + /// Storage: VoterList CounterForListNodes (r:1 w:1) + /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Staking Nominators (r:1 w:0) + /// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) + /// Storage: Staking OffendingValidators (r:1 w:1) + /// Proof Skipped: Staking OffendingValidators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Session Validators (r:1 w:0) + /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Staking NominatorSlashInEra (r:16 w:16) + /// Proof: Staking NominatorSlashInEra (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Staking UnappliedSlashes (r:1 w:1) + /// Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) + /// Storage: VoterList ListBags (r:1 w:1) + /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 16]`. + fn report_offence_babe(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1763 + n * (65 ±0)` + // Estimated: `8149 + n * (2551 ±0)` + // Minimum execution time: 98_531_000 picoseconds. + Weight::from_parts(104_912_692, 0) + .saturating_add(Weight::from_parts(0, 8149)) + // Standard Error: 40_911 + .saturating_add(Weight::from_parts(12_219_649, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(19)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(13)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2551).saturating_mul(n.into())) + } +} diff --git a/runtime/westend/src/weights/pallet_preimage.rs b/runtime/westend/src/weights/pallet_preimage.rs index 347628b21ee9..39d3626b189f 100644 --- a/runtime/westend/src/weights/pallet_preimage.rs +++ b/runtime/westend/src/weights/pallet_preimage.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_preimage // --extrinsic=* // --execution=wasm @@ -56,11 +59,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `181` // Estimated: `3556` - // Minimum execution time: 29_397_000 picoseconds. - Weight::from_parts(29_750_000, 0) + // Minimum execution time: 30_248_000 picoseconds. + Weight::from_parts(30_746_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_015, 0).saturating_mul(s.into())) + // Standard Error: 11 + .saturating_add(Weight::from_parts(3_563, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -73,11 +76,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 16_220_000 picoseconds. - Weight::from_parts(16_463_000, 0) + // Minimum execution time: 16_748_000 picoseconds. + Weight::from_parts(17_025_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_009, 0).saturating_mul(s.into())) + // Standard Error: 12 + .saturating_add(Weight::from_parts(3_559, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -90,11 +93,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 15_846_000 picoseconds. - Weight::from_parts(16_000_000, 0) + // Minimum execution time: 16_353_000 picoseconds. + Weight::from_parts(16_501_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_008, 0).saturating_mul(s.into())) + // Standard Error: 11 + .saturating_add(Weight::from_parts(3_615, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -106,8 +109,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `327` // Estimated: `3556` - // Minimum execution time: 36_669_000 picoseconds. - Weight::from_parts(37_789_000, 0) + // Minimum execution time: 52_924_000 picoseconds. + Weight::from_parts(77_162_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,8 +123,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `182` // Estimated: `3556` - // Minimum execution time: 21_555_000 picoseconds. - Weight::from_parts(22_594_000, 0) + // Minimum execution time: 33_660_000 picoseconds. + Weight::from_parts(53_453_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -132,8 +135,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `226` // Estimated: `3556` - // Minimum execution time: 19_401_000 picoseconds. - Weight::from_parts(20_318_000, 0) + // Minimum execution time: 29_363_000 picoseconds. + Weight::from_parts(47_779_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -144,8 +147,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `182` // Estimated: `3556` - // Minimum execution time: 11_560_000 picoseconds. - Weight::from_parts(12_357_000, 0) + // Minimum execution time: 21_614_000 picoseconds. + Weight::from_parts(37_598_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -156,8 +159,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `80` // Estimated: `3556` - // Minimum execution time: 13_545_000 picoseconds. - Weight::from_parts(14_008_000, 0) + // Minimum execution time: 28_867_000 picoseconds. + Weight::from_parts(41_737_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -168,8 +171,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 8_797_000 picoseconds. - Weight::from_parts(9_030_000, 0) + // Minimum execution time: 11_595_000 picoseconds. + Weight::from_parts(16_316_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -182,8 +185,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `182` // Estimated: `3556` - // Minimum execution time: 20_449_000 picoseconds. - Weight::from_parts(21_297_000, 0) + // Minimum execution time: 33_521_000 picoseconds. + Weight::from_parts(50_094_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -194,8 +197,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 8_492_000 picoseconds. - Weight::from_parts(8_738_000, 0) + // Minimum execution time: 11_048_000 picoseconds. + Weight::from_parts(15_393_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -206,8 +209,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 8_372_000 picoseconds. - Weight::from_parts(8_737_000, 0) + // Minimum execution time: 11_983_000 picoseconds. + Weight::from_parts(14_983_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/westend/src/weights/pallet_proxy.rs b/runtime/westend/src/weights/pallet_proxy.rs index d7125a6281da..f5b1d82f4e52 100644 --- a/runtime/westend/src/weights/pallet_proxy.rs +++ b/runtime/westend/src/weights/pallet_proxy.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_proxy // --extrinsic=* // --execution=wasm @@ -54,11 +57,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 15_376_000 picoseconds. - Weight::from_parts(15_791_573, 0) + // Minimum execution time: 14_951_000 picoseconds. + Weight::from_parts(15_649_274, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 658 - .saturating_add(Weight::from_parts(34_911, 0).saturating_mul(p.into())) + // Standard Error: 1_337 + .saturating_add(Weight::from_parts(40_845, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: Proxy Proxies (r:1 w:0) @@ -73,13 +76,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `554 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 39_934_000 picoseconds. - Weight::from_parts(40_784_077, 0) + // Minimum execution time: 39_918_000 picoseconds. + Weight::from_parts(42_018_315, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 4_067 - .saturating_add(Weight::from_parts(106_399, 0).saturating_mul(a.into())) - // Standard Error: 4_202 - .saturating_add(Weight::from_parts(16_644, 0).saturating_mul(p.into())) + // Standard Error: 5_101 + .saturating_add(Weight::from_parts(126_969, 0).saturating_mul(a.into())) + // Standard Error: 5_270 + .saturating_add(Weight::from_parts(11_500, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -89,15 +92,17 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. - fn remove_announcement(a: u32, _p: u32, ) -> Weight { + fn remove_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_195_000 picoseconds. - Weight::from_parts(24_987_444, 0) + // Minimum execution time: 24_217_000 picoseconds. + Weight::from_parts(25_376_229, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_038 - .saturating_add(Weight::from_parts(133_032, 0).saturating_mul(a.into())) + // Standard Error: 1_898 + .saturating_add(Weight::from_parts(161_111, 0).saturating_mul(a.into())) + // Standard Error: 1_961 + .saturating_add(Weight::from_parts(1_782, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -107,17 +112,15 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. - fn reject_announcement(a: u32, p: u32, ) -> Weight { + fn reject_announcement(a: u32, _p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `469 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_037_000 picoseconds. - Weight::from_parts(24_613_328, 0) + // Minimum execution time: 24_271_000 picoseconds. + Weight::from_parts(25_651_673, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 1_774 - .saturating_add(Weight::from_parts(138_420, 0).saturating_mul(a.into())) - // Standard Error: 1_833 - .saturating_add(Weight::from_parts(7_212, 0).saturating_mul(p.into())) + // Standard Error: 1_978 + .saturating_add(Weight::from_parts(151_891, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -133,13 +136,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `486 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 33_769_000 picoseconds. - Weight::from_parts(36_507_913, 0) + // Minimum execution time: 34_245_000 picoseconds. + Weight::from_parts(37_454_762, 0) .saturating_add(Weight::from_parts(0, 5698)) - // Standard Error: 4_055 - .saturating_add(Weight::from_parts(118_599, 0).saturating_mul(a.into())) - // Standard Error: 4_190 - .saturating_add(Weight::from_parts(23_480, 0).saturating_mul(p.into())) + // Standard Error: 4_843 + .saturating_add(Weight::from_parts(143_291, 0).saturating_mul(a.into())) + // Standard Error: 5_003 + .saturating_add(Weight::from_parts(24_694, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -150,11 +153,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_939_000 picoseconds. - Weight::from_parts(25_596_801, 0) + // Minimum execution time: 25_126_000 picoseconds. + Weight::from_parts(26_203_164, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_139 - .saturating_add(Weight::from_parts(48_313, 0).saturating_mul(p.into())) + // Standard Error: 3_603 + .saturating_add(Weight::from_parts(71_361, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -165,11 +168,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 24_793_000 picoseconds. - Weight::from_parts(25_636_291, 0) + // Minimum execution time: 25_250_000 picoseconds. + Weight::from_parts(26_297_960, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 1_444 - .saturating_add(Weight::from_parts(56_267, 0).saturating_mul(p.into())) + // Standard Error: 2_721 + .saturating_add(Weight::from_parts(75_139, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -180,11 +183,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `227 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 21_951_000 picoseconds. - Weight::from_parts(22_457_177, 0) + // Minimum execution time: 22_452_000 picoseconds. + Weight::from_parts(23_229_684, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 890 - .saturating_add(Weight::from_parts(29_712, 0).saturating_mul(p.into())) + // Standard Error: 12_315 + .saturating_add(Weight::from_parts(52_592, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -195,11 +198,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `4706` - // Minimum execution time: 26_647_000 picoseconds. - Weight::from_parts(27_172_672, 0) + // Minimum execution time: 26_951_000 picoseconds. + Weight::from_parts(27_827_133, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 783 - .saturating_add(Weight::from_parts(12_707, 0).saturating_mul(p.into())) + // Standard Error: 4_052 + .saturating_add(Weight::from_parts(23_418, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -210,11 +213,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `264 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 23_021_000 picoseconds. - Weight::from_parts(23_593_996, 0) + // Minimum execution time: 23_068_000 picoseconds. + Weight::from_parts(23_856_231, 0) .saturating_add(Weight::from_parts(0, 4706)) - // Standard Error: 730 - .saturating_add(Weight::from_parts(29_060, 0).saturating_mul(p.into())) + // Standard Error: 2_855 + .saturating_add(Weight::from_parts(49_524, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/pallet_recovery.rs b/runtime/westend/src/weights/pallet_recovery.rs new file mode 100644 index 000000000000..54c5d2dd3833 --- /dev/null +++ b/runtime/westend/src/weights/pallet_recovery.rs @@ -0,0 +1,186 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_recovery` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=westend-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=pallet_recovery +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/westend/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_recovery`. +pub struct WeightInfo(PhantomData); +impl pallet_recovery::WeightInfo for WeightInfo { + /// Storage: Recovery Proxy (r:1 w:0) + /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + fn as_recovered() -> Weight { + // Proof Size summary in bytes: + // Measured: `111` + // Estimated: `3545` + // Minimum execution time: 8_588_000 picoseconds. + Weight::from_parts(8_886_000, 0) + .saturating_add(Weight::from_parts(0, 3545)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: Recovery Proxy (r:0 w:1) + /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + fn set_recovered() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_893_000 picoseconds. + Weight::from_parts(9_158_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery Recoverable (r:1 w:1) + /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 9]`. + fn create_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3816` + // Minimum execution time: 24_859_000 picoseconds. + Weight::from_parts(25_746_629, 0) + .saturating_add(Weight::from_parts(0, 3816)) + // Standard Error: 4_934 + .saturating_add(Weight::from_parts(144_496, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery Recoverable (r:1 w:0) + /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// Storage: Recovery ActiveRecoveries (r:1 w:1) + /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + fn initiate_recovery() -> Weight { + // Proof Size summary in bytes: + // Measured: `102` + // Estimated: `3854` + // Minimum execution time: 28_280_000 picoseconds. + Weight::from_parts(29_100_000, 0) + .saturating_add(Weight::from_parts(0, 3854)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery Recoverable (r:1 w:0) + /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// Storage: Recovery ActiveRecoveries (r:1 w:1) + /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 9]`. + fn vouch_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `190 + n * (64 ±0)` + // Estimated: `3854` + // Minimum execution time: 18_189_000 picoseconds. + Weight::from_parts(18_864_727, 0) + .saturating_add(Weight::from_parts(0, 3854)) + // Standard Error: 4_843 + .saturating_add(Weight::from_parts(192_783, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery Recoverable (r:1 w:0) + /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// Storage: Recovery ActiveRecoveries (r:1 w:0) + /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// Storage: Recovery Proxy (r:1 w:1) + /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 9]`. + fn claim_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `222 + n * (64 ±0)` + // Estimated: `3854` + // Minimum execution time: 22_925_000 picoseconds. + Weight::from_parts(23_927_125, 0) + .saturating_add(Weight::from_parts(0, 3854)) + // Standard Error: 7_089 + .saturating_add(Weight::from_parts(95_688, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery ActiveRecoveries (r:1 w:1) + /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 9]`. + fn close_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `341 + n * (32 ±0)` + // Estimated: `3854` + // Minimum execution time: 33_473_000 picoseconds. + Weight::from_parts(34_619_626, 0) + .saturating_add(Weight::from_parts(0, 3854)) + // Standard Error: 5_883 + .saturating_add(Weight::from_parts(109_238, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Recovery ActiveRecoveries (r:1 w:0) + /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// Storage: Recovery Recoverable (r:1 w:1) + /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 9]`. + fn remove_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `223 + n * (32 ±0)` + // Estimated: `3854` + // Minimum execution time: 30_514_000 picoseconds. + Weight::from_parts(31_743_967, 0) + .saturating_add(Weight::from_parts(0, 3854)) + // Standard Error: 8_762 + .saturating_add(Weight::from_parts(113_056, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Recovery Proxy (r:1 w:1) + /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + fn cancel_recovered() -> Weight { + // Proof Size summary in bytes: + // Measured: `111` + // Estimated: `3545` + // Minimum execution time: 10_398_000 picoseconds. + Weight::from_parts(10_764_000, 0) + .saturating_add(Weight::from_parts(0, 3545)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/runtime/westend/src/weights/pallet_scheduler.rs b/runtime/westend/src/weights/pallet_scheduler.rs index 2261233f19f4..7291b9809330 100644 --- a/runtime/westend/src/weights/pallet_scheduler.rs +++ b/runtime/westend/src/weights/pallet_scheduler.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_scheduler // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69` // Estimated: `1489` - // Minimum execution time: 3_924_000 picoseconds. - Weight::from_parts(4_104_000, 0) + // Minimum execution time: 3_991_000 picoseconds. + Weight::from_parts(4_160_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -66,11 +69,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 3_471_000 picoseconds. - Weight::from_parts(6_368_084, 0) + // Minimum execution time: 3_647_000 picoseconds. + Weight::from_parts(6_608_270, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_835 - .saturating_add(Weight::from_parts(735_699, 0).saturating_mul(s.into())) + // Standard Error: 2_516 + .saturating_add(Weight::from_parts(892_866, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -78,8 +81,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_602_000 picoseconds. - Weight::from_parts(5_776_000, 0) + // Minimum execution time: 5_552_000 picoseconds. + Weight::from_parts(5_836_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Preimage PreimageFor (r:1 w:1) @@ -91,11 +94,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `217 + s * (1 ±0)` // Estimated: `3682 + s * (1 ±0)` - // Minimum execution time: 19_623_000 picoseconds. - Weight::from_parts(19_798_000, 0) + // Minimum execution time: 20_583_000 picoseconds. + Weight::from_parts(20_771_000, 0) .saturating_add(Weight::from_parts(0, 3682)) - // Standard Error: 5 - .saturating_add(Weight::from_parts(1_276, 0).saturating_mul(s.into())) + // Standard Error: 11 + .saturating_add(Weight::from_parts(2_250, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -106,8 +109,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_056_000 picoseconds. - Weight::from_parts(7_292_000, 0) + // Minimum execution time: 7_271_000 picoseconds. + Weight::from_parts(7_447_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -115,24 +118,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_468_000 picoseconds. - Weight::from_parts(5_662_000, 0) + // Minimum execution time: 5_547_000 picoseconds. + Weight::from_parts(5_776_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_signed() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_587_000 picoseconds. - Weight::from_parts(2_672_000, 0) + // Minimum execution time: 2_480_000 picoseconds. + Weight::from_parts(2_628_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_512_000 picoseconds. - Weight::from_parts(2_605_000, 0) + // Minimum execution time: 2_479_000 picoseconds. + Weight::from_parts(2_626_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Scheduler Agenda (r:1 w:1) @@ -142,11 +145,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 12_826_000 picoseconds. - Weight::from_parts(15_663_356, 0) + // Minimum execution time: 13_350_000 picoseconds. + Weight::from_parts(15_289_847, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_717 - .saturating_add(Weight::from_parts(724_639, 0).saturating_mul(s.into())) + // Standard Error: 5_375 + .saturating_add(Weight::from_parts(974_567, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -159,11 +162,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `116 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 17_323_000 picoseconds. - Weight::from_parts(16_801_158, 0) + // Minimum execution time: 17_646_000 picoseconds. + Weight::from_parts(15_858_434, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 1_810 - .saturating_add(Weight::from_parts(1_270_818, 0).saturating_mul(s.into())) + // Standard Error: 5_354 + .saturating_add(Weight::from_parts(1_697_642, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -176,11 +179,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `293 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 15_970_000 picoseconds. - Weight::from_parts(19_764_119, 0) + // Minimum execution time: 16_419_000 picoseconds. + Weight::from_parts(19_868_760, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_598 - .saturating_add(Weight::from_parts(753_277, 0).saturating_mul(s.into())) + // Standard Error: 6_915 + .saturating_add(Weight::from_parts(1_010_225, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -193,11 +196,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `319 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 18_529_000 picoseconds. - Weight::from_parts(18_928_437, 0) + // Minimum execution time: 19_574_000 picoseconds. + Weight::from_parts(18_453_197, 0) .saturating_add(Weight::from_parts(0, 42428)) - // Standard Error: 2_090 - .saturating_add(Weight::from_parts(1_294_980, 0).saturating_mul(s.into())) + // Standard Error: 6_009 + .saturating_add(Weight::from_parts(1_707_130, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtime/westend/src/weights/pallet_session.rs b/runtime/westend/src/weights/pallet_session.rs index 8c66ee0c8c13..7e779039e669 100644 --- a/runtime/westend/src/weights/pallet_session.rs +++ b/runtime/westend/src/weights/pallet_session.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_session // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1954` // Estimated: `17794` - // Minimum execution time: 51_052_000 picoseconds. - Weight::from_parts(51_459_000, 0) + // Minimum execution time: 62_746_000 picoseconds. + Weight::from_parts(70_413_000, 0) .saturating_add(Weight::from_parts(0, 17794)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) @@ -73,8 +76,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1818` // Estimated: `5283` - // Minimum execution time: 36_840_000 picoseconds. - Weight::from_parts(37_294_000, 0) + // Minimum execution time: 42_715_000 picoseconds. + Weight::from_parts(49_740_000, 0) .saturating_add(Weight::from_parts(0, 5283)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(7)) diff --git a/runtime/westend/src/weights/pallet_staking.rs b/runtime/westend/src/weights/pallet_staking.rs index 530f95912ae9..099693d26b50 100644 --- a/runtime/westend/src/weights/pallet_staking.rs +++ b/runtime/westend/src/weights/pallet_staking.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_staking` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_staking // --extrinsic=* // --execution=wasm @@ -63,8 +66,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1014` // Estimated: `4764` - // Minimum execution time: 50_208_000 picoseconds. - Weight::from_parts(51_062_000, 0) + // Minimum execution time: 51_108_000 picoseconds. + Weight::from_parts(52_521_000, 0) .saturating_add(Weight::from_parts(0, 4764)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -85,8 +88,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1959` // Estimated: `8877` - // Minimum execution time: 90_359_000 picoseconds. - Weight::from_parts(91_296_000, 0) + // Minimum execution time: 96_564_000 picoseconds. + Weight::from_parts(100_133_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) @@ -113,8 +116,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2166` // Estimated: `8877` - // Minimum execution time: 93_852_000 picoseconds. - Weight::from_parts(95_397_000, 0) + // Minimum execution time: 97_705_000 picoseconds. + Weight::from_parts(102_055_000, 0) .saturating_add(Weight::from_parts(0, 8877)) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(7)) @@ -132,11 +135,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `981` // Estimated: `4764` - // Minimum execution time: 44_154_000 picoseconds. - Weight::from_parts(45_462_410, 0) + // Minimum execution time: 45_257_000 picoseconds. + Weight::from_parts(47_309_508, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 486 - .saturating_add(Weight::from_parts(13_977, 0).saturating_mul(s.into())) + // Standard Error: 2_343 + .saturating_add(Weight::from_parts(61_484, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -173,11 +176,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2221 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 88_758_000 picoseconds. - Weight::from_parts(93_134_139, 0) + // Minimum execution time: 94_800_000 picoseconds. + Weight::from_parts(101_763_223, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_973 - .saturating_add(Weight::from_parts(1_171_880, 0).saturating_mul(s.into())) + // Standard Error: 6_481 + .saturating_add(Weight::from_parts(1_450_372, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -209,8 +212,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1343` // Estimated: `4556` - // Minimum execution time: 56_114_000 picoseconds. - Weight::from_parts(56_779_000, 0) + // Minimum execution time: 57_763_000 picoseconds. + Weight::from_parts(59_394_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(5)) @@ -224,11 +227,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1248 + k * (569 ±0)` // Estimated: `4556 + k * (3033 ±0)` - // Minimum execution time: 29_078_000 picoseconds. - Weight::from_parts(28_432_243, 0) + // Minimum execution time: 35_501_000 picoseconds. + Weight::from_parts(32_260_525, 0) .saturating_add(Weight::from_parts(0, 4556)) - // Standard Error: 9_401 - .saturating_add(Weight::from_parts(7_712_654, 0).saturating_mul(k.into())) + // Standard Error: 34_554 + .saturating_add(Weight::from_parts(10_625_386, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -261,11 +264,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1839 + n * (102 ±0)` // Estimated: `6248 + n * (2520 ±0)` - // Minimum execution time: 63_885_000 picoseconds. - Weight::from_parts(61_605_779, 0) + // Minimum execution time: 67_970_000 picoseconds. + Weight::from_parts(65_110_939, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 13_217 - .saturating_add(Weight::from_parts(3_261_718, 0).saturating_mul(n.into())) + // Standard Error: 32_193 + .saturating_add(Weight::from_parts(4_688_614, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(6)) @@ -289,8 +292,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1675` // Estimated: `6248` - // Minimum execution time: 57_198_000 picoseconds. - Weight::from_parts(57_774_000, 0) + // Minimum execution time: 59_515_000 picoseconds. + Weight::from_parts(62_462_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(6)) @@ -303,8 +306,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `771` // Estimated: `4556` - // Minimum execution time: 14_245_000 picoseconds. - Weight::from_parts(14_461_000, 0) + // Minimum execution time: 13_943_000 picoseconds. + Weight::from_parts(14_384_000, 0) .saturating_add(Weight::from_parts(0, 4556)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -317,8 +320,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `870` // Estimated: `8122` - // Minimum execution time: 21_706_000 picoseconds. - Weight::from_parts(21_900_000, 0) + // Minimum execution time: 21_212_000 picoseconds. + Weight::from_parts(22_061_000, 0) .saturating_add(Weight::from_parts(0, 8122)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -329,8 +332,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_067_000 picoseconds. - Weight::from_parts(3_213_000, 0) + // Minimum execution time: 2_977_000 picoseconds. + Weight::from_parts(3_217_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -340,8 +343,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_144_000 picoseconds. - Weight::from_parts(11_567_000, 0) + // Minimum execution time: 9_152_000 picoseconds. + Weight::from_parts(9_949_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -351,8 +354,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_269_000 picoseconds. - Weight::from_parts(11_583_000, 0) + // Minimum execution time: 9_509_000 picoseconds. + Weight::from_parts(9_838_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -362,8 +365,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_293_000 picoseconds. - Weight::from_parts(11_518_000, 0) + // Minimum execution time: 9_480_000 picoseconds. + Weight::from_parts(9_755_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -374,11 +377,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_210_000 picoseconds. - Weight::from_parts(3_416_612, 0) + // Minimum execution time: 3_140_000 picoseconds. + Weight::from_parts(3_438_665, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 29 - .saturating_add(Weight::from_parts(12_029, 0).saturating_mul(v.into())) + // Standard Error: 93 + .saturating_add(Weight::from_parts(15_688, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Staking Bonded (r:1 w:1) @@ -414,11 +417,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1947 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 81_225_000 picoseconds. - Weight::from_parts(86_201_315, 0) + // Minimum execution time: 86_729_000 picoseconds. + Weight::from_parts(93_633_668, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 3_083 - .saturating_add(Weight::from_parts(1_166_689, 0).saturating_mul(s.into())) + // Standard Error: 6_522 + .saturating_add(Weight::from_parts(1_421_038, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(12)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -431,11 +434,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `66606` // Estimated: `70071` - // Minimum execution time: 114_076_000 picoseconds. - Weight::from_parts(905_992_993, 0) + // Minimum execution time: 135_155_000 picoseconds. + Weight::from_parts(960_317_735, 0) .saturating_add(Weight::from_parts(0, 70071)) - // Standard Error: 57_451 - .saturating_add(Weight::from_parts(4_985_392, 0).saturating_mul(s.into())) + // Standard Error: 59_264 + .saturating_add(Weight::from_parts(4_884_888, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -461,12 +464,12 @@ impl pallet_staking::WeightInfo for WeightInfo { fn payout_stakers_dead_controller(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `5773 + n * (151 ±0)` - // Estimated: `8579 + n * (2603 ±1)` - // Minimum execution time: 73_081_000 picoseconds. - Weight::from_parts(89_156_001, 0) + // Estimated: `8579 + n * (2603 ±0)` + // Minimum execution time: 92_788_000 picoseconds. + Weight::from_parts(129_527_249, 0) .saturating_add(Weight::from_parts(0, 8579)) - // Standard Error: 29_127 - .saturating_add(Weight::from_parts(26_968_804, 0).saturating_mul(n.into())) + // Standard Error: 73_346 + .saturating_add(Weight::from_parts(33_413_624, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -500,11 +503,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `8056 + n * (396 ±0)` // Estimated: `10634 + n * (3774 ±0)` - // Minimum execution time: 95_567_000 picoseconds. - Weight::from_parts(121_942_593, 0) + // Minimum execution time: 118_795_000 picoseconds. + Weight::from_parts(181_663_036, 0) .saturating_add(Weight::from_parts(0, 10634)) - // Standard Error: 43_896 - .saturating_add(Weight::from_parts(41_757_697, 0).saturating_mul(n.into())) + // Standard Error: 132_894 + .saturating_add(Weight::from_parts(51_369_596, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -528,11 +531,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1960 + l * (5 ±0)` // Estimated: `8877` - // Minimum execution time: 85_323_000 picoseconds. - Weight::from_parts(86_589_796, 0) + // Minimum execution time: 88_870_000 picoseconds. + Weight::from_parts(92_783_195, 0) .saturating_add(Weight::from_parts(0, 8877)) - // Standard Error: 2_070 - .saturating_add(Weight::from_parts(26_241, 0).saturating_mul(l.into())) + // Standard Error: 7_412 + .saturating_add(Weight::from_parts(49_785, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -567,11 +570,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2221 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 94_711_000 picoseconds. - Weight::from_parts(94_645_957, 0) + // Minimum execution time: 102_112_000 picoseconds. + Weight::from_parts(103_755_459, 0) .saturating_add(Weight::from_parts(0, 6248)) - // Standard Error: 1_752 - .saturating_add(Weight::from_parts(1_165_944, 0).saturating_mul(s.into())) + // Standard Error: 6_107 + .saturating_add(Weight::from_parts(1_436_139, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(11)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -619,13 +622,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + n * (716 ±0) + v * (3594 ±0)` // Estimated: `456136 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 489_185_000 picoseconds. - Weight::from_parts(491_633_000, 0) + // Minimum execution time: 547_465_000 picoseconds. + Weight::from_parts(557_541_000, 0) .saturating_add(Weight::from_parts(0, 456136)) - // Standard Error: 1_870_549 - .saturating_add(Weight::from_parts(60_011_887, 0).saturating_mul(v.into())) - // Standard Error: 186_390 - .saturating_add(Weight::from_parts(16_514_440, 0).saturating_mul(n.into())) + // Standard Error: 2_380_806 + .saturating_add(Weight::from_parts(78_379_807, 0).saturating_mul(v.into())) + // Standard Error: 237_234 + .saturating_add(Weight::from_parts(22_772_283, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(185)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -658,13 +661,13 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3151 + n * (907 ±0) + v * (391 ±0)` // Estimated: `456136 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 31_071_557_000 picoseconds. - Weight::from_parts(31_184_775_000, 0) + // Minimum execution time: 39_710_080_000 picoseconds. + Weight::from_parts(42_191_823_000, 0) .saturating_add(Weight::from_parts(0, 456136)) - // Standard Error: 341_011 - .saturating_add(Weight::from_parts(4_822_874, 0).saturating_mul(v.into())) - // Standard Error: 341_011 - .saturating_add(Weight::from_parts(3_235_650, 0).saturating_mul(n.into())) + // Standard Error: 506_609 + .saturating_add(Weight::from_parts(7_688_462, 0).saturating_mul(v.into())) + // Standard Error: 506_609 + .saturating_add(Weight::from_parts(6_303_908, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(180)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -683,11 +686,11 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `951 + v * (50 ±0)` // Estimated: `3510 + v * (2520 ±0)` - // Minimum execution time: 2_148_728_000 picoseconds. - Weight::from_parts(28_438_783, 0) + // Minimum execution time: 2_603_304_000 picoseconds. + Weight::from_parts(481_860_383, 0) .saturating_add(Weight::from_parts(0, 3510)) - // Standard Error: 9_947 - .saturating_add(Weight::from_parts(4_338_592, 0).saturating_mul(v.into())) + // Standard Error: 55_189 + .saturating_add(Weight::from_parts(4_786_173, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -709,8 +712,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_775_000 picoseconds. - Weight::from_parts(7_053_000, 0) + // Minimum execution time: 6_453_000 picoseconds. + Weight::from_parts(6_857_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -730,8 +733,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_078_000 picoseconds. - Weight::from_parts(6_266_000, 0) + // Minimum execution time: 6_037_000 picoseconds. + Weight::from_parts(6_303_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -759,8 +762,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1798` // Estimated: `6248` - // Minimum execution time: 68_284_000 picoseconds. - Weight::from_parts(69_428_000, 0) + // Minimum execution time: 72_578_000 picoseconds. + Weight::from_parts(74_232_000, 0) .saturating_add(Weight::from_parts(0, 6248)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(6)) @@ -773,8 +776,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `661` // Estimated: `3510` - // Minimum execution time: 13_104_000 picoseconds. - Weight::from_parts(13_447_000, 0) + // Minimum execution time: 13_066_000 picoseconds. + Weight::from_parts(13_421_000, 0) .saturating_add(Weight::from_parts(0, 3510)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -785,8 +788,8 @@ impl pallet_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_074_000 picoseconds. - Weight::from_parts(3_227_000, 0) + // Minimum execution time: 3_057_000 picoseconds. + Weight::from_parts(3_488_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/pallet_sudo.rs b/runtime/westend/src/weights/pallet_sudo.rs index 8276aac2813a..8a220173ee57 100644 --- a/runtime/westend/src/weights/pallet_sudo.rs +++ b/runtime/westend/src/weights/pallet_sudo.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_sudo` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_sudo // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl pallet_sudo::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `132` // Estimated: `1517` - // Minimum execution time: 12_332_000 picoseconds. - Weight::from_parts(12_554_000, 0) + // Minimum execution time: 12_360_000 picoseconds. + Weight::from_parts(12_803_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +68,8 @@ impl pallet_sudo::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `132` // Estimated: `1517` - // Minimum execution time: 12_031_000 picoseconds. - Weight::from_parts(12_395_000, 0) + // Minimum execution time: 12_158_000 picoseconds. + Weight::from_parts(12_506_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -76,8 +79,8 @@ impl pallet_sudo::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `132` // Estimated: `1517` - // Minimum execution time: 12_036_000 picoseconds. - Weight::from_parts(12_433_000, 0) + // Minimum execution time: 12_286_000 picoseconds. + Weight::from_parts(12_664_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) } diff --git a/runtime/westend/src/weights/pallet_timestamp.rs b/runtime/westend/src/weights/pallet_timestamp.rs index 0d15b4296ae6..d8fb8c1ed76f 100644 --- a/runtime/westend/src/weights/pallet_timestamp.rs +++ b/runtime/westend/src/weights/pallet_timestamp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_timestamp // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `311` // Estimated: `1493` - // Minimum execution time: 9_221_000 picoseconds. - Weight::from_parts(9_650_000, 0) + // Minimum execution time: 9_722_000 picoseconds. + Weight::from_parts(10_041_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +68,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `94` // Estimated: `0` - // Minimum execution time: 3_739_000 picoseconds. - Weight::from_parts(3_851_000, 0) + // Minimum execution time: 3_834_000 picoseconds. + Weight::from_parts(3_960_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtime/westend/src/weights/pallet_utility.rs b/runtime/westend/src/weights/pallet_utility.rs index 684c479cf8f4..f8238e9351dc 100644 --- a/runtime/westend/src/weights/pallet_utility.rs +++ b/runtime/westend/src/weights/pallet_utility.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_utility // --extrinsic=* // --execution=wasm @@ -52,18 +55,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_923_000 picoseconds. - Weight::from_parts(2_769_254, 0) + // Minimum execution time: 6_791_000 picoseconds. + Weight::from_parts(7_720_310, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_300 - .saturating_add(Weight::from_parts(4_339_482, 0).saturating_mul(c.into())) + // Standard Error: 2_420 + .saturating_add(Weight::from_parts(5_114_338, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_857_000 picoseconds. - Weight::from_parts(4_983_000, 0) + // Minimum execution time: 4_892_000 picoseconds. + Weight::from_parts(5_122_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -71,18 +74,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_727_000 picoseconds. - Weight::from_parts(5_695_288, 0) + // Minimum execution time: 6_816_000 picoseconds. + Weight::from_parts(12_736_198, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_266 - .saturating_add(Weight::from_parts(4_596_881, 0).saturating_mul(c.into())) + // Standard Error: 2_696 + .saturating_add(Weight::from_parts(5_378_828, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_831_000 picoseconds. - Weight::from_parts(8_991_000, 0) + // Minimum execution time: 8_890_000 picoseconds. + Weight::from_parts(9_286_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -90,10 +93,10 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_815_000 picoseconds. - Weight::from_parts(2_341_206, 0) + // Minimum execution time: 6_823_000 picoseconds. + Weight::from_parts(7_235_613, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 3_365 - .saturating_add(Weight::from_parts(4_334_955, 0).saturating_mul(c.into())) + // Standard Error: 2_817 + .saturating_add(Weight::from_parts(5_113_539, 0).saturating_mul(c.into())) } } diff --git a/runtime/westend/src/weights/pallet_vesting.rs b/runtime/westend/src/weights/pallet_vesting.rs index c66647d09696..4ccd524ffc28 100644 --- a/runtime/westend/src/weights/pallet_vesting.rs +++ b/runtime/westend/src/weights/pallet_vesting.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_vesting // --extrinsic=* // --execution=wasm @@ -59,13 +62,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `348 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 33_671_000 picoseconds. - Weight::from_parts(32_915_333, 0) + // Minimum execution time: 35_225_000 picoseconds. + Weight::from_parts(34_420_748, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 530 - .saturating_add(Weight::from_parts(37_992, 0).saturating_mul(l.into())) - // Standard Error: 944 - .saturating_add(Weight::from_parts(67_556, 0).saturating_mul(s.into())) + // Standard Error: 2_341 + .saturating_add(Weight::from_parts(41_794, 0).saturating_mul(l.into())) + // Standard Error: 4_166 + .saturating_add(Weight::from_parts(114_507, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -81,13 +84,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `348 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_857_000 picoseconds. - Weight::from_parts(36_738_722, 0) + // Minimum execution time: 38_507_000 picoseconds. + Weight::from_parts(38_552_717, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 901 - .saturating_add(Weight::from_parts(31_646, 0).saturating_mul(l.into())) - // Standard Error: 1_603 - .saturating_add(Weight::from_parts(35_256, 0).saturating_mul(s.into())) + // Standard Error: 2_406 + .saturating_add(Weight::from_parts(42_332, 0).saturating_mul(l.into())) + // Standard Error: 4_282 + .saturating_add(Weight::from_parts(67_638, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -105,13 +108,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `451 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 35_469_000 picoseconds. - Weight::from_parts(34_632_479, 0) + // Minimum execution time: 36_919_000 picoseconds. + Weight::from_parts(35_087_984, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 544 - .saturating_add(Weight::from_parts(41_184, 0).saturating_mul(l.into())) - // Standard Error: 968 - .saturating_add(Weight::from_parts(67_376, 0).saturating_mul(s.into())) + // Standard Error: 2_435 + .saturating_add(Weight::from_parts(66_131, 0).saturating_mul(l.into())) + // Standard Error: 4_333 + .saturating_add(Weight::from_parts(125_178, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -129,13 +132,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `451 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 38_561_000 picoseconds. - Weight::from_parts(38_157_517, 0) + // Minimum execution time: 40_393_000 picoseconds. + Weight::from_parts(39_522_987, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 779 - .saturating_add(Weight::from_parts(34_492, 0).saturating_mul(l.into())) - // Standard Error: 1_386 - .saturating_add(Weight::from_parts(48_413, 0).saturating_mul(s.into())) + // Standard Error: 1_958 + .saturating_add(Weight::from_parts(46_626, 0).saturating_mul(l.into())) + // Standard Error: 3_484 + .saturating_add(Weight::from_parts(94_547, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -153,13 +156,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `522 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 67_911_000 picoseconds. - Weight::from_parts(70_826_756, 0) + // Minimum execution time: 72_925_000 picoseconds. + Weight::from_parts(75_858_529, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_765 - .saturating_add(Weight::from_parts(44_260, 0).saturating_mul(l.into())) - // Standard Error: 3_140 - .saturating_add(Weight::from_parts(95_731, 0).saturating_mul(s.into())) + // Standard Error: 3_995 + .saturating_add(Weight::from_parts(70_032, 0).saturating_mul(l.into())) + // Standard Error: 7_108 + .saturating_add(Weight::from_parts(160_507, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -177,13 +180,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `625 + l * (25 ±0) + s * (36 ±0)` // Estimated: `6196` - // Minimum execution time: 69_355_000 picoseconds. - Weight::from_parts(72_167_687, 0) + // Minimum execution time: 74_405_000 picoseconds. + Weight::from_parts(78_253_087, 0) .saturating_add(Weight::from_parts(0, 6196)) - // Standard Error: 1_867 - .saturating_add(Weight::from_parts(48_779, 0).saturating_mul(l.into())) - // Standard Error: 3_323 - .saturating_add(Weight::from_parts(99_812, 0).saturating_mul(s.into())) + // Standard Error: 3_708 + .saturating_add(Weight::from_parts(56_748, 0).saturating_mul(l.into())) + // Standard Error: 6_598 + .saturating_add(Weight::from_parts(146_713, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -201,13 +204,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `449 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_399_000 picoseconds. - Weight::from_parts(35_671_775, 0) + // Minimum execution time: 37_715_000 picoseconds. + Weight::from_parts(36_483_330, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 901 - .saturating_add(Weight::from_parts(33_402, 0).saturating_mul(l.into())) - // Standard Error: 1_664 - .saturating_add(Weight::from_parts(68_455, 0).saturating_mul(s.into())) + // Standard Error: 2_146 + .saturating_add(Weight::from_parts(55_976, 0).saturating_mul(l.into())) + // Standard Error: 3_964 + .saturating_add(Weight::from_parts(116_455, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -225,13 +228,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `449 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 40_276_000 picoseconds. - Weight::from_parts(39_154_175, 0) + // Minimum execution time: 42_102_000 picoseconds. + Weight::from_parts(41_671_515, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 585 - .saturating_add(Weight::from_parts(44_983, 0).saturating_mul(l.into())) - // Standard Error: 1_080 - .saturating_add(Weight::from_parts(70_537, 0).saturating_mul(s.into())) + // Standard Error: 2_743 + .saturating_add(Weight::from_parts(47_496, 0).saturating_mul(l.into())) + // Standard Error: 5_065 + .saturating_add(Weight::from_parts(95_785, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtime/westend/src/weights/pallet_xcm.rs b/runtime/westend/src/weights/pallet_xcm.rs index b37c920822b0..6505276655e2 100644 --- a/runtime/westend/src/weights/pallet_xcm.rs +++ b/runtime/westend/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=pallet_xcm // --extrinsic=* // --execution=wasm @@ -47,6 +50,8 @@ use core::marker::PhantomData; /// Weight functions for `pallet_xcm`. pub struct WeightInfo(PhantomData); impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet SupportedVersion (r:1 w:0) @@ -63,26 +68,26 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 31_193_000 picoseconds. - Weight::from_parts(31_731_000, 0) + // Minimum execution time: 33_628_000 picoseconds. + Weight::from_parts(34_633_000, 0) .saturating_add(Weight::from_parts(0, 3634)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) } fn teleport_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 21_370_000 picoseconds. - Weight::from_parts(21_920_000, 0) + // Minimum execution time: 21_535_000 picoseconds. + Weight::from_parts(21_936_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 21_564_000 picoseconds. - Weight::from_parts(21_967_000, 0) + // Minimum execution time: 21_576_000 picoseconds. + Weight::from_parts(21_942_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: Benchmark Override (r:0 w:0) @@ -101,8 +106,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_816_000 picoseconds. - Weight::from_parts(10_111_000, 0) + // Minimum execution time: 9_764_000 picoseconds. + Weight::from_parts(9_927_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -112,8 +117,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_032_000 picoseconds. - Weight::from_parts(3_153_000, 0) + // Minimum execution time: 2_824_000 picoseconds. + Weight::from_parts(2_935_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -121,6 +126,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: XcmPallet VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet QueryCounter (r:1 w:1) /// Proof Skipped: XcmPallet QueryCounter (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet SupportedVersion (r:1 w:0) @@ -139,14 +146,16 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `169` // Estimated: `3634` - // Minimum execution time: 35_683_000 picoseconds. - Weight::from_parts(36_240_000, 0) + // Minimum execution time: 38_436_000 picoseconds. + Weight::from_parts(39_300_000, 0) .saturating_add(Weight::from_parts(0, 3634)) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(6)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(7)) } /// Storage: XcmPallet VersionNotifiers (r:1 w:1) /// Proof Skipped: XcmPallet VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet SupportedVersion (r:1 w:0) @@ -163,13 +172,13 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `326` - // Estimated: `3791` - // Minimum execution time: 37_222_000 picoseconds. - Weight::from_parts(37_477_000, 0) - .saturating_add(Weight::from_parts(0, 3791)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(5)) + // Measured: `361` + // Estimated: `3826` + // Minimum execution time: 41_600_000 picoseconds. + Weight::from_parts(42_703_000, 0) + .saturating_add(Weight::from_parts(0, 3826)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(6)) } /// Storage: XcmPallet XcmExecutionSuspended (r:0 w:1) /// Proof Skipped: XcmPallet XcmExecutionSuspended (max_values: Some(1), max_size: None, mode: Measured) @@ -177,8 +186,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_927_000 picoseconds. - Weight::from_parts(3_111_000, 0) + // Minimum execution time: 2_792_000 picoseconds. + Weight::from_parts(2_958_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -188,8 +197,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `229` // Estimated: `11119` - // Minimum execution time: 16_205_000 picoseconds. - Weight::from_parts(16_464_000, 0) + // Minimum execution time: 17_640_000 picoseconds. + Weight::from_parts(18_011_000, 0) .saturating_add(Weight::from_parts(0, 11119)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -200,8 +209,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `233` // Estimated: `11123` - // Minimum execution time: 15_931_000 picoseconds. - Weight::from_parts(16_267_000, 0) + // Minimum execution time: 17_325_000 picoseconds. + Weight::from_parts(17_896_000, 0) .saturating_add(Weight::from_parts(0, 11123)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -212,13 +221,15 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `243` // Estimated: `13608` - // Minimum execution time: 17_139_000 picoseconds. - Weight::from_parts(17_572_000, 0) + // Minimum execution time: 19_295_000 picoseconds. + Weight::from_parts(19_840_000, 0) .saturating_add(Weight::from_parts(0, 13608)) .saturating_add(T::DbWeight::get().reads(5)) } /// Storage: XcmPallet VersionNotifyTargets (r:2 w:1) /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet SupportedVersion (r:1 w:0) @@ -235,11 +246,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `6179` - // Minimum execution time: 32_900_000 picoseconds. - Weight::from_parts(33_510_000, 0) + // Minimum execution time: 35_819_000 picoseconds. + Weight::from_parts(36_708_000, 0) .saturating_add(Weight::from_parts(0, 6179)) - .saturating_add(T::DbWeight::get().reads(8)) - .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(5)) } /// Storage: XcmPallet VersionNotifyTargets (r:3 w:0) /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) @@ -247,8 +258,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `272` // Estimated: `8687` - // Minimum execution time: 8_874_000 picoseconds. - Weight::from_parts(9_173_000, 0) + // Minimum execution time: 9_572_000 picoseconds. + Weight::from_parts(9_907_000, 0) .saturating_add(Weight::from_parts(0, 8687)) .saturating_add(T::DbWeight::get().reads(3)) } @@ -258,14 +269,16 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `240` // Estimated: `11130` - // Minimum execution time: 16_180_000 picoseconds. - Weight::from_parts(16_538_000, 0) + // Minimum execution time: 17_376_000 picoseconds. + Weight::from_parts(17_870_000, 0) .saturating_add(Weight::from_parts(0, 11130)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: XcmPallet VersionNotifyTargets (r:4 w:2) /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Storage: XcmPallet SupportedVersion (r:1 w:0) @@ -282,10 +295,10 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `243` // Estimated: `11133` - // Minimum execution time: 39_599_000 picoseconds. - Weight::from_parts(40_475_000, 0) + // Minimum execution time: 43_468_000 picoseconds. + Weight::from_parts(44_327_000, 0) .saturating_add(Weight::from_parts(0, 11133)) - .saturating_add(T::DbWeight::get().reads(10)) - .saturating_add(T::DbWeight::get().writes(5)) + .saturating_add(T::DbWeight::get().reads(11)) + .saturating_add(T::DbWeight::get().writes(6)) } } diff --git a/runtime/westend/src/weights/pallet_xcm_benchmarks_fungible.rs b/runtime/westend/src/weights/pallet_xcm_benchmarks_fungible.rs new file mode 100644 index 000000000000..f868793b59c4 --- /dev/null +++ b/runtime/westend/src/weights/pallet_xcm_benchmarks_fungible.rs @@ -0,0 +1,183 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_xcm_benchmarks::fungible` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=westend-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=pallet_xcm_benchmarks::fungible +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/westend/src/weights/pallet_xcm_benchmarks_fungible.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_xcm_benchmarks::fungible`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm_benchmarks::fungible::WeightInfo for WeightInfo { + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 24_885_000 picoseconds. + Weight::from_parts(25_316_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `6196` + // Minimum execution time: 51_715_000 picoseconds. + Weight::from_parts(53_006_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `270` + // Estimated: `6196` + // Minimum execution time: 76_546_000 picoseconds. + Weight::from_parts(78_742_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: Balances InactiveIssuance (r:1 w:1) + /// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 23_106_000 picoseconds. + Weight::from_parts(23_848_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 26_306_000 picoseconds. + Weight::from_parts(26_875_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `169` + // Estimated: `3634` + // Minimum execution time: 53_271_000 picoseconds. + Weight::from_parts(54_820_000, 0) + .saturating_add(Weight::from_parts(0, 3634)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: Balances InactiveIssuance (r:1 w:1) + /// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `169` + // Estimated: `3634` + // Minimum execution time: 55_312_000 picoseconds. + Weight::from_parts(56_390_000, 0) + .saturating_add(Weight::from_parts(0, 3634)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(6)) + } +} diff --git a/runtime/westend/src/weights/pallet_xcm_benchmarks_generic.rs b/runtime/westend/src/weights/pallet_xcm_benchmarks_generic.rs new file mode 100644 index 000000000000..dc9d0dc682fc --- /dev/null +++ b/runtime/westend/src/weights/pallet_xcm_benchmarks_generic.rs @@ -0,0 +1,393 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_xcm_benchmarks::generic` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=westend-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=pallet_xcm_benchmarks::generic +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/westend/src/weights/pallet_xcm_benchmarks_generic.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_xcm_benchmarks::generic`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm_benchmarks::generic::WeightInfo for WeightInfo { + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `169` + // Estimated: `3634` + // Minimum execution time: 32_591_000 picoseconds. + Weight::from_parts(33_164_000, 0) + .saturating_add(Weight::from_parts(0, 3634)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) + } + fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_080_000 picoseconds. + Weight::from_parts(3_205_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: XcmPallet Queries (r:1 w:0) + /// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured) + fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `169` + // Estimated: `3634` + // Minimum execution time: 11_799_000 picoseconds. + Weight::from_parts(12_129_000, 0) + .saturating_add(Weight::from_parts(0, 3634)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 12_576_000 picoseconds. + Weight::from_parts(12_996_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_113_000 picoseconds. + Weight::from_parts(3_197_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_872_000 picoseconds. + Weight::from_parts(2_992_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_946_000 picoseconds. + Weight::from_parts(3_044_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_818_000 picoseconds. + Weight::from_parts(2_988_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_819_000 picoseconds. + Weight::from_parts(3_944_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_880_000 picoseconds. + Weight::from_parts(2_990_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `169` + // Estimated: `3634` + // Minimum execution time: 27_570_000 picoseconds. + Weight::from_parts(28_178_000, 0) + .saturating_add(Weight::from_parts(0, 3634)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: XcmPallet AssetTraps (r:1 w:1) + /// Proof Skipped: XcmPallet AssetTraps (max_values: None, max_size: None, mode: Measured) + fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `226` + // Estimated: `3691` + // Minimum execution time: 16_109_000 picoseconds. + Weight::from_parts(16_476_000, 0) + .saturating_add(Weight::from_parts(0, 3691)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_871_000 picoseconds. + Weight::from_parts(2_965_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: XcmPallet VersionNotifyTargets (r:1 w:1) + /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `169` + // Estimated: `3634` + // Minimum execution time: 33_914_000 picoseconds. + Weight::from_parts(34_693_000, 0) + .saturating_add(Weight::from_parts(0, 3634)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: XcmPallet VersionNotifyTargets (r:0 w:1) + /// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_940_000 picoseconds. + Weight::from_parts(5_245_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `169` + // Estimated: `3634` + // Minimum execution time: 31_121_000 picoseconds. + Weight::from_parts(32_053_000, 0) + .saturating_add(Weight::from_parts(0, 3634)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) + } + fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_527_000 picoseconds. + Weight::from_parts(4_706_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_057_000 picoseconds. + Weight::from_parts(3_137_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_977_000 picoseconds. + Weight::from_parts(3_089_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_877_000 picoseconds. + Weight::from_parts(3_031_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_155_000 picoseconds. + Weight::from_parts(3_259_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `169` + // Estimated: `3634` + // Minimum execution time: 34_206_000 picoseconds. + Weight::from_parts(34_798_000, 0) + .saturating_add(Weight::from_parts(0, 3634)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) + } + fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_946_000 picoseconds. + Weight::from_parts(8_154_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) + /// Storage: Dmp DeliveryFeeFactor (r:1 w:0) + /// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet SupportedVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: XcmPallet SafeXcmVersion (r:1 w:0) + /// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueues (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) + /// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) + /// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) + fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `169` + // Estimated: `3634` + // Minimum execution time: 27_990_000 picoseconds. + Weight::from_parts(28_458_000, 0) + .saturating_add(Weight::from_parts(0, 3634)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(4)) + } + fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_068_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_828_000 picoseconds. + Weight::from_parts(2_900_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_879_000 picoseconds. + Weight::from_parts(2_998_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_849_000 picoseconds. + Weight::from_parts(2_945_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_975_000 picoseconds. + Weight::from_parts(3_104_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/runtime/westend/src/weights/runtime_common_auctions.rs b/runtime/westend/src/weights/runtime_common_auctions.rs index ebec0d992d65..a6f5bbe5a1da 100644 --- a/runtime/westend/src/weights/runtime_common_auctions.rs +++ b/runtime/westend/src/weights/runtime_common_auctions.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::auctions` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::auctions // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `4` // Estimated: `1493` - // Minimum execution time: 12_018_000 picoseconds. - Weight::from_parts(12_421_000, 0) + // Minimum execution time: 12_041_000 picoseconds. + Weight::from_parts(12_640_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -79,8 +82,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `571` // Estimated: `6060` - // Minimum execution time: 76_859_000 picoseconds. - Weight::from_parts(80_348_000, 0) + // Minimum execution time: 89_277_000 picoseconds. + Weight::from_parts(108_557_000, 0) .saturating_add(Weight::from_parts(0, 6060)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -113,8 +116,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `6947683` // Estimated: `15822990` - // Minimum execution time: 6_386_601_000 picoseconds. - Weight::from_parts(6_523_638_000, 0) + // Minimum execution time: 7_694_178_000 picoseconds. + Weight::from_parts(9_153_568_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3688)) .saturating_add(T::DbWeight::get().writes(3683)) @@ -131,8 +134,8 @@ impl runtime_common::auctions::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `177732` // Estimated: `15822990` - // Minimum execution time: 4_841_088_000 picoseconds. - Weight::from_parts(4_945_066_000, 0) + // Minimum execution time: 5_806_569_000 picoseconds. + Weight::from_parts(6_418_685_000, 0) .saturating_add(Weight::from_parts(0, 15822990)) .saturating_add(T::DbWeight::get().reads(3673)) .saturating_add(T::DbWeight::get().writes(3673)) diff --git a/runtime/westend/src/weights/runtime_common_crowdloan.rs b/runtime/westend/src/weights/runtime_common_crowdloan.rs index 580854742529..97b0279544c7 100644 --- a/runtime/westend/src/weights/runtime_common_crowdloan.rs +++ b/runtime/westend/src/weights/runtime_common_crowdloan.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::crowdloan` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::crowdloan // --extrinsic=* // --execution=wasm @@ -61,8 +64,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `438` // Estimated: `3903` - // Minimum execution time: 51_850_000 picoseconds. - Weight::from_parts(52_789_000, 0) + // Minimum execution time: 54_721_000 picoseconds. + Weight::from_parts(73_165_000, 0) .saturating_add(Weight::from_parts(0, 3903)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -87,8 +90,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `424` // Estimated: `3889` - // Minimum execution time: 131_427_000 picoseconds. - Weight::from_parts(132_567_000, 0) + // Minimum execution time: 150_157_000 picoseconds. + Weight::from_parts(188_213_000, 0) .saturating_add(Weight::from_parts(0, 3889)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -105,8 +108,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `690` // Estimated: `6196` - // Minimum execution time: 73_160_000 picoseconds. - Weight::from_parts(74_711_000, 0) + // Minimum execution time: 88_125_000 picoseconds. + Weight::from_parts(108_202_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -118,11 +121,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `176 + k * (188 ±0)` // Estimated: `201 + k * (189 ±0)` - // Minimum execution time: 61_026_000 picoseconds. - Weight::from_parts(62_440_000, 0) + // Minimum execution time: 51_261_000 picoseconds. + Weight::from_parts(69_033_000, 0) .saturating_add(Weight::from_parts(0, 201)) - // Standard Error: 11_265 - .saturating_add(Weight::from_parts(37_250_113, 0).saturating_mul(k.into())) + // Standard Error: 41_860 + .saturating_add(Weight::from_parts(42_987_746, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(3)) @@ -137,8 +140,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `515` // Estimated: `6196` - // Minimum execution time: 43_082_000 picoseconds. - Weight::from_parts(44_095_000, 0) + // Minimum execution time: 48_316_000 picoseconds. + Weight::from_parts(60_935_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -149,8 +152,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `235` // Estimated: `3700` - // Minimum execution time: 19_607_000 picoseconds. - Weight::from_parts(20_207_000, 0) + // Minimum execution time: 22_070_000 picoseconds. + Weight::from_parts(34_570_000, 0) .saturating_add(Weight::from_parts(0, 3700)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -163,8 +166,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `412` // Estimated: `3877` - // Minimum execution time: 26_361_000 picoseconds. - Weight::from_parts(27_079_000, 0) + // Minimum execution time: 35_055_000 picoseconds. + Weight::from_parts(55_008_000, 0) .saturating_add(Weight::from_parts(0, 3877)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -177,8 +180,8 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `239` // Estimated: `3704` - // Minimum execution time: 18_376_000 picoseconds. - Weight::from_parts(19_013_000, 0) + // Minimum execution time: 22_412_000 picoseconds. + Weight::from_parts(31_728_000, 0) .saturating_add(Weight::from_parts(0, 3704)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -208,11 +211,11 @@ impl runtime_common::crowdloan::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `91 + n * (356 ±0)` // Estimated: `5385 + n * (2832 ±0)` - // Minimum execution time: 125_636_000 picoseconds. - Weight::from_parts(127_130_000, 0) + // Minimum execution time: 151_113_000 picoseconds. + Weight::from_parts(1_510_902, 0) .saturating_add(Weight::from_parts(0, 5385)) - // Standard Error: 60_475 - .saturating_add(Weight::from_parts(58_880_803, 0).saturating_mul(n.into())) + // Standard Error: 159_249 + .saturating_add(Weight::from_parts(70_348_920, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtime/westend/src/weights/runtime_common_paras_registrar.rs b/runtime/westend/src/weights/runtime_common_paras_registrar.rs index e5cecd933b13..50290c0fe59f 100644 --- a/runtime/westend/src/weights/runtime_common_paras_registrar.rs +++ b/runtime/westend/src/weights/runtime_common_paras_registrar.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::paras_registrar` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::paras_registrar // --extrinsic=* // --execution=wasm @@ -57,8 +60,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `97` // Estimated: `3562` - // Minimum execution time: 30_288_000 picoseconds. - Weight::from_parts(30_838_000, 0) + // Minimum execution time: 31_208_000 picoseconds. + Weight::from_parts(31_867_000, 0) .saturating_add(Weight::from_parts(0, 3562)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -85,8 +88,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `329` // Estimated: `3794` - // Minimum execution time: 6_348_006_000 picoseconds. - Weight::from_parts(6_443_032_000, 0) + // Minimum execution time: 6_237_532_000 picoseconds. + Weight::from_parts(7_848_788_000, 0) .saturating_add(Weight::from_parts(0, 3794)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(8)) @@ -113,8 +116,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `246` // Estimated: `3711` - // Minimum execution time: 6_448_799_000 picoseconds. - Weight::from_parts(6_498_522_000, 0) + // Minimum execution time: 6_167_803_000 picoseconds. + Weight::from_parts(7_781_982_000, 0) .saturating_add(Weight::from_parts(0, 3711)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(8)) @@ -137,8 +140,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `476` // Estimated: `3941` - // Minimum execution time: 50_249_000 picoseconds. - Weight::from_parts(51_443_000, 0) + // Minimum execution time: 54_133_000 picoseconds. + Weight::from_parts(68_544_000, 0) .saturating_add(Weight::from_parts(0, 3941)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -161,8 +164,8 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `674` // Estimated: `6614` - // Minimum execution time: 54_314_000 picoseconds. - Weight::from_parts(57_565_000, 0) + // Minimum execution time: 62_690_000 picoseconds. + Weight::from_parts(73_010_000, 0) .saturating_add(Weight::from_parts(0, 6614)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(8)) @@ -190,11 +193,11 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `177` // Estimated: `3642` - // Minimum execution time: 39_123_000 picoseconds. - Weight::from_parts(39_606_000, 0) + // Minimum execution time: 39_804_000 picoseconds. + Weight::from_parts(40_135_000, 0) .saturating_add(Weight::from_parts(0, 3642)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_997, 0).saturating_mul(b.into())) + // Standard Error: 11 + .saturating_add(Weight::from_parts(2_744, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -205,11 +208,11 @@ impl runtime_common::paras_registrar::WeightInfo for We // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_541_000 picoseconds. - Weight::from_parts(8_632_000, 0) + // Minimum execution time: 8_804_000 picoseconds. + Weight::from_parts(8_956_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(896, 0).saturating_mul(b.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_029, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().writes(1)) } } diff --git a/runtime/westend/src/weights/runtime_common_slots.rs b/runtime/westend/src/weights/runtime_common_slots.rs index cd75f5a077e8..c95859221fa7 100644 --- a/runtime/westend/src/weights/runtime_common_slots.rs +++ b/runtime/westend/src/weights/runtime_common_slots.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_common::slots` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_common::slots // --extrinsic=* // --execution=wasm @@ -55,8 +58,8 @@ impl runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo runtime_common::slots::WeightInfo for WeightInfo runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 9_772_000 picoseconds. - Weight::from_parts(10_158_000, 0) + // Minimum execution time: 9_998_000 picoseconds. + Weight::from_parts(10_268_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -73,8 +76,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 9_803_000 picoseconds. - Weight::from_parts(10_025_000, 0) + // Minimum execution time: 9_851_000 picoseconds. + Weight::from_parts(10_102_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -87,15 +90,14 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_option_u32() -> Weight { // Proof Size summary in bytes: - // Measured: `90` - // Estimated: `1575` - // Minimum execution time: 10_055_000 picoseconds. - Weight::from_parts(10_298_000, 0) - .saturating_add(Weight::from_parts(0, 1575)) + // Measured: `127` + // Estimated: `1612` + // Minimum execution time: 9_932_000 picoseconds. + Weight::from_parts(10_248_000, 0) + .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: Benchmark Override (r:0 w:0) /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) fn set_hrmp_open_request_ttl() -> Weight { @@ -116,8 +118,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 9_920_000 picoseconds. - Weight::from_parts(10_199_000, 0) + // Minimum execution time: 9_804_000 picoseconds. + Weight::from_parts(10_173_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -132,8 +134,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 10_942_000 picoseconds. - Weight::from_parts(11_317_000, 0) + // Minimum execution time: 10_531_000 picoseconds. + Weight::from_parts(10_984_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/westend/src/weights/runtime_parachains_disputes.rs b/runtime/westend/src/weights/runtime_parachains_disputes.rs index 3bfc7679707e..4a6a6079cf13 100644 --- a/runtime/westend/src/weights/runtime_parachains_disputes.rs +++ b/runtime/westend/src/weights/runtime_parachains_disputes.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::disputes // --extrinsic=* // --execution=wasm @@ -53,8 +56,8 @@ impl runtime_parachains::disputes::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_814_000 picoseconds. - Weight::from_parts(2_977_000, 0) + // Minimum execution time: 2_782_000 picoseconds. + Weight::from_parts(2_926_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/westend/src/weights/runtime_parachains_disputes_slashing.rs b/runtime/westend/src/weights/runtime_parachains_disputes_slashing.rs index 69cb5b50c866..8600717fee1e 100644 --- a/runtime/westend/src/weights/runtime_parachains_disputes_slashing.rs +++ b/runtime/westend/src/weights/runtime_parachains_disputes_slashing.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::disputes::slashing` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::disputes::slashing // --extrinsic=* // --execution=wasm @@ -51,8 +54,6 @@ impl runtime_parachains::disputes::slashing::WeightInfo /// Proof Skipped: Session CurrentIndex (max_values: Some(1), max_size: None, mode: Measured) /// Storage: Historical HistoricalSessions (r:1 w:0) /// Proof: Historical HistoricalSessions (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParaSessionInfo Sessions (r:1 w:0) - /// Proof Skipped: ParaSessionInfo Sessions (max_values: None, max_size: None, mode: Measured) /// Storage: ParasSlashing UnappliedSlashes (r:1 w:1) /// Proof Skipped: ParasSlashing UnappliedSlashes (max_values: None, max_size: None, mode: Measured) /// Storage: Offences ConcurrentReportsIndex (r:1 w:1) @@ -86,15 +87,15 @@ impl runtime_parachains::disputes::slashing::WeightInfo /// The range of component `n` is `[4, 300]`. fn report_dispute_lost(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4816 + n * (289 ±0)` - // Estimated: `8127 + n * (292 ±0)` - // Minimum execution time: 80_684_000 picoseconds. - Weight::from_parts(122_798_665, 0) - .saturating_add(Weight::from_parts(0, 8127)) - // Standard Error: 3_919 - .saturating_add(Weight::from_parts(368_026, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(17)) + // Measured: `4531 + n * (189 ±0)` + // Estimated: `7843 + n * (192 ±0)` + // Minimum execution time: 88_189_000 picoseconds. + Weight::from_parts(165_880_925, 0) + .saturating_add(Weight::from_parts(0, 7843)) + // Standard Error: 11_760 + .saturating_add(Weight::from_parts(419_347, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(16)) .saturating_add(T::DbWeight::get().writes(9)) - .saturating_add(Weight::from_parts(0, 292).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 192).saturating_mul(n.into())) } } diff --git a/runtime/westend/src/weights/runtime_parachains_hrmp.rs b/runtime/westend/src/weights/runtime_parachains_hrmp.rs index 30d14664cf9f..9e10f35b6c1d 100644 --- a/runtime/westend/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/westend/src/weights/runtime_parachains_hrmp.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::hrmp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::hrmp // --extrinsic=* // --execution=wasm @@ -67,8 +70,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `307` // Estimated: `6247` - // Minimum execution time: 36_335_000 picoseconds. - Weight::from_parts(36_717_000, 0) + // Minimum execution time: 35_676_000 picoseconds. + Weight::from_parts(36_608_000, 0) .saturating_add(Weight::from_parts(0, 6247)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -89,8 +92,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `421` // Estimated: `3886` - // Minimum execution time: 32_597_000 picoseconds. - Weight::from_parts(33_024_000, 0) + // Minimum execution time: 32_773_000 picoseconds. + Weight::from_parts(33_563_000, 0) .saturating_add(Weight::from_parts(0, 3886)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -109,8 +112,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `238` // Estimated: `3703` - // Minimum execution time: 28_086_000 picoseconds. - Weight::from_parts(29_050_000, 0) + // Minimum execution time: 28_134_000 picoseconds. + Weight::from_parts(29_236_000, 0) .saturating_add(Weight::from_parts(0, 3703)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -133,13 +136,13 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `158 + e * (100 ±0) + i * (100 ±0)` // Estimated: `3620 + e * (2575 ±0) + i * (2575 ±0)` - // Minimum execution time: 1_095_485_000 picoseconds. - Weight::from_parts(1_103_346_000, 0) + // Minimum execution time: 1_217_145_000 picoseconds. + Weight::from_parts(1_251_187_000, 0) .saturating_add(Weight::from_parts(0, 3620)) - // Standard Error: 97_658 - .saturating_add(Weight::from_parts(3_178_300, 0).saturating_mul(i.into())) - // Standard Error: 97_658 - .saturating_add(Weight::from_parts(3_228_781, 0).saturating_mul(e.into())) + // Standard Error: 118_884 + .saturating_add(Weight::from_parts(4_002_678, 0).saturating_mul(i.into())) + // Standard Error: 118_884 + .saturating_add(Weight::from_parts(3_641_596, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(e.into()))) @@ -170,11 +173,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `386 + c * (136 ±0)` // Estimated: `1841 + c * (5086 ±0)` - // Minimum execution time: 6_046_000 picoseconds. - Weight::from_parts(2_309_892, 0) + // Minimum execution time: 6_277_000 picoseconds. + Weight::from_parts(6_357_000, 0) .saturating_add(Weight::from_parts(0, 1841)) - // Standard Error: 19_666 - .saturating_add(Weight::from_parts(18_787_919, 0).saturating_mul(c.into())) + // Standard Error: 41_189 + .saturating_add(Weight::from_parts(22_159_709, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -198,11 +201,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `229 + c * (124 ±0)` // Estimated: `1689 + c * (2600 ±0)` - // Minimum execution time: 4_970_000 picoseconds. - Weight::from_parts(2_926_083, 0) + // Minimum execution time: 5_070_000 picoseconds. + Weight::from_parts(5_225_000, 0) .saturating_add(Weight::from_parts(0, 1689)) - // Standard Error: 14_037 - .saturating_add(Weight::from_parts(11_504_890, 0).saturating_mul(c.into())) + // Standard Error: 24_173 + .saturating_add(Weight::from_parts(13_645_307, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -220,11 +223,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `920 + c * (13 ±0)` // Estimated: `4189 + c * (15 ±0)` - // Minimum execution time: 20_983_000 picoseconds. - Weight::from_parts(26_973_795, 0) + // Minimum execution time: 20_449_000 picoseconds. + Weight::from_parts(30_861_799, 0) .saturating_add(Weight::from_parts(0, 4189)) - // Standard Error: 1_482 - .saturating_add(Weight::from_parts(66_495, 0).saturating_mul(c.into())) + // Standard Error: 6_642 + .saturating_add(Weight::from_parts(236_293, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 15).saturating_mul(c.into())) @@ -238,11 +241,11 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `137 + c * (63 ±0)` // Estimated: `1616 + c * (2538 ±0)` - // Minimum execution time: 3_917_000 picoseconds. - Weight::from_parts(5_155_322, 0) + // Minimum execution time: 3_911_000 picoseconds. + Weight::from_parts(5_219_837, 0) .saturating_add(Weight::from_parts(0, 1616)) - // Standard Error: 3_800 - .saturating_add(Weight::from_parts(3_123_833, 0).saturating_mul(c.into())) + // Standard Error: 10_219 + .saturating_add(Weight::from_parts(3_647_782, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -273,8 +276,8 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `307` // Estimated: `6247` - // Minimum execution time: 49_411_000 picoseconds. - Weight::from_parts(49_849_000, 0) + // Minimum execution time: 50_870_000 picoseconds. + Weight::from_parts(53_335_000, 0) .saturating_add(Weight::from_parts(0, 6247)) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(8)) diff --git a/runtime/westend/src/weights/runtime_parachains_inclusion.rs b/runtime/westend/src/weights/runtime_parachains_inclusion.rs index 5c3dea30384f..767097f660e8 100644 --- a/runtime/westend/src/weights/runtime_parachains_inclusion.rs +++ b/runtime/westend/src/weights/runtime_parachains_inclusion.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::inclusion` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::inclusion // --extrinsic=* // --execution=wasm @@ -60,11 +63,11 @@ impl runtime_parachains::inclusion::WeightInfo for Weig // Proof Size summary in bytes: // Measured: `131297` // Estimated: `134587` - // Minimum execution time: 201_036_000 picoseconds. - Weight::from_parts(10_796_073, 0) + // Minimum execution time: 209_898_000 picoseconds. + Weight::from_parts(210_955_000, 0) .saturating_add(Weight::from_parts(0, 134587)) - // Standard Error: 33_391 - .saturating_add(Weight::from_parts(185_599_737, 0).saturating_mul(i.into())) + // Standard Error: 97_069 + .saturating_add(Weight::from_parts(207_030_437, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) diff --git a/runtime/westend/src/weights/runtime_parachains_initializer.rs b/runtime/westend/src/weights/runtime_parachains_initializer.rs index 0648c13b7920..81aca5c958d9 100644 --- a/runtime/westend/src/weights/runtime_parachains_initializer.rs +++ b/runtime/westend/src/weights/runtime_parachains_initializer.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::initializer` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::initializer // --extrinsic=* // --execution=wasm @@ -54,11 +57,11 @@ impl runtime_parachains::initializer::WeightInfo for We // Proof Size summary in bytes: // Measured: `0 + d * (11 ±0)` // Estimated: `1480 + d * (11 ±0)` - // Minimum execution time: 3_840_000 picoseconds. - Weight::from_parts(6_157_099, 0) + // Minimum execution time: 3_714_000 picoseconds. + Weight::from_parts(3_872_000, 0) .saturating_add(Weight::from_parts(0, 1480)) - // Standard Error: 4 - .saturating_add(Weight::from_parts(1_293, 0).saturating_mul(d.into())) + // Standard Error: 28 + .saturating_add(Weight::from_parts(3_378, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 11).saturating_mul(d.into())) diff --git a/runtime/westend/src/weights/runtime_parachains_paras.rs b/runtime/westend/src/weights/runtime_parachains_paras.rs index c72ce57aa7a4..dd1cea3e729b 100644 --- a/runtime/westend/src/weights/runtime_parachains_paras.rs +++ b/runtime/westend/src/weights/runtime_parachains_paras.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `runtime_parachains::paras` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: @@ -29,6 +29,9 @@ // --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --pallet=runtime_parachains::paras // --extrinsic=* // --execution=wasm @@ -64,11 +67,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `8309` // Estimated: `11774` - // Minimum execution time: 31_633_000 picoseconds. - Weight::from_parts(31_801_000, 0) + // Minimum execution time: 33_453_000 picoseconds. + Weight::from_parts(33_700_000, 0) .saturating_add(Weight::from_parts(0, 11774)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_988, 0).saturating_mul(c.into())) + // Standard Error: 10 + .saturating_add(Weight::from_parts(2_659, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -79,11 +82,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_372_000 picoseconds. - Weight::from_parts(8_553_000, 0) + // Minimum execution time: 8_284_000 picoseconds. + Weight::from_parts(8_565_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(892, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_025, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: Paras FutureCodeHash (r:1 w:1) @@ -109,11 +112,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `8428` // Estimated: `11893` - // Minimum execution time: 46_598_000 picoseconds. - Weight::from_parts(46_974_000, 0) + // Minimum execution time: 48_719_000 picoseconds. + Weight::from_parts(49_132_000, 0) .saturating_add(Weight::from_parts(0, 11893)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_007, 0).saturating_mul(c.into())) + // Standard Error: 11 + .saturating_add(Weight::from_parts(2_657, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(7)) } @@ -128,11 +131,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `95` // Estimated: `3560` - // Minimum execution time: 13_631_000 picoseconds. - Weight::from_parts(13_764_000, 0) + // Minimum execution time: 13_693_000 picoseconds. + Weight::from_parts(537_294, 0) .saturating_add(Weight::from_parts(0, 3560)) - // Standard Error: 2 - .saturating_add(Weight::from_parts(893, 0).saturating_mul(s.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(1_032, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -144,8 +147,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `4288` // Estimated: `7753` - // Minimum execution time: 19_686_000 picoseconds. - Weight::from_parts(20_007_000, 0) + // Minimum execution time: 20_183_000 picoseconds. + Weight::from_parts(20_890_000, 0) .saturating_add(Weight::from_parts(0, 7753)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -163,11 +166,11 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `659` // Estimated: `4124` - // Minimum execution time: 76_229_000 picoseconds. - Weight::from_parts(42_872_845, 0) + // Minimum execution time: 99_465_000 picoseconds. + Weight::from_parts(90_033_344, 0) .saturating_add(Weight::from_parts(0, 4124)) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_492, 0).saturating_mul(c.into())) + // Standard Error: 11 + .saturating_add(Weight::from_parts(1_925, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -179,8 +182,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `28` // Estimated: `3493` - // Minimum execution time: 5_798_000 picoseconds. - Weight::from_parts(6_004_000, 0) + // Minimum execution time: 5_920_000 picoseconds. + Weight::from_parts(6_146_000, 0) .saturating_add(Weight::from_parts(0, 3493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -195,8 +198,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `26682` // Estimated: `30147` - // Minimum execution time: 85_610_000 picoseconds. - Weight::from_parts(87_453_000, 0) + // Minimum execution time: 114_738_000 picoseconds. + Weight::from_parts(122_023_000, 0) .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -219,8 +222,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `27236` // Estimated: `30701` - // Minimum execution time: 782_299_000 picoseconds. - Weight::from_parts(794_101_000, 0) + // Minimum execution time: 954_433_000 picoseconds. + Weight::from_parts(974_709_000, 0) .saturating_add(Weight::from_parts(0, 30701)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(104)) @@ -235,8 +238,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `27214` // Estimated: `30679` - // Minimum execution time: 85_738_000 picoseconds. - Weight::from_parts(87_231_000, 0) + // Minimum execution time: 110_626_000 picoseconds. + Weight::from_parts(139_677_000, 0) .saturating_add(Weight::from_parts(0, 30679)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -255,8 +258,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `26704` // Estimated: `30169` - // Minimum execution time: 612_630_000 picoseconds. - Weight::from_parts(620_689_000, 0) + // Minimum execution time: 746_347_000 picoseconds. + Weight::from_parts(783_272_000, 0) .saturating_add(Weight::from_parts(0, 30169)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) @@ -271,8 +274,8 @@ impl runtime_parachains::paras::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `26682` // Estimated: `30147` - // Minimum execution time: 85_356_000 picoseconds. - Weight::from_parts(86_598_000, 0) + // Minimum execution time: 110_046_000 picoseconds. + Weight::from_parts(120_274_000, 0) .saturating_add(Weight::from_parts(0, 30147)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs b/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs index fcacd7019c35..72f70f8c4205 100644 --- a/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs +++ b/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs @@ -17,26 +17,27 @@ //! Autogenerated weights for `runtime_parachains::paras_inherent` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 // Executed Command: -// target/production/polkadot +// ./target/production/polkadot // benchmark // pallet +// --chain=westend-dev // --steps=50 // --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=runtime_parachains::paras_inherent // --extrinsic=* // --execution=wasm // --wasm-execution=compiled -// --heap-pages=4096 -// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json -// --pallet=runtime_parachains::paras_inherent -// --chain=westend-dev // --header=./file_header.txt -// --output=./runtime/westend/src/weights/ +// --output=./runtime/westend/src/weights/runtime_parachains_paras_inherent.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -114,11 +115,11 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `50518` // Estimated: `56458 + v * (23 ±0)` - // Minimum execution time: 787_742_000 picoseconds. - Weight::from_parts(323_859_708, 0) + // Minimum execution time: 992_257_000 picoseconds. + Weight::from_parts(473_224_562, 0) .saturating_add(Weight::from_parts(0, 56458)) - // Standard Error: 23_358 - .saturating_add(Weight::from_parts(48_375_660, 0).saturating_mul(v.into())) + // Standard Error: 50_055 + .saturating_add(Weight::from_parts(57_274_046, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(27)) .saturating_add(T::DbWeight::get().writes(15)) .saturating_add(Weight::from_parts(0, 23).saturating_mul(v.into())) @@ -185,8 +186,8 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42352` // Estimated: `48292` - // Minimum execution time: 356_545_000 picoseconds. - Weight::from_parts(362_497_000, 0) + // Minimum execution time: 445_965_000 picoseconds. + Weight::from_parts(476_329_000, 0) .saturating_add(Weight::from_parts(0, 48292)) .saturating_add(T::DbWeight::get().reads(25)) .saturating_add(T::DbWeight::get().writes(16)) @@ -258,11 +259,11 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42387` // Estimated: `48327` - // Minimum execution time: 5_733_399_000 picoseconds. - Weight::from_parts(975_216_648, 0) + // Minimum execution time: 6_877_099_000 picoseconds. + Weight::from_parts(1_267_644_471, 0) .saturating_add(Weight::from_parts(0, 48327)) - // Standard Error: 56_805 - .saturating_add(Weight::from_parts(47_900_476, 0).saturating_mul(v.into())) + // Standard Error: 96_443 + .saturating_add(Weight::from_parts(56_535_707, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(28)) .saturating_add(T::DbWeight::get().writes(15)) } @@ -336,8 +337,8 @@ impl runtime_parachains::paras_inherent::WeightInfo for // Proof Size summary in bytes: // Measured: `42414` // Estimated: `48354` - // Minimum execution time: 33_300_445_000 picoseconds. - Weight::from_parts(33_593_061_000, 0) + // Minimum execution time: 40_882_969_000 picoseconds. + Weight::from_parts(45_409_238_000, 0) .saturating_add(Weight::from_parts(0, 48354)) .saturating_add(T::DbWeight::get().reads(30)) .saturating_add(T::DbWeight::get().writes(15)) From bcbd6b4ef36e7412ed18868356e06ccb8757aca7 Mon Sep 17 00:00:00 2001 From: Andrei Sandu <54316454+sandreim@users.noreply.github.com> Date: Wed, 21 Jun 2023 17:02:57 +0300 Subject: [PATCH 32/56] availability recovery: measure re-encoding time (#7409) * Measure re-encoding time Signed-off-by: Andrei Sandu * fix build Signed-off-by: Andrei Sandu --------- Signed-off-by: Andrei Sandu --- node/network/availability-recovery/src/lib.rs | 5 +++++ .../network/availability-recovery/src/metrics.rs | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/node/network/availability-recovery/src/lib.rs b/node/network/availability-recovery/src/lib.rs index e4d76dcfdaa2..c771e31a6c40 100644 --- a/node/network/availability-recovery/src/lib.rs +++ b/node/network/availability-recovery/src/lib.rs @@ -255,6 +255,7 @@ impl RequestFromBackers { params.validators.len(), ¶ms.erasure_root, &data, + ¶ms.metrics, ) { gum::trace!( target: LOG_TARGET, @@ -586,6 +587,7 @@ impl RequestChunksFromValidators { params.validators.len(), ¶ms.erasure_root, &data, + &metrics, ) { gum::trace!( target: LOG_TARGET, @@ -685,7 +687,10 @@ fn reconstructed_data_matches_root( n_validators: usize, expected_root: &Hash, data: &AvailableData, + metrics: &Metrics, ) -> bool { + let _timer = metrics.time_reencode_chunks(); + let chunks = match obtain_chunks_v1(n_validators, data) { Ok(chunks) => chunks, Err(e) => { diff --git a/node/network/availability-recovery/src/metrics.rs b/node/network/availability-recovery/src/metrics.rs index 255d708e69e2..aa7216739507 100644 --- a/node/network/availability-recovery/src/metrics.rs +++ b/node/network/availability-recovery/src/metrics.rs @@ -46,6 +46,10 @@ struct MetricsInner { /// The duration between the pure recovery and verification. time_erasure_recovery: Histogram, + /// How much time it takes to re-encode the data into erasure chunks in order to verify + /// the root hash of the provided Merkle tree. See `reconstructed_data_matches_root`. + time_reencode_chunks: Histogram, + /// Time of a full recovery, including erasure decoding or until we gave /// up. time_full_recovery: Histogram, @@ -118,6 +122,11 @@ impl Metrics { self.0.as_ref().map(|metrics| metrics.time_erasure_recovery.start_timer()) } + /// Get a timer to time chunk encoding. + pub fn time_reencode_chunks(&self) -> Option { + self.0.as_ref().map(|metrics| metrics.time_reencode_chunks.start_timer()) + } + /// Get a timer to measure the time of the complete recovery process. pub fn time_full_recovery(&self) -> Option { self.0.as_ref().map(|metrics| metrics.time_full_recovery.start_timer()) @@ -186,6 +195,13 @@ impl metrics::Metrics for Metrics { ))?, registry, )?, + time_reencode_chunks: prometheus::register( + prometheus::Histogram::with_opts(prometheus::HistogramOpts::new( + "polkadot_parachain_availability_reencode_chunks", + "Time spent re-encoding the data as erasure chunks", + ))?, + registry, + )?, time_full_recovery: prometheus::register( prometheus::Histogram::with_opts(prometheus::HistogramOpts::new( "polkadot_parachain_availability_recovery_time_total", From ac65f3b3d65543b8602ec2435f71334a3c02e065 Mon Sep 17 00:00:00 2001 From: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Date: Wed, 21 Jun 2023 16:57:05 +0200 Subject: [PATCH 33/56] Clear Existing HRMP Channel Request When Force Opening (#7389) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * clear existing hrmp channel request when force opening * return unused weight * Apply suggestions from code review Co-authored-by: Bastian Köcher * fix * update weight signature to u32 --------- Co-authored-by: Bastian Köcher --- .../src/weights/runtime_parachains_hrmp.rs | 2 +- runtime/parachains/src/hrmp.rs | 28 +++++++++--- runtime/parachains/src/hrmp/benchmarking.rs | 30 ++++++++++++- runtime/parachains/src/hrmp/tests.rs | 44 +++++++++++++++++++ .../src/weights/runtime_parachains_hrmp.rs | 2 +- .../src/weights/runtime_parachains_hrmp.rs | 2 +- .../src/weights/runtime_parachains_hrmp.rs | 2 +- 7 files changed, 98 insertions(+), 12 deletions(-) diff --git a/runtime/kusama/src/weights/runtime_parachains_hrmp.rs b/runtime/kusama/src/weights/runtime_parachains_hrmp.rs index 64efe63c956f..c13a8413e410 100644 --- a/runtime/kusama/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/kusama/src/weights/runtime_parachains_hrmp.rs @@ -272,7 +272,7 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured) /// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:1 w:1) /// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured) - fn force_open_hrmp_channel() -> Weight { + fn force_open_hrmp_channel(_c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `350` // Estimated: `6290` diff --git a/runtime/parachains/src/hrmp.rs b/runtime/parachains/src/hrmp.rs index ee725da37f1f..0d62ec16d74a 100644 --- a/runtime/parachains/src/hrmp.rs +++ b/runtime/parachains/src/hrmp.rs @@ -59,7 +59,7 @@ pub trait WeightInfo { fn force_process_hrmp_close(c: u32) -> Weight; fn hrmp_cancel_open_request(c: u32) -> Weight; fn clean_open_channel_requests(c: u32) -> Weight; - fn force_open_hrmp_channel() -> Weight; + fn force_open_hrmp_channel(c: u32) -> Weight; } /// A weight info that is only suitable for testing. @@ -90,7 +90,7 @@ impl WeightInfo for TestWeightInfo { fn clean_open_channel_requests(_: u32) -> Weight { Weight::MAX } - fn force_open_hrmp_channel() -> Weight { + fn force_open_hrmp_channel(_: u32) -> Weight { Weight::MAX } } @@ -591,17 +591,32 @@ pub mod pallet { /// Chain's configured limits. /// /// Expected use is when one of the `ParaId`s involved in the channel is governed by the - /// Relay Chain, e.g. a common good parachain. + /// Relay Chain, e.g. a system parachain. #[pallet::call_index(7)] - #[pallet::weight(::WeightInfo::force_open_hrmp_channel())] + #[pallet::weight(::WeightInfo::force_open_hrmp_channel(1))] pub fn force_open_hrmp_channel( origin: OriginFor, sender: ParaId, recipient: ParaId, max_capacity: u32, max_message_size: u32, - ) -> DispatchResult { + ) -> DispatchResultWithPostInfo { ensure_root(origin)?; + + // Guard against a common footgun where someone makes a channel request to a system + // parachain and then makes a proposal to open the channel via governance, which fails + // because `init_open_channel` fails if there is an existing request. This check will + // clear an existing request such that `init_open_channel` should otherwise succeed. + let channel_id = HrmpChannelId { sender, recipient }; + let cancel_request: u32 = + if let Some(_open_channel) = HrmpOpenChannelRequests::::get(&channel_id) { + Self::cancel_open_request(sender, channel_id)?; + 1 + } else { + 0 + }; + + // Now we proceed with normal init/accept. Self::init_open_channel(sender, recipient, max_capacity, max_message_size)?; Self::accept_open_channel(recipient, sender)?; Self::deposit_event(Event::HrmpChannelForceOpened( @@ -610,7 +625,8 @@ pub mod pallet { max_capacity, max_message_size, )); - Ok(()) + + Ok(Some(::WeightInfo::force_open_hrmp_channel(cancel_request)).into()) } } } diff --git a/runtime/parachains/src/hrmp/benchmarking.rs b/runtime/parachains/src/hrmp/benchmarking.rs index 4ac524b124d4..3fe347a7bcba 100644 --- a/runtime/parachains/src/hrmp/benchmarking.rs +++ b/runtime/parachains/src/hrmp/benchmarking.rs @@ -301,6 +301,7 @@ frame_benchmarking::benchmarks! { force_open_hrmp_channel { let sender_id: ParaId = 1u32.into(); + let sender_origin: crate::Origin = 1u32.into(); let recipient_id: ParaId = 2u32.into(); // make sure para is registered, and has enough balance. @@ -315,9 +316,34 @@ frame_benchmarking::benchmarks! { let capacity = Configuration::::config().hrmp_channel_max_capacity; let message_size = Configuration::::config().hrmp_channel_max_message_size; - // make sure this channel doesn't exist + // Weight parameter only accepts `u32`, `0` and `1` used to represent `false` and `true`, + // respectively. + let c = [0, 1]; let channel_id = HrmpChannelId { sender: sender_id, recipient: recipient_id }; - assert!(HrmpOpenChannelRequests::::get(&channel_id).is_none()); + for channels_to_close in c { + if channels_to_close == 1 { + // this will consume more weight if a channel _request_ already exists, because it + // will need to clear the request. + assert_ok!(Hrmp::::hrmp_init_open_channel( + sender_origin.clone().into(), + recipient_id, + capacity, + message_size + )); + assert!(HrmpOpenChannelRequests::::get(&channel_id).is_some()); + } else { + if HrmpOpenChannelRequests::::get(&channel_id).is_some() { + assert_ok!(Hrmp::::hrmp_cancel_open_request( + sender_origin.clone().into(), + channel_id.clone(), + MAX_UNIQUE_CHANNELS, + )); + } + assert!(HrmpOpenChannelRequests::::get(&channel_id).is_none()); + } + } + + // but the _channel_ should not exist assert!(HrmpChannels::::get(&channel_id).is_none()); }: _(frame_system::Origin::::Root, sender_id, recipient_id, capacity, message_size) verify { diff --git a/runtime/parachains/src/hrmp/tests.rs b/runtime/parachains/src/hrmp/tests.rs index 709d56109b78..78fd983e25b7 100644 --- a/runtime/parachains/src/hrmp/tests.rs +++ b/runtime/parachains/src/hrmp/tests.rs @@ -203,6 +203,50 @@ fn force_open_channel_works() { }); } +#[test] +fn force_open_channel_works_with_existing_request() { + let para_a = 1.into(); + let para_a_origin: crate::Origin = 1.into(); + let para_b = 3.into(); + + new_test_ext(GenesisConfigBuilder::default().build()).execute_with(|| { + // We need both A & B to be registered and live parachains. + register_parachain(para_a); + register_parachain(para_b); + + // Request a channel from `a` to `b`. + run_to_block(3, Some(vec![2, 3])); + Hrmp::hrmp_init_open_channel(para_a_origin.into(), para_b, 2, 8).unwrap(); + Hrmp::assert_storage_consistency_exhaustive(); + assert!(System::events().iter().any(|record| record.event == + MockEvent::Hrmp(Event::OpenChannelRequested(para_a, para_b, 2, 8)))); + + run_to_block(5, Some(vec![4, 5])); + // the request exists, but no channel. + assert!(HrmpOpenChannelRequests::::get(&HrmpChannelId { + sender: para_a, + recipient: para_b + }) + .is_some()); + assert!(!channel_exists(para_a, para_b)); + // now force open it. + Hrmp::force_open_hrmp_channel(RuntimeOrigin::root(), para_a, para_b, 2, 8).unwrap(); + Hrmp::assert_storage_consistency_exhaustive(); + assert!(System::events().iter().any(|record| record.event == + MockEvent::Hrmp(Event::HrmpChannelForceOpened(para_a, para_b, 2, 8)))); + + // Advance to a block 6, but without session change. That means that the channel has + // not been created yet. + run_to_block(6, None); + assert!(!channel_exists(para_a, para_b)); + Hrmp::assert_storage_consistency_exhaustive(); + + // Now let the session change happen and thus open the channel. + run_to_block(8, Some(vec![8])); + assert!(channel_exists(para_a, para_b)); + }); +} + #[test] fn close_channel_works() { let para_a = 5.into(); diff --git a/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs b/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs index e2fdb821d6e8..82d8c30bacad 100644 --- a/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/polkadot/src/weights/runtime_parachains_hrmp.rs @@ -282,7 +282,7 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured) /// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:1 w:1) /// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured) - fn force_open_hrmp_channel() -> Weight { + fn force_open_hrmp_channel(_c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `666` // Estimated: `6606` diff --git a/runtime/rococo/src/weights/runtime_parachains_hrmp.rs b/runtime/rococo/src/weights/runtime_parachains_hrmp.rs index d3fba805d47d..9f1cf65efa64 100644 --- a/runtime/rococo/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/rococo/src/weights/runtime_parachains_hrmp.rs @@ -279,7 +279,7 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured) /// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:1 w:1) /// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured) - fn force_open_hrmp_channel() -> Weight { + fn force_open_hrmp_channel(_c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `704` // Estimated: `6644` diff --git a/runtime/westend/src/weights/runtime_parachains_hrmp.rs b/runtime/westend/src/weights/runtime_parachains_hrmp.rs index 9e10f35b6c1d..e6ff97fa0878 100644 --- a/runtime/westend/src/weights/runtime_parachains_hrmp.rs +++ b/runtime/westend/src/weights/runtime_parachains_hrmp.rs @@ -272,7 +272,7 @@ impl runtime_parachains::hrmp::WeightInfo for WeightInf /// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured) /// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:1 w:1) /// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured) - fn force_open_hrmp_channel() -> Weight { + fn force_open_hrmp_channel(_c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `307` // Estimated: `6247` From 61345d6fd8825d0f4ef429dafd5a5cf0a85b04d5 Mon Sep 17 00:00:00 2001 From: Milos Kriz <82968568+miloskriz@users.noreply.github.com> Date: Wed, 21 Jun 2023 22:53:52 +0100 Subject: [PATCH 34/56] Maintenance of bootnodes - gatotech (#7331) --- node/service/chain-specs/kusama.json | 13 ++++++------- node/service/chain-specs/polkadot.json | 13 ++++++------- node/service/chain-specs/westend.json | 7 +++---- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/node/service/chain-specs/kusama.json b/node/service/chain-specs/kusama.json index 7b01a82d8436..ce9fe179d857 100644 --- a/node/service/chain-specs/kusama.json +++ b/node/service/chain-specs/kusama.json @@ -29,9 +29,8 @@ "/dns/kusama.bootnode.amforc.com/tcp/30334/wss/p2p/12D3KooWLx6nsj6Fpd8biP1VDyuCUjazvRiGWyBam8PsqRJkbUb9", "/dns/kusama-bootnode.polkadotters.com/tcp/30333/p2p/12D3KooWHB5rTeNkQdXNJ9ynvGz8Lpnmsctt7Tvp7mrYv6bcwbPG", "/dns/kusama-bootnode.polkadotters.com/tcp/30334/wss/p2p/12D3KooWHB5rTeNkQdXNJ9ynvGz8Lpnmsctt7Tvp7mrYv6bcwbPG", - "/dns/ksm-bootnode-cr.gatotech.network/tcp/31320/p2p/12D3KooWRNZXf99BfzQDE1C8YhuBbuy7Sj18UEf7FNpD8egbURYD", - "/dns/ksm-bootnode-cr.gatotech.network/tcp/31420/ws/p2p/12D3KooWRNZXf99BfzQDE1C8YhuBbuy7Sj18UEf7FNpD8egbURYD", - "/dns/ksm-bootnode-cr.gatotech.network/tcp/31520/wss/p2p/12D3KooWRNZXf99BfzQDE1C8YhuBbuy7Sj18UEf7FNpD8egbURYD", + "/dns/boot-cr.gatotech.network/tcp/33200/p2p/12D3KooWRNZXf99BfzQDE1C8YhuBbuy7Sj18UEf7FNpD8egbURYD", + "/dns/boot-cr.gatotech.network/tcp/35200/wss/p2p/12D3KooWRNZXf99BfzQDE1C8YhuBbuy7Sj18UEf7FNpD8egbURYD", "/dns/boot-kusama.metaspan.io/tcp/23012/p2p/12D3KooWE1tq9ZL9AAxMiUBBqy1ENmh5pwfWabnoBPMo8gFPXhn6", "/dns/boot-kusama.metaspan.io/tcp/23015/ws/p2p/12D3KooWE1tq9ZL9AAxMiUBBqy1ENmh5pwfWabnoBPMo8gFPXhn6", "/dns/boot-kusama.metaspan.io/tcp/23016/wss/p2p/12D3KooWE1tq9ZL9AAxMiUBBqy1ENmh5pwfWabnoBPMo8gFPXhn6", @@ -39,9 +38,9 @@ "/dns/kusama-bootnode.turboflakes.io/tcp/30405/wss/p2p/12D3KooWR6cMhCYRhbJdqYZfzWZT6bcck3unpRLk8GBQGmHBgPwu", "/dns/kusama-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWLswepVYVdCNduvWRTyNTaDMXEBcmvJdZ9Bhw3u2Jhad2", "/dns/kusama-boot-ng.dwellir.com/tcp/30334/p2p/12D3KooWLswepVYVdCNduvWRTyNTaDMXEBcmvJdZ9Bhw3u2Jhad2", - "/dns/ksm-bootnode.stakeworld.io/tcp/30300/p2p/12D3KooWFRin7WWVS6RgUsSpkfUHSv4tfGKnr2zJPmf1pbMv118H", - "/dns/ksm-bootnode.stakeworld.io/tcp/30301/ws/p2p/12D3KooWFRin7WWVS6RgUsSpkfUHSv4tfGKnr2zJPmf1pbMv118H", - "/dns/ksm-bootnode.stakeworld.io/tcp/30302/wss/p2p/12D3KooWFRin7WWVS6RgUsSpkfUHSv4tfGKnr2zJPmf1pbMv118H" + "/dns/ksm-bootnode.stakeworld.io/tcp/30300/p2p/12D3KooWFRin7WWVS6RgUsSpkfUHSv4tfGKnr2zJPmf1pbMv118H", + "/dns/ksm-bootnode.stakeworld.io/tcp/30301/ws/p2p/12D3KooWFRin7WWVS6RgUsSpkfUHSv4tfGKnr2zJPmf1pbMv118H", + "/dns/ksm-bootnode.stakeworld.io/tcp/30302/wss/p2p/12D3KooWFRin7WWVS6RgUsSpkfUHSv4tfGKnr2zJPmf1pbMv118H" ], "telemetryEndpoints": [ [ @@ -3487,4 +3486,4 @@ {} ] } -} +} \ No newline at end of file diff --git a/node/service/chain-specs/polkadot.json b/node/service/chain-specs/polkadot.json index 641e45d4ddda..62162d575a95 100644 --- a/node/service/chain-specs/polkadot.json +++ b/node/service/chain-specs/polkadot.json @@ -29,9 +29,8 @@ "/dns/polkadot.bootnode.amforc.com/tcp/30334/wss/p2p/12D3KooWAsuCEVCzUVUrtib8W82Yne3jgVGhQZN3hizko5FTnDg3", "/dns/polkadot-bootnode.polkadotters.com/tcp/30333/p2p/12D3KooWPAVUgBaBk6n8SztLrMk8ESByncbAfRKUdxY1nygb9zG3", "/dns/polkadot-bootnode.polkadotters.com/tcp/30334/wss/p2p/12D3KooWPAVUgBaBk6n8SztLrMk8ESByncbAfRKUdxY1nygb9zG3", - "/dns/dot-bootnode-cr.gatotech.network/tcp/31310/p2p/12D3KooWK4E16jKk9nRhvC4RfrDVgcZzExg8Q3Q2G7ABUUitks1w", - "/dns/dot-bootnode-cr.gatotech.network/tcp/31410/ws/p2p/12D3KooWK4E16jKk9nRhvC4RfrDVgcZzExg8Q3Q2G7ABUUitks1w", - "/dns/dot-bootnode-cr.gatotech.network/tcp/31510/wss/p2p/12D3KooWK4E16jKk9nRhvC4RfrDVgcZzExg8Q3Q2G7ABUUitks1w", + "/dns/boot-cr.gatotech.network/tcp/33100/p2p/12D3KooWK4E16jKk9nRhvC4RfrDVgcZzExg8Q3Q2G7ABUUitks1w", + "/dns/boot-cr.gatotech.network/tcp/35100/wss/p2p/12D3KooWK4E16jKk9nRhvC4RfrDVgcZzExg8Q3Q2G7ABUUitks1w", "/dns/boot-polkadot.metaspan.io/tcp/13012/p2p/12D3KooWRjHFApinuqSBjoaDjQHvxwubQSpEVy5hrgC9Smvh92WF", "/dns/boot-polkadot.metaspan.io/tcp/13015/ws/p2p/12D3KooWRjHFApinuqSBjoaDjQHvxwubQSpEVy5hrgC9Smvh92WF", "/dns/boot-polkadot.metaspan.io/tcp/13016/wss/p2p/12D3KooWRjHFApinuqSBjoaDjQHvxwubQSpEVy5hrgC9Smvh92WF", @@ -39,9 +38,9 @@ "/dns/polkadot-bootnode.turboflakes.io/tcp/30400/wss/p2p/12D3KooWHJBMZgt7ymAdTRtadPcGXpJw79vBGe8z53r9JMkZW7Ha", "/dns/polkadot-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWFFqjBKoSdQniRpw1Y8W6kkV7takWv1DU2ZMkaA81PYVq", "/dns/polkadot-boot-ng.dwellir.com/tcp/30336/p2p/12D3KooWFFqjBKoSdQniRpw1Y8W6kkV7takWv1DU2ZMkaA81PYVq", - "/dns/dot-bootnode.stakeworld.io/tcp/30310/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg", - "/dns/dot-bootnode.stakeworld.io/tcp/30311/ws/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg", - "/dns/dot-bootnode.stakeworld.io/tcp/30312/wss/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" + "/dns/dot-bootnode.stakeworld.io/tcp/30310/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg", + "/dns/dot-bootnode.stakeworld.io/tcp/30311/ws/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg", + "/dns/dot-bootnode.stakeworld.io/tcp/30312/wss/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" ], "telemetryEndpoints": [ [ @@ -11713,4 +11712,4 @@ "codeSubstitutes": { "5203203": "0x0061736d010000000184033660037f7f7f017f60027f7f017f60027f7f0060017f0060047f7f7f7f0060057f7f7f7f7f0060037f7f7f0060017f017e60027e7e0060037f7e7e0060027f7e017f60037f7e7f017f6000017f60027f7f017e60037f7f7e017e60000060017e017f60017f017f60017e0060017e017e60047f7e7e7e017f60027f7e017e6000017e60037e7e7f017e60027e7f017f60057f7f7f7f7f017f60047f7f7f7f017f60067f7f7f7f7f7f0060037e7f7f0060047f7f7f7e0060047f7f7e7e0060067f7f7f7e7e7f0060027e7f0060047e7f7f7f0060097f7f7f7f7f7f7f7f7e0060067f7f7f7f7e7e00600a7f7f7f7f7f7f7f7f7f7f0060097f7f7f7f7f7f7f7f7f0060077f7f7e7e7e7f7f0060027f7e0060077f7e7e7e7e7e7e0060047e7e7e7e017f60037e7f7f017f60047f7e7f7f0060047f7e7e7f0060057f7f7f7e7e0060057e7f7e7e7f0060077f7f7e7e7f7e7e0060067f7f7f7f7f7f017f60057f7f7e7e7f0060057f7f7f7e7e017f60057f7e7e7e7e017f60057f7e7e7f7f0060057f7e7e7e7e0002a70e2d03656e76066d656d6f727902001403656e76206578745f6f6666636861696e5f696e6465785f7365745f76657273696f6e5f31000803656e76196578745f6c6f6767696e675f6c6f675f76657273696f6e5f31000903656e76256578745f63727970746f5f656432353531395f67656e65726174655f76657273696f6e5f31000a03656e76236578745f63727970746f5f656432353531395f7665726966795f76657273696f6e5f31000b03656e76286578745f63727970746f5f66696e6973685f62617463685f7665726966795f76657273696f6e5f31000c03656e762c6578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f76657273696f6e5f31000d03656e76376578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f636f6d707265737365645f76657273696f6e5f31000d03656e76256578745f63727970746f5f737232353531395f67656e65726174655f76657273696f6e5f31000a03656e76286578745f63727970746f5f737232353531395f7075626c69635f6b6579735f76657273696f6e5f31000703656e76216578745f63727970746f5f737232353531395f7369676e5f76657273696f6e5f31000e03656e76236578745f63727970746f5f737232353531395f7665726966795f76657273696f6e5f32000b03656e76276578745f63727970746f5f73746172745f62617463685f7665726966795f76657273696f6e5f31000f03656e762a6578745f747269655f626c616b65325f3235365f6f7264657265645f726f6f745f76657273696f6e5f31001003656e761c6578745f616c6c6f6361746f725f667265655f76657273696f6e5f31000303656e761e6578745f616c6c6f6361746f725f6d616c6c6f635f76657273696f6e5f31001103656e76206578745f68617368696e675f626c616b65325f3132385f76657273696f6e5f31001003656e76206578745f68617368696e675f626c616b65325f3235365f76657273696f6e5f31001003656e76206578745f68617368696e675f6b656363616b5f3235365f76657273696f6e5f31001003656e761e6578745f68617368696e675f74776f785f3132385f76657273696f6e5f31001003656e761d6578745f68617368696e675f74776f785f36345f76657273696f6e5f31001003656e761c6578745f6d6973635f7072696e745f6865785f76657273696f6e5f31001203656e761c6578745f6d6973635f7072696e745f6e756d5f76657273696f6e5f31001203656e761d6578745f6d6973635f7072696e745f757466385f76657273696f6e5f31001203656e76226578745f6d6973635f72756e74696d655f76657273696f6e5f76657273696f6e5f31001303656e76236578745f6f6666636861696e5f69735f76616c696461746f725f76657273696f6e5f31000c03656e76346578745f6f6666636861696e5f6c6f63616c5f73746f726167655f636f6d706172655f616e645f7365745f76657273696f6e5f31001403656e76286578745f6f6666636861696e5f6c6f63616c5f73746f726167655f6765745f76657273696f6e5f31001503656e76286578745f6f6666636861696e5f6c6f63616c5f73746f726167655f7365745f76657273696f6e5f31000903656e76246578745f6f6666636861696e5f6e6574776f726b5f73746174655f76657273696f6e5f31001603656e76226578745f6f6666636861696e5f72616e646f6d5f736565645f76657273696f6e5f31000c03656e76296578745f6f6666636861696e5f7375626d69745f7472616e73616374696f6e5f76657273696f6e5f31001303656e761c6578745f73746f726167655f617070656e645f76657273696f6e5f31000803656e76226578745f73746f726167655f6368616e6765735f726f6f745f76657273696f6e5f31001303656e761b6578745f73746f726167655f636c6561725f76657273696f6e5f31001203656e76226578745f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31001203656e76286578745f73746f726167655f636f6d6d69745f7472616e73616374696f6e5f76657273696f6e5f31000f03656e761c6578745f73746f726167655f6578697374735f76657273696f6e5f31001003656e76196578745f73746f726167655f6765745f76657273696f6e5f31001303656e761e6578745f73746f726167655f6e6578745f6b65795f76657273696f6e5f31001303656e761a6578745f73746f726167655f726561645f76657273696f6e5f31001703656e762a6578745f73746f726167655f726f6c6c6261636b5f7472616e73616374696f6e5f76657273696f6e5f31000f03656e761a6578745f73746f726167655f726f6f745f76657273696f6e5f31001603656e76196578745f73746f726167655f7365745f76657273696f6e5f31000803656e76276578745f73746f726167655f73746172745f7472616e73616374696f6e5f76657273696f6e5f31000f03c408c20811110303000011110f0f0f0f0f060602060005000101020102020201180307191a06000501010111110106061b01010101060101000101000101001c00010102011106060202020206060206060606060204010203060604051d05010101020201060201010206020602030602060606060606060602060d0202020202020202020202020602040202020202020206060302010202060202020202020202020202020202020f02020f02020202020202020202020203030202020202020202020202020202030204020202020102061e061e03020206020303020302020202030206060102021a0202020202020202020001010101010106060306050601040303030401050406020606000203020400030303030602021e0206110602061f1e0302030604020602060406020602060603060302021b020201060602030620020306010206020202060403160605020502020502060206070f021103020202060606020606061b040302020203020202030606020c06060202060206050307020602060202020202030303020202020202022103030202110303030203030202030202020206020303030202060303030203030202020203030202020202020202020303030202020303020302020202030303020603020202060602061f0606030602220206062306020602030402010206110f020202020203020202020202030303020202020303020305060606021e1e021e1e0202060206010602241b11110307070204030303062502020202020202020302030303030402262702280202030302032002020303030202021a0202020302030229020f02020604020606020202020202020202060202020202020202022a2b020601020f02110f0f0202020606060206060606020606060606060202060606022c060206060206060206060202020202020203030202020202020202020302020202020206020206050205050d06020306112d060306060203020102020203060211022e0606021e031e0304020202020101010202020204060302040303030303030303030303030303030303030303030303030101020206110202010202040606060606060202020202020604020202030206022f02030402020f03043003040202032904110c020211010201020301030303020202020206061131010303030903030302321a03030302010101020601030f0f040202020203021103050502020203030202020205270202020203030303030203030302030602030303030d0d030f020c03020d0d0d0d0d0d0d0d060d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d040d0d0d0d0d0d0d0d06060d0d0d0d020202021d0511020204020202021d05110402030303020203020202030203020202040206020204031b01021a040203030202030202020202021b051b0602040c0606030202020233060602040303030303020202020234031202030603030306030206110105270202010311020101022c35353535000000002c0407017001910291020619037f01418080c0000b7f0041ecf5cc000b7f0041ecf5cc000b07980b2a195f5f696e6469726563745f66756e6374696f6e5f7461626c6501000c436f72655f76657273696f6e00c20712436f72655f657865637574655f626c6f636b00c30715436f72655f696e697469616c697a655f626c6f636b00ca07114d657461646174615f6d6574616461746100cb071c426c6f636b4275696c6465725f6170706c795f65787472696e73696300cc071b426c6f636b4275696c6465725f66696e616c697a655f626c6f636b00cd0720426c6f636b4275696c6465725f696e686572656e745f65787472696e7369637300ce071c426c6f636b4275696c6465725f636865636b5f696e686572656e747300cf0718426c6f636b4275696c6465725f72616e646f6d5f7365656400d0072b5461676765645472616e73616374696f6e51756575655f76616c69646174655f7472616e73616374696f6e00d107214f6666636861696e576f726b65724170695f6f6666636861696e5f776f726b657200d3071850617261636861696e486f73745f76616c696461746f727300d4071e50617261636861696e486f73745f76616c696461746f725f67726f75707300d5072050617261636861696e486f73745f617661696c6162696c6974795f636f72657300d6072750617261636861696e486f73745f7065727369737465645f76616c69646174696f6e5f6461746100d7072650617261636861696e486f73745f636865636b5f76616c69646174696f6e5f6f75747075747300d8072550617261636861696e486f73745f73657373696f6e5f696e6465785f666f725f6368696c6400d9071a50617261636861696e486f73745f73657373696f6e5f696e666f00da071d50617261636861696e486f73745f76616c69646174696f6e5f636f646500db072850617261636861696e486f73745f686973746f726963616c5f76616c69646174696f6e5f636f646500dc072c50617261636861696e486f73745f63616e6469646174655f70656e64696e675f617661696c6162696c69747900dd071e50617261636861696e486f73745f63616e6469646174655f6576656e747300de071a50617261636861696e486f73745f646d715f636f6e74656e747300df072c50617261636861696e486f73745f696e626f756e645f68726d705f6368616e6e656c735f636f6e74656e747300e0071e4772616e6470614170695f6772616e6470615f617574686f72697469657300e107384772616e6470614170695f7375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e73696300e207274772616e6470614170695f67656e65726174655f6b65795f6f776e6572736869705f70726f6f6600e30715426162654170695f636f6e66696775726174696f6e00e5071b426162654170695f63757272656e745f65706f63685f737461727400e60715426162654170695f63757272656e745f65706f636800e70712426162654170695f6e6578745f65706f636800e80724426162654170695f67656e65726174655f6b65795f6f776e6572736869705f70726f6f6600e90735426162654170695f7375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e73696300ea0721417574686f72697479446973636f766572794170695f617574686f72697469657300eb072153657373696f6e4b6579735f67656e65726174655f73657373696f6e5f6b65797300ec071f53657373696f6e4b6579735f6465636f64655f73657373696f6e5f6b65797300ef071d4163636f756e744e6f6e63654170695f6163636f756e745f6e6f6e636500f007205472616e73616374696f6e5061796d656e744170695f71756572795f696e666f00f107275472616e73616374696f6e5061796d656e744170695f71756572795f6665655f64657461696c7300f2070a5f5f646174615f656e6403010b5f5f686561705f626173650302098f04010041010b900243475950dd0851525a69ee02f902ea05ec05ed058f015f5eb9073f40416a4a6061626364657e870189015b85028c08f603f706f806890288028702dc03f6069c029d029e02b802ae02b602b002b102b502b702b902e10898059405ba03b903b803b703e703dd05c103d905c703cb03ca03aa08cf03f203ce03e503a808cd03e203e103e003df03e803e603a708f303f103fb03fa03f903f803a70796059305b004af04b5045cf904f8048a08f704ff0483058105de05db05dc05da05d8059e05d705d605e405e305e205e105e005930694069206b506b606b706c308c2089e06c408d408d208c108b404b3049f06d304ad04ac04ae04d404b407b307b507da03d903a006db0385078407a1068607d306fe048005b807b707c007d505d405a206df058006f604a306c003bf03a406d303a607a507a506be07b207b107a606bf07a308a208a706a608b60888088708a8068f088b08c903c803a906cc03d503d108d008aa06f503f403ab06f703fe03c503c403ac06c603de0281078007ad0682079c07cb08ae06de03dd03af06e403fc03b503b403b006b603d403ef03ee03b106f003fd0384028302b2068602ad02f406f306b306f50694078b078a07b4068c07f106fa06f90688019a0597059c058d078f07900793078e07a807b607ba07c107e208d8088d088908ba02bb02a508a408ab08a908a9029d0599059b05c908c808c708c608c50890010abcce68c20806002000102d0b0700200010df080b06002000102f0b0700200010de080b0a0020002001200210310b2a01017f0240200210df082203450d002003200020022001200120024b1b10e9081a200010de080b20030b0600200010330b1d01017f0240200010df082201450d0020014100200010eb081a0b20010b05001035000b05001037000b05001034000b1700410141cce2cc00410741d4e2cc00412210d90800000b110041d0f0cc004111418080c0001039000b4701017f230041206b22032400200341146a4100360200200341d4e2cc00360210200342013702042003200136021c200320003602182003200341186a360200200320021044000b950101017f02400240200141004e0d0041012102410021010c010b0240024002400240200228020022030d002001450d022001102c21020c010b0240200228020422020d002001450d022001102c21020c010b200320022001103021020b20020d012000200136020441012101410121020c020b410121020b20002002360204410021020b20002002360200200041086a20013602000bde0201067f230041206b2202240020012802002103024002402001280204220441037422050d00410021060c010b200341046a2107410021060340200728020020066a2106200741086a2107200541786a22050d000b0b024002400240200141146a2802000d00200621070c010b02402004450d00410021054101210402402006410f4b0d00200341046a280200450d030b200620066a220720064f0d010c020b4100410041ac80c000103c000b02402007417f4c0d00024020070d0041002105410121040c020b200721052007102c22040d011036000b1038000b20004100360208200020043602002000200536020420022000360204200241086a41106a200141106a290200370300200241086a41086a200141086a290200370300200220012902003703080240200241046a41bc80c000200241086a103d0d00200241206a24000f0b41d480c0004133200241086a418881c000419881c000103e000b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41013602002003420237020c2003418c84c000360208200341013602242003200341206a360218200320033602282003200341046a360220200341086a20021044000bc20501097f230041306b22032400200341246a2001360200200341033a00282003428080808080043703082003200036022020034100360218200341003602100240024002400240024020022802082204450d0020022802002105200228020422062002410c6a2802002207200720064b1b2208450d01200020052802002005280204200128020c1100000d03200541086a2100200228021021092008210a034020032004411c6a2d00003a00282003200441046a290200422089370308200441186a28020021014100210741002102024002400240200441146a2802000e03010002010b2001410374210b410021022009200b6a220b2802044102470d01200b28020028020021010b410121020b2003200136021420032002360210200441106a28020021020240024002402004410c6a2802000e03010002010b20024103742101200920016a22012802044102470d01200128020028020021020b410121070b2003200236021c20032007360218200920042802004103746a2202280200200341086a20022802041101000d04200a417f6a220a450d03200441206a2104200041046a210220002802002101200041086a2100200328022020012002280200200328022428020c110000450d000c040b0b2002280200210520022802042206200241146a2802002204200420064b1b2208450d0020022802102104200020052802002005280204200128020c1100000d02200541086a21002008210203402004280200200341086a200441046a2802001101000d032002417f6a2202450d02200441086a2104200041046a210120002802002107200041086a2100200328022020072001280200200328022428020c110000450d000c030b0b410021080b0240200620084d0d002003280220200520084103746a22042802002004280204200328022428020c1100000d010b410021040c010b410121040b200341306a240020040b7e01017f230041c0006b220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41033602002005420237021c20054190e2cc00360218200541043602342005200541306a3602282005200541106a3602382005200541086a360230200541186a20041044000b8d0201047f230041206b22032400024002402000280200220041046a2802002204200041086a28020022056b2002490d00200028020021040c010b0240200520026a22062005490d00200441017422052006200520064b1b22054108200541084b1b21050240024020040d00200341003602100c010b200341106a41086a410136020020032004360214200320002802003602100b20032005200341106a103a200341086a2802002105024020032802004101460d00200020032802042204360200200041046a2005360200200041086a28020021050c020b2005450d001036000b1038000b200420056a2001200210e9081a200041086a2200200028020020026a360200200341206a240041000bbf0501047f230041306b2202240020002802002100024002400240024002400240024002402001418001490d002002410036020c2001418010490d0102402001418080044f0d0020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c040b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010c030b024020002802082203200041046a280200460d00200028020021040c020b200341016a22042003490d04200341017422052004200520044b1b22044108200441084b1b21040240024020030d00200241003602200c010b200241206a41086a410136020020022003360224200220002802003602200b200241106a2004200241206a103a200241186a2802002103024020022802104101460d00200020022802142204360200200041046a2003360200200028020821030c020b20030d030c040b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b200420036a20013a00002000200028020841016a3602080c040b0240200041046a2802002204200041086a28020022036b2001490d00200028020021040c030b200320016a22052003490d01200441017422032005200320054b1b22034108200341084b1b21030240024020040d00200241003602200c010b200241206a41086a410136020020022004360224200220002802003602200b200241106a2003200241206a103a200241106a41086a2802002103024020022802104101460d00200020022802142204360200200041046a2003360200200041086a28020021030c030b2003450d010b1036000b1038000b200420036a2002410c6a200110e9081a200041086a2200200028020020016a3602000b200241306a240041000b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41bc80c000200241086a103d2101200241206a240020010b6f01017f230041306b2202240020022001360204200220003602002002411c6a41023602002002412c6a41013602002002420337020c2002418c82c000360208200241013602242002200241206a3602182002200241046a36022820022002360220200241086a41a482c0001044000b0b002000350200200110480b3401017f230041106b220224002002200136020c200220003602082002419c84c000360204200241d4e2cc0036020020021049000b6f01017f230041306b2202240020022001360204200220003602002002411c6a41023602002002412c6a41013602002002420337020c200241fc82c000360208200241013602242002200241206a3602182002200241046a36022820022002360220200241086a419483c0001044000b6f01017f230041306b2202240020022001360204200220003602002002411c6a41023602002002412c6a41013602002002420337020c200241d083c000360208200241013602242002200241206a3602182002200241046a36022820022002360220200241086a41e883c0001044000b0d0020002802001a037f0c000b0bd20203027f017e037f230041306b22022400412721030240024020004290ce005a0d00200021040c010b412721030340200241096a20036a2205417c6a20004290ce0080220442f0b17f7e20007ca7220641ffff037141e4006e220741017441de84c0006a2f00003b00002005417e6a2007419c7f6c20066a41ffff037141017441de84c0006a2f00003b00002003417c6a2103200042ffc1d72f5621052004210020050d000b0b02402004a7220541e3004c0d00200241096a2003417e6a22036a2004a7220641ffff037141e4006e2205419c7f6c20066a41ffff037141017441de84c0006a2f00003b00000b02400240200541094a0d00200241096a2003417f6a22036a200541306a3a00000c010b200241096a2003417e6a22036a200541017441de84c0006a2f00003b00000b200141d4e2cc004100200241096a20036a412720036b104b2103200241306a240020030b6f01017f230041c0006b220124002001200036020c200141346a410136020020014201370224200141c4e2cc003602202001410536023c2001200141386a36023020012001410c6a360238200141106a200141206a103b410141cce2cc0041072001280210200128021810d90800000b0c0042f3a38eecb2fea7f4570bea0501067f20002802002205410171220620046a21070240024020054104710d00410021010c010b4100210802402002450d00200221092001210a03402008200a2d000041c00171418001476a2108200a41016a210a2009417f6a22090d000b0b200820076a21070b412b418080c40020061b21080240024020002802084101460d004101210a2000200820012002104c0d012000280218200320042000411c6a28020028020c1100000f0b02402000410c6a280200220920074b0d004101210a2000200820012002104c0d012000280218200320042000411c6a28020028020c1100000f0b024002400240024002402005410871450d00200028020421052000413036020420002d002021064101210a200041013a00202000200820012002104c0d054100210a200920076b22092101410120002d0020220820084103461b4103710e0403020102030b4100210a200920076b22092105024002400240410120002d0020220720074103461b4103710e0402010001020b2009410176210a200941016a41017621050c010b410021052009210a0b200a41016a210a0340200a417f6a220a450d0420002802182000280204200028021c280210110100450d000b41010f0b2009410176210a200941016a41017621010c010b410021012009210a0b200a41016a210a02400340200a417f6a220a450d0120002802182000280204200028021c280210110100450d000b41010f0b200028020421094101210a200028021820032004200028021c28020c1100000d01200141016a2108200028021c210120002802182102024003402008417f6a2208450d014101210a200220092001280210110100450d000c030b0b200020063a00202000200536020441000f0b200028020421094101210a2000200820012002104c0d00200028021820032004200028021c28020c1100000d00200541016a2108200028021c210120002802182100034002402008417f6a22080d0041000f0b4101210a200020092001280210110100450d000b0b200a0b5401017f024002402001418080c400460d0041012104200028021820012000411c6a2802002802101101000d010b024020020d0041000f0b2000280218200220032000411c6a28020028020c11000021040b20040b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41013602002003420237020c200341a886c000360208200341013602242003200341206a3602182003200341046a36022820032003360220200341086a20021044000b8908010a7f20002802102103024002400240200028020822044101470d0020034101470d020c010b20034101460d002000280218200120022000411c6a28020028020c1100000f0b200120026a2105024002400240200041146a28020022060d0041002107200121080c010b41002107200121080340200520082203460d02200341016a2108024020032c00002209417f4a0d00200941ff017121090240024020082005470d004100210a2005210b0c010b20032d0001413f71210a200341026a2208210b0b200941e001490d0002400240200b2005470d004100210c2005210b0c010b200b2d0000413f71210c200b41016a2208210b0b200941f001490d0002400240200b2005470d004100210b0c010b200b41016a2108200b2d0000413f71210b0b200a410c742009411274418080f0007172200c41067472200b72418080c400460d030b200820036b20076a21072006417f6a22060d000b0b20052008460d00024020082c00002203417f4a0d0002400240200841016a2005470d0041002108200521060c010b200841026a210620082d0001413f7141067421080b200341ff017141e001490d000240024020062005470d0041002106200521090c010b200641016a210920062d0000413f7121060b200341ff017141f001490d00200341ff01712103200620087221080240024020092005470d00410021050c010b20092d0000413f7121050b20084106742003411274418080f0007172200572418080c400460d010b024002402007450d0020072002460d0041002103200720024f0d01200120076a2c00004140480d010b200121030b2007200220031b21022003200120031b21010b20044101460d002000280218200120022000411c6a28020028020c1100000f0b0240024002402002450d004100210820022107200121030340200820032d000041c00171418001476a2108200341016a21032007417f6a22070d000b2008200028020c22054f0d014100210820022107200121030340200820032d000041c00171418001476a2108200341016a21032007417f6a22070d000c030b0b41002108200028020c22050d010b2000280218200120022000411c6a28020028020c1100000f0b41002103200520086b22052107024002400240410020002d0020220820084103461b4103710e0402010001020b20054101762103200541016a41017621070c010b41002107200521030b200341016a210302400240024003402003417f6a2203450d0120002802182000280204200028021c280210110100450d000c020b0b2000280204210841012103200028021820012002200028021c28020c1100000d01200741016a2103200028021c210720002802182100034002402003417f6a22030d0041000f0b200020082007280210110100450d000b0b410121030b20030be00801067f230041f0006b220524002005200336020c20052002360208410121062001210702402001418102490d00410020016b2108418002210903400240200920014f0d0041002106200020096a2c000041bf7f4c0d00200921070c020b2009417f6a21074100210620094101460d01200820096a210a20072109200a4101470d000b0b200520073602142005200036021020054100410520061b36021c200541d4e2cc0041ea86c00020061b3602180240024002400240200220014b22060d00200320014b0d00200220034b0d01024002402002450d0020012002460d00200120024d0d01200020026a2c00004140480d010b200321020b20052002360220024002402002450d0020022001470d010b200221060c030b200141016a210903400240200220014f0d00200020026a2c00004140480d00200541246a2109200221060c050b2002417f6a210620024101460d03200920024621032006210220030d030c000b0b20052002200320061b360228200541306a41146a4103360200200541c8006a41146a4104360200200541d4006a410436020020054203370234200541f086c0003602302005410136024c2005200541c8006a3602402005200541186a3602582005200541106a3602502005200541286a360248200541306a20041044000b200541e4006a4104360200200541c8006a41146a4104360200200541d4006a4101360200200541306a41146a4104360200200542043702342005418887c0003602302005410136024c2005200541c8006a3602402005200541186a3602602005200541106a36025820052005410c6a3602502005200541086a360248200541306a20041044000b200541246a21090b024020062001460d00410121034100210802400240200020066a22072c000022024100480d002005200241ff0171360224200541286a21010c010b200020016a220121030240200741016a2001460d00200741026a210320072d0001413f7121080b2002411f71210702400240200241ff017141e0014f0d00200820074106747221020c010b410021002001210a024020032001460d00200341016a210a20032d0000413f7121000b200020084106747221030240200241ff017141f0014f0d0020032007410c747221020c010b410021020240200a2001460d00200a2d0000413f7121020b20034106742007411274418080f00071722002722202418080c400460d020b2005200236022441012103200541286a21012002418001490d00410221032002418010490d0041034104200241808004491b21030b200520063602282005200320066a36022c200541306a41146a4105360200200541ec006a4104360200200541e4006a4104360200200541c8006a41146a4106360200200541d4006a410736020020054205370234200541a887c00036023020052001360258200520093602502005410136024c2005200541c8006a3602402005200541186a3602682005200541106a3602602005200541206a360248200541306a20041044000b41e8aac700412b20041039000b1000200120002802002000280204104e0b7c01037f230041206b2202240002402000280200200110550d002001411c6a2802002103200128021821042002411c6a4100360200200241d4e2cc003602182002420137020c2002419088c00036020820042003200241086a103d0d002000280204200110552101200241206a240020010f0b200241206a240041010ba40403037f017e017f410121020240200128021841272001411c6a2802002802101101000d0041f4002103410221040240024002400240024002402000280200220041776a0e1f05010303000303030303030303030303030303030303030303040303030304020b41f2002103410221040c040b41ee002103410221040c030b200041dc00460d010b0240024002400240200010530d0020001054450d01410121040c030b200041017267410276410773ad4280808080d0008421050c010b200041017267410276410773ad4280808080d0008421050b410321040b200021030c010b20002103410221040b03402004210641dc002100410121024101210402400240024002400240024020060e0402010500020b02400240024002402005422088a741ff01710e06050302010006050b200542ffffffff8f608342808080803084210541f50021000c060b200542ffffffff8f608342808080802084210541fb0021000c050b413041d70020032005a72204410274411c7176410f712200410a491b20006a2100024020040d00200542ffffffff8f60834280808080108421050c050b2005427f7c42ffffffff0f832005428080808070838421050c040b200542ffffffff8f6083210541fd0021000c030b41002104200321000c030b20012802184127200128021c2802101101000f0b200542ffffffff8f60834280808080c0008421050b410321040b20012802182000200128021c280210110100450d000b0b20020ba60301047f0240024002404100410f200041a49a04491b2201200141086a2201200141027441b094c0006a280200410b742000410b7422014b1b2202200241046a2202200241027441b094c0006a280200410b7420014b1b2202200241026a2202200241027441b094c0006a280200410b7420014b1b2202200241016a2202200241027441b094c0006a280200410b7420014b1b220241027441b094c0006a280200410b74220320014620032001496a20026a2201411e4b0d0041b105210402402001411e460d00200141027441b494c0006a28020041157621040b4100210202402001417f6a220320014b0d002003411f4f0d03200341027441b094c0006a28020041ffffff007121020b02402004200141027441b094c0006a280200411576220141016a460d00200020026b2102200141b105200141b1054b1b21032004417f6a210441002100034020032001460d032000200141bc95c0006a2d00006a220020024b0d012004200141016a2201470d000b200421010b20014101710f0b2001411f41f09ac000103c000b200341b10541809bc000103c000b2003411f41ac95c000103c000be20601077f024002400240024002400240024002400240200041ffff034b0d0020004180fe0371410876210141ed88c000210241002103200041ff0171210402400340200241026a2105200320022d000122066a21070240024020022d000022022001470d0020072003490d06200741a3024f0d07200341d089c0006a210203402006450d022006417f6a210620022d00002103200241016a210220032004470d000b410021060c050b200220014b0d022007210320052102200541bf89c000470d010c020b2007210320052102200541bf89c000470d000b0b200041ffff0371210441f28bc0002102410121060340200241016a21000240024020022d000022034118744118752207417f4a0d00200041a78ec000460d07200741ff007141087420022d0001722103200241026a21020c010b200021020b200420036b22044100480d0220064101732106200241a78ec000470d000c020b0b0240200041ffff074b0d0020004180fe0371410876210141b88ec000210241002103200041ff0171210402400340200241026a2105200320022d000122066a21070240024020022d000022022001470d0020072003490d09200741b0014f0d0a200341848fc0006a210203402006450d022006417f6a210620022d00002103200241016a210220032004470d000b410021060c050b200220014b0d022007210320052102200541848fc000470d010c020b2007210320052102200541848fc000470d000b0b200041ffff0371210441b390c0002102410121060340200241016a21000240024020022d000022034118744118752207417f4a0d00200041d693c000460d0a200741ff007141087420022d0001722103200241026a21020c010b200021020b200420036b22044100480d0220064101732106200241d693c000470d000c020b0b41002106200041b5d9736a41b5db2b490d00200041e28b746a41e20b490d002000419fa8746a419f18490d00200041dee2746a410e490d00200041feffff0071419ef00a460d00200041a2b2756a4122490d00200041cb91756a410b4f0d070b20064101710f0b2003200741c089c0001057000b200741a20241c089c000104d000b41e8aac700412b41a88ec0001039000b2003200741c089c0001057000b200741af0141c089c000104d000b41e8aac700412b41a88ec0001039000b200041f08338490ba70201037f23004180016b22022400024002400240024020012802002203411071450d00410021030340200220036a41ff006a2000410f712204413072200441d7006a2004410a491b3a00002003417f6a2103200041047622000d000b20034180016a22004181014f0d02200141ac88c0004102200220036a4180016a410020036b104b21000c010b02402003412071450d00410021030340200220036a41ff006a2000410f712204413072200441376a2004410a491b3a00002003417f6a2103200041047622000d000b20034180016a22004181014f0d03200141ac88c0004102200220036a4180016a410020036b104b21000c010b2000ad2001104821000b20024180016a240020000f0b2000418001419c88c0001056000b2000418001419c88c0001056000b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41013602002003420237020c200341b088c000360208200341013602242003200341206a3602182003200341046a36022820032003360220200341086a20021044000b6c01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41013602002003420237020c200341fc93c000360208200341013602242003200341206a3602182003200341046a36022820032003360220200341086a20021044000bec0201017f230041f0006b220624002006200136020c2006200036020820062003360214200620023602102006410236021c200641f09bc000360218024020042802000d00200641386a41146a4103360200200641c4006a4103360200200641d8006a41146a41033602002006420437025c200641f49bc0003602582006410436023c2006200641386a3602682006200641106a3602482006200641086a3602402006200641186a360238200641d8006a20051044000b200641206a41106a200441106a290200370300200641206a41086a200441086a29020037030020062004290200370320200641d8006a41146a4104360200200641d4006a4108360200200641386a41146a4103360200200641c4006a41033602002006420537025c200641949cc0003602582006410436023c2006200641386a3602682006200641206a3602502006200641106a3602482006200641086a3602402006200641186a360238200641d8006a20051044000b140020002802002001200028020428020c1101000b6401027f230041206b220224002001411c6a280200210320012802182101200241086a41106a200041106a290200370300200241086a41086a200041086a2902003703002002200029020037030820012003200241086a103d2100200241206a240020000b1c00200128021841f39cc000410b2001411c6a28020028020c1100000b1c00200128021841fe9cc000410e2001411c6a28020028020c1100000b5b01017f230041306b220324002003200136020c20032000360208200341246a410136020020034201370214200341c4e2cc003602102003410436022c2003200341286a3602202003200341086a360228200341106a20021044000b6901037f230041206b220224002001411c6a280200210320012802182104200241086a41106a2000280200220141106a290200370300200241086a41086a200141086a2902003703002002200129020037030820042003200241086a103d2101200241206a240020010b15002001200028020022002802002000280204104e0b8a0501077f0240024002402002450d000340024020002802082d0000450d00200028020041c59dc0004104200028020428020c110000450d0041010f0b4100210320022104024002400340200120036a210502400240200441074b0d002004450d03200220036b2106410021070340200520076a2d0000410a460d022006200741016a2207470d000c040b0b024002400240200541036a417c7120056b2207450d0020042007200720044b1b2106410021070340200520076a2d0000410a460d042006200741016a2207470d000b2006200441786a22084b0d020c010b200441786a2108410021060b02400340200520066a220741046a2802002209417f732009418a94a8d0007341fffdfb776a7120072802002207417f732007418a94a8d0007341fffdfb776a7172418081828478710d01200641086a220620084d0d000b0b200620044b0d070b20042006460d02200420066b21092001200620036a6a21054100210702400340200520076a2d0000410a460d012009200741016a2207470d000c040b0b200620076a21070b200720036a220741016a21030240200720024f0d00200120076a2d0000410a470d00410121070c030b200220036b2104200220034f0d000b0b41002107200221030b200028020820073a0000200028020421072000280200210602400240024020022003460d000240200220034d0d00200120036a22052c000041bf7f4a0d020b200120024100200341cc9dc000104f000b200620012002200728020c110000450d0141010f0b0240200620012003200728020c110000450d0041010f0b20052c000041bf7f4c0d040b200120036a2101200220036b22020d000b0b41000f0b20062004418c9ec0001056000b200120022003200241dc9dc000104f000b850201027f230041106b220224002002410036020c02400240024002402001418001490d002001418010490d012002410c6a21032001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c2002410c6a2103410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c2002410c6a2103410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b20002003200110602101200241106a240020010b6001017f230041206b2202240020022000360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41dc9ec000200241086a103d2101200241206a240020010b0d0020002802002001200210600b8c0201027f230041106b22022400200028020021002002410036020c02400240024002402001418001490d002001418010490d012002410c6a21032001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c2002410c6a2103410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c2002410c6a2103410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b20002003200110602101200241106a240020010b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41dc9ec000200241086a103d2101200241206a240020010bd40202047f027e230041c0006b2203240041012104024020002d00080d00200028020421050240200028020022062d0000410471450d00024020050d0041012104200628021841f59ec00041022006411c6a28020028020c1100000d02200028020021060b41012104200341013a0017200341346a41c09ec000360200200320062902183703082003200341176a3602102006290208210720062902102108200320062d00203a00382003200837032820032007370320200320062902003703182003200341086a3602302001200341186a200228020c1101000d01200328023041d89ec0004102200328023428020c11000021040c010b41012104200628021841bc9ec00041f49ec00020051b4102410120051b2006411c6a28020028020c1100000d0020012000280200200228020c11010021040b200020043a00082000200028020441016a360204200341c0006a240020000b840703017f027e027f02402002280200220341134c0d00024002400240200042808084fea6dee111540d002002200341706a2203360200200120036a200042808084fea6dee111802204428080fc81d9a19e6e7e20007c2200428080e983b1de1680a741ff017141e4007041017441de84c0006a2f00003b0000200228020020016a41026a20004280a094a58d1d80a741ffff037141e4007041017441de84c0006a2f00003b0000200228020020016a41046a20004280c8afa02580a741e4007041017441de84c0006a2f00003b0000200228020020016a41066a20004280c2d72f80a741e4007041017441de84c0006a2f00003b0000200228020020016a41086a200042c0843d8042e40082a741017441de84c0006a2f00003b0000200228020020016a410a6a20004290ce008042e40082a741017441de84c0006a2f00003b0000200228020020016a410c6a200042e40080220542e40082a741017441de84c0006a2f00003b00002005429c7f7e20007ca72103410e21060c010b024020004280c2d72f5a0d00200021040c020b2002200341786a2203360200200120036a20004280c2d72f8022044280bea8507e20007ca7220341c0843d6e41ff017141e4007041017441de84c0006a2f00003b0000200228020020016a41026a20034190ce006e41ffff037141e4007041017441de84c0006a2f00003b0000200228020020016a41046a200341e4006e220641e4007041017441de84c0006a2f00003b00002006419c7f6c20036a2103410621060b2001200228020020066a6a200341017441de84c0006a2f00003b00000b024002402004a722064190ce004f0d00200621030c010b20022002280200417c6a2203360200200120036a20064190ce006e220341f0b17f6c20066a220641ffff037141e4006e220741017441de84c0006a2f00003b0000200228020020016a41026a2007419c7f6c20066a41ffff037141017441de84c0006a2f00003b00000b0240200341ffff0371220641e400490d0020022002280200417e6a2207360200200120076a200641e4006e2206419c7f6c20036a41ffff037141017441de84c0006a2f00003b0000200621030b0240200341ffff037141094b0d0020022002280200417f6a2206360200200120066a200341306a3a00000f0b20022002280200417e6a2206360200200120066a200341ffff037141017441de84c0006a2f00003b00000f0b41fb9ec000411c41989fc0001039000bd108020b7f017e4101210302400240200228021841222002411c6a2802002802101101000d000240024020010d00410021040c010b200020016a21052000210641002104200021074100210802400340200641016a210902400240024020062c0000220a4100480d00200a41ff0171210b0c010b0240024020092005470d004100210b200521060c010b20062d0001413f71210b200641026a220921060b200a411f7121030240200a41ff0171220a41e0014f0d00200b200341067472210b0c010b0240024020062005470d004100210c2005210d0c010b20062d0000413f71210c200641016a2209210d0b200c200b41067472210b0240200a41f0014f0d00200b2003410c7472210b0c010b02400240200d2005470d004100210a200921060c010b200d41016a2106200d2d0000413f71210a0b200b4106742003411274418080f0007172200a72220b418080c400470d010c030b200921060b4102210941f400210d02400240024002400240024002400240200b41776a0e1f06010303000303030303030303030303030303030303030303040303030304020b41f200210d0c050b41ee00210d0c040b200b41dc00460d010b0240200b10530d00200b10540d040b200b41017267410276410773ad4280808080d00084210e410321090c010b0b200b210d0b0240024020082004490d0002402004450d0020042001460d00200420014f0d01200020046a2c000041bf7f4c0d010b02402008450d0020082001460d00200820014f0d01200020086a2c000041bf7f4c0d010b2002280218200020046a200820046b200228021c28020c110000450d0141010f0b200020012004200841bc9fc000104f000b03402009210a4101210341dc00210441012109024002400240024002400240200a0e0402010500020b0240024002400240200e422088a741ff01710e06050302010006050b200e42ffffffff8f608342808080803084210e4103210941f50021040c070b200e42ffffffff8f608342808080802084210e4103210941fb0021040c060b413041d700200d200ea72209410274411c7176410f712204410a491b20046a2104024020090d00200e42ffffffff8f608342808080801084210e0c050b200e427f7c42ffffffff0f83200e4280808080708384210e0c040b200e42ffffffff8f6083210e4103210941fd0021040c040b41002109200d21040c030b410121090240200b418001490d0041022109200b418010490d0041034104200b41808004491b21090b200920086a21040c040b200e42ffffffff8f60834280808080c00084210e0b410321090b20022802182004200228021c2802101101000d050c000b0b200820076b20066a21082006210720052006470d000b0b2004450d0020042001460d00200420014f0d02200020046a2c000041bf7f4c0d020b410121032002280218200020046a200120046b200228021c28020c1100000d0020022802184122200228021c28021011010021030b20030f0b200020012004200141ac9fc000104f000b870101027f23004180016b2202240020002d00002103410021000340200220006a41ff006a20034101714130723a00002000417f6a2100200341017641ff007122030d000b024020004180016a2203418101490d002003418001419c88c0001056000b200141e79fc0004102200220006a4180016a410020006b104b210020024180016a240020000b1c00200128021841adb3c00041052001411c6a28020028020c1100000bcf0401067e2000420037001720002001290320220242338842137e2001290300220342ffffffffffffff03837c220442137c4233882001290308220542ffffffffffffff038320034233887c22037c4233882001290310220642ffffffffffffff038320054233887c22057c4233882001290318220742ffffffffffffff038320064233887c22067c423388200242ffffffffffffff038320074233887c22077c42338842137e20047c22023c0000200020024228883c0005200020024220883c0004200020024218883c0003200020024210883c0002200020024208883c00012000200242338820037c22044225883c000b20002004421d883c000a200020044215883c000920002004420d883c0008200020044205883c00072000200442338820057c2203422a883c0012200020034222883c001120002003421a883c0010200020034212883c000f20002003420a883c000e200020034202883c000d2000200442ffffffffffffff038322044203862002423088420783843c00062000200342338820067c2202421f883c0017200020024227883c0018200020024217883c001620002002420f883c0015200020024207883c00142000200342ffffffffffffff038322054206862004422d88843c000c2000200242338820077c22034204883c001a20002003420c883c001b200020034214883c001c20002003421c883c001d200020034224883c001e2000200242ffffffffffffff038322024201862005423288843c00132000200342ffffffffffffff03832203422c883c001f200020034204862002422f88843c00190b7101027f230041c0006b2202240020022000106b200241206a2001106b41002101410121000340200241206a20016a2d0000200220016a2d0000732203410020036b72417f7341800171410776106d2000712100200141016a22014120470d000b2000106d2101200241c0006a240020010b1501017f230041106b220120003a000f20012d000f0bd00702017f147e230041f0016b2203240020012903202104200129031821052001290310210620012903082107200129030021080340200341b0016a200842002008420010e80820034180016a20074200200442137e2209420010e808200341c0006a200542137e220a42002006420010e808200341e0016a200a42002005420010e808200341f0006a200842002007420010e808200341306a200642002009420010e808200341e0006a200742002007420010e808200341206a200842002006420010e808200341d0016a200a42002004420010e808200341c0016a200942002004420010e808200341a0016a200842002005420010e808200341106a200742002006420010e8082003200642002006420010e80820034190016a200842002004420010e808200341d0006a200742002005420010e808200329039001220b20032903507c2206420186220c20032903007c220720032903a001220d20032903107c2208420186220e20032903c0017c22042003290320220f20032903d0017c2205420186221020032903607c22092003290370221120032903307c220a420186221220032903e0017c2213200329038001221420032903407c2215420186221620032903b0017c221742338820034180016a41086a290300200341c0006a41086a2903007c2015201454ad7c4201862015423f8884200341b0016a41086a2903007c2017201654ad7c420d86847c2215423388200341f0006a41086a290300200341306a41086a2903007c200a201154ad7c420186200a423f8884200341e0016a41086a2903007c2013201254ad7c2015201354ad7c420d86847c220a423388200341206a41086a290300200341d0016a41086a2903007c2005200f54ad7c4201862005423f8884200341e0006a41086a2903007c2009201054ad7c200a200954ad7c420d86847c2205423388200341a0016a41086a290300200341106a41086a2903007c2008200d54ad7c4201862008423f8884200341c0016a41086a2903007c2004200e54ad7c2005200454ad7c420d86847c220442338820034190016a41086a290300200341d0006a41086a2903007c2006200b54ad7c4201862006423f8884200341086a2903007c2007200c54ad7c2004200754ad7c420d868442137e201742ffffffffffffff03837c220642ffffffffffffff038321082006423388201542ffffffffffffff03837c2107200442ffffffffffffff03832104200542ffffffffffffff03832105200a42ffffffffffffff038321062002417f6a22020d000b2000200437032020002005370318200020063703102000200737030820002008370300200341f0016a24000bbbd40103017f297e037f230041d0c1006b22032400200341a8c1006a20024101106e200341a0386a20022903002204420020032903a8412205420010e808200341b0396a20032903c841220642002002290308220742137e2208420010e808200341f0396a20032903c041220942002002290310220a42137e220b420010e808200341b03a6a20032903b841220c42002002290318220d42137e220e420010e808200341f03a6a20032903b041220f42002002290320221042137e2211420010e808200341f0386a200f42002004420010e808200341b0386a200542002007420010e808200341c0396a20064200200b420010e808200341803a6a20094200200e420010e808200341c03a6a200c42002011420010e80820034180396a200c42002004420010e808200341803b6a200f42002007420010e808200341c0386a20054200200a420010e808200341d0396a20064200200e420010e808200341903a6a200942002011420010e80820034190396a200942002004420010e808200341d03a6a200c42002007420010e808200341903b6a200f4200200a420010e808200341d0386a20054200200d420010e808200341e0396a200642002011420010e808200341a0396a200642002004420010e808200341a03a6a200942002007420010e808200341e03a6a200c4200200a420010e808200341a03b6a200f4200200d420010e808200341e0386a200542002010420010e808200320032903d039221220032903c0387c220520032903903a7c22062003290380397c220920032903803b7c220c20032903c039221320032903b0387c220f20032903803a7c221420032903c03a7c221520032903f0387c221620032903b039221720032903a0387c221820032903f0397c221920032903b03a7c221a20032903f03a7c221b423388200341b0396a41086a290300200341a0386a41086a2903007c2018201754ad7c200341f0396a41086a2903007c2019201854ad7c200341b03a6a41086a2903007c201a201954ad7c200341f03a6a41086a2903007c201b201a54ad7c420d86847c2219423388200341c0396a41086a290300200341b0386a41086a2903007c200f201354ad7c200341803a6a41086a2903007c2014200f54ad7c200341c03a6a41086a2903007c2015201454ad7c200341f0386a41086a2903007c2016201554ad7c2019201654ad7c420d86847c220f42ffffffffffffff038322143703c03b200320032903e039221720032903d0387c22152003290390397c221620032903d03a7c221a20032903903b7c2213200f423388200341d0396a41086a290300200341c0386a41086a2903007c2005201254ad7c200341903a6a41086a2903007c2006200554ad7c20034180396a41086a2903007c2009200654ad7c200341803b6a41086a2903007c200c200954ad7c200f200c54ad7c420d86847c220542ffffffffffffff038322183703c83b200320032903a039221220032903e0387c220620032903a03a7c220920032903e03a7c220c20032903a03b7c220f2005423388200341e0396a41086a290300200341d0386a41086a2903007c2015201754ad7c20034190396a41086a2903007c2016201554ad7c200341d03a6a41086a2903007c201a201654ad7c200341903b6a41086a2903007c2013201a54ad7c2005201354ad7c420d86847c220542ffffffffffffff0383221a3703d03b20032005423388200341a0396a41086a290300200341e0386a41086a2903007c2006201254ad7c200341a03a6a41086a2903007c2009200654ad7c200341e03a6a41086a2903007c200c200954ad7c200341a03b6a41086a2903007c200f200c54ad7c2005200f54ad7c420d868442137e201b42ffffffffffffff03837c220542ffffffffffffff0383220c3703b03b20032005423388201942ffffffffffffff03837c220f3703b83b200341a8c1006a200341b03b6a4101106e20034190356a20032903a841220542002004420010e808200341e0356a20032903c841220642002008420010e808200341b0366a20032903c04122094200200b420010e80820034180376a20032903b84122154200200e420010e808200341d0376a20032903b041221642002011420010e808200341e0376a201642002004420010e808200341a0356a200542002007420010e808200341f0356a20064200200b420010e808200341c0366a20094200200e420010e80820034190376a201542002011420010e808200341a0376a201542002004420010e808200341f0376a201642002007420010e808200341b0356a20054200200a420010e80820034180366a20064200200e420010e808200341d0366a200942002011420010e808200341e0366a200942002004420010e808200341b0376a201542002007420010e80820034180386a20164200200a420010e808200341c0356a20054200200d420010e80820034190366a200642002011420010e808200341a0366a200642002004420010e808200341f0366a200942002007420010e808200341c0376a20154200200a420010e80820034190386a20164200200d420010e808200341d0356a200542002010420010e808200341800d6a200c420020012903002211420010e80820034190346a200f42137e42002001290320220e420010e808200341d0336a200129031822054200201442137e220b420010e80820034190336a200129031022064200201842137e2216420010e808200341c0326a200129030822094200201a42137e2215420010e808200341f00c6a20094200200c420010e80820034180356a200f42002011420010e80820034180346a200e4200200b420010e808200341c0336a200542002016420010e80820034180336a200642002015420010e808200341e00c6a200c42002006420010e808200341b0326a200f42002009420010e808200341f0346a201142002014420010e808200341f0336a200e42002016420010e808200341b0336a200542002015420010e808200341800c6a200c42002005420010e808200341f0326a200f42002006420010e808200341a0326a200942002014420010e808200341e0346a201142002018420010e808200341e0336a20154200200e420010e808200341a00b6a200c4200200e420010e808200341a0336a200f42002005420010e808200341e0326a200642002014420010e80820034190326a200942002018420010e808200341d0346a201a42002011420010e80820034180306a20032903a036221c20032903d0357c220c20032903f0367c220f20032903c0377c22142003290390387c2215200329039036221d20032903c0357c221620032903e0367c220b20032903b0377c22182003290380387c2219200329038036221e20032903b0357c221a20032903d0367c221b20032903a0377c221320032903f0377c220820032903f035221f20032903a0357c221220032903c0367c22172003290390377c222020032903e0377c222120032903e03522222003290390357c222320032903b0367c22242003290380377c222520032903d0377c2226423388200341e0356a41086a29030020034190356a41086a2903007c2023202254ad7c200341b0366a41086a2903007c2024202354ad7c20034180376a41086a2903007c2025202454ad7c200341d0376a41086a2903007c2026202554ad7c420d86847c2223423388200341f0356a41086a290300200341a0356a41086a2903007c2012201f54ad7c200341c0366a41086a2903007c2017201254ad7c20034190376a41086a2903007c2020201754ad7c200341e0376a41086a2903007c2021202054ad7c2023202154ad7c420d86847c221242338820034180366a41086a290300200341b0356a41086a2903007c201a201e54ad7c200341d0366a41086a2903007c201b201a54ad7c200341a0376a41086a2903007c2013201b54ad7c200341f0376a41086a2903007c2008201354ad7c2012200854ad7c420d86847c221a42338820034190366a41086a290300200341c0356a41086a2903007c2016201d54ad7c200341e0366a41086a2903007c200b201654ad7c200341b0376a41086a2903007c2018200b54ad7c20034180386a41086a2903007c2019201854ad7c201a201954ad7c420d86847c2216423388200341a0366a41086a290300200341d0356a41086a2903007c200c201c54ad7c200341f0366a41086a2903007c200f200c54ad7c200341c0376a41086a2903007c2014200f54ad7c20034190386a41086a2903007c2015201454ad7c2016201554ad7c420d868442137e202642ffffffffffffff03837c220f42ffffffffffffff0383220c42002011420010e808200341d0306a200f423388202342ffffffffffffff03837c220f42137e4200200e420010e808200341f0306a201242ffffffffffffff0383221442137e221942002005420010e808200341a0316a201a42ffffffffffffff0383220b42137e221842002006420010e808200341e0316a201642ffffffffffffff0383221642137e221542002009420010e808200341f02f6a200c42002009420010e808200341c0306a200f42002011420010e808200341e0306a20194200200e420010e80820034190316a201842002005420010e808200341d0316a201542002006420010e808200341e02f6a200c42002006420010e808200341b0306a200f42002009420010e808200341c0346a201442002011420010e80820034180316a20184200200e420010e808200341c0316a201542002005420010e808200341d02f6a200c42002005420010e808200341a0306a200f42002006420010e80820034180326a201442002009420010e808200341b0346a200b42002011420010e808200341b0316a20154200200e420010e808200341c02f6a200c4200200e420010e80820034190306a200f42002005420010e808200341d0326a201442002006420010e808200341f0316a200b42002009420010e808200341a0346a201642002011420010e8082003200329038031221220032903c0347c220f20032903c0317c221420032903e02f7c221520032903b0307c2216200329039031221720032903e0307c220c20032903d0317c220b20032903f02f7c221820032903c0307c221920032903a031222020032903f0307c221a20032903e0317c221b2003290380307c221320032903d0307c2208423388200341a0316a41086a290300200341f0306a41086a2903007c201a202054ad7c200341e0316a41086a2903007c201b201a54ad7c20034180306a41086a2903007c2013201b54ad7c200341d0306a41086a2903007c2008201354ad7c420d86847c221a42338820034190316a41086a290300200341e0306a41086a2903007c200c201754ad7c200341d0316a41086a2903007c200b200c54ad7c200341f02f6a41086a2903007c2018200b54ad7c200341c0306a41086a2903007c2019201854ad7c201a201954ad7c420d86847c220b42ffffffffffffff0383220c3703e83b200320032903b03422172003290380327c221820032903b0317c221920032903d02f7c221b20032903a0307c2213200b42338820034180316a41086a290300200341c0346a41086a2903007c200f201254ad7c200341c0316a41086a2903007c2014200f54ad7c200341e02f6a41086a2903007c2015201454ad7c200341b0306a41086a2903007c2016201554ad7c200b201654ad7c420d86847c221442ffffffffffffff0383220f3703f03b200320032903f031222020032903d0327c221520032903a0347c221620032903c02f7c220b2003290390307c22122014423388200341b0346a41086a29030020034180326a41086a2903007c2018201754ad7c200341b0316a41086a2903007c2019201854ad7c200341d02f6a41086a2903007c201b201954ad7c200341a0306a41086a2903007c2013201b54ad7c2014201354ad7c420d86847c221842ffffffffffffff038322143703f83b20032018423388200341f0316a41086a290300200341d0326a41086a2903007c2015202054ad7c200341a0346a41086a2903007c2016201554ad7c200341c02f6a41086a2903007c200b201654ad7c20034190306a41086a2903007c2012200b54ad7c2018201254ad7c420d868442137e200842ffffffffffffff03837c221642ffffffffffffff038322153703d83b20032016423388201a42ffffffffffffff03837c22163703e03b200341803c6a200341d83b6a4101106e200341a8c1006a200341803c6a4101106e200341a83c6a200341a8c1006a4101106e200341b02f6a20032903a83c220b42002015420010e808200341b02c6a2014420020032903b03c221842137e420010e808200341902d6a200f420020032903b83c221942137e2208420010e808200341f02d6a200c420020032903c03c221b42137e2213420010e808200341d02e6a2016420020032903c83c221242137e221a420010e808200341a02f6a20164200200b420010e808200341f02c6a201542002018420010e808200341802d6a201442002008420010e808200341e02d6a200f42002013420010e808200341c02e6a200c4200201a420010e808200341902f6a200c4200200b420010e808200341e02c6a201642002018420010e808200341c02d6a201542002019420010e808200341d02d6a201442002013420010e808200341b02e6a200f4200201a420010e808200341802f6a200f4200200b420010e808200341d02c6a200c42002018420010e808200341b02d6a201642002019420010e808200341902e6a20154200201b420010e808200341a02e6a20144200201a420010e808200341f02e6a20144200200b420010e808200341c02c6a200f42002018420010e808200341a02d6a200c42002019420010e808200341802e6a20164200201b420010e808200341e02e6a201542002012420010e808200341e0296a20032903f02e222720032903e02e7c220b20032903c02c7c221820032903a02d7c221920032903802e7c221a20032903a02e222820032903902e7c221b20032903802f7c221320032903d02c7c220820032903b02d7c221220032903d02d222920032903c02d7c221720032903b02e7c222020032903902f7c222120032903e02c7c222320032903802d222a20032903f02c7c222420032903e02d7c222520032903c02e7c222620032903a02f7c221c20032903b02c222b20032903b02f7c221d20032903902d7c221e20032903f02d7c221f20032903d02e7c2222423388200341b02c6a41086a290300200341b02f6a41086a2903007c201d202b54ad7c200341902d6a41086a2903007c201e201d54ad7c200341f02d6a41086a2903007c201f201e54ad7c200341d02e6a41086a2903007c2022201f54ad7c420d86847c221d423388200341802d6a41086a290300200341f02c6a41086a2903007c2024202a54ad7c200341e02d6a41086a2903007c2025202454ad7c200341c02e6a41086a2903007c2026202554ad7c200341a02f6a41086a2903007c201c202654ad7c201d201c54ad7c420d86847c2224423388200341d02d6a41086a290300200341c02d6a41086a2903007c2017202954ad7c200341b02e6a41086a2903007c2020201754ad7c200341902f6a41086a2903007c2021202054ad7c200341e02c6a41086a2903007c2023202154ad7c2024202354ad7c420d86847c2217423388200341a02e6a41086a290300200341902e6a41086a2903007c201b202854ad7c200341802f6a41086a2903007c2013201b54ad7c200341d02c6a41086a2903007c2008201354ad7c200341b02d6a41086a2903007c2012200854ad7c2017201254ad7c420d86847c221b423388200341f02e6a41086a290300200341e02e6a41086a2903007c200b202754ad7c200341c02c6a41086a2903007c2018200b54ad7c200341a02d6a41086a2903007c2019201854ad7c200341802e6a41086a2903007c201a201954ad7c201b201a54ad7c420d868442137e202242ffffffffffffff03837c221842ffffffffffffff0383220b420020032903803c2213420010e808200341b02a6a2018423388201d42ffffffffffffff03837c221842137e420020032903a03c2208420010e808200341d02a6a202442ffffffffffffff0383221942137e2224420020032903983c2212420010e808200341802b6a201742ffffffffffffff0383221a42137e2223420020032903903c2217420010e808200341c02b6a201b42ffffffffffffff0383221b42137e2221420020032903883c2220420010e808200341d0296a200b42002020420010e808200341a02a6a201842002013420010e808200341c02a6a202442002008420010e808200341f02a6a202342002012420010e808200341b02b6a202142002017420010e808200341c0296a200b42002017420010e808200341902a6a201842002020420010e808200341d02b6a201942002013420010e808200341e02a6a202342002008420010e808200341a02b6a202142002012420010e808200341b0296a200b42002012420010e808200341802a6a201842002017420010e808200341e02b6a201942002020420010e808200341802c6a201a42002013420010e808200341902b6a202142002008420010e808200341a0296a200b42002008420010e808200341f0296a201842002012420010e808200341f02b6a201942002017420010e808200341902c6a201a42002020420010e808200341a02c6a201b42002013420010e808200320032903e02a221e20032903d02b7c221320032903a02b7c220820032903c0297c221220032903902a7c221720032903f02a221f20032903c02a7c222020032903b02b7c222120032903d0297c222320032903a02a7c222420032903802b222220032903d02a7c222520032903c02b7c222620032903e0297c221c20032903b02a7c221d423388200341802b6a41086a290300200341d02a6a41086a2903007c2025202254ad7c200341c02b6a41086a2903007c2026202554ad7c200341e0296a41086a2903007c201c202654ad7c200341b02a6a41086a2903007c201d201c54ad7c420d86847c2225423388200341f02a6a41086a290300200341c02a6a41086a2903007c2020201f54ad7c200341b02b6a41086a2903007c2021202054ad7c200341d0296a41086a2903007c2023202154ad7c200341a02a6a41086a2903007c2024202354ad7c2025202454ad7c420d86847c222042ffffffffffffff03833703e03c200320032903802c221c20032903e02b7c222120032903902b7c222320032903b0297c222420032903802a7c22262020423388200341e02a6a41086a290300200341d02b6a41086a2903007c2013201e54ad7c200341a02b6a41086a2903007c2008201354ad7c200341c0296a41086a2903007c2012200854ad7c200341902a6a41086a2903007c2017201254ad7c2020201754ad7c420d86847c221342ffffffffffffff03833703e83c200320032903902c221e20032903f02b7c220820032903a02c7c221220032903a0297c221720032903f0297c22202013423388200341802c6a41086a290300200341e02b6a41086a2903007c2021201c54ad7c200341902b6a41086a2903007c2023202154ad7c200341b0296a41086a2903007c2024202354ad7c200341802a6a41086a2903007c2026202454ad7c2013202654ad7c420d86847c221342ffffffffffffff03833703f03c20032013423388200341902c6a41086a290300200341f02b6a41086a2903007c2008201e54ad7c200341a02c6a41086a2903007c2012200854ad7c200341a0296a41086a2903007c2017201254ad7c200341f0296a41086a2903007c2020201754ad7c2013202054ad7c420d868442137e201d42ffffffffffffff03837c221342ffffffffffffff03833703d03c20032013423388202542ffffffffffffff03837c3703d83c200341f83c6a200341d03c6a4101106e20034190296a200b420020032903f83c2213420010e80820034190266a201b420020032903803d220842137e420010e808200341f0266a20032903883d221242137e22234200201a420010e808200341d0276a20032903903d222042137e222142002019420010e808200341b0286a2018420020032903983d222442137e2217420010e80820034180296a201842002013420010e808200341d0266a200b42002008420010e808200341e0266a201b42002023420010e808200341c0276a20214200201a420010e808200341a0286a201742002019420010e808200341f0286a201342002019420010e808200341c0266a201842002008420010e808200341a0276a200b42002012420010e808200341b0276a20214200201b420010e80820034190286a20174200201a420010e808200341e0286a20134200201a420010e808200341b0266a200842002019420010e80820034190276a201842002012420010e808200341f0276a200b42002020420010e80820034180286a20174200201b420010e808200341d0286a20134200201b420010e808200341a0266a20084200201a420010e80820034180276a201242002019420010e808200341e0276a201842002020420010e808200341c0286a200b42002024420010e8082003200329039028222520032903b0277c220b20032903f0287c221820032903a0277c221a20032903c0267c221b20032903c027222420032903e0267c221920032903a0287c221320032903d0267c22082003290380297c221220032903f02622262003290390267c221720032903d0277c22202003290390297c222120032903b0287c2223423388200341f0266a41086a29030020034190266a41086a2903007c2017202654ad7c200341d0276a41086a2903007c2020201754ad7c20034190296a41086a2903007c2021202054ad7c200341b0286a41086a2903007c2023202154ad7c420d86847c2220423388200341c0276a41086a290300200341e0266a41086a2903007c2019202454ad7c200341a0286a41086a2903007c2013201954ad7c200341d0266a41086a2903007c2008201354ad7c20034180296a41086a2903007c2012200854ad7c2020201254ad7c420d86847c221342ffffffffffffff038322193703b03d2003200329038028222620032903b0267c220820032903e0287c221220032903f0277c22212003290390277c2224201342338820034190286a41086a290300200341b0276a41086a2903007c200b202554ad7c200341f0286a41086a2903007c2018200b54ad7c200341a0276a41086a2903007c201a201854ad7c200341c0266a41086a2903007c201b201a54ad7c2013201b54ad7c420d86847c220b42ffffffffffffff038322173703b83d2003200329038027222520032903a0267c221820032903d0287c221a20032903c0287c221b20032903e0277c2213200b42338820034180286a41086a290300200341b0266a41086a2903007c2008202654ad7c200341e0286a41086a2903007c2012200854ad7c200341f0276a41086a2903007c2021201254ad7c20034190276a41086a2903007c2024202154ad7c200b202454ad7c420d86847c220b42ffffffffffffff038322213703c03d2003200b42338820034180276a41086a290300200341a0266a41086a2903007c2018202554ad7c200341d0286a41086a2903007c201a201854ad7c200341c0286a41086a2903007c201b201a54ad7c200341e0276a41086a2903007c2013201b54ad7c200b201354ad7c420d868442137e202342ffffffffffffff03837c221842ffffffffffffff0383220b3703a03d20032018423388202042ffffffffffffff03837c22183703a83d200341c83d6a200341a03d6a4105106e200341c0236a200b420020032903c83d221a420010e808200341c0246a201842137e420020032903e83d221b420010e80820034180256a201942137e2224420020032903e03d2213420010e808200341c0256a201742137e2223420020032903d83d2208420010e80820034180266a202142137e2220420020032903d03d2212420010e808200341b0236a200b42002012420010e80820034180246a20184200201a420010e808200341b0246a20244200201b420010e808200341f0246a202342002013420010e808200341b0256a202042002008420010e808200341a0236a200b42002008420010e808200341f0256a201842002012420010e808200341f0236a20194200201a420010e808200341a0246a20234200201b420010e808200341e0246a202042002013420010e80820034190236a200b42002013420010e808200341a0256a201842002008420010e808200341e0256a201942002012420010e808200341e0236a20174200201a420010e80820034190246a20204200201b420010e80820034180236a200b4200201b420010e808200341d0246a201842002013420010e80820034190256a201942002008420010e808200341d0256a201742002012420010e808200341d0236a20214200201a420010e808200320032903a024222420032903f0237c220b20032903e0247c221820032903a0237c221a20032903f0257c221b20032903f024222520032903b0247c221920032903b0257c221320032903b0237c22082003290380247c221220032903c02522262003290380257c22172003290380267c222020032903c0237c222120032903c0247c2223423388200341c0256a41086a29030020034180256a41086a2903007c2017202654ad7c20034180266a41086a2903007c2020201754ad7c200341c0236a41086a2903007c2021202054ad7c200341c0246a41086a2903007c2023202154ad7c420d86847c2217423388200341f0246a41086a290300200341b0246a41086a2903007c2019202554ad7c200341b0256a41086a2903007c2013201954ad7c200341b0236a41086a2903007c2008201354ad7c20034180246a41086a2903007c2012200854ad7c2017201254ad7c420d86847c221342ffffffffffffff038322193703803e200320032903e023222520032903e0257c22082003290390247c22122003290390237c222020032903a0257c22212013423388200341a0246a41086a290300200341f0236a41086a2903007c200b202454ad7c200341e0246a41086a2903007c2018200b54ad7c200341a0236a41086a2903007c201a201854ad7c200341f0256a41086a2903007c201b201a54ad7c2013201b54ad7c420d86847c220b42ffffffffffffff0383221b3703883e200320032903d025221c2003290390257c221820032903d0237c221a2003290380237c221320032903d0247c2224200b423388200341e0236a41086a290300200341e0256a41086a2903007c2008202554ad7c20034190246a41086a2903007c2012200854ad7c20034190236a41086a2903007c2020201254ad7c200341a0256a41086a2903007c2021202054ad7c200b202154ad7c420d86847c220b42ffffffffffffff038322263703903e2003200b423388200341d0256a41086a29030020034190256a41086a2903007c2018201c54ad7c200341d0236a41086a2903007c201a201854ad7c20034180236a41086a2903007c2013201a54ad7c200341d0246a41086a2903007c2024201354ad7c200b202454ad7c420d868442137e202342ffffffffffffff03837c221842ffffffffffffff0383220b3703f03d20032018423388201742ffffffffffffff03837c22183703f83d200341983e6a200341f03d6a410a106e200341b0206a200b420020032903983e2208420010e80820034180216a201842137e2228420020032903b83e2212420010e808200341d0216a201942137e221c420020032903b03e2217420010e808200341a0226a201b42137e2213420020032903a83e2220420010e808200341f0226a202642137e221a420020032903a03e2221420010e808200341e0226a200b42002021420010e808200341a0206a201842002008420010e808200341f0206a201c42002012420010e808200341c0216a201342002017420010e80820034190226a201a42002020420010e80820034180226a200b42002020420010e808200341d0226a201842002021420010e80820034190206a201942002008420010e808200341e0206a201342002012420010e808200341b0216a201a42002017420010e808200341a0216a200b42002017420010e808200341f0216a201842002020420010e808200341c0226a201942002021420010e80820034180206a201b42002008420010e808200341d0206a201a42002012420010e808200341c0206a200b42002012420010e80820034190216a201842002017420010e808200341e0216a201942002020420010e808200341b0226a201b42002021420010e808200341f01f6a202642002008420010e808200320032903e02022292003290390207c220820032903b0217c22122003290380227c222020032903d0227c222120032903c021222720032903f0207c22172003290390227c222320032903e0227c222420032903a0207c222520032903a022222a20032903d0217c221d20032903f0227c221e20032903b0207c221f2003290380217c2222423388200341a0226a41086a290300200341d0216a41086a2903007c201d202a54ad7c200341f0226a41086a2903007c201e201d54ad7c200341b0206a41086a2903007c201f201e54ad7c20034180216a41086a2903007c2022201f54ad7c420d86847c221e423388200341c0216a41086a290300200341f0206a41086a2903007c2017202754ad7c20034190226a41086a2903007c2023201754ad7c200341e0226a41086a2903007c2024202354ad7c200341a0206a41086a2903007c2025202454ad7c201e202554ad7c420d86847c222342ffffffffffffff038322173703d03e2003200329038020222a20032903c0227c222420032903d0207c222520032903a0217c221f20032903f0217c22272023423388200341e0206a41086a29030020034190206a41086a2903007c2008202954ad7c200341b0216a41086a2903007c2012200854ad7c20034180226a41086a2903007c2020201254ad7c200341d0226a41086a2903007c2021202054ad7c2023202154ad7c420d86847c220842ffffffffffffff0383221d3703d83e200320032903b022222920032903e0217c221220032903f01f7c222020032903c0207c22212003290390217c2223200842338820034180206a41086a290300200341c0226a41086a2903007c2024202a54ad7c200341d0206a41086a2903007c2025202454ad7c200341a0216a41086a2903007c201f202554ad7c200341f0216a41086a2903007c2027201f54ad7c2008202754ad7c420d86847c220842ffffffffffffff0383221f3703e03e20032008423388200341b0226a41086a290300200341e0216a41086a2903007c2012202954ad7c200341f01f6a41086a2903007c2020201254ad7c200341c0206a41086a2903007c2021202054ad7c20034190216a41086a2903007c2023202154ad7c2008202354ad7c420d868442137e202242ffffffffffffff03837c221242ffffffffffffff038322083703c03e20032012423388201e42ffffffffffffff03837c22123703c83e200341e83e6a200341c03e6a4114106e200341a01d6a2008420020032903e83e2220420010e808200341f01d6a201242137e420020032903883f2221420010e808200341c01e6a201742137e2227420020032903803f2223420010e808200341901f6a201d42137e2222420020032903f83e2224420010e808200341e01f6a201f42137e221e420020032903f03e2225420010e808200341d01f6a200842002025420010e808200341901d6a201242002020420010e808200341e01d6a202742002021420010e808200341b01e6a202242002023420010e808200341801f6a201e42002024420010e808200341f01e6a200842002024420010e808200341c01f6a201242002025420010e808200341801d6a201742002020420010e808200341d01d6a202242002021420010e808200341a01e6a201e42002023420010e808200341901e6a200842002023420010e808200341e01e6a201242002024420010e808200341b01f6a201742002025420010e808200341f01c6a201d42002020420010e808200341c01d6a201e42002021420010e808200341b01d6a200842002021420010e808200341801e6a201242002023420010e808200341d01e6a201742002024420010e808200341a01f6a201d42002025420010e808200341e01c6a201f42002020420010e808200320032903d01d222720032903801d7c220820032903a01e7c221220032903f01e7c221720032903c01f7c222020032903b01e222920032903e01d7c222120032903801f7c222320032903d01f7c222420032903901d7c222520032903901f222a20032903c01e7c221d20032903e01f7c221e20032903a01d7c221f20032903f01d7c2222423388200341901f6a41086a290300200341c01e6a41086a2903007c201d202a54ad7c200341e01f6a41086a2903007c201e201d54ad7c200341a01d6a41086a2903007c201f201e54ad7c200341f01d6a41086a2903007c2022201f54ad7c420d86847c221d423388200341b01e6a41086a290300200341e01d6a41086a2903007c2021202954ad7c200341801f6a41086a2903007c2023202154ad7c200341d01f6a41086a2903007c2024202354ad7c200341901d6a41086a2903007c2025202454ad7c201d202554ad7c420d86847c222142ffffffffffffff03833703a03f200320032903f01c221f20032903b01f7c222320032903c01d7c222420032903901e7c222520032903e01e7c221e2021423388200341d01d6a41086a290300200341801d6a41086a2903007c2008202754ad7c200341a01e6a41086a2903007c2012200854ad7c200341f01e6a41086a2903007c2017201254ad7c200341c01f6a41086a2903007c2020201754ad7c2021202054ad7c420d86847c220842ffffffffffffff03833703a83f200320032903a01f222720032903d01e7c221220032903e01c7c221720032903b01d7c222020032903801e7c22212008423388200341f01c6a41086a290300200341b01f6a41086a2903007c2023201f54ad7c200341c01d6a41086a2903007c2024202354ad7c200341901e6a41086a2903007c2025202454ad7c200341e01e6a41086a2903007c201e202554ad7c2008201e54ad7c420d86847c220842ffffffffffffff03833703b03f20032008423388200341a01f6a41086a290300200341d01e6a41086a2903007c2012202754ad7c200341e01c6a41086a2903007c2017201254ad7c200341b01d6a41086a2903007c2020201754ad7c200341801e6a41086a2903007c2021202054ad7c2008202154ad7c420d868442137e202242ffffffffffffff03837c220842ffffffffffffff03833703903f20032008423388201d42ffffffffffffff03837c3703983f200341b83f6a200341903f6a410a106e200341901a6a200b420020032903b83f2208420010e808200341e01a6a2028420020032903d83f2212420010e808200341b01b6a20032903d03f22174200201c420010e808200341801c6a20032903c83f222042002013420010e808200341d01c6a20032903c03f22214200201a420010e808200341c01c6a20214200200b420010e808200341801a6a201842002008420010e808200341d01a6a20124200201c420010e808200341a01b6a201742002013420010e808200341f01b6a20204200201a420010e808200341e01b6a20204200200b420010e808200341b01c6a202142002018420010e808200341f0196a200842002019420010e808200341c01a6a201242002013420010e808200341901b6a20174200201a420010e808200341801b6a20174200200b420010e808200341d01b6a202042002018420010e808200341a01c6a202142002019420010e808200341e0196a20084200201b420010e808200341b01a6a20124200201a420010e808200341a01a6a20124200200b420010e808200341f01a6a201742002018420010e808200341c01b6a202042002019420010e808200341901c6a20214200201b420010e808200341d0196a200842002026420010e808200320032903c01a222420032903f0197c220b20032903901b7c221820032903e01b7c221a20032903b01c7c221b20032903801a222520032903d01a7c221920032903a01b7c221320032903f01b7c220820032903c01c7c221220032903b01b222620032903901a7c221720032903e01a7c222020032903801c7c222120032903d01c7c2223423388200341b01b6a41086a290300200341901a6a41086a2903007c2017202654ad7c200341e01a6a41086a2903007c2020201754ad7c200341801c6a41086a2903007c2021202054ad7c200341d01c6a41086a2903007c2023202154ad7c420d86847c2217423388200341801a6a41086a290300200341d01a6a41086a2903007c2019202554ad7c200341a01b6a41086a2903007c2013201954ad7c200341f01b6a41086a2903007c2008201354ad7c200341c01c6a41086a2903007c2012200854ad7c2017201254ad7c420d86847c221342ffffffffffffff038322193703f03f200320032903b01a222520032903e0197c220820032903801b7c221220032903d01b7c222020032903a01c7c22212013423388200341c01a6a41086a290300200341f0196a41086a2903007c200b202454ad7c200341901b6a41086a2903007c2018200b54ad7c200341e01b6a41086a2903007c201a201854ad7c200341b01c6a41086a2903007c201b201a54ad7c2013201b54ad7c420d86847c220b42ffffffffffffff0383221b3703f83f200320032903a01a221c20032903d0197c221820032903f01a7c221a20032903c01b7c221320032903901c7c2224200b423388200341b01a6a41086a290300200341e0196a41086a2903007c2008202554ad7c200341801b6a41086a2903007c2012200854ad7c200341d01b6a41086a2903007c2020201254ad7c200341a01c6a41086a2903007c2021202054ad7c200b202154ad7c420d86847c220b42ffffffffffffff03832226370380402003200b423388200341a01a6a41086a290300200341d0196a41086a2903007c2018201c54ad7c200341f01a6a41086a2903007c201a201854ad7c200341c01b6a41086a2903007c2013201a54ad7c200341901c6a41086a2903007c2024201354ad7c200b202454ad7c420d868442137e202342ffffffffffffff03837c221842ffffffffffffff0383220b3703e03f20032018423388201742ffffffffffffff03837c22183703e83f20034188c0006a200341e03f6a4132106e20034180176a200b42002003290388402208420010e808200341d0176a201842137e2228420020032903a8402212420010e808200341a0186a201942137e221c420020032903a0402217420010e808200341f0186a201b42137e221342002003290398402220420010e808200341c0196a202642137e221a42002003290390402221420010e808200341b0196a200b42002021420010e808200341f0166a201842002008420010e808200341c0176a201c42002012420010e80820034190186a201342002017420010e808200341e0186a201a42002020420010e808200341d0186a200b42002020420010e808200341a0196a201842002021420010e808200341e0166a201942002008420010e808200341b0176a201342002012420010e80820034180186a201a42002017420010e808200341f0176a200b42002017420010e808200341c0186a201842002020420010e80820034190196a202142002019420010e808200341d0166a201b42002008420010e808200341a0176a201a42002012420010e80820034190176a200b42002012420010e808200341e0176a201842002017420010e808200341b0186a201942002020420010e80820034180196a201b42002021420010e808200341c0166a202642002008420010e808200320032903b017222920032903e0167c22082003290380187c221220032903d0187c222020032903a0197c2221200329039018222720032903c0177c221720032903e0187c222320032903b0197c222420032903f0167c222520032903f018222a20032903a0187c221d20032903c0197c221e2003290380177c221f20032903d0177c2222423388200341f0186a41086a290300200341a0186a41086a2903007c201d202a54ad7c200341c0196a41086a2903007c201e201d54ad7c20034180176a41086a2903007c201f201e54ad7c200341d0176a41086a2903007c2022201f54ad7c420d86847c221e42338820034190186a41086a290300200341c0176a41086a2903007c2017202754ad7c200341e0186a41086a2903007c2023201754ad7c200341b0196a41086a2903007c2024202354ad7c200341f0166a41086a2903007c2025202454ad7c201e202554ad7c420d86847c222342ffffffffffffff038322173703c040200320032903d016222a2003290390197c222420032903a0177c222520032903f0177c221f20032903c0187c22272023423388200341b0176a41086a290300200341e0166a41086a2903007c2008202954ad7c20034180186a41086a2903007c2012200854ad7c200341d0186a41086a2903007c2020201254ad7c200341a0196a41086a2903007c2021202054ad7c2023202154ad7c420d86847c220842ffffffffffffff0383221d3703c8402003200329038019222920032903b0187c221220032903c0167c22202003290390177c222120032903e0177c22232008423388200341d0166a41086a29030020034190196a41086a2903007c2024202a54ad7c200341a0176a41086a2903007c2025202454ad7c200341f0176a41086a2903007c201f202554ad7c200341c0186a41086a2903007c2027201f54ad7c2008202754ad7c420d86847c220842ffffffffffffff0383221f3703d0402003200842338820034180196a41086a290300200341b0186a41086a2903007c2012202954ad7c200341c0166a41086a2903007c2020201254ad7c20034190176a41086a2903007c2021202054ad7c200341e0176a41086a2903007c2023202154ad7c2008202354ad7c420d868442137e202242ffffffffffffff03837c221242ffffffffffffff038322083703b04020032012423388201e42ffffffffffffff03837c22123703b840200341d8c0006a200341b0c0006a41e400106e200341f0136a2008420020032903d8402220420010e808200341c0146a201242137e420020032903f8402221420010e80820034190156a201742137e2227420020032903f0402223420010e808200341e0156a201d42137e2222420020032903e8402224420010e808200341b0166a201f42137e221e420020032903e0402225420010e808200341a0166a200842002025420010e808200341e0136a201242002020420010e808200341b0146a202742002021420010e80820034180156a202242002023420010e808200341d0156a201e42002024420010e808200341c0156a200842002024420010e80820034190166a201242002025420010e808200341d0136a201742002020420010e808200341a0146a202242002021420010e808200341f0146a201e42002023420010e808200341e0146a200842002023420010e808200341b0156a201242002024420010e80820034180166a201742002025420010e808200341c0136a201d42002020420010e80820034190146a201e42002021420010e80820034180146a200842002021420010e808200341d0146a201242002023420010e808200341a0156a201742002024420010e808200341f0156a201d42002025420010e808200341b0136a201f42002020420010e808200320032903a014222720032903d0137c220820032903f0147c221220032903c0157c22172003290390167c2220200329038015222920032903b0147c222120032903d0157c222320032903a0167c222420032903e0137c222520032903e015222a2003290390157c221d20032903b0167c221e20032903f0137c221f20032903c0147c2222423388200341e0156a41086a29030020034190156a41086a2903007c201d202a54ad7c200341b0166a41086a2903007c201e201d54ad7c200341f0136a41086a2903007c201f201e54ad7c200341c0146a41086a2903007c2022201f54ad7c420d86847c221d42338820034180156a41086a290300200341b0146a41086a2903007c2021202954ad7c200341d0156a41086a2903007c2023202154ad7c200341a0166a41086a2903007c2024202354ad7c200341e0136a41086a2903007c2025202454ad7c201d202554ad7c420d86847c222142ffffffffffffff038337039041200320032903c013221f2003290380167c22232003290390147c222420032903e0147c222520032903b0157c221e2021423388200341a0146a41086a290300200341d0136a41086a2903007c2008202754ad7c200341f0146a41086a2903007c2012200854ad7c200341c0156a41086a2903007c2017201254ad7c20034190166a41086a2903007c2020201754ad7c2021202054ad7c420d86847c220842ffffffffffffff038337039841200320032903f015222720032903a0157c221220032903b0137c22172003290380147c222020032903d0147c22212008423388200341c0136a41086a29030020034180166a41086a2903007c2023201f54ad7c20034190146a41086a2903007c2024202354ad7c200341e0146a41086a2903007c2025202454ad7c200341b0156a41086a2903007c201e202554ad7c2008201e54ad7c420d86847c220842ffffffffffffff03833703a04120032008423388200341f0156a41086a290300200341a0156a41086a2903007c2012202754ad7c200341b0136a41086a2903007c2017201254ad7c20034180146a41086a2903007c2020201754ad7c200341d0146a41086a2903007c2021202054ad7c2008202154ad7c420d868442137e202242ffffffffffffff03837c220842ffffffffffffff03833703804120032008423388201d42ffffffffffffff03837c37038841200341a8c1006a20034180c1006a4132106e200341a0106a20032903a84122084200200b420010e808200341f0106a20032903c841221242002028420010e808200341c0116a20032903c04122174200201c420010e80820034190126a20032903b841222042002013420010e808200341e0126a20032903b04122214200201a420010e808200341f0126a20214200200b420010e808200341b0106a200842002018420010e80820034180116a20124200201c420010e808200341d0116a201742002013420010e808200341a0126a20204200201a420010e808200341b0126a20204200200b420010e80820034180136a202142002018420010e808200341c0106a200842002019420010e80820034190116a201242002013420010e808200341e0116a20174200201a420010e808200341f0116a20174200200b420010e808200341c0126a202042002018420010e80820034190136a202142002019420010e808200341d0106a20084200201b420010e808200341a0116a20124200201a420010e808200341b0116a20124200200b420010e80820034180126a201742002018420010e808200341d0126a202042002019420010e808200341a0136a20214200201b420010e808200341e0106a200842002026420010e8082003200329039011222420032903c0107c220b20032903e0117c221820032903b0127c22192003290380137c221a200329038011222520032903b0107c221b20032903d0117c221320032903a0127c220820032903f0127c221220032903f010222620032903a0107c221720032903c0117c22202003290390127c222120032903e0127c2223423388200341f0106a41086a290300200341a0106a41086a2903007c2017202654ad7c200341c0116a41086a2903007c2020201754ad7c20034190126a41086a2903007c2021202054ad7c200341e0126a41086a2903007c2023202154ad7c420d86847c221742338820034180116a41086a290300200341b0106a41086a2903007c201b202554ad7c200341d0116a41086a2903007c2013201b54ad7c200341a0126a41086a2903007c2008201354ad7c200341f0126a41086a2903007c2012200854ad7c2017201254ad7c420d86847c221b42ffffffffffffff038337039041200320032903a011222120032903d0107c221320032903f0117c220820032903c0127c22122003290390137c2220201b42338820034190116a41086a290300200341c0106a41086a2903007c200b202454ad7c200341e0116a41086a2903007c2018200b54ad7c200341b0126a41086a2903007c2019201854ad7c20034180136a41086a2903007c201a201954ad7c201b201a54ad7c420d86847c220b42ffffffffffffff038337039841200320032903b011222420032903e0107c22182003290380127c221920032903d0127c221a20032903a0137c221b200b423388200341a0116a41086a290300200341d0106a41086a2903007c2013202154ad7c200341f0116a41086a2903007c2008201354ad7c200341c0126a41086a2903007c2012200854ad7c20034190136a41086a2903007c2020201254ad7c200b202054ad7c420d86847c220b42ffffffffffffff03833703a0412003200b423388200341b0116a41086a290300200341e0106a41086a2903007c2018202454ad7c20034180126a41086a2903007c2019201854ad7c200341d0126a41086a2903007c201a201954ad7c200341a0136a41086a2903007c201b201a54ad7c200b201b54ad7c420d868442137e202342ffffffffffffff03837c220b42ffffffffffffff0383370380412003200b423388201742ffffffffffffff03837c37038841200341a8c1006a20034180c1006a4102106e200341900d6a2015420020032903a841220b420010e80820034190106a2014420020032903b041221842137e420010e808200341c00f6a200f420020032903b841221942137e2208420010e808200341f00e6a200c420020032903c041221b42137e2213420010e808200341a00e6a2016420020032903c841221242137e221a420010e808200341a00d6a20164200200b420010e80820034180106a201542002018420010e808200341b00f6a201442002008420010e808200341e00e6a200f42002013420010e808200341900e6a200c4200201a420010e808200341b00d6a200c4200200b420010e808200341f00f6a201642002018420010e808200341a00f6a201542002019420010e808200341d00e6a201442002013420010e808200341800e6a200f4200201a420010e808200341c00d6a200f4200200b420010e808200341e00f6a200c42002018420010e808200341900f6a201642002019420010e808200341c00e6a20154200201b420010e808200341f00d6a20144200201a420010e808200341d00d6a20144200200b420010e808200341d00f6a200f42002018420010e808200341800f6a200c42002019420010e808200341b00e6a20164200201b420010e808200341e00d6a201542002012420010e808200341f0096a20032903d00f221c20032903800f7c220c20032903d00d7c220f20032903e00d7c221420032903b00e7c221520032903c00d221d20032903e00f7c221620032903f00d7c220b20032903c00e7c221820032903900f7c221920032903800e221e20032903b00d7c221a20032903d00e7c221b20032903a00f7c221320032903f00f7c220820032903e00e221f20032903900e7c221220032903b00f7c22172003290380107c222020032903a00d7c222120032903c00f222220032903f00e7c22232003290390107c222420032903900d7c222520032903a00e7c2226423388200341c00f6a41086a290300200341f00e6a41086a2903007c2023202254ad7c20034190106a41086a2903007c2024202354ad7c200341900d6a41086a2903007c2025202454ad7c200341a00e6a41086a2903007c2026202554ad7c420d86847c2223423388200341e00e6a41086a290300200341900e6a41086a2903007c2012201f54ad7c200341b00f6a41086a2903007c2017201254ad7c20034180106a41086a2903007c2020201754ad7c200341a00d6a41086a2903007c2021202054ad7c2023202154ad7c420d86847c2212423388200341800e6a41086a290300200341b00d6a41086a2903007c201a201e54ad7c200341d00e6a41086a2903007c201b201a54ad7c200341a00f6a41086a2903007c2013201b54ad7c200341f00f6a41086a2903007c2008201354ad7c2012200854ad7c420d86847c221a423388200341c00d6a41086a290300200341e00f6a41086a2903007c2016201d54ad7c200341f00d6a41086a2903007c200b201654ad7c200341c00e6a41086a2903007c2018200b54ad7c200341900f6a41086a2903007c2019201854ad7c201a201954ad7c420d86847c2218423388200341d00f6a41086a290300200341800f6a41086a2903007c200c201c54ad7c200341d00d6a41086a2903007c200f200c54ad7c200341e00d6a41086a2903007c2014200f54ad7c200341b00e6a41086a2903007c2015201454ad7c2018201554ad7c420d868442137e202642ffffffffffffff03837c222742ffffffffffffff0383220c420020032903e032222820032903d0347c220f20032903a00b7c22142003290390327c221520032903a0337c221620032903e033222920032903e0347c220b20032903800c7c221920032903a0327c221b20032903f0327c221320032903f033222a20032903f0347c220820032903b0337c221720032903e00c7c222020032903b0327c222120032903c033222b2003290380347c22242003290380337c222520032903f00c7c22262003290380357c221c200329039033222c20032903d0337c221d20032903800d7c221e20032903c0327c221f2003290390347c222242338820034190336a41086a290300200341d0336a41086a2903007c201d202c54ad7c200341800d6a41086a2903007c201e201d54ad7c200341c0326a41086a2903007c201f201e54ad7c20034190346a41086a2903007c2022201f54ad7c420d86847c221d423388200341c0336a41086a29030020034180346a41086a2903007c2024202b54ad7c20034180336a41086a2903007c2025202454ad7c200341f00c6a41086a2903007c2026202554ad7c20034180356a41086a2903007c201c202654ad7c201d201c54ad7c420d86847c2224423388200341f0336a41086a290300200341f0346a41086a2903007c2008202a54ad7c200341b0336a41086a2903007c2017200854ad7c200341e00c6a41086a2903007c2020201754ad7c200341b0326a41086a2903007c2021202054ad7c2024202154ad7c420d86847c2208423388200341e0336a41086a290300200341e0346a41086a2903007c200b202954ad7c200341800c6a41086a2903007c2019200b54ad7c200341a0326a41086a2903007c201b201954ad7c200341f0326a41086a2903007c2013201b54ad7c2008201354ad7c420d86847c220b423388200341e0326a41086a290300200341d0346a41086a2903007c200f202854ad7c200341a00b6a41086a2903007c2014200f54ad7c20034190326a41086a2903007c2015201454ad7c200341a0336a41086a2903007c2016201554ad7c200b201654ad7c420d868442137e202242ffffffffffffff03837c221742ffffffffffffff0383220f420010e808200341900b6a200b42ffffffffffffff0383221442002027423388202342ffffffffffffff03837c221542137e420010e808200341f00b6a200842ffffffffffffff038322164200201242ffffffffffffff0383221942137e2208420010e808200341d00c6a202442ffffffffffffff0383220b4200201a42ffffffffffffff0383221b42137e2213420010e808200341c00a6a201842ffffffffffffff0383221242137e221a42002017423388201d42ffffffffffffff03837c2218420010e808200341b00a6a200c42002018420010e808200341e0096a20154200200f420010e808200341800b6a201442002008420010e808200341e00b6a201642002013420010e808200341c00c6a200b4200201a420010e808200341b00c6a200b4200200c420010e808200341a00a6a201542002018420010e808200341d0096a20194200200f420010e808200341f00a6a201442002013420010e808200341d00b6a20164200201a420010e808200341c00b6a20164200200c420010e808200341a00c6a200b42002015420010e808200341900a6a201942002018420010e808200341c0096a201b4200200f420010e808200341e00a6a20144200201a420010e808200341d00a6a20144200200c420010e808200341b00b6a201642002015420010e808200341900c6a200b42002019420010e808200341800a6a201b42002018420010e808200341b0096a20124200200f420010e808200320032903f00a221220032903d0097c220c20032903d00b7c220f20032903b00c7c221420032903a00a7c221520032903e00b221720032903800b7c221620032903c00c7c220b20032903b00a7c221820032903e0097c221920032903d00c222020032903f00b7c221a20032903c00a7c221b20032903f0097c221320032903900b7c2208423388200341d00c6a41086a290300200341f00b6a41086a2903007c201a202054ad7c200341c00a6a41086a2903007c201b201a54ad7c200341f0096a41086a2903007c2013201b54ad7c200341900b6a41086a2903007c2008201354ad7c221b420d86847c221a423388200341e00b6a41086a290300200341800b6a41086a2903007c2016201754ad7c200341c00c6a41086a2903007c200b201654ad7c200341b00a6a41086a2903007c2018200b54ad7c200341e0096a41086a2903007c2019201854ad7c201b4233887c201a201954ad7c2213420d86847c221642ffffffffffffff03833703e840200320032903c009221720032903900a7c220b20032903e00a7c221820032903c00b7c221920032903a00c7c221b2016423388200341f00a6a41086a290300200341d0096a41086a2903007c200c201254ad7c200341d00b6a41086a2903007c200f200c54ad7c200341b00c6a41086a2903007c2014200f54ad7c200341a00a6a41086a2903007c2015201454ad7c20134233887c2016201554ad7c2213420d86847c220c42ffffffffffffff03833703f040200320032903800a221220032903900c7c220f20032903b0097c221420032903d00a7c221520032903b00b7c2216200c423388200341c0096a41086a290300200341900a6a41086a2903007c200b201754ad7c200341e00a6a41086a2903007c2018200b54ad7c200341c00b6a41086a2903007c2019201854ad7c200341a00c6a41086a2903007c201b201954ad7c20134233887c200c201b54ad7c220b420d86847c220c42ffffffffffffff03833703f8402003200c423388200341800a6a41086a290300200341900c6a41086a2903007c200f201254ad7c200341b0096a41086a2903007c2014200f54ad7c200341d00a6a41086a2903007c2015201454ad7c200341b00b6a41086a2903007c2016201554ad7c200b4233887c200c201654ad7c420d868442137e200842ffffffffffffff03837c220c42ffffffffffffff03833703d8402003200c423388201a42ffffffffffffff03837c3703e040200341a8c1006a200341d8c0006a4101106e200341a0066a20032903a841220c42002004420010e808200341a0096a20032903b041220f42137e42002010420010e808200341d0086a20032903b841221442137e22184200200d420010e80820034180086a20032903c041221642137e220b4200200a420010e808200341b0076a20032903c841221942137e221542002007420010e808200341b0066a200c42002007420010e80820034190096a200f42002004420010e808200341c0086a201842002010420010e808200341f0076a200b4200200d420010e808200341a0076a20154200200a420010e808200341c0066a200c4200200a420010e80820034180096a200f42002007420010e808200341b0086a201442002004420010e808200341e0076a200b42002010420010e80820034190076a20154200200d420010e808200341d0066a200c4200200d420010e808200341f0086a200f4200200a420010e808200341a0086a201442002007420010e808200341d0076a201642002004420010e80820034180076a201542002010420010e808200341e0066a200c42002010420010e808200341e0086a200f4200200d420010e80820034190086a20144200200a420010e808200341c0076a201642002007420010e808200341f0066a201942002004420010e808200320032903b00822102003290380097c220420032903e0077c22072003290390077c220a20032903c0067c220c20032903c008221a2003290390097c220f20032903f0077c221420032903a0077c221520032903b0067c221620032903d008221b20032903a0097c220b2003290380087c220d20032903a0067c221820032903b0077c2219423388200341d0086a41086a290300200341a0096a41086a2903007c200b201b54ad7c20034180086a41086a2903007c200d200b54ad7c200341a0066a41086a2903007c2018200d54ad7c200341b0076a41086a2903007c2019201854ad7c420d86847c220b423388200341c0086a41086a29030020034190096a41086a2903007c200f201a54ad7c200341f0076a41086a2903007c2014200f54ad7c200341a0076a41086a2903007c2015201454ad7c200341b0066a41086a2903007c2016201554ad7c200b201654ad7c420d86847c220f42ffffffffffffff038337039041200320032903a008221820032903f0087c221420032903d0077c22152003290380077c221620032903d0067c220d200f423388200341b0086a41086a29030020034180096a41086a2903007c2004201054ad7c200341e0076a41086a2903007c2007200454ad7c20034190076a41086a2903007c200a200754ad7c200341c0066a41086a2903007c200c200a54ad7c200f200c54ad7c420d86847c220442ffffffffffffff0383370398412003200329039008221020032903e0087c220720032903c0077c220a20032903f0067c220c20032903e0067c220f2004423388200341a0086a41086a290300200341f0086a41086a2903007c2014201854ad7c200341d0076a41086a2903007c2015201454ad7c20034180076a41086a2903007c2016201554ad7c200341d0066a41086a2903007c200d201654ad7c2004200d54ad7c420d86847c220442ffffffffffffff03833703a0412003200442338820034190086a41086a290300200341e0086a41086a2903007c2007201054ad7c200341c0076a41086a2903007c200a200754ad7c200341f0066a41086a2903007c200c200a54ad7c200341e0066a41086a2903007c200f200c54ad7c2004200f54ad7c420d868442137e201942ffffffffffffff03837c220442ffffffffffffff03833703804120032004423388200b42ffffffffffffff03837c37038841200341b0c0006a20034180c1006a106b20034188c0006a2001106b410021024101212d034020034188c0006a20026a2d0000200341b0c0006a20026a2d000073222e4100202e6b72417f7341800171410776106d202d71212d200241016a22024120470d000b202d106d212f200341a8c1006a41086a42f0ffffffffffff3f200141086a2903007d220442ffffffffffffff038342d0fdffffffffff3f20012903007d22074233887c370300200341a8c1006a41106a42f0ffffffffffff3f200141106a2903007d220a42ffffffffffffff038320044233887c370300200341a8c1006a41186a42f0ffffffffffff3f200141186a2903007d220442ffffffffffffff0383200a4233887c370300200341a8c1006a41206a42f0ffffffffffff3f200141206a2903007d220a42ffffffffffffff038320044233887c3703002003200a42338842137e200742ffffffffffffff03837c3703a841200341b0c0006a20034180c1006a106b20034188c0006a200341a8c1006a106b410021024101212d034020034188c0006a20026a2d0000200341b0c0006a20026a2d000073222e4100202e6b72417f7341800171410776106d202d71212d200241016a22024120470d000b200341a0046a42f0ffffffffffff3f200e7d220742338842137e42d0fdffffffffff3f20117d220e42ffffffffffffff03837c2204420042b0c1bad0f4e48603420010e808200341d0036a42f0ffffffffffff3f20057d220a423388200742ffffffffffffff03837c2207420042a7a7fbf49beaf607420010e808200341f0046a42f0ffffffffffff3f20067d2211423388200a42ffffffffffffff03837c220a420042a0d69f90da80b1cb00420010e808200341c0056a42f0ffffffffffff3f20097d2205423388201142ffffffffffffff03837c2211420042badf96dcb5c3bac700420010e80820034190066a200542ffffffffffffff0383200e4233887c220e420042a7ecfac2b5f7ea19420010e80820034180066a200e420042b0c1bad0f4e48603420010e80820034190046a20044200429db1bce4dfb435420010e808200341c0036a2007420042a0d69f90da80b1cb00420010e808200341e0046a200a420042badf96dcb5c3bac700420010e808200341b0056a2011420042a7ecfac2b5f7ea19420010e808200341a0056a2011420042b0c1bad0f4e48603420010e808200341f0056a200e4200429db1bce4dfb435420010e80820034180046a2004420042e098f4e5e9ebfb03420010e808200341b0036a2007420042badf96dcb5c3bac700420010e808200341d0046a200a420042a7ecfac2b5f7ea19420010e808200341c0046a200a420042b0c1bad0f4e48603420010e80820034190056a20114200429db1bce4dfb435420010e808200341e0056a200e420042e098f4e5e9ebfb03420010e808200341f0036a20044200429e9981b4dab2e103420010e808200341a0036a2007420042a7ecfac2b5f7ea19420010e80820034190036a2007420042b0c1bad0f4e48603420010e808200341b0046a200a4200429db1bce4dfb435420010e80820034180056a2011420042e098f4e5e9ebfb03420010e808200341d0056a200e4200429e9981b4dab2e103420010e808200341e0036a20044200429df893c0a486ae01420010e808200341c0036a41086a290300211820034190046a41086a290300211920032903c00321042003290390042109200341e0046a41086a290300211020032903e004210c200341b0056a41086a290300211a20032903b005210f20034180066a41086a290300211b2003290380062114200341d0036a41086a2903002113200341a0046a41086a290300210820032903d003210720032903a0042115200341f0046a41086a290300211220032903f0042116200341c0056a41086a290300211720032903c005210b20034190066a41086a2903002120200329039006210d20032903b003210a200329038004211120032903d004210e20032903a005210520032903f0052106202d106d2101200320062005200e200a20117c22117c220e7c22057c22062014200f200c200420097c22097c220c7c220f7c2214200d200b2016200720157c22157c22167c220b7c220d423388202020172012201320087c2015200754ad7c7c2016201554ad7c7c200b201654ad7c7c200d200b54ad7c2215420d86847c2207423388201b201a2010201820197c2009200454ad7c7c200c200954ad7c7c200f200c54ad7c7c2014200f54ad7c20154233887c2007201454ad7c2215420d86847c220442ffffffffffffff03833703b841200320032903a003221620032903f0037c220920032903c0047c220c2003290390057c220f20032903e0057c22142004423388200341b0036a41086a29030020034180046a41086a2903007c2011200a54ad7c200341d0046a41086a2903007c200e201154ad7c200341a0056a41086a2903007c2005200e54ad7c200341f0056a41086a2903007c2006200554ad7c20154233887c2004200654ad7c2206420d86847c220442ffffffffffffff03833703c0412003200329039003221520032903e0037c220a20032903b0047c22112003290380057c220e20032903d0057c22052004423388200341a0036a41086a290300200341f0036a41086a2903007c2009201654ad7c200341c0046a41086a2903007c200c200954ad7c20034190056a41086a2903007c200f200c54ad7c200341e0056a41086a2903007c2014200f54ad7c20064233887c2004201454ad7c2206420d86847c220442ffffffffffffff03833703c8412003200442338820034190036a41086a290300200341e0036a41086a2903007c200a201554ad7c200341b0046a41086a2903007c2011200a54ad7c20034180056a41086a2903007c200e201154ad7c200341d0056a41086a2903007c2005200e54ad7c20064233887c2004200554ad7c420d868442137e200d42ffffffffffffff03837c220442ffffffffffffff03833703a84120032004423388200742ffffffffffffff03837c3703b041200341b0c0006a20034180c1006a106b20034188c0006a200341a8c1006a106b410021024101212d034020034188c0006a20026a2d0000200341b0c0006a20026a2d000073222e4100202e6b72417f7341800171410776106d202d71212d200241016a22024120470d000b202d106d210220034180036a20032903d8402204420042b0c1bad0f4e48603420010e808200320032903e040220742137e4200429df893c0a486ae01420010e808200341e0006a20032903e840220a42137e22064200429e9981b4dab2e103420010e808200341c0016a20032903f040220e42137e2205420042e098f4e5e9ebfb03420010e808200341a0026a20032903f840220942137e22114200429db1bce4dfb435420010e808200341f0026a20044200429db1bce4dfb435420010e808200341c0006a2007420042b0c1bad0f4e48603420010e808200341d0006a20064200429df893c0a486ae01420010e808200341b0016a20054200429e9981b4dab2e103420010e80820034190026a2011420042e098f4e5e9ebfb03420010e808200341e0026a2004420042e098f4e5e9ebfb03420010e808200341306a20074200429db1bce4dfb435420010e80820034190016a200a420042b0c1bad0f4e48603420010e808200341a0016a20054200429df893c0a486ae01420010e80820034180026a20114200429e9981b4dab2e103420010e808200341d0026a20044200429e9981b4dab2e103420010e808200341206a2007420042e098f4e5e9ebfb03420010e80820034180016a200a4200429db1bce4dfb435420010e808200341e0016a200e420042b0c1bad0f4e48603420010e808200341f0016a20114200429df893c0a486ae01420010e808200341c0026a20044200429df893c0a486ae01420010e808200341106a20074200429e9981b4dab2e103420010e808200341f0006a200a420042e098f4e5e9ebfb03420010e808200341d0016a200e4200429db1bce4dfb435420010e808200341b0026a2009420042b0c1bad0f4e48603420010e8082003200420042003290370220820032903107c220720032903d0017c220a20032903b0027c221120032903c0027c220e200329038001221220032903207c220520032903e0017c220620032903f0017c220920032903d0027c220c200329039001221720032903307c220f20032903a0017c22142003290380027c221520032903e0027c22162003290350222020032903407c220b20032903b0017c220d2003290390027c221820032903f0027c22192003290360222120032903007c221020032903c0017c221a2003290380037c221b20032903a0027c2213423388200341e0006a41086a290300200341086a2903007c2010202154ad7c200341c0016a41086a2903007c201a201054ad7c20034180036a41086a2903007c201b201a54ad7c200341a0026a41086a2903007c2013201b54ad7c420d86847c2210423388200341d0006a41086a290300200341c0006a41086a2903007c200b202054ad7c200341b0016a41086a2903007c200d200b54ad7c20034190026a41086a2903007c2018200d54ad7c200341f0026a41086a2903007c2019201854ad7c2010201954ad7c420d86847c220b42338820034190016a41086a290300200341306a41086a2903007c200f201754ad7c200341a0016a41086a2903007c2014200f54ad7c20034180026a41086a2903007c2015201454ad7c200341e0026a41086a2903007c2016201554ad7c200b201654ad7c420d86847c220f42338820034180016a41086a290300200341206a41086a2903007c2005201254ad7c200341e0016a41086a2903007c2006200554ad7c200341f0016a41086a2903007c2009200654ad7c200341d0026a41086a2903007c200c200954ad7c200f200c54ad7c420d86847c2205423388200341f0006a41086a290300200341106a41086a2903007c2007200854ad7c200341d0016a41086a2903007c200a200754ad7c200341b0026a41086a2903007c2011200a54ad7c200341c0026a41086a2903007c200e201154ad7c2005200e54ad7c420d868442137e201342ffffffffffffff03837c221142ffffffffffffff03838542002002200172106dad42ff01837d22078385220a3703d84020032011423388201042ffffffffffffff03837c20032903e04022048520078320048522113703e0402003200542ffffffffffffff038320032903f840220485200783200485220e3703f8402003200f42ffffffffffffff038320032903f04022048520078320048522053703f0402003200b42ffffffffffffff038320032903e84022048520078320048522073703e84020034188c0006a200341d8c0006a106b200342f0ffffffffffff3f200e7d220642ffffffffffffff038342f0ffffffffffff3f20057d22094233887c200e85420020032d008840410171106dad42ff01837d220483200e853703f8402003200942ffffffffffffff038342f0ffffffffffff3f20077d220e4233887c2005852004832005853703f0402003200e42ffffffffffffff038342f0ffffffffffff3f20117d220e4233887c2007852004832007853703e8402003200e42ffffffffffffff038342d0fdffffffffff3f200a7d22074233887c2011852004832011853703e0402003200642338842137e200742ffffffffffffff03837c200a85200483200a853703d84020002001202f72106d3a0000200020032903d840370308200041106a20032903e040370300200041186a20032903e840370300200041206a20032903f040370300200041286a20032903f840370300200341d0c1006a24000bd003011a7e200131001221022001310011210320013100102104200131000f2105200131000d2106200131000e2107200131001f2108200131001e2109200131001d210a200131001c210b200131001b210c200131001a210d200131000c210e200131000b210f200131000a21102001310009211120013100072112200131000821132001310019211420013100182115200131001721162001310016211720013100132118200131001421192001310015211a200020013500002001310004422086842001310005422886842001310006221b4230868442ffffffffffffff038337030020002018201942088684201a4210868420174218868420164220868420154228868420144230868442018842ffffffffffffff03833703182000201b201242088684201342108684201142188684201042208684200f42288684200e4230868442038842ffffffffffffff038337030820002015201442088684200d42108684200c42188684200b42208684200a42288684200942308684200842388684420c8842ffffffffffffff03833703202000200e20064208868420074210868420054218868420044220868420034228868420024230868420184238868442068842ffffffffffffff03833703100ba5990104017f237e057f0d7e230041f02b6b22022400200242003703e028200242013703d828200242003703e828200242003703f028200242003703f828200241c82a6a20014101106e200241c8256a20022903c82a2203420042b0c1bad0f4e48603420010e808200241c8286a20022903d02a220442137e4200429df893c0a486ae01420010e808200241f8276a20022903d82a220542137e22064200429e9981b4dab2e103420010e808200241a8276a20022903e02a220742137e2208420042e098f4e5e9ebfb03420010e808200241d8266a20022903e82a220942137e220a4200429db1bce4dfb435420010e808200241d8256a20034200429db1bce4dfb435420010e808200241b8286a2004420042b0c1bad0f4e48603420010e808200241e8276a20064200429df893c0a486ae01420010e80820024198276a20084200429e9981b4dab2e103420010e808200241c8266a200a420042e098f4e5e9ebfb03420010e808200241e8256a2003420042e098f4e5e9ebfb03420010e808200241a8286a20044200429db1bce4dfb435420010e808200241d8276a2005420042b0c1bad0f4e48603420010e80820024188276a20084200429df893c0a486ae01420010e808200241b8266a200a4200429e9981b4dab2e103420010e808200241f8256a20034200429e9981b4dab2e103420010e80820024198286a2004420042e098f4e5e9ebfb03420010e808200241c8276a20054200429db1bce4dfb435420010e808200241f8266a2007420042b0c1bad0f4e48603420010e808200241a8266a200a4200429df893c0a486ae01420010e80820024188266a20034200429df893c0a486ae01420010e80820024188286a20044200429e9981b4dab2e103420010e808200241b8276a2005420042e098f4e5e9ebfb03420010e808200241e8266a20074200429db1bce4dfb435420010e80820024198266a2009420042b0c1bad0f4e48603420010e808200241b81d6a200229038826220b2002290398267c22032002290388287c220420022903b8277c220520022903e8267c220a20022903a826220c20022903f8267c220720022903f8257c22082002290398287c220620022903c8277c2209200229038827220d20022903d8277c220e20022903b8267c220f20022903e8257c221020022903a8287c221120022903e827221220022903b8287c22132002290398277c221420022903c8267c221520022903d8257c221620022903c828221720022903c8257c221820022903f8277c221920022903a8277c221a20022903d8267c221b423388200241c8286a41086a290300200241c8256a41086a2903007c2018201754ad7c200241f8276a41086a2903007c2019201854ad7c200241a8276a41086a2903007c201a201954ad7c200241d8266a41086a2903007c201b201a54ad7c420d86847c2218423388200241e8276a41086a290300200241b8286a41086a2903007c2013201254ad7c20024198276a41086a2903007c2014201354ad7c200241c8266a41086a2903007c2015201454ad7c200241d8256a41086a2903007c2016201554ad7c2018201654ad7c420d86847c221342338820024188276a41086a290300200241d8276a41086a2903007c200e200d54ad7c200241b8266a41086a2903007c200f200e54ad7c200241e8256a41086a2903007c2010200f54ad7c200241a8286a41086a2903007c2011201054ad7c2013201154ad7c420d86847c220e423388200241a8266a41086a290300200241f8266a41086a2903007c2007200c54ad7c200241f8256a41086a2903007c2008200754ad7c20024198286a41086a2903007c2006200854ad7c200241c8276a41086a2903007c2009200654ad7c200e200954ad7c420d86847c220742338820024188266a41086a29030020024198266a41086a2903007c2003200b54ad7c20024188286a41086a2903007c2004200354ad7c200241b8276a41086a2903007c2005200454ad7c200241e8266a41086a2903007c200a200554ad7c2007200a54ad7c420d868442137e201b42ffffffffffffff03837c220442ffffffffffffff0383220320022903d8287c2208420042f682ffa299b88202420010e808200241d81c6a200742ffffffffffffff0383220720022903f8287c2206420042ddf396f0fbf7b9c300420010e808200241e81c6a200e42ffffffffffffff0383220a20022903f0287c2209420042ccf7d9e9fbcee010420010e80820024188236a201342ffffffffffffff0383220520022903e8287c220e4200428df582a3b0868004420010e808200241e8216a2004423388201842ffffffffffffff03837c220420022903e0287c220f4200429aebd0c282f1c201420010e808200241f8216a200f420042f682ffa299b88202420010e808200241c81d6a2008420042cff887b5bcb5c603420010e808200241c81c6a2006420042ccf7d9e9fbcee010420010e808200241f81c6a20094200428df582a3b0868004420010e80820024198236a200e4200429aebd0c282f1c201420010e808200241a8236a200e420042f682ffa299b88202420010e80820024188226a200f420042cff887b5bcb5c603420010e808200241d81d6a2008420042848dc885f9eff000420010e808200241b81c6a20064200428df582a3b0868004420010e808200241881d6a20094200429aebd0c282f1c201420010e808200241981d6a2009420042f682ffa299b88202420010e808200241b8236a200e420042cff887b5bcb5c603420010e80820024198226a200f420042848dc885f9eff000420010e808200241e81d6a2008420042dfddd7d2ccf91a420010e808200241a81c6a20064200429aebd0c282f1c201420010e808200241981c6a2006420042f682ffa299b88202420010e808200241a81d6a2009420042cff887b5bcb5c603420010e808200241c8236a200e420042848dc885f9eff000420010e808200241a8226a200f420042dfddd7d2ccf91a420010e808200241f81d6a2008420042bed6acd4f2a00a420010e808200220022903b81c221920022903d81d7c220820022903881d7c220620022903a8237c22092002290388227c220e20022903c81c221a20022903c81d7c220f20022903f81c7c22102002290398237c221120022903f8217c221320022903d81c221b20022903b81d7c221420022903e81c7c22152002290388237c221620022903e8217c2218423388200241d81c6a41086a290300200241b81d6a41086a2903007c2014201b54ad7c200241e81c6a41086a2903007c2015201454ad7c20024188236a41086a2903007c2016201554ad7c200241e8216a41086a2903007c2018201654ad7c420d86847c2214423388200241c81c6a41086a290300200241c81d6a41086a2903007c200f201a54ad7c200241f81c6a41086a2903007c2010200f54ad7c20024198236a41086a2903007c2011201054ad7c200241f8216a41086a2903007c2013201154ad7c2014201354ad7c420d86847c220f42ffffffffffffff038337039029200220022903a81c221620022903e81d7c221020022903981d7c221120022903b8237c22132002290398227c2215200f423388200241b81c6a41086a290300200241d81d6a41086a2903007c2008201954ad7c200241881d6a41086a2903007c2006200854ad7c200241a8236a41086a2903007c2009200654ad7c20024188226a41086a2903007c200e200954ad7c200f200e54ad7c420d86847c220842ffffffffffffff038337039829200220022903981c221920022903f81d7c220620022903a81d7c220920022903c8237c220e20022903a8227c220f2008423388200241a81c6a41086a290300200241e81d6a41086a2903007c2010201654ad7c200241981d6a41086a2903007c2011201054ad7c200241b8236a41086a2903007c2013201154ad7c20024198226a41086a2903007c2015201354ad7c2008201554ad7c420d86847c220842ffffffffffffff03833703a02920022008423388200241981c6a41086a290300200241f81d6a41086a2903007c2006201954ad7c200241a81d6a41086a2903007c2009200654ad7c200241c8236a41086a2903007c200e200954ad7c200241a8226a41086a2903007c200f200e54ad7c2008200f54ad7c420d868442137e201842ffffffffffffff03837c220842ffffffffffffff03833703802920022008423388201442ffffffffffffff03837c37038829200241d8216a2003420042a3f1e59aa1b9d301420010e808200241f8226a200442137e221c420042ffed8af7ec86c802420010e808200241e8236a200542137e2210420042bbf9809de6b8ce03420010e80820024198246a200a42137e2211420042a9808780a6f4f902420010e808200241d8246a200742137e2208420042bdddd5d88385ea00420010e808200241c8216a2003420042bdddd5d88385ea00420010e808200241e8226a2004420042a3f1e59aa1b9d301420010e808200241d8236a2010420042ffed8af7ec86c802420010e80820024188246a2011420042bbf9809de6b8ce03420010e808200241c8246a2008420042a9808780a6f4f902420010e808200241b8216a2003420042a9808780a6f4f902420010e808200241d8226a2004420042bdddd5d88385ea00420010e808200241e8246a2005420042a3f1e59aa1b9d301420010e808200241f8236a2011420042ffed8af7ec86c802420010e808200241b8246a2008420042bbf9809de6b8ce03420010e808200241a8216a2003420042bbf9809de6b8ce03420010e808200241c8226a2004420042a9808780a6f4f902420010e808200241f8246a2005420042bdddd5d88385ea00420010e80820024198256a200a420042a3f1e59aa1b9d301420010e808200241a8246a2008420042ffed8af7ec86c802420010e808200241d8206a2003420042ffed8af7ec86c802420010e808200241b8226a2004420042bbf9809de6b8ce03420010e80820024188256a2005420042a9808780a6f4f902420010e808200241a8256a200a420042bdddd5d88385ea00420010e808200241b8256a2007420042a3f1e59aa1b9d301420010e808200241881e6a200342a3f1e59aa1b9d3017c2206420042efffffffffffffc30020022903d820221d20022903b8257c220920022903b8227c220e2002290388257c220f20022903a8257c221320022903a824221e2002290398257c221420022903a8217c221520022903c8227c221620022903f8247c221820022903f823221f20022903e8247c221920022903b8247c221a20022903b8217c221b20022903d8227c220b20022903d823222020022903e8227c220c2002290388247c220d20022903c8247c221220022903c8217c221720022903f822222120022903d8217c222220022903e8237c22232002290398247c222420022903d8247c2225423388200241f8226a41086a290300200241d8216a41086a2903007c2022202154ad7c200241e8236a41086a2903007c2023202254ad7c20024198246a41086a2903007c2024202354ad7c200241d8246a41086a2903007c2025202454ad7c420d86847c2222423388200241d8236a41086a290300200241e8226a41086a2903007c200c202054ad7c20024188246a41086a2903007c200d200c54ad7c200241c8246a41086a2903007c2012200d54ad7c200241c8216a41086a2903007c2017201254ad7c2022201754ad7c420d86847c220c423388200241f8236a41086a290300200241e8246a41086a2903007c2019201f54ad7c200241b8246a41086a2903007c201a201954ad7c200241b8216a41086a2903007c201b201a54ad7c200241d8226a41086a2903007c200b201b54ad7c200c200b54ad7c420d86847c2219423388200241a8246a41086a29030020024198256a41086a2903007c2014201e54ad7c200241a8216a41086a2903007c2015201454ad7c200241c8226a41086a2903007c2016201554ad7c200241f8246a41086a2903007c2018201654ad7c2019201854ad7c420d86847c221442ffffffffffffff03837d221542338842137e42bcfdffffffffffc3002014423388200241d8206a41086a290300200241b8256a41086a2903007c2009201d54ad7c200241b8226a41086a2903007c200e200954ad7c20024188256a41086a2903007c200f200e54ad7c200241a8256a41086a2903007c2013200f54ad7c2014201354ad7c420d868442137e202542ffffffffffffff03837c221342ffffffffffffff03837d221642ffffffffffffff03837c2209420010e808200241881f6a201542ffffffffffffff038342efffffffffffffc300201942ffffffffffffff03837d220f4233887c220e4200201c4287f0dc94c6dfde0f7c420010e80820024198216a200f42ffffffffffffff038342efffffffffffffc300200c42ffffffffffffff03837d22144233887c220f42002010428b868581d2a18c387c2215420010e808200241c8206a201442ffffffffffffff038342efffffffffffffc3002013423388202242ffffffffffffff03837c7d22134233887c22104200201142e18392a796b7d2c4007c2214420010e80820024188206a201342ffffffffffffff038320164233887c22114200200842eda9ced69582d9307c2208420010e808200241981e6a201142002006420010e808200241c81f6a20094200200442bdddd5d88385ea007c2213420010e808200241f81e6a200e42002015420010e80820024188216a200f42002014420010e808200241b8206a201042002008420010e808200241a81e6a201042002006420010e808200241f81f6a201142002013420010e808200241b81f6a20094200200542a9808780a6f4f9027c2215420010e808200241e81e6a200e42002014420010e808200241f8206a200f42002008420010e808200241b81e6a200f42002006420010e808200241a8206a201042002013420010e808200241e81f6a201142002015420010e808200241a81f6a20094200200a42bbf9809de6b8ce037c2214420010e808200241d81e6a200e42002008420010e808200241c81e6a200e42002006420010e808200241e8206a200f42002013420010e80820024198206a201042002015420010e808200241d81f6a201142002014420010e808200241981f6a20094200200742ffed8af7ec86c8027c420010e808200220022903e81e221920022903b81f7c220820022903f8207c220620022903a81e7c220920022903f81f7c220e20022903f81e221a20022903c81f7c220f2002290388217c221020022903b8207c221120022903981e7c221320022903881f221b20022903881e7c22142002290398217c221520022903c8207c22162002290388207c2218423388200241881f6a41086a290300200241881e6a41086a2903007c2014201b54ad7c20024198216a41086a2903007c2015201454ad7c200241c8206a41086a2903007c2016201554ad7c20024188206a41086a2903007c2018201654ad7c420d86847c2214423388200241f81e6a41086a290300200241c81f6a41086a2903007c200f201a54ad7c20024188216a41086a2903007c2010200f54ad7c200241b8206a41086a2903007c2011201054ad7c200241981e6a41086a2903007c2013201154ad7c2014201354ad7c420d86847c220f42ffffffffffffff03833703e029200220022903d81e221620022903a81f7c221020022903b81e7c221120022903a8207c221320022903e81f7c2215200f423388200241e81e6a41086a290300200241b81f6a41086a2903007c2008201954ad7c200241f8206a41086a2903007c2006200854ad7c200241a81e6a41086a2903007c2009200654ad7c200241f81f6a41086a2903007c200e200954ad7c200f200e54ad7c420d86847c220842ffffffffffffff03833703e829200220022903c81e221920022903981f7c220620022903e8207c22092002290398207c220e20022903d81f7c220f2008423388200241d81e6a41086a290300200241a81f6a41086a2903007c2010201654ad7c200241b81e6a41086a2903007c2011201054ad7c200241a8206a41086a2903007c2013201154ad7c200241e81f6a41086a2903007c2015201354ad7c2008201554ad7c420d86847c220842ffffffffffffff03833703f02920022008423388200241c81e6a41086a290300200241981f6a41086a2903007c2006201954ad7c200241e8206a41086a2903007c2009200654ad7c20024198206a41086a2903007c200e200954ad7c200241d81f6a41086a2903007c200f200e54ad7c2008200f54ad7c420d868442137e201842ffffffffffffff03837c220842ffffffffffffff03833703d02920022008423388201442ffffffffffffff03837c3703d829200241c82a6a20024180296a200241d0296a106f20022d00c82a2126200241a02a6a41206a2227200241f02a6a2903002208370300200241a02a6a41186a2228200241c82a6a41206a2903002206370300200241a02a6a41106a2229200241c82a6a41186a2903002209370300200241a02a6a41086a222a200241c82a6a41106a290300220e370300200220022903d02a220f3703a02a20024188196a200129030022104200200f420010e808200241881c6a200842002001290308221142137e420010e808200241b81b6a200642002001290310221342137e2218420010e808200241e81a6a200942002001290318221542137e2216420010e808200241981a6a200e42002001290320221942137e2214420010e80820024198196a200e42002010420010e808200241f81b6a200f42002011420010e808200241a81b6a200842002018420010e808200241d81a6a200642002016420010e808200241881a6a200942002014420010e808200241a8196a200942002010420010e808200241e81b6a200e42002011420010e808200241981b6a200f42002013420010e808200241c81a6a200842002016420010e808200241f8196a200642002014420010e808200241b8196a200642002010420010e808200241d81b6a200942002011420010e808200241881b6a200e42002013420010e808200241b81a6a200f42002015420010e808200241e8196a200842002014420010e808200241c8196a200842002010420010e808200241c81b6a200642002011420010e808200241f81a6a200942002013420010e808200241a81a6a200e42002015420010e808200241d8196a200f42002019420010e808200220022903c819222220022903d8197c220820022903c81b7c220620022903f81a7c220920022903a81a7c220e20022903e819222320022903b81a7c220f20022903b8197c221020022903d81b7c221120022903881b7c221320022903c81a222420022903981b7c221420022903f8197c221520022903a8197c221620022903e81b7c221820022903a81b222520022903f81b7c221920022903d81a7c221a20022903881a7c221b2002290398197c220b20022903881c221c2002290388197c220c20022903b81b7c220d20022903e81a7c221220022903981a7c2217423388200241881c6a41086a29030020024188196a41086a2903007c200c201c54ad7c200241b81b6a41086a2903007c200d200c54ad7c200241e81a6a41086a2903007c2012200d54ad7c200241981a6a41086a2903007c2017201254ad7c420d86847c220c423388200241a81b6a41086a290300200241f81b6a41086a2903007c2019202554ad7c200241d81a6a41086a2903007c201a201954ad7c200241881a6a41086a2903007c201b201a54ad7c20024198196a41086a2903007c200b201b54ad7c200c200b54ad7c420d86847c2219423388200241c81a6a41086a290300200241981b6a41086a2903007c2014202454ad7c200241f8196a41086a2903007c2015201454ad7c200241a8196a41086a2903007c2016201554ad7c200241e81b6a41086a2903007c2018201654ad7c2019201854ad7c420d86847c2214423388200241e8196a41086a290300200241b81a6a41086a2903007c200f202354ad7c200241b8196a41086a2903007c2010200f54ad7c200241d81b6a41086a2903007c2011201054ad7c200241881b6a41086a2903007c2013201154ad7c2014201354ad7c420d86847c220f423388200241c8196a41086a290300200241d8196a41086a2903007c2008202254ad7c200241c81b6a41086a2903007c2006200854ad7c200241f81a6a41086a2903007c2009200654ad7c200241a81a6a41086a2903007c200e200954ad7c200f200e54ad7c420d868442137e201742ffffffffffffff03837c220842ffffffffffffff03833703f82a20022008423388200c42ffffffffffffff03837c22063703802b2002200f42ffffffffffffff038322093703982b2002201442ffffffffffffff0383220e3703902b2002201942ffffffffffffff0383220f3703882b200241c82a6a200241f82a6a106b20022d00c82a410171106d417f73410171106d21012002200642f0ffffffffffff3f20067d221142ffffffffffffff038342d0fdffffffffff3f20022903f82a22107d22134233887c8542002001ad42ff01837d22088320068522063703802b2002200942f0ffffffffffff3f20097d221442ffffffffffffff038342f0ffffffffffff3f200e7d22154233887c8520088320098522093703982b2002200f42f0ffffffffffff3f200f7d221642ffffffffffffff038320114233887c85200883200f85220f3703882b200220102010201442338842137e201342ffffffffffffff03837c852008838522103703f82a2002200e201542ffffffffffffff038320164233887c85200883200e85220e3703902b2026417f734101712201106d2126202a202a290300221120068542002026ad42ff01837d220883201185370300202920292903002206200f85200883200685370300202820282903002206200e85200883200685370300202720272903002206200985200883200685370300200220022903a02a22062010852008832006853703a02a2001106d2101200241c80f6a200720022903f8287d42f0ffffffffffff3f7c221142338842137e200320022903d8287d42d0fdffffffffff3f7c220942ffffffffffffff03837c22084200200342ecffffffffffff038542002001ad42ff01837d22038342ecffffffffffff03852206420010e808200241880d6a200742ffffffffffffff038520038342ffffffffffffff038522074200200420022903e0287d42f0ffffffffffff3f7c220f42ffffffffffffff038320094233887c220942137e420010e808200241d80d6a200a42ffffffffffffff038520038342ffffffffffffff0385220e4200200520022903e8287d42f0ffffffffffff3f7c221042ffffffffffffff0383200f4233887c220f42137e2213420010e808200241a80e6a200542ffffffffffffff038520038342ffffffffffffff038522054200200a20022903f0287d42f0ffffffffffff3f7c221442ffffffffffffff038320104233887c220a42137e2210420010e808200241f80e6a200442ffffffffffffff038520038342ffffffffffffff038522034200201142ffffffffffffff038320144233887c221142137e2204420010e808200241e80e6a200342002008420010e808200241b80f6a200642002009420010e808200241f80c6a200742002013420010e808200241c80d6a200e42002010420010e808200241980e6a200542002004420010e808200241880e6a200542002008420010e808200241d80e6a200342002009420010e808200241a80f6a20064200200f420010e808200241e80c6a200742002010420010e808200241b80d6a200e42002004420010e808200241a80d6a200e42002008420010e808200241f80d6a200542002009420010e808200241c80e6a20034200200f420010e808200241980f6a20064200200a420010e808200241880c6a200742002004420010e808200241a80b6a200742002008420010e808200241980d6a200e42002009420010e808200241e80d6a20054200200f420010e808200241b80e6a20034200200a420010e808200241880f6a200642002011420010e808200241f8096a20022903a80b220b20022903880f7c220320022903980d7c220420022903e80d7c220520022903b80e7c220a20022903880c220c20022903980f7c220720022903a80d7c220820022903f80d7c220620022903c80e7c220920022903e80c220d20022903a80f7c220e20022903b80d7c220f20022903880e7c221020022903d80e7c221120022903f80c221220022903b80f7c221320022903c80d7c221420022903980e7c221520022903e80e7c221620022903880d221720022903c80f7c221820022903d80d7c221920022903a80e7c221a20022903f80e7c221b423388200241880d6a41086a290300200241c80f6a41086a2903007c2018201754ad7c200241d80d6a41086a2903007c2019201854ad7c200241a80e6a41086a2903007c201a201954ad7c200241f80e6a41086a2903007c201b201a54ad7c420d86847c2218423388200241f80c6a41086a290300200241b80f6a41086a2903007c2013201254ad7c200241c80d6a41086a2903007c2014201354ad7c200241980e6a41086a2903007c2015201454ad7c200241e80e6a41086a2903007c2016201554ad7c2018201654ad7c420d86847c2213423388200241e80c6a41086a290300200241a80f6a41086a2903007c200e200d54ad7c200241b80d6a41086a2903007c200f200e54ad7c200241880e6a41086a2903007c2010200f54ad7c200241d80e6a41086a2903007c2011201054ad7c2013201154ad7c420d86847c220e423388200241880c6a41086a290300200241980f6a41086a2903007c2007200c54ad7c200241a80d6a41086a2903007c2008200754ad7c200241f80d6a41086a2903007c2006200854ad7c200241c80e6a41086a2903007c2009200654ad7c200e200954ad7c420d86847c2207423388200241a80b6a41086a290300200241880f6a41086a2903007c2003200b54ad7c200241980d6a41086a2903007c2004200354ad7c200241e80d6a41086a2903007c2005200454ad7c200241b80e6a41086a2903007c200a200554ad7c2007200a54ad7c420d868442137e201b42ffffffffffffff03837c220842ffffffffffffff03832203420042a09ab5a7a4d5d602420010e808200241980b6a200742ffffffffffffff03832204420042efabafe6f7c88835420010e808200241f80b6a200e42ffffffffffffff03832205420042f8fb9b94e0ed8617420010e808200241d80c6a201342ffffffffffffff0383220a4200428b83d98ea38bdb0a420010e808200241c80a6a2008423388201842ffffffffffffff03837c2207420042e6c09290d28a8b35420010e808200241b80a6a2007420042a09ab5a7a4d5d602420010e808200241e8096a2003420042b5cccc99bcc0e502420010e808200241880b6a2004420042f8fb9b94e0ed8617420010e808200241e80b6a20054200428b83d98ea38bdb0a420010e808200241c80c6a200a420042e6c09290d28a8b35420010e808200241b80c6a200a420042a09ab5a7a4d5d602420010e808200241a80a6a2007420042b5cccc99bcc0e502420010e808200241d8096a2003420042a8f2a9fabaa79b01420010e808200241f80a6a20044200428b83d98ea38bdb0a420010e808200241d80b6a2005420042e6c09290d28a8b35420010e808200241c80b6a2005420042a09ab5a7a4d5d602420010e808200241a80c6a200a420042b5cccc99bcc0e502420010e808200241980a6a2007420042a8f2a9fabaa79b01420010e808200241c8096a2003420042a9afa6f3e694c800420010e808200241e80a6a2004420042e6c09290d28a8b35420010e808200241d80a6a2004420042a09ab5a7a4d5d602420010e808200241b80b6a2005420042b5cccc99bcc0e502420010e808200241980c6a200a420042a8f2a9fabaa79b01420010e808200241880a6a2007420042a9afa6f3e694c800420010e808200241b8096a2003420042c2cdbdbdb3d1e502420010e80820022903f029210f20022903e829210e20022903e029210520022903d829210320022903d0292104200241a02b6a200241a02a6a4101106e200241c82b6a41106a220120292903002207370300200241c82b6a41086a202a290300220a200a7c220a3703002001200720077c2207370300200241c82b6a41186a2028290300220820087c2208370300200241c82b6a41206a2027290300220620067c2206370300200220022903a02a220920097c22093703c82b200241c8176a200442002009420010e808200241b8176a20064200200342137e420010e808200241c8166a20084200200542137e2213420010e80820024188186a20074200200e42137e2211420010e808200241b8166a200a4200200f42137e2210420010e808200241c8186a200a42002004420010e808200241d8176a200942002003420010e808200241a8176a200642002013420010e808200241d8166a200842002011420010e808200241a8166a200742002010420010e80820024198186a200742002004420010e808200241d8186a200a42002003420010e808200241e8176a200942002005420010e80820024198176a200642002011420010e80820024198166a200842002010420010e808200241e8166a200842002004420010e808200241a8186a200742002003420010e808200241e8186a200a42002005420010e808200241f8176a20094200200e420010e808200241e8146a200642002010420010e80820024188176a200642002004420010e808200241f8166a200842002003420010e808200241b8186a200742002005420010e808200241f8186a200a4200200e420010e808200241b8136a20094200200f420010e808200241e8066a20022903d80a222220022903b8097c220a20022903b80b7c220720022903980c7c220820022903880a7c220620022903e80a222320022903c8097c220920022903c80b7c221020022903a80c7c221120022903980a7c221320022903f80a222420022903d8097c221420022903d80b7c221520022903b80c7c221620022903a80a7c221820022903880b222520022903e8097c221920022903e80b7c221a20022903c80c7c221b20022903b80a7c220b20022903980b221c20022903f8097c220c20022903f80b7c220d20022903d80c7c221220022903c80a7c2217423388200241980b6a41086a290300200241f8096a41086a2903007c200c201c54ad7c200241f80b6a41086a2903007c200d200c54ad7c200241d80c6a41086a2903007c2012200d54ad7c200241c80a6a41086a2903007c2017201254ad7c420d86847c220c423388200241880b6a41086a290300200241e8096a41086a2903007c2019202554ad7c200241e80b6a41086a2903007c201a201954ad7c200241c80c6a41086a2903007c201b201a54ad7c200241b80a6a41086a2903007c200b201b54ad7c200c200b54ad7c420d86847c2219423388200241f80a6a41086a290300200241d8096a41086a2903007c2014202454ad7c200241d80b6a41086a2903007c2015201454ad7c200241b80c6a41086a2903007c2016201554ad7c200241a80a6a41086a2903007c2018201654ad7c2019201854ad7c420d86847c2214423388200241e80a6a41086a290300200241c8096a41086a2903007c2009202354ad7c200241c80b6a41086a2903007c2010200954ad7c200241a80c6a41086a2903007c2011201054ad7c200241980a6a41086a2903007c2013201154ad7c2014201354ad7c420d86847c220942ffffffffffffff0383200f7d42f0ffffffffffff3f7c220f42338842137e2009423388200241d80a6a41086a290300200241b8096a41086a2903007c200a202254ad7c200241b80b6a41086a2903007c2007200a54ad7c200241980c6a41086a2903007c2008200754ad7c200241880a6a41086a2903007c2006200854ad7c2009200654ad7c420d868442137e201742ffffffffffffff03837c220742ffffffffffffff038320047d42d0fdffffffffff3f7c220842ffffffffffffff03837c22044200429bdceccb84d4fd03420010e808200241b8076a200f42ffffffffffffff0383201442ffffffffffffff0383200e7d42f0ffffffffffff3f7c22064233887c220a420042969988cadca7b00e420010e808200241a8096a200642ffffffffffffff0383201942ffffffffffffff038320057d42f0ffffffffffff3f7c22064233887c2205420042a88c8b81f5cabeca00420010e808200241d8086a200642ffffffffffffff03832007423388200c42ffffffffffffff03837c20037d42f0ffffffffffff3f7c22074233887c2203420042c8ee859b8cd29829420010e80820024188086a200742ffffffffffffff038320084233887c2207420042dcd78e98b19df320420010e808200241f8076a20074200429bdceccb84d4fd03420010e808200241d8066a2004420042d2dfded4f0ede000420010e808200241a8076a200a420042a88c8b81f5cabeca00420010e80820024198096a2005420042c8ee859b8cd29829420010e808200241c8086a2003420042dcd78e98b19df320420010e808200241b8086a20034200429bdceccb84d4fd03420010e808200241e8076a2007420042d2dfded4f0ede000420010e808200241c8066a2004420042b8ecf9b5ffe8f503420010e80820024198076a200a420042c8ee859b8cd29829420010e80820024188096a2005420042dcd78e98b19df320420010e808200241f8086a20054200429bdceccb84d4fd03420010e808200241a8086a2003420042d2dfded4f0ede000420010e808200241d8076a2007420042b8ecf9b5ffe8f503420010e80820024198056a200442004298c9f9f3f9c09502420010e80820024188076a200a420042dcd78e98b19df320420010e808200241f8066a200a4200429bdceccb84d4fd03420010e808200241e8086a2005420042d2dfded4f0ede000420010e80820024198086a2003420042b8ecf9b5ffe8f503420010e808200241c8076a200742004298c9f9f3f9c09502420010e808200241e8036a2004420042b4f0cadfb1d2dd01420010e80820022903b82b212320022903b02b212420022903a82b212520022903c02b211c20022903a02b211d200242003703d02a200242013703c82a200242003703d82a200242003703e02a200242003703e82a200220022903a02b42017c22033703c82a200220022903a82b22043703d02a200220022903b02b22103703d82a200220022903b82b22153703e02a200241e8106a20034200200229038817221720022903b8137c220520022903f8167c220a20022903b8187c220720022903f8187c220820022903e814222220022903f8177c220620022903e8167c220920022903a8187c220e20022903e8187c220f200229039817221e20022903e8177c22112002290398167c22132002290398187c221420022903d8187c221620022903a817221f20022903d8177c221820022903d8167c221920022903a8167c221a20022903c8187c221b20022903b817222020022903c8177c220b20022903c8167c220c2002290388187c220d20022903b8167c2212423388200241b8176a41086a290300200241c8176a41086a2903007c200b202054ad7c200241c8166a41086a2903007c200c200b54ad7c20024188186a41086a2903007c200d200c54ad7c200241b8166a41086a2903007c2012200d54ad7c420d86847c220b423388200241a8176a41086a290300200241d8176a41086a2903007c2018201f54ad7c200241d8166a41086a2903007c2019201854ad7c200241a8166a41086a2903007c201a201954ad7c200241c8186a41086a2903007c201b201a54ad7c200b201b54ad7c420d86847c221942338820024198176a41086a290300200241e8176a41086a2903007c2011201e54ad7c20024198166a41086a2903007c2013201154ad7c20024198186a41086a2903007c2014201354ad7c200241d8186a41086a2903007c2016201454ad7c2019201654ad7c420d86847c2211423388200241e8146a41086a290300200241f8176a41086a2903007c2006202254ad7c200241e8166a41086a2903007c2009200654ad7c200241a8186a41086a2903007c200e200954ad7c200241e8186a41086a2903007c200f200e54ad7c2011200f54ad7c420d86847c220642338820024188176a41086a290300200241b8136a41086a2903007c2005201754ad7c200241f8166a41086a2903007c200a200554ad7c200241b8186a41086a2903007c2007200a54ad7c200241f8186a41086a2903007c2008200754ad7c2006200854ad7c420d868442137e201242ffffffffffffff03837c220942ffffffffffffff03832205420010e808200241a8136a200642ffffffffffffff0383220a4200200442137e222b420010e808200241d8146a201142ffffffffffffff038322074200201042137e2218420010e80820024188166a201942ffffffffffffff038322084200201542137e2216420010e80820024188126a2009423388200b42ffffffffffffff03837c2206420020022903c02b221a42137e2211420010e808200241f8116a200642002003420010e808200241d8106a200542002004420010e80820024198136a200a42002018420010e808200241c8146a200742002016420010e808200241f8156a200842002011420010e808200241e8156a200842002003420010e808200241e8116a200642002004420010e808200241c8106a200542002010420010e80820024188136a200a42002016420010e808200241b8146a200742002011420010e808200241a8146a200742002003420010e808200241d8156a200842002004420010e808200241d8116a200642002010420010e808200241b8106a200542002015420010e808200241f8126a200a42002011420010e808200241e8126a200a42002003420010e80820024198146a200742002004420010e808200241c8156a200842002010420010e808200241c8116a200642002015420010e808200241a8106a20054200201a420010e8082000200229038813222c20022903c8107c221b20022903b8147c220b20022903e8157c220c20022903e8117c220d200229039813222220022903d8107c220920022903c8147c220e20022903f8157c220f20022903f8117c221320022903a813221e20022903e8107c221420022903d8147c22192002290388167c22122002290388127c2217423388200241a8136a41086a290300200241e8106a41086a2903007c2014201e54ad7c200241d8146a41086a2903007c2019201454ad7c20024188166a41086a2903007c2012201954ad7c20024188126a41086a2903007c2017201254ad7c420d86847c221242338820024198136a41086a290300200241d8106a41086a2903007c2009202254ad7c200241c8146a41086a2903007c200e200954ad7c200241f8156a41086a2903007c200f200e54ad7c200241f8116a41086a2903007c2013200f54ad7c2012201354ad7c420d86847c222242ffffffffffffff038337031020024198106a42f0ffffffffffff3f201c7d221442338842137e42d1fdffffffffff3f201d7d220e42ffffffffffffff03837c220942002005420010e808200241d8126a200a420042f0ffffffffffff3f20257d220f42ffffffffffffff0383200e4233887c220e42137e420010e80820024188146a2007420042f0ffffffffffff3f20247d221342ffffffffffffff0383200f4233887c220f42137e2224420010e808200241b8156a2008420042f0ffffffffffff3f20237d221942ffffffffffffff038320134233887c221342137e2223420010e808200241b8116a20064200201442ffffffffffffff038320194233887c221442137e2219420010e808200241a8116a200642002009420010e80820024188106a20054200200e420010e808200241c8126a200a42002024420010e808200241f8136a200742002023420010e808200241a8156a200842002019420010e80820024198156a200842002009420010e80820024198116a20064200200e420010e808200241f80f6a20054200200f420010e808200241b8126a200a42002023420010e808200241e8136a200742002019420010e808200241d8136a200742002009420010e80820024188156a20084200200e420010e80820024188116a20064200200f420010e808200241e80f6a200542002013420010e808200241a8126a200a42002019420010e80820004190016a20022903a812222d20022903e80f7c221920022903d8137c22232002290388157c22242002290388117c222520022903b812222e20022903f80f7c221c20022903e8137c221d2002290398157c221e2002290398117c221f20022903c812222f2002290388107c222020022903f8137c222120022903a8157c223020022903a8117c223120022903d81222322002290398107c22332002290388147c223420022903b8157c223520022903b8117c2236423388200241d8126a41086a29030020024198106a41086a2903007c2033203254ad7c20024188146a41086a2903007c2034203354ad7c200241b8156a41086a2903007c2035203454ad7c200241b8116a41086a2903007c2036203554ad7c420d86847c2233423388200241c8126a41086a29030020024188106a41086a2903007c2020202f54ad7c200241f8136a41086a2903007c2021202054ad7c200241a8156a41086a2903007c2030202154ad7c200241a8116a41086a2903007c2031203054ad7c2033203154ad7c420d86847c2220423388200241b8126a41086a290300200241f80f6a41086a2903007c201c202e54ad7c200241e8136a41086a2903007c201d201c54ad7c20024198156a41086a2903007c201e201d54ad7c20024198116a41086a2903007c201f201e54ad7c2020201f54ad7c420d86847c221c42ffffffffffffff0383370300200020022903f812223020022903b8107c221d20022903a8147c221e20022903d8157c221f20022903d8117c2221202242338820024188136a41086a290300200241c8106a41086a2903007c201b202c54ad7c200241b8146a41086a2903007c200b201b54ad7c200241e8156a41086a2903007c200c200b54ad7c200241e8116a41086a2903007c200d200c54ad7c2022200d54ad7c420d86847c221b42ffffffffffffff038337031820024198126a200a42002009420010e808200241c8136a20074200200e420010e808200241f8146a20084200200f420010e808200241f8106a200642002013420010e808200241d80f6a200542002014420010e80820004198016a200229039812222c20022903d80f7c220b20022903c8137c220c20022903f8147c220d20022903f8107c2222201c423388200241a8126a41086a290300200241e80f6a41086a2903007c2019202d54ad7c200241d8136a41086a2903007c2023201954ad7c20024188156a41086a2903007c2024202354ad7c20024188116a41086a2903007c2025202454ad7c201c202554ad7c420d86847c222342ffffffffffffff0383370300200020022903e812221920022903a8107c22052002290398147c220a20022903c8157c220720022903c8117c2208201b423388200241f8126a41086a290300200241b8106a41086a2903007c201d203054ad7c200241a8146a41086a2903007c201e201d54ad7c200241d8156a41086a2903007c201f201e54ad7c200241d8116a41086a2903007c2021201f54ad7c201b202154ad7c420d86847c220642ffffffffffffff038337032020002006423388200241e8126a41086a290300200241a8106a41086a2903007c2005201954ad7c20024198146a41086a2903007c200a200554ad7c200241c8156a41086a2903007c2007200a54ad7c200241c8116a41086a2903007c2008200754ad7c2006200854ad7c420d868442137e201742ffffffffffffff03837c220542ffffffffffffff038337030020002005423388201242ffffffffffffff03837c370308200241d8016a20022903f806222d20022903e8037c220520022903e8087c220a2002290398087c220720022903c8077c2208200229038807222e2002290398057c220620022903f8087c221920022903a8087c221b20022903d8077c2212200229039807222f20022903c8067c22172002290388097c222420022903b8087c222520022903e8077c221c20022903a807223220022903d8067c221d2002290398097c221e20022903c8087c221f20022903f8077c222120022903b807223720022903e8067c223020022903a8097c223120022903d8087c22342002290388087c2235423388200241b8076a41086a290300200241e8066a41086a2903007c2030203754ad7c200241a8096a41086a2903007c2031203054ad7c200241d8086a41086a2903007c2034203154ad7c20024188086a41086a2903007c2035203454ad7c420d86847c2230423388200241a8076a41086a290300200241d8066a41086a2903007c201d203254ad7c20024198096a41086a2903007c201e201d54ad7c200241c8086a41086a2903007c201f201e54ad7c200241f8076a41086a2903007c2021201f54ad7c2030202154ad7c420d86847c221d42338820024198076a41086a290300200241c8066a41086a2903007c2017202f54ad7c20024188096a41086a2903007c2024201754ad7c200241b8086a41086a2903007c2025202454ad7c200241e8076a41086a2903007c201c202554ad7c201d201c54ad7c420d86847c221742338820024188076a41086a29030020024198056a41086a2903007c2006202e54ad7c200241f8086a41086a2903007c2019200654ad7c200241a8086a41086a2903007c201b201954ad7c200241d8076a41086a2903007c2012201b54ad7c2017201254ad7c420d86847c2206423388200241f8066a41086a290300200241e8036a41086a2903007c2005202d54ad7c200241e8086a41086a2903007c200a200554ad7c20024198086a41086a2903007c2007200a54ad7c200241c8076a41086a2903007c2008200754ad7c2006200854ad7c420d868442137e203542ffffffffffffff03837c220a42ffffffffffffff0383220542002009420010e808200241f8026a20144200200a423388203042ffffffffffffff03837c220a42137e420010e808200241b8056a20134200201d42ffffffffffffff0383220742137e2212420010e80820024198046a200f4200201742ffffffffffffff0383220842137e221b420010e808200241386a200e4200200642ffffffffffffff0383220642137e2219420010e808200241c8016a200e42002005420010e808200241e8026a20094200200a420010e808200241a8056a201442002012420010e80820024188046a20134200201b420010e808200241286a200f42002019420010e808200241b8016a200f42002005420010e808200241d8026a200e4200200a420010e808200241c8056a200942002007420010e808200241f8036a20144200201b420010e808200241186a201342002019420010e808200241a8016a201342002005420010e808200241c8026a200f4200200a420010e808200241d8056a200e42002007420010e808200241a8046a200942002008420010e808200241086a201442002019420010e80820024198016a201442002005420010e808200241b8026a20134200200a420010e808200241e8056a200f42002007420010e808200241b8046a200e42002008420010e80820024188036a200942002006420010e80820024188016a200342002005420010e80820024198036a20064200202b420010e808200241c8046a200842002018420010e808200241f8056a200742002016420010e808200241a8026a200a42002011420010e80820024198026a200a42002003420010e808200241f8006a200542002004420010e808200241a8036a200642002018420010e808200241d8046a200842002016420010e80820024188066a200742002011420010e80820024198066a200742002003420010e80820024188026a200a42002004420010e808200241e8006a200542002010420010e808200241b8036a200642002016420010e808200241e8046a200842002011420010e808200241f8046a200842002003420010e808200241a8066a200742002004420010e808200241f8016a200a42002010420010e808200241d8006a200542002015420010e808200241c8036a200642002011420010e808200241d8036a200642002003420010e80820024188056a200842002004420010e808200241b8066a200742002010420010e808200241e8016a200a42002015420010e808200241c8006a20054200201a420010e80820004188016a202042ffffffffffffff03833703002000202342338820024198126a41086a290300200241d80f6a41086a2903007c200b202c54ad7c200241c8136a41086a2903007c200c200b54ad7c200241f8146a41086a2903007c200d200c54ad7c200241f8106a41086a2903007c2022200d54ad7c2023202254ad7c420d868442137e203642ffffffffffffff03837c220342ffffffffffffff038337037820004180016a2003423388203342ffffffffffffff03837c370300200041e0006a20022903b803221b20022903687c220320022903e8047c22042002290398067c22052002290388027c220a20022903a803221320022903787c220720022903d8047c22082002290388067c22062002290398027c220920022903980322142002290388017c220e20022903c8047c220f20022903f8057c221020022903a8027c221142338820024198036a41086a29030020024188016a41086a2903007c200e201454ad7c200241c8046a41086a2903007c200f200e54ad7c200241f8056a41086a2903007c2010200f54ad7c200241a8026a41086a2903007c2011201054ad7c420d86847c220e423388200241a8036a41086a290300200241f8006a41086a2903007c2007201354ad7c200241d8046a41086a2903007c2008200754ad7c20024188066a41086a2903007c2006200854ad7c20024198026a41086a2903007c2009200654ad7c200e200954ad7c420d86847c220742ffffffffffffff0383370300200041386a20022903f803220b20022903c8057c220820022903187c220620022903b8017c220920022903d8027c220f20022903a805220c20022903e8027c22102002290388047c221320022903287c221420022903c8017c221520022903f802220d20022903d8017c221620022903b8057c22182002290398047c221920022903387c221a423388200241f8026a41086a290300200241d8016a41086a2903007c2016200d54ad7c200241b8056a41086a2903007c2018201654ad7c20024198046a41086a2903007c2019201854ad7c200241386a41086a2903007c201a201954ad7c420d86847c2216423388200241a8056a41086a290300200241e8026a41086a2903007c2010200c54ad7c20024188046a41086a2903007c2013201054ad7c200241286a41086a2903007c2014201354ad7c200241c8016a41086a2903007c2015201454ad7c2016201554ad7c420d86847c221042ffffffffffffff0383370300200041e8006a20022903c803221920022903587c221320022903f8047c221420022903a8067c221520022903f8017c22182007423388200241b8036a41086a290300200241e8006a41086a2903007c2003201b54ad7c200241e8046a41086a2903007c2004200354ad7c20024198066a41086a2903007c2005200454ad7c20024188026a41086a2903007c200a200554ad7c2007200a54ad7c420d86847c220342ffffffffffffff0383370300200041c0006a2002290308221b20022903a8047c220420022903a8017c220520022903c8027c220a20022903d8057c22072010423388200241f8036a41086a290300200241c8056a41086a2903007c2008200b54ad7c200241186a41086a2903007c2006200854ad7c200241b8016a41086a2903007c2009200654ad7c200241d8026a41086a2903007c200f200954ad7c2010200f54ad7c420d86847c220842ffffffffffffff0383370300200041f0006a20022903d803220b20022903487c22062002290388057c220920022903b8067c220f20022903e8017c22102003423388200241c8036a41086a290300200241d8006a41086a2903007c2013201954ad7c200241f8046a41086a2903007c2014201354ad7c200241a8066a41086a2903007c2015201454ad7c200241f8016a41086a2903007c2018201554ad7c2003201854ad7c420d86847c220342ffffffffffffff0383370300200041c8006a20022903980122192002290388037c221320022903b8027c221420022903e8057c221520022903b8047c22182008423388200241086a41086a290300200241a8046a41086a2903007c2004201b54ad7c200241a8016a41086a2903007c2005200454ad7c200241c8026a41086a2903007c200a200554ad7c200241d8056a41086a2903007c2007200a54ad7c2008200754ad7c420d86847c220442ffffffffffffff038337030020002003423388200241d8036a41086a290300200241c8006a41086a2903007c2006200b54ad7c20024188056a41086a2903007c2009200654ad7c200241b8066a41086a2903007c200f200954ad7c200241e8016a41086a2903007c2010200f54ad7c2003201054ad7c420d868442137e201142ffffffffffffff03837c220342ffffffffffffff0383370350200041d8006a2003423388200e42ffffffffffffff03837c3703002000200442338820024198016a41086a29030020024188036a41086a2903007c2013201954ad7c200241b8026a41086a2903007c2014201354ad7c200241e8056a41086a2903007c2015201454ad7c200241b8046a41086a2903007c2018201554ad7c2004201854ad7c420d868442137e201a42ffffffffffffff03837c220342ffffffffffffff0383370328200041306a2003423388201642ffffffffffffff03837c370300200241f02b6a24000bd32004047f017e027f1c7e23004190066b220224000240024020012c001f417f4a0d00200041003a00000c010b20024180056a41186a2203200141186a29000037030020024180056a41106a2204200141106a29000037030020024180056a41086a2205200141086a29000037030020022001290000220637038005200220022d009f0541ff00713a009f05200241c0056a41186a22074200370300200241c0056a41106a22084200370300200241c0056a41086a220142003703002002200231008205421086200231008105420886200642ff0183848422063703c005200220023100830542188620068422063703c005200220023100840542208620068422063703c005200220023100850542288620068422063703c005200220023100860542308620068422063703c00520022002310087054238862006843703c005200120012903002005310000842206370300200120023100890542088620068422063703002001200231008a0542108620068422063703002001200231008b0542188620068422063703002001200231008c0542208620068422063703002001200231008d0542288620068422063703002001200231008e0542308620068422063703002001200231008f0542388620068437030020082008290300200431000084220637030020082002310091054208862006842206370300200820023100920542108620068422063703002008200231009305421886200684220637030020082002310094054220862006842206370300200820023100950542288620068422063703002008200231009605423086200684220637030020082002310097054238862006842209370300200720072903002003310000842206370300200720023100990542088620068422063703002007200231009a0542108620068422063703002007200231009b0542188620068422063703002007200231009c0542208620068422063703002007200231009d0542288620068422063703002007200231009e0542308620068422063703002007200231009f05423886200684220a37030020024180036a20022903c005220b42ffffffffffffff07832206420042edcd87b9d697d207420010e808200241c0026a2006420042dac89fe3dad6ee01420010e80820024180026a2001290300220c420c864280e0ffffffffff0783200b42348884220b420042edcd87b9d697d207420010e808200241b0026a20064200429bcad7d9feffff07420010e808200241c0016a200b420042dac89fe3dad6ee01420010e808200241d0036a200942188642808080f8ffffff0783200c42288884220c420042edcd87b9d697d207420010e808200241a0026a2006420042ffffffffffffff07420010e80820024180016a200b4200429bcad7d9feffff07420010e808200241c0036a200c420042dac89fe3dad6ee01420010e808200241a0046a200a422486428080808080feff07832009421c88842209420042edcd87b9d697d207420010e80820024190026a2006420042ffffffffffff03420010e808200241c0006a200b420042ffffffffffffff07420010e808200241b0036a200c4200429bcad7d9feffff07420010e80820024190046a2009420042dac89fe3dad6ee01420010e808200241f0046a200a4210882206420042edcd87b9d697d207420010e8082002200b420042ffffffffffff03420010e808200241a0036a200c420042ffffffffffffff07420010e80820024180046a20094200429bcad7d9feffff07420010e808200241e0046a2006420042dac89fe3dad6ee01420010e80820024190036a200c420042ffffffffffff03420010e808200241f0036a2009420042ffffffffffffff07420010e808200241d0046a20064200429bcad7d9feffff07420010e808200241e0036a2009420042ffffffffffff03420010e808200241c0046a2006420042ffffffffffffff07420010e808200241b0046a2006420042ffffffffffff03420010e808200241f0026a200229038003220b429bfcd192b1b4c7027e42ffffffffffffff07832206420042eda7d7e7a5e39801420010e808200241e0026a200642004281cbb5cef7c5fa06420010e808200241f0016a200229038002220d20022903c0027c220c200b20022903f00222097c220b423488200241f0026a41086a29030020024180036a41086a2903007c200b200954ad7c220e420c86847c220920022903e0027c220a429bfcd192b1b4c7027e42ffffffffffffff0783220b420042eda7d7e7a5e39801420010e808200241d0026a2006420042f9bdd300420010e808200241e0016a200b42004281cbb5cef7c5fa06420010e808200241b0016a20022903c001220f20022903b0027c221020022903d0037c221120022903d0027c221220022903e0017c221320022903f0012214200a7c2215423488200241f0016a41086a29030020024180026a41086a290300200241c0026a41086a2903007c200c200d54ad7c200e4234887c2009200c54ad7c200241e0026a41086a2903007c200a200954ad7c7c2015201454ad7c2216420c86847c2209429bfcd192b1b4c7027e42ffffffffffffff0783220c420042eda7d7e7a5e39801420010e808200241d0016a200b420042f9bdd300420010e808200241a0016a200c42004281cbb5cef7c5fa06420010e808200241f0006a200229038001221720022903a0027c220a20022903c0037c220d20022903a0047c220e20022903d0017c221420022903a0017c221520022903b001221820097c2219423488200241b0016a41086a290300200241c0016a41086a290300200241b0026a41086a2903007c2010200f54ad7c200241d0036a41086a2903007c2011201054ad7c200241d0026a41086a2903007c2012201154ad7c200241e0016a41086a2903007c2013201254ad7c20164234887c2009201354ad7c7c2019201854ad7c221a420c86847c2210429bfcd192b1b4c7027e42ffffffffffffff07832209420042eda7d7e7a5e39801420010e80820024190016a200c420042f9bdd300420010e808200241e0006a200942004281cbb5cef7c5fa06420010e808200241306a2002290340221b2002290390027c221120022903b0037c22122002290390047c221320022903f0047c220f2006422c867c22162002290390017c221820022903607c22192002290370221c20107c221d423488200241f0006a41086a29030020024180016a41086a290300200241a0026a41086a2903007c200a201754ad7c200241c0036a41086a2903007c200d200a54ad7c200241a0046a41086a2903007c200e200d54ad7c200241d0016a41086a2903007c2014200e54ad7c200241a0016a41086a2903007c2015201454ad7c201a4234887c2010201554ad7c7c201d201c54ad7c221e420c86847c2210429bfcd192b1b4c7027e42ffffffffffffff0783220a420042eda7d7e7a5e39801420010e808200241d0006a2009420042f9bdd300420010e808200241206a200a42004281cbb5cef7c5fa06420010e808200241106a200a420042f9bdd300420010e808200120022903f003221f2002290390037c220d20022903d0047c220e200c422c867c221420022903107c221520022903a003222020022903007c22172002290380047c221a20022903e0047c221c200b422c867c221d20022903507c222120022903207c22222002290330222320107c2224423488200241306a41086a290300200241c0006a41086a29030020024190026a41086a2903007c2011201b54ad7c200241b0036a41086a2903007c2012201154ad7c20024190046a41086a2903007c2013201254ad7c200241f0046a41086a2903007c200f201354ad7c20064214887c2016200f54ad7c20024190016a41086a2903007c2018201654ad7c200241e0006a41086a2903007c2019201854ad7c201e4234887c2010201954ad7c7c2024202354ad7c2210420c86847c2206423488200241a0036a41086a290300200241086a2903007c2017202054ad7c20024180046a41086a2903007c201a201754ad7c200241e0046a41086a2903007c201c201a54ad7c200b4214887c201d201c54ad7c200241d0006a41086a2903007c2021201d54ad7c200241206a41086a2903007c2022202154ad7c20104234887c2006202254ad7c2212420c86847c220b42ffffffffffffff0783200642ffffffffffffff07834293d8a898da9ce77e7c2206423f877c42ffb4cab188ba85797c221342ffffffffffffff0783200642ffffffffffffff0783200a422c86220f20022903b0047c220620022903c004221620022903e0037c22102009422c867c2211200b423488200241f0036a41086a29030020024190036a41086a2903007c200d201f54ad7c200241d0046a41086a2903007c200e200d54ad7c200c4214887c2014200e54ad7c200241106a41086a2903007c2015201454ad7c20124234887c200b201554ad7c220c420c86847c220b423488200241c0046a41086a290300200241e0036a41086a2903007c2010201654ad7c20094214887c2011201054ad7c200c4234887c200b201154ad7c2209420c86847c220c423488200a421488200241b0046a41086a2903007c2006200f54ad7c20094234887c200c200654ad7c420c8684200c42ffffffffffffff0783200b42ffffffffffffff07832013423f877c4287c2ac7f7c220c423f877c2209423f877c428080808080807c7c2210423f87220a42eda7d7e7a5e39801837c22064234887c200a4281cbb5cef7c5fa06837c220b42ffffffffffffff078322113703002008200c42ffffffffffffff0783200b4234887c200a42f9bdd300837c220c42ffffffffffffff078322123703002007200942ffffffffffffff0783200c4234887c220942ffffffffffffff07832213370300200241e0056a201042ffffffffffffff078320094234887c200a4280808080808004837c220a42ffffffffffffff07833703002002200642ffffffffffffff078322103703c0052002200a4228883c00bf052002200a4220883c00be052002200a4218883c00bd052002200a4210883c00bc052002200a4208883c00bb052002200a3c00ba0520022009422c883c00b905200220094224883c00b80520022009421c883c00b705200220094214883c00b60520022009420c883c00b505200220094204883c00b405200220134204862012423088843c00b3052002200c4228883c00b2052002200c4220883c00b1052002200c4218883c00b0052002200c4210883c00af052002200c4208883c00ae052002200c3c00ad052002200b422c883c00ac052002200b4224883c00ab052002200b421c883c00aa052002200b4214883c00a9052002200b420c883c00a8052002200b4204883c00a705200220114204862010423088843c00a605200220064228883c00a505200220064220883c00a405200220064218883c00a305200220064210883c00a205200220064208883c00a105200220063c00a0052006a72108200241a0056a4101722103410021014101210702400340200820024180056a20016a2d0000732208410020086b72417f7341800171410776106d20077121072001411f460d01200320016a2d00002108200141016a21010c000b0b4100210102402007106d41ff01714101470d002000200229038005370001200041196a20024198056a290300370000200041116a20024190056a290300370000200041096a20024188056a290300370000410121010b200020013a00000b20024190066a24000bc60101017f230041106b2202240002400240024002400240024002400240200041ff01710e0700010203040506070b200241003a000f20012002410f6a410110740c060b200241013a000f20012002410f6a410110740c050b200241023a000f20012002410f6a410110740c040b200241033a000f20012002410f6a410110740c030b200241043a000f20012002410f6a410110740c020b200241053a000f20012002410f6a410110740c010b200241063a000f20012002410f6a410110740b200241106a24000b880201047f230041206b2203240002400240200041046a2802002204200041086a28020022056b2002490d00200028020021040c010b0240200520026a22062005490d00200441017422052006200520064b1b22054108200541084b1b21050240024020040d00200341003602100c010b200341106a41086a410136020020032004360214200320002802003602100b200320054101200341106a107d200341086a2802002105024020032802004101460d00200020032802042204360200200041046a2005360200200041086a28020021050c020b2005450d001036000b1038000b200420056a2001200210e9081a200041086a2200200028020020026a360200200341206a24000bfa0201057f230041106b2203240002402001450d002000200141386c6a210403402000220528020421012005280208220620021076200220012006107420052802102101200528021422062002107620022001200610740240024020052802184101470d00200528021c2101200528022422062002107620022001200610740c010b2003200528021c200528022028020c11020020032802002101200328020822062002107620022001200610742003280204450d002001102e0b200541386a2100200528022c21010240024020052802284101470d00200528023422052002107620054103742205450d01200120056a2107034020012802002105200141046a2802002206200210762002200520061074200141086a22012007470d000c020b0b200528023022052002107620054103742205450d00200120056a2107034020012802002105200141046a2802002206200210762002200520061074200141086a22012007470d000b0b20002004470d000b0b200341106a24000bab0101017f230041106b220224000240024002400240200041c000490d00200041808001490d012000418080808004490d02200241033a00032001200241036a41011074200220003602042001200241046a410410740c030b200220004102743a00032001200241036a410110740c020b200220004102744101723b010a20012002410a6a410210740c010b2002200041027441027236020c20012002410c6a410410740b200241106a24000bec0101047f02402001450d0020002001411c6c6a21030340200022042802042101200428020822052002107620022001200510742004411c6a21002004280210210102400240200428020c4101470d00200428021822042002107620044103742204450d01200120046a2106034020012802002104200141046a2802002205200210762002200420051074200141086a22012006470d000c020b0b200428021422042002107620044103742204450d00200120046a2106034020012802002104200141046a2802002205200210762002200420051074200141086a22012006470d000b0b20002003470d000b0b0be40301057f02402001450d0020002001412c6c6a21030340200022042802042101200428020822052002107620022001200510742004280210210102400240200428020c4101470d0020042802182205200210762005450d01200541186c2105200141146a21010340200141706a2802002106200141746a28020022072002107620022006200710742001417c6a280200210620012802002207200210762002200620071074200141186a2101200541686a22050d000c020b0b200441146a2802002205200210762005450d00200541186c2105200141146a21010340200141706a2802002106200141746a28020022072002107620022006200710742001417c6a280200210620012802002207200210762002200620071074200141186a2101200541686a22050d000b0b2004412c6a21002004280220210102400240200428021c4101470d00200428022822052002107620054103742205450d01200120056a2107034020012802002105200141046a2802002206200210762002200520061074200141086a22012007470d000c020b0b200428022422052002107620054103742205450d00200120056a2107034020012802002105200141046a2802002206200210762002200520061074200141086a22012007470d000b0b20002003470d000b0b0bb00701057f230041c0006b2203240002402001450d002000200141f0006c6a21040340200028020421012000280208220520021076200220012005107402400240200028020c22014102470d00200341003a00202002200341206a410110740c010b200341013a00202002200341206a41011074024020014101470d002000280214210120002802182205200210762002200120051074200028022021010240200028021c4101470d002000280228220520021076200120052002107a0c020b200041246a280200220520021076200120052002107a0c010b200341206a20002802101103002003280224210120032802282205200210762002200120051074200328023021060240200328022c4101460d002003280234220120021076200620012002107a0c010b2003280238220120021076200620012002107a024020032802382201450d00200141d8006c21074100210503400240200620056a220141346a280200450d002001413c6a280200450d00200141386a280200102e0b0240200141c4006a280200450d00200141cc006a28020041ffffffff0171450d00200141c8006a280200102e0b2007200541d8006a2205470d000b0b20032802342201450d00200141d8006c450d002006102e0b02400240200028022c22014102470d00200341003a00202002200341206a410110740c010b200341013a00202002200341206a41011074024020014101470d0020002802302101200028023822052002107620012005200210780c010b200341186a200028023011030020032802182101200328021c22052002107620012005200210780b02400240200028023c22014102470d00200341003a00202002200341206a410110740c010b200341013a00202002200341206a41011074024020014101470d00200028024021012000280248220520021076200120052002107b0c010b200341106a2000280240110300200328021021012003280214220520021076200120052002107b0b02400240200028024c4101470d0020002802502101200028025822052002107620012005200210750c010b200341086a200028025011030020032802082101200328020c22052002107620012005200210750b200041f0006a210102400240200028025c4101470d0020002802602105200028026822062002107620052006200210770c010b2003200028026011030020032802002105200328020422062002107620052006200210770b200320002d006c3a00202002200341206a410110742001210020012004470d000b0b200341c0006a24000bc10501057f230041106b2203240002402001450d002000200141d8006c6a21040340200022052802042101200528020822062002107620022001200610740240024020052d00544101460d00200341003a000f20022003410f6a410110740c010b200341013a000f20022003410f6a410110740b024002400240024020052d000c0e03000102030b200341003a000f20022003410f6a4101107420052802142101200528021822062002107620022001200610740c020b200341013a000f20022003410f6a410110742005410d6a2d0000200210732005280214210120052802182206200210762002200120061074200528022021012005280224220620021076200220012006107420032005410e6a2d00003a000f20022003410f6a410110740c010b200341023a000f20022003410f6a410110742005410d6a2d00002002107320052802142101200528021822062002107620022001200610742005280220210120052802242206200210762002200120061074200528022c2101200528023022062002107620022001200610742005410e6a2d0000200210730b0240024020052802344101470d0020052802382101200528024022062002107620022001200610740c010b20032005280238200528023c28020c11020020032802002101200328020822062002107620022001200610742003280204450d002001102e0b200541d8006a2100200528024821010240024020052802444101470d00200528025022052002107620054103742205450d01200120056a2107034020012802002105200141046a2802002206200210762002200520061074200141086a22012007470d000c020b0b200528024c22052002107620054103742205450d00200120056a2107034020012802002105200141046a2802002206200210762002200520061074200141086a22012007470d000b0b20002004470d000b0b200341106a24000b950301057f02402001450d0020002001412c6c6a21030340200022042802042101200428020822052002107620022001200510742004280210210102400240200428020c4101470d00200428021822052002107620054103742205450d01200120056a2106034020012802002105200141046a2802002207200210762002200520071074200141086a22012006470d000c020b0b200428021422052002107620054103742205450d00200120056a2106034020012802002105200141046a2802002207200210762002200520071074200141086a22012006470d000b0b2004412c6a21002004280220210102400240200428021c4101470d00200428022822052002107620054103742205450d01200120056a2106034020012802002105200141046a2802002207200210762002200520071074200141086a22012006470d000c020b0b200428022422052002107620054103742205450d00200120056a2106034020012802002105200141046a2802002207200210762002200520071074200141086a22012006470d000b0b20002003470d000b0b0be207010c7f230041206b220224002001410c6a2802002103200128020821042001280204210502400240024002400240024002400240024002400240200128020022060d002004450d01200320046b21070c020b200520066b2101024020040d00200121070c020b2001200320046b6a220720014f0d012000420137020041002107200041086a22084100360200200520066b2109410121010c040b2000420137020041002107200041086a22084100360200410121010c010b2007417f4c0d070240024020070d00410121010c010b2007102c2201450d050b20002001360200200041086a22084100360200200041046a200736020020060d010b200320046b410020041b21090c020b200520066b21092004450d010b02402009200320046b6a220a2009490d00200a21090c010b0240024020052006460d00200641016a210b0c010b2004450d0420032004460d044100210b20042106200441016a21040b200041046a210c4100210d034020042109200b210a20062d0000210602400240024002400240200d2007470d0002400240200a0d00200320096b410020091b21040c010b2005200a6b21042009450d00417f2004200320096b6a220b200b2004491b21040b200720076b417f200441016a220b200b2004491b22044f0d00200720046a22042007490d0a2007410174220b2004200b20044b1b22044108200441084b1b21040240024020070d00200241003602100c010b2002410136021820022007360214200220013602100b200220044101200241106a107d2002280208210720022802004101460d01200020022802042201360200200c20073602000b2001200d6a20063a00002008200d41016a220d360200200a0d01200a210b0c020b2007450d080c050b200a2005470d014100210b0b2009450d0520092003460d05200941016a2104200921060c010b200a41016a210b20092104200a21060c000b0b200720094f0d012007410174220a2009200a20094b1b22094108200941084b1b21090240024020070d00200241003602100c010b200241106a41086a410136020020022007360214200220013602100b200220094101200241106a107d200241086a2802002109024020022802004101460d00200020022802042201360200200041046a20093602000c020b2009450d030b1036000b4100210902402006450d0020052006460d00200520066b21090340200120062d00003a0000200141016a21012005200641016a2206470d000b0b02402004450d0020032004460d00200920046b21060340200120042d00003a0000200141016a21012003200441016a2204470d000b200320066a21090b200820093602000b200241206a24000f0b1038000bbd0101017f0240024002400240024002402002450d0020014100480d01024002400240200328020022040d002001450d010c050b200328020422030d0120010d040b200221030c050b20042003200110302203450d030c040b2000200136020420004101360200200041086a41003602000f0b20004101360200200041086a41003602000f0b2001102c22030d010b2000200136020441012103200221010c010b20002003360204410021030b20002003360200200041086a20013602000b1c002001280218419eeacc00410f2001411c6a28020028020c1100000b9f0904017f017e017f087e230041b0046b22022400200141bc016a350200210320012802b8012104200241c0016a200141b80110e9081a024002400240200241e8016a2903004201510d0020022903c80121050c010b200241f0016a290300220620022903c8012205560d010b200521060b200220063703c801024002400240200241a0026a2903004201510d0020022903c80121050c010b200241a8026a290300220620022903c8012205560d010b200521060b200220063703c801024002400240200241d8026a2903004201510d0020022903c80121050c010b200241e0026a290300220620022903c8012205560d010b200521060b200220063703c80102402004450d002006428094ebdc038020037e2006428094ebdc038220037e2206428094ebdc038042ffffffff0f2006428080808080c0b2cd3b541b2006428094ebdc03824280cab5ee0156ad7c42ffffffff0f837c21060240200241d8016a2903004201510d00200241e0016a42004200200241f0016a290300220320067d220520052003561b220320022903d0017d220520052003561b3703002002200241e8016a2903003703d8010b024020024190026a2903004201510d0020024198026a42004200200241a8026a290300220320067d220520052003561b220320024188026a2903007d220520052003561b3703002002200241a0026a290300370390020b200241c8026a2903004201510d00200241d0026a42004200200241e0026a290300220320067d220620062003561b2206200241c0026a2903007d220320032006561b3703002002200241d8026a2903003703c8020b200241f8026a200241c0016a41b80110e9081a02400240200229038003220620022903f8022203200241f8036a29030022077c580d002006420020024198046a290300220520024190046a2903005022011b540d00427e200241a8046a290300427f7c200241a0046a290300501b2007540d0020024188046a29030022085020024180046a2903002209420052710d00420020082009501b4200427f200520011b220520077d220820082005561b560d0020062003200241c0036a29030022097c580d0020064200200241e0036a2903002208200241f8026a41e0006a2903005022011b540d00427e200241f0036a290300427f7c200241e8036a290300501b2009540d00200241d0036a290300220a50200241c8036a290300220b420052710d004200200a200b501b4200427f200820011b220820097d220a200a2008561b560d0020062003200229038803220a7c580d0020064200200241a8036a290300220b200241a0036a2903005022011b540d00427e200241b8036a290300427f7c200241b0036a290300501b200a540d0020024198036a29030022065020024190036a290300220c420052710d0042002006200c501b4200427f200b20011b2206200a7d220b200b2006561b560d002006502006200a5620062003567172450d00200850200820095620082003567172450d002005502005200756200520035671720d010b200241013a000241d3a0c00041e000200241026a41ec9fc00041b4a1c000103e000b2000200241086a200241f8026a41b80110e90841b80110e9081a200241b0046a24000ba90803197e017f147e20002903c0012101200029039801210220002903702103200029034821042000290320210520002903b8012106200029039001210720002903682108200029034021092000290318210a20002903b001210b200029038801210c2000290360210d2000290338210e2000290310210f20002903a8012110200029038001211120002903582112200029033021132000290308211420002903a00121152000290378211620002903502117200029032821182000290300211941c07e211a0340200b200c200d200e200f85858585221b4201892015201620172018201985858585221c85221d201385211e20012006200720082009200a85858585221f201c42018985221c85212020012002200320042005858585852221420189201b85221b2009854237892222201f4201892010201120122013201485858585220985221f200f85423e892223427f8583201d201085420289222485210120222021200942018985220f20168542298922212003201c854227892225427f8583852110201b2006854238892226201f200c85420f892227427f8583201d201285420a89222885210c2028200f2018854224892229427f85832005201c85421b89222a852116200f2015854212892215201f200e85420689222b201d201485420189222c427f85838521032002201c85420889222d201b200885421989222e427f8583202b8521122004201c85421489221c201b200a85421c89220a427f8583201f200b85423d89220e852104200a200e427f8583201d201185422d89221d852109200f2017854203892214200e201d427f858385210e201d2014427f8583201c852113200a2014201c427f8583852118201b200785421589221d200f201985221c2020420e89221b427f858385210a201b201d427f8583201f200d85422b89221f85210f201d201f427f8583201e422c89221d852114201a4198a3c0006a290300201c201f201d427f85838585211920262029202a427f858385221f2102201d201c427f8583201b85221d2105202120232024427f858385221c2106202a2026427f8583202785221b2107202c2015427f8583202d852226210820242021427f85832025852224210b202e2015202d427f8583852221210d202920272028427f8583852227211120252022427f858320238522222115202e202b427f8583202c8522232117201a41086a221a0d000b200020223703a00120002016370378200020233703502000201837032820002019370300200020103703a8012000202737038001200020123703582000201337033020002014370308200020243703b0012000200c37038801200020213703602000200e3703382000200f3703102000201c3703b8012000201b3703900120002026370368200020093703402000200a370318200020013703c0012000201f3703980120002003370370200020043703482000201d3703200be61801037f230041f0016b22032400200341106a41126a410041b60110eb081a2003411e6a41002800b6a340360100200341002f00aca3403b0114200341002800a8a340360210200341002900aea340370116200341106a1080012000200341106a41c80110e908220041003a00ca01200041003b01c801200041124100108201024020002d00c801220441c7014b0d00200020046a220420042d000041cd00733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220441a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441c8014f0d010b200020046a220420042d000041e500733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220441a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441c7014b0d010b200020046a220420042d000041f200733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220441a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441c7014b0d010b200020046a220420042d000041ec00733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220441a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441c7014b0d010b200020046a220420042d000041e900733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220441a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441c7014b0d010b200020046a220420042d000041ee00733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220441a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441c7014b0d010b200020046a220420042d00004120733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220441a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441c7014b0d010b200020046a220420042d000041f600733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220441a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441c7014b0d010b200020046a220420042d00004131733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220441a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441c7014b0d010b200020046a220420042d0000412e733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220441a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441c7014b0d010b200020046a220420042d00004130733a0000200020002d00c80141016a22043a00c8010240200441ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a7012000108001200041003b01c8010b2003200236020c200041124100108201024020002d00c801220441c8014f0d00200020046a220420042d000041e400733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220541a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200541c8014f0d010b2000200441ff01716a220420042d000041ef00733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220541a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200541c7014b0d010b2000200441ff01716a220420042d000041ed00733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220541a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200541c7014b0d010b2000200441ff01716a220420042d0000412d733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220541a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200541c7014b0d010b2000200441ff01716a220420042d000041f300733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220541a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200541c7014b0d010b2000200441ff01716a220420042d000041e500733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220541a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200541c7014b0d010b200041ca016a21052000200441ff01716a220420042d000041f000733a0000200020002d00c80141016a22043a00c8010240200441ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010b200341123a00df01024020052d00004112460d00200341e0016a410c6a4109360200200341246a4102360200200341106a410c6a4102360200200341186a41aca4c000360200200341023602142003419ca4c000360210200341093602e401200320053602e001200341206a200341e0016a3602002003200341df016a3602e8012005200341df016a200341106a41eca4c000108301000b0240200441ff0171220541c7014b0d00200020056a220420042d000020032d000c733a0000200020002d00c80141016a22043a00c80102400240200441ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200441ff017141c8014f0d010b2000200441ff01716a220420042d000020032d000d733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220541a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200541c7014b0d010b2000200441ff01716a220420042d000020032d000e733a0000200020002d00c80141016a22043a00c80102400240200441ff0171220541a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010c010b200541c7014b0d010b2000200441ff01716a220420042d000020032d000f733a0000200020002d00c80141016a22043a00c8010240200441ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a7012000108001200041003b01c8010b200041024100108201024002402002450d0020002d00c80121040340200441ff0171220441c7014b0d02200020046a220420042d000020012d0000733a0000200020002d00c80141016a22043a00c8010240200441ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002104200041003b01c8010b200141016a21012002417f6a22020d000b0b200341f0016a24000f0b200441c80141bca3c000103c000b200441ff017141c80141bca3c000103c000b200441ff017141c80141bca3c000103c000b200441c80141bca3c000103c000bd30501027f230041306b22032400200320013a000702400240024002402002450d0020002d00ca01200141ff0171460d01200341086a410c6a41093602002003412c6a4102360200200341186a410c6a4102360200200341206a41aca4c0003602002003410236021c2003419ca4c0003602182003410936020c2003200041ca016a2200360208200341286a200341086a3602002003200341076a3602102000200341076a200341186a41eca4c000108301000b2003200141087122023a00080240024020020d00200020013a00ca0120002d00c9012104200020002d00c801220241016a3a00c901200320013a0019200320043a00180240200241c7014b0d00200020026a220120012d000020032d0018733a0000200020002d00c80141016a22023a00c8010240200241ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002102200041003b01c8010c030b200141c801490d020b200241ff017141c80141bca3c000103c000b2003412c6a4100360200200341286a41d4e2cc003602002003420137021c200341fca4c000360218200341086a41aad3c800200341186a4184a5c000108301000b2000200241ff01716a220120012d000020032d0019733a0000200020002d00c80141016a22013a00c8010240200141ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002101200041003b01c8010b20032d0007412471450d00200141ff01712201450d00200141c7014b0d01200020016a220120012d000020002d00c901733a000020002d00c80141016a41ff0171220141c8014f0d02200020016a220120012d00004104733a0000200020002d00a701418001733a00a7012000108001200041003b01c8010b200341306a24000f0b200141c8014194a5c000103c000b200141c80141a4a5c000103c000b6601017f230041206b220424002004200136020420042000360200200441086a41106a200241106a290200370300200441086a41086a200241086a2902003703002004200229020037030820044198a3c000200441046a4198a3c000200441086a20031058000b960801027f230041306b2205240020052004360200200041124100108201024002400240024002402002450d0020002d00c80121060340200641ff0171220641c7014b0d02200020066a220620062d000020012d0000733a0000200020002d00c80141016a22063a00c8010240200641ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002106200041003b01c8010b200141016a21012002417f6a22020d000b0b200541123a000720002d00ca014112470d0120002d00c801220641c7014b0d03200020066a220620062d000020052d0000733a0000200020002d00c80141016a22063a00c8010240200641ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002106200041003b01c8010c030b200141c801490d020c030b200641c80141bca3c000103c000b200541206a410c6a41093602002005411c6a4102360200200541086a410c6a4102360200200541106a41aca4c0003602002005410236020c2005419ca4c000360208200541093602242005200041ca016a2200360220200541186a200541206a3602002005200541076a3602282000200541076a200541086a41eca4c000108301000b2000200641ff01716a220620062d000020052d0001733a0000200020002d00c80141016a22063a00c80102400240200641ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002106200041003b01c8010c010b200141c7014b0d010b2000200641ff01716a220620062d000020052d0002733a0000200020002d00c80141016a22063a00c80102400240200641ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002106200041003b01c8010c010b200141c7014b0d010b2000200641ff01716a220620062d000020052d0003733a0000200020002d00c80141016a22063a00c8010240200641ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a7012000108001200041003b01c8010b200041024100108201024002402004450d0020002d00c80121060340200641ff0171220641c7014b0d02200020066a220620062d000020032d0000733a0000200020002d00c80141016a22063a00c8010240200641ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002106200041003b01c8010b200341016a21032004417f6a22040d000b0b200541306a24000f0b200641c80141bca3c000103c000b200641ff017141c80141bca3c000103c000be00e01027f230041c0006b220424002004200337030820044108360210200041124100108201024002400240024002402002450d0020002d00c80121050340200541ff0171220541c7014b0d02200020056a220520052d000020012d0000733a0000200020002d00c80141016a22053a00c8010240200541ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010b200141016a21012002417f6a22020d000b0b200441123a001720002d00ca014112470d0120002d00c801220541c7014b0d03200020056a220520052d000020042d0010733a0000200020002d00c80141016a22053a00c8010240200541ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010c030b200141c801490d020c030b200541c80141bca3c000103c000b200441306a410c6a41093602002004412c6a4102360200200441186a410c6a4102360200200441206a41aca4c0003602002004410236021c2004419ca4c000360218200441093602342004200041ca016a2200360230200441286a200441306a3602002004200441176a3602382000200441176a200441186a41eca4c000108301000b2000200541ff01716a220520052d000020042d0011733a0000200020002d00c80141016a22053a00c80102400240200541ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010c010b200141c7014b0d010b2000200541ff01716a220520052d000020042d0012733a0000200020002d00c80141016a22053a00c80102400240200541ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010c010b200141c7014b0d010b2000200541ff01716a220520052d000020042d0013733a0000200020002d00c80141016a22053a00c8010240200541ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a7012000108001200041003b01c8010b200041024100108201024020002d00c801220541c8014f0d00200020056a220520052d000020042d0008733a0000200020002d00c80141016a22053a00c80102400240200541ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010c010b200141c8014f0d010b2000200541ff01716a220520052d000020042d0009733a0000200020002d00c80141016a22053a00c80102400240200541ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010c010b200141c7014b0d010b2000200541ff01716a220520052d000020042d000a733a0000200020002d00c80141016a22053a00c80102400240200541ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010c010b200141c7014b0d010b2000200541ff01716a220520052d000020042d000b733a0000200020002d00c80141016a22053a00c80102400240200541ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010c010b200141c7014b0d010b2000200541ff01716a220520052d000020042d000c733a0000200020002d00c80141016a22053a00c80102400240200541ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010c010b200141c7014b0d010b2000200541ff01716a220520052d000020042d000d733a0000200020002d00c80141016a22053a00c80102400240200541ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010c010b200141c7014b0d010b2000200541ff01716a220520052d000020042d000e733a0000200020002d00c80141016a22053a00c80102400240200541ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002105200041003b01c8010c010b200141c7014b0d010b2000200541ff01716a220520052d000020042d000f733a0000200020002d00c80141016a22053a00c8010240200541ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a7012000108001200041003b01c8010b200441c0006a24000f0b200541ff017141c80141bca3c000103c000b200541ff017141c80141bca3c000103c000bb80801027f230041306b2205240020052004360200200041124100108201024002400240024002402002450d0020002d00c80121060340200641ff0171220641c7014b0d02200020066a220620062d000020012d0000733a0000200020002d00c80141016a22063a00c8010240200641ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002106200041003b01c8010b200141016a21012002417f6a22020d000b0b200541123a000720002d00ca014112470d0120002d00c801220641c7014b0d03200020066a220620062d000020052d0000733a0000200020002d00c80141016a22063a00c8010240200641ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002106200041003b01c8010c030b200141c801490d020c030b200641c80141bca3c000103c000b200541206a410c6a41093602002005411c6a4102360200200541086a410c6a4102360200200541106a41aca4c0003602002005410236020c2005419ca4c000360208200541093602242005200041ca016a2200360220200541186a200541206a3602002005200541076a3602282000200541076a200541086a41eca4c000108301000b2000200641ff01716a220620062d000020052d0001733a0000200020002d00c80141016a22063a00c80102400240200641ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002106200041003b01c8010c010b200141c7014b0d010b2000200641ff01716a220620062d000020052d0002733a0000200020002d00c80141016a22063a00c80102400240200641ff0171220141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002106200041003b01c8010c010b200141c7014b0d010b2000200641ff01716a220620062d000020052d0003733a0000200020002d00c80141016a22063a00c8010240200641ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a7012000108001200041003b01c8010b20004107410010820102402004450d0020002d00c8012106024002400340200641ff0171220641c7014b0d012003200020066a2d00003a000020002d00c801220641c7014b0d02200020066a41003a0000200020002d00c80141016a22063a00c8010240200641ff017141a601470d00200020002d00a60120002d00c901733a00a601200020002d00a701418401733a00a701200010800141002106200041003b01c8010b200341016a21032004417f6a22040d000c030b0b200641c80141a4a6c000103c000b200641c80141b4a6c000103c000b200541306a24000f0b200641ff017141c80141bca3c000103c000bc60201037f23004180016b2202240020002802002100024002400240024020012802002203411071450d0020002d00002104410021000340200220006a41ff006a2004410f712203413072200341d7006a2003410a491b3a00002000417f6a21002004410476410f7122040d000b20004180016a22044181014f0d02200141ac88c0004102200220006a4180016a410020006b104b21000c010b20002d0000210402402003412071450d00410021000340200220006a41ff006a2004410f712203413072200341376a2003410a491b3a00002000417f6a21002004410476410f7122040d000b20004180016a22044181014f0d03200141ac88c0004102200220006a4180016a410020006b104b21000c010b2004ad42ff01832001104821000b20024180016a240020000f0b2004418001419c88c0001056000b2004418001419c88c0001056000b820401027f230041106b220224000240024002400240024002400240024002402000280200417b6a2203410220034108491b0e080102030405060700010b200128021841e4a6c000410c2001411c6a28020028020c11000021010c070b200128021841f0a6c00041102001411c6a28020028020c11000021010c060b20012802184180a7c00041132001411c6a28020028020c11000021010c050b200220012802184193a7c000410c2001411c6a28020028020c1100003a000820022001360200200241003a0009200241003602042002200036020c20022002410c6a41a0a7c00010661a20022d0008210120022802042203450d04200141ff0171210041012101024020000d00024020034101470d0020022d000941ff0171450d00200228020022002d00004104710d0041012101200028021841f79ec00041012000411c6a28020028020c1100000d010b2002280200220128021841f89ec00041012001411c6a28020028020c11000021010b200220013a00080c040b200128021841b0a7c000410b2001411c6a28020028020c11000021010c030b200128021841bba7c000410c2001411c6a28020028020c11000021010c020b200128021841c7a7c000410d2001411c6a28020028020c11000021010c010b200128021841d4a7c000410c2001411c6a28020028020c11000021010b200241106a2400200141ff01714100470b1c002001280218419eeacc00410f2001411c6a28020028020c1100000bd10201057f230041106b22022400024002400240024002400240024002400240024020012d00000e06010203040500010b20024181ca003b01082002200141216a3602042002200141016a3602000c050b410110322201450d062000428180808010370204200020013602000c050b2001410c6a22032802002204412020044120491b220541016a2204102c2206450d0520062004200410eb082106200328020022032005490d06200641016a200141046a280200200510e9081a2000200436020820002004360204200020063602000c040b20024181c4003b01082002200141216a3602042002200141016a3602000c020b20024181c6003b01082002200141216a3602042002200141016a3602000c010b20024181c8003b01082002200141216a3602042002200141016a3602000b20002002108b010b200241106a24000f0b1036000b2005200341b8aac000104d000bef06010c7f230041206b22022400200141096a2d0000210320012802042104200128020021050240024002400240024002400240024002400240024020012d000822064102470d0002402005450d00200420056b21070c020b2000420137020041002107200041086a22084100360200410121010c030b20064101462101024020050d00200121070c020b2001200420056b6a220720014f0d002000420137020041002107200041086a2208410036020041012101200641014621090c040b2007417f4c0d080b0240024020070d00410121010c010b2007102c2201450d050b20002001360200200041086a22084100360200200041046a200736020020064102470d010b200420056b410020051b21090c020b200641014621092005450d010b02402009200420056b6a220a2009490d00200a21090c010b200041046a210b410021090340024002400240200641ff01714102470d002003210a0c010b4100210a2006410171450d00410021060c010b2005450d0520052004460d0520052d0000210341022106200541016a21050b0240024020092007470d00200720076b417f200420056b410020051b220c41016a220d200d200c491b220c4f0d002007200c6a220c2007490d072007410174220d200c200d200c4b1b220c4108200c41084b1b210c0240024020070d00200241003602100c010b2002410136021820022007360214200220013602100b2002200c4101200241106a107d2002280208210720022802004101460d01200020022802042201360200200b20073602000b200120096a20033a00002008200941016a2209360200200a21030c010b0b2007450d040c010b200720094f0d012007410174220a2009200a20094b1b22094108200941084b1b21090240024020070d00200241003602100c010b200241106a41086a410136020020022007360214200220013602100b200220094101200241106a107d200241086a2802002107024020022802004101460d00200020022802042201360200200041046a20073602000c020b2007450d030b1036000b410021070240024020060e03010001000b200120033a000041012107200141016a21010b02402005450d0020042005460d00200720056b21070340200120052d00003a0000200141016a21012004200541016a2205470d000b200420076a21070b200820073602000b200241206a24000f0b1038000bc10201067f230041206b2202240041002103024002400240200141016a2204200028020422054d0d000240200041146a22062802002201200041106a280200470d00200141016a22032001490d03200141017422072003200720034b1b22034104200341044b1b220341ffffffff03712003464102742107200341027421030240024020010d00200241003602100c010b200241186a4104360200200220014102743602142002200028020c3602100b200220032007200241106a107d200241086a280200210320022802004101460d022000200228020436020c200041106a20034102763602000b200028020c220341046a2003200141027410ea081a2003200420056b36020020002004360204410121032006200141016a3602002000200028020041016a3602000b200241206a240020030f0b2003450d001036000b1038000bc60101097f200141146a28020022034102742104200128020c210520012802002106417f210720012802042208210902400340024020040d00410021040c020b200741016a21072004417c6a21042005280200210a200920024b210b200541046a21052009200a6b2109200b0d000b200620036b2205210402402003200b20076a2209490d00200141146a20093602002006200b6b20076b21040b20002005360204200041086a2004360200410121040b20002004360200200120082002200820024b1b3602040b810201057f0240024020012802042202450d002001280200210303402002418c016a210420022f018a012105410021010240034020052001460d01418fafc0002004410810ec082206450d04200141016a2101200441086a21042006417f4a0d000b2001417f6a21050b2003450d012003417f6a2103200220054102746a41e4016a28020021020c000b0b200041003602042000410c6a4128360200200041086a4197afc000360200200041013602000f0b024020022001410c6c6a2201410c6a2802004108490d00200041086a200141046a280200290000370300200041003602000f0b20004201370300200041086a41bfafc000ad42808080809005843702000b1c00200128021841a2b3c000410b2001411c6a28020028020c1100000b1c00200128021841adb3c00041052001411c6a28020028020c1100000b800201047f230041206b2202240002400240200041046a280200200041086a2802002203460d00200028020021040c010b0240200341016a22042003490d00200341017422052004200520044b1b22044108200441084b1b21040240024020030d00200241003602100c010b200241106a41086a410136020020022003360214200220002802003602100b200220044101200241106a107d200241086a2802002103024020022802004101460d00200020022802042204360200200041046a2003360200200041086a28020021030c020b2003450d001036000b1038000b200420036a20013a0000200041086a2200200028020041016a360200200241206a24000bc004010b7f23004180016b2203240002400240024002400240200220012802044105762204200420024b1b22054105742204417f4c0d000240024020050d00410121060c010b2004102c2206450d030b024020020d00410021020c040b200341c8006a41017221044100210741002108410021090340200341c8006a2001109301200341286a41086a220a200441086a290000370300200341286a41106a220b200441106a290000370300200341286a41186a220c200441186a2900003703002003200429000037032820032d00484101460d02200341086a41186a220d200c290300370300200341086a41106a220c200b290300370300200341086a41086a220b200a290300370300200320032903283703080240024020092005470d002007200941016a220a2007200a4b1b220a4104200a41044b1b220a41ffffff3f71200a462105200a410574210a0240024020090d00200341003602480c010b200341013602502003200836024c200320063602480b200341f0006a200a2005200341c8006a107d2003280278210a20032802704101460d0120032802742106200a41057621050b200620086a220a2003290308370000200a41186a200d290300370000200a41106a200c290300370000200a41086a200b290300370000200741026a2107200841206a21082002200941016a2209460d050c010b0b200a0d020b1038000b20004100360200200541ffffff3f71450d022006102e0c020b1036000b2000200536020420002006360200200041086a20023602000b20034180016a24000bfd0202047f047e230041b0016b2202240041002103200241003a00682001280204417f6a210402400240024003402004417f460d01200241c8006a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00682004417f6a21042005210320054120470d000b200241f0006a41086a2204200241c8006a41086a290300370300200241f0006a41106a2201200241c8006a41106a290300370300200241f0006a41186a2203200241c8006a41186a29030037030020022002290348370370200541ff0171411f4d0d01200241286a41186a20032903002206370300200241086a41086a20042903002207370300200241086a41106a20012903002208370300200241086a41186a2006370300200220022903702209370308200041196a2006370000200041116a2008370000200041096a200737000020002009370001410021040c020b200341ff0171450d00200241003a00680b410121040b200020043a0000200241b0016a24000bcc0403027f017e077f230041a0076b2203240002400240024002400240024002402002200128020028020441b0026e2204200420024b1bad42b0027e2205422088a70d002005a72204417f4c0d000240024020040d00410821060c010b2004102c2206450d040b2001200128020441016a2207360204200441b0026e210802400240200720012802084b0d0020020d01410021020c070b200041003602000c030b200341e0046a41047221094100210a41002104410021070340200341e0046a200110950120032802e004210b200341b4026a200941ac0210e9081a200b411c460d02200341086a200341b4026a41ac0210e9081a0240024020072008470d00200a200741016a2208200a20084b1b22084104200841044b1bad42b0027e2205422088a74541037421082005a7210c0240024020070d00200341003602e0040c010b200341083602e804200320043602e404200320063602e0040b20034190076a200c2008200341e0046a107d20032802980721082003280290074101460d012003280294072106200841b0026e21080b200620046a220c200b360200200c41046a200341086a41ac0210e9081a200a41026a210a200441b0026a21042002200741016a2207460d060c010b0b20080d030b1038000b200041003602002007450d002006210703402007109601200741b0026a2107200441d07d6a22040d000b0b2008450d03200841b0026c450d032006102e0c030b1036000b200128020421070b2000200836020420002006360200200041086a200236020020012007417f6a3602040b200341a0076a24000b93e9030d057f017e037f027e027f077e0f7f027e017f027e017f017e0e7f230041c01a6b220224000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020060e250102030405060708090a290b0c0d0e0f101112132929292914151629172e2d2929292c2b2a290b2000411c3602000c560b200128020022032802042204450d54200328020022052d0000210620032004417f6a3602042003200541016a36020002400240024002400240024002400240024002400240024020060e0a00010203040506070809600b2001280200220128020422034104490d5f20012802002205280000210420012003417c6a3602042001200541046a3602002004418194ebdc034f0d5f410121010c0a0b2002200110ad0120022802000d5e20012802002205280204220620022802042203490d5e2003417f4c0d560240024020030d00410121040c010b200310322204450d5c2001280200220528020421060b20062003490d5d20042005280200200310e9082101200528020422062003490d302005200620036b3602042005200528020020036a3602002001450d5e2003ad220742208620078421074102410b20011b21010c080b2001280200220128020422034108490d5d2001280200220429000021072001200341786a3602042001200441086a360200410321010c080b200241086a200110ad0120022802080d5c200128020022052802042206200228020c2203490d5c2003417f4c0d540240024020030d00410121040c010b200310322204450d5a2001280200220528020421060b20062003490d5b20042005280200200310e9082101200528020422062003490d262005200620036b3602042005200528020020036a3602002001450d5c2003ad220742208620078421074104410b20011b21010c060b200241106a200110ad0120022802100d5b20012802002205280204220620022802142203490d5b2003417f4c0d530240024020030d00410121040c010b200310322204450d592001280200220528020421060b20062003490d5a20042005280200200310e9082101200528020422062003490d242005200620036b3602042005200528020020036a3602002001450d5b2003ad220742208620078421074105410b20011b21010c050b200241c0156a200110fd0520022802c01522044102460d5a20022902c4152107410621010c040b200241286a200110ad0120022802280d59200228022c2206200128020028020441186e2203200320064b1bad42187e2207422088a70d512007a72203417f4c0d510240024020030d00410421040c010b2003102c2204450d570b2001200128020441016a2205360204200341186ead2107200520012802084b0d57024002402006450d000340200241206a200110ad0120022802200d5a20012802002205280204220820022802242203490d5a2003417f4c0d540240024020030d00410121090c010b200310322209450d5a2001280200220528020421080b0240024020082003490d0020092005280200200310e90821082005280204220a2003490d2f2005200a20036b3602042005200528020020036a3602002008450d5c200241186a200110ad012003ad220b422086200b84220ca7210d024020022802180d0020012802002205280204220a200228021c2203490d002003417f4c0d570240024020030d004101210e0c010b20031032220e450d5d20012802002205280204210a0b02400240200a2003490d00200e2005280200200310e908210a2005280204220e20034f0d012003200e41b8b2c0001056000b200e102e0c010b2005200e20036b3602042005200528020020036a360200200a0d020b200d450d5c0b2009102e0c5b0b02402007422088220ba722052007a7470d00200541016a22092005490d552005410174220e20092009200e491b22094104200941044b1bad42187e220b422088a7454102742109200ba7210e0240024020050d00200241003602c0150c010b200241043602c815200220043602c0152002200541186c3602c4150b200241e0076a200e2009200241c0156a107d20022802e807210920022802e0074101460d0320022802e40721042007422088220ba72105200941186ead21070b2004200541186c6a2205200d36020420052008360200200541146a2003ad220f422086200f84220f422088a73602002005410c6a200f422086200aad84370200200541086a200c422088a7360200200b422086200742ffffffff0f83844280808080107c21072006417f6a22060d000b200128020421050b20012005417f6a3602042004450d5a4107410b20041b21010c040b2009450d510c560b200241c0156a200110e80120022802c0152204450d5820022902c4152107410821010c020b200241306a200110ad0120022802300d5720012802002205280204220620022802342203490d572003417f4c0d4f0240024020030d00410121040c010b200310322204450d552001280200220528020421060b20062003490d5620042005280200200310e9082106200528020422082003490d1f2005200820036b3602042005200528020020036a3602002006450d572003ad2207422086200784210702402001280200220128020422054104490d0020012802002206280000210320012005417c6a3602042001200641046a360200410921010c030b2007a70d560c570b200241386a200110ad0120022802380d56200128020022052802042206200228023c2203490d562003417f4c0d4e0240024020030d00410121040c010b200310322204450d542001280200220528020421060b20062003490d5520042005280200200310e9082101200528020422062003490d1d2005200620036b3602042005200528020020036a3602002001450d562003ad22074220862007842107410a410b20011b21010b0b20004100360200200041186a2003360200200041106a20073702002000410c6a2004360200200041086a2001360200200041206a200241f0176a41900210e9081a0c550b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020002400240024002400240024002400240024020060e06000102030405090b2001280200220428020422054104490d0820042802002206280000210320042005417c6a3602042004200641046a360200200241f0176a200110fd0520022802f01722044102460d08200128020022062802042209450d08200241f8176a280200210820022802f417210a2006280200220d2d0000210520062009417f6a3602042006200d41016a3602002001200128020441016a2206360204200620012802084b0d08200241f0176a200110950120022802f0172109200241c0156a200241f0176a41047241ac0210e9081a2009411c460d08200241f0176a200241c0156a41ac0210e9081a41b002102c2206450d5920062009360200200641046a200241f0176a41ac0210e9081a20012001280204417f6a36020441012101420021070c050b2001280200220428020422054104490d0720042802002206280000210320042005417c6a3602042004200641046a3602002001280200220128020422054104490d0720012802002206280000210420012005417c6a3602042001200641046a3602004102210141002106420021070c040b200241c0006a200110ad0120022802400d0620012802002205280204220620022802442204490d062004417f4c0d520240024020040d00410121030c010b200410322203450d582001280200220528020421060b20062004490d0520032005280200200410e9082106200528020422082004490d2a2005200820046b3602042005200528020020046a3602002006450d062004ad2207422086200784220ba721042001280200220528020422064104490d042005280200220a280000210820052006417c6a3602042005200a41046a360200200241f0176a200110fd0520022802f01722064102460d042001280200220a2802042209450d0420022902f4172107200a280200220d2d00002105200a2009417f6a360204200a200d41016a3602002001200128020441016a220a360204200a20012802084b0d04200241f0176a200110950120022802f017210d200241c0156a200241f0176a41047241ac0210e9081a200d411c460d04200241f0176a200241c0156a41ac0210e9081a41b002102c2209450d57200b422088a7210a2009200d360200200941046a200241f0176a41ac0210e9081a20012001280204417f6a360204410321010c030b200241c8006a200110ad0120022802480d05200128020022052802042206200228024c2204490d052004417f4c0d510240024020040d00410121030c010b200410322203450d572001280200220528020421060b20062004490d0420032005280200200410e9082101200528020422062004490d1f2005200620046b3602042005200528020020046a3602002001450d052004ad22074220862007842207422088a7210a2007a721044104210141002106410021080c020b2001280200220428020422054104490d0420042802002206280000210320042005417c6a3602042004200641046a360200200241f0176a200110fd0520022802f01722044102460d04200128020022062802042208450d0420022902f41721072006280200220a2d0000210520062008417f6a3602042006200a41016a3602002001200128020441016a2206360204200620012802084b0d04200241f0176a200110950120022802f0172108200241c0156a200241f0176a41047241ac0210e9081a2008411c460d04200241f0176a200241c0156a41ac0210e9081a41b002102c2206450d5520062008360200200641046a200241f0176a41ac0210e9081a20012001280204417f6a3602042007422088a721082007a7210a41052101420021070c010b200241d0006a200110ad0120022802500d0320012802002205280204220620022802542204490d032004417f4c0d4f0240024020040d00410121030c010b200410322203450d552001280200220528020421060b20062004490d0220032005280200200410e9082106200528020422082004490d1c2005200820046b3602042005200528020020046a3602002006450d032004ad2207422086200784220ba721042001280200220528020422064104490d012005280200220a280000210820052006417c6a3602042005200a41046a360200200241f0176a200110fd0520022802f01722064102460d012001280200220a2802042209450d0120022902f4172107200a280200220d2d00002105200a2009417f6a360204200a200d41016a3602002001200128020441016a220a360204200a20012802084b0d01200241f0176a200110950120022802f017210d200241c0156a200241f0176a41047241ac0210e9081a200d411c460d01200241f0176a200241c0156a41ac0210e9081a41b002102c2209450d54200b422088a7210a2009200d360200200941046a200241f0176a41ac0210e9081a20012001280204417f6a360204410621010b200020053a0005200020013a000420004101360200200041246a20093602002000411c6a2007370200200041186a2006360200200041146a2008360200200041106a200a3602002000410c6a2004360200200041086a2003360200200041286a200241e0076a41880210e9081a0c570b2004450d010b2003102e0b2000411c3602000c540b200128020022032802042204450d4e200328020022052d0000210620032004417f6a3602042003200541016a3602000240024002400240024020060e03000103530b200241f0176a2001109802200241fc176a2802002204450d5220024184186a280200210320024180186a280200210520022802f817210920022903f0172107200241e0076a20024188186a41e40010e9081a200241f4186a2802002108200241f0176a4180016a2802002106200241ec186a280200210a200241c0156a200241f8186a41800110e9081a200241f0176a200110f601024020022802f417450d00200241fc176a290200210c20022902f417210b20022802f0172101200241a80e6a200241e0076a41e40010e9081a200241d8116a200241c0156a41800110e9081a4101210d0c040b02402003450d00200341246c21032004210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012003415c6a22030d000b0b02402005450d00200541246c450d002004102e0b02402008450d00200841246c2103200a210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012003415c6a22030d000b0b2006450d52200641246c0d010c520b200241f0176a2001109802200241fc176a2802002204450d5120024184186a280200210320024180186a280200210520022802f817210920022903f0172107200241e0076a20024188186a41e40010e9081a200241f4186a2802002108200241f0176a4180016a2802002106200241ec186a280200210a200241c0156a200241f8186a41800110e9081a200241f0176a200110f601024020022802f417450d00200241fc176a290200210c20022902f417210b20022802f0172101200241a80e6a200241e0076a41e40010e9081a200241d8116a200241c0156a41800110e9081a4102210d0c030b02402003450d00200341246c21032004210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012003415c6a22030d000b0b02402005450d00200541246c450d002004102e0b02402008450d00200841246c2103200a210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012003415c6a22030d000b0b2006450d51200641246c450d510b200a102e0c500b200128020022032802042204450d4f200328020022052d0000210620032004417f6a3602042003200541016a36020020064101470d4f2001280200220328020422044108490d4f20032802002205290000210b2003200441786a3602042003200541086a3602002001280200220328020422044108490d4f20032802002205290000210c2003200441786a3602042003200541086a360200200128020022012802042203450d4f200128020022042d0000210520012003417f6a3602042001200441016a3602004200210702400240024020050e03020001520b420121070c010b420221070b200241a80e6a200241d8146a41e40010e9081a200241d8116a200241e0076a41800110e9081a4103210d0b200241d00a6a200241a80e6a41e40010e9081a20024198106a200241d8116a41800110e9081a200041186a200c370200200041106a200b370200200041346a2003360200200041306a20053602002000412c6a2004360200200041286a2009360200200041206a20073702002000410c6a2001360200200041086a200d36020020004102360200200041386a200241d00a6a41e40010e9081a200041a4016a2008360200200041a0016a20063602002000419c016a200a360200200041a8016a20024198106a41800110e9081a0c530b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020060d00200241d8006a200110da042002290358a70d002002290360210720004103360200200041086a2007370300200041106a200241f0176a41a00210e9081a0c530b2000411c3602000c520b200128020022032802042204450d49200328020022052d0000210620032004417f6a3602042003200541016a3602000240024002400240024020060e0500010203044e0b2001280200220128020422044104490d4d20012802002205280000210320012004417c6a3602042001200541046a36020042002107410121084200210b0c4f0b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2203200241c0156a410f6a290000370000200241e0076a41086a2204200241c0156a41086a290300370300200241d8116a410f6a22052003290000370000200241d8116a41086a2203200429030037030020024198106a41086a2204200329030037030020024198106a410f6a22032005290000370000200220022903c01537039810200241df156a310000210b20022900d7152107200241f8136a410f6a22052003290000370000200241f8136a41086a200429030037030020022002290398103703f8132001280200220128020422084104490d4d2005280000210a200228008b14210920022900ff13210c20022800fb13210320022f00f913210420022d00f81321052001280200220d280000210620012008417c6a3602042001200d41046a36020020022007421888a73b00eb1420022007421088a73a00ea1420022007a73b01e81420022009ad422086200aad843703e01420022007422888200b42188684a722013600ed142001411076210a2002200c3703d814200c421888a7210d200c420888a72109200241d8146a410f6a290000210b20022900df142107200ca7210e410221080c4f0b200441ff0171450d4c200241003a00e0150c4c0b2001280200220128020422044104490d4b20012802002205280000210320012004417c6a3602042001200541046a36020042002107410321080c4c0b41002104200241003a00e0150240024002400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2203200241c0156a410f6a290000370000200241e0076a41086a2204200241c0156a41086a290300370300200241d8116a410f6a22052003290000370000200241d8116a41086a2203200429030037030020024198106a41086a2204200329030037030020024198106a410f6a22032005290000370000200220022903c01537039810200241df156a310000210b20022900d7152107200241f8136a410f6a22052003290000370000200241f8136a41086a200429030037030020022002290398103703f81320012802002208280204220a4104490d4d2005280000210d200228008b14210e20022900ff13210c20022800fb13210320022f00f913210420022d00f81321052008280200220928000021062008200a417c6a3602042008200941046a360200200128020022012802042208450d4d2001280200220a2d0000210920012008417f6a3602042001200a41016a3602004100210120090e0202014d0b200441ff0171450d4c200241003a00e0150c4c0b410121010b2002200e3602f4092002200d3602f009200220073703f8092007423888200b42ff018342088684a7210a2002200c3703e809200c421888a7210d200c420888a72109200241f7096a290000210b20022900ef092107200ca7210e410421080c4c0b2001280200220128020422044104490d4920012802002205280000210320012004417c6a3602042001200541046a36020042002107410521080c4a0b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a360200024002400240024002400240024020060e0400010203070b200241c0156a200110eb0120022d00c0154105460d06200241c0156a41106a290300210b200241c8156a2903002107200241e0156a2802002103200241d8156a290300210c20022802c415210520022802c0152104200241e8006a200110820202402002290368a70d00200241e8006a41106a29030021102005ad4220862004ad8421112002290370220f422088a72105200fa72104410121010c040b200441ff01714102470d062007a7450d062005102e0c060b200241c0156a200110eb0120022d00c0154105460d05200241c0156a41106a290300210b200241e0156a2802002103200241d8156a290300210c200241c8156a290300210720022802c415210520022802c015210420024198016a2001108202200229039801a70d0420024198016a41106a290300211020022903a001210f20024180016a2001108202200229038001a70d0420024180016a41106a290300211220022903880121132005ad4220862004ad842111200f422088a72105200fa72104410221010c020b200241c0156a200110eb0120022d00c0154105460d04200241c0156a41106a290300210b200241e0156a22042802002103200241d8156a290300210c200241c0156a41086a2205290300210720022802c415210820022802c0152106200241c0156a200110eb01024020022d00c0154105460d00200241d8116a41086a200241c0156a41146a290200370300200241d8116a41106a200241dc156a2802003602002002200241c0156a410c6a2902003703d8112005280200210a2004350200210f20022802c415210520022802c0152104200241b0016a2001108202024020022903b001a70d00200241b0016a41106a290300211420022903b8012115200241e0076a41146a200241d8116a41106a280200360200200241e0076a410c6a200241e0116a290300370200200220022903d8113702e4072002200a3602e0072008ad4220862006ad842111200241e0076a41106a290300211220022903e007211020022903e8072113410321010c030b200441ff01714102470d00200a450d002005102e0b200641ff01714102470d042007a7450d042008102e0c040b200241c0156a200110eb0120022d00c0154105460d03200241c0156a41106a290300210b200241c8156a2903002107200241e0156a2802002103200241d8156a290300210c20022802c415210520022802c0152104200241c8016a200110820220022903c801a70d01200241c8016a41106a29030021102005ad4220862004ad84211120022903d001220f422088a72105200fa721044200210f4104210142002113420021120b20004105360200200041e0006a2014370200200041d8006a2015370200200041c8006a2012370200200041c0006a2013370200200041386a20103702002000411c6a200b370200200041146a2007370200200041d0006a200f3702002000412c6a2003360200200041246a200c3702002000410c6a2011370200200041086a2001360200200041306a2005ad4220862004ad84370200200041e8006a200241f0176a41c80110e9081a0c530b200441ff01714102470d012007a7450d012005102e0c010b200441ff01714102470d002007a7450d002005102e0b2000411c3602000c500b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020060d00200241e0016a200110ad0120022802e0010d0020022802e4012205200128020028020441f0006e2203200320054b1bad42f0007e2207422088a70d472007a72203417f4c0d470240024020030d00410421060c010b2003102c2206450d4d0b2001200128020441016a2204360204200341f0006ead21070240200420012802084b0d00024002402005450d00200241c0156a41086a21090340200241c0156a200110990220022802c415210420022802c0152108200241e0076a200941e80010e9081a2004450d03200241d8116a200241e0076a41e80010e9081a02402007422088220ba722032007a7470d00200341016a220a2003490d4c2003410174220d200a200a200d491b220a4104200a41044b1bad42f0007e220b422088a745410274210a200ba7210d0240024020030d00200241003602c0150c010b200241043602c815200220063602c0152002200341f0006c3602c4150b20024198106a200d200a200241c0156a107d20022802a010210a2002280298104101460d03200228029c1021062007422088220ba72103200a41f0006ead21070b2006200341f0006c6a2203200436020420032008360200200341086a200241d8116a41e80010e9081a200b422086200742ffffffff0f83844280808080107c21072005417f6a22050d000b200128020421040b20012004417f6a3602042006450d022000200636020420004106360200200041086a2007370200200041106a200241f0176a41a00210e9081a0c520b200a0d4d0c480b02402007422088a72201450d002006200141f0006c6a2105200621010340024020012204410c6a2802002203450d0020042802042101200341246c210303400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012003415c6a22030d000b0b200441f0006a21010240200441086a2802002203450d00200341246c450d002004280204102e0b20012005470d000b0b2007a72201450d00200141f0006c450d002006102e0b2000411c3602000c4f0b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a360200410021164100210e410721090240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020060e170001020304055c060708090a0b0c0d0e0f101112131415170b200241c0156a200110eb0120022d00c0154105460d16200241d8116a41086a200241d4156a290200370300200241d8116a41106a200241dc156a2902003703002002200241cc156a2902003703d811200241c0156a41086a280200210820022802c415210a20022802c0152105200241e8016a2001108202024002400240024020022903e801a70d00200128020022032802042204450d00200241e8016a41106a290300210c20022903f001210b200328020022062d0000210e20032004417f6a360204410121092003200641016a36020041002104024002400240200e0e050600010204030b410121040c050b410221040c030b41002104200241003a00e01502400340200128020022032802042206450d01200241c0156a20046a2003280200220d2d00003a000020032006417f6a3602042003200d41016a3602002002200441016a22033a00e0152003210420034120470d000b200241a80e6a410f6a2201200241c0156a410f6a290000370000200241a80e6a41086a2203200241c0156a41086a290300370300200241d8146a410f6a22042001290000370000200241d8146a41086a22012003290300370300200241d00a6a41086a22032001290300370300200241d00a6a410f6a22012004290000370000200220022903c0153703d00a200241c0156a411f6a310000210720022900d715210f200241f8136a410f6a22042001290000370000200241f8136a41086a2003290300370300200220022903d00a3703f8132004290000211020022800fb13210120022900ff13211120022d00f8132103200220022f00f9133b00e107200220033a00e007200241e0076a411f6a20073c0000200241e0076a410f6a20103700002002200f3700f707200220113700e707200220013600e3074103210420022f01e007210d0c040b200441ff0171450d00200241003a00e0150b200541ff01714102470d192008450d19200a102e0c190b410421040b0b20024198106a41106a200241d8116a41106a29030037030020024198106a41086a200241d8116a41086a290300221137030020022901e607220f422088200241ee076a2901002210422086842107200fa7220e41807e7121162010422088210f20022d00ff07211720022800fb07211820022f00f907211920022d00f807211a20022f01f607211b20022801e207210320022903d811211020022802ac10211c20022f01aa10211d20022d00a910211e20022800a510211f20022f00a310212020022d00a21021212011a721220c5b0b20024180026a2001108202200229038002a70d15200229038802220b42208820024190026a290300220c422086842107200c422088210f200ba7220e41807e712116410221090c580b20024198026a2001108202200229039802a70d1420022903a002220b422088200241a8026a290300220c422086842107200c422088210f200ba7220e41807e712116410321090c570b410421092001280200220128020422044104490d1320012802002205280000210320012004417c6a3602042001200541046a360200420021070c550b200241b0026a200110ad0120022802b0020d1220022802b40221032002418094ebdc033602c415200220033602c015200128020022012802042204450d12200241c0156a2003418094ebdc034b4102746a2802002103200128020022052d0000210620012004417f6a3602042001200541016a360200410521094100210e024020060e025800130b4101210e0c550b200241c0156a200110ea0120022802c0152203450d1120022802c415220e41807e712116200241c8156a35020021074200210f410621090c540b200128020022032802042204450d0f200328020022052d0000210620032004417f6a3602042003200541016a36020002400240024002400240024020060e050001020304050b200241003a00d8140c590b200241013a00d8140c580b200241023a00d8140c570b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241d8116a410f6a2201200241c0156a410f6a290000370000200241d8116a41086a2203200241c0156a41086a29030037030020024198106a410f6a2204200129000037000020024198106a41086a22012003290300370300200241a80e6a41086a22032001290300370300200241a80e6a410f6a22012004290000370000200220022903c0153703a80e200241df156a310000211020022900d715210b200241f8136a410f6a22042001290000370000200241f8136a41086a2003290300370300200220022903a80e3703f8132004290000210c20022900ff13210720022d00f813210120022f00f9132103200220022800fb133602dc14200220033b01da14200220013a00d914200241033a00d8140c570b0240200441ff0171450d00200241003a00e0150b200241053a00d8140c120b200241043a00d8140c550b200241053a00d8140c100b200241c0156a200110eb0120022d00c0154105460d0f20022902c415220c422088200241cc156a290200220f422086842107200241d4156a290200220b422888200241dc156a31000042188684a72118200ca7220e41807e712116200f422088210f200b421888a72119200b421088a7211a200241e0156a2802002105200241de156a2f01002123200241dd156a2d0000211720022802c0152103200ba7211b410921090c520b200241b8026a200110ad0120022802b8020d0e20022802bc02210342002107410a21090c500b200241c0026a200110ad0120022802c0020d0d20022802c402210342002107410b21090c4f0b200128020022012802042203450d0c200128020022052d0000210420012003417f6a3602042001200541016a360200200441e5004f0d0c42002107410c21094100210e4200210f0c510b410d21094100210e0c4e0b410e21094100210e0c4d0b200241c0156a200110e40120022802c0152203450d0920022802c415220e41807e712116200241c8156a35020021074200210f410f21090c4c0b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2203200241c0156a410f6a290000370000200241e0076a41086a2204200241c0156a41086a290300370300200241d8116a410f6a22052003290000370000200241d8116a41086a2203200429030037030020024198106a41086a2204200329030037030020024198106a410f6a22032005290000370000200220022903c01537039810200241df156a310000210720022900d715210b200241f8136a410f6a22052003290000370000200241f8136a41086a200429030037030020022002290398103703f81320022800fb13210320022f00f913210d20022d00f8132104200241d8146a41086a22062005290000370300200220022900ff133703d814200241f0146a20073c00002002200b3703e8142001280200220128020422084104490d092001280200220a280000210520012008417c6a3602042001200a41046a36020020022903d814220b4220882006290300220c422086842107200c422088210f200ba7220e41807e71211620022800ed14211820022f00eb14211920022d00ea14211a20022f01e814211b411021090c4e0b200441ff0171450d08200241003a00e0150c080b411121094100210e0c4a0b2001280200220428020422054104490d0620042802002206280000210320042005417c6a3602042004200641046a360200200241c8026a200110ad0120022802c8020d0620022802cc02220441ffffffff03712004470d06200441027422052001280200220628020422084b0d062005417f4c0d4c0240024020050d004104210e0c010b20051032220e450d522001280200220628020421080b02400240200820044102742201490d00200e2006280200200110e90821082006280204220a20014f0d012001200a41b8b2c0001056000b2005450d07200e102e0c070b2006200a20016b3602042006200628020020016a3602002008450d062004ad4220862005410276ad842107200841807e7121164200210f411221090c490b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2203200241c0156a410f6a290000370000200241e0076a41086a2204200241c0156a41086a290300370300200241d8116a410f6a22052003290000370000200241d8116a41086a2203200429030037030020024198106a41086a2204200329030037030020024198106a410f6a22032005290000370000200220022903c01537039810200241df156a310000210b20022900d7152107200241f8136a410f6a22052003290000370000200241f8136a41086a200429030037030020022002290398103703f8132001280200220128020422084104490d062007422888200b42188684a721182005350000210c200228008b14210620022900ff13210b20022800fb13210320022f00f913210d20022d00f81321042007421888a721192007421088a7211a2007a7211b2001280200220a280000210520012008417c6a3602042001200a41046a3602002006411076ad423086200641087641ff0171ad42288684200c2006ad4220864280808080f01f8384842207422088210f200b4220882007422086842107200ba7220e41807e712116411321090c4b0b200441ff0171450d05200241003a00e0150c050b200241d0026a200110820220022903d002a70d0420022903d802220b422088200241e0026a290300220c422086842107200c422088210f200ba7220e41807e712116411421090c470b200241f0026a200110ad0120022802f0020d0320022802f4022103200241e8026a200110ad0120022802e8020d0320022802ec02220e41807e712116411521090c460b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2203200241c0156a410f6a290000370000200241e0076a41086a2204200241c0156a41086a290300370300200241d8116a410f6a22052003290000370000200241d8116a41086a2203200429030037030020024198106a41086a2204200329030037030020024198106a410f6a22032005290000370000200220022903c01537039810200241df156a310000210c20022900d715210b200241f8136a410f6a22052003290000370000200241f8136a41086a200429030037030020022002290398103703f8132001280200220128020422064104490d0320052800002108200228008b14210a20022900ff13210f20022800fb13210320022f00f913210d20022d00f813210420012802002209280000210520012006417c6a3602042001200941046a3602002002200a3602f409200220083602f009200f42208820022903f0092210422086842107200b422888200c42188684a72118200fa7220e41807e7121162010422088210f200b421888a72119200b421088a7211a200ba7211b411621090c480b200441ff0171450d02200241003a00e0150c020b200241c0156a200110ea0120022802c0152203450d0120022902c415220b4220882107200ba7220e41807e7121164200210f411721090c440b200241053a00d8140b2000411c3602000c4e0b0240200128020022012802042203450d0020012003417f6a3602042001200128020041016a3602000b2000411c3602000c4d0b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a3602004100212402400240024020060e020001030b41002104200241003a00e015024002400240024002400240024002400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241d8146a410f6a2203200241c0156a410f6a290000370000200241d8146a41086a2204200241c0156a41086a290300370300200241e8096a410f6a22052003290000370000200241e8096a41086a22032004290300370300200241c80d6a41086a22042003290300370300200241c80d6a410f6a22032005290000370000200220022903c0153703c80d200241df156a310000210c20022900d715210b200241f8136a410f6a22052003290000370000200241f8136a41086a2004290300370300200220022903c80d3703f8132005290000210720022800fb13210920022f00f913210a20022d00f813210820022900ff13211241002104200241003a00e015200b422888200c42188684a721212012428080808070832125200b421888a72122200b421088a7210e200ba7210d0340200128020022032802042205450d02200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e8096a410f6a2203200241c0156a410f6a290000370000200241e8096a41086a2204200241c0156a41086a290300370300200241c80d6a410f6a22052003290000370000200241c80d6a41086a22032004290300370300200241a00d6a41086a22042003290300370300200241a00d6a410f6a22032005290000370000200220022903c0153703a00d200241df156a310000210b20022900d715210c200241f8136a410f6a22052003290000370000200241f8136a41086a2004290300370300200220022903a00d3703f8132005290000210f20022800fb13211e20022f00f913211f20022d00f813212020022900ff132110200241f0146a200b3c00002002200c3703e8142002200f3703e014200220103703d81441002104200241003a00e0150340200128020022032802042205450d03200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e8096a410f6a2203200241c0156a410f6a290000370000200241e8096a41086a2204200241c0156a41086a290300370300200241c80d6a410f6a22052003290000370000200241c80d6a41086a22032004290300370300200241a00d6a41086a22042003290300370300200241a00d6a410f6a22032005290000370000200220022903c0153703a00d200241df156a310000211020022900d715210f200241f8136a410f6a22052003290000370000200241f8136a41086a2004290300370300200220022903a00d3703f8132005290000210c20022900ff13210b20022800fb13211720022f00f913211c20022d00f813211d41002104200241003a00e015200f422888201042188684a72118200f421888a72119200f421088a7211b200fa721230340200128020022032802042205450d04200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e8096a410f6a2203200241c0156a410f6a290000370000200241e8096a41086a2204200241c0156a41086a290300370300200241c80d6a410f6a22052003290000370000200241c80d6a41086a22032004290300370300200241a00d6a41086a22042003290300370300200241a00d6a410f6a22032005290000370000200220022903c0153703a00d200241df156a310000211120022900d7152110200241f8136a410f6a22052003290000370000200241f8136a41086a2004290300370300200220022903a00d3703f8132005350000212620022900ff13210f20022800fb13210520022f00f913210420022d00f8132103200228008b1421064100211a200241003a00e015200641087621272006ad42208621282006411076ad21290340200128020022062802042216450d05200241c0156a201a6a2006280200222a2d00003a000020062016417f6a3602042006202a41016a3602002002201a41016a22063a00e0152006211a20064120470d000b200241c80d6a410f6a2206200241c0156a410f6a290000370000200241c80d6a41086a221a200241c0156a41086a290300370300200241a00d6a410f6a22162006290000370000200241a00d6a41086a2206201a290300370300200241e80c6a41086a221a2006290300370300200241e80c6a410f6a22062016290000370000200220022903c0153703e80c200241df156a310000211520022900d7152114200241f8136a410f6a22162006290000370000200241f8136a41086a201a290300370300200220022903e80c3703f8132016290000211320022800fb13212a20022f00f913211620022d00f813211a20022900ff13212b200241800a6a20153c0000200220143703f809200220133703f0092002202b3703e8094100212c200241003a00e015034020012802002206280204222d450d06200241c0156a202c6a2006280200222e2d00003a00002006202d417f6a3602042006202e41016a3602002002202c41016a22063a00e0152006212c20064120470d000b200241c80d6a410f6a2206200241c0156a410f6a290000370000200241c80d6a41086a222c200241c0156a41086a290300370300200241a00d6a410f6a222d2006290000370000200241a00d6a41086a2206202c290300370300200241e80c6a41086a222c2006290300370300200241e80c6a410f6a2206202d290000370000200220022903c0153703e80c200241df156a310000211320022900d7152114200241f8136a410f6a222d2006290000370000200241f8136a41086a202c290300370300200220022903e80c3703f813202d280000212f200228008b14213020022900ff13211520022800fb13212e20022f00f913212d20022d00f813212c200241e0076a41186a2206200241d8146a41186a2d00003a0000200241e0076a41106a2224200241d8146a41106a290300370300200241e0076a41086a2231200241d8146a41086a290300370300200220022903d8143703e007200241d8116a41186a2232200241e8096a41186a2d00003a0000200241d8116a41106a2233200241e8096a41106a290300370300200241d8116a41086a2234200241e8096a41086a290300370300200220022903e8093703d81120024198106a41186a20062d00003a000020024198106a41106a202429030037030020024198106a41086a2031290300370300200220022903e00737039810200241a80e6a41186a20322d00003a0000200241a80e6a41106a2033290300370300200241a80e6a41086a2034290300370300200220022903d8113703a80e200241f8026a200110ad0120022802f8020d0a20012802002231280204223220022802fc022206490d0a2006417f4c0d4e20060d06410121240c070b200441ff0171450d09200241003a00e0150c090b200441ff0171450d08200241003a00e0150c080b200441ff0171450d07200241003a00e0150c070b200441ff0171450d06200241003a00e0150c060b201a41ff0171450d05200241003a00e0150c050b202c41ff0171450d04200241003a00e0150c040b200610322224450d4c2001280200223128020421320b20322006490d0120242031280200200610e9082101203128020422322006490d1d2031203220066b3602042031203128020020066a3602002001450d022029423086202741ff0171ad4228868420284280808080f01f832026848421262025201242ffffffff0f838421252006ad22124220862012842112200241d00a6a41186a20024198106a41186a2d00003a0000200241d00a6a41106a20024198106a41106a290300370300200241d00a6a41086a20024198106a41086a29030037030020024198136a41086a200241a80e6a41086a29030037030020024198136a41106a200241a80e6a41106a29030037030020024198136a41186a200241a80e6a41186a2d00003a000020022002290398103703d00a200220022903a80e370398130b200241e80f6a41186a2201200241d00a6a41186a2d00003a0000200241e80f6a41106a2206200241d00a6a41106a290300370300200241e80f6a41086a2227200241d00a6a41086a290300370300200241f80d6a41086a223120024198136a41086a290300370300200241f80d6a41106a223220024198136a41106a290300370300200241f80d6a41186a223320024198136a41186a2d00003a0000200220022903d00a3703e80f20022002290398133703f80d2000411f6a2007370000200041176a2025370000200041336a201e360000200041316a201f3b0000200041306a20203a00002000412c6a20213602002000412a6a20223b01002000200e3a0029200041276a200d3b0000200041136a2009360000200041116a200a3b0000200041106a20083a0000200041086a20123702002000202436020420004109360200200020022903e80f3700372000413f6a2027290300370000200041c7006a2006290300370000200041cf006a20012d00003a00002000418f016a20113c000020004187016a2010370000200041ff006a2026370000200041f7006a200f370000200041df006a200c370000200041d7006a200b37000020004193016a202a36000020004191016a20163b000020004190016a201a3a0000200041f3006a2005360000200041f1006a20043b0000200041f0006a20033a0000200041ec006a2018360200200041ea006a20193b01002000201b3a0069200041e7006a20233b0000200041d3006a2017360000200041d1006a201c3b0000200041d0006a201d3a0000200041b3016a202e360000200041b7016a2015370000200041bf016a202f360000200041c3016a2030360000200041cf016a20133c0000200041c7016a2014370000200041b1016a202d3b0000200041b0016a202c3a0000200041af016a20332d00003a0000200041a7016a20322903003700002000419f016a2031290300370000200020022903f80d37009701200041d0016a200241f0176a41e00010e9081a0c4e0b2024102e0b2000411c3602000c4c0b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a360200024002400240024020060e03000102040b200241f0176a200110cb0620022903f81722074202510d0320022802fc17210320022802f417210420022802f0172105200241e0076a20024180186a41e40010e9081a200241e8186a280200210620022802ec18210820022802e418210a200241c0156a200241f0176a4180016a41800110e9081a200241f0176a200110f60120022802f417450d032007a72101200241fc176a290200210b20022802f017210920022902f417210c200241d00a6a200241e0076a41e40010e9081a200241d8116a200241c0156a41800110e9081a200c422088200b422086842107200b422088210b200ca7210d4101210e0c020b200241f0176a200110cb0620022903f81722074202510d0220022802fc17210320022802f417210420022802f0172105200241a80e6a20024180186a41e40010e9081a200241e8186a280200210620022802ec18210820022802e418210a200241c0156a200241f0176a4180016a41800110e9081a200241f0176a200110f60120022802f417450d022007a72101200241fc176a290200210b20022802f017210920022902f417210c200241d8146a200241a80e6a41e40010e9081a200241e0076a200241c0156a41800110e9081a200241d00a6a200241d8146a41e40010e9081a200241d8116a200241e0076a41800110e9081a200c422088200b422086842107200b422088210b200ca7210d4102210e0c010b2001280200220328020422044104490d0120032802002205280000210920032004417c6a3602042003200541046a3602002001280200220128020422034104490d0120012802002204280000210d20012003417c6a3602042001200441046a360200200241d00a6a200241c0156a41e40010e9081a200241d8116a200241f0176a41800110e9081a4103210e0b200241e8096a200241d00a6a41e40010e9081a20024198106a200241d8116a41800110e9081a2000411c6a200b3e0200200041146a20073702002000412c6a2003360200200041286a2001360200200041246a2004360200200041206a2005360200200041106a200d3602002000410c6a2009360200200041086a200e3602002000410a360200200041306a200241e8096a41e40010e9081a2000419c016a200836020020004198016a200636020020004194016a200a360200200041a0016a20024198106a41800110e9081a200041a8026a20024198136a41086a290300370300200041a0026a2002290398133703000c4c0b2000411c3602000c4b0b200128020022032802042204450d3b200328020022052d0000210620032004417f6a3602042003200541016a36020020060d3b2001280200220328020422044104490d3b20032802002205280000210620032004417c6a3602042003200541046a36020020024190036a200110ad012002280290030d3b2001280200220428020422052002280294032203490d3b2003417f4c0d410240024020030d00410121080c010b200310322208450d472001280200220428020421050b0240024020052003490d0020082004280200200310e90821052004280204220820034f0d012003200841b8b2c0001056000b2008102e0c3c0b2004200820036b3602042004200428020020036a3602002005450d3b2003ad2207422086200784210b20024188036a200110ad012002280288030d3a200228028c0322082001280200280204410c6e2203200320084b1bad420c7e2207422088a70d412007a72203417f4c0d410240024020030d004104210a0c010b2003102c220a450d470b2001200128020441016a22043602042003410c6ead2107200420012802084b0d3902402008450d00034020024180036a200110ad012002280280030d3b2001280200220428020422092002280284032203490d3b2003417f4c0d430240024020030d004101210d0c010b20031032220d450d492001280200220428020421090b20092003490d3a200d2004280200200310e90821092004280204220d2003490d192004200d20036b3602042004200428020020036a3602002009450d3b02402007422088220ca722042007a7470d00200441016a220d2004490d442004410174220e200d200d200e491b220d4104200d41044b1bad420c7e220c422088a745410274210d200ca7210e0240024020040d00200241003602e0070c010b200241043602e8072002200a3602e00720022004410c6c3602e4070b200241d8116a200e200d200241e0076a107d20022802e011210d20022802d8114101460d3f20022802dc11210a2007422088220ca72104200d410c6ead21070b200a2004410c6c6a22042003ad220f422086200f8437020420042009360200200c422086200742ffffffff0f83844280808080107c21072008417f6a22080d000b200128020421040b20012004417f6a360204200a450d3a2002200a3602c815200128020022032802042104200220073702cc152002200b3703c015200ba7210d20044104490d3720032802002208280000210e20032004417c6a3602042003200841046a3602002001280200220328020422044104490d3720032802002208280000212020032004417c6a3602042003200841046a3602002001280200220328020422044104490d3720032802002208280000211e20032004417c6a3602042003200841046a360200200241cc156a290200210720022902c415210b4100210a200241003a008016200b422088a7211f2007422088a72121200ba7211d2007a7212241c000210402400240034002400240200128020022032802042208450d002003280200220a2d0000210920032008417f6a3602042003200a41016a36020020022d008016220341c000490d01200220093a00e00741bcf5cc00412b200241e0076a41e0c0cb0041e4decc00103e000b200a41ff0171450d02200241003a0080160c020b200241c0156a20036a20093a00002002200341016a220a3a0080162004417f6a22040d000b2003413e4b0d010b0240200d450d002005102e0b02402021450d002021410c6c2103201f210103400240200141046a280200450d002001280200102e0b2001410c6a2101200341746a22030d000b0b2022450d3c2022410c6c450d3c201f102e0c3c0b2005450d3b200241f8156a290300210720022903f015210b20022802ec15210120022f01ea15210320022800e515210420022f00e315210820022d00e215210a20022f01e015210920022903d815210c20022802d415211c20022802d015211720022802cc15212320022f01ca15211b20022d00c915211920022800c515211820022f00c315211a20022d00c215211620022f01c015212a200020022d00e9153a00552000200a3a004e200020193a0035200020163a002e200020063602042000410b360200200041e4006a2007370200200041dc006a200b370200200041d8006a2001360200200041d6006a20033b0100200041d1006a2004360000200041cf006a20083b0000200041cc006a20093b0100200041c4006a200c370200200041c0006a201c3602002000413c6a2017360200200041386a2023360200200041366a201b3b0100200041316a20183600002000412f6a201a3b00002000412c6a202a3b0100200041286a201e360200200041246a2020360200200041206a200e3602002000411c6a2021360200200041186a2022360200200041146a201f360200200041106a201d3602002000410c6a200d360200200041086a2005360200200041ec006a200241f0176a41c40110e9081a0c4a0b0240200128020022012802042203450d0020012003417f6a3602042001200128020041016a3602000b2000411c3602000c490b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a3602004200210f42002107410d21080240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020060e19000102030405060708090a0b18170c0d0e0f101112131415161a0b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b20022802dc15210d20022f01da15210920022d00d915210e20022f00d715210a20022900cf15210720022800cb15212220022800c715212120022800c315210320022f00c115210420022d00c015210520024198036a2001108202200229039803a70d1a200241a8036a290300210c20022903a003210b2007422088210f410121080c180b200441ff0171450d19200241003a00e0150c190b200241b8036a200110ad0120022802b8030d1820022802bc032103200241b0036a200110ad0120022802b0030d1820022802b403212141022108420021070c160b200241c0036a200110ad0120022802c0030d17200128020022042802042205450d1720022802c4032103200428020022062d0000210820042005417f6a3602042004200641016a36020002400240024020080e0200011a0b200128020022042802042205450d19200428020022082d0000210620042005417f6a3602042004200841016a360200410021040240024002400240024002400240200641ff00710e0706000102030405200b4180800421040c050b4180800821040c040b4180800c21040c030b4180801021040c020b4180801421040c010b4180801821040b2001280200220128020422054110490d192001280200220841086a290000210b200829000021072001200841106a3602002001200541706a360204200242003703d015200220073703c0152002200b3703c8152006410174418002712101410021050c010b2001280200220428020422054110490d182004280200220641086a290000210b200629000021072004200641106a3602002004200541706a3602042001280200220128020422044110490d182001280200220541086a290000210c2005290000210f2001200541106a360200200241d8156a200c3703002001200441706a360204200220073703c0152002200b3703c8152002200f3703d0154100210141012105410021040b2007422088210f20044180801c71200172200572212120022903d815210b20022802d415211f20022f01d215211e20022d00d115212020022800cd15210d20022f00cb15210920022d00ca15210e20022f01c815210a4200210c410321080c150b410421082001280200220128020422044104490d1620012802002205280000210320012004417c6a3602042001200541046a360200420021070c140b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b20022900cf152207422088210f20022802dc15210d20022f01da15210920022d00d915210e20022f00d715210a20022800cb15212220022800c715212120022800c315210320022f00c115210420022d00c0152105410521080c140b200441ff0171450d15200241003a00e0150c150b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b20022900cf152207422088210f20022802dc15210d20022f01da15210920022d00d915210e20022f00d715210a20022800cb15212220022800c715212120022800c315210320022f00c115210420022d00c0152105410621080c130b200441ff0171450d14200241003a00e0150c140b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b20022900cf152207422088210f20022802dc15210d20022f01da15210920022d00d915210e20022f00d715210a20022800cb15212220022800c715212120022800c315210320022f00c115210420022d00c0152105410721080c120b200441ff0171450d13200241003a00e0150c130b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b2001280200220628020422084104490d1320022802dc15210d20022f01da15210920022d00d915210e20022f00d715210a20022900cf15210720022800cb15212220022800c715212120022800c315210320022f00c115210420022d00c015210520062802002220280000211f20062008417c6a3602042006202041046a3602002001280200220128020422064104490d1320012802002208350000210b20012006417c6a3602042001200841046a3602002007422088210f4200210c410821080c110b200441ff0171450d12200241003a00e0150c120b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b20022900cf152207422088210f20022802dc15210d20022f01da15210920022d00d915210e20022f00d715210a20022800cb15212220022800c715212120022800c315210320022f00c115210420022d00c0152105410921080c100b200441ff0171450d11200241003a00e0150c110b200241c8036a200110ad0120022802c8030d1020022802cc032103410a2108420021070c0e0b2001280200220128020422044104490d0f20012802002205280000210320012004417c6a3602042001200541046a360200410b2108420021070c0d0b41002104200241003a00e015024002400240024002400240024002400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2203200241c0156a410f6a290000370000200241e0076a41086a2204200241c0156a41086a290300370300200241d8116a410f6a22052003290000370000200241d8116a41086a2203200429030037030020024198106a41086a2204200329030037030020024198106a410f6a22032005290000370000200220022903c01537039810200241df156a310000210720022900d715210b200241f8136a410f6a22052003290000370000200241f8136a41086a200429030037030020022002290398103703f813200128020022062802042208450d16200235008b14210f2005350000210c200228008314212220022800ff13212120022800fb13210320022f00f913210420022d00f81321052006280200220a2d0000210920062008417f6a3602042006200a41016a3602004100212020090e0707060102030405160b200441ff0171450d15200241003a00e0150c150b410221200c050b410321200c040b410421200c030b410521200c020b410621200c010b410121200b2001280200220128020422064110490d0e200b422888200742188684a7210d200f422086200c842107200b421888a72109200b421088a7210e200ba7210a2001280200220841086a290000210c2008290000210b2001200841106a3602002001200641706a360204410c21080c0c0b200241d0036a200110ad0120022802d0030d0d20012802002205280204220620022802d4032204490d0d2004417f4c0d4d0240024020040d00410121030c010b200410322203450d532001280200220528020421060b20062004490d0c20032005280200200410e9082101200528020422062004490d222005200620046b3602042005200528020020046a3602002001450d0d2004ad22074220862007842207422088a721222007a72121410f2108420021070c0b0b200241d8036a200110ad0120022802d8030d0c20012802002205280204220620022802dc032204490d0c2004417f4c0d4c0240024020040d00410121030c010b200410322203450d522001280200220528020421060b20062004490d0b20032005280200200410e9082101200528020422062004490d182005200620046b3602042005200528020020046a3602002001450d0c2004ad22074220862007842207422088a721222007a7212141102108420021070c0a0b200241e0036a200110ad0120022802e0030d0b20012802002205280204220620022802e4032204490d0b2004417f4c0d4b0240024020040d00410121030c010b200410322203450d512001280200220528020421060b20062004490d0a20032005280200200410e9082101200528020422062004490d162005200620046b3602042005200528020020046a3602002001450d0b2004ad22074220862007842207422088a721222007a7212141112108420021070c090b200241e8036a200110ad0120022802e8030d0a20012802002205280204220620022802ec032204490d0a2004417f4c0d4a0240024020040d00410121030c010b200410322203450d502001280200220528020421060b20062004490d0920032005280200200410e9082101200528020422062004490d142005200620046b3602042005200528020020046a3602002001450d0a2004ad22074220862007842207422088a721222007a7212141122108420021070c080b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241cf156a290000210720022802dc15210d20022f01da15210920022d00d915210e20022f00d715210a20022800c315210320022f00c115210420022d00c015210520022900c715210b200241f0036a200110ad0120022802f0030d0a200b422088a72122200ba7212120022802f403211f2007422088210f411321080c080b200441ff0171450d09200241003a00e0150c090b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2201200241c0156a410f6a290000370000200241e0076a41086a2203200241c0156a41086a290300370300200241d8116a410f6a22042001290000370000200241d8116a41086a2201200329030037030020024198106a41086a2203200129030037030020024198106a410f6a22012004290000370000200220022903c01537039810200241df156a310000210720022900d715210b200241f8136a410f6a22042001290000370000200241f8136a41086a200329030037030020022002290398103703f813200b422888200742188684a7210d200235008b14220f4220862004350000842107200b421888a72109200b421088a7210e20022900ff13220c422088a7212220022800fb13210320022f00f913210420022d00f8132105200ba7210a200ca72121411421080c070b200441ff0171450d08200241003a00e0150c080b2001280200220128020422044104490d0720012802002205280000210320012004417c6a3602042001200541046a36020041152108420021070c050b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2203200241c0156a410f6a290000370000200241e0076a41086a2204200241c0156a41086a290300370300200241d8116a410f6a22052003290000370000200241d8116a41086a2203200429030037030020024198106a41086a2204200329030037030020024198106a410f6a22032005290000370000200220022903c01537039810200241df156a310000210b20022900d7152107200241f8136a410f6a22052003290000370000200241f8136a41086a200429030037030020022002290398103703f8132001280200220128020422064104490d072007422888200b42188684a7210d2005350000210c200235008b14210f20022900ff13210b20022800fb13210320022f00f913210420022d00f81321052007421888a721092007421088a7210e2007a7210a20012802002208280000211f20012006417c6a3602042001200841046a360200200c200f422086842107200b422088a72122200ba72121411621080c050b200441ff0171450d06200241003a00e0150c060b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241d8116a41086a2206200241cf156a29000037030041172108200241d8116a41106a220a200241c0156a41176a290000370300200241d8116a41186a2209200241df156a2d00003a0000200220022900c71522073703e007200220073703d81120022d00c015210520022f00c115210420022800c3152103200241e8096a41186a220d20092d00003a0000200241e8096a41106a200a290300370300200241e8096a41086a220a2006290300370300200220022903d8113703e8092001280200220128020422064104490d0620012802002209280000211f20012006417c6a3602042001200941046a36020020022903f809220b422888200d31000042188684a7210d200a2903002207422088210f200b421888a72109200b421088a7210e20022903e809220c422088a72122200ba7210a200ca721210c040b200441ff0171450d05200241003a00e0150c050b41002104200241003a00e0150240024002400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200128020022062802042208450d0720022900d715210b200241df156a310000210f200241cf156a290000210720022900c715210c20022800c315210320022f00c115210420022d00c01521052006280200220a2d0000210920062008417f6a3602042006200a41016a3602004100211f20090e020201070b200441ff0171450d06200241003a00e0150c060b2001280200220128020422084104490d052001280200220a280000210620012008417c6a3602042001200a41046a3602004101211f0b200b422888200f42188684a7210d2007422088210f200b421888a72109200b421088a7210e200ba7210a200c422088a721222006ad210b200ca721214200210c411821080c020b200241f8036a200110ad0120022802f8030d0320022802fc03210341192108420021070c010b410e2108420021070b2000201e3b012a200020203a0029200020093b00232000200e3a0022200020043b000a200020053a00092000410d360200200041386a200c370200200041306a200b3702002000412c6a201f360200200041256a200d360000200041206a200a3b0100200041146a2022360200200041106a20213602002000410c6a2003360200200041086a20083a0000200041186a200f422086200742ffffffff0f8384370200200041c0006a200241f0176a41f00110e9081a0c4a0b2003102e0b2000411c3602000c480b200241e0076a200110cc06024020022d00e0074107460d00200241d8116a41306a200241e0076a41306a2903002207370300200241d8116a41286a200241e0076a41286a290300220b370300200241d8116a41206a200241e0076a41206a290300220c370300200241d8116a41186a200241e0076a41186a290300220f370300200241c0156a410c6a200241e0076a41086a290300370200200241c0156a41146a200241e0076a41106a290300370200200241c0156a411c6a200f370200200241c0156a41246a200c370200200241c0156a412c6a200b370200200241c0156a41346a2007370200200220022903e0073702c4152000410e360200200020022902c0153702042000410c6a200241c0156a41086a290200370200200041146a200241c0156a41106a2902003702002000411c6a200241c0156a41186a290200370200200041246a200241c0156a41206a2902003702002000412c6a200241c0156a41286a290200370200200041346a200241c0156a41306a2902003702002000413c6a200241f8156a280200360200200041c0006a200241f0176a41f00110e9081a0c480b2000411c3602000c470b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020002400240024002400240024002400240024020060e06000102030405090b200241c0156a200110e40120022802c0152208450d0820022802c415210a200128020022032802042204450d05200241c8156a2802002109200328020022052d0000210620032004417f6a3602042003200541016a360200024002400240024020060e020201000b200241023a00d8140c090b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241d8116a410f6a2203200241c0156a410f6a290000370000200241d8116a41086a2204200241c0156a41086a29030037030020024198106a410f6a2205200329000037000020024198106a41086a22032004290300370300200241a80e6a41086a22042003290300370300200241a80e6a410f6a22032005290000370000200220022903c0153703a80e200241df156a310000210f20022900d7152110200241f8136a410f6a22052003290000370000200241f8136a41086a2004290300370300200220022903a80e3703f8132005290000210b20022900ff13210c20022d00f813210320022f00f9132104200220022800fb1322053602dc14200220043b01da14200220033a00d914200241013a00d814200541187621040c020b0240200441ff0171450d00200241003a00e0150b200241023a00d8140c080b200241003a00d81420022d00df1421040b2001280200220128020422054104490d0620022d00da14210620022f01d814210e20022800db1421032002200c3700e107200241e9076a200b3700002001280200220d350000210720012005417c6a3602042001200d41046a360200200220103700f107200220043a00e007200c423888200b42088684a7210d200e20064110747222044180feff07714108762105200fa741ff01712101200c421888a7210e200b421888a72122200241f8076a310000210b20022802e007210620022903f007210c410121210c3b0b200110cc042203450d0720024180046a200110ad012002280280040d0620022802840421064200210c41022121410021224200210b42002107410021090c3a0b20024190046a200110ad012002280290040d062002280294042103200110cc042206450d0620024188046a200110ad0102402002280288040d00200228028c04210e4200210c41032121410021224200210b42002107410021090c390b2006108b022006102e0c060b41002104200241003a00e0150240024002400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241cf156a290000210720022900c715210f20022802dc15210620022f01da15210a20022d00d915210920022f00d715210d20022800c315210320022f00c115210520022d00c015210420024198046a200110ad012002280298040d0820012802002201280204220e450d08200228029c042108200128020022222d000021212001200e417f6a3602042001202241016a3602004100210120210e020201080b200441ff0171450d07200241003a00e0150c070b410121010b200220063600ed142002200a3b00eb14200220093a00ea142002200d3b01e814200f422088a7210e2007422088a72122200241f0146a310000210b20022903e814210c200fa721062007a7210d410421210c380b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241d8116a41086a2206200241cf156a290000370300200241d8116a41106a2208200241d7156a290000370300200241d8116a41186a220a200241df156a2d00003a0000200220022900c71522073703e007200220073703d81120022d00c015210420022f00c115210520022800c3152103200241e8096a41186a200a2d00003a0000200241e8096a41106a2008290300370300200241e8096a41086a2006290300370300200220022903d8113703e809200241b8046a200110ad0120022802b8040d0520022802bc042108200241a8046a200110da0420022903a804a70d0520022903b0042107200241a0046a200110ad0120022802a0040d0520022802a404210a20022903e809220f422088a7210e200241f0096a2903002210422088a72122200241800a6a310000210b20022903f809210c200fa721062010a7210d410521210c370b200441ff0171450d04200241003a00e0150c040b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b20022900c7152207422088a7210e200241df156a310000210b20022900d715210c20022800d315212220022800cf15210d20022800c315210320022f00c115210520022d00c01521042007a721064106212141002109420021070c360b200441ff0171450d03200241003a00e0150c030b200241023a00d8140b200a41ffffff3f71450d012008102e0c010b2003108b022003102e0b2000411c3602000c460b200128020022032802042204450d2f200328020022052d0000210620032004417f6a3602042003200541016a3602004102210e02400240024002400240024020060e06003401020304350b200241c0156a200110e40120022802c0152203450d3420022902c415210b200241c0046a2001108202024020022903c004a70d0020022903c8042207423888200241d0046a290300220c42088684a7210d200b422088a72104200c423888a7210a200c421888a72109200ba721054101210e0c330b200b42ffffff3f83500d342003102e0c340b200241d8046a200110ad0120022802d8040d3320022802dc04210320023502801420024184146a33010020024186146a31000042108684422086842107200228008b142109200228008714210d20022802fc1321044103210e4200210b0c310b200128020022032802042204450d32200328020022052d0000210620032004417f6a3602042003200541016a3602004104210e4100210a410021094100210d41002103024020060e03320300330b200241e0046a200110ad0120022802e0040d3220022802e4042105410221030c2f0b200241c0156a200110eb0120022d00c0154105460d31200241e0076a41086a200241d4156a290200370300200241f0076a200241dc156a2902003703002002200241cc156a2902003703e007200241c0156a41086a280200210420022802c415210520022802c01521030240200128020022012802042206450d00200128020022082d0000210a20012006417f6a3602042001200841016a3602004100210802400240200a0e020100020b410121080b20022903e0072207423888200241e8076a290300220b42088684a7210d200b423888a7210a200b421888a72109200241f0076a290300210b4105210e0c310b200341ff01714102470d312004450d312005102e0c310b2001280200220428020422054104490d3020042802002206280000210320042005417c6a3602042004200641046a3602002001280200220128020422044104490d3020012802002206280000210520012004417c6a3602042001200641046a3602004106210e0c2d0b4100210a410021094100210d410121030c2d0b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a3602004107210302400240024002400240024020060e0700010203040531060b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2201200241c0156a410f6a290000370000200241e0076a41086a2203200241c0156a41086a290300370300200241d8116a410f6a22042001290000370000200241d8116a41086a2201200329030037030020024198106a41086a2203200129030037030020024198106a410f6a22012004290000370000200220022903c01537039810200241df156a310000210720022900d715210b200241f8136a410f6a22042001290000370000200241f8136a41086a200329030037030020022002290398103703f813200b422888200742188684a7211b200b421888a72120200b421088a721192004280000210e200228008b14210d20022900ff13210720022800fb13210820022f00f913210a20022d00f8132109200ba72122410121030c310b200441ff0171450d05200241003a00e0150c050b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2201200241c0156a410f6a290000370000200241e0076a41086a2203200241c0156a41086a290300370300200241d8116a410f6a22042001290000370000200241d8116a41086a2201200329030037030020024198106a41086a2203200129030037030020024198106a410f6a22012004290000370000200220022903c01537039810200241df156a310000210720022900d715210b200241f8136a410f6a22042001290000370000200241f8136a41086a200329030037030020022002290398103703f81320022800fb13210820022f00f913210a20022d00f8132109200241d8146a41086a22012004290000370300200220022900ff133703d814200241f0146a20073c00002002200b3703e814200b422888200742188684a7211b200b421888a72120200b421088a721192001290300220c422088a7210d20022903d8142107200ba72122200ca7210e410221030c300b200441ff0171450d04200241003a00e0150c040b41002104200241003a00e015024002400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2203200241c0156a410f6a290000370000200241e0076a41086a2204200241c0156a41086a290300370300200241d8116a410f6a22052003290000370000200241d8116a41086a2203200429030037030020024198106a41086a2204200329030037030020024198106a410f6a22032005290000370000200220022903c01537039810200241df156a310000210720022900d715210b200241f8136a410f6a22052003290000370000200241f8136a41086a200429030037030020022002290398103703f81320022800fb13210820022f00f913210a20022d00f8132109200241e8096a41086a2005290000370300200220022900ff133703e809200241800a6a20073c00002002200b3703f80941002104200241003a00e0150340200128020022032802042205450d02200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2201200241c0156a410f6a290000370000200241e0076a41086a2203200241c0156a41086a290300370300200241d8116a410f6a22042001290000370000200241d8116a41086a2201200329030037030020024198106a41086a2203200129030037030020024198106a410f6a22012004290000370000200220022903c01537039810200241df156a310000210720022900d715210f200241f8136a410f6a22042001290000370000200241f8136a41086a200329030037030020022002290398103703f813200f422888200742188684a7211e2004290000210c20022900ff13210b20022800fb13211c20022f00f913211720022d00f813212320022903f8092210422888200241800a6a31000042188684a7211b200f421888a7211f200f421088a7211d2010421888a721202010421088a72119200241e8096a41086a2903002211422088a7210d20022903e8092107200fa721212010a721222011a7210e410321030c300b200441ff0171450d04200241003a00e0150c040b200441ff0171450d03200241003a00e0150c030b200241d8116a200110e40120022802d8112208450d0220022902dc112107200241cc156a290200210c20022902c415210b20022f01e807212220022d00ea07211920022f00eb07212020022d009c10212320022f009d10211720022f01d415212120022d00d615211d20022f00d715211f20022800d915211e20022d00dd15210520022f01de152104410421034100210d4100210e0c2d0b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2201200241c0156a410f6a290000370000200241e0076a41086a2203200241c0156a41086a290300370300200241d8116a410f6a22042001290000370000200241d8116a41086a2201200329030037030020024198106a41086a2203200129030037030020024198106a410f6a22012004290000370000200220022903c01537039810200241df156a310000210720022900d715210b200241f8136a410f6a22042001290000370000200241f8136a41086a200329030037030020022002290398103703f813200b422888200742188684a7211b200b421888a72120200b421088a721192004280000210e200228008b14210d20022900ff13210720022800fb13210820022f00f913210a20022d00f8132109200ba72122410521030c2d0b200441ff0171450d01200241003a00e0150c010b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2201200241c0156a410f6a290000370000200241e0076a41086a2203200241c0156a41086a290300370300200241d8116a410f6a22042001290000370000200241d8116a41086a2201200329030037030020024198106a41086a2203200129030037030020024198106a410f6a22012004290000370000200220022903c01537039810200241df156a310000210720022900d715210b200241f8136a410f6a22042001290000370000200241f8136a41086a200329030037030020022002290398103703f813200b422888200742188684a7211b200b421888a72120200b421088a721192004280000210e200228008b14210d20022900ff13210720022800fb13210820022f00f913210a20022d00f8132109200ba72122410621030c2c0b200441ff0171450d00200241003a00e0150b2000411c3602000c440b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a3602000240024002400240024020060e03000102050b200241e8046a200110820220022903e804a70d04200241f8046a290300210720022903f004210b200241c0156a200110eb0120022d00c0154105460d0420022903c0152211422088a72101200241d0156a290300210c200241c8156a290300210f200241e0156a2802002103200241d8156a29030021102011a72104410121050c030b20024180056a200110ad0120022802800522010d034104410220011b210520022802840521040c010b20024188056a200110ad0120022802880522010d024104410320011b2105200228028c0521040b0b20004112360200200041386a2007370200200041306a200b3702002000411c6a200c370200200041146a200f3702002000412c6a2003360200200041246a2010370200200041106a20013602002000410c6a2004360200200041086a2005360200200041c0006a200241f0176a41f00110e9081a0c440b2000411c3602000c430b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020002400240024002400240024002400240024020060e050001020304090b41002104200241003a00e015024002400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241df156a310000210b20022900c715210c20022800c315210d20022f00c115210920022d00c015210a20023500cf15210f20022800d315210e20022900d715210741002104200241003a0081162007422888200b42188684a72122200f200ead42208684210b2007421888a721212007421088a721202007a7211f0340200128020022032802042205450d02200328020022062d0000210820032005417f6a3602042003200641016a360200200241c0156a20046a20083a00002002200441016a22033a00811620032104200341c100470d000b2002200c3703d814200220223600ed14200220213b00eb14200220203a00ea142002201f3b01e8142002200b3703e014200e4110762101200e4108762120200241ef156a290000211020022900e715210f20022f00ff15211f20022800fb15211e20022800f715211d20022800e315210320022f00e115210420022d00e015210520022802dc15210620022f01da15210820022d00d915210e20022f00d715212220022900cf15210720022800cb15211c20022800c715212120023502c01520023301c41520023100c6154210868442208684420886200241f0146a31000084211120022903e8142115410121230c060b200441ff0171450d09200241003a00e0150c090b200441ff0171450d08200241003a0081160c080b41002104200241003a00d4150240024002400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00d4152003210420034114470d000b200220022802d0153602f007200220022903c8153702e807200220022802c4153602e407200220022802c015220a3602e0072001280200220328020422044110490d0a2003280200220541086a2900002111200529000021152003200541106a3602002003200441706a360204200128020022032802042204450d0a200328020022052d0000210920032004417f6a3602042003200541016a3602004100212120090e0202010a0b200441ff0171450d09200241003a00d4150c090b2001280200220328020422044110490d082003280200220541086a290000210b200529000021072003200541106a3602002003200441706a3602042001280200220328020422044110490d082003280200220541086a290000210f2005290000210c2003200541106a3602002003200441706a36020420012802002203280204220441034d0d0820032802002205280000210620032004417c6a3602042003200541046a3602002002200c3703d0152002200b3703c815200220063602e01520022802d415210320022f01d215210420022d00d115210520022f00cb15210820022800cd15210620022d00ca15210e20022f01c815212220022903e0152110410121210b20012802002209280204220d450d07200928020022202d0000211f2009200d417f6a3602042009202041016a360200410221234102212002400240201f0e020100090b200128020022012802042209450d082001280200220d2d0000211f20012009417f6a3602042001200d41016a360200410021200240201f0e020100090b410121200b200a410876210920023500ef07200241f3076a31000042208684210b20022900e707210c20022800e307210d4100211c0c030b41002104200241003a00e01502400240024002400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241800a6a200241df156a3100003c0000200220022900d7153703f809200220022900cf153703f009200220022900c7153703e80920022800c315210d20022f00c115210920022d00c015210a41002104200241003a0081160340200128020022032802042205450d02200328020022062d0000210820032005417f6a3602042003200641016a360200200241c0156a20046a20083a00002002200441016a22033a00811620032104200341c100470d000b200241ef156a290000211020022900e715210f20022f00ff15211f20022800fb15211e20022800f715211d20022800e315210320022f00e115210420022d00e015210520022802dc15210620022f01da15210820022d00d915210e20022f00d715212220022900cf15210720022800cb15211c20022800c715212120023502c015210b20023301c415210c20023100c615211120024190056a200110ad012002280290050d0a20012802002223280204221b2002280294052220490d0a2020417f4c0d4420200d02410121170c030b200441ff0171450d09200241003a00e0150c090b200441ff0171450d08200241003a0081160c080b202010322217450d4620012802002223280204211b0b201b2020490d0420172023280200202010e90821012023280204221b2020490d142023201b20206b3602042023202328020020206a3602002001450d06200b200c20114210868442208684420886200241800a6a3100008421112020ad220b422086200b842214422088a72118200241f0096a290300220b423088a72101200b422888a7212020022903f809211520022903e809210c2014a72119410321230c020b20024198056a200110ad012002280298050d05200128020022042802042205200228029c052203490d052003417f4c0d3f0240024020030d004101210d0c010b20031032220d450d452001280200220428020421050b20052003490d04200d2004280200200310e9082101200428020422052003490d122004200520036b3602042004200428020020036a3602002001450d052003ad2207422086200784210c410421230c010b41002104200241003a00d41502400240024002400240024002400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00d4152003210420034114470d000b20022802d015210d20022903c815210720022802c015210a20022802c415210841002104200241003a00d4152008411876210e200a411876211f200a41087621090340200128020022032802042205450d02200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00d4152003210420034114470d000b200128020022032802042204450d0220022802c415212220022802c015212020022802d015212120022903c815210b200328020022052d0000210620032004417f6a3602042003200541016a36020020060e020405030b200441ff0171450d0a200241003a00d4150c0a0b200441ff0171450d09200241003a00d4150c090b200241023a00e8090c080b200241023a00e8090c070b200241003a00e8090c010b41002104200241003a00e0150340200128020022032802042205450d03200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241d8116a410f6a2201200241c0156a410f6a290000370000200241d8116a41086a2203200241c0156a41086a290300370300200241a80e6a410f6a22042001290000370000200241a80e6a41086a22012003290300370300200241d8146a41086a22032001290300370300200241d8146a410f6a22012004290000370000200220022903c0153703d814200241df156a310000210f20022900d7152114200241f8136a410f6a22042001290000370000200241f8136a41086a2003290300370300200220022903d8143703f8132004290000211020022900ff13210c20022d00f813210120022f00f9132103200220022800fb133602ec09200220033b01ea09200220013a00e909200241013a00e8090b202041087621012002200c3700e107200241e9076a2010370000200241dc0a6a2021410874ad200b423888843e0200200220022d00ef093a00e0072002200b4208862022411876ad843702d40a200220224108742020411876723602d00a2014423888200f42ff018342088684210f202141187620022f01e80920022d00ea0941107472410874722121200dad42088620074238888442ffffffffff1f83210b200c423888201042088684a721222007420886200ead84210c2008410874201f72210d2014421888a721032014420888a721042010422088a721062010421088a721082010420888a7210e20022800eb09211c200241d00a6a41086a2903002111200228029810211d200228029c10211e20022f01a010211f20022f01a210211b20022802a410211720022802a810211920022802ac10211820022903e007210720022903d00a21152014a7210542002110410521230b200020053a00492000200e3a0042200020013b011e200020203a001d200020093b000a2000200a3a0009200041133602002000411c6a200b4220883c0000200041186a200b3e0000200041d8006a2010370200200041d0006a200f370200200041286a2011370200200041206a2015370200200041f4006a2018360200200041f0006a2019360200200041ec006a2017360200200041ea006a201b3b0100200041e8006a201f3b0100200041e4006a201e360200200041e0006a201d360200200041cc006a2003360200200041ca006a20043b0100200041c5006a2006360000200041c3006a20083b0000200041c0006a20223b0100200041386a2007370200200041346a201c360200200041306a2021360200200041106a200c3700002000410c6a200d360000200041086a20233a0000200041f8006a200241f0176a41b80110e9081a0c460b0240200441ff0171450d00200241003a00e0150b200241023a00e8090c020b2017102e0c010b200d102e0b2000411c3602000c420b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602044101210a2003200541016a360200024002400240024002400240024020060e0403000102070b200241c0156a200110eb0120022d00c0154105460d0620022903c015220b422088a72103200241d0156a290300210f200241c8156a2903002107200241e0156a2802002105200241d8156a290300210c200ba721044102210a0c020b200241c0156a200110eb0120022d00c01522044105460d05200241d8116a41086a200241d4156a290200370300200241d8116a41106a200241dc156a2802003602002002200241cc156a2902003703d811200241c0156a41086a280200210a20022802c415210302402001280200220628020422084110490d0020022d00c315210d20022f00c115210e200241e0156a28020021052006280200220941086a290000210b200929000021102006200941106a3602002006200841706a3602042001280200220628020422084110490d002006280200220941086a2900002111200929000021152006200941106a3602002006200841706a3602042001280200220128020422064104490d0020012802002209280000210820012006417c6a3602042001200941046a360200200241ec076a200241d8116a41086a290300370200200241f4076a200241d8116a41106a2802003602002002200a3602e007200220022903d8113702e407200e200d411074724108742004722104200241e0076a41086a290300210f20022903e007210720022903f007210c420021124103210a420021250c020b20044102470d05200a0d040c050b200241c0156a200110eb0120022d00c0154105460d04200241c0156a41106a2208290300210f200241e0156a220a2802002105200241d8156a2209290300210c200241c8156a2206290300210720022802c415210320022802c0152104200241c0156a200110eb0120022d00c0154105460d022006290300210b20022802c415210e20022802c015210d2001280200220628020422224110490d0120082903002115200a2802002108200929030021112006280200220a41086a2900002114200a29000021102006200a41106a3602002006202241706a36020420012802002206280204220a4110490d012006280200220941086a2900002113200929000021282006200941106a3602002006200a41706a3602044104210a2001280200220128020422064104490d0120012802002209280000212220012006417c6a3602042001200941046a360200200220223602d0152014422086201042208884212520104220862112200ead422086200dad842110200220283703c01520022802c415210d20022903d01521262028a721090b20004114360200200041f8006a2026370200200041f0006a2013370200200041dc006a20253e0200200041d4006a2012370200200041c0006a2015370200200041386a200b3702002000411c6a200f370200200041146a2007370200200041ec006a200d360200200041e8006a2009360200200041e0006a2014370200200041d0006a2008360200200041c8006a2011370200200041306a20103702002000412c6a2005360200200041246a200c370200200041086a200a3602002000410c6a2003ad4220862004ad8437020020004180016a200241f0176a41b00110e9081a0c450b200d41ff01714102470d00200ba7450d00200e102e0b200441ff01714102470d012007a7450d010b2003102e0b2000411c3602000c410b200241c0156a200110cd06024020022f01c0154104460d00200241e0076a41086a200241c0156a41086a2903002207370300200220022903c015220b3703e007200041153602002000200b3702042000410c6a2007370200200041146a200241f0176a419c0210e9081a0c410b2000411c3602000c400b200128020022032802042204450d24200328020022052d0000210620032004417f6a3602042003200541016a3602004104210a0240024020060e0f00012425232221201f1e1d1c1b1a19260b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241900d6a41086a200241e8096a41086a2800003602002002418c0d6a41026a20024198136a41026a2d00003a0000200241c80d6a41106a200241e0076a41106a290000370300200241c80d6a41086a200241e0076a41086a290000370300200220022900e8093703900d200220022f0098133b018c0d200220022900e0073703c80d200241df156a310000210c20022900d715210b20022900c715210720022800c315210820022f00c115212a20022d00c015212c20023500cf15210f20023500d3152110200241880d6a41026a200241e80f6a41026a2d00003a0000200220022f00e80f3b01880d200241a00d6a41106a200241d8116a41106a290000370300200241a00d6a41086a200241d8116a41086a290000370300200220022900d8113703a00d200241840d6a41026a200241f80d6a41026a2d00003a0000200220022f00f80d3b01840d200241e80c6a41106a20024198106a41106a290000370300200241e80c6a41086a20024198106a41086a29000037030020022002290098103703e80c200241e40c6a41026a200241f8136a41026a2d00003a0000200220022f00f8133b01e40c200241c80c6a41106a200241a80e6a41106a290000370300200241c80c6a41086a200241a80e6a41086a290000370300200220022900a80e3703c80c200241d8146a41206a200241f0176a41206a280000360200200241d8146a41186a200241f0176a41186a290000370300200241d8146a41106a200241f0176a41106a290000370300200241d8146a41086a200241f0176a41086a290000370300200220022900f0173703d814201042208622104280808080806083200f20104280808080f01f838484210f4101210a0c250b200441ff0171450d25200241003a00e0150c250b200241a0056a200110ad0120022802a0050d2420022802a4052205200128020028020441c8006e2203200320054b1bad42c8007e2207422088a70d362007a72203417f4c0d360240024020030d00410421080c010b2003102c2208450d3c0b2001200128020441016a2204360204200341c8006ead210702400240024002400240024002400240024002400240200420012802084b0d00024002402005450d00200241c0156a410c6a211f200241c0156a410172211c0340200241c0156a200110ed0302400240024020022d00c01522044106460d00200241f8136a41026a220a201c41026a2d00003a0000200241e8096a41086a2209201f41086a290200370300200241e8096a41106a220d201f41106a2902003703002002201c2f00003b01f8132002201f2902003703e80920022802c415210620022802c8152103200241f0176a200110ed0320022d00f0174106470d0120044101470d002003450d002006102e0b410621040c010b200241b4146a41026a200a2d00003a000020024198136a41086a200929030037030020024198136a41106a200d290300370300200241e0076a41086a200241f0176a41086a290300370300200241e0076a41106a200241f0176a41106a290300370300200241e0076a41186a200241f0176a41186a290300370300200241e0076a41206a200241f0176a41206a280200360200200220022f01f8133b01b414200220022903e80937039813200220022903f0173703e0072003211e2006211d0b200241b0146a41026a2203200241b4146a41026a2d00003a0000200241e80f6a41086a220620024198136a41086a290300370300200241e80f6a41106a220a20024198136a41106a290300370300200241d8116a41086a2209200241e0076a41086a290300370300200241d8116a41106a220d200241e0076a41106a290300370300200241d8116a41186a220e200241e0076a41186a290300370300200241d8116a41206a2222200241e0076a41206a280200360200200220022f01b4143b01b01420022002290398133703e80f200220022903e0073703d81120044106460d03200241ac146a41026a222120032d00003a0000200241f80d6a41086a22202006290300370300200241f80d6a41106a2206200a29030037030020024198106a41086a220a200929030037030020024198106a41106a2209200d29030037030020024198106a41186a220d200e29030037030020024198106a41206a220e2022280200360200200220022f01b0143b01ac14200220022903e80f3703f80d200220022903d8113703981002402007422088220ba722032007a7470d00200341016a22222003490d4520034101742217202220222017491b22224104202241044b1bad42c8007e220b422088a7454102742122200ba721170240024020030d00200241003602f0170c010b200241043602f817200220083602f0172002200341c8006c3602f4170b200241c0156a20172022200241f0176a107d20022802c815212220022802c0154101460d0320022802c41521082007422088220ba72103202241c8006ead21070b2008200341c8006c6a220320043a0000200341086a201e360000200341046a201d360000200341036a20212d00003a0000200320022f01ac143b00012003410c6a20022903f80d370000200341146a20202903003700002003411c6a2006290300370000200341346a20092903003700002003412c6a200a2903003700002003413c6a200d290300370000200341246a200229039810370000200341c4006a200e280200360000200b422086200742ffffffff0f83844280808080107c21072005417f6a22050d000b200128020421040b20012004417f6a3602042008450d30200241f0176a200110ed0320022d00f0174106460d0a20024180186a310000210c20024190186a220a350200210f20024188186a2209290300211420024184186a220d280200210320024182186a2f0100210420024181186a2d00002105200241f0176a41086a220e290300210b20022802f417212a20022802f0172106200241f0176a200110ed0320022d00f0174106460d09200241e8096a41086a200a280200360200200220092903003703e809200d280200210d200241fc176a220a2902002110200e280200212d20022802f417212e20022802f017212c200241f0176a200110ed0320022d00f01722094106460d08200241f8136a41026a20022d00f3173a000020024198106a41086a20024184186a222029020037030020024198106a41106a2002418c186a221f290200370300200220022f00f1173b01f8132002200a29020037039810200241f0176a41086a220a280200210e20022802f4172122200241f0176a200110ed0320022d00f01722214106460d07200241f80d6a41026a20022d00f3173a0000200241d8116a41086a2020290200370300200241d8116a41106a201f290200370300200220022f00f1173b01f80d2002200241fc176a221d2902003703d811200a280200212020022802f417211f200241f0176a200110ed0320022d00f017221e4106460d06200241ea0f6a20022d00f3173a0000200241e0076a41086a20024184186a290200370300200241f0076a2002418c186a290200370300200220022f00f1173b01e80f2002201d2902003703e007200241f0176a41086a280200211d20022802f417211c2001280200220a2802042217450d05200a28020022232d00002118200a2017417f6a360204200a202341016a3602004100212f420021114100212320180e020302050b20220d460c410b02402007422088a72201450d002008200141c8006c6a2103200821010340024020012d00004101470d00200141086a280200450d00200141046a280200102e0b0240200141246a2d00004101470d002001412c6a280200450d00200141286a280200102e0b200141c8006a22012003470d000b0b2007a72201450d2e200141c8006c450d2e2008102e0c2e0b41002117200241003a00841803402001280200220a2802042223450d02200241f0176a20176a200a280200221b2d00003a0000200a2023417f6a360204200a201b41016a3602002002201741016a220a3a008418200a2117200a4114470d000b20022802f417220a41087420022802f0172217411876722119200a41187621302017410876211b200228028018212f20022903f8172111410121230b200241f0176a200110ed0320022d00f01722184106460d014102210a20024198136a41026a222420022d00f3173a0000200241c0156a41086a222720024184186a290200370300200241c0156a41106a22312002418c186a290200370300200220022f00f1173b0198132002200241fc176a2902003703c015200241f0176a41086a2232280200211a20022802f4172116200241f0176a200110ed0320022d00f0174106470d0720184101470d01201a450d012016102e0c010b201741ff0171450d00200241003a0084180b201e4101470d00201d450d00201c102e0b20214101470d002020450d00201f102e0b20094101470d00200e450d002022102e0b202c41ff01714101470d00202d450d00202e102e0b200641ff01714101470d00200ba7450d00202a102e0b02402007422088a72201450d002008200141c8006c6a2103200821010340024020012d00004101470d00200141086a280200450d00200141046a280200102e0b0240200141246a2d00004101470d002001412c6a280200450d00200141286a280200102e0b200141c8006a22012003470d000b0b2007a72201450d25200141c8006c450d252008102e0c250b200241a80e6a41206a2201200241f0176a41206a280200360200200241a80e6a41186a2233200241f0176a41186a290300370300200241a80e6a41106a2234200241f0176a41106a290300370300200241a80e6a41086a22352032290300370300200241900d6a41086a200241e8096a41086a2802003602002002418c0d6a41026a200241f8136a41026a2d00003a0000200220022903f0173703a80e200220022903e8093703900d200220022f01f8133b018c0d200241c80d6a41106a20024198106a41106a290300370300200241c80d6a41086a20024198106a41086a29030037030020022002290398103703c80d200241880d6a41026a200241f80d6a41026a2d00003a0000200220022f01f80d3b01880d200241a00d6a41106a200241d8116a41106a290300370300200241a00d6a41086a200241d8116a41086a290300370300200220022903d8113703a00d200241840d6a41026a200241e80f6a41026a2d00003a0000200220022f01e80f3b01840d200241e80c6a41106a200241e0076a41106a290300370300200241e80c6a41086a200241e0076a41086a290300370300200220022903e0073703e80c200241e40c6a41026a20242d00003a0000200220022f0198133b01e40c200241c80c6a41106a2031290300370300200241c80c6a41086a2027290300370300200220022903c0153703c80c200241d8146a41206a2001280200360200200241d8146a41186a2033290300370300200241d8146a41106a2034290300370300200241d8146a41086a2035290300370300200220022903a80e3703d81420114208862030ad42ff0183842113202fad42088620114238888442ffffffffff1f832112202dad422086202ead842111202cad422086200f842115202aad4220862006ad84210f0c230b2004200641b8b2c0001056000b2004200641b8b2c0001056000b2004200641b8b2c0001056000b2004200841b8b2c0001056000b2004200641b8b2c0001056000b2003200641b8b2c0001056000b2003200841b8b2c0001056000b2003200641b8b2c0001056000b2003200641b8b2c0001056000b2003200541b8b2c0001056000b2020201b41b8b2c0001056000b2004200641b8b2c0001056000b2003200d41b8b2c0001056000b2006203241b8b2c0001056000b2004200841b8b2c0001056000b2003200a41b8b2c0001056000b2003200641b8b2c0001056000b2000411c3602000c2d0b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020060d00200241d8116a200110950620022802d811450d0020024198106a200241d8116a41c00110e9081a200241003a00881202402001280200220328020422044110490d002003280200220541086a29000021072005290000210b2003200541106a3602002003200441706a360204200241013a0088122002200b3703d811200220073703e0110240200128020022032802042204410f4d0d002003280200220541086a29000021072005290000210b2003200541106a3602002003200441706a360204200241d8116a41186a22042007370300200241023a0088122002200b3703e8112001280200220328020422054110490d002003280200220641086a29000021072006290000210b2003200641106a360200200241d8116a41286a20073703002003200541706a360204200241033a0088122002200b3703f811200241d00a6a41086a200241d8116a41086a290300220c370300200241d00a6a41106a200241d8116a41106a290300220f370300200241d00a6a41186a20042903002210370300200241d00a6a41206a200b370300200241d00a6a41286a2007370300200220022903d81122113703d00a200241e8096a41286a22032007370300200241e8096a41206a2204200b370300200241e8096a41186a22052010370300200241e8096a41106a2206200f370300200241e8096a41086a2208200c370300200220113703e80920024198136a41286a220a200329030037030020024198136a41206a2209200429030037030020024198136a41186a200529030037030020024198136a41106a200629030037030020024198136a41086a22042008290300370300200220022903e809370398132001280200220328020422054104490d0120032802002206280000210820032005417c6a3602042003200641046a3602002002280298102103200241a80e6a20024198106a41047241bc0110e9081a200241e80f6a41286a200a290300370300200241e80f6a41206a2009290300370300200241e80f6a41186a220520024198136a41186a290300370300200241e80f6a41106a220620024198136a41106a290300370300200241e80f6a41086a200429030037030020022002290398133703e80f2003450d02200241f0176a41286a200241e80f6a41286a290300370300200241f0176a41206a200241e80f6a41206a290300370300200241f0176a41186a2005290300370300200241f0176a41106a2006290300370300200241f0176a41086a200241e80f6a41086a290300370300200220022903e80f3703f017200220033602a018200241a4186a200241a80e6a41bc0110e9082104200220083602e019200241d8076a200110ad010240024020022802d8070d0020022802dc072105200241d0076a200110ad0120022802d007450d010b200241a0186a109b060c030b20022802d4072101200241f80d6a41286a2206200241f0176a41286a290300370300200241f80d6a41206a2208200241f0176a41206a290300370300200241f80d6a41186a220a200241f0176a41186a290300370300200241f80d6a41106a2209200241f0176a41106a290300370300200241f80d6a41086a220d200241f0176a41086a290300370300200220022903f0173703f80d200241c0156a200441c40110e9081a200241c80d6a41086a2204200d290300370300200241c80d6a41106a220d2009290300370300200241c80d6a41186a2209200a290300370300200241c80d6a41206a220a2008290300370300200241c80d6a41286a22082006290300370300200220022903f80d3703c80d200241e0076a200241c0156a41c40110e9081a200241d8146a412c6a2008290300370200200241d8146a41246a200a290300370200200241d8146a411c6a2009290300370200200241d8146a41146a200d290300370200200241d8146a410c6a2004290300370200200220022903c80d3702dc142000411b360200200020022902d8143702042000410c6a200241d8146a41086a290200370200200041146a200241d8146a41106a2902003702002000411c6a200241d8146a41186a290200370200200041246a200241d8146a41206a2902003702002000412c6a200241d8146a41286a290200370200200041346a20024188156a280200360200200041386a20033602002000413c6a200241e0076a41c40110e9081a20004184026a200136020020004180026a200536020020004188026a20022903a00d37030020004190026a200241a00d6a41086a29030037030020004198026a200241a00d6a41106a290300370300200041a0026a200241a00d6a41186a290300370300200041a8026a200241a00d6a41206a2903003703000c2f0b200241003a0088120b20024198106a109b060b2000411c3602000c2c0b0240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020002400240024002400240024002400240024002400240024020060e060001020304050c0b20024190076a200110ad012002280290070d0b2001280200220528020422062002280294072204490d0b2004417f4c0d2e0240024020040d00410121030c010b200410322203450d342001280200220528020421060b20062004490d0a20032005280200200410e9082106200528020422082004490d082005200820046b3602042005200528020020046a3602002006450d0b41002105200241003a00e0152004ad22074220862007842207422088a7210d2007a7210902400340200128020022042802042206450d01200241c0156a20056a200428020022082d00003a000020042006417f6a3602042004200841016a3602002002200541016a22043a00e0152004210520044120470d000b200241e0076a410f6a2201200241c0156a410f6a290000370000200241e0076a41086a2204200241c0156a41086a290300370300200241d8116a410f6a22052001290000370000200241d8116a41086a22012004290300370300200241d8146a41086a22042001290300370300200241d8146a410f6a22012005290000370000200220022903c0153703d814200241df156a310000210c20022900d715210b200241f8136a410f6a22052001290000370000200241f8136a41086a2004290300370300200220022903d8143703f81320052800002108200228008b14210a20022900ff13210720022800fb13210420022f00f913210520022d00f8132106200242003703a0102002200d36029c102002200936029810200b422888200c42188684a72109200b421888a7210d200b421088a7210e200ba72122410121210c070b0240200541ff0171450d00200241003a00e0150b2009450d0b0c0a0b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b20024198106a41086a200241e0076a41086a29000037030020024198106a41106a200241e0076a41106a290000370300200220022900e00737039810200241cf156a290000220b422088a7210a20022900c715210720022802dc15210920022f01da15210d20022d00d915210e20022f00d715212220022800c315210420022f00c115210520022d00c0152106200ba72108410221210c050b200441ff0171450d0a200241003a00e0150c0a0b200241b0076a200110ad0120022802b0070d0920012802002205280204220620022802b4072204490d092004417f4c0d2c0240024020040d00410121030c010b200410322203450d322001280200220528020421060b20062004490d0820032005280200200410e9082106200528020422082004490d072005200820046b3602042005200528020020046a3602002006450d092004ad2207422086200784210b41002105200241003a00e015024002400340200128020022042802042206450d01200241c0156a20056a200428020022082d00003a000020042006417f6a3602042004200841016a3602002002200541016a22043a00e0152004210520044120470d000b200241e0076a410f6a2204200241c0156a410f6a290000370000200241e0076a41086a2205200241c0156a41086a290300370300200241d8116a410f6a22062004290000370000200241d8116a41086a22042005290300370300200241d00a6a41086a22052004290300370300200241d00a6a410f6a22042006290000370000200220022903c0153703d00a200241df156a310000210f20022900d715210c200241f8136a410f6a22062004290000370000200241f8136a41086a2005290300370300200220022903d00a3703f81320062800002108200228008b14210a20022900ff13210720022800fb13210420022f00f913210520022d00f813210620024198076a2001108202200229039807a70d01200c422888200f42188684a72109200c421888a7210d200c421088a7210e200ca7212220022903a007210c20024198106a41106a20024198076a41106a2903003703002002200b370398102002200c3703a010410321210c060b200541ff0171450d00200241003a00e0150b200ba70d080c090b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241d8116a41086a2203200241cf156a290000370300200241d8116a41106a2208200241d7156a290000370300200241d8116a41186a220a200241df156a2d00003a0000200220022900c71522073703e007200220073703d81120022d00c015210620022f00c115210520022800c3152104200241e8096a41186a2209200a2d00003a0000200241e8096a41106a2008290300370300200241e8096a41086a22082003290300370300200220022903d8113703e809200241b8076a200110820220022903b807a70d09200241b8076a41106a2903002107200220022903c00737039810200220073703a01020022903f809220b422888200931000042188684a72109200b421888a7210d200b421088a7210e2008290300220c422088a7210a20022903e8092107200ba72122200ca72108410421210c030b200441ff0171450d08200241003a00e0150c080b41002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b20024198106a41086a200241e0076a41086a29000037030020024198106a41106a200241e0076a41106a290000370300200220022900e0073703981020022900d715220b422888200241df156a31000042188684a72109200b421888a7210d200b421088a7210e20022800d315210a20022800cf15210820022900c715210720022800c315210420022f00c115210520022d00c0152106200ba72122410521210c020b200441ff0171450d07200241003a00e0150c070b41002104200241003a00e0150340200128020022032802042205450d03200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b20024198106a41086a200241e0076a41086a29000037030020024198106a41106a200241e0076a41106a290000370300200220022900e0073703981020022900d715220b422888200241df156a31000042188684a72109200b421888a7210d200b421088a7210e200241cf156a290000220c422088a7210a20022900c715210720022800c315210420022f00c115210520022d00c0152106200ba72122200ca72108410621210b0b200241a80e6a41106a220120024198106a41106a290300370300200241a80e6a41086a20024198106a41086a290300220b3703002002200229039810220c3703a80e200041186a200aad4220862008ad84370000200041106a20073700002000412c6a2003360000200020093600252000200d3b00232000200e3a0022200041206a20223b00002000410c6a2004360000200020053b000a200020063a0009200041086a20213a00002000411a360200200041306a200c370200200041386a200b370200200041c0006a2001290300370200200041c8006a200241f0176a41e80110e9081a0c300b200441ff0171450d03200241003a00e0150c030b2004200841b8b2c0001056000b2004200841b8b2c0001056000b2003102e0b2000411c3602000c2b0b02400240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a360200024002400240024002400240024002400240024002400240024020060e090001020304050608070d0b20024198066a2001108202200229039806a70d0c200241a8066a290300210b20022903a006210720024190066a200110ad012002280290060d0c2001280200220528020422062002280294062204490d0c2004417f4c0d2f0240024020040d00410121030c010b200410322203450d352001280200220528020421060b20062004490d0b20032005280200200410e9082101200528020422062004490d0d2005200620046b3602042005200528020020046a3602002001450d0c2004ad220c422086200c84220c422088210f200ca72104410121010c090b200241b0066a200110ad0120022802b00622010d0b410a410220011b21014200210f20022802b40621030c070b200241d0066a200110ad0120022802d0060d0a20022802d4062103200241c0156a200110eb0120022d00c0154105460d0a200241c0156a41106a290300210b200241c8156a2903002107200241e0156a2802002105200241d8156a290300210c20022802c415210620022802c0152104200241b8066a2001108202024020022903b806a70d00200241b8066a41106a290300211120022903c00621102006ad210f410321010c090b200441ff01714102470d0a2007a7450d0a2006102e0c0a0b200241d8066a200110ad0120022802d80622010d09410a410420011b21014200210f20022802dc0621030c050b200241e0066a200110ad0120022802e00622010d08410a410520011b21014200210f20022802e40621030c040b200241e8066a200110ad0120022802e8060d0720022802ec062103200241c0156a200110eb0120022d00c0154105460d0720022903c0152210422088210f200241d0156a290300210b200241c8156a2903002107200241e0156a2802002105200241d8156a290300210c2010a721044200211041062101420021110c050b200241f0066a200110ad0120022802f00622010d06410a410720011b21014200210f20022802f40621030c020b20024188076a200110ad012002280288070d05200228028c07210320024180076a200110ad012002280280070d052001280200220628020422082002280284072205490d052005417f4c0d280240024020050d00410121040c010b200510322204450d2e2001280200220628020421080b0240024020082005490d0020042006280200200510e90821012006280204220820054f0d012005200841b8b2c0001056000b2004102e0c060b2006200820056b3602042006200628020020056a3602002001450d052005ad2207422086200784220f42208821074200210b410921010c020b200241f8066a200110ad0120022802f80622010d04410a410820011b21014200210f20022802fc0621030b0b0b20004119360200200041c0006a2011370200200041386a2010370200200041206a200b370200200041186a2007370200200041306a2005360200200041286a200c3702002000410c6a2003360200200041086a2001360200200041106a200f4220862004ad84370200200041c8006a200241f0176a41e80110e9081a0c2d0b2003102e0b2000411c3602000c2b0b2004200641b8b2c0001056000b024002400240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a3602000240024002400240024002400240024020060e0400010203080b200241d8116a200110e40120022802d8112203450d0720022902dc11210b0240200110cc042204450d0020022902d815220c42808080807083210f20022902d0152207428080808070832110200241ec076a310000211120022902e407211520022802cc15210e20022802c8152109200228009b10210820022f009910210a2007a7210d410121010c0a0b200b42ffffff3f8350450d060c070b2001280200220328020422044102490d06200328020022062f0000210520032004417e6a3602042003200641026a360200200241c0156a200110e40120022802c0152203450d0620022902c415210b200241c0156a200110fd0520022802c01522044102460d04200241c8156a280200210a20022802c415210620024188066a200110ad012002280288060d0420012802002209280204220d200228028c062208490d042008417f4c0d290240024020080d004101210e0c010b20081032220e450d2f20012802002209280204210d0b200d2008490d03200e2009280200200810e908210d200928020422222008490d072009202220086b3602042009200928020020086a360200200d450d042008ad2207422086200784210c200128020022082802042209450d02200828020022222d0000212120082009417f6a3602042008202241016a360200410021220240024020210e020100040b410121220b2001280200220128020422094108490d02200c422088a721082001280200220e29000021072001200941786a3602042001200e41086a360200200c422086200dad84220f4220882111200f422086200aad842115200c421088a7210a200c420888a72121410221014100210d4200210c4200210f420021100c080b2001280200220328020422044102490d05200328020022052f0000210a20032004417e6a3602042003200541026a360200200241c0156a200110e40120022802c0152208450d0520022902c4152107200241c0156a200110fd05024020022802c0154102460d00200241c8156a280200210d20022903c015211041002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b2001280200220128020422094108490d01200241df156a310000211120022900d715211520022900c715210b20022800c315210320022f00c115210520022d00c0152122200241cf156a290000220c422088a72106200ca721042001280200220e290000210c2001200941786a3602042001200e41086a360200200c42808080807083210f2010422088a7210e2010a7210941032101420021100c090b200441ff0171450d00200241003a00e0150b200742ffffff3f83500d052008102e0c050b2001280200220328020422044102490d04200328020022052f0000210a20032004417e6a3602042003200541026a360200200241c0156a200110e40120022802c0152208450d0420022902c415210702402001280200220328020422044104490d0020032802002205280000210920032004417c6a3602042003200541046a3602002001280200220328020422044104490d0020032802002205280000210e20032004417c6a3602042003200541046a36020041002104200241003a00e01502400340200128020022032802042205450d01200241c0156a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00e0152003210420034120470d000b200241e0076a410f6a2201200241c0156a410f6a290000370000200241e0076a41086a2203200241c0156a41086a290300370300200241d8116a410f6a22042001290000370000200241d8116a41086a2201200329030037030020024198106a41086a2203200129030037030020024198106a410f6a22012004290000370000200220022903c01537039810200241df156a310000211120022900d7152115200241f8136a410f6a22042001290000370000200241f8136a41086a200329030037030020022002290398103703f81320042800002104200228008b14210620022900ff13210b20022800fb13210320022f00f913210520022d00f8132122410421014100210d4200210c4200210f420021100c080b200441ff0171450d00200241003a00e0150b200742ffffff3f83500d042008102e0c040b200ca7450d010b200e102e0b200b42ffffff3f83500d010b2003102e0b2000411c3602000c2b0b2008202241b8b2c0001056000b200020213a0029200020223a000920004118360200200041286a20113c0000200041206a20153702002000413c6a200e360200200041386a2009360200200041306a20073702002000412c6a20083602002000412a6a200a3b01002000411c6a2006360200200041186a2004360200200041106a200b3702002000410c6a20033602002000410a6a20053b0100200041086a20013a0000200041c8006a200f200c42ffffffff0f8384370200200041c0006a2010200dad84370200200041d0006a200241f0176a41e00110e9081a0c290b200241c0156a200110bc03024020022d00c015410b460d00200241e0076a200241c0156a41c80010e9081a20004117360200200041046a200241e0076a41c80010e9081a200041cc006a200241f0176a41e40110e9081a0c290b2000411c3602000c280b410f210a0c0b0b200241f0176a200110eb0120022d00f0174105460d0b200241900d6a41086a200241e8096a41086a2802003602002002418c0d6a41026a20024198136a41026a2d00003a0000200241c80d6a41086a200241e0076a41086a290200370300200241c80d6a41106a200241e0076a41106a290200370300200220022902e8093703900d200220022f0098133b018c0d200220022902e0073703c80d2002418c186a310000210c20024184186a290200210b200241fc176a290200210f200241f0176a41206a28020021032002418e186a2f010021042002418d186a2d0000210520022902f417210720022802f0172108200241880d6a41026a200241e80f6a41026a2d00003a0000200220022f00e80f3b01880d200241a00d6a41106a200241d8116a41106a290200370300200241a00d6a41086a200241d8116a41086a290200370300200220022902d8113703a00d200241840d6a41026a200241f80d6a41026a2d00003a0000200220022f00f80d3b01840d200241e80c6a41106a20024198106a41106a290200370300200241e80c6a41086a20024198106a41086a29020037030020022002290298103703e80c200241e40c6a41026a200241f8136a41026a2d00003a0000200220022f00f8133b01e40c200241c80c6a41106a200241a80e6a41106a290200370300200241c80c6a41086a200241a80e6a41086a290200370300200220022902a80e3703c80c200241d8146a41206a200241c0156a41206a280200360200200241d8146a41186a200241c0156a41186a290200370300200241d8146a41106a200241c0156a41106a290200370300200241d8146a41086a200241c0156a41086a290200370300200220022902c0153703d814410e210a0c0a0b200241f0176a200110eb0120022d00f0174105460d0a2002418c186a310000210c20024184186a290200210b200241f0176a41206a220928020021032002418e186a2f010021042002418d186a2d00002105200241fc176a290200210f200241f0176a41086a220e280200210620022802f417210a20022802f0172108200241f0176a200110ed03024020022d00f0174106460d00200241900d6a41086a200241e8096a41086a2802003602002002418c0d6a41026a20024198136a41026a2d00003a0000200241c80d6a41086a200241e0076a41086a290200370300200241c80d6a41106a200241e0076a41106a290200370300200220022902e8093703900d200220022f0098133b018c0d200220022902e0073703c80d200241f0176a41186a2903002110200241f0176a41106a29030021112009280200210d200e290300211520022903f0172114200241880d6a41026a200241e80f6a41026a2d00003a0000200220022f00e80f3b01880d200241a00d6a41106a200241d8116a41106a290200370300200241a00d6a41086a200241d8116a41086a290200370300200220022902d8113703a00d200241840d6a41026a200241f80d6a41026a2d00003a0000200220022f00f80d3b01840d200241e80c6a41106a20024198106a41106a290200370300200241e80c6a41086a20024198106a41086a29020037030020022002290298103703e80c200241e40c6a41026a200241f8136a41026a2d00003a0000200220022f00f8133b01e40c200241c80c6a41106a200241a80e6a41106a290200370300200241c80c6a41086a200241a80e6a41086a290200370300200220022902a80e3703c80c200241d8146a41206a200241c0156a41206a280200360200200241d8146a41186a200241c0156a41186a290200370300200241d8146a41106a200241c0156a41106a290200370300200241d8146a41086a200241c0156a41086a290200370300200220022902c0153703d8142006ad422086200aad842107410d210a0c0a0b200841ff01714102470d0a2006450d0a200a102e0c0a0b200241f0176a200110eb0120022d00f0174105460d092002418c186a310000210c20024184186a290200210b200241f0176a41206a220d28020021032002418e186a2f010021042002418d186a2d00002105410c210a200241f0176a410c6a290200210f200241f0176a41086a220e280200210620022802f417210920022802f0172108200241f0176a200110ed03024020022d00f0174106460d00200241900d6a41086a200241e8096a41086a2802003602002002418c0d6a41026a20024198136a41026a2d00003a0000200241c80d6a41086a200241e0076a41086a290200370300200241c80d6a41106a200241e0076a41106a290200370300200220022902e8093703900d200220022f0098133b018c0d200220022902e0073703c80d200241f0176a41186a2903002110200241f0176a41106a2903002111200d280200210d200e290300211520022903f0172114200241880d6a41026a200241e80f6a41026a2d00003a0000200220022f00e80f3b01880d200241a00d6a41106a200241d8116a41106a290200370300200241a00d6a41086a200241d8116a41086a290200370300200220022902d8113703a00d200241840d6a41026a200241f80d6a41026a2d00003a0000200220022f00f80d3b01840d200241e80c6a41106a20024198106a41106a290200370300200241e80c6a41086a20024198106a41086a29020037030020022002290298103703e80c200241e40c6a41026a200241f8136a41026a2d00003a0000200220022f00f8133b01e40c200241c80c6a41106a200241a80e6a41106a290200370300200241c80c6a41086a200241a80e6a41086a290200370300200220022902a80e3703c80c200241d8146a41206a200241c0156a41206a280200360200200241d8146a41186a200241c0156a41186a290200370300200241d8146a41106a200241c0156a41106a290200370300200241d8146a41086a200241c0156a41086a290200370300200220022902c0153703d8142006ad4220862009ad8421070c090b200841ff01714102470d092006450d092009102e0c090b200241f0176a200110eb0120022d00f0174105460d08200241900d6a41086a200241e8096a41086a2802003602002002418c0d6a41026a20024198136a41026a2d00003a0000200241c80d6a41086a200241e0076a41086a290200370300200241c80d6a41106a200241e0076a41106a290200370300200220022902e8093703900d200220022f0098133b018c0d200220022902e0073703c80d2002418c186a310000210c20024184186a290200210b200241fc176a290200210f200241f0176a41206a28020021032002418e186a2f010021042002418d186a2d0000210520022902f417210720022802f0172108200241880d6a41026a200241e80f6a41026a2d00003a0000200220022f00e80f3b01880d200241a00d6a41106a200241d8116a41106a290200370300200241a00d6a41086a200241d8116a41086a290200370300200220022902d8113703a00d200241840d6a41026a200241f80d6a41026a2d00003a0000200220022f00f80d3b01840d200241e80c6a41106a20024198106a41106a290200370300200241e80c6a41086a20024198106a41086a29020037030020022002290298103703e80c200241e40c6a41026a200241f8136a41026a2d00003a0000200220022f00f8133b01e40c200241c80c6a41106a200241a80e6a41106a290200370300200241c80c6a41086a200241a80e6a41086a290200370300200220022902a80e3703c80c200241d8146a41206a200241c0156a41206a280200360200200241d8146a41186a200241c0156a41186a290200370300200241d8146a41106a200241c0156a41106a290200370300200241d8146a41086a200241c0156a41086a290200370300200220022902c0153703d814410b210a0c070b20024180066a200110ad012002280280060d072002280284062108200241f0176a200110eb0120022d00f0174105460d07200241f8176a280200210920022802f417210d20022802f017210a0240024020012802002206280204220e450d0020024188186a310000210c20024180186a290300210b20024190186a35020021142002418c186a28020021032002418a186a2f0100210420024189186a2d00002105200241fc176a3502002107200628020022222d000021212006200e417f6a3602042006202241016a3602004200211502400240024002400240024020210e0707000102030405060b2001280200220128020422064110490d052001280200220e41086a2900002110200e29000021112001200e41106a3602002001200641706a360204420121150c060b420221150c050b420321150c040b420421150c030b420521150c020b420621150c010b200a41ff01714102470d082009450d08200d102e0c080b200241900d6a41086a200241e8096a41086a2802003602002002418c0d6a41026a20024198136a41026a2d00003a0000200241c80d6a41086a200241e0076a41086a290200370300200241c80d6a41106a200241e0076a41106a290200370300200241880d6a41026a200241e80f6a41026a2d00003a0000200220022902e8093703900d200220022f0098133b018c0d200220022902e0073703c80d200220022f00e80f3b01880d200241a00d6a41106a200241d8116a41106a290200370300200241a00d6a41086a200241d8116a41086a290200370300200241840d6a41026a200241f80d6a41026a2d00003a0000200241e80c6a41086a20024198106a41086a290200370300200241e80c6a41106a20024198106a41106a290200370300200241e40c6a41026a200241f8136a41026a2d00003a0000200220022902d8113703a00d200220022f00f80d3b01840d20022002290298103703e80c200220022f00f8133b01e40c200241c80c6a41106a200241a80e6a41106a290200370300200241c80c6a41086a200241a80e6a41086a290200370300200241d8146a41206a200241c0156a41206a280200360200200241d8146a41186a200241c0156a41186a290200370300200241d8146a41106a200241c0156a41106a290200370300200241d8146a41086a200241c0156a41086a290200370300200220022902a80e3703c80c200220022902c0153703d81420074220862009ad84210f200dad422086200aad842107410a210a0c060b200241f8056a200110ad0120022802f8050d062001280200220128020422034108490d0620022802fc0521082001280200220429000021072001200341786a3602042001200441086a360200200742ff01560d06200241900d6a41086a200241a80e6a41086a2802003602002002418c0d6a41026a200241e8096a41026a2d00003a0000200241c80d6a41086a200241c0156a41086a290200370300200241c80d6a41106a200241c0156a41106a290200370300200241880d6a41026a20024198136a41026a2d00003a0000200220022902a80e3703900d200220022f00e8093b018c0d200220022902c0153703c80d200220022f0098133b01880d200241a00d6a41106a200241e0076a41106a290200370300200241a00d6a41086a200241e0076a41086a290200370300200241840d6a41026a200241e80f6a41026a2d00003a0000200241e80c6a41086a200241d8116a41086a290200370300200241e80c6a41106a200241d8116a41106a290200370300200241e40c6a41026a200241f80d6a41026a2d00003a0000200220022902e0073703a00d200220022f00e80f3b01840d200220022902d8113703e80c200220022f00f80d3b01e40c200241c80c6a41106a20024198106a41106a290200370300200241c80c6a41086a20024198106a41086a290200370300200241d8146a41206a200241f0176a41206a280200360200200241d8146a41186a200241f0176a41186a290200370300200241d8146a41106a200241f0176a41106a290200370300200241d8146a41086a200241f0176a41086a29020037030020022002290298103703c80c200220022902f0173703d814200742ff018321074109210a0c050b200241f0056a200110ad0120022802f0050d0520022802f405210341002105200241003a00e01502400340200128020022042802042206450d01200241c0156a20056a200428020022082d00003a000020042006417f6a3602042004200841016a3602002002200541016a22043a00e0152004210520044120470d000b200241e8096a41186a200241df156a310000220c3c00004108210a200241900d6a41086a20024198136a41086a2802003602002002418c0d6a41026a200241e80f6a41026a2d00003a0000200220022900cf15220f3703f009200220022900c71522073703e809200220022900d715220b3703f80920022002290298133703900d200220022f00e80f3b018c0d20022800c315210820022f00c115212a20022d00c015212c200241c80d6a41106a200241e0076a41106a290200370300200241c80d6a41086a200241e0076a41086a290200370300200220022902e0073703c80d200241880d6a41026a200241f80d6a41026a2d00003a0000200220022f00f80d3b01880d200241a00d6a41106a200241d8116a41106a290200370300200241a00d6a41086a200241d8116a41086a290200370300200220022902d8113703a00d200241840d6a41026a200241f8136a41026a2d00003a0000200220022f00f8133b01840d200241e80c6a41106a20024198106a41106a290200370300200241e80c6a41086a20024198106a41086a29020037030020022002290298103703e80c200241e40c6a41026a200241b4146a41026a2d00003a0000200220022f00b4143b01e40c200241c80c6a41106a200241a80e6a41106a290200370300200241c80c6a41086a200241a80e6a41086a290200370300200220022902a80e3703c80c200241d8146a41206a200241f0176a41206a280200360200200241d8146a41186a200241f0176a41186a290200370300200241d8146a41106a200241f0176a41106a290200370300200241d8146a41086a200241f0176a41086a290200370300200220022902f0173703d8140c050b200541ff0171450d05200241003a00e0150c050b200241e8056a200110ad0120022802e8050d0420022802ec052108200241d0056a200110820220022903d005a70d04200241d0056a41106a290300210f20022903d8052107200241900d6a41086a200241a80e6a41086a2802003602002002418c0d6a41026a200241e8096a41026a2d00003a0000200241c80d6a41086a200241c0156a41086a290200370300200241c80d6a41106a200241c0156a41106a290200370300200241880d6a41026a20024198136a41026a2d00003a0000200220022902a80e3703900d200220022f00e8093b018c0d200220022902c0153703c80d200220022f0098133b01880d200241a00d6a41106a200241e0076a41106a290200370300200241a00d6a41086a200241e0076a41086a290200370300200241840d6a41026a200241e80f6a41026a2d00003a0000200241e80c6a41086a200241d8116a41086a290200370300200241e80c6a41106a200241d8116a41106a290200370300200241e40c6a41026a200241f80d6a41026a2d00003a0000200220022902e0073703a00d200220022f00e80f3b01840d200220022902d8113703e80c200220022f00f80d3b01e40c200241c80c6a41106a20024198106a41106a290200370300200241c80c6a41086a20024198106a41086a290200370300200241d8146a41206a200241f0176a41206a280200360200200241d8146a41186a200241f0176a41186a290200370300200241d8146a41106a200241f0176a41106a290200370300200241d8146a41086a200241f0176a41086a29020037030020022002290298103703c80c200220022902f0173703d8144107210a0c030b2001280200220128020422034104490d0320012802002204280000210820012003417c6a3602042001200441046a360200200241900d6a41086a200241a80e6a41086a2802003602002002418c0d6a41026a200241e8096a41026a2d00003a0000200241c80d6a41086a200241c0156a41086a290200370300200241c80d6a41106a200241c0156a41106a290200370300200220022902a80e3703900d200220022f00e8093b018c0d200220022902c0153703c80d200241880d6a41026a20024198136a41026a2d00003a0000200220022f0098133b01880d200241a00d6a41106a200241e0076a41106a290200370300200241a00d6a41086a200241e0076a41086a290200370300200220022902e0073703a00d200241840d6a41026a200241e80f6a41026a2d00003a0000200220022f00e80f3b01840d200241e80c6a41106a200241d8116a41106a290200370300200241e80c6a41086a200241d8116a41086a290200370300200220022902d8113703e80c200241e40c6a41026a200241f80d6a41026a2d00003a0000200220022f00f80d3b01e40c200241c80c6a41106a20024198106a41106a290200370300200241c80c6a41086a20024198106a41086a29020037030020022002290298103703c80c200241d8146a41206a200241f0176a41206a280200360200200241d8146a41186a200241f0176a41186a290200370300200241d8146a41106a200241f0176a41106a290200370300200241d8146a41086a200241f0176a41086a290200370300200220022902f0173703d8144106210a4200210f0c020b200241c8056a200110ad0120022802c8050d0220022802cc052108200241b0056a200110820220022903b005a70d02200241b0056a41106a290300210f20022903b8052107200241900d6a41086a200241a80e6a41086a2802003602002002418c0d6a41026a200241e8096a41026a2d00003a0000200241c80d6a41086a200241c0156a41086a290200370300200241c80d6a41106a200241c0156a41106a290200370300200241880d6a41026a20024198136a41026a2d00003a0000200220022902a80e3703900d200220022f00e8093b018c0d200220022902c0153703c80d200220022f0098133b01880d200241a00d6a41106a200241e0076a41106a290200370300200241a00d6a41086a200241e0076a41086a290200370300200241840d6a41026a200241e80f6a41026a2d00003a0000200241e80c6a41086a200241d8116a41086a290200370300200241e80c6a41106a200241d8116a41106a290200370300200241e40c6a41026a200241f80d6a41026a2d00003a0000200220022902e0073703a00d200220022f00e80f3b01840d200220022902d8113703e80c200220022f00f80d3b01e40c200241c80c6a41106a20024198106a41106a290200370300200241c80c6a41086a20024198106a41086a290200370300200241d8146a41206a200241f0176a41206a280200360200200241d8146a41186a200241f0176a41186a290200370300200241d8146a41106a200241f0176a41106a290200370300200241d8146a41086a200241f0176a41086a29020037030020022002290298103703c80c200220022902f0173703d8144105210a0c010b200241a8056a200110ad0120022802a8050d0120022802ac052222200128020028020441c4006e2203200320224b1bad42c4007e2207422088a70d132007a72203417f4c0d130240024020030d00410421080c010b2003102c2208450d190b2001200128020441016a2204360204200341c4006ead21070240200420012802084b0d00024002402022450d00200241f8136a410f6a211a20024180186a212c4100210a0340200241003a009018200a41016a210a410021040240024002400340200128020022032802042205450d01200241f0176a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0090182003210420034120470d000b200241f0176a411f6a310000210b200229008718210c20022d00f017210320022f00f117210520022800f317210620022900f717210f20022800ff172116200228008318212a200241f0176a200110ed0320022d00f01722044106470d01410621040c020b0240200441ff0171450d00200241003a0090180b410621040c010b202c290300211520022903f817211120022f019218211f20022d009118211e200228008d18211d20022f008b18211c20022d008a18211720022f018818212320022802f417211b20022f01f217211920022d00f1172118202a212120162120200f2110200621092005210d2003210e200c2114200b21130b2002202136008b142002202036008714200220103700ff13200220093600fb132002200d3b00f9132002200e3a00f81320044106460d03201a290000210c20022900ff13210f02402007422088220ba722032007a7470d00200341016a22052003490d1820034101742206200520052006491b22054104200541044b1bad42c4007e220b422088a7454102742105200ba721060240024020030d00200241003602f0170c010b200241043602f817200220083602f0172002200341c4006c3602f4170b200241e8096a20062005200241f0176a107d20022802f009210520022802e8094101460d0320022802ec0921082007422088220ba72103200541c4006ead21070b2008200341c4006c6a22032011370028200320143700172003200f3700072003201f3b00422003201e3a00412003201d36003d2003201c3b003b200320173a003a200320233b00382003201b360024200320193b0022200320183a0021200320043a0020200320093600032003200d3b00012003200e3a0000200341306a20153700002003411f6a20133c00002003410f6a200c370000200b422086200742ffffffff0f83844280808080107c2107200a2022470d000b200128020421040b20012004417f6a3602042008450d03200241900d6a41086a20024198136a41086a2802003602002002418c0d6a41026a200241e80f6a41026a2d00003a0000200241c80d6a41086a200241e0076a41086a290200370300200241c80d6a41106a200241e0076a41106a290200370300200241880d6a41026a200241f80d6a41026a2d00003a000020022002290298133703900d200220022f00e80f3b018c0d200220022902e0073703c80d200220022f00f80d3b01880d200241a00d6a41106a200241d8116a41106a290200370300200241a00d6a41086a200241d8116a41086a290200370300200241840d6a41026a200241b4146a41026a2d00003a0000200241e80c6a41086a20024198106a41086a290200370300200241e80c6a41106a20024198106a41106a290200370300200241e40c6a41026a200241b0146a41026a2d00003a0000200220022902d8113703a00d200220022f00b4143b01840d20022002290298103703e80c200220022f00b0143b01e40c200241c80c6a41106a200241a80e6a41106a290200370300200241c80c6a41086a200241a80e6a41086a290200370300200241d8146a41206a200241c0156a41206a280200360200200241d8146a41186a200241c0156a41186a290200370300200241d8146a41106a200241c0156a41106a290200370300200241d8146a41086a200241c0156a41086a290200370300200220022902a80e3703c80c200220022902c0153703d8144103210a0c020b20050d190c140b02402007422088a72201450d00200141c4006c2103200841286a210103400240200141786a2d00004101470d002001280200450d002001417c6a280200102e0b200141c4006a2101200341bc7f6a22030d000b0b2007a72201450d01200141c4006c450d012008102e0c010b200241b80c6a41086a2201200241900d6a41086a280200360200200241b40c6a41026a22062002418c0d6a41026a2d00003a0000200241980c6a41086a222d200241c80d6a41086a290300370300200241980c6a41106a222e200241c80d6a41106a290300370300200241940c6a41026a222f200241880d6a41026a2d00003a0000200220022903900d3703b80c200220022f018c0d3b01b40c200220022903c80d3703980c200220022f01880d3b01940c200241f80b6a41106a2230200241a00d6a41106a290300370300200241f80b6a41086a2224200241a00d6a41086a290300370300200241f40b6a41026a2227200241840d6a41026a2d00003a0000200241d80b6a41086a2231200241e80c6a41086a290300370300200241d80b6a41106a2232200241e80c6a41106a290300370300200241d40b6a41026a2233200241e40c6a41026a2d00003a0000200220022903a00d3703f80b200220022f01840d3b01f40b200220022903e80c3703d80b200220022f01e40c3b01d40b200241b80b6a41106a2234200241c80c6a41106a290300370300200241b80b6a41086a2235200241c80c6a41086a290300370300200241d00a6a41206a2236200241d8146a41206a280200360200200241d00a6a41186a2237200241d8146a41186a290300370300200241d00a6a41106a2238200241d8146a41106a290300370300200241d00a6a41086a2239200241d8146a41086a290300370300200220022903c80c3703b80b200220022903d8143703d00a200041c8006a2010370200200041c0006a2011370200200041286a200c3c0000200041206a200b370200200041186a200f370200200041106a2007370200200041d0006a200d360200200041386a2015370200200041306a20143702002000412c6a2003360200200020043b002a200020053a00292000410c6a20083602002000202a3b000a2000202c3a0009200041086a200a3a000020004116360200200041e0006a20093a0000200041d4006a20022903b80c370200200041dc006a2001280200360200200041e4006a2022360200200041e8006a200e360200200020022f01b40c3b0061200041e3006a20062d00003a0000200041ec006a20022903980c370200200041f4006a202d290300370200200041fc006a202e29030037020020004184016a20213a000020004187016a202f2d00003a0000200020022f01940c3b0085012000418c016a202036020020004188016a201f360200200041a0016a203029030037020020004198016a202429030037020020004190016a20022903f80b370200200041a8016a201e3a0000200041ab016a20272d00003a0000200020022f01f40b3b00a901200041b0016a201d360200200041ac016a201c360200200041c4016a2032290300370200200041bc016a2031290300370200200041b4016a20022903d80b370200200041cc016a20183a0000200041cf016a20332d00003a0000200020022f01d40b3b00cd01200041d4016a201a360200200041d0016a2016360200200041e8016a2034290300370200200041e0016a2035290300370200200041d8016a20022903b80b37020020004190026a203628020036020020004188026a203729030037020020004180026a2038290300370200200041f8016a2039290300370200200041f0016a20022903d00a370200200041a4026a20123700002000419c026a201337000020004198026a20193600002000201b3b009602200020173a00950220004194026a20233a00000c1b0b2000411c3602000c1a0b200020043b0046200020053a00452000201e3600412000201f3b003f2000201d3a003e200020173b0026200020233a00252000201b360021200020203b001f200020193a001e2000200a3b0006200020093a0005200020033a000420004111360200200041346a200c3700002000412c6a200b3700002000410c6a20073700002000413c6a20213b0000200041286a201c3600002000411c6a20223b0000200041086a2008360000200041146a200dad422086200ead84370000200041c8006a200241f0176a41e80110e9081a0c190b4100210a410021094100210d0b0b200020083a000920004110360200200041286a200b370200200041146a2004360200200041106a20053602002000410c6a2003360200200041086a200e3a0000200041186a200dad220b423886200742ffffffffffffffff008384370200200041206a200aad4238862009ad42188684200b42088884370200200041306a200241f0176a41800210e9081a0c160b2000411c3602000c150b0b200020013a0029200020053b000a200020043a00092000410f360200200041286a200b3c0000200041206a200c370200200041386a2007370200200041346a2009360200200041306a200a3602002000412c6a2008360200200041146a200e360200200041106a20063602002000410c6a2003360200200041086a20213a0000200041186a2022ad422086200dad84370200200041c0006a200241f0176a41f00110e9081a0c130b2007422088a721010240200d450d002005102e0b2007a7210402402001450d002001410c6c2103200a210103400240200141046a280200450d002001280200102e0b2001410c6a2101200341746a22030d000b0b2004450d032004410c6c450d03200a102e0c030b200d102e0b02402007422088a72201450d002001410c6c2103200a210103400240200141046a280200450d002001280200102e0b2001410c6a2101200341746a22030d000b0b2007a72201450d002001410c6c450d00200a102e0b200ba7450d002005102e0b2000411c3602000c0e0b200d0d090c040b4100210e4200210f0b0c010b200241e9076a200c370000200220073700e107200220022d00df143a00e0074108210920022903e007220c422088200241e0076a41086a290300220f42208684210720022f01d81420022d00da14411074722204410876210d200f422088210f200ca7220e41807e7121162002200b3700f107200b422088a72118200b421088a72119200b420888a7211a201042ff0183a7211720022800db14210320022f01f007211b0b2000201e3a0049200020213a0042200020233b002a200020173a0029200020193b00232000201a3a00222000200d3b010a200020043a000920004107360200200041d8006a200c370200200041d0006a200b370200200041cc006a201c360200200041ca006a201d3b0100200041c5006a201f360000200041c3006a20203b0000200041c0006a20223b0100200041386a2010370200200041346a2008360200200041306a200a3602002000412c6a2005360200200041256a2018360000200041206a201b3b01002000410c6a2003360200200041086a20093a0000200041186a200f422086200742208884370200200041106a20074220862016200e41ff017172ad84370200200041e0006a200241f0176a41d00110e9081a0c090b1038000b2000411c3602000c070b410021064200210b410021010b200041003b0126200020013a00252000200a3b0023200020093b000d200020043b0006200020053a0005200020083a0004200041043602002000411b6a200b370000200041136a2007370000200041286a20063602002000410f6a200d3600002000410c6a200e3a0000200041086a20033602002000412c6a200241f0176a41840210e9081a0c050b2000411c3602000c040b1036000b02402007422088a72201450d00200141186c21032004210103400240200141046a280200450d002001280200102e0b0240200141106a280200450d002001410c6a280200102e0b200141186a2101200341686a22030d000b0b2007a72201450d01200141186c450d010b2004102e0b2000411c3602000b200241c01a6a24000baa2d01047f024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002802000e1b00010218180304051806070818090a0b0c0d0e0f10111213141516170b0240024002400240024002400240200041086a2802000e0a1e1e001e01021e030405060b200041106a280200450d1d2000410c6a280200102e0f0b200041106a280200450d1c2000410c6a280200102e0f0b200041106a280200450d1b2000410c6a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141186c210103400240200241046a280200450d002002280200102e0b0240200241106a280200450d002002410c6a280200102e0b200241186a2102200141686a22010d000b0b200041106a2802002202450d1a200241186c450d1a200028020c102e0f0b0240200041146a2802002201450d002000410c6a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041106a2802002202450d192002410c6c450d19200028020c102e0f0b200041106a280200450d182000410c6a280200102e0f0b200041106a280200450d172000410c6a280200102e0f0b0240024002400240024020002d00040e061b001b010203040b200041186a22022802001096012002280200102e0f0b02402000410c6a280200450d00200041086a280200102e0b200041246a22022802001096012002280200102e0f0b2000410c6a280200450d18200041086a280200102e0f0b200041186a22022802001096012002280200102e0f0b02402000410c6a280200450d00200041086a280200102e0b200041246a22022802001096012002280200102e0f0b02400240200041086a280200417f6a0e020001170b0240200041346a2802002201450d002000412c6a2802002102200141246c210103400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b0240200041306a2802002202450d00200241246c450d00200028022c102e0b0240200041a4016a2802002201450d002000419c016a2802002102200141246c210103400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b0240200041a0016a2802002202450d00200241246c450d00200028029c01102e0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d162002410c6c450d162000280210102e0f0b0240200041346a2802002201450d002000412c6a2802002102200141246c210103400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b0240200041306a2802002202450d00200241246c450d00200028022c102e0b0240200041a4016a2802002201450d002000419c016a2802002102200141246c210103400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b0240200041a0016a2802002202450d00200241246c450d00200028029c01102e0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d152002410c6c450d152000280210102e0f0b0240024002400240200041086a2802000e0418000102030b2000410c6a2d00004102470d17200041146a280200450d17200041106a280200102e0f0b2000410c6a2d00004102470d16200041146a280200450d16200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004102470d15200041386a280200450d15200041346a280200102e0f0b2000410c6a2d00004102470d14200041146a280200450d14200041106a280200102e0f0b02402000410c6a2802002201450d0020002802042202200141f0006c6a21030340024020022204410c6a2802002201450d0020042802042102200141246c210103400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200441f0006a21020240200441086a2802002201450d00200141246c450d002004280204102e0b20022003470d000b0b200041086a2802002202450d13200241f0006c450d132000280204102e0f0b024002400240024002400240200041086a2d00000e171800181818180118180218181818180318180418181818050b2000412c6a2d00004102470d17200041346a280200450d17200041306a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141246c21010340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200041106a2802002202450d16200241246c450d16200028020c102e0f0b2000410c6a2d00004102470d15200041146a280200450d15200041106a280200102e0f0b200041106a28020041ffffff3f71450d142000410c6a280200102e0f0b200041146a28020041ffffffff0371450d13200041106a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141246c21010340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200041106a2802002202450d12200241246c450d12200028020c102e0f0b20002802042202450d11200041086a280200450d112002102e0f0b02400240200041086a280200417f6a0e020001120b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d112002410c6c450d112000280210102e0f0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d102002410c6c450d102000280210102e0f0b02402000410c6a280200450d00200041086a280200102e0b02402000411c6a2802002201450d00200041146a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041186a2802002202450d0f2002410c6c450d0f2000280214102e0f0b0240024002400240200041086a2d000041716a0e0400010203120b200041106a280200450d112000410c6a280200102e0f0b200041106a280200450d102000410c6a280200102e0f0b200041106a280200450d0f2000410c6a280200102e0f0b200041106a280200450d0e2000410c6a280200102e0f0b024002400240200041086a2d0000417f6a0e03000102100b200041306a28020041ffffff3f71450d0f2000412c6a280200102e0f0b2000410c6a22022802001096012002280200102e0f0b200041106a22022802001096012002280200102e0f0b024002400240200041086a2d0000417f6a0e030001020f0b200041306a28020041ffffff3f71450d0e2000412c6a280200102e0f0b2000410c6a22022802001096012002280200102e0f0b200041106a22022802001096012002280200102e0f0b02400240200041086a2d0000417f6a0e05000d0d0d010d0b200041106a28020041ffffff3f71450d0c2000410c6a280200102e0f0b2000410c6a2d00004102470d0b200041146a280200450d0b200041106a280200102e0f0b20002d00044104470d0a2000410c6a28020041ffffff3f71450d0a200041086a280200102e0f0b200041086a2802004101470d092000410c6a2d00004102470d09200041146a280200450d09200041106a280200102e0f0b02400240200041086a2d0000417d6a0e0200010a0b200041f0006a280200450d09200041ec006a280200102e0f0b200041106a280200450d082000410c6a280200102e0f0b024002400240200041086a2802000e040a0a0001020b2000410c6a2d00004102470d09200041146a280200450d09200041106a280200102e0f0b2000410c6a2d00004102470d08200041146a280200450d08200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004102470d07200041386a280200450d07200041346a280200102e0f0b02400240024020002f01040e03090001020b0240200041106a2802002201450d00200041086a2802002102200141b0026c210103402002109601200241b0026a2102200141d07d6a22010d000b0b2000410c6a2802002202450d08200241b0026c450d082000280208102e0f0b200041086a22022802001096012002280200102e0f0b0240200041106a2802002201450d00200041086a2802002102200141b0026c210103402002109601200241b0026a2102200141d07d6a22010d000b0b2000410c6a2802002202450d06200241b0026c450d062000280208102e0f0b0240024002400240024002400240200041086a2d0000417e6a0e0d00010c0c0c0c0c0c02030405060c0b0240200041146a2802002201450d002000410c6a2802002202200141c8006c6a21010340024020022d00004101470d00200241086a280200450d00200241046a280200102e0b0240200241246a2d00004101470d002002412c6a280200450d00200241286a280200102e0b200241c8006a22022001470d000b0b0240200041106a2802002202450d00200241c8006c450d00200028020c102e0b0240200041186a2d00004101470d00200041206a280200450d002000411c6a280200102e0b02402000413c6a2d00004101470d00200041c4006a280200450d00200041c0006a280200102e0b0240200041e0006a2d00004101470d00200041e8006a280200450d00200041e4006a280200102e0b024020004184016a2d00004101470d002000418c016a280200450d0020004188016a280200102e0b0240200041a8016a2d00004101470d00200041b0016a280200450d00200041ac016a280200102e0b0240200041cc016a2d00004101470d00200041d4016a280200450d00200041d0016a280200102e0b200041f0016a2d00004101470d0b200041f8016a280200450d0b200041f4016a280200102e0f0b0240200041146a2802002202450d00200241c4006c21012000410c6a28020041286a210203400240200241786a2d00004101470d002002280200450d002002417c6a280200102e0b200241c4006a2102200141bc7f6a22010d000b0b200041106a2802002202450d0a200241c4006c450d0a200028020c102e0f0b200041106a2d00004102470d09200041186a280200450d09200041146a280200102e0f0b2000410c6a2d00004102470d08200041146a280200450d08200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004101470d07200041386a280200450d07200041346a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004101470d06200041386a280200450d06200041346a280200102e0f0b2000410c6a2d00004102470d05200041146a280200450d05200041106a280200102e0f0b20002d00042202417e6a4108490d040240024020020e020600010b200041286a22022802001096012002280200102e0f0b200041c8006a22022802001096012002280200102e0f0b0240024002400240200041086a2d00000e0407000102030b0240200041106a28020041ffffff3f71450d002000410c6a280200102e0b200041186a22022802001096012002280200102e0f0b0240200041106a28020041ffffff3f71450d002000410c6a280200102e0b200041286a280200450d05200041246a280200102e0f0b200041306a28020041ffffff3f71450d042000412c6a280200102e0f0b200041306a28020041ffffff3f71450d032000412c6a280200102e0f0b0240024002400240200041086a2802000e09060006010606020606030b200041106a280200450d052000410c6a280200102e0f0b200041106a2d00004102470d04200041186a280200450d04200041146a280200102e0f0b200041106a2d00004102470d03200041186a280200450d03200041146a280200102e0f0b200041146a280200450d02200041106a280200102e0f0b02400240200041086a2d0000417f6a0e03000301030b200041306a280200450d022000412c6a280200102e0c020b200041306a280200450d012000412c6a280200102e0f0b02402000413c6a28020041ffffffff0171450d00200041386a280200102e0b0240200041c8006a2802002202450d002002410c6c450d00200041c4006a280200102e0b0240200041d4006a28020041ffffffff0071450d00200041d0006a280200102e0b0240200041e0006a2802002202450d00200241146c450d00200041dc006a280200102e0b0240200041ec006a2802002202450d00200241186c450d00200041e8006a280200102e0b0240200041f8006a2802002202450d002002411c6c450d00200041f4006a280200102e0b024020004184016a28020041ffffff3f71450d0020004180016a280200102e0b024020004190016a2802002202450d00200241246c450d002000418c016a280200102e0b02402000419c016a2802002202450d00200241286c450d0020004198016a280200102e0b0240200041a8016a2802002202450d002002412c6c450d00200041a4016a280200102e0b0240200041b4016a2802002202450d00200241306c450d00200041b0016a280200102e0b0240200041c0016a2802002202450d00200241346c450d00200041bc016a280200102e0b0240200041cc016a2802002202450d00200241386c450d00200041c8016a280200102e0b0240200041d8016a2802002202450d002002413c6c450d00200041d4016a280200102e0b0240200041e4016a28020041ffffff1f71450d00200041e0016a280200102e0b200041f0016a2802002202450d00200241c4006c450d00200041ec016a280200102e0f0b0b900403027f017e077f230041a0076b22032400024002400240024002402002200128020441b0026e2204200420024b1bad42b0027e2205422088a70d002005a72204417f4c0d000240024020040d00410821060c010b2004102c2206450d030b200441b0026e2107024020020d00410021020c040b200341e0046a410472210841002109410021044100210a0340200341e0046a200110980120032802e004210b200341b4026a200841ac0210e9081a200b411c460d02200341086a200341b4026a41ac0210e9081a02400240200a2007470d002009200a41016a220c2009200c4b1b220c4104200c41044b1bad42b0027e2205422088a745410374210c2005a7210702400240200a0d00200341003602e0040c010b200341083602e804200320043602e404200320063602e0040b20034190076a2007200c200341e0046a107d200328029807210c2003280290074101460d012003280294072106200c41b0026e21070b200620046a220c200b360200200c41046a200341086a41ac0210e9081a200941026a2109200441b0026a21042002200a41016a220a460d050c010b0b200c0d020b1038000b200041003602000240200a450d002006210a0340200a109601200a41b0026a210a200441d07d6a22040d000b0b2007450d02200741b0026c450d022006102e0c020b1036000b2000200736020420002006360200200041086a20023602000b200341a0076a24000bfcb1030b067f017e027f027e037f017e027f067e0f7f037e117f230041c01b6b220224000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802042203450d00200141046a2104200128020022052d0000210620012003417f6a22073602042001200541016a36020020060e250102030405060708090a2b0b0c0d0e0f101112132b2b2b2b1415162b17302f2b2b2b2e2d2c2b0b2000411c3602000c630b2007450d6120052d0001210620012003417e6a22073602042001200541026a36020002400240024002400240024002400240024002400240024020060e0a000102030405060708096d0b20074104490d6c2005280002210620012003417a6a3602042001200541066a3602002006418194ebdc034f0d6c410121010c0a0b2002200110ab0120022802000d6b2004280200220320022802042205490d6b2005417f4c0d670240024020050d00410121060c010b200510322206450d6a200428020021030b20032005490d6a20062001280200200510e9082103200128020422072005490d302001200720056b3602042001200128020020056a3602002003450d6b2005ad220842208620088421084102410b20031b21010c080b20074108490d6a200529000221082001200341766a36020420012005410a6a360200410321010c080b200241086a200110ab0120022802080d6920042802002203200228020c2205490d692005417f4c0d650240024020050d00410121060c010b200510322206450d68200428020021030b20032005490d6820062001280200200510e9082103200128020422072005490d262001200720056b3602042001200128020020056a3602002003450d692005ad220842208620088421084104410b20031b21010c060b200241106a200110ab0120022802100d682004280200220320022802142205490d682005417f4c0d640240024020050d00410121060c010b200510322206450d67200428020021030b20032005490d6720062001280200200510e9082103200128020422072005490d242001200720056b3602042001200128020020056a3602002003450d682005ad220842208620088421084105410b20031b21010c050b20024180166a200110fe0520022802801622064102460d672002290284162108410621010c040b200241286a200110ab0120022802280d66200228022c2207200428020041186e2205200520074b1bad42187e2208422088a70d622008a72205417f4c0d620240024020050d00410421060c010b2005102c2206450d650b200541186ead2108024002402007450d000340200241206a200110ab010240024020022802200d002004280200220320022802242205490d002005417f4c0d670240024020050d00410121090c010b200510322209450d6a200428020021030b024020032005490d0020092001280200200510e908210a200128020422032005490d302001200320056b3602042001200128020020056a360200200a450d01200241186a200110ab012005ad220b422086200b84220ca7210d024020022802180d0020042802002203200228021c2205490d002005417f4c0d690240024020050d004101210e0c010b20051032220e450d6c200428020021030b0240024020032005490d00200e2001280200200510e908210e2001280204220320054f0d012005200341b8b2c0001056000b200e102e0c010b2001200320056b3602042001200128020020056a360200200e0d030b200d450d010b2009102e0b02402008422088a72201450d00200141186c21052006210103400240200141046a280200450d002001280200102e0b0240200141106a280200450d002001410c6a280200102e0b200141186a2101200541686a22050d000b0b2008a72201450d6a200141186c450d6a0c690b02402008422088220ba722032008a7470d00200341016a22092003490d662003410174220f20092009200f491b22094104200941044b1bad42187e220b422088a7454102742109200ba7210f0240024020030d0020024100360280160c010b200241043602881620022006360280162002200341186c360284160b20024198086a200f200920024180166a107d20022802a00821092002280298084101460d03200228029c0821062008422088220ba72103200941186ead21080b2006200341186c6a2203200d3602042003200a360200200341146a2005ad22104220862010842210422088a73602002003410c6a2010422086200ead84370200200341086a200c422088a7360200200b422086200842ffffffff0f83844280808080107c21082007417f6a22070d000b0b2006450d674107410b20061b21010c040b2009450d620c640b20024180166a200110e3012002280280162206450d652002290284162108410821010c020b200241306a200110ab0120022802300d642004280200220320022802342205490d642005417f4c0d600240024020050d00410121060c010b200510322206450d63200428020021030b20032005490d6320062001280200200510e9082103200128020422072005490d1f2001200720056b3602042001200128020020056a3602002003450d642005ad220842208620088421080240200428020022034104490d0020012802002207280000210520012003417c6a3602042001200741046a360200410921010c030b2008a70d630c640b200241386a200110ab0120022802380d6320042802002203200228023c2205490d632005417f4c0d5f0240024020050d00410121060c010b200510322206450d62200428020021030b20032005490d6220062001280200200510e9082103200128020422072005490d1d2001200720056b3602042001200128020020056a3602002003450d632005ad22084220862008842108410a410b20031b21010b0b20004100360200200041186a2005360200200041106a20083702002000410c6a2006360200200041086a2001360200200041206a200241b0186a41900210e9081a0c620b02402007450d0020052d0001210620012003417e6a22073602042001200541026a36020002400240024002400240024002400240024020060e06000102030405090b20074104490d082005280002210620012003417a6a22073602042001200541066a3602002007450d0820052d0006210a2001200341796a22043602042001200541076a220e3602004100210702400240200a0e0201000a0b20044104490d09200535000721082001200341756a220736020420012005410b6a36020020074104490d09200535000b210b2001200341716a220436020420012005410f6a220e3602002008200b422086842108410121070b41000d082004450d08200e2d0000210320012004417f6a3602042001200e41016a360200200241b0186a200110980120022802b018210120024180166a200241b0186a41047241ac0210e9081a2001411c460d08200241b0186a20024180166a41ac0210e9081a41b002102c2205450d6720052001360200200541046a200241b0186a41ac0210e9081a2008422088a721042008a7210a4101210e420021080c050b20074104490d072005280002210620012003417a6a22073602042001200541066a36020020074104490d07200528000621072001200341766a36020420012005410a6a3602004102210e41002105420021080c040b200241c0006a200110ab0120022802400d062004280200220320022802442205490d062005417f4c0d630240024020050d00410121060c010b200510322206450d66200428020021030b20032005490d0520062001280200200510e9082103200128020422072005490d2a2001200720056b3602042001200128020020056a3602002003450d062005ad2208422086200884220ba72107200428020022034104490d0420012802002205280000210420012003417c6a220e3602042001200541046a220a360200200e450d04200a2d0000210920012003417b6a220e3602042001200a41016a220d360200410021050240024020090e020100060b200e4104490d05200a35000121082001200341776a22053602042001200a41056a36020020054104490d05200a350005210c2001200341736a220e3602042001200a41096a220d3602002008200c422086842108410121050b41000d04200e450d04200d2d000021032001200e417f6a3602042001200d41016a360200200241b0186a200110980120022802b018210e20024180166a200241b0186a41047241ac0210e9081a200e411c460d04200241b0186a20024180166a41ac0210e9081a41b002102c2201450d65200b422088a7210a2001200e360200200141046a200241b0186a41ac0210e9081a4103210e0c030b200241c8006a200110ab0120022802480d0520042802002203200228024c2205490d052005417f4c0d620240024020050d00410121060c010b200510322206450d65200428020021030b20032005490d0420062001280200200510e9082103200128020422072005490d1f2001200720056b3602042001200128020020056a3602002003450d052005ad22084220862008842208422088a7210a2008a721074104210e41002105410021040c020b20074104490d042005280002210620012003417a6a22073602042001200541066a3602002007450d0420052d0006210a2001200341796a22043602042001200541076a220e3602004100210702400240200a0e020100060b20044104490d05200535000721082001200341756a220736020420012005410b6a36020020074104490d05200535000b210b2001200341716a220436020420012005410f6a220e3602002008200b422086842108410121070b41000d042004450d04200e2d0000210320012004417f6a3602042001200e41016a360200200241b0186a200110980120022802b018210120024180166a200241b0186a41047241ac0210e9081a2001411c460d04200241b0186a20024180166a41ac0210e9081a41b002102c2205450d6320052001360200200541046a200241b0186a41ac0210e9081a2008422088a721042008a7210a4105210e420021080c010b200241d0006a200110ab0120022802500d032004280200220320022802542205490d032005417f4c0d600240024020050d00410121060c010b200510322206450d63200428020021030b20032005490d0220062001280200200510e9082103200128020422072005490d1c2001200720056b3602042001200128020020056a3602002003450d032005ad2208422086200884220ba72107200428020022034104490d0120012802002205280000210420012003417c6a220e3602042001200541046a220a360200200e450d01200a2d0000210920012003417b6a220e3602042001200a41016a220d360200410021050240024020090e020100030b200e4104490d02200a35000121082001200341776a22053602042001200a41056a36020020054104490d02200a350005210c2001200341736a220e3602042001200a41096a220d3602002008200c422086842108410121050b41000d01200e450d01200d2d000021032001200e417f6a3602042001200d41016a360200200241b0186a200110980120022802b018210e20024180166a200241b0186a41047241ac0210e9081a200e411c460d01200241b0186a20024180166a41ac0210e9081a41b002102c2201450d62200b422088a7210a2001200e360200200141046a200241b0186a41ac0210e9081a4106210e0b200020033a00052000200e3a000420004101360200200041246a20013602002000411c6a2008370200200041186a2005360200200041146a2004360200200041106a200a3602002000410c6a2007360200200041086a2006360200200041286a20024198086a41880210e9081a0c640b2007450d010b2006102e0b2000411c3602000c610b2007450d5c20052d0001210620012003417e6a3602042001200541026a3602000240024002400240024020060e03000103610b200241b0186a2001109a02200241bc186a2802002203450d60200241c4186a2802002105200241c0186a280200210620022802b818210e20022903b018210820024198086a200241c8186a41e40010e9081a200241b4196a2802002104200241b0186a4180016a2802002107200241ac196a280200210a20024180166a200241b8196a41800110e9081a200241b0186a200110f701024020022802b418450d00200241bc186a290200210b20022902b418210c20022802b0182109200241980f6a20024198086a41e40010e9081a20024198126a20024180166a41800110e9081a410121010c040b02402005450d00200541246c21052003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012005415c6a22050d000b0b02402006450d00200641246c450d002003102e0b02402004450d00200441246c2105200a210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012005415c6a22050d000b0b2007450d60200741246c0d010c600b200241b0186a2001109a02200241bc186a2802002203450d5f200241c4186a2802002105200241c0186a280200210620022802b818210e20022903b018210820024198086a200241c8186a41e40010e9081a200241b4196a2802002104200241b0186a4180016a2802002107200241ac196a280200210a20024180166a200241b8196a41800110e9081a200241b0186a200110f701024020022802b418450d00200241bc186a290200210b20022902b418210c20022802b0182109200241980f6a20024198086a41e40010e9081a20024198126a20024180166a41800110e9081a410221010c030b02402005450d00200541246c21052003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012005415c6a22050d000b0b02402006450d00200641246c450d002003102e0b02402004450d00200441246c2105200a210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012005415c6a22050d000b0b2007450d5f200741246c450d5f0b200a102e0c5e0b200241b0186a20011095024103210120022d00c0184103460d5d200241b8186a290300210b20022903b018210c20022903c0182108200241980f6a20024198156a41e40010e9081a20024198126a20024198086a41800110e9081a0b200241880b6a200241980f6a41e40010e9081a200241d8106a20024198126a41800110e9081a200041186a200b370200200041106a200c370200200041346a2005360200200041306a20063602002000412c6a2003360200200041286a200e360200200041206a20083702002000410c6a2009360200200041086a200136020020004102360200200041386a200241880b6a41e40010e9081a200041a4016a2004360200200041a0016a20073602002000419c016a200a360200200041a8016a200241d8106a41800110e9081a0c600b02402007450d0020052d0001210620012003417e6a3602042001200541026a36020020060d00200241d8006a200110d9042002290358a70d002002290360210820004103360200200041086a2008370300200041106a200241b0186a41a00210e9081a0c600b2000411c3602000c5f0b02402007450d0020052d0001210620012003417e6a22073602042001200541026a36020002400240024002400240024020060e050001020304060b20074104490d052005280002210620012003417a6a3602042001200541066a36020042002108410121044100210a4200210b4100210e0c040b20024180166a200110930120022d0080164101460d04200428020022044104490d0420024180166a41106a290300210820024188166a290300210c2002419d166a280000210a2002419b166a2f0000210e2002419a166a2d0000210920024198166a2f0100210d200228028416210620022f018216210520022d00811621032001280200220f280000210720012004417c6a3602042001200f41046a3602002002200e3b00eb10200220093a00ea102002200d3b01e8102002200c3703d810200220083703e0102002200a3600ed1020022900df102210422888200241e7106a290000220b421886842108200a4110762109200b422888210b200c421888a72111200c420888a7210f2010420888a7210a200ca721122010a7210e410221040c030b20074104490d032005280002210620012003417a6a3602042001200541066a36020042002108410321044100210a4200210b4100210e4100210d41002107410021010c020b20024180166a200110930120022d0080164101460d02200428020022044104490d0220024190166a290300211020024188166a290300210c2002419d166a28000021092002419b166a2f0000210d2002419a166a2d0000210f20024198166a2f01002111200228028416210620022f018216210520022d00811621032001280200220a280000210720012004417c6a220e3602042001200a41046a220a360200200e450d02200a2d0000210e20012004417b6a3602042001200a41016a3602004100210102400240200e0e020100040b410121010b2002200d3b00ab0f2002200f3a00aa0f200220113b01a80f200220103703a00f200c423888201042088684a7210e200220093600ad0f20094110762109200241ac0f6a330100200241ae0f6a31000042108684210b200c421888a72111200c420888a7210f20022902a40f2108200ca721122010a7210a410421040c010b20074104490d012005280002210620012003417a6a3602042001200541066a36020020022900df10220c422888200241e7106a290000220b421886842108200b422888210b200c420888a7210a20022f00d910210f20022800db10211120022f00ef10210920022d00f110210120022f01f210210d20022802f4102107200ca7210e410521040b2000200d3b0126200020013a0025200020093b00232000200f3b000d200020053b0006200020033a0005200020043a000420004104360200200041286a20073602002000410f6a20113600002000410c6a20123a0000200041086a20063602002000411b6a200b422886200842188884370000200041136a2008422886200aad42088684200ead42ff0183843700002000412c6a200241b0186a41840210e9081a0c5f0b2000411c3602000c5e0b02402007450d0020052d0001210620012003417e6a3602042001200541026a360200024002400240024002400240024020060e0400010203070b20024180166a200110e60120022d0080164105460d0620024180166a41106a290300210b20024188166a2903002108200241a0166a280200210520024198166a290300210c20022802841621062002280280162103200241e8006a200110db0402402002290368a70d00200241e8006a41106a29030021132006ad4220862003ad84211420022903702210422088a721062010a72103410121010c040b200341ff01714102470d062008a7450d062006102e0c060b20024180166a200110e60120022d0080164105460d0520024180166a41106a290300210b200241a0166a280200210520024198166a290300210c20024188166a29030021082002280284162106200228028016210320024198016a200110db04200229039801a70d0420024198016a41106a290300211320022903a001211020024180016a200110db04200229038001a70d0420024180016a41106a290300211520022903880121162006ad4220862003ad8421142010422088a721062010a72103410221010c020b20024180166a200110e60120022d0080164105460d0420024180166a41106a290300210b200241a0166a2203280200210520024198166a290300210c20024180166a41086a220629030021082002280284162104200228028016210720024180166a200110e601024020022d0080164105460d0020024198126a41086a20024180166a41146a29020037030020024198126a41106a2002419c166a280200360200200220024180166a410c6a290200370398122006280200210a2003350200211020022802841621062002280280162103200241b0016a200110db04024020022903b001a70d00200241b0016a41106a290300211720022903b801211820024198086a41146a20024198126a41106a28020036020020024198086a410c6a200241a0126a290300370200200220022903981237029c082002200a360298082004ad4220862007ad84211420024198086a41106a2903002115200229039808211320022903a0082116410321010c030b200341ff01714102470d00200a450d002006102e0b200741ff01714102470d042008a7450d042004102e0c040b20024180166a200110e60120022d0080164105460d0320024180166a41106a290300210b20024188166a2903002108200241a0166a280200210520024198166a290300210c20022802841621062002280280162103200241c8016a200110db0420022903c801a70d01200241c8016a41106a29030021132006ad4220862003ad84211420022903d0012210422088a721062010a72103420021104104210142002116420021150b20004105360200200041e0006a2017370200200041d8006a2018370200200041c8006a2015370200200041c0006a2016370200200041386a20133702002000411c6a200b370200200041146a2008370200200041d0006a20103702002000412c6a2005360200200041246a200c3702002000410c6a2014370200200041086a2001360200200041306a2006ad4220862003ad84370200200041e8006a200241b0186a41c80110e9081a0c600b200341ff01714102470d012008a7450d012006102e0c010b200341ff01714102470d002008a7450d002006102e0b2000411c3602000c5d0b02402007450d0020052d0001210620012003417e6a3602042001200541026a36020020060d00200241e0016a200110ab0120022802e0010d0020022802e4012206200428020041f0006e2205200520064b1bad42f0007e2208422088a70d582008a72205417f4c0d580240024020050d00410421070c010b2005102c2207450d5b0b200541f0006ead21080240024002402006450d0020024180166a41086a210e034020024180166a2001109b022002280284162103200228028016210420024198086a200e41e80010e9081a2003450d0320024198126a20024198086a41e80010e9081a02402008422088220ba722052008a7470d00200541016a220a2005490d5d20054101742209200a200a2009491b220a4104200a41044b1bad42f0007e220b422088a745410274210a200ba721090240024020050d0020024100360280160c010b200241043602881620022007360280162002200541f0006c360284160b200241d8106a2009200a20024180166a107d20022802e010210a20022802d8104101460d0320022802dc1021072008422088220ba72105200a41f0006ead21080b2007200541f0006c6a2205200336020420052004360200200541086a20024198126a41e80010e9081a200b422086200842ffffffff0f83844280808080107c21082006417f6a22060d000b0b2007450d022000200736020420004106360200200041086a2008370200200041106a200241b0186a41a00210e9081a0c5f0b200a0d5b0c590b02402008422088a72201450d002007200141f0006c6a2106200721010340024020012203410c6a2802002205450d0020032802042101200541246c210503400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012005415c6a22050d000b0b200341f0006a21010240200341086a2802002205450d00200541246c450d002003280204102e0b20012006470d000b0b2008a72201450d00200141f0006c450d002007102e0b2000411c3602000c5c0b02402007450d0020052d0001210620012003417e6a22193602042001200541026a3602004100211a410021124107210d0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020060e170001020304056d060708090a0b0c0d0e0f101112131415170b20024180166a200110e60120022d0080164105460d1620024198086a41086a20024194166a29020037030020024198086a41106a2002419c166a29020037030020022002418c166a2902003703980820024180166a41086a28020021092002280284162111200228028016210e200241e8016a200110db0420022903e801a70d1520042802002205450d15200241e8016a41106a290300210c20022903f001210b200128020022032d0000210620012005417f6a3602044101210d2001200341016a3602004100210a02400240024002400240024020060e0505000102031b0b4101210a0c030b4102210a0c020b20024180166a200110930120022d0080164101460d18200241d8106a41106a20024191166a290000370300200241f0106a20024199166a2900002210370300200241e0106a20024189166a290000370300200220022900811622143703d81020022f00eb10200241ed106a2d0000411074722103200241e6106a310000210820022801da10210720022901de10211320022800e710210520022f01ee10211b20022f00f110211c20022800f310211d20022d00f710211e2014a7210f2010a7211f4103210a0c020b4104210a0b0b20024198126a41106a20024198086a41106a29030037030020024198126a41086a20024198086a41086a29030022143703002003ad4228862005ad42088684200842ff01838422084220882110201342208820084220868421082013a7221241807e71211a200229039808211320022d00a212212020022f00a312212120022800a512212220022d00a912212320022f01aa12212420022802ac1221252014a721260c6c0b20024180026a200110db04200229038002a70d15200229038802220b42208820024190026a290300220c422086842108200c4220882110200ba7221241807e71211a4102210d0c6a0b20024198026a200110db04200229039802a70d1420022903a002220b422088200241a8026a290300220c422086842108200c4220882110200ba7221241807e71211a4103210d0c690b4104210d20194104490d132005280002210720012003417a6a3602042001200541066a360200420021080c670b200241b0026a200110ab0120022802b0020d1220022802b40221052002418094ebdc0336028416200220053602801620042802002203450d1220024180166a2005418094ebdc034b4102746a2802002107200128020022052d0000210620012003417f6a3602042001200541016a3602004105210d41002112024020060e026900130b410121120c670b20024180166a200110e5012002280280162207450d11200228028416221241807e71211a20024188166a3502002108420021104106210d0c660b2019450d1020052d0002210620012003417d6a3602042001200541036a3602004100210a02400240024002400240024020060e050500010203160b4101210a0c030b4102210a0c020b20024180166a200110930120022d0080164101460d13200241d8106a41106a20024191166a290000370300200241d8106a41086a20024189166a290000370300200241f0106a220120024199166a29000037030020024198086a41086a200241e6106a29010037030020024198086a41106a200241ee106a2f01003b0100200220022900811622083703d810200220022901de103703980820022801da1021072001290300210b2008a7210f4103210a0c020b4104210a0b0b4108210d200229039808220c42208820024198086a41086a2903002210422086842108200ca7221241807e71211a20104220882110200b423888a7211e200b421888a7211d200b420888a7211c200241a8086a2f0100211b200ba7211f0c660b20024180166a200110e60120022d0080164105460d0f200229028416220b4220882002418c166a290200220c422086842108200ba7221241807e71211a200c4220882110200241a0166a280200210e2002419e166a2f010021272002419d166a2d0000211e20024199166a280000211d20024197166a2f0000211c20024196166a2d0000211f20024194166a2f0100211b20022802801621074109210d0c640b200241b8026a200110ab0120022802b8020d0e20022802bc02210742002108410a210d0c620b200241c0026a200110ab0120022802c0020d0d20022802c402210742002108410b210d0c610b2019450d0c20052d0002210a20012003417d6a3602042001200541036a360200200a41e5004f0d0c42002108410c210d41002112420021100c620b410d210d410021120c600b410e210d410021120c5f0b200241c8026a200110ab01024020022802c802450d0020024100360280160c0a0b20024180166a200120022802cc021092012002280280162207450d09200228028416221241807e71211a20024188166a350200210842002110410f210d0c5e0b20024180166a200110930120022d0080164101460d084110210d200241d8106a41086a220520024180166a41106a290300370300200241d8106a41106a20024180166a41186a290300370300200241d8106a41186a200241a0166a2d00003a0000200220024180166a41086a2903003703d810200428020022034104490d08200228028416210720022f018216210f20022d008116210a20012802002206280000210e20012003417c6a3602042001200641046a36020020022903d810220b4220882005290300220c422086842108200ba7221241807e71211a200c422088211020022f01e810211b20022d00ea10211f20022f00eb10211c20022800ed10211d0c5e0b4111210d410021120c5c0b20194104490d062005280002210720012003417a6a3602042001200541066a36020020024180166a200110e7012002280280162212450d06201241807e71211a2002290284162108420021104112210d0c5b0b20024180166a200110930120022d0080164101460d05200428020022054104490d05200241a0166a310000211020024198166a290300210b20024190166a290300210c20024188166a2903002113200228028416210720022f018216210f20022d008116210a20012802002203280000210e20012005417c6a3602042001200341046a3602002013422088200c422086842108200b422888201042188684a7211d200c42208821102013a7221241807e71211a200b421888a7211c200b421088a7211f200ba7211b4113210d0c5b0b200241d0026a200110db0420022903d002a70d0420022903d802220b422088200241e0026a290300220c422086842108200c4220882110200ba7221241807e71211a4114210d0c590b200241f0026a200110ab0120022802f0020d0320022802f4022107200241e8026a200110ab0120022802e8020d0320022802ec02221241807e71211a4115210d0c580b20024180166a200110930120022d0080164101460d02200428020022054104490d0220024190166a290300210b20024188166a290300210c2002419d166a280000211d2002419b166a2f0000211c2002419a166a2d0000211f20024198166a2f0100211b200228028416210720022f018216210f20022d008116210a20012802002203280000210e20012005417c6a3602042001200341046a360200200c422088200b422086842108200b4220882110200ca7221241807e71211a4116210d0c580b20024180166a200110e5012002280280162207450d01200229028416220b4220882108200ba7221241807e71211a420021104117210d0c560b200e41ff01714102470d002009450d002011102e0b2000411c3602000c5b0b02402007450d0020012003417e6a3602042001200541026a3602000b2000411c3602000c5a0b02402007450d0020052d0001210620012003417e6a3602042001200541026a3602004100210502400240024020060e020001030b200241b0186a200110990320022d00b0184101460d0220024180166a200241b0186a41017241c00110e9081a200241f8026a200110ab0120022802f8020d022004280200220620022802fc022203490d022003417f4c0d570240024020030d00410121050c010b200310322205450d5a200428020021060b20062003490d0120052001280200200310e9082106200128020422072003490d1d2001200720036b3602042001200128020020036a3602002006450d022003ad2208422086200884210820024198086a20024180166a41c00110e9081a0b20024198126a20024198086a41c00110e9081a200041086a20083702002000200536020420004109360200200041106a20024198126a41c00110e9081a200041d0016a200241d8106a41e00010e9081a0c5b0b2005102e0b2000411c3602000c590b02402007450d0020052d0001210620012003417e6a22073602042001200541026a360200024002400240024020060e03000102040b200241b0186a200110c80620022903b81822084202510d0320022802bc18210520022802b418210320022802b018210620024198086a200241c0186a41e40010e9081a200241a8196a280200210720022802ac19210420022802a419210a20024180166a200241b0186a4180016a41800110e9081a200241b0186a200110f70120022802b418450d032008a72101200241bc186a290200210b20022802b018210e20022902b418210c200241880b6a20024198086a41e40010e9081a20024198126a20024180166a41800110e9081a200c422088200b422086842108200b422088210b200ca721094101210d0c020b200241b0186a200110c80620022903b81822084202510d0220022802bc18210520022802b418210320022802b0182106200241980f6a200241c0186a41e40010e9081a200241a8196a280200210720022802ac19210420022802a419210a20024180166a200241b0186a4180016a41800110e9081a200241b0186a200110f70120022802b418450d022008a72101200241bc186a290200210b20022802b018210e20022902b418210c20024198156a200241980f6a41e40010e9081a20024198086a20024180166a41800110e9081a200241880b6a20024198156a41e40010e9081a20024198126a20024198086a41800110e9081a200c422088200b422086842108200b422088210b200ca721094102210d0c010b20074104490d012005280002210e20012003417a6a22063602042001200541066a36020020064104490d01200528000621092001200341766a36020420012005410a6a360200200241880b6a20024180166a41e40010e9081a20024198126a200241b0186a41800110e9081a4103210d0b200241a00a6a200241880b6a41e40010e9081a200241d8106a20024198126a41800110e9081a2000411c6a200b3e0200200041146a20083702002000412c6a2005360200200041286a2001360200200041246a2003360200200041206a2006360200200041106a20093602002000410c6a200e360200200041086a200d3602002000410a360200200041306a200241a00a6a41e40010e9081a2000419c016a200436020020004198016a200736020020004194016a200a360200200041a0016a200241d8106a41800110e9081a200041a8026a200241e80e6a41086a290300370300200041a0026a20022903e80e3703000c590b2000411c3602000c580b2007450d4e20052d0001210620012003417e6a22073602042001200541026a36020020060d4e20074104490d4e2005280002210620012003417a6a3602042001200541066a36020020024190036a200110ab012002280290030d4e200428020022032002280294032205490d4e2005417f4c0d520240024020050d00410121070c010b200510322207450d55200428020021030b0240024020032005490d0020072001280200200510e908210e2001280204220320054f0d012005200341b8b2c0001056000b2007102e0c4f0b2001200320056b3602042001200128020020056a360200200e450d4e2005ad2208422086200884211020024188036a200110ab010240024002402002280288030d00200228028c03220a2004280200410c6e22052005200a4b1bad420c7e2208422088a70d552008a72205417f4c0d550240024020050d00410421090c010b2005102c2209450d580b2005410c6ead21080240024002400240200a450d00034020024180036a200110ab012002280280030d04200428020022032002280284032205490d042005417f4c0d5a0240024020050d00410121070c010b200510322207450d5d200428020021030b20032005490d0320072001280200200510e9082107200128020422032005490d1f2001200320056b3602042001200128020020056a3602002007450d0402402008422088220ba722032008a7470d00200341016a220d2003490d5b2003410174220f200d200d200f491b220d4104200d41044b1bad420c7e220b422088a745410274210d200ba7210f0240024020030d0020024100360298080c010b200241043602a008200220093602980820022003410c6c36029c080b20024198126a200f200d20024198086a107d20022802a012210d2002280298124101460d03200228029c1221092008422088220ba72103200d410c6ead21080b20092003410c6c6a22032005ad220c422086200c8437020420032007360200200b422086200842ffffffff0f83844280808080107c2108200a417f6a220a0d000b0b2009450d032002200936028816200428020021052002200837028c1620022010370380162010a7210320054104490d0420012802002207280000210a20012005417c6a22043602042001200741046a36020020044104490d042007280004210d2001200541786a22043602042001200741086a36020020044104490d04200728000821092001200541746a36020420012007410c6a36020020024180166a410c6a2902002108200229028416210b20024180166a200110a701200b422088a721042008422088a721012008a7210720022d0080164101470d0502402003450d00200e102e0b02402001450d002001410c6c21052004210103400240200141046a280200450d002001280200102e0b2001410c6a2101200541746a22050d000b0b2007450d542007410c6c450d542004102e0c540b200d0d590c570b2007102e0b02402008422088a72201450d002001410c6c21052009210103400240200141046a280200450d002001280200102e0b2001410c6a2101200541746a22050d000b0b2008a72201450d002001410c6c450d002009102e0b2010a7450d50200e102e0c500b2008422088a7210102402003450d00200e102e0b2008a7210302402001450d002001410c6c21052009210103400240200141046a280200450d002001280200102e0b2001410c6a2101200541746a22050d000b0b2003450d4f2003410c6c450d4f2009102e0c4f0b200e450d4e200241b9166a290000210820024180166a41316a290000210c200241ad166a2800002105200241ab166a2f0000210f200241a6166a280100211120024180166a41246a2f01002112200241a3166a2d0000211b200241a1166a2f0000211c20024199166a290000211020024195166a280000211d20024191166a280000211f2002418d166a280000211e20024180166a410b6a2f000021272002418a166a2d00002126200228018616212020022f018416212120022d008316212220022f00811621232000200241aa166a2d00003a00552000201b3a004e200020263a0035200020223a002e200020063602042000410b360200200041e4006a2008370200200041dc006a200c370200200041d8006a2005360200200041d6006a200f3b0100200041d1006a2011360000200041cf006a20123b0000200041cc006a201c3b0100200041c4006a2010370200200041c0006a201d3602002000413c6a201f360200200041386a201e360200200041366a20273b0100200041316a20203600002000412f6a20213b00002000412c6a20233b0100200041286a2009360200200041246a200d360200200041206a200a3602002000411c6a2001360200200041186a2007360200200041146a2004360200200041106a200ba73602002000410c6a2003360200200041086a200e360200200041ec006a200241b0186a41c40110e9081a0c570b02402007450d0020012003417e6a3602042001200541026a3602000b2000411c3602000c560b2007450d4a20052d0001210720012003417e6a22063602042001200541026a360200410d211b024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020070e19000102030405060708090a0b640c0d0e0f1011121314151617630b41002107200241003a00a0162003417d6a21030240034020062007460d0120024180166a20076a200520076a220441026a2d00003a0000200120033602042001200441036a3602002002200741016a22043a00a0162003417f6a21032004210720044120470d000b200441ff01714120490d63200228029c16211120022f019a16210f20022d009916211220022f009716210a200229008f162108200228008b16211c200228008716211d200228008316210e20022f008116210920022d008016210d20024198036a200110db0420022802980322010d63411a410120011b211b200241a8036a290300210c20022903a003210b0c640b200741ff0171450d62200241003a00a0160c620b200241b8036a200110ab0120022802b8030d6120022802bc03210e200241b0036a200110ab0120022802b0030d6120022802b403211d4102211b0c620b200241c0036a200110ab0120022802c0030d6020022802c403210e20024180166a200110b10420022d0080164102460d60200241a0166a290300210b2002419c166a280200211e2002419a166a2f0100212720024199166a2d0000211f20024195166a280000211120024193166a2f0000210f20024192166a2d0000211220024190166a2f0100210a20024188166a2903002108200228028416211c200228028016211d4200210c4103211b0c610b4104211b20064104490d5f2005280002210e20012003417a6a3602042001200541066a3602000c600b41002107200241003a00a0162003417d6a21030240034020062007460d0120024180166a20076a200520076a220441026a2d00003a0000200120033602042001200441036a3602002002200741016a22043a00a0162003417f6a21032004210720044120470d000b200441ff01714120490d5f200228029c16211120022f019a16210f20022d009916211220022f009716210a200229008f162108200228008b16211c200228008716211d200228008316210e20022f008116210920022d008016210d4105211b0c600b200741ff0171450d5e200241003a00a0160c5e0b41002107200241003a00a0162003417d6a21030240034020062007460d0120024180166a20076a200520076a220441026a2d00003a0000200120033602042001200441036a3602002002200741016a22043a00a0162003417f6a21032004210720044120470d000b200441ff01714120490d5e200228029c16211120022f019a16210f20022d009916211220022f009716210a200229008f162108200228008b16211c200228008716211d200228008316210e20022f008116210920022d008016210d4106211b0c5f0b200741ff0171450d5d200241003a00a0160c5d0b41002107200241003a00a0162003417d6a21030240034020062007460d0120024180166a20076a200520076a220441026a2d00003a0000200120033602042001200441036a3602002002200741016a22043a00a0162003417f6a21032004210720044120470d000b200441ff01714120490d5d200228029c16211120022f019a16210f20022d009916211220022f009716210a200229008f162108200228008b16211c200228008716211d200228008316210e20022f008116210920022d008016210d4107211b0c5e0b200741ff0171450d5c200241003a00a0160c5c0b41002107200241003a00a0162006411f2006411f491b20056a41036a211b417d210a0240034020062007460d0120024180166a20076a200520076a220441026a2d00003a000020012003200a6a3602042001200441036a3602002002200741016a22043a00a016200a417f6a210a2004210720044120470d000b200441ff01714120490d5c200320046b2203417e6a4104490d5c200228029c16211120022f019a16210f20022d009916211220022f009716210a200229008f162108200228008b16211c200228008716211d200228008316210e20022f008116210920022d008016210d201b280000211e20012003417a6a22063602042001200520046a220541066a220736020020064104490d5c2007350000210b2001200341766a36020420012005410a6a3602004200210c4108211b0c5d0b200741ff0171450d5b200241003a00a0160c5b0b41002107200241003a00a0162003417d6a21030240034020062007460d0120024180166a20076a200520076a220441026a2d00003a0000200120033602042001200441036a3602002002200741016a22043a00a0162003417f6a21032004210720044120470d000b200441ff01714120490d5b200228029c16211120022f019a16210f20022d009916211220022f009716210a200229008f162108200228008b16211c200228008716211d200228008316210e20022f008116210920022d008016210d4109211b0c5c0b200741ff0171450d5a200241003a00a0160c5a0b200241c8036a200110ab0120022802c8030d5920022802cc03210e410a211b0c5a0b20064104490d582005280002210e20012003417a6a3602042001200541066a360200410b211b0c590b20024180166a200110930120022d0080164101460d5720042802002203450d572002419d166a28000021112002419b166a2f0000210f2002419a166a2d0000211220024198166a2f0100210a20024190166a29030021082002418c166a280200211c20024188166a280200211d200228028416210e20022f018216210920022d008116210d200128020022052d0000210620012003417f6a22073602042001200541016a3602004100211f024002400240024002400240024020060e07060500010203045e0b4102211f0c050b4103211f0c040b4104211f0c030b4105211f0c020b4106211f0c010b4101211f0b20074110490d57200541096a290000210c2005290001210b20012003416f6a3602042001200541116a360200410c211b0c580b410e211b0c570b200241d0036a200110ab0120022802d0030d552004280200220320022802d4032205490d552005417f4c0d5b0240024020050d004101210e0c010b20051032220e450d5e200428020021030b20032005490d0a200e2001280200200510e9082103200128020422062005490d1f2001200620056b3602042001200128020020056a3602002003450d552005ad22084220862008842208422088a7211c2008a7211d410f211b0c560b200241d8036a200110ab0120022802d8030d542004280200220320022802dc032205490d542005417f4c0d5a0240024020050d004101210e0c010b20051032220e450d5d200428020021030b20032005490d09200e2001280200200510e9082103200128020422062005490d152001200620056b3602042001200128020020056a3602002003450d542005ad22084220862008842208422088a7211c2008a7211d4110211b0c550b200241e0036a200110ab0120022802e0030d532004280200220320022802e4032205490d532005417f4c0d590240024020050d004101210e0c010b20051032220e450d5c200428020021030b20032005490d08200e2001280200200510e9082103200128020422062005490d132001200620056b3602042001200128020020056a3602002003450d532005ad22084220862008842208422088a7211c2008a7211d4111211b0c540b200241e8036a200110ab0120022802e8030d522004280200220320022802ec032205490d522005417f4c0d580240024020050d004101210e0c010b20051032220e450d5b200428020021030b20032005490d07200e2001280200200510e9082103200128020422062005490d112001200620056b3602042001200128020020056a3602002003450d522005ad22084220862008842208422088a7211c2008a7211d4112211b0c530b41002107200241003a00a0162003417d6a21030240034020062007460d0120024180166a20076a200520076a220441026a2d00003a0000200120033602042001200441036a3602002002200741016a22043a00a0162003417f6a21032004210720044120470d000b200441ff01714120490d52200229008716210b2002418f166a2900002108200228029c16211120022f019a16210f20022d009916211220022f009716210a200228008316210e20022f008116210920022d008016210d200241f0036a200110ab0120022802f00322010d52200b422088a7211c200ba7211d411a411320011b211b20022802f403211e0c530b200741ff0171450d51200241003a00a0160c510b20024180166a200110930120022d0080164101460d5020024188166a290300220b422088a7211c20024190166a29030021082002419d166a28000021112002419b166a2f0000210f2002419a166a2d0000211220024198166a2f0100210a200228028416210e20022f018216210920022d008116210d200ba7211d4114211b0c510b20064104490d4f2005280002210e20012003417a6a3602042001200541066a3602004115211b0c500b20024180166a200110930120022d0080164101460d4e200428020022054104490d4e20024190166a290300210820024188166a290300210b2002419d166a28000021112002419b166a2f0000210f2002419a166a2d0000211220024198166a2f0100210a200228028416210e20022f018216210920022d008116210d20012802002203280000211e20012005417c6a3602042001200341046a360200200b422088a7211c200ba7211d4116211b0c4f0b41002107200241003a00a0162006411f2006411f491b20056a41036a210f417d21040240034020062007460d0120024180166a20076a200520076a220a41026a2d00003a00002001200320046a3602042001200a41036a3602002002200741016a220a3a00a0162004417f6a2104200a2107200a4120460d4e0c000b0b200741ff0171450d4d200241003a00a0160c4d0b41002107200241003a00a016417d21040240034020062007460d0120024180166a20076a200520076a220a41026a2d00003a00002001200320046a3602042001200a41036a3602002002200741016a220a3a00a0162004417f6a2104200a2107200a4120460d4c0c000b0b200741ff0171450d4c200241003a00a0160c4c0b200241f8036a200110ab0120022802f8030d4b20022802fc03210e4119211b0c4c0b200e102e0c4a0b20024198086a200110c906024020022d0098084107460d0020024198126a41306a20024198086a41306a290300220837030020024198126a41286a20024198086a41286a290300220b37030020024198126a41206a20024198086a41206a290300220c37030020024198126a41186a20024198086a41186a290300221037030020024180166a410c6a20024198086a41086a29030037020020024180166a41146a20024198086a41106a29030037020020024180166a411c6a201037020020024180166a41246a200c37020020024180166a412c6a200b37020020024180166a41346a20083702002002200229039808370284162000410e36020020002002290280163702042000410c6a20024180166a41086a290200370200200041146a20024180166a41106a2902003702002000411c6a20024180166a41186a290200370200200041246a20024180166a41206a2902003702002000412c6a20024180166a41286a290200370200200041346a20024180166a41306a2902003702002000413c6a200241b8166a280200360200200041c0006a200241b0186a41f00110e9081a0c550b2000411c3602000c540b2007450d4520052d0001210620012003417e6a22073602042001200541026a36020002400240024002400240024002400240024020060e060001020304054e0b20024180046a200110ab010240200228028004450d0020024100360280160c4e0b20024180166a20012002280284041092012002280280162206450d4d200228028416210e20042802002205450d0520024188166a2802002109200128020022072d0000210a20012005417f6a22033602042001200741016a3602000240024002400240200a0e020201000b200241023a0098120c090b20024180166a2001109301024020022d0080164101470d00200241023a0098120c090b200241d8106a41186a20024199166a290000370300200241e8106a20024191166a290000370300200241e0106a20024189166a290000370300200220022900811622083703d810200241e7106a290000210b20022900df10210c20022f00ef10210720022d00f110210520022f01f210210320022802f410210a20022f00d910210d200220022800db10220f36029c122002200d3b019a12200220083c009912200241013a0098122002200a36009d08200220033b009b08200220053a009a08200220073b019808200f411876210a200428020021030c010b200241003a00981220022d009f12210a0b20034104490d0620022d009a12210d20022f019812210f2002290099082110200228009b1221052002200c3700990f200241a10f6a200b37000020012802002204350000210820012003417c6a3602042001200441046a3602002002200a3a00980f200220073a00a90f200c423888200b42088684a72104200f200d4110747222074180feff0771410876210a2010423888a721012010421888a7210d2010420888a7210f200c421888a72111200b421888a7211c20022802980f210320022f01a80f21122010a7211b4101211d0c4c0b200110cb042205450d4c20024188046a200110ab012002280288040d06200228028c0421034102211d420021084100211c410021090c4b0b20024198046a200110ab012002280298040d4b200228029c042105200110cb042203450d4b20024190046a200110ab0102402002280290040d0020022802940421114103211d420021084100211c410021090c490b2003108b022003102e0c4b0b41002106200241003a00a0162003417d6a21030240034020072006460d0120024180166a20066a200520066a220a41026a2d00003a0000200120033602042001200a41036a3602002002200641016a220a3a00a0162003417f6a2103200a2106200a4120460d4a0c000b0b200641ff0171450d4a200241003a00a0160c4a0b41002106200241003a00a0162003417d6a21030240034020072006460d0120024180166a20066a200520066a220441026a2d00003a0000200120033602042001200441036a3602002002200641016a22043a00a0162003417f6a21032004210620044120470d000b200441ff01714120490d4a200229009716210b2002419f166a31000021132002418f166a290000210c2002290087162110200228008316210520022f008116210a20022d0080162107200241c0046a200110ab0120022802c0040d4a20022802c4042106200241b0046a200110d90420022903b004a70d4a20022903b8042108200241a8046a200110ab0120022802a8040d4a200b422888201342188684a7210d200b421888a7210f200b421088a7211b200ba7211220022802ac04210e200c422088a7211c2010422088a72111200ca721042010a721034105211d0c470b200641ff0171450d49200241003a00a0160c490b41002106200241003a00a0162003417d6a21030240034020072006460d0120024180166a20066a200520066a220441026a2d00003a0000200120033602042001200441036a3602002002200641016a22043a00a0162003417f6a21032004210620044120460d460c000b0b200641ff0171450d48200241003a00a0160c480b200241023a0098120b200e41ffffff3f71450d462006102e0c460b2005108b022005102e0c450b2007450d3f20052d0001210620012003417e6a22113602044102210d2001200541026a3602000240024002400240024020060e06004301020304440b200241e0046a200110ab01024020022802e004450d0020024100360280160c440b20024180166a200120022802e4041092012002280280162207450d43200229028416210b200241c8046a200110db04024020022903c804a70d0020022903d0042208423888200241d8046a290300220c42088684a7210f200c421888210c200b422088a7210a200ba7210e4101210d0c430b200b42ffffff3f83500d432007102e0c430b200241e8046a200110ab0120022802e8040d4220022802ec04210720023500eb10200241ef106a31000042208684210c20023502e010200241e4106a330100200241e6106a3100004210868442208684210820022903f010210b20022800e710210f20022802dc10210a4103210d0c410b2011450d4120052d0002210620012003417d6a3602042001200541036a3602004104210d4100210f4200210c410021070240024020060e03420001430b410121070c410b200241f0046a200110ab0120022802f0040d4120022802f404210e410221070c400b20024180166a200110e60120022d0080164105460d4020024198086a41086a20024194166a290200370300200241a8086a2002419c166a29020037030020022002418c166a2902003703980820024180166a41086a280200210a200228028416210e2002280280162107024020042802002205450d00200128020022032d0000210620012005417f6a3602042001200341016a360200410021090240024020060e020100020b410121090b2002290398082208423888200241a0086a290300220b42088684a7210f200b421888210c200241a8086a290300210b4105210d0c400b200741ff01714102470d40200a450d40200e102e0c400b20114104490d3f2005280002210720012003417a6a22063602044106210d2001200541066a36020020064104490d3f2005280006210e2001200341766a36020420012005410a6a3602004100210f4200210c0c3e0b2007450d3c20052d0001210620012003417e6a3602042001200541026a3602004107210502400240024002400240024020060e0700010203040541420b20024180166a20011093014101210520022d0080164101460d4120024190166a290300220b422088a7210920024188166a29030021082002419d166a28000021262002419b166a2f000021122002419a166a2d0000212020024198166a2f0100210f200228028416210320022f018216210720022d0081162104200ba7210d0c400b20024180166a200110930120022d0080164101460d40200241d8106a41186a200241a0166a2d00003a0000200241d8106a41106a20024180166a41186a290300220b37030020024180166a41106a290300220c422088a7210920024188166a2903002108200228028416210320022f018216210720022d008116210420022800ed10212620022f00eb10211220022d00ea102120200ba7210f200ca7210d410221050c3f0b20024180166a200110930120022d0080164101460d3f200241980f6a41086a220520024180166a41106a2206290300370300200241980f6a41106a20024180166a41186a220a290300370300200241980f6a41186a220e200241a0166a2d00003a0000200220024180166a41086a220d2903003703980f200228028416210320022f018216210720022d008116210420024180166a200110930120022d0080164101460d3f20022903a80f2210422888200e31000042188684a721262010421888a721122010421088a7212020052903002213422088a721092006290300210c200d290300210b2002419d166a280000211c2002419b166a2f0000211b2002419a166a2d0000211d200a2f01002111200228028416211f20022f018216211e20022d008116212720022903980f21082010a7210f2013a7210d410321050c3e0b200241f8046a200110ab01024020022802f804450d0020024100360298080c3f0b20024198086a200120022802fc041092012002280298082203450d3e200229029c0821082002418c166a290200210c200229028416210b20022d009c12212720022f009d12211e20022f019416211120022d009616211d20022f009716211b200228009916211c20022d009d16210e20022f019e16210a41042105410021094100210d0c3d0b20024180166a200110930120022d0080164101460d3d20024190166a290300220b422088a7210920024188166a29030021082002419d166a28000021262002419b166a2f000021122002419a166a2d0000212020024198166a2f0100210f200228028416210320022f018216210720022d0081162104200ba7210d410521050c3c0b20024180166a200110930120022d0080164101460d3c200241f0106a20024199166a290000370300200241e8106a20024191166a290000370300200241e0106a20024189166a2900003703002002200229008116220b3703d81020022f00d910210720022800db10210320022900df10210820022800e710210d20022800eb10210920022f00ef10210f20022d00f110212020022f01f210211220022802f4102126200ba72104410621050c3b0b02402007450d0020052d0001210620012003417e6a3602042001200541026a3602000240024002400240024020060e03000102050b20024180056a200110db04200229038005a70d0420024190056a2903002108200229038805210b20024180166a200110e60120022d0080164105460d042002290380162214422088a7210120024190166a290300210c20024188166a2903002110200241a0166a280200210520024198166a29030021132014a72103410121060c030b20024198056a200110ab0120022802980522010d034104410220011b2106200228029c0521030c010b200241a0056a200110ab0120022802a00522010d024104410320011b210620022802a40521030b0b20004112360200200041386a2008370200200041306a200b3702002000411c6a200c370200200041146a20103702002000412c6a2005360200200041246a2013370200200041106a20013602002000410c6a2003360200200041086a2006360200200041c0006a200241b0186a41f00110e9081a0c510b2000411c3602000c500b2007450d3820052d0001210620012003417e6a22073602042001200541026a360200024002400240024002400240024020060e0500010203043f0b20024180166a200110930120022d0080164101460d3e20024190166a2204290300210820024188166a2212290300210b2002419d166a220928000021072002419b166a220d2f0000210a2002419a166a220f2d0000210e20024180166a41186a22112f0100211b200228028416210520022f018216210620022d008116210320024180166a200110a80120022d0080164101460d3e2002200b3703d810200220073600ed102002200a3b00eb102002200e3a00ea102002201b3b01e810200220083703e010200241b0166a2903002113200241a8166a2903002110200241c0166a2f0100211b200241bc166a280200211c200241b8166a280200211d200241a4166a2802002107200241a2166a2f0100210a200241a1166a2d0000210e20092800002109200d2f0000210d200f2d0000210f20112f010021112004290300210c2002418c166a280200211f201228020021122002350081162002330085162002310087164210868442208684420886200241d8106a41186a3100008421142008423088a721012008422888a7210420022903e8102118410121270c3c0b200241003a0094162007450d3d20052d0002210620012003417d6a22073602042001200541036a360200200241013a009416200220063a00801620070d1a0c3c0b20024180166a200110930120022d0080164101460d3c200241980f6a41086a20024180166a41106a2212290300370300200241980f6a41106a20024180166a41186a2211290300370300200241980f6a41186a200241a0166a2d00003a0000200220024180166a41086a221e2903003703980f200228028416210520022f018216210620022d008116210320024180166a200110a80120022d0080164101460d3c200241b0166a2903002113200241a8166a2903002110200241c0166a2f0100211b200241bc166a280200211c200241b8166a280200211d200241a4166a2802002107200241a2166a2f0100210a200241a1166a2d0000210e2002419d166a28000021092002419b166a2f0000210d2002419a166a2d0000210f20112f010021112012290300210c2002418c166a280200211f201e28020021122002350081162108200233008516210b2002310087162114200241a8056a200110ab0120022802a8050d3c2004280200222620022802ac052227490d3c2027417f4c0d4e0240024020270d004101211e0c010b20271032221e450d51200428020021260b20262027490d02201e2001280200202710e9082104200128020422262027490d112001202620276b3602042001200128020020276a3602002004450d3c2008200b20144210868442208684420886200241b00f6a3100008421142027ad22084220862008842217422088a72121200241a00f6a2903002208423088a721012008422888a7210420022903a80f211820022903980f210b2017a72120410321270c3a0b200241b0056a200110ab0120022802b0050d3b2004280200220620022802b4052203490d3b2003417f4c0d4d0240024020030d00410121050c010b200310322205450d50200428020021060b20062003490d0220052001280200200310e9082106200128020422072003490d0f2001200720036b3602042001200128020020036a3602002006450d3b2003ad2208422086200884210b410421270c390b200241003a0094162007450d3a20052d0002210620012003417d6a22073602042001200541036a360200200241013a009416200220063a00801620070d160c360b201e102e0c390b2005102e0c380b02402007450d0020052d0001210620012003417e6a3602042001200541026a3602004101210e024002400240024002400240024020060e0403000102070b20024180166a200110e60120022d0080164105460d06200229038016220b422088a7210520024190166a290300211020024188166a2903002108200241a0166a280200210720024198166a290300210c200ba721034102210e0c020b20024180166a200110e60120022d00801622034105460d0520024198126a41086a20024194166a29020037030020024198126a41106a2002419c166a28020036020020022002418c166a2902003703981220024180166a41086a280200210e20022802841621050240200428020022044110490d0020022d008316210920022f008116210d200241a0166a28020021072001280200220641086a290000210b200629000021132001200641106a3602002001200441706a220a360204200a4110490d00200641186a2900002114200629001021182001200441606a220a3602042001200641206a360200200a4104490d002006280020210a20012004415c6a3602042001200641246a360200200241ac086a200241a8126a280200360200200241a4086a20024198126a41086a2903003702002002200e36029808200220022903981237029c08200d200941107472410874200372210320024198086a41086a2903002110200229039808210820022903a808210c420021154103210e420021280c020b20034102470d05200e0d040c050b20024180166a200110e60120022d0080164105460d0420024180166a41106a220a2903002110200241a0166a220e280200210720024198166a2209290300210c20024188166a220629030021082002280284162105200228028016210320024180166a200110e60120022d0080164105460d022006290300210b200228028416210f200228028016210d200428020022044110490d01200a2903002118200e280200210a200929030021142001280200220641086a2900002117200629000021132001200641106a3602002001200441706a220e360204200e4110490d01200641186a2900002116200629001021292001200441606a22093602042001200641206a3602004104210e20094104490d012006280020210920012004415c6a3602042001200641246a36020020022009360290162017422086201342208884212820134220862115200fad422086200dad8421132002202937038016200228028416210d200229039016212a2029a721090b20004114360200200041f8006a202a370200200041f0006a2016370200200041dc006a20283e0200200041d4006a2015370200200041c0006a2018370200200041386a200b3702002000411c6a2010370200200041146a2008370200200041ec006a200d360200200041e8006a2009360200200041e0006a2017370200200041d0006a200a360200200041c8006a2014370200200041306a20133702002000412c6a2007360200200041246a200c370200200041086a200e3602002000410c6a2005ad4220862003ad8437020020004180016a200241b0186a41b00110e9081a0c520b200d41ff01714102470d00200ba7450d00200f102e0b200341ff01714102470d012008a7450d010b2005102e0b2000411c3602000c4e0b20024180166a200110ca06024020022f0180164104460d0020024198086a41086a20024180166a41086a29030022083703002002200229038016220b37039808200041153602002000200b3702042000410c6a2008370200200041146a200241b0186a419c0210e9081a0c4e0b2000411c3602000c4d0b2007450d2f20052d0001210720012003417e6a222b3602042001200541026a3602004104210e0240024020070e0f000126282524232221201f1e1d1c1b310b20024180166a20011093014101210e20022d0080164101460d30200241800e6a41086a200241a00a6a41086a280000360200200241fc0d6a41026a200241e80e6a41026a2d00003a0000200220022900a00a3703800e200220022f00e80e3b01fc0d20024180166a41106a290300210b20024180166a41086a29030021082002419d166a280000210f2002419b166a2f000021122002419a166a2d0000211b20024180166a41186a2f01002111200228028416210620022f018216212c20022d008116212d200241e00d6a41106a20024198086a41106a290000370300200241e00d6a41086a20024198086a41086a29000037030020022002290098083703e00d200241dc0d6a41026a200241b80e6a41026a2d00003a0000200220022f00b80e3b01dc0d200241c00d6a41106a20024198126a41106a290000370300200241c00d6a41086a20024198126a41086a29000037030020022002290098123703c00d200241bc0d6a41026a200241900e6a41026a2d00003a0000200220022f00900e3b01bc0d200241a00d6a41106a200241d8106a41106a290000370300200241a00d6a41086a200241d8106a41086a290000370300200220022900d8103703a00d2002419c0d6a41026a200241a0146a41026a2d00003a0000200220022f00a0143b019c0d200241800d6a41106a200241980f6a41106a290000370300200241800d6a41086a200241980f6a41086a290000370300200220022900980f3703800d20024198156a41206a200241b0186a41206a28000036020020024198156a41186a200241b0186a41186a29000037030020024198156a41106a200241b0186a41106a29000037030020024198156a41086a200241b0186a41086a290000370300200220022900b018370398150c270b200241b8056a200110ab0120022802b8050d2f20022802bc052207200428020041c8006e2205200520074b1bad42c8007e2208422088a70d472008a72205417f4c0d470240024020050d00410421060c010b2005102c2206450d4a0b200541c8006ead210802400240024002402007450d0020024180166a410c6a211c20024180166a410172211e034020024180166a200110ec0302400240024020022d00801622034106460d00200241a0146a41026a220e201e41026a2d00003a0000200241a00a6a41086a2209201c41086a290200370300200241a00a6a41106a220d201c41106a2902003703002002201e2f00003b01a0142002201c2902003703a00a200228028416210a2002280288162105200241b0186a200110ec0320022d00b0184106470d0120034101470d002005450d00200a102e0b410621030c010b200241b4146a41026a200e2d00003a0000200241e80e6a41086a2009290300370300200241e80e6a41106a200d29030037030020024198086a41086a200241b0186a41086a29030037030020024198086a41106a200241b0186a41106a29030037030020024198086a41186a200241b0186a41186a29030037030020024198086a41206a200241b0186a41206a280200360200200220022f01a0143b01b414200220022903a00a3703e80e200220022903b01837039808200a211d2005211f0b200241b0146a41026a2205200241b4146a41026a2d00003a0000200241b80e6a41086a220a200241e80e6a41086a290300370300200241b80e6a41106a220e200241e80e6a41106a29030037030020024198126a41086a220920024198086a41086a29030037030020024198126a41106a220d20024198086a41106a29030037030020024198126a41186a220f20024198086a41186a29030037030020024198126a41206a221120024198086a41206a280200360200200220022f01b4143b01b014200220022903e80e3703b80e20022002290398083703981220034106460d03200241ac146a41026a221220052d00003a0000200241900e6a41086a221b200a290300370300200241900e6a41106a220a200e290300370300200241d8106a41086a220e2009290300370300200241d8106a41106a2209200d290300370300200241d8106a41186a220d200f290300370300200241d8106a41206a220f2011280200360200200220022f01b0143b01ac14200220022903b80e3703900e20022002290398123703d81002402008422088220ba722052008a7470d00200541016a22112005490d4d20054101742227201120112027491b22114104201141044b1bad42c8007e220b422088a7454102742111200ba721270240024020050d00200241003602b0180c010b200241043602b818200220063602b0182002200541c8006c3602b4180b20024180166a20272011200241b0186a107d20022802881621112002280280164101460d0320022802841621062008422088220ba72105201141c8006ead21080b2006200541c8006c6a220520033a0000200541086a201f360000200541046a201d360000200541036a20122d00003a0000200520022f01ac143b00012005410c6a20022903900e370000200541146a201b2903003700002005411c6a200a290300370000200541346a20092903003700002005412c6a200e2903003700002005413c6a200d290300370000200541246a20022903d810370000200541c4006a200f280200360000200b422086200842ffffffff0f83844280808080107c21082007417f6a22070d000b0b2006450d32200241b0186a200110ec0320022d00b0184106460d30200241ec0e6a200241bc186a22032d00003a00002002200241b0186a41086a22072802003602e80e200241bd186a280000210f200241c1186a2d0000210d200241c2186a2f01002109200241c4186a220e280200210a200241c8186a22112903002114200241d0186a2212350200210b20022802b418212c20022802b0182105200241b0186a200110ec0320022d00b0184106460d2f200241a00a6a41086a2012280200360200200220112903003703a00a200e280200211d2003290200210c2007280200210720022802b418212d20022802b0182103200241b0186a200110ec0320022d00b018221c4106460d2e200241b4146a41026a20022d00b3183a0000200241d8106a41086a200241c4186a220e290200370300200241d8106a41106a200241cc186a2211290200370300200220022f00b1183b01b4142002200241bc186a22122902003703d810200241b0186a41086a221b280200211f20022802b418211e200241b0186a200110ec0320022d00b01822274106460d2d200241a0146a41026a20022d00b3183a000020024198126a41086a200e29020037030020024198126a41106a2011290200370300200220022f00b1183b01a0142002201229020037039812201b280200212620022802b4182120200241b0186a200110ec0320022d00b01822214106460d2c200241920e6a20022d00b3183a000020024198086a41086a200241c4186a290200370300200241a8086a200241cc186a290200370300200220022f00b1183b01900e2002200241bc186a29020037039808200241b0186a41086a280200212220022802b41821232004280200220e450d2b200128020022042d000021112001200e417f6a22123602042001200441016a3602004100212b420021104100211920110e0228022b0b20110d4b0c490b02402008422088a72201450d002006200141c8006c6a2105200621010340024020012d00004101470d00200141086a280200450d00200141046a280200102e0b0240200141246a2d00004101470d002001412c6a280200450d00200141286a280200102e0b200141c8006a22012005470d000b0b2008a72201450d30200141c8006c450d300c2f0b200241003a00c4182012450d2820042d000121112001200e417e6a22123602042001200441026a360200200241013a00c418200220113a00b0182012450d2720042d000221112001200e417d6a22123602042001200441036a360200200241023a00c418200220113a00b1182012450d2720042d000321112001200e417c6a22123602042001200441046a360200200241033a00c418200220113a00b2182012450d2720042d000421112001200e417b6a22123602042001200441056a360200200241043a00c418200220113a00b3182012450d2720042d000521112001200e417a6a22123602042001200441066a360200200241053a00c418200220113a00b4182012450d2720042d000621112001200e41796a22123602042001200441076a360200200241063a00c418200220113a00b5182012450d2720042d000721112001200e41786a22123602042001200441086a360200200241073a00c418200220113a00b6182012450d2720042d000821112001200e41776a22123602042001200441096a360200200241083a00c418200220113a00b7182012450d2720042d000921112001200e41766a221236020420012004410a6a360200200241093a00c418200220113a00b8182012450d2720042d000a21112001200e41756a221236020420012004410b6a3602002002410a3a00c418200220113a00b9182012450d2720042d000b21112001200e41746a221236020420012004410c6a3602002002410b3a00c418200220113a00ba182012450d2720042d000c21112001200e41736a221236020420012004410d6a3602002002410c3a00c418200220113a00bb182012450d2720042d000d21112001200e41726a221236020420012004410e6a3602002002410d3a00c418200220113a00bc182012450d2720042d000e21112001200e41716a221236020420012004410f6a3602002002410e3a00c418200220113a00bd182012450d2720042d000f21112001200e41706a22123602042001200441106a3602002002410f3a00c418200220113a00be182012450d2720042d001021112001200e416f6a22123602042001200441116a360200200241103a00c418200220113a00bf182012450d2720042d001121112001200e416e6a22123602042001200441126a360200200241113a00c418200220113a00c0182012450d2720042d001221112001200e416d6a22123602042001200441136a360200200241123a00c418200220113a00c1182012450d2720042d001321112001200e416c6a22123602042001200441146a360200200241133a00c418200220113a00c2182012450d2720042d001421112001200e416b6a3602042001200441156a360200200220113a00c31820022802b418220441087420022802b018221a4118767221242004411876212e201a410876212520022903b818211020022802c018212b410121190c250b2005200641b8b2c0001056000b2005200641b8b2c0001056000b2005200641b8b2c0001056000b2005200741b8b2c0001056000b2005200741b8b2c0001056000b2005200741b8b2c0001056000b2005200741b8b2c0001056000b2005200741b8b2c0001056000b2005200741b8b2c0001056000b2003200741b8b2c0001056000b2027202641b8b2c0001056000b2005200641b8b2c0001056000b2005200341b8b2c0001056000b2003200741b8b2c0001056000b2005200741b8b2c0001056000b2005200341b8b2c0001056000b2005200741b8b2c0001056000b20052d0003210620012003417c6a22073602042001200541046a360200200241023a009416200220063a0081162007450d1f20052d0004210620012003417b6a22073602042001200541056a360200200241033a009416200220063a0082162007450d1f20052d0005210620012003417a6a22073602042001200541066a360200200241043a009416200220063a0083162007450d1f20052d000621062001200341796a22073602042001200541076a360200200241053a009416200220063a0084162007450d1f20052d000721062001200341786a22073602042001200541086a360200200241063a009416200220063a0085162007450d1f20052d000821062001200341776a22073602042001200541096a360200200241073a009416200220063a0086162007450d1f20052d000921062001200341766a220736020420012005410a6a360200200241083a009416200220063a0087162007450d1f20052d000a21062001200341756a220736020420012005410b6a360200200241093a009416200220063a0088162007450d1f20052d000b21062001200341746a220736020420012005410c6a3602002002410a3a009416200220063a0089162007450d1f20052d000c21062001200341736a220736020420012005410d6a3602002002410b3a009416200220063a008a162007450d1f20052d000d21062001200341726a220736020420012005410e6a3602002002410c3a009416200220063a008b162007450d1f20052d000e21062001200341716a220736020420012005410f6a3602002002410d3a009416200220063a008c162007450d1f20052d000f21062001200341706a22073602042001200541106a3602002002410e3a009416200220063a008d162007450d1f20052d0010210620012003416f6a22073602042001200541116a3602002002410f3a009416200220063a008e162007450d1f20052d0011210620012003416e6a22073602042001200541126a360200200241103a009416200220063a008f162007450d1f20052d0012210620012003416d6a22073602042001200541136a360200200241113a009416200220063a0090162007450d1f20052d0013210620012003416c6a22073602042001200541146a360200200241123a009416200220063a0091162007450d1f20052d0014210620012003416b6a22073602042001200541156a360200200241133a009416200220063a00921620070d1e0c1f0b20052d0003210620012003417c6a22073602042001200541046a360200200241023a009416200220063a0081162007450d2120052d0004210620012003417b6a22073602042001200541056a360200200241033a009416200220063a0082162007450d2120052d0005210620012003417a6a22073602042001200541066a360200200241043a009416200220063a0083162007450d2120052d000621062001200341796a22073602042001200541076a360200200241053a009416200220063a0084162007450d2120052d000721062001200341786a22073602042001200541086a360200200241063a009416200220063a0085162007450d2120052d000821062001200341776a22073602042001200541096a360200200241073a009416200220063a0086162007450d2120052d000921062001200341766a220736020420012005410a6a360200200241083a009416200220063a0087162007450d2120052d000a21062001200341756a220736020420012005410b6a360200200241093a009416200220063a0088162007450d2120052d000b21062001200341746a220736020420012005410c6a3602002002410a3a009416200220063a0089162007450d2120052d000c21062001200341736a220736020420012005410d6a3602002002410b3a009416200220063a008a162007450d2120052d000d21062001200341726a220736020420012005410e6a3602002002410c3a009416200220063a008b162007450d2120052d000e21062001200341716a220736020420012005410f6a3602002002410d3a009416200220063a008c162007450d2120052d000f21062001200341706a22073602042001200541106a3602002002410e3a009416200220063a008d162007450d2120052d0010210620012003416f6a22073602042001200541116a3602002002410f3a009416200220063a008e162007450d2120052d0011210620012003416e6a22073602042001200541126a360200200241103a009416200220063a008f162007450d2120052d0012210620012003416d6a22073602042001200541136a360200200241113a009416200220063a0090162007450d2120052d0013210620012003416c6a22073602042001200541146a360200200241123a009416200220063a0091162007450d2120052d0014210620012003416b6a22073602042001200541156a360200200241133a009416200220063a00921620070d1f0c210b2000411c3602000c380b024002402007450d0020052d0001210620012003417e6a3602042001200541026a36020020060d0020024198126a2001109606200228029812450d00200241d8106a20024198126a41c00110e9081a20024198126a200110a401024002402002290398124201510d00200241880b6a41286a2205200241c8126a290300370300200241880b6a41206a220320024198126a41286a290300370300200241880b6a41186a220620024198126a41206a290300370300200241880b6a41106a220720024198126a41186a290300370300200241880b6a41086a220a20024198126a41106a290300370300200220022903a0123703880b2004280200220441044f0d010b200241d8106a109b060c010b2001280200220e280000210920012004417c6a3602042001200e41046a36020020022802d8102104200241980f6a200241d8106a41047241bc0110e9081a200241a00a6a41286a2005290300370300200241a00a6a41206a2003290300370300200241a00a6a41186a2006290300370300200241a00a6a41106a2007290300370300200241a00a6a41086a200a290300370300200220022903880b3703a00a2004450d00200241b0186a41286a200241a00a6a41286a290300370300200241b0186a41206a200241a00a6a41206a290300370300200241b0186a41186a200241a00a6a41186a290300370300200241b0186a41106a200241a00a6a41106a290300370300200241b0186a41086a200241a00a6a41086a290300370300200220022903a00a3703b018200220043602e018200241e4186a200241980f6a41bc0110e9082105200220093602a01a20024190086a200110ab0102402002280290080d00200228029408210320024188086a200110ab01200228028808450d020b200241e0186a109b060b2000411c3602000c380b200228028c082101200241e80e6a41286a2206200241b0186a41286a290300370300200241e80e6a41206a2207200241b0186a41206a290300370300200241e80e6a41186a220a200241b0186a41186a290300370300200241e80e6a41106a220e200241b0186a41106a290300370300200241e80e6a41086a2209200241b0186a41086a290300370300200220022903b0183703e80e20024180166a200541c40110e9081a200241b80e6a41086a22052009290300370300200241b80e6a41106a2209200e290300370300200241b80e6a41186a220e200a290300370300200241b80e6a41206a220a2007290300370300200241b80e6a41286a22072006290300370300200220022903e80e3703b80e20024198086a20024180166a41c40110e9081a20024198156a412c6a200729030037020020024198156a41246a200a29030037020020024198156a411c6a200e29030037020020024198156a41146a200929030037020020024198156a410c6a2005290300370200200220022903b80e37029c152000411b36020020002002290298153702042000410c6a20024198156a41086a290200370200200041146a20024198156a41106a2902003702002000411c6a20024198156a41186a290200370200200041246a20024198156a41206a2902003702002000412c6a20024198156a41286a290200370200200041346a200241c8156a280200360200200041386a20043602002000413c6a20024198086a41c40110e9081a20004184026a200136020020004180026a200336020020004188026a20022903900e37030020004190026a200241900e6a41086a29030037030020004198026a200241900e6a41106a290300370300200041a0026a200241900e6a41186a290300370300200041a8026a200241900e6a41206a2903003703000c370b02402007450d0020052d0001210620012003417e6a22073602042001200541026a3602000240024002400240024002400240024002400240024002400240024020060e060001020304050e0b200241c8076a200110ab0120022802c8070d0d2004280200220620022802cc072203490d0d2003417f4c0d3f0240024020030d00410121050c010b200310322205450d42200428020021060b20062003490d0620052001280200200310e9082106200128020422072003490d072001200720036b3602042001200128020020036a3602002006450d0d20024180166a2001109301410121012003ad22084220862008842208a72103024020022d0080164101460d00200242003703a0152002200336029815200220084220883e029c1520024190166a290300220b422088a7210d20024188166a29030021082002419d166a28000021042002419b166a2f0000210a2002419a166a2d0000210e20024198166a2f01002109200228028416210320022f018216210620022d0081162107200ba7210f0c0d0b20030d060c0d0b41002106200241003a00a0162003417d6a21030240034020072006460d0120024180166a20066a200520066a220441026a2d00003a0000200120033602042001200441036a3602002002200641016a22043a00a0162003417f6a21032004210620044120470d000b200441ff01714120490d0d20022900871621082002418f166a290000210b200228029c16210420022f019a16210a20022d009916210e20022f0097162109200228008316210320022f008116210620022d008016210720024198156a41106a20024198086a41106a29000037030020024198156a41086a20024198086a41086a290000370300200220022900980837039815200842808080807083200842ffffffff0f83842108200b422088a7210d200ba7210f410221010c0b0b200641ff0171450d0c200241003a00a0160c0c0b200241e8076a200110ab0120022802e8070d0b2004280200220620022802ec072203490d0b2003417f4c0d3d0240024020030d00410121050c010b200310322205450d40200428020021060b20062003490d0420052001280200200310e9082106200128020422072003490d062001200720036b3602042001200128020020036a3602002006450d0b2003ad2208422086200884210b20024180166a200110930120022d0080164101460d0320024180166a41106a290300210c20024188166a29030021082002419d166a28000021042002419b166a2f0000210a2002419a166a2d0000210e20024198166a2f01002109200228028416210320022f018216210620022d0081162107200241d0076a200110db0420022903d007a70d0320022903d807211020024198156a41106a200241d0076a41106a2903003703002002200b37039815200220103703a015200c422088a7210d200ca7210f410321010c0a0b41002106200241003a00a0162003417d6a21030240034020072006460d0120024180166a20066a200520066a220441026a2d00003a0000200120033602042001200441036a3602002002200641016a22043a00a0162003417f6a21032004210620044120460d090c000b0b200641ff0171450d0a200241003a00a0160c0a0b41002106200241003a00a0162003417d6a21030240034020072006460d0120024180166a20066a200520066a220441026a2d00003a0000200120033602042001200441036a3602002002200641016a22043a00a0162003417f6a21032004210620044120470d000b200441ff01714120490d0a20022900871621082002418f166a290000210b200228029c16210420022f019a16210a20022d009916210e20022f0097162109200228008316210320022f008116210620022d008016210720024198156a41106a20024198086a41106a29000037030020024198156a41086a20024198086a41086a290000370300200220022900980837039815200842808080807083200842ffffffff0f83842108200b422088a7210d200ba7210f410521010c080b200641ff0171450d09200241003a00a0160c090b41002106200241003a00a0162003417d6a21030240034020072006460d0120024180166a20066a200520066a220441026a2d00003a0000200120033602042001200441036a3602002002200641016a22043a00a0162003417f6a21032004210620044120460d060c000b0b200641ff0171450d08200241003a00a0160c080b200ba7450d070b2005102e0c060b2003200741b8b2c0001056000b2003200741b8b2c0001056000b20024198086a41086a220120024180166a41086a29030037030020024198086a41106a220520024180166a41106a29030037030020024198086a41186a220320024180166a41186a290300370300200220022903801637039808200441ff0171411f4d0d0320024198126a41186a20032903002208370300200241d8106a41086a2001290300370300200241d8106a41106a2005290300370300200241d8106a41186a200837030020022002290398083703d81020022d00d810210720022f00d910210620022800db10210320022f00ef10210920022d00f110210e20022f01f210210a20022802f410210420022800eb10210d20022800e710210f20022900df10210820024198156a41106a200241980f6a41106a29000037030020024198156a41086a200241980f6a41086a290000370300200220022900980f37039815410621010c010b20024198086a41086a22052002418f166a29000037030020024198086a41106a220a20024197166a29000037030020024198086a41186a220e20024180166a411f6a2d00003a0000200220022900871637039808200441ff0171411f4d0d0220022d008016210720022f00811621062002280083162103200241980f6a41086a2005290300370300200241980f6a41106a200a290300370300200241980f6a41186a200e2d00003a000020022002290398083703980f200241f0076a200110db0420022903f007a70d02200241f0076a41106a2903002108200220022903f80737039815200220083703a01520022903a80f220b422888200241b00f6a31000042188684a72104200b421888a7210a200b421088a7210e200241a00f6a290300220c422088a7210d20022903980f2108200ba72109200ca7210f410421010b0b200241880b6a41106a221120024198156a41106a290300370300200241880b6a41086a20024198156a41086a290300220b3703002002200229039815220c3703880b200041186a200dad422086200fad84370000200041106a20083700002000412c6a2005360000200020043600252000200a3b00232000200e3a0022200041206a20093b00002000410c6a2003360000200020063b000a200020073a0009200041086a20013a00002000411a360200200041306a200c370200200041386a200b370200200041c0006a2011290300370200200041c8006a200241b0186a41e80110e9081a0c370b2000411c3602000c360b024002402007450d0020052d0001210620012003417e6a3602042001200541026a360200024002400240024002400240024002400240024002400240024020060e090001020304050608070d0b200241d0066a200110db0420022903d006a70d0c200241e0066a290300210b20022903d8062108200241c8066a200110ab0120022802c8060d0c2004280200220620022802cc062203490d0c2003417f4c0d3e0240024020030d00410121050c010b200310322205450d41200428020021060b20062003490d0b20052001280200200310e9082106200128020422072003490d0d2001200720036b3602042001200128020020036a3602002006450d0c2003ad220c422086200c84220c4220882114200ca72103410121010c090b200241e8066a200110ab0120022802e80622010d0b410a410220011b21014200211420022802ec0621050c070b20024188076a200110ab012002280288070d0a200228028c07210520024180166a200110e60120022d0080164105460d0a20024180166a41106a290300210b20024188166a2903002108200241a0166a280200210620024198166a290300210c20022802841621072002280280162103200241f0066a200110db04024020022903f006a70d00200241f0066a41106a290300211320022903f80621102007ad2114410321010c090b200341ff01714102470d0a2008a7450d0a2007102e0c0a0b20024190076a200110ab0120022802900722010d09410a410420011b21014200211420022802940721050c050b20024198076a200110ab0120022802980722010d08410a410520011b210142002114200228029c0721050c040b200241a0076a200110ab0120022802a0070d0720022802a407210520024180166a200110e60120022d0080164105460d072002290380162210422088211420024190166a290300210b20024188166a2903002108200241a0166a280200210620024198166a290300210c2010a721034200211041062101420021130c050b200241a8076a200110ab0120022802a80722010d06410a410720011b21014200211420022802ac0721050c020b200241c0076a200110ab0120022802c0070d0520022802c4072105200241b8076a200110ab0120022802b8070d052004280200220720022802bc072206490d052006417f4c0d370240024020060d00410121030c010b200610322203450d3a200428020021070b0240024020072006490d0020032001280200200610e90821072001280204220420064f0d012006200441b8b2c0001056000b2003102e0c060b2001200420066b3602042001200128020020066a3602002007450d052006ad2208422086200884221442208821084200210b410921010c020b200241b0076a200110ab0120022802b00722010d04410a410820011b21014200211420022802b40721050b0b0b20004119360200200041c0006a2013370200200041386a2010370200200041206a200b370200200041186a2008370200200041306a2006360200200041286a200c3702002000410c6a2005360200200041086a2001360200200041106a20144220862003ad84370200200041c8006a200241b0186a41e80110e9081a0c380b2005102e0b2000411c3602000c360b2003200741b8b2c0001056000b0240024002402007450d0020052d0001210620012003417e6a22073602042001200541026a3602000240024002400240024002400240024020060e0400010203080b200241a0066a200110ab01024020022802a006450d0020024100360298080c080b20024198086a200120022802a4061092012002280298082205450d07200229029c08210b0240200110cb042203450d0020022902981622104280808080708321132002290290162208428080808070832114200228028c16210f2002280288162109200228009b12210e20022f009912210a2008a7210d410121010c0a0b200b42ffffff3f8350450d060c070b20074102490d0620052f0002210620012003417c6a3602042001200541046a360200200241b0066a200110ab01024020022802b006450d0020024100360280160c070b20024180166a200120022802b4061092012002280280162205450d06200229028416210b20024180166a200110fe0520022802801622034102460d04200229028416210c200241a8066a200110ab0120022802a8060d042004280200220e20022802ac06220a490d04200a417f4c0d3802400240200a0d00410121070c010b200a10322207450d3b2004280200210e0b200e200a490d0320072001280200200a10e90821092001280204220e200a490d072001200e200a6b36020420012001280200200a6a3602002009450d04200aad220842208620088421102004280200220a450d022001280200220d2d0000210e2001200a417f6a220f3602042001200d41016a3602004100210402400240200e0e020100040b410121040b200f4108490d022010422088a7210e200d29000121082001200a41776a3602042001200d41096a360200200941107621112010421088a7210a2010420888a7211b20104220862009ad84421888a72112410221014100210d4200211042002113420021140c080b20074102490d0520052f0002210a20012003417c6a3602042001200541046a360200200241b8066a200110ab01024020022802b806450d0020024100360280160c060b20024180166a200120022802bc06109201200228028016220e450d05200229028416210820024180166a200110fe0502402002280280164102460d0020024188166a280200210d200229038016211441002105200241003a00a01620042802002107417f21030240034020072005460d0120024180166a20056a200128020022062d00003a00002001200720036a3602042001200641016a3602002002200541016a22063a00a0162003417f6a21032006210520064120470d000b200641ff01714120490d01200720066b22074108490d01200229008716210b2002418f166a2900002118200228029c16210320022f019a16210920022d009916210f20022f0097162111200228008316210520022f008116210620022d00801621042001280200221229000021102001200741786a3602042001201241086a360200200220093b00ab0f2002200f3a00aa0f200220113b01a80f2010428080808070832113200b422088a7ad422086200ba7ad84210b200220033600ad0f20034110762112200341087621112014422088a7210f200220183703a00f20022902a40f210c20022f01ac0f21072014a721092018a7210341032101420021140c090b200541ff0171450d00200241003a00a0160b200842ffffff3f83500d05200e102e0c050b20074102490d0420052f0002210a20012003417c6a3602042001200541046a360200200241c0066a200110ab01024020022802c006450d0020024100360280160c050b20024180166a200120022802c406109201200228028016220e450d0420022902841621080240200428020022034104490d0020012802002207280000210920012003417c6a22053602042001200741046a36020020054104490d002007280004210f2001200341786a22043602042001200741086a36020041002105200241003a00a016200341776a21030240034020042005460d0120024180166a20056a200720056a220641086a2d00003a0000200120033602042001200641096a3602002002200541016a22063a00a0162003417f6a21032006210520064120470d000b20024198086a41086a220120024180166a41086a29030037030020024198086a41106a220520024180166a41106a29030037030020024198086a41186a220320024180166a41186a290300370300200220022903801637039808200641ff0171411f4d0d0120024198126a41186a2003290300220b370300200241d8106a41086a2001290300370300200241d8106a41106a2005290300370300200241d8106a41186a200b37030020022002290398083703d81020022d00d810210420022f00d910210620022800db10210520022f00f310210720022d00f510211120022f01f610211220022900eb10210c20022800e710210320022900df10210b410421014100210d4200211042002113420021140c080b200541ff0171450d00200241003a00a0160b200842ffffff3f83500d04200e102e0c040b2010a7450d010b2007102e0b200b42ffffff3f83500d010b2005102e0b2000411c3602000c360b200a200e41b8b2c0001056000b2000201b3a0029200020113a0026200020043a0009200041183602002000413c6a200f360200200041386a2009360200200041306a20083702002000412c6a200e3602002000412a6a200a3b0100200041276a20123b0000200041246a20073b01002000411c6a200c370200200041186a2003360200200041106a200b3702002000410c6a20053602002000410a6a20063b0100200041086a20013a0000200041c8006a2013201042ffffffff0f8384370200200041c0006a2014200dad84370200200041d0006a200241b0186a41e00110e9081a0c340b20024180166a200110bd03024020022d008016410b460d0020024198086a20024180166a41c80010e9081a20004117360200200041046a20024198086a41c80010e9081a200041cc006a200241b0186a41e40110e9081a0c340b2000411c3602000c330b410f210e0c0c0b200241b0186a200110e60120022d00b0184105460d14200241800e6a41086a200241a00a6a41086a280200360200200241fc0d6a41026a200241e80e6a41026a2d00003a0000200220022902a00a3703800e200220022f00e80e3b01fc0d200241bc186a290200210b200241b0186a41206a280200210a200241ce186a2f01002109200241cd186a2d0000210d200241c9186a280000210f200241c7186a2f00002112200241c6186a2d0000211b200241c4186a2f0100211120022902b418210820022802b0182106200241e00d6a41106a20024198086a41106a290200370300200241e00d6a41086a20024198086a41086a29020037030020022002290298083703e00d200241dc0d6a41026a200241b80e6a41026a2d00003a0000200220022f00b80e3b01dc0d200241c00d6a41106a20024198126a41106a290200370300200241c00d6a41086a20024198126a41086a29020037030020022002290298123703c00d200241bc0d6a41026a200241900e6a41026a2d00003a0000200220022f00900e3b01bc0d200241a00d6a41106a200241d8106a41106a290200370300200241a00d6a41086a200241d8106a41086a290200370300200220022902d8103703a00d2002419c0d6a41026a200241a0146a41026a2d00003a0000200220022f00a0143b019c0d200241800d6a41106a200241980f6a41106a290200370300200241800d6a41086a200241980f6a41086a290200370300200220022902980f3703800d20024198156a41206a20024180166a41206a28020036020020024198156a41186a20024180166a41186a29020037030020024198156a41106a20024180166a41106a29020037030020024198156a41086a20024180166a41086a290200370300200220022902801637039815410e210e0c0b0b200241b0186a200110e60120022d00b0184105460d13200241b0186a41206a2207280200210a200241ce186a2f01002109200241cd186a2d0000210d200241c9186a280000210f200241c7186a2f00002112200241c6186a2d0000211b200241c4186a2f01002111200241bc186a290200210b200241b0186a41086a2204280200210520022802b418210320022802b0182106200241b0186a200110ec03024020022d00b0184106460d00200241800e6a41086a200241a00a6a41086a280200360200200241fc0d6a41026a200241e80e6a41026a2d00003a0000200241e00d6a41086a20024198086a41086a290200370300200241e00d6a41106a20024198086a41106a290200370300200220022902a00a3703800e200220022f00e80e3b01fc0d20022002290298083703e00d200241b0186a41186a290300210c200241b0186a41106a29030021102007280200211d2004290300211320022903b0182114200241dc0d6a41026a200241b80e6a41026a2d00003a0000200220022f00b80e3b01dc0d200241c00d6a41106a20024198126a41106a290200370300200241c00d6a41086a20024198126a41086a29020037030020022002290298123703c00d200241bc0d6a41026a200241900e6a41026a2d00003a0000200220022f00900e3b01bc0d200241a00d6a41106a200241d8106a41106a290200370300200241a00d6a41086a200241d8106a41086a290200370300200220022902d8103703a00d2002419c0d6a41026a200241a0146a41026a2d00003a0000200220022f00a0143b019c0d200241800d6a41106a200241980f6a41106a290200370300200241800d6a41086a200241980f6a41086a290200370300200220022902980f3703800d20024198156a41206a20024180166a41206a28020036020020024198156a41186a20024180166a41186a29020037030020024198156a41106a20024180166a41106a29020037030020024198156a41086a20024180166a41086a2902003703002002200229028016370398152005ad4220862003ad842108410d210e0c0b0b200641ff01714102470d132005450d132003102e0c130b200241b0186a200110e60120022d00b0184105460d12200241b0186a41206a2207280200210a200241ce186a2f01002109200241cd186a2d0000210d200241c9186a280000210f200241c7186a2f00002112200241c6186a2d0000211b200241c4186a2f01002111410c210e200241b0186a410c6a290200210b200241b0186a41086a2204280200210520022802b418210320022802b0182106200241b0186a200110ec03024020022d00b0184106460d00200241800e6a41086a200241a00a6a41086a280200360200200241fc0d6a41026a200241e80e6a41026a2d00003a0000200241e00d6a41086a20024198086a41086a290200370300200241e00d6a41106a20024198086a41106a290200370300200220022902a00a3703800e200220022f00e80e3b01fc0d20022002290298083703e00d200241b0186a41186a290300210c200241b0186a41106a29030021102007280200211d2004290300211320022903b0182114200241dc0d6a41026a200241b80e6a41026a2d00003a0000200220022f00b80e3b01dc0d200241c00d6a41106a20024198126a41106a290200370300200241c00d6a41086a20024198126a41086a29020037030020022002290298123703c00d200241bc0d6a41026a200241900e6a41026a2d00003a0000200220022f00900e3b01bc0d200241a00d6a41106a200241d8106a41106a290200370300200241a00d6a41086a200241d8106a41086a290200370300200220022902d8103703a00d2002419c0d6a41026a200241a0146a41026a2d00003a0000200220022f00a0143b019c0d200241800d6a41106a200241980f6a41106a290200370300200241800d6a41086a200241980f6a41086a290200370300200220022902980f3703800d20024198156a41206a20024180166a41206a28020036020020024198156a41186a20024180166a41186a29020037030020024198156a41106a20024180166a41106a29020037030020024198156a41086a20024180166a41086a2902003703002002200229028016370398152005ad4220862003ad8421080c0a0b200641ff01714102470d122005450d122003102e0c120b200241b0186a200110e60120022d00b0184105460d11200241800e6a41086a200241a00a6a41086a280200360200200241fc0d6a41026a200241e80e6a41026a2d00003a0000200220022902a00a3703800e200220022f00e80e3b01fc0d200241bc186a290200210b200241b0186a41206a280200210a200241ce186a2f01002109200241cd186a2d0000210d200241c9186a280000210f200241c7186a2f00002112200241c6186a2d0000211b200241c4186a2f0100211120022902b418210820022802b0182106200241e00d6a41106a20024198086a41106a290200370300200241e00d6a41086a20024198086a41086a29020037030020022002290298083703e00d200241dc0d6a41026a200241b80e6a41026a2d00003a0000200220022f00b80e3b01dc0d200241c00d6a41106a20024198126a41106a290200370300200241c00d6a41086a20024198126a41086a29020037030020022002290298123703c00d200241bc0d6a41026a200241900e6a41026a2d00003a0000200220022f00900e3b01bc0d200241a00d6a41106a200241d8106a41106a290200370300200241a00d6a41086a200241d8106a41086a290200370300200220022902d8103703a00d2002419c0d6a41026a200241a0146a41026a2d00003a0000200220022f00a0143b019c0d200241800d6a41106a200241980f6a41106a290200370300200241800d6a41086a200241980f6a41086a290200370300200220022902980f3703800d20024198156a41206a20024180166a41206a28020036020020024198156a41186a20024180166a41186a29020037030020024198156a41106a20024180166a41106a29020037030020024198156a41086a20024180166a41086a290200370300200220022902801637039815410b210e0c080b20024198066a200110ab012002280298060d10200228029c062106200241b0186a200110e60120022d00b0184105460d10200241b8186a280200210320022802b418210720022802b01821050240024020042802002204450d00200241d0186a3502002114200241cc186a280200210a200241ca186a2f01002109200241c9186a2d0000210d200241c5186a280000210f200241c3186a2f00002112200241c2186a2d0000211b200241c0186a2f01002111200241bc186a35020021082001280200220e2d0000211c20012004417f6a221d3602042001200e41016a36020042002113024002400240024002400240201c0e0707000102030405060b201d4110490d05200e41096a290000210c200e290001211020012004416f6a3602042001200e41116a360200420121130c060b420221130c050b420321130c040b420421130c030b420521130c020b420621130c010b200541ff01714102470d112003450d112007102e0c110b200241800e6a41086a200241a00a6a41086a280200360200200241fc0d6a41026a200241e80e6a41026a2d00003a0000200241e00d6a41086a20024198086a41086a290200370300200241e00d6a41106a20024198086a41106a290200370300200241dc0d6a41026a200241b80e6a41026a2d00003a0000200220022902a00a3703800e200220022f00e80e3b01fc0d20022002290298083703e00d200220022f00b80e3b01dc0d200241c00d6a41106a20024198126a41106a290200370300200241c00d6a41086a20024198126a41086a290200370300200241bc0d6a41026a200241900e6a41026a2d00003a0000200241a00d6a41086a200241d8106a41086a290200370300200241a00d6a41106a200241d8106a41106a2902003703002002419c0d6a41026a200241a0146a41026a2d00003a000020022002290298123703c00d200220022f00900e3b01bc0d200220022902d8103703a00d200220022f00a0143b019c0d200241800d6a41106a200241980f6a41106a290200370300200241800d6a41086a200241980f6a41086a29020037030020024198156a41206a20024180166a41206a28020036020020024198156a41186a20024180166a41186a29020037030020024198156a41106a20024180166a41106a29020037030020024198156a41086a20024180166a41086a290200370300200220022902980f3703800d20022002290280163703981520084220862003ad84210b2007ad4220862005ad842108410a210e0c070b20024190066a200110ab012002280290060d0f200428020022054108490d0f20022802940621062001280200220329000021082001200541786a3602042001200341086a360200200842ff01560d0f200241800e6a41086a200241980f6a41086a280200360200200241fc0d6a41026a200241a00a6a41026a2d00003a0000200241e00d6a41086a20024180166a41086a290200370300200241e00d6a41106a20024180166a41106a290200370300200241dc0d6a41026a200241e80e6a41026a2d00003a0000200220022902980f3703800e200220022f00a00a3b01fc0d20022002290280163703e00d200220022f00e80e3b01dc0d200241c00d6a41106a20024198086a41106a290200370300200241c00d6a41086a20024198086a41086a290200370300200241bc0d6a41026a200241b80e6a41026a2d00003a0000200241a00d6a41086a20024198126a41086a290200370300200241a00d6a41106a20024198126a41106a2902003703002002419c0d6a41026a200241900e6a41026a2d00003a000020022002290298083703c00d200220022f00b80e3b01bc0d20022002290298123703a00d200220022f00900e3b019c0d200241800d6a41106a200241d8106a41106a290200370300200241800d6a41086a200241d8106a41086a29020037030020024198156a41206a200241b0186a41206a28020036020020024198156a41186a200241b0186a41186a29020037030020024198156a41106a200241b0186a41106a29020037030020024198156a41086a200241b0186a41086a290200370300200220022902d8103703800d200220022902b01837039815200842ff018321084109210e0c060b20024188066a200110ab012002280288060d0e200228028c06210a20024180166a200110930120022d0080164101460d0e4108210e200241800e6a41086a200241a00a6a41086a280200360200200241fc0d6a41026a200241e80e6a41026a2d00003a0000200241e00d6a41086a20024198086a41086a290200370300200241e00d6a41106a20024198086a41106a290200370300200220022902a00a3703800e200220022f00e80e3b01fc0d20022002290298083703e00d20024180166a41106a290300210b20024180166a41086a290300210820024180166a41186a290300210c20024180166a41206a3100002110200228028416210620022f018216212c20022d008116212d200241dc0d6a41026a200241b80e6a41026a2d00003a0000200220022f00b80e3b01dc0d200241c00d6a41106a20024198126a41106a290200370300200241c00d6a41086a20024198126a41086a29020037030020022002290298123703c00d200241bc0d6a41026a200241900e6a41026a2d00003a0000200220022f00900e3b01bc0d200241a00d6a41106a200241d8106a41106a290200370300200241a00d6a41086a200241d8106a41086a290200370300200220022902d8103703a00d2002419c0d6a41026a200241a0146a41026a2d00003a0000200220022f00a0143b019c0d200241800d6a41106a200241980f6a41106a290200370300200241800d6a41086a200241980f6a41086a290200370300200220022902980f3703800d20024198156a41206a200241b0186a41206a28020036020020024198156a41186a200241b0186a41186a29020037030020024198156a41106a200241b0186a41106a29020037030020024198156a41086a200241b0186a41086a290200370300200220022902b01837039815200c422888201042188684a7210f200c421888a72112200c421088a7211b200ca721110c050b20024180066a200110ab012002280280060d0d2002280284062106200241e8056a200110db0420022903e805a70d0d200241e8056a41106a290300210b20022903f0052108200241800e6a41086a200241980f6a41086a280200360200200241fc0d6a41026a200241a00a6a41026a2d00003a0000200241e00d6a41086a20024180166a41086a290200370300200241e00d6a41106a20024180166a41106a290200370300200241dc0d6a41026a200241e80e6a41026a2d00003a0000200220022902980f3703800e200220022f00a00a3b01fc0d20022002290280163703e00d200220022f00e80e3b01dc0d200241c00d6a41106a20024198086a41106a290200370300200241c00d6a41086a20024198086a41086a290200370300200241bc0d6a41026a200241b80e6a41026a2d00003a0000200241a00d6a41086a20024198126a41086a290200370300200241a00d6a41106a20024198126a41106a2902003703002002419c0d6a41026a200241900e6a41026a2d00003a000020022002290298083703c00d200220022f00b80e3b01bc0d20022002290298123703a00d200220022f00900e3b019c0d200241800d6a41106a200241d8106a41106a290200370300200241800d6a41086a200241d8106a41086a29020037030020024198156a41206a200241b0186a41206a28020036020020024198156a41186a200241b0186a41186a29020037030020024198156a41106a200241b0186a41106a29020037030020024198156a41086a200241b0186a41086a290200370300200220022902d8103703800d200220022902b018370398154107210e0c040b202b4104490d0c2005280002210620012003417a6a3602044106210e2001200541066a360200200241800e6a41086a200241980f6a41086a280200360200200241fc0d6a41026a200241a00a6a41026a2d00003a0000200241e00d6a41086a20024180166a41086a290200370300200241e00d6a41106a20024180166a41106a290200370300200241dc0d6a41026a200241e80e6a41026a2d00003a0000200220022902980f3703800e200220022f00a00a3b01fc0d20022002290280163703e00d200220022f00e80e3b01dc0d200241c00d6a41106a20024198086a41106a290200370300200241c00d6a41086a20024198086a41086a290200370300200241bc0d6a41026a200241b80e6a41026a2d00003a0000200241a00d6a41086a20024198126a41086a290200370300200241a00d6a41106a20024198126a41106a2902003703002002419c0d6a41026a200241900e6a41026a2d00003a000020022002290298083703c00d200220022f00b80e3b01bc0d20022002290298123703a00d200220022f00900e3b019c0d200241800d6a41106a200241d8106a41106a290200370300200241800d6a41086a200241d8106a41086a29020037030020024198156a41206a200241b0186a41206a28020036020020024198156a41186a200241b0186a41186a29020037030020024198156a41106a200241b0186a41106a29020037030020024198156a41086a200241b0186a41086a290200370300200220022902d8103703800d200220022902b018370398154200210b0c030b200241e0056a200110ab0120022802e0050d0b20022802e4052106200241c8056a200110db0420022903c805a70d0b200241c8056a41106a290300210b20022903d0052108200241800e6a41086a200241980f6a41086a280200360200200241fc0d6a41026a200241a00a6a41026a2d00003a0000200241e00d6a41086a20024180166a41086a290200370300200241e00d6a41106a20024180166a41106a290200370300200241dc0d6a41026a200241e80e6a41026a2d00003a0000200220022902980f3703800e200220022f00a00a3b01fc0d20022002290280163703e00d200220022f00e80e3b01dc0d200241c00d6a41106a20024198086a41106a290200370300200241c00d6a41086a20024198086a41086a290200370300200241bc0d6a41026a200241b80e6a41026a2d00003a0000200241a00d6a41086a20024198126a41086a290200370300200241a00d6a41106a20024198126a41106a2902003703002002419c0d6a41026a200241900e6a41026a2d00003a000020022002290298083703c00d200220022f00b80e3b01bc0d20022002290298123703a00d200220022f00900e3b019c0d200241800d6a41106a200241d8106a41106a290200370300200241800d6a41086a200241d8106a41086a29020037030020024198156a41206a200241b0186a41206a28020036020020024198156a41186a200241b0186a41186a29020037030020024198156a41106a200241b0186a41106a29020037030020024198156a41086a200241b0186a41086a290200370300200220022902d8103703800d200220022902b018370398154105210e0c020b200241c0056a200110ab0120022802c0050d0a20022802c405220a200428020041c4006e22052005200a4b1bad42c4007e2208422088a70d222008a72205417f4c0d220240024020050d00410421060c010b2005102c2206450d250b200541c4006ead2108024002400240200a450d004100210e0340200241003a00d018200e41016a210e2004280200417f6a2105410021030240024003402005417f460d01200241b0186a20036a200128020022072d00003a0000200120053602042001200741016a3602002002200341016a22073a00d0182005417f6a21052007210320074120470d000b20024198086a41086a2205200241b0186a41086a29030037030020024198086a41106a2203200241b0186a41106a220d29030037030020024198086a41186a2209200241b0186a41186a290300370300200220022903b01837039808200741ff0171411f4b0d010c050b200341ff0171450d04200241003a00d0180c040b200241d8106a41086a2005290300370300200241d8106a41106a2003290300370300200241d8106a41186a200929030037030020022002290398083703d810200241b0186a200110ec0320022d00b01822034106460d03200d290300210c20022903b818211020022f01d218210720022d00d118210920022800cd18210d20022f00cb18210f20022d00ca18211120022f01c818211220022802b418211b20022f01b218211c20022d00b118211d20022800db10211f20022f00d910211e20022d00d810212720022f00ef10210520022d00f110212620022f01f210212020022802f410212120022900df10210b200220022900e7103703a00f2002200b3703980f200220213600ad0f200220203b00ab0f200220263a00aa0f200220053b01a80f02402008422088220ba722052008a7470d00200541016a22262005490d2720054101742220202620262020491b22264104202641044b1bad42c4007e220b422088a7454102742126200ba721200240024020050d00200241003602b0180c010b200241043602b818200220063602b0182002200541c4006c3602b4180b20024198086a20202026200241b0186a107d20022802a00821262002280298084101460d03200228029c0821062008422088220ba72105202641c4006ead21080b2006200541c4006c6a2205201f3600032005201e3b0001200520273a0000200241980f6a41186a2d0000211f200241980f6a41106a2903002113200241980f6a41086a290300211420022903980f2118200541306a200c37000020052010370028200520183700072005410f6a2014370000200541176a20133700002005411f6a201f3a0000200520073b0042200520093a00412005200d36003d2005200f3b003b200520113a003a200520123b00382005201b3600242005201c3b00222005201d3a0021200520033a0020200b422086200842ffffffff0f83844280808080107c2108200e200a470d000b0b2006450d0c200241800e6a41086a200241a0146a41086a280200360200200241fc0d6a41026a200241b4146a41026a2d00003a0000200241e00d6a41086a200241a00a6a41086a290200370300200241e00d6a41106a200241a00a6a41106a290200370300200241dc0d6a41026a200241b0146a41026a2d00003a0000200220022902a0143703800e200220022f00b4143b01fc0d200220022902a00a3703e00d200220022f00b0143b01dc0d200241c00d6a41106a200241e80e6a41106a290200370300200241c00d6a41086a200241e80e6a41086a290200370300200241bc0d6a41026a200241ac146a41026a2d00003a0000200241a00d6a41086a200241b80e6a41086a290200370300200241a00d6a41106a200241b80e6a41106a2902003703002002419c0d6a41026a2002419d146a41026a2d00003a0000200220022902e80e3703c00d200220022f00ac143b01bc0d200220022902b80e3703a00d200220022f009d143b019c0d200241800d6a41106a200241900e6a41106a290200370300200241800d6a41086a200241900e6a41086a29020037030020024198156a41206a20024180166a41206a28020036020020024198156a41186a20024180166a41186a29020037030020024198156a41106a20024180166a41106a29020037030020024198156a41086a20024180166a41086a290200370300200220022902900e3703800d2002200229028016370398154103210e0c030b20260d250c230b02402008422088a72201450d00200141c4006c2105200641286a210103400240200141786a2d00004101470d002001280200450d002001417c6a280200102e0b200141c4006a2101200541bc7f6a22050d000b0b2008a72201450d0a200141c4006c0d090c0a0b200241b0186a200110ec0320022d00b018222f4106460d024102210e200241b80e6a41026a220420022d00b3183a000020024180166a41086a2230200241c4186a29020037030020024180166a41106a2231200241cc186a290200370300200220022f00b1183b01b80e2002200241bc186a29020037038016200241b0186a41086a2211280200213220022802b4182133200241b0186a200110ec03024020022d00b0184106470d00202f4101470d032032450d032033102e0c030b200241980f6a41206a2201200241b0186a41206a280200360200200241980f6a41186a2234200241b0186a41186a290300370300200241980f6a41106a2235200241b0186a41106a290300370300200241980f6a41086a22362011290300370300200241800e6a41086a200241a00a6a41086a280200360200200220022903b0183703980f200220022903a00a3703800e20022f01e80e211120022d00ea0e211b20022f00eb0e2112200241fc0d6a41026a200241b4146a41026a2d00003a0000200220022f01b4143b01fc0d200241e00d6a41106a200241d8106a41106a290300370300200241e00d6a41086a200241d8106a41086a290300370300200220022903d8103703e00d200241dc0d6a41026a200241a0146a41026a2d00003a0000200220022f01a0143b01dc0d200241c00d6a41106a20024198126a41106a290300370300200241c00d6a41086a20024198126a41086a29030037030020022002290398123703c00d200241bc0d6a41026a200241900e6a41026a2d00003a0000200220022f01900e3b01bc0d200241a00d6a41106a20024198086a41106a290300370300200241a00d6a41086a20024198086a41086a29030037030020022002290398083703a00d2002419c0d6a41026a20042d00003a0000200220022f01b80e3b019c0d200241800d6a41106a2031290300370300200241800d6a41086a203029030037030020022002290380163703800d20024198156a41206a200128020036020020024198156a41186a203429030037030020024198156a41106a203529030037030020024198156a41086a2036290300370300200220022903980f370398152010420886202ead42ff0183842118202bad42088620104238888442ffffffffff1f8321172007ad422086202dad8421102003ad422086200b842113202cad4220862005ad84210b0b200241f00c6a41086a2201200241800e6a41086a280200360200200241ec0c6a41026a2205200241fc0d6a41026a2d00003a0000200241d00c6a41086a2203200241e00d6a41086a290300370300200241d00c6a41106a2207200241e00d6a41106a290300370300200241cc0c6a41026a2204200241dc0d6a41026a2d00003a0000200220022903800e3703f00c200220022f01fc0d3b01ec0c200220022903e00d3703d00c200220022f01dc0d3b01cc0c200241b00c6a41106a222b200241c00d6a41106a290300370300200241b00c6a41086a222e200241c00d6a41086a290300370300200241ac0c6a41026a2230200241bc0d6a41026a2d00003a0000200241900c6a41086a2231200241a00d6a41086a290300370300200241900c6a41106a2234200241a00d6a41106a2903003703002002418c0c6a41026a22352002419c0d6a41026a2d00003a0000200220022903c00d3703b00c200220022f01bc0d3b01ac0c200220022903a00d3703900c200220022f019c0d3b018c0c200241f00b6a41106a2236200241800d6a41106a290300370300200241f00b6a41086a2237200241800d6a41086a290300370300200241880b6a41206a223820024198156a41206a280200360200200241880b6a41186a223920024198156a41186a290300370300200241880b6a41106a223a20024198156a41106a290300370300200241880b6a41086a223b20024198156a41086a290300370300200220022903800d3703f00b20022002290398153703880b200041c8006a200c370200200041c0006a2010370200200041186a200b370200200041106a2008370200200041d0006a201d360200200041386a2013370200200041306a20143702002000412c6a200a360200200020093b002a2000200d3a0029200041256a200f360000200020123b00232000201b3a0022200041206a20113b01002000410c6a20063602002000202c3b000a2000202d3a0009200041086a200e3a000020004116360200200041e0006a201c3a0000200041d4006a20022903f00c370200200041dc006a2001280200360200200041e4006a201e360200200041e8006a201f360200200020022f01ec0c3b0061200041e3006a20052d00003a0000200041ec006a20022903d00c370200200041f4006a2003290300370200200041fc006a200729030037020020004184016a20273a000020004187016a20042d00003a0000200020022f01cc0c3b0085012000418c016a202636020020004188016a2020360200200041a0016a202b29030037020020004198016a202e29030037020020004190016a20022903b00c370200200041a8016a20213a0000200041ab016a20302d00003a0000200020022f01ac0c3b00a901200041b0016a2022360200200041ac016a2023360200200041c4016a2034290300370200200041bc016a2031290300370200200041b4016a20022903900c370200200041cc016a202f3a0000200041cf016a20352d00003a0000200020022f018c0c3b00cd01200041d4016a2032360200200041d0016a2033360200200041e8016a2036290300370200200041e0016a2037290300370200200041d8016a20022903f00b37020020004190026a203828020036020020004188026a203929030037020020004180026a203a290300370200200041f8016a203b290300370200200041f0016a20022903880b370200200041a4026a20173700002000419c026a201837000020004198026a2024360000200020253b0096022000201a3a00950220004194026a20193a00000c250b200241003a00c4180b20214101470d002022450d002023102e0b20274101470d002026450d002020102e0b201c4101470d00201f450d00201e102e0b200341ff01714101470d002007450d00202d102e0b200541ff01714101470d0020022802e80e450d00202c102e0b02402008422088a72201450d002006200141c8006c6a2105200621010340024020012d00004101470d00200141086a280200450d00200141046a280200102e0b0240200141246a2d00004101470d002001412c6a280200450d00200141286a280200102e0b200141c8006a22012005470d000b0b2008a72201450d01200141c8006c450d010b2006102e0b2000411c3602000c1c0b20052d0015210720012003416a6a22063602042001200541166a2205360200200220073a009316200229038816210b200228029016210e2002280280162103200228028416210a200241003a0094162006450d0420052d0000210720012006417f6a2204360204200241013a0094162001200541016a360200200220073a00801602402004450d0020052d0001210720012006417e6a2204360204200241023a0094162001200541026a360200200220073a0081162004450d0020052d0002210720012006417d6a2204360204200241033a0094162001200541036a360200200220073a0082162004450d0020052d0003210720012006417c6a2204360204200241043a0094162001200541046a360200200220073a0083162004450d0020052d0004210720012006417b6a2204360204200241053a0094162001200541056a360200200220073a0084162004450d0020052d0005210720012006417a6a2204360204200241063a0094162001200541066a360200200220073a0085162004450d0020052d000621072001200641796a2204360204200241073a0094162001200541076a360200200220073a0086162004450d0020052d000721072001200641786a2204360204200241083a0094162001200541086a360200200220073a0087162004450d0020052d000821072001200641776a2204360204200241093a0094162001200541096a360200200220073a0088162004450d0020052d000921072001200641766a22043602042002410a3a00941620012005410a6a360200200220073a0089162004450d0020052d000a21072001200641756a22043602042002410b3a00941620012005410b6a360200200220073a008a162004450d0020052d000b21072001200641746a22043602042002410c3a00941620012005410c6a360200200220073a008b162004450d0020052d000c21072001200641736a22043602042002410d3a00941620012005410d6a360200200220073a008c162004450d0020052d000d21072001200641726a22043602042002410e3a00941620012005410e6a360200200220073a008d162004450d0020052d000e21072001200641716a22043602042002410f3a00941620012005410f6a360200200220073a008e162004450d0020052d000f21072001200641706a2204360204200241103a0094162001200541106a360200200220073a008f162004450d0020052d0010210720012006416f6a2204360204200241113a0094162001200541116a360200200220073a0090162004450d0020052d0011210720012006416e6a2204360204200241123a0094162001200541126a360200200220073a0091162004450d0020052d0012210720012006416d6a2204360204200241133a0094162001200541136a360200200220073a0092162004450d0020052d0013210720012006416c6a22063602042001200541146a2205360200200220073a009316024020060d00200241023a00880b0c060b200228028416210720022802801621042002290388162108200228029016210920052d0000210d20012006417f6a3602042001200541016a3602000240024002400240200d0e020102000b200241023a00880b0c080b200241003a00880b0c010b20024180166a2001109301024020022d0080164101470d00200241023a00880b0c070b200241f0106a20024199166a290000370300200241e8106a20024191166a290000370300200241e0106a20024189166a290000370300200220022900811622133703d810200241e7106a290000210c20022900df10211020022f00ef10210120022d00f110210520022f01f210210620022802f410210d20022f00d910210f200220022800db1036028c0b2002200f3b018a0b200220133c00890b200241013a00880b2002200d36009d15200220063b009b15200220053a009a15200220013b019815200228029812211d0b2003410876210620044108762101200241a4086a2009410874ad2008423888843e0200200220022d008f0b3a00980f200220084208862007411876ad8437029c082002200741087420044118767236029808200941187620022f01880b20022d008a0b41107472410874722112200ead420886200b4238888442ffffffffff1f832108200220103700990f2010423888200c42088684a7211120022900991522134230882110200b420886200a411876ad84210b200a41087420034118767221052013421088a72107200c422088a72109200c421088a7210d200c420888a7210f200228008b0b211f20022d009815210e20024198086a41086a2903002114200228029c12211c20022f01a012211b20022f01a212212620022802a412211e20022802a812212020022802ac12212120022903980f210c20022903980821182013a7210a42002113410521270c030b200241003a0094160c040b200241003a0094160c030b20052d0015210720012003416a6a22063602042001200541166a2205360200200220073a00931620022002290388163702a008200220022802841636029c08200220022802801622033602980820022002280290163602a80820064110490d02200541086a2900002114200529000021182001200641706a22073602042001200541106a3602002007450d0220052d0010210420012006416f6a221b3602042001200541116a221c360200410021120240024020040e020100040b201b4110490d03200541196a29000021082005290011210c20012006415f6a22073602042001200541216a36020020074110490d03200541296a29000021102005290021210b20012006414f6a22073602042001200541316a360200200741034d0d032005280031210720012006414b6a221b3602042001200541356a221c3602002002200b370390162002200837038816200220073602a016200228029416210720022f019216210a20022d009116210e20022f008b16210d200228008d16210920022d008a16210f20022f018816211120022903a0162113410121120b41000d02201b450d02201c2d000021052001201b417f6a22063602042001201c41016a36020041022127410221040240024020050e020100040b2006450d03201c2d000121052001201b417e6a3602042001201c41026a36020041002104024020050e020100040b410121040b2003410876210620023500a708200241ab086a310000422086842108200229009f08210b200228009b0821054100211f0b2000200e3a00492000200f3a0042200020013b011e200020043a001d200020063b000a200020033a0009200041133602002000411c6a20084220883c0000200041186a20083e0000200041d8006a2013370200200041d0006a2010370200200041286a2014370200200041206a2018370200200041f4006a2021360200200041f0006a2020360200200041ec006a201e360200200041ea006a20263b0100200041e8006a201b3b0100200041e4006a201c360200200041e0006a201d360200200041cc006a2007360200200041ca006a200a3b0100200041c5006a2009360000200041c3006a200d3b0000200041c0006a20113b0100200041386a200c370200200041346a201f360200200041306a2012360200200041106a200b3700002000410c6a2005360000200041086a20273a0000200041f8006a200241b0186a41b80110e9081a0c180b200241003a0094160b2000411c3602000c160b2000200a3b00462000200e3a00452000201c3600412000201b3b003f2000201d3a003e2000201e3b0026200020273a002520002026360021200020123b001f200020203a001e200020073b0006200020043a0005200020053a000420004111360200200041346a200c3700002000412c6a200b3700002000410c6a20083700002000413c6a20113b0000200041286a201f3600002000411c6a200f3b0000200041086a2003360000200041146a2009ad422086200dad84370000200041c8006a200241b0186a41e80110e9081a0c150b2000411c3602000c140b200020093a000920004110360200200041286a200b370200200041146a200a360200200041106a200e3602002000410c6a2007360200200041086a200d3a0000200041206a200c421886200fad220b42088884370200200041186a200b423886200842ffffffffffffffff008384370200200041306a200241b0186a41800210e9081a0c130b2000411c3602000c120b20024198086a41086a22012002418f166a29000037030020024198086a41106a220320024197166a29000037030020024198086a41186a220620024180166a411f6a2d00003a0000200220022900871637039808200441ff0171411f4d0d0320022d008016210720022f008116210a200228008316210520024198126a41186a20062d000022063a0000200241980f6a41086a20012903002208370300200241980f6a41106a22012003290300370300200241980f6a41186a20063a00002002200229039808220b3703980f20012f01002112200228029c0f211120022d00aa0f211b20022f00ab0f210f20022800ad0f210d20022802a40f211c200ba721032008a721044106211d41002109420021080b0c010b20024198086a41086a22032002418f166a29000037030020024198086a41106a220620024197166a29000037030020024198086a41186a220e20024180166a411f6a2d00003a0000200220022900871637039808200a41ff0171411f4d0d0120022d008016210720022f008116210a2002280083162105200241d8106a41086a2003290300370300200241d8106a41106a2006290300370300200241d8106a41186a200e2d00003a000020022002290398083703d810200241a0046a200110ab0120022802a0040d0120042802002203450d0120022802a4042106200128020022042d0000210e20012003417f6a3602042001200441016a3602004100210102400240200e0e020100030b410121010b20022903d8102208422088a72111200241e0106a290300220b422088a7211c20022800ed10210d20022f00eb10210f20022d00ea10211b20022f01e81021122008a72103200ba721044104211d0b200020013a00292000200f3b00232000201b3a00222000200a3b000a200020073a00092000410f360200200041386a2008370200200041346a2009360200200041306a200e3602002000412c6a2006360200200041256a200d360000200041206a20123b0100200041146a2011360200200041106a20033602002000410c6a2005360200200041086a201d3a0000200041186a201cad4220862004ad84370200200041c0006a200241b0186a41f00110e9081a0c0e0b2000411c3602000c0d0b20024198086a41086a220620024180166a41086a29030037030020024198086a41106a220720024180166a41106a29030037030020024198086a41186a220e20024180166a41186a290300370300200220022903801637039808200a41ff0171411f4d0d01200241d8106a41086a2006290300370300200241d8106a41106a2007290300370300200241d8106a41186a200e29030037030020022002290398083703d8102003417e6a200a460d012005200a6a220541026a2d000021062001200320046a22043602042001200541036a3602004100211e0240024020060e020100030b20044104490d02200541036a280000210720012003200a6b41796a3602042001200541076a3602004101211e0b20022900df10220c422088a7211c200241e7106a290000210820022802f410211120022f01f210210f20022d00f110211220022f00ef10210a20022800db10210e20022f00d910210920022d00d810210d2007ad210b200ca7211d4200210c4118211b0c020b20024198086a41086a22062002418f166a29000037030020024198086a41106a220720024197166a29000037030020024198086a41186a220420024180166a411f6a2d00003a0000200220022900871637039808200a41ff0171411f4d0d0020022d008016210d20022f0081162109200228008316210e200241980f6a41086a2006290300370300200241980f6a41106a2007290300370300200241980f6a41186a20042d00003a000020022002290398083703980f2003200a6b2203417e6a4104490d00200f280000211e20012003417a6a36020420012005200a6a41066a36020020022903a80f220b422888200241b00f6a31000042188684a72111200b421888a7210f200b421088a7211220022903980f220c422088a7211c200241a00f6a2903002108200ba7210a200ca7211d4200210b4117211b4200210c0c010b2000411c3602000c0a0b200020273b012a2000201f3a00292000200f3b0023200020123a0022200020093b000a2000200d3a00092000410d360200200041386a200c370200200041306a200b3702002000412c6a201e360200200041256a2011360000200041206a200a3b0100200041186a2008370200200041146a201c360200200041106a201d3602002000410c6a200e360200200041086a201b3a0000200041c0006a200241b0186a41f00110e9081a0c090b2000411c3602000c080b41002112420021100b0b200020233a0049200020203a0042200020273b002a2000201e3a00292000201c3b00232000201f3a00222000200f3b010a2000200a3a000920004107360200200041d8006a200c370200200041d0006a200b370200200041cc006a2025360200200041ca006a20243b0100200041c5006a2022360000200041c3006a20213b0000200041c0006a20263b0100200041386a2013370200200041346a2009360200200041306a20113602002000412c6a200e360200200041256a201d360000200041206a201b3b01002000410c6a2007360200200041086a200d3a0000200041186a2010422086200842208884370200200041106a2008422086201a201241ff017172ad84370200200041e0006a200241b0186a41d00110e9081a0c050b1038000b2000411c3602000c030b1036000b2006102e0b2000411c3602000b200241c01b6a24000b940704027f017e097f037e23004190026b22032400024002400240024002402002200128020441286e2204200420024b1bad42287e2205422088a70d002005a72204417f4c0d000240024020040d00410821060c010b2004102c2206450d020b200441286e2107024020020d00410021020c040b410021080340200341003a00c8012008220941016a21082001280204210a417f210b41002104024002400340200a2004460d01200341a8016a20046a2001280200220c2d00003a00002001200a200b6a3602042001200c41016a3602002003200441016a220c3a00c801200b417f6a210b200c2104200c4120470d000b200341d0016a41086a2204200341a8016a41086a290300370300200341d0016a41106a220b200341a8016a41106a290300370300200341d0016a41186a220d200341a8016a41186a290300370300200320032903a8013703d001200c41ff0171411f4b0d010c050b200441ff0171450d04200341003a00c8010c040b200341e8006a41086a220e2004290300370300200341e8006a41106a2204200b290300370300200341e8006a41186a220b200d290300370300200320032903d001370368200a200c6b220c4108490d032001280200220a29000021052001200c41786a3602042001200a41086a360200200341286a41086a200e290300220f370300200341286a41106a20042903002210370300200341286a41186a200b2903002211370300200341086a41186a220b2011370300200341086a41106a220c2010370300200341086a41086a220a200f37030020032003290368220f3703282003200f3703080240024020092007470d0020094101742204200941016a2207200420074b1b22044104200441044b1bad42287e220f422088a7454103742104200fa721070240024020090d00200341003602a8010c010b200341083602b001200320063602a8012003200941286c3602ac010b200341d0016a20072004200341a8016a107d20032802d801210420032802d0014101460d0120032802d4012106200441286e21070b2006200941286c6a22042003290308370300200a290300210f200c2903002110200b290300211120042005370320200441186a2011370300200441106a2010370300200441086a200f37030020082002460d050c010b0b20040d010b1038000b1036000b200041003602002007450d01200741286c450d012006102e0c010b2000200736020420002006360200200041086a20023602000b20034190026a24000baf0102017f017e230041106b2203240002402001450d002001410674210103400240024020002903004201510d00200341003a000020022003410110740c010b200341013a000020022003410110742002200041206a41201074200041086a29030021042003200041106a2903003703082003200437030020022003411010742003200041186a29030037030020022003410810740b200041c0006a2100200141406a22010d000b0b200341106a24000b9e0101027f230041106b22032400024002402001450d002000200141c4006c6a210403402003200028020036020020022003410410744120102c2201450d0220034220370204200320013602002003200041046a2200412010742002200328020022012003280208107402402003280204450d002001102e0b2002200041206a41201074200041c0006a22002004470d000b0b200341106a24000f0b1036000b740002402001450d002000200141e0016c6a2101034020022000412010742002200041206a412010742002200041c0006a412010742002200041e0006a41201074200220004180016a412010742002200041a0016a412010742002200041c0016a41201074200041e0016a22002001470d000b0b0bb40203027f017e027f230041106b2203240002402001450d002000200141d8006c6a210403402002200041386a41201074200029030021052003200041086a2903003703082003200537030020022003411010742000280220210120002802282206200210760240200641306c2206450d00200120066a210603402002200141201074200141206a29030021052003200141286a290300370308200320053703002002200341101074200141306a22012006470d000b0b200041d8006a2107200028022c2101200041346a28020022062002107602402006450d002006410574210603402002200141201074200141206a2101200641606a22060d000b0b200029031021052003200041186a2903003703082003200537030020022003411010742007210020072004470d000b0b200341106a24000ba40102017f017e230041106b2203240002402001450d002001410574210103402002200041106a41081074200029030021042003200041086a29030037030820032004370300200220034110107402400240024002400240200041186a2d00000e03000102040b200341003a00000c020b200341013a00000c010b200341023a00000b20022003410110740b200041206a2100200141606a22010d000b0b200341106a24000bff0101027f230041106b2203240002400240200141c4006c2201450d0003400240024020002d00004101460d00200341003a000020022003410110742003200041046a28020036020020022003410410740c010b200341013a000020022003410110744120102c2204450d0320034220370204200320043602002003200041016a412010742002200328020022042003280208107402402003280204450d002004102e0b0240200041216a2d00004101460d00200341003a000020022003410110740c010b200341013a000020022003410110742002200041226a412010740b200041c4006a2100200141bc7f6a22010d000b0b200341106a24000f0b1036000b930201057f230041106b2203240002402001450d0020002001411c6c6a2104034020002802002105200028020822012002107602402001450d002005200141e0006c6a210603402005200210a101200528025021012005280258220720021076200541e0006a210502402007450d002007410574210703402002200141201074200141206a2101200741606a22070d000b0b20052006470d000b0b2000411c6a2105200028020c2101200028021422072002107602402007450d00200741027421070340200320012802003602082002200341086a41041074200141046a21012007417c6a22070d000b0b2003200028021836020c20022003410c6a410410742005210020052004470d000b0b200341106a24000b9c0101027f230041106b2202240020012000412010742002200041206a360204200241046a200110af012002200041306a360208200241086a200110af01200041c0006a2802002103200041c8006a28020022002001107602402000450d00200041306c210003402001200341106a412010742002200336020c2002410c6a200110af01200341306a2103200041506a22000d000b0b200241106a24000bc50101037f230041306b2203240002400240200241046a2204417f4c0d000240024020040d00410121050c010b2004102c2205450d020b200341003602102003200436020c200320053602082002200341086a1076200341086a2001200210742003200328020822022003280210220410a3013703182003412c6a200220046a360200200320023602282003200341206a3602242003200341186a3602202000200341206a107c0240200328020c450d002002102e0b200341306a24000f0b1038000b1036000b1d01017e2001ad4220862000ad841013220029000021022000102e20020bea0304037f027e017f047e230041a0016b22022400200241003a00380240024002400240200128020422034110490d002001280200220441086a2900002105200429000021062001200441106a3602002001200341706a2204360204200241013a00382002200637030820022005370310200441104f0d01200042013703000c020b200042013703000c020b2001280200220441086a2900002105200429000021062001200441106a360200200241086a41186a220720053703002001200341606a2204360204200241023a003820022006370318024020044110490d002001280200220441086a2900002105200429000021062001200441106a360200200241086a41286a20053703002001200341506a360204200241033a003820022006370328200241c0006a41086a200241086a41086a2903002208370300200241c0006a41106a200241086a41106a2903002209370300200241c0006a41186a2007290300220a370300200241c0006a41206a2006370300200241c0006a41286a200537030020022002290308220b370340200041306a2005370300200041286a2006370300200041206a200a370300200041186a2009370300200041106a20083703002000200b370308200042003703000c020b200042013703000b200241003a00380b200241a0016a24000bac0401057f230041106b220241003a000802400240024020012802042203450d00200128020022042d0000210520012003417f6a2206360204200241013a00082001200441016a360200200220053a000020060d01200041013a00000c020b200041013a00000f0b200128020022042d0000210520012003417e6a22063602042001200441016a360200200241023a0008200220053a00010240024002400240024002402006450d00200128020022042d0000210520012003417d6a22063602042001200441016a360200200241033a0008200220053a00022006450d01200128020022042d0000210520012003417c6a22063602042001200441016a360200200241043a0008200220053a00032006450d02200128020022042d0000210520012003417b6a22063602042001200441016a360200200241053a0008200220053a00042006450d03200128020022042d0000210520012003417a6a22063602042001200441016a360200200241063a0008200220053a00052006450d04200128020022042d000021052001200341796a22063602042001200441016a360200200241073a0008200220053a00062006450d05200041003a0000200128020022042d000021052001200341786a3602042001200441016a360200200220053a0007200020022903003700010f0b200041013a00000c050b200041013a00000c040b200041013a00000c030b200041013a00000c020b200041013a00000c010b200041013a00000b200241003a00080bbf0202077f047e230041f0006b22022400200241003a002841002103024002400340200241003a003020012802002204280204220520054100472206490d01200341016a2107200241306a20042802002208200610e9081a2004200520066b3602042004200820066a360200024020050d00200241003a00300b200241086a20036a20022d00303a0000200220073a00282007210320074120470d000b200241306a41086a200241086a41086a2903002209370300200241306a41106a200241086a41106a290300220a370300200241306a41186a200241086a41186a290300220b37030020022002290308220c370330200041196a200b370000200041116a200a370000200041096a20093700002000200c370001200041003a00000c010b200041013a0000200341ff0171450d00200241003a00280b200241f0006a24000bd60301087f230041d0016b2202240041002103200241003a00482001280204417f6a210402400240024003402004417f460d01200241086a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00482004417f6a210420052103200541c000470d000b200241d0006a41086a2204200241086a41086a290300370300200241d0006a41106a2201200241086a41106a290300370300200241d0006a41186a2203200241086a41186a290300370300200241d0006a41206a2206200241086a41206a290300370300200241d0006a41286a2207200241086a41286a290300370300200241d0006a41306a2208200241086a41306a290300370300200241d0006a41386a2209200241086a41386a29030037030020022002290308370350200541ff017141c000490d0120002002290350370001200041003a0000200041396a2009290300370000200041316a2008290300370000200041296a2007290300370000200041216a2006290300370000200041196a2003290300370000200041116a2001290300370000200041096a20042903003700000c020b200041013a0000200341ff0171450d01200241003a00480c010b200041013a00000b200241d0016a24000bef0101047f230041d0016b2202240041002103200241003a00492001280204417f6a210402400240024003402004417f460d01200241086a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00492004417f6a210420052103200541c100470d000b2002418f016a200241086a41c10010e9081a200241ce006a2002418f016a41c10010e9081a200541ff017141c100490d01200041016a200241ce006a41c10010e9081a200041003a00000c020b200041013a0000200341ff0171450d01200241003a00490c010b200041013a00000b200241d0016a24000be20201077f230041206b2202240002400240200041046a2802002203200041086a28020022046b2001410c6a280200200128020822056b22064103752207490d00200028020021030c010b0240200420076a22082004490d00200341017422042008200420084b1b22044104200441044b1b220441ffffffff01712004464102742108200441037421040240024020030d00200241003602100c010b200241186a410436020020022003410374360214200220002802003602100b200220042008200241106a107d200241086a2802002104024020022802004101460d00200020022802042203360200200041046a2004410376360200200041086a28020021040c020b2004450d001036000b1038000b200320044103746a2005200610e9081a20012001410c6a280200360208200041086a2200200028020020076a3602000240200141046a28020041ffffffff0171450d002001280200102e0b200241206a24000bf90302057f017e230041106b22022400200242003c000c200242003e02080240024020012802042203450d00200128020022042d0000210520012003417f6a2206360204200241013a000c2001200441016a360200200220053a000802402006450d00200128020022042d0000210520012003417e6a22063602042001200441016a360200200241023a000c200220053a00092006450d00200128020022042d0000210520012003417d6a22063602042001200441016a360200200241033a000c200220053a000a2006450d00200128020022042d0000210520012003417c6a3602042001200441016a360200200241043a000c200220053a000b200231000ca741034d0d01200228020821042002200110ab01024002400240024020022802000d002001280204220520022802042203490d002003417f4c0d020240024020030d00410121060c010b200310322206450d04200128020421050b0240024020052003490d0020062001280200200310e90821052001280204220620034f0d012003200641b8b2c0001056000b2006102e0c010b2001200620036b3602042001200128020020036a36020020050d010b200041003602040c050b20002003ad220742208620078437020820002005360204200020043602000c040b1038000b1036000b200241003a000c0b200041003602040b200241106a24000bcf0201067f0240024020012802042202450d00200128020022032d0000210420012002417f6a2205360204410121062001200341016a3602000240200441037122074103460d0002400240024020070e03000102000b20044102762107410021060c040b41012106024020050d000c040b20032d0001210520012002417e6a3602042001200341026a3602002005410874200472220141ffff0371418002490d03200141fcff03714102762107410021060c030b20054103490d01200341036a2d0000210620032f0001210720012002417c6a3602042001200341046a3602002007200641107472410874200472220141808004492106200141027621070c020b0240200441034d0d000c020b20054104490d012003280001210720012002417b6a3602042001200341056a36020020074180808080044921060c010b410121060b20002007360204200020063602000ba00402067f017e230041106b22022400200242003c000c200242003e020802400240200128020022032802042204450d00200328020022052d0000210620032004417f6a360204200241013a000c2003200541016a360200200220063a00080240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a360200200241023a000c200220063a0009200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a360200200241033a000c200220063a000a200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a360200200241043a000c200220063a000b200231000ca741034d0d01200228020821042002200110ad01024002400240024020022802000d0020012802002205280204220620022802042203490d002003417f4c0d020240024020030d00410121070c010b200310322207450d042001280200220528020421060b0240024020062003490d0020072005280200200310e90821012005280204220620034f0d012003200641b8b2c0001056000b2007102e0c010b2005200620036b3602042005200528020020036a36020020010d010b200041003602040c050b20002003ad220842208620088437020820002001360204200020043602000c040b1038000b1036000b200241003a000c0b200041003602040b200241106a24000bfb0201057f02400240200128020022022802042203450d00200228020022042d0000210520022003417f6a360204410121032002200441016a3602000240200541037122024103460d0002400240024020020e03000102000b20054102762102410021030c040b200128020022022802042203450d02200228020022012d0000210420022003417f6a360204410121032002200141016a3602002004410874200572220141ffff0371418002490d03200141fcff03714102762102410021030c030b2001280200220228020422034103490d012002280200220141026a2d0000210420012f000021062002200141036a36020020022003417d6a3602042006200441107472410874200572220241808004492103200241027621020c020b0240200541034d0d000c020b2001280200220128020422054104490d0120012802002203280000210220012005417c6a3602042001200341046a36020020024180808080044921030c010b410121030b20002002360204200020033602000bad0201047f230041106b22022400024002402001280208220341146a2204417f4c0d000240024020040d00410121050c010b2004102c2205450d020b20024100360208200220043602042002200536020020022001410c6a411010742001280200210420032002107620022004200310742002200128021c2204412010742002200441206a36020c2002410c6a200210af012002200441306a36020c2002410c6a200210af01200441c0006a2802002101200441c8006a28020022042002107602402004450d00200441306c210403402002200141106a412010742002200136020c200141306a21012002410c6a200210af01200441506a22040d000b0b200020022802002201200228020810b00102402002280204450d002001102e0b200241106a24000f0b1038000b1036000bad0303017f027e027f230041306b2202240002400240024002400240024020002802002200290300220342c000544100200041086a29030022045022051b0d0020034280800154410020051b0d01200342808080800454410020051b0d02411020047920037942c0007c20044200521ba741037622056b41044f0d0341c087c500413641c489c5001039000b20022003a74102743a00182001200241186a410110740c030b20022003a74102744101723b01182001200241186a410210740c020b20022003a74102744102723602182001200241186a410410740c010b2002413320054102746b3a00182001200241186a41011074200029030021032002200041086a290300220437031020022003370308200541706a21000340200220033c00182001200241186a410110742003420888200442388684210320044208882104200041016a22052000492106200521002006450d000b2002200337030820022004370310200320048450450d010b200241306a24000f0b2002412c6a4100360200200241286a41d4e2cc003602002002420137021c2002418888c500360218200241086a200241186a10de04000b4c0020002002ad4220862001ad8410102201290000370000200041186a200141186a290000370000200041106a200141106a290000370000200041086a200141086a2900003700002001102e0b920101047f230041106b22022400024002402000280208220341d8006c4104722204417f4c0d00200028020021002004102c2205450d01200241003602082002200436020420022005360200200320021076200020032002109d012001280200200128020420022802002201200228020810b20102402002280204450d002001102e0b200241106a24000f0b1038000b1036000b18002001ad4220862000ad842003ad4220862002ad84102a0bc00101047f230041106b2202240002400240200128020822034105744104722204417f4c0d00200128020021012004102c2205450d0120004100360208200020043602042000200536020020032000107602402003450d002003410574210303404120102c2204450d03200242203702042002200436020020022001412010742000200228020022042002280208107402402002280204450d002004102e0b200141206a2101200341606a22030d000b0b200241106a24000f0b1038000b1036000bd90102047f017e230041106b2202240002400240200128020822034106744104722204417f4c0d00200128020021012004102c2205450d0120004100360208200020043602042000200536020020032000107602402003450d002003410674210303402000200141206a41201074200129030021062002200141086a290300370308200220063703002000200241101074200141106a29030021062002200141186a290300370308200220063703002000200241101074200141c0006a2101200341406a22030d000b0b200241106a24000f0b1038000b1036000bae0101047f230041106b2202240002400240200128020822034103744104722204417f4c0d00200128020021012004102c2205450d0120004100360208200020043602042000200536020020032000107602402003450d00200120034103746a21030340200220012802003602082000200241086a410410742002200141046a28020036020c20002002410c6a41041074200141086a22012003470d000b0b200241106a24000f0b1038000b1036000ba50101047f230041106b2202240020002802002103200028020822002001107602402000450d002003200041386c6a210403402001200341086a41201074200220032903003703082001200241086a41081074200328022821002003280230220520011076200341386a210302402005450d002005410574210503402001200041201074200041206a2100200541606a22050d000b0b20032004470d000b0b200241106a24000b990101037f230041106b2202240020002802002103200028020822002001107602402000450d002003200041c8006c6a2104034020022003108a012001200228020022002002280208107402402002280204450d002000102e0b2002200341246a2203108a012001200228020022002002280208107402402002280204450d002000102e0b200341246a22032004470d000b0b200241106a24000b8d0101037f230041106b22022400200028020021032000280208220020011076024002402000450d002000410574210003404120102c2204450d02200242203702042002200436020020022003412010742001200228020022042002280208107402402002280204450d002004102e0b200341206a2103200041606a22000d000b0b200241106a24000f0b1036000bde0103037f017e017f230041106b22022400200028020021032000280208220020011076024020004106742200450d00200320006a210403402001200341201074200329032021052002200341286a290300370308200220053703002001200241101074200328023021002003280238220620011076200341c0006a21030240200641306c2206450d00200020066a210603402001200041201074200041206a29030021052002200041286a290300370308200220053703002001200241101074200041306a22002006470d000b0b20032004470d000b0b200241106a24000bdc0201047f230041206b2203240002400240200041086a28020022042001490d00024002402004200041046a280200470d00200441016a22052004490d03200441017422062005200620054b1b22054104200541044b1b220541ffffff3f712005464103742106200541057421050240024020040d00200341003602100c010b200341106a41086a410836020020032004410574360214200320002802003602100b200320052006200341106a107d200341086a280200210520032802004101460d0120002003280204360200200041046a20054105763602000b200028020020014105746a220541206a2005200420016b41057410ea081a200541186a200241186a290300370300200541106a200241106a290300370300200541086a200241086a29030037030020052002290300370300200041086a200441016a360200200341206a24000f0b2005450d011036000b200120041045000b1038000bf70301087f200041086a22032802002104410021052003410036020002402004450d004100210541002106024003400240024020050d0020012802002207210803402000280200200641306c6a210903402008450d0320082009412010ec0841004a0d0302400240200228020022082002280204470d00410021080c010b2002200841206a3602000b2001200836020020072009412010ec08210a20082107200a4100480d000b200821072004200641016a22064b0d000b410021050c040b03402000280200200641306c6a210920012802002207210803402008450d0220082009412010ec0841004a0d0202400240200228020022082002280204470d00410021080c010b2002200841206a3602000b2001200836020020072009412010ec08210a20082107200a4100480d000b2000280200200620056b41306c6a22082009290300370300200841286a200941286a290300370300200841206a200941206a290300370300200841186a200941186a290300370300200841106a200941106a290300370300200841086a200941086a2903003703002004200641016a22064d0d030c000b0b200541016a21052004200641016a22064b0d000b0b024020050d00410021050c010b20002802002208200620056b41306c6a2008200641306c6a200420066b41306c10ea081a0b2003200420056b3602000be10101047f230041206b22012400024002400240200041046a28020020002802082202470d00200241016a22032002490d02200241017422042003200420034b1b22034104200341044b1b220341ffffffff01712003464102742104200341037421030240024020020d00200141003602100c010b200141186a410436020020012002410374360214200120002802003602100b200120032004200141106a107d200141086a280200210220012802004101460d0120002001280204360200200041046a20024103763602000b200141206a24000f0b2002450d001036000b1038000baf0c01107f230041a0036b2202240002400240024020012802082203200128020c460d0020012802102104200241b4026a2105200241e0026a41206a2106200241c8016a4104722107200241d0006a4104722108200241106a41386a2109200241106a41306a210a200241106a41286a210b03402001200341206a36020820082003290000370000200841086a200341086a290000370000200841106a200341106a290000370000200841186a200341186a29000037000020022004360250024002402004200810be01450d002001200128021041016a22043602100c010b200241c8016a41206a200241d0006a41206a280200360200200241c8016a41186a200241d0006a41186a290300370300200241c8016a41106a200241d0006a41106a290300370300200241c8016a41086a200241d0006a41086a290300370300200220022903503703c801200241f0016a41186a2203200741186a220c290000370300200241f0016a41106a220d200741106a220e290000370300200241f0016a41086a220f200741086a2210290000370300200220072900003703f001200241e0026a41186a2204200c290000370300200241e0026a41106a220c200e290000370300200241e0026a41086a220e2010290000370300200220072900003703e00220024190026a200241e0026a10bf01200241c0026a41186a22102003290300370300200241c0026a41106a2211200d290300370300200241c0026a41086a220d200f290300370300200220022903f0013703c0020240024020022802b00222030d00410021030c010b2006200229039002370300200641186a20024190026a41186a290300370300200641106a20024190026a41106a290300370300200641086a20024190026a41086a29030037030020042010290300370300200c2011290300370300200e200d290300370300200241f8006a41086a200541086a280200360200200220022903c0023703e0022002200529020037037820024188016a41386a200241e0026a41386a29030037030020024188016a41306a200241e0026a41306a29030037030020024188016a41286a200241e0026a41286a29030037030020024188016a41206a200629030037030020024188016a41186a200429030037030020024188016a41106a200c29030037030020024188016a41086a200e290300370300200220022903e002370388010b0240024020030d0020094200370300200a4200370300200b4200370300200241106a41206a4200370300200241106a41186a4200370300200241106a41106a4200370300200241106a41086a4200370300200241086a410036020020024200370310200242003703000c010b200920024188016a41386a290300370300200a20024188016a41306a290300370300200b20024188016a41286a290300370300200241106a41206a20024188016a41206a290300370300200241106a41186a20024188016a41186a290300370300200241106a41106a20024188016a41106a290300370300200241106a41086a20024188016a41086a290300370300200241086a200241f8006a41086a2802003602002002200229038801370310200220022903783703000b2001200128021041016a220436021020030d030b20012802082203200128020c470d000b0b200041003602400c010b200241e0026a41386a2201200241106a41386a290300370300200241e0026a41306a2208200241106a41306a290300370300200241e0026a41286a2204200241106a41286a290300370300200241e0026a41206a2207200241106a41206a290300370300200241e0026a41186a2206200241106a41186a290300370300200241e0026a41106a220c200241106a41106a290300370300200241e0026a41086a220e200241106a41086a29030037030020024188016a41086a220d200241086a280200360200200220022903103703e0022002200229030037038801200041386a2001290300370300200041306a2008290300370300200041286a2004290300370300200041206a2007290300370300200041186a2006290300370300200041106a200c290300370300200041086a200e290300370300200020022903e002370300200020033602402000200229038801370244200041cc006a200d2802003602000b200241a0036a24000bc10501037f23004190016b22022400200241e0006a22034200370300200241d8006a22044200370300200241c8006a41086a420037030020024200370348200241c8006a41a081ca004107108102200241e8006a41e4d1c100410c1081022003200241e8006a41086a29000037030020042002290068370300200241106a200241c8006a4120108e02200241c8006a2002280214410020022802101b2204200010c206200228024822002002280250108f0221030240200228024c450d002000102e0b4101210002400240024020030d00200241186a41bed8c8004108108102200241e8006a41edd8c800410e108102200220043602382002200241386a410410a301370378200241d4006a2203200241386a41046a3602002002200241f8006a41086a36024c2002200241386a3602502002200241f8006a360248200241286a200241c8006a107c4120102c2200450d012002422037027c20022000360278200241f8006a200141201074200220022802782200200228028001220410a301370388012003200020046a36020020022000360250200220024188016a41086a36024c200220024188016a360248200241386a200241c8006a107c0240200228027c450d002000102e0b20022802302203200228024022046a41206a2200417f4c0d020240024020000d00410121010c010b2000102c2201450d020b200241003602502002200036024c20022001360248200241c8006a200241186a41101074200241c8006a200241e8006a41101074200241c8006a2002280228220020031074200241c8006a20022802382203200410740240200228023c450d002003102e0b0240200228022c450d002000102e0b200241086a200228024822042002280250108e02200228020c2100200228020821030240200228024c450d002004102e0b200341004720004100477121000b20024190016a240020000f0b1036000b1038000bbf0302077f017e230041a0016b22022400200241086a1094030240024020022903084202520d00200041003602200c010b200241f0006a200241086a41106a280200200110a103200241c0006a20022802702203200228027810a20320024180016a41186a2204200241c0006a41186a29030037030020024180016a41106a2205200241c0006a41106a2903003703004108210120024180016a41086a2206200241c0006a41086a2903003703002002200229034037038001200241ec006a280200210702400240200228026022080d0042002109200241206a41186a4200370300200241206a41106a4200370300200241206a41086a4200370300200242003703200c010b200241206a41086a2006290300370300200241206a41106a2005290300370300200241206a41186a2004290300370300200220022903800137032020022902642109200821010b02402002280274450d002003102e0b2000200229032037030020002009370224200020013602202000412c6a2007360200200041186a200241206a41186a290300370300200041106a200241206a41106a290300370300200041086a200241206a41086a2903003703000b200241a0016a24000bb60303057f017e037f230041e0006b2202240002400240200128020c2203200128020822046b2205410675220641ffffff3f712006470d0020054101752205417f4c0d00200129020021070240024020050d00410121010c010b2005102c2201450d020b20002001360200200041086a220841003602002000200541057636020420004100200610c10120082802002105024020042003460d00200028020020054105746a2100200241206a41206a21010340200241206a41386a200441386a290300370300200241206a41306a200441306a290300370300200241206a41286a200441286a2903003703002001200441206a290300370300200241086a2206200141086a290000370300200241106a2209200141106a290000370300200241186a220a200141186a29000037030020022001290000370300200041186a200a290300370000200041106a2009290300370000200041086a200629030037000020002002290300370000200541016a2105200041206a21002003200441c0006a2204470d000b0b20082005360200024020074280808080f0ffffff0383500d002007a7102e0b200241e0006a24000f0b1038000b1036000bdd0101027f230041206b22032400024002400240200041046a280200220420016b20024f0d00200120026a22022001490d02200441017422012002200120024b1b22014104200141044b1b220141ffffff3f712001462102200141057421010240024020040d00200341003602100c010b200341186a410136020020032004410574360214200320002802003602100b200320012002200341106a107d200341086a280200210120032802004101460d0120002003280204360200200041046a20014105763602000b200341206a24000f0b2001450d001036000b1038000bad0204047f017e017f037e02400240200128020c2202200128020822036b41306d220441ffffff3f712004470d0020044105742205417f4c0d00200129020021060240024020050d00410121010c010b2005102c2201450d020b20002001360200200041086a220741003602002000200541057636020420004100200410c1012006422088a7210420072802002101024020032002460d00200028020020014105746a21000340200341086a2900002108200341106a29000021092003290000210a200041186a200341186a290000370000200041106a2009370000200041086a20083700002000200a370000200141016a2101200041206a21002002200341306a2203470d000b0b2007200136020002402004450d00200441306c450d002006a7102e0b0f0b1038000b1036000b820203017f017e067f0240024020012802082202ad420c7e2203422088a70d002003a72204417f4c0d00200128020021054104210102402004450d002004102c2201450d020b2000410036020820002001360200200041046a2004410c6e220636020002402004410c490d00200241ffffffff0371210703402007450d01200541086a2802002204417f4c0d02200528020021080240024020040d00410121090c010b2004102c2209450d040b20092008200410e9082108200141086a2004360200200141046a2004360200200120083602002005410c6a21052001410c6a21012007417f6a21072006417f6a22060d000b0b200020023602080f0b1038000b1036000bd10503027f017e0a7f230041206b220224000240024020012802082203ad42247e2204422088a70d002004a72205417f4c0d00200128020021064104210702402005450d002005102c2207450d020b410021082000410036020820002007360200200041046a200541246e2209360200024020054124490d002002411e6a210a034020052008460d014101210b02400240024002400240200620086a22012d00000e050104020300010b200a200141036a2d00003a00004104210b200241086a41046a200141146a2d00003a00002002200141016a2f00003b011c2002200141106a2800003602082001410c6a280000210c200141086a280000210d200141046a280000210e0c030b200a200141036a2d00003a0000200241086a41086a200141186a290000370300200241086a41106a200141206a2d00003a00002002200141016a2f00003b011c2002200141106a2900003703082001410c6a280000210c200141086a280000210d200141046a280000210e4100210b0c020b2001410c6a280200220d417f4c0d04200141046a280200210102400240200d0d004101210e0c010b200d102c220e450d060b200e2001200d10e9081a4102210b200d210c0c010b4103210b200a200141036a2d00003a0000200241086a41086a200141186a290000370300200241086a41106a200141206a2d00003a00002002200141016a2f00003b011c2002200141106a2900003703082001410c6a280000210c200141086a280000210d200141046a280000210e0b200720086a2201200b3a0000200141016a20022f011c3b0000200141036a200a2d00003a00002001410c6a200c360200200141086a200d360200200141046a200e360200200141106a2002290308370200200141186a200241086a41086a290300370200200141206a200241086a41106a280200360200200841246a21082009417f6a22090d000b0b20002003360208200241206a24000f0b1038000b1036000bdb0205027f017e037f017e037f230041206b220224000240024020012802082203ad42307e2204422088a70d002004a72205417f4c0d00200128020021060240024020050d00410821010c010b2005102c2201450d020b2000410036020820002001360200200041046a200541306e2207360200024020054130490d00200341ffffffff0071210503402005450d01200641086a290300210420062903002108200241186a2209200641286a290300370300200241106a220a200641206a290300370300200241086a220b200641186a2903003703002002200641106a2903003703002001200437030820012008370300200141106a2002290300370300200141186a200b290300370300200141206a200a290300370300200141286a2009290300370300200641306a2106200141306a21012005417f6a21052007417f6a22070d000b0b20002003360208200241206a24000f0b1038000b1036000bbf0304027f017e067f077e230041306b220224000240024020012802082203ad42d0007e2204422088a70d002004a72205417f4c0d00200128020021060240024020050d00410821010c010b2005102c2201450d020b2000410036020820002001360200200041046a200541d0006e22073602000240200541d000490d0003402005450d01200241106a41086a2208200641086a290300370300200241106a41106a2209200641106a290300370300200241106a41186a220a200641186a29030037030020022006290300370310200641286a2903002104200641306a290300210b200641386a290300210c2006290320210d2002200641c0006a10c501200a290300210e2009290300210f2008290300211020022903102111200141386a200c370300200141306a200b370300200141286a2004370300200141206a200d370300200141086a201037030020012011370300200141106a200f370300200141186a200e370300200141c0006a2002290300370300200141c8006a200241086a280200360200200141d0006a2101200541b07f6a2105200641d0006a21062007417f6a22070d000b0b20002003360208200241306a24000f0b1038000b1036000bdd0603027f017e0d7f230041106b220224000240024020012802082203ad42247e2204422088a70d002004a72205417f4c0d00200128020021064104210702402005450d002005102c2207450d020b410021082000410036020820002007360200200041046a200541246e2209360200024020054124490d00034020052008460d010240024002400240024002400240200620086a22012d00000e06010203040500010b2001410c6a280200220a417f4c0d08200141046a280200210102400240200a0d004101210b0c010b200a102c220b450d0a0b200b2001200a10e908410876210c4105210d200a210e0c050b2002200141146a2900003703002002200141196a290000370005200141016a2f0000200141036a2d000041107472210f200141046a280000220b410876210c200141106a28000021102001410c6a280000210a200141086a280000210e4100210d0c040b200141106a2802002210417f4c0d06200141036a2d0000210f200141016a2f0000210a200141086a2802002111200141046a2d0000210b4101210d4101210e02402010450d002010102c220e450d080b200a200f41107472210f200e2011201010e9081a2010210a0c030b200141106a2802002210417f4c0d05200141036a2d0000210f200141016a2f0000210a200141086a280200210d200141046a2d0000210b0240024020100d004101210e0c010b2010102c220e450d070b200a200f41107472210f200e200d201010e9081a4102210d2010210a0c020b200141106a2802002210417f4c0d04200141036a2d0000210f200141016a2f0000210a200141086a280200210d200141046a2d0000210b0240024020100d004101210e0c010b2010102c220e450d060b200a200f41107472210f200e200d201010e9081a4103210d2010210a0c010b4104210d200141046a280200210b2001410c6a280200210a200141086a280200210e4100210c0b200720086a2201200d3a0000200141036a200f4110763a0000200141016a200f3b0000200141106a20103602002001410c6a200a360200200141086a200e360200200141046a200c410874200b41ff017172360200200141146a20022903003702002001411c6a200241086a290300370200200841246a21082009417f6a22090d000b0b20002003360208200241106a24000f0b1038000b1036000be20102047f037e024002402001280208220241ffffff3f712002470d0020024105742203417f4c0d00200128020021040240024020030d00410121010c010b2003102c2201450d020b2000410036020820002001360200200041046a2003410576220536020002402003450d0003402005450d01200441086a2900002106200441106a290000210720042900002108200141186a200441186a290000370000200141106a2007370000200141086a200637000020012008370000200141206a2101200441206a21042005417f6a22050d000b0b200020023602080f0b1038000b1036000bf4380f027f017e167f017e017f027e0d7f027e047f017e057f047e0b7f027e037f230041c0056b220224000240024020012802082203ad42b0027e2204422088a70d002004a72205417f4c0d00200128020021060240024020050d00410821070c010b2005102c2207450d020b410021082000410036020820002007360200200041046a200541b0026e22093602000240200541b002490d00200241a8036a210a20024190056a210b200241d0036a210c200241a4036a210d200241f8036a210e200241d8036a210f200241b8036a211020024198036a2111200241d4036a2112200241a0036a2113034020052008460d0102400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200620086a22012802000e1c0102030405060708090a0b0c0d0e0f101112131415161718191a1b00010b20024190036a200141386a10ca0120024180036a41086a2214200141246a2d00003a000020022001411c6a29020037038003200141256a2d000021152002200141266a2f01003b01be01200141186a2802002116200141146a2802002117200141106a2802002118200141086a2903002104200141286a28020021192001412c6a280200211a200141306a290300211b200141f8016a280200211c200229039003211d200229039803211e200241d0016a201341b00110e9081a20014184026a280200211f20014180026a2802002120200241c0016a41086a20142d00003a000020022002290380033703c001200241086a200241d0016a41b00110e9081a411b21140c1b0b20024190036a200141086a10cb01200220022802a4033602c00120022802a0032116200228029c03211720022802980321182002290390032104410021140c1a0b20024190036a200141046a10cc01200241c0016a41086a200a41086a2d00003a00002002200a2902003703c001200220022f01b2033b01be0120022802a403211620022802a0032117200228029c0321182002290294032104200228029003212120022d00b1032115410121140c190b20024190036a200141086a10cd01200241c0016a41086a200d41086a2d00003a00002002200d2902003703c001200220022f01ae033b01be01200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a20022903c803211e200241086a200c41b00110e9081a200241d0016a41086a200b41086a290200370300200241d0016a41106a200b41106a290200370300200241d0016a41186a200b41186a2902003703002002200b2902003703d001200228028c05211f20022802880521202002280284052122200228028005211c410221140c180b200141086a2903002104410321140c170b4104211402400240024002400240024002400240200141046a2d0000417f6a0e050102030405000b41e2a0cc00412841e89bc4001039000b200141086a2802002101410121140c040b20024190036a41086a200141246a2d00003a000020022001411c6a29000037039003200141056a2f0000200141076a2d0000411074722123200141186a2800002116200141146a2800002117200141106a2800002124200141286a2802002119200141086a2900002204a721012004422088a7212541022114202621150c040b200141086a2802002101410321140c020b20024190036a41086a200141246a2d00003a000020022001411c6a29000037039003200141056a2f0000200141076a2d0000411074722123200141256a2d00004100472115200141186a2800002116200141146a2800002117200141106a2800002124200141286a2802002119200141086a2900002204a721012004422088a721250c020b200141086a2802002101410521140b202721192026211520282117202921160b200241c0016a41086a20024190036a41086a2d00003a000020022002290390033703c001200220022f01d0013b01be01202341087420147221212025ad4220862001ad8421044104211420192127201521262017212820162129202421180c160b20024190036a200141086a10ce01200241c0016a41086a200d41086a2d00003a0000200241086a41086a200c41086a290200370300200241086a41106a200c41106a290200370300200241086a41186a200c41186a2902003703002002200d2902003703c001200220022f01ae033b01be012002200c290200370308200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a20022903c803211e410521140c150b20024190036a200141046a10cf0120022902940321042002280290032121410621140c140b20024190036a200141086a10d001200241c0016a41086a200d41086a2d00003a0000200241086a41086a200c41086a290200370300200241086a41106a200c41106a2902003703002002200d2902003703c001200220022f01ae033b01be012002200c290200370308200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a20022903c803211e410721140c130b10d101000b02400240200141046a22142802000d0041002121202a2117202b21160c010b200241086a41086a200141246a2d00003a0000201141186a200141e8006a290200370200201141106a200141e0006a290200370200201141086a200141d8006a2902003702002011200141d0006a29020037020020022001411c6a2900003703082002200141266a2f01003b01c0012002200141c8006a29020037039003200141386a290200212c200141306a290200212d200141186a2802002116200141146a2802002117200141106a280200212e200141256a2d0000212f200141286a28020021302001412c6a2802002131200141c0006a2902002132201041186a20014188016a290200370200201041106a20014180016a290200370200201041086a200141f8006a2902003702002010200141f0006a290200370200200f20014190016a290200370200200f41086a20014198016a290200370200200f41106a200141a0016a290200370200200f41186a200141a8016a290200370200200e200141b0016a290200370200200e41086a200141b8016a290200370200200e41106a200141c0016a290200370200200e41186a200141c8016a2902003702002001410c6a2802002233417f4c0d15201428020021010240024020330d00410121210c010b2033102c2221450d170b20212001203310e9081a20024180036a41086a200241086a41086a2d00003a00002002200229030837038003200220022f01c0013b01ce01200241d0016a20024190036a41880110e9081a2017212a2016212b0b200241c0016a41086a20024180036a41086a2d00003a000020022002290380033703c001200220022f01ce013b01be01200241086a200241d0016a41880110e9081a2033ad4220862033ad842104410921142032211e202d211b202c211d2031211a20302119202f2115202e21180c110b20024190036a200141086a10d201200241c0016a41086a200d41086a2d00003a00002002200d2902003703c001200220022f01ae033b01be01200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a20022903c803211e200241086a200c41b00110e9081a200241d0016a41086a200b41086a290200370300200241d0016a41106a200b41106a2902003703002002200b2902003703d001200228028c05211f20022802880521202002280284052122200228028005211c410a21140c100b20024190036a200141046a10d301200241c0016a41086a200a41086a2d00003a0000200241086a41086a201241086a290200370300200241086a41106a201241106a290200370300200241086a41186a201241186a290200370300200241086a41206a201241206a2802003602002002200a2902003703c001200220022f01b2033b01be0120022012290200370308200241c4036a290200211d20022902bc03211b20022802a403211620022802a0032117200228029c0321182002290294032104200228029003212120022d00b103211520022802b403211920022802b803211a20022902cc03211e410b21140c0f0b10d401000b20024190036a200141086a10d501200241c0016a41086a200d41086a2d00003a00002002200d2902003703c001200220022f01ae033b01be01200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a410d21140c0d0b20024190036a200141086a10d601200241c0016a41086a200d41086a2d00003a00002002200d2902003703c001200220022f01ae033b01be01200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a410e21140c0c0b20024190036a200141086a10d601200241c0016a41086a200d41086a2d00003a00002002200d2902003703c001200220022f01ae033b01be01200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a410f21140c0b0b20024190036a200141086a10d701200241c0016a41086a200d41086a2d00003a00002002200d2902003703c001200220022f01ae033b01be0120022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a411021140c0a0b4107211702400240024002400240024002400240200141046a2d0000417f6a0e0701020304050607000b41e2a0cc00412841a4c3cb001039000b20024190036a41086a200141246a2d00003a000020022001411c6a29000037039003200141056a2f0000200141076a2d0000411074722134200141186a2800002135200141146a2800002136200141106a2800002137200141086a2900002138410121170c050b20024190036a41086a200141246a2d00003a000020022001411c6a29000037039003200141056a2f0000200141076a2d0000411074722134200141186a2800002135200141146a2800002136200141106a2800002137200141086a2900002138410221170c040b20024190036a41086a200141246a2d00003a000020022001411c6a290000370390032002200141266a2f00003b01d001200141056a2f0000200141076a2d000041107472213420394280808080806083200141c0006a350000200141c4006a31000042208684842139200141386a290000213a200141306a290000213b2001412c6a280000213c200141286a280000213d200141256a2d0000213e200141186a2800002135200141146a2800002136200141106a2800002137200141086a2900002138410321170c030b20024190036a200141086a10c80120022802980321372002290390032138410421170c020b20024190036a41086a200141246a2d00003a000020022001411c6a2900003703900341052117200141056a2f0000200141076a2d0000411074722134200141186a2800002135200141146a2800002136200141106a2800002137200141086a29000021380c010b20024190036a41086a200141246a2d00003a000020022001411c6a29000037039003200141056a2f0000200141076a2d0000411074722134200141186a2800002135200141146a2800002136200141106a2800002137200141086a2900002138410621170b200241c0016a41086a20024190036a41086a2d00003a000020022002290390033703c001200220022f01d0013b01be0120344108742017722121411121142039211e203b211b203a211d203c211a203d2119203e2115203621172035211620372118203821040c090b024002400240024002400240200141086a280200417f6a0e03010203000b41e2a0cc0041284184ccc2001039000b200141386a290300211d200141306a290300211b41012117024002400240024002402001410c6a2d00000e050104020300010b4104211720024190036a41046a200141206a2d00003a000020022001411c6a280000360290032001410d6a2f00002001410f6a2d000041107472213f200141186a2800002140200141146a2800002141200141106a28000021420c030b20024198036a200141246a2d00003a000020022001411c6a290000370390032002200141266a2f00003b01082001410d6a2f00002001410f6a2d000041107472213f2001412c6a2d00002143200141286a2800002144200141256a2d00002145200141186a2800002140200141146a2800002141200141106a2800002142410021170c020b200141186a2802002241417f4c0d11200141106a28020021010240024020410d00410121420c010b2041102c2242450d130b20422001204110e9081a41022117204121400c010b20024198036a200141246a2d00003a000020022001411c6a290000370390032002200141266a2f00003b01082001410d6a2f00002001410f6a2d000041107472213f2001412c6a2d00002143200141286a2800002144200141256a2d00002145200141186a2800002140200141146a2800002141200141106a2800002142410321170b200241d0016a41086a20024190036a41086a2d00003a000020022002290390033703d001200220022f01083b018003204341ff0171211a42012104203f21010c030b2001410c6a28020022174108762101420221040c010b2001410c6a28020022174108762101420321040b2046211a2047211b2048211d0b200241c0016a41086a200241d0016a41086a2d00003a0000200220022903d0013703c001200220022f0180033b01be012001410874201741ff017172ad422086200484210441122114201a2146201b2147201d214820442119204521152041211720402116204221180c080b20024190036a200141086a10d801200241c0016a41086a200d41086a2d00003a0000200241086a41086a200c41086a290200370300200241086a41106a200c41106a290200370300200241086a41186a200c41186a290200370300200241086a41206a200c41206a290200370300200241086a41286a200c41286a2902003703002002200d2902003703c001200220022f01ae033b01be012002200c290200370308200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a20022903c803211e411321140c070b20024190036a200141086a10d901200241c0016a41086a200d41086a2d00003a0000200241086a41086a200c41086a290200370300200241086a41106a200c41106a290200370300200241086a41186a200c41186a290200370300200241086a41206a200c41206a290200370300200241086a41286a200c41286a290200370300200241086a41306a200c41306a2902003703002002200d2902003703c001200220022f01ae033b01be012002200c29020037030820024190036a41306a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a20022903c803211e411421140c060b0240024002400240200141046a2f0100417f6a0e03010200010b20024190036a200141086a10c9012002280298032149200228029403214a2002280290032114410321010c020b20024190036a200141086a10c9012002280298032149200228029403214a2002280290032114410121010c010b200141066a2f0100214b41b002102c2214450d0a20024190036a200141086a28020010da01201420024190036a41b00210e9081a410221010b204b4110742001722121204aad4220862014ad84210441152114204921180c050b20024190036a200141086a10db01200241c0016a41086a200d41086a2d00003a00002002200d2902003703c001200220022f01ae033b01be01200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a20022903c803211e200241086a200c41b00110e9081a200241d0016a41086a200b41086a290200370300200241d0016a41106a200b41106a290200370300200241d0016a41186a200b41186a290200370300200241d0016a41206a200b41206a2902003703002002200b2902003703d001200228028c05211f20022802880521202002280284052122200228028005211c411621140c040b20024190036a200141046a10dc01200241c0016a41086a200a41086a2d00003a00002002200a2902003703c001200220022f01b2033b01be01200220022802d403360208200241c4036a290200211d20022902bc03211b20022802a403211620022802a0032117200228029c0321182002290294032104200228029003212120022d00b103211520022802b403211920022802b803211a20022902cc03211e411721140c030b20024190036a200141086a10dd01200241c0016a41086a200d41086a2d00003a00002002200d2902003703c001200220022f01ae033b01be01200220022903d003370308200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a20022903c803211e411821140c020b20024190036a200141086a10de01200241c0016a41086a200d41086a2d00003a00002002200d2902003703c001200220022f01ae033b01be01200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a20022903c803211e411921140c010b20024190036a200141086a10df01200241c0016a41086a200d41086a2d00003a00002002200d2902003703c001200220022f01ae033b01be01200241c0036a290300211d20022903b803211b20022802a0032116200228029c0321172002280298032118200229039003210420022d00ad03211520022802b003211920022802b403211a20022903c803211e411a21140b200720086a22012014360200200141186a2016360200200141146a2017360200200141106a2018360200200141086a2004370300200141046a2021360200200241c0016a41086a2d0000211420022903c0012104200141256a20153a0000200141386a201d370200200141306a201b3702002001411c6a2004370200200141246a20143a0000200141c0006a201e3702002001412c6a201a360200200141286a2019360200200141266a20022f01be013b0100200141c8006a200241086a41b00110e9081a20014184026a201f36020020014180026a2020360200200141fc016a2022360200200141f8016a201c36020020014188026a20022903d00137020020014190026a200241d0016a41086a29030037020020014198026a200241d0016a41106a290300370200200141a0026a200241d0016a41186a290300370200200141a8026a200241f0016a290300370200200841b0026a21082009417f6a22090d000b0b20002003360208200241c0056a24000f0b1038000b1036000bce0d03057f017e287f024002402001280208220241ffffffff01712002470d0020024103742203417f4c0d00200128020021040240024020030d00410421050c010b2003102c2205450d020b200020053602002000200341037636020420052004200241037410e9081a20002002360208200141146a2802002206ad420c7e2207422088a70d002007a72204417f4c0d00200128020c21034104210202402004450d002004102c2202450d020b20022003200410e9082108200141206a280200220241ffffffff00712002470d0020024104742209417f4c0d00200128021821054104210302402009450d002009102c2203450d020b20032005200241047410e908210a2001412c6a280200220bad42147e2207422088a70d002007a7220c417f4c0d002001280224210302400240200c0d00410421050c010b200c102c2205450d020b20052003200c10e908210d200141386a280200220ead42187e2207422088a70d002007a7220f417f4c0d002001280230210302400240200f0d00410421050c010b200f102c2205450d020b20052003200f10e9082110200141c4006a2802002211ad421c7e2207422088a70d002007a72212417f4c0d00200128023c21030240024020120d00410421050c010b2012102c2205450d020b20052003201210e9082113200141d0006a280200220341ffffff3f712003470d0020034105742214417f4c0d00200128024821050240024020140d00410421150c010b2014102c2215450d020b20152005200341057410e9082116200141dc006a2802002217ad42247e2207422088a70d002007a72215417f4c0d00200128025421050240024020150d00410421180c010b2015102c2218450d020b20182005201510e9082119200141e8006a280200221aad42287e2207422088a70d002007a72218417f4c0d00200128026021050240024020180d004104211b0c010b2018102c221b450d020b201b2005201810e908211c200141f4006a280200221dad422c7e2207422088a70d002007a7221b417f4c0d00200128026c210502400240201b0d004104211e0c010b201b102c221e450d020b201e2005201b10e908211f20014180016a2802002220ad42307e2207422088a70d002007a7221e417f4c0d002001280278210502400240201e0d00410421210c010b201e102c2221450d020b20212005201e10e90821222001418c016a2802002223ad42347e2207422088a70d002007a72221417f4c0d0020012802840121050240024020210d00410421240c010b2021102c2224450d020b20242005202110e908212520014198016a2802002226ad42387e2207422088a70d002007a72224417f4c0d0020012802900121050240024020240d00410421270c010b2024102c2227450d020b20272005202410e9082128200141a4016a2802002229ad423c7e2207422088a70d002007a72227417f4c0d00200128029c0121050240024020270d004104212a0c010b2027102c222a450d020b202a2005202710e908212b200141b0016a280200220541ffffff1f712005470d002005410674222c417f4c0d0020012802a801212a02400240202c0d004104212d0c010b202c102c222d450d020b202d202a200541067410e908212d200141bc016a280200222ead42c4007e2207422088a70d002007a7222a417f4c0d0020012802b401212f410421010240202a450d00202a102c2201450d020b2001202f202a10e9082101200041bc016a202e360200200041b8016a202a41c4006e360200200020013602b401200041b0016a2005360200200041ac016a202c4106763602002000202d3602a801200041a4016a2029360200200041a0016a2027413c6e3602002000202b36029c0120004198016a202636020020004194016a202441386e36020020002028360290012000418c016a202336020020004188016a202141346e360200200020253602840120004180016a2020360200200041fc006a201e41306e36020020002022360278200041f4006a201d360200200041f0006a201b412c6e3602002000201f36026c200041e8006a201a360200200041e4006a201841286e3602002000201c360260200041dc006a2017360200200041d8006a201541246e36020020002019360254200041d0006a2003360200200041cc006a201441057636020020002016360248200041c4006a2011360200200041c0006a2012411c6e3602002000201336023c200041386a200e360200200041346a200f41186e360200200020103602302000412c6a200b360200200041286a200c41146e3602002000200d360224200041206a20023602002000411c6a20094104763602002000200a360218200041146a2006360200200041106a2004410c6e3602002000200836020c0f0b1038000b1036000b9d0803047f017e087f230041106b2202240002400240024002400240024002400240024002400240024002402001280200417f6a0e0a01020304050607080900010b2001410c6a2802002203417f4c0d0a200128020421010240024020030d00410121040c010b2003102c2204450d0c0b20042001200310e90821012000410c6a2003360200200041086a2003360200200020013602042000410a3602000c090b20004101360200200020012802043602040c080b2001410c6a2802002203417f4c0d08200128020421010240024020030d00410121040c010b2003102c2204450d0a0b20042001200310e90821012000410c6a2003360200200041086a200336020020002001360204200041023602000c070b20004103360200200041086a200141086a2903003703000c060b2001410c6a2802002203417f4c0d06200128020421010240024020030d00410121040c010b2003102c2204450d080b20042001200310e90821012000410c6a2003360200200041086a200336020020002001360204200041043602000c050b2001410c6a2802002203417f4c0d05200128020421010240024020030d00410121040c010b2003102c2204450d070b20042001200310e90821012000410c6a2003360200200041086a200336020020002001360204200041053602000c040b20004106360200200020012902043702042000410c6a2001410c6a2802003602000c030b2001410c6a2802002205ad42187e2206422088a70d032006a72203417f4c0d030240024020030d00200341186e2107410421080c010b200128020421092003102c2208450d05200341186e210720034118490d00200541ffffffff0171210a4100210b2007210c0340200a450d012009200b6a220141086a2802002203417f4c0d05200128020021040240024020030d004101210d0c010b2003102c220d450d070b200d2004200310e908210d200141146a2802002204417f4c0d052001410c6a28020021010240024020040d004101210e0c010b2004102c220e450d070b200e2001200410e908210e2008200b6a2201200d360200200141146a2004360200200141106a20043602002001410c6a200e360200200141086a2003360200200141046a2003360200200a417f6a210a200b41186a210b200c417f6a220c0d000b0b20002008360204200041073602002000410c6a2005360200200041086a20073602000c020b2002200141046a10c301200041083602002000410c6a200241086a280200360200200020022903003702040c010b2001410c6a2802002203417f4c0d01200128020421040240024020030d004101210b0c010b2003102c220b450d030b200b2004200310e90821042000410c6a2003360200200041086a20033602002000200436020420004109360200200041106a20012802103602000b200241106a24000f0b1038000b1036000bca0701097f230041b0026b22022400024002400240024002400240024002400240024020012d0000417f6a0e06010203040506000b41e2a0cc00412841ecb0c4001039000b200141106a28020021032001410c6a2802002104200141086a2802002105200141046a280200210620012d0001210741b002102c2208450d062002200141146a28020010a8042008200241b00210e9082101200041106a20033602002000410c6a2004360200200041086a2005360200200041046a2006360200200041146a2001360200200020073a0001200041013a00000c050b200041023a0000200041046a200141046a2902003702000c040b2001410c6a2802002203417f4c0d05200141046a28020021040240024020030d00410121050c010b2003102c2205450d050b20052004200310e90821042001411c6a2802002105200141186a280200210620012d00012107200128021421082001280210210941b002102c220a450d042002200128022010a804200a200241b00210e90821012000411c6a2005360200200041186a2006360200200041146a2008360200200041106a20093602002000410c6a2003360200200041086a2003360200200041046a2004360200200041206a2001360200200020073a0001200041033a00000c030b2001410c6a2802002203417f4c0d04200141046a28020021010240024020030d00410121040c010b2003102c2204450d040b20042001200310e90821012000410c6a2003360200200041086a2003360200200041046a2001360200200041043a00000c020b200141106a28020021032001410c6a2802002104200141086a2802002105200141046a280200210620012d0001210741b002102c2208450d022002200141146a28020010a8042008200241b00210e9082101200041106a20033602002000410c6a2004360200200041086a2005360200200041046a2006360200200041146a2001360200200020073a0001200041053a00000c010b2001410c6a2802002203417f4c0d02200141046a28020021040240024020030d00410121050c010b2003102c2205450d020b20052004200310e90821042001411c6a2802002105200141186a280200210620012d00012107200128021421082001280210210941b002102c220a450d012002200128022010a804200a200241b00210e90821012000411c6a2005360200200041186a2006360200200041146a2008360200200041106a20093602002000410c6a2003360200200041086a2003360200200041046a2004360200200041206a2001360200200020073a0001200041063a00000b200241b0026a24000f0b1036000b1038000b9b1b03047f017e167f230041e0036b2202240002400240024002402001280200417f6a0e03010200010b20004103360200200041186a200141186a2d00003a0000200041106a200141106a290300370300200041086a200141086a2903003703000c020b20024180026a41186a220320014198026a29000037030020024180026a41106a220420014190026a29000037030020024180026a41086a220520014188026a290000370300200220014180026a29000037038002200141186a2903002106200241e0026a41086a2207200141386a290200370300200241e0026a41106a2208200141c0006a290200370300200241e0026a41186a2209200141c8006a290200370300200241c0026a41086a220a200141d8006a290200370300200241c0026a41106a220b200141e0006a290200370300200241c0026a41186a220c200141e8006a290200370300200241a0026a41086a220d200141f8006a290200370300200241a0026a41106a220e20014180016a290200370300200241a0026a41186a220f20014188016a2902003703002002200141306a2902003703e0022002200141d0006a2902003703c0022002200141f0006a2902003703a002200141206a2802002110200241f0016a200141246a10c701200241c0036a41086a2211200141a8016a290200370300200241c0036a41106a2212200141b0016a290200370300200241c0036a41186a2213200141b8016a290200370300200241a0036a41086a2214200141c8016a290200370300200241a0036a41106a2215200141d0016a290200370300200241a0036a41186a2216200141d8016a29020037030020024180036a41086a2217200141e8016a29020037030020024180036a41106a2218200141f0016a29020037030020024180036a41186a2219200141f8016a2902003703002002200141a0016a2902003703c0032002200141c0016a2902003703a0032002200141e0016a2902003703800320014190016a280200211a20024180016a20014194016a10c701200241186a221b2003290300370300200241106a22032004290300370300200241086a22042005290300370300200241d0016a41086a22052007290300370300200241d0016a41106a22072008290300370300200241d0016a41186a22082009290300370300200241b0016a41086a2209200a290300370300200241b0016a41106a220a200b290300370300200241b0016a41186a220b200c2903003703002002200229038002370300200220022903e0023703d001200220022903c0023703b00120024190016a41186a220c200f29030037030020024190016a41106a220f200e29030037030020024190016a41086a220e200d290300370300200241e0006a41186a220d2013290300370300200241e0006a41106a22132012290300370300200241e0006a41086a22122011290300370300200241c0006a41186a221c2016290300370300200241c0006a41106a22162015290300370300200241c0006a41086a22152014290300370300200220022903a00237039001200220022903c003370360200220022903a003370340200241206a41186a22142019290300370300200241206a41106a22192018290300370300200241206a41086a22182017290300370300200220022903800337032020012802042117200241c0036a200141086a10c301200041206a2010360200200041186a2006370300200041246a20022903f0013702002000412c6a200241f0016a41086a280200360200200041306a20022903d001370300200041386a2005290300370300200041c0006a2007290300370300200041c8006a2008290300370300200041d0006a20022903b001370300200041d8006a2009290300370300200041e0006a200a290300370300200041e8006a200b290300370300200141146a280200210120004190016a201a36020020004188016a200c29030037030020004180016a200f290300370300200041f8006a200e290300370300200041f0006a2002290390013703002000419c016a20024180016a41086a28020036020020004194016a200229038001370200200041a0016a2002290360370300200041a8016a2012290300370300200041b0016a2013290300370300200041b8016a200d290300370300200041d8016a201c290300370300200041d0016a2016290300370300200041c8016a2015290300370300200041c0016a2002290340370300200041f8016a2014290300370300200041f0016a2019290300370300200041e8016a2018290300370300200041e0016a200229032037030020004198026a201b29030037030020004190026a200329030037030020004188026a200429030037030020004180026a200229030037030020002017360204200041106a2011280200360200200041086a20022903c003370200200041146a2001360200200041013602000c010b20024180026a41186a220320014198026a29000037030020024180026a41106a220420014190026a29000037030020024180026a41086a220520014188026a290000370300200220014180026a29000037038002200141186a2903002106200241e0026a41086a2207200141386a290200370300200241e0026a41106a2208200141c0006a290200370300200241e0026a41186a2209200141c8006a290200370300200241c0026a41086a220a200141d8006a290200370300200241c0026a41106a220b200141e0006a290200370300200241c0026a41186a220c200141e8006a290200370300200241a0026a41086a220d200141f8006a290200370300200241a0026a41106a220e20014180016a290200370300200241a0026a41186a220f20014188016a2902003703002002200141306a2902003703e0022002200141d0006a2902003703c0022002200141f0006a2902003703a002200141206a2802002110200241f0016a200141246a10c701200241c0036a41086a2211200141a8016a290200370300200241c0036a41106a2212200141b0016a290200370300200241c0036a41186a2213200141b8016a290200370300200241a0036a41086a2214200141c8016a290200370300200241a0036a41106a2215200141d0016a290200370300200241a0036a41186a2216200141d8016a29020037030020024180036a41086a2217200141e8016a29020037030020024180036a41106a2218200141f0016a29020037030020024180036a41186a2219200141f8016a2902003703002002200141a0016a2902003703c0032002200141c0016a2902003703a0032002200141e0016a2902003703800320014190016a280200211a20024180016a20014194016a10c701200241186a221b2003290300370300200241106a22032004290300370300200241086a22042005290300370300200241d0016a41086a22052007290300370300200241d0016a41106a22072008290300370300200241d0016a41186a22082009290300370300200241b0016a41086a2209200a290300370300200241b0016a41106a220a200b290300370300200241b0016a41186a220b200c2903003703002002200229038002370300200220022903e0023703d001200220022903c0023703b00120024190016a41186a220c200f29030037030020024190016a41106a220f200e29030037030020024190016a41086a220e200d290300370300200241e0006a41186a220d2013290300370300200241e0006a41106a22132012290300370300200241e0006a41086a22122011290300370300200241c0006a41186a221c2016290300370300200241c0006a41106a22162015290300370300200241c0006a41086a22152014290300370300200220022903a00237039001200220022903c003370360200220022903a003370340200241206a41186a22142019290300370300200241206a41106a22192018290300370300200241206a41086a22182017290300370300200220022903800337032020012802042117200241c0036a200141086a10c301200041206a2010360200200041186a2006370300200041246a20022903f0013702002000412c6a200241f0016a41086a280200360200200041306a20022903d001370300200041386a2005290300370300200041c0006a2007290300370300200041c8006a2008290300370300200041d0006a20022903b001370300200041d8006a2009290300370300200041e0006a200a290300370300200041e8006a200b290300370300200141146a280200210120004190016a201a36020020004188016a200c29030037030020004180016a200f290300370300200041f8006a200e290300370300200041f0006a2002290390013703002000419c016a20024180016a41086a28020036020020004194016a200229038001370200200041a0016a2002290360370300200041a8016a2012290300370300200041b0016a2013290300370300200041b8016a200d290300370300200041d8016a201c290300370300200041d0016a2016290300370300200041c8016a2015290300370300200041c0016a2002290340370300200041f8016a2014290300370300200041f0016a2019290300370300200041e8016a2018290300370300200041e0016a200229032037030020004198026a201b29030037030020004190026a200329030037030020004188026a200429030037030020004180026a200229030037030020002017360204200041106a2011280200360200200041086a20022903c003370200200041146a2001360200200041023602000b200241e0036a24000bc61803067f037e047f230041c0006b2202240002400240024002400240024002402001280200417f6a0e0401020300010b200141046a2103410121040240024002400240024020012d00040e050104020300010b2002410a6a200341036a2d00003a0000200241286a41046a200141186a2d00003a0000200220032f00013b01082002200141146a280000360228200141106a28020021052001410c6a2802002106200141086a2802002107410421040c030b2002410a6a200341036a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a0000200220032f00013b01082002200141146a290000370328200141106a28020021052001410c6a2802002106200141086a2802002107410021040c020b200141106a2802002205417f4c0d06200141086a28020021040240024020050d00410121070c010b2005102c2207450d080b20072004200510e9081a41022104200521060c010b410321042002410a6a200341036a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a0000200220032f00013b01082002200141146a290000370328200141106a28020021052001410c6a2802002106200141086a28020021070b200020043a0004200020022f01083b0005200020022f00243b0025200041106a20053600002000410c6a2006360000200041086a2007360000200041146a2002290328370000200041076a200241086a41026a2d00003a00002000411c6a200241286a41086a290300370000200041246a200241286a41106a2d00003a0000200041276a200241246a41026a2d00003a000020012903282108200041306a200141306a290300370300200041286a2008370300200041043602000c030b200141046a2103410121060240024002400240024020012d00040e050104020300010b2002410a6a200341036a2d00003a0000200241286a41046a200141186a2d00003a0000200220032f00013b01082002200141146a280000360228200141106a28020021042001410c6a2802002105200141086a2802002107410421060c030b2002410a6a200341036a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a0000200220032f00013b01082002200141146a290000370328200141106a28020021042001410c6a2802002105200141086a2802002107410021060c020b200141106a2802002205417f4c0d05200141086a28020021040240024020050d00410121070c010b2005102c2207450d070b20072004200510e9081a41022106200521040c010b410321062002410a6a200341036a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a0000200220032f00013b01082002200141146a290000370328200141106a28020021042001410c6a2802002105200141086a28020021070b200020063a0004200020022f01083b0005200020022f00243b0025200041106a20043600002000410c6a2005360000200041086a2007360000200041146a2002290328370000200041076a200241086a41026a2d00003a00002000411c6a200241286a41086a290300370000200041246a200241286a41106a2d00003a0000200041276a200241246a41026a2d00003a000020012903282108200041306a200141306a290300370300200041286a2008370300200041013602000c020b200141046a2103410121040240024002400240024020012d00040e050104020300010b2002410a6a200341036a2d00003a0000200241286a41046a200141186a2d00003a0000200220032f00013b01082002200141146a280000360228200141106a28020021062001410c6a2802002105200141086a2802002107410421040c030b2002410a6a200341036a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a0000200220032f00013b01082002200141146a290000370328200141106a28020021062001410c6a2802002105200141086a2802002107410021040c020b200141106a2802002205417f4c0d04200141086a28020021040240024020050d00410121070c010b2005102c2207450d060b20072004200510e9081a41022104200521060c010b410321042002410a6a200341036a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a0000200220032f00013b01082002200141146a290000370328200141106a28020021062001410c6a2802002105200141086a28020021070b200020043a0004200020022f01083b0005200020022f00243b0025200041106a20063600002000410c6a2005360000200041086a2007360000200041146a2002290328370000200041076a200241086a41026a2d00003a00002000411c6a200241286a41086a290300370000200041246a200241286a41106a2d00003a0000200041276a200241246a41026a2d00003a0000200141306a2903002108200129032821092001290338210a200041c0006a200141c0006a290300370300200041386a200a370300200041306a2008370300200041286a2009370300200041023602000c010b200141046a2107410121034101210b0240024002400240024020012d00040e050104020300010b200241206a200741036a2d00003a0000200241086a41046a200141186a2d00003a0000200220072f00013b011e2002200141146a280000360208200141106a280200210c2001410c6a2802002105200141086a28020021044104210b0c030b200241206a200741036a2d00003a0000200241086a41086a2001411c6a290000370300200241086a41106a200141246a2d00003a0000200220072f00013b011e2002200141146a290000370308200141106a280200210c2001410c6a2802002105200141086a28020021044100210b0c020b200141106a2802002205417f4c0d03200141086a28020021070240024020050d00410121040c010b2005102c2204450d050b20042007200510e9081a4102210b2005210c0c010b4103210b200241206a200741036a2d00003a0000200241086a41086a2001411c6a290000370300200241086a41106a200141246a2d00003a0000200220072f00013b011e2002200141146a290000370308200141106a280200210c2001410c6a2802002105200141086a28020021040b02400240024002400240200141286a220d2d00000e050104020300010b200241266a200d41036a2d00003a000041042103200241286a41046a2001413c6a2d00003a00002002200d2f00013b01242002200141386a280000360228200141346a2802002107200141306a280200210e2001412c6a28020021060c030b200241266a200d41036a2d00003a0000200241306a200141c0006a290000370300200241386a200141c8006a2d00003a00002002200d2f00013b01242002200141386a290000370328200141346a2802002107200141306a280200210e2001412c6a2802002106410021030c020b200141346a2802002207417f4c0d032001412c6a28020021030240024020070d00410121060c010b2007102c2206450d050b20062003200710e9081a410221032007210e0c010b41032103200241266a200d41036a2d00003a0000200241306a200141c0006a290000370300200241386a200141c8006a2d00003a00002002200d2f00013b01242002200141386a290000370328200141346a2802002107200141306a280200210e2001412c6a28020021060b2000200b3a0004200020022f011e3b0005200020022f00053b0025200041106a200c3600002000410c6a2005360000200041086a2004360000200041146a2002290308370000200041076a2002411e6a41026a2d00003a00002000411c6a200241086a41086a290300370000200041246a200241086a41106a2d00003a0000200041276a200241056a41026a2d00003a0000200141d8006a290300210820012903502109200041286a20033a00002000412c6a2006360000200041306a200e360000200041346a2007360000200020022f01243b00292000412b6a200241246a41026a2d00003a0000200041386a2002290328370000200041c0006a200241286a41086a290300370000200041c8006a200241286a41106a2d00003a0000200020022f00213b0049200041cb006a200241216a41026a2d00003a0000200041d8006a2008370300200041d0006a2009370300200041033602000b200241c0006a24000f0b1038000b1036000b8d0503027f017e0f7f230041f0006b220224000240024020012802082203ad42f0007e2204422088a70d002004a72205417f4c0d00200128020021064104210702402005450d002005102c2207450d020b410021012000410036020820002007360200200041046a200541f0006e22083602000240200541f000490d00200341ffffffff0071210903402009450d01200241c0006a41086a220a200620016a220541186a290000370300200241c0006a41106a220b200541206a290000370300200241c0006a41186a220c200541286a290000370300200241206a41086a220d200541386a290000370300200241206a41106a220e200541c0006a290000370300200241206a41186a220f200541c8006a290000370300200241086a2210200541d8006a290000370300200241106a2211200541e0006a290000370300200241186a2212200541e8006a2900003703002002200541106a2900003703402002200541306a2900003703202002200541d0006a29000037030020052802002113200241e0006a200541046a10c701200720016a22052013360200200541046a20022903603702002005410c6a200241e0006a41086a280200360200200541106a2002290340370200200541186a200a290300370200200541206a200b290300370200200541286a200c290300370200200541306a2002290320370200200541386a200d290300370200200541c0006a200e290300370200200541c8006a200f290300370200200541e8006a2012290300370200200541e0006a2011290300370200200541d8006a2010290300370200200541d0006a20022903003702002009417f6a2109200141f0006a21012008417f6a22080d000b0b20002003360208200241f0006a24000f0b1038000b1036000bd41403057f027e017f230041d0006b2202240002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d0000417f6a0e170102030405060708090a0b0c0d0e0f1011121314151617000b41e2a0cc00412841f4ebc6001039000b4101210302400240024002400240200141246a2d00000e050104020300010b200241ce006a200141276a2d00003a000041042103200241106a41046a200141386a2d00003a00002002200141256a2f00003b014c2002200141346a280000360210200141306a28000021042001412c6a2800002105200141286a28000021060c030b200241ce006a200141276a2d00003a0000200241186a2001413c6a290000370300200241206a200141c4006a2d00003a00002002200141256a2f00003b014c2002200141346a290000370310200141306a28000021042001412c6a2800002105200141286a2800002106410021030c020b200141306a2802002205417f4c0d19200141286a28020021030240024020050d00410121060c010b2005102c2206450d1b0b20062003200510e9081a41022103200521040c010b200241ce006a200141276a2d00003a0000200241186a2001413c6a290000370300200241206a200141c4006a2d00003a00002002200141256a2f00003b014c2002200141346a290000370310200141306a28000021042001412c6a2800002105200141286a2800002106410321030b200141d0006a290300210720012903482108410421090240024002400240024020012d00010e050001020304000b410021090c030b410121090c020b410221090c010b200241c0006a2001411a6a290000370300200241386a200141126a290000370300200241306a2001410a6a2900003703002002200141026a290000370328410321090b200041246a20033a0000200041256a20022f014c3b0000200041306a20043600002000412c6a2005360000200041286a2006360000200041346a2002290310370000200041c5006a20022f000d3b0000200041276a200241cc006a41026a2d00003a00002000413c6a200241106a41086a290300370000200041c4006a200241106a41106a2d00003a0000200041c7006a2002410d6a41026a2d00003a0000200041d0006a2007370300200041c8006a2008370300200020093a0001200041013a0000200041026a20022903283700002000410a6a200241286a41086a290300370000200041126a200241286a41106a2903003700002000411a6a200241c0006a2903003700000c160b200041023a0000200041106a200141106a290300370300200041086a200141086a2903003703000c150b200041033a0000200041106a200141106a290300370300200041086a200141086a2903003703000c140b200041043a0000200041046a200141046a2802003602000c130b200041053a0000200041046a200141046a280200360200200041086a200141086a2d00004100473a00000c120b200241286a200141046a10c401200041063a00002000410c6a200241306a280200360200200041046a20022903283702000c110b200041073a00000c100b410421050240024002400240024020012d00010e050001020304000b410021050c030b410121050c020b410221050c010b200241c0006a2001411a6a290000370300200241386a200141126a290000370300200241306a2001410a6a2900003703002002200141026a290000370328410321050b200020053a0001200041083a0000200041026a20022903283700002000410a6a200241286a41086a290300370000200041126a200241386a2903003700002000411a6a200241c0006a2903003700000c0f0b4101210302400240024002400240200141046a2d00000e050104020300010b200241126a200141076a2d00003a0000200241286a41046a200141186a2d00003a00002002200141056a2f00003b01102002200141146a280000360228200141106a28000021042001410c6a2800002105200141086a2800002106410421030c030b200241126a200141076a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a00002002200141056a2f00003b01102002200141146a290000370328200141106a28000021042001410c6a2800002105200141086a2800002106410021030c020b200141106a2802002205417f4c0d11200141086a28020021010240024020050d00410121060c010b2005102c2206450d130b20062001200510e9081a41022103200521040c010b200241126a200141076a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a00002002200141056a2f00003b01102002200141146a290000370328200141106a28000021042001410c6a2800002105200141086a2800002106410321030b200041046a20033a0000200041056a20022f01103b0000200041106a20043600002000410c6a2005360000200041086a2006360000200041146a2002290328370000200041256a20022f004c3b0000200041076a200241106a41026a2d00003a00002000411c6a200241286a41086a290300370000200041246a200241286a41106a2d00003a0000200041276a200241cc006a41026a2d00003a0000200041093a00000c0e0b2000410a3a0000200041046a200141046a2802003602000c0d0b2000410b3a0000200041046a200141046a2802003602000c0c0b2000410c3a0000200020012d00013a00010c0b0b2000410d3a00000c0a0b2000410e3a00000c090b200241286a200141046a10c8012000410f3a00002000410c6a200241306a280200360200200041046a20022903283702000c080b200041103a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a2802003602000c070b200041113a00000c060b200141106a280200220541ffffffff03712005470d0620054102742206417f4c0d06200141086a2802002103200141046a28020021044104210102402006450d002006102c2201450d080b20012003200541027410e9082101200041106a20053602002000410c6a2006410276360200200041086a2001360200200041046a2004360200200041123a00000c050b200041133a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a2802003602000c040b200041143a0000200041106a200141106a290300370300200041086a200141086a2903003703000c030b200041153a0000200041046a200141046a2902003702000c020b200041163a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a2802003602000c010b200241286a200141046a10c401200041173a00002000410c6a200241306a280200360200200041046a20022903283702000b200241d0006a24000f0b1038000b1036000b110041e2a0cc00412841889cc5001039000bc91a05017f017e0a7f027e117f230041c0036b22022400024002400240024002402001280200417f6a0e03010203000b41e2a0cc00412841c499c9001039000b200141186a2903002103200241a0036a41086a22042001413c6a290200370300200241a0036a41106a2205200141c4006a290200370300200241a0036a41186a2206200141cc006a290200370300200241e0026a41086a2207200141dc006a290200370300200241e0026a41106a2208200141e4006a290200370300200241e0026a41186a2209200141ec006a290200370300200241e0026a41206a220a200141f4006a290200370300200241e0026a41286a220b200141fc006a290200370300200241e0026a41306a220c20014184016a290200370300200241e0026a41386a220d2001418c016a2902003703002002200141346a2902003703a0032002200141d4006a2902003703e002200141206a290300210e200141286a290300210f200141306a2802002110200241c0026a41186a2211200141b0016a290200370300200241c0026a41106a2212200141a8016a290200370300200241c0026a41086a2213200141a0016a29020037030020024180026a41386a2214200141f0016a29020037030020024180026a41306a2215200141e8016a29020037030020024180026a41286a2216200141e0016a29020037030020024180026a41206a2217200141d8016a29020037030020024180026a41186a2218200141d0016a29020037030020024180026a41106a2219200141c8016a29020037030020024180026a41086a221a200141c0016a290200370300200220014198016a2902003703c0022002200141b8016a2902003703800220014194016a280200211b200241e0016a41186a221c20014190026a290300370300200241e0016a41106a221d20014188026a290300370300200241e0016a41086a221e20014180026a2903003703002002200141f8016a2903003703e001200241c0016a41186a221f2006290300370300200241c0016a41106a22062005290300370300200241c0016a41086a22052004290300370300200220022903a0033703c00120024180016a41386a2204200d29030037030020024180016a41306a220d200c29030037030020024180016a41286a220c200b29030037030020024180016a41206a220b200a29030037030020024180016a41186a220a200929030037030020024180016a41106a2209200829030037030020024180016a41086a22082007290300370300200220022903e00237038001200241e0006a41186a22202011290300370300200241e0006a41106a22112012290300370300200241e0006a41086a22122013290300370300200220022903c002370360200241206a41386a22132014290300370300200241206a41306a22142015290300370300200241206a41286a22152016290300370300200241206a41206a22162017290300370300200241206a41186a22172018290300370300200241206a41106a22182019290300370300200241206a41086a2219201a2903003703002002200229038002370320200241186a221a201c290300370300200241106a221c201d290300370300200241086a221d201e290300370300200220022903e0013703002001280204211e200241e0026a200141086a10c301200041306a2010360200200041286a200f370300200041206a200e370300200041186a2003370300200041346a20022903c0013702002000413c6a2005290300370200200041c4006a2006290300370200200041cc006a201f290300370200200041d4006a200229038001370200200041dc006a2008290300370200200041e4006a2009290300370200200041ec006a200a290300370200200041f4006a200b290300370200200041fc006a200c29030037020020004184016a200d2903003702002000418c016a2004290300370200200141146a280200210120004194016a201b360200200041b0016a2020290300370200200041a8016a2011290300370200200041a0016a201229030037020020004198016a2002290360370200200041f0016a2013290300370200200041e8016a2014290300370200200041e0016a2015290300370200200041d8016a2016290300370200200041d0016a2017290300370200200041c8016a2018290300370200200041c0016a2019290300370200200041b8016a200229032037020020004190026a201a29030037030020004188026a201c29030037030020004180026a201d290300370300200041f8016a20022903003703002000201e360204200041106a2007280200360200200041086a20022903e002370200200041146a2001360200200041013602000c020b200141186a2903002103200241a0036a41086a22042001413c6a290200370300200241a0036a41106a2205200141c4006a290200370300200241a0036a41186a2206200141cc006a290200370300200241e0026a41086a2207200141dc006a290200370300200241e0026a41106a2208200141e4006a290200370300200241e0026a41186a2209200141ec006a290200370300200241e0026a41206a220a200141f4006a290200370300200241e0026a41286a220b200141fc006a290200370300200241e0026a41306a220c20014184016a290200370300200241e0026a41386a220d2001418c016a2902003703002002200141346a2902003703a0032002200141d4006a2902003703e002200141206a290300210e200141286a290300210f200141306a2802002110200241c0026a41186a2211200141b0016a290200370300200241c0026a41106a2212200141a8016a290200370300200241c0026a41086a2213200141a0016a29020037030020024180026a41386a2214200141f0016a29020037030020024180026a41306a2215200141e8016a29020037030020024180026a41286a2216200141e0016a29020037030020024180026a41206a2217200141d8016a29020037030020024180026a41186a2218200141d0016a29020037030020024180026a41106a2219200141c8016a29020037030020024180026a41086a221a200141c0016a290200370300200220014198016a2902003703c0022002200141b8016a2902003703800220014194016a280200211b200241e0016a41186a221c20014190026a290300370300200241e0016a41106a221d20014188026a290300370300200241e0016a41086a221e20014180026a2903003703002002200141f8016a2903003703e001200241c0016a41186a221f2006290300370300200241c0016a41106a22062005290300370300200241c0016a41086a22052004290300370300200220022903a0033703c00120024180016a41386a2204200d29030037030020024180016a41306a220d200c29030037030020024180016a41286a220c200b29030037030020024180016a41206a220b200a29030037030020024180016a41186a220a200929030037030020024180016a41106a2209200829030037030020024180016a41086a22082007290300370300200220022903e00237038001200241e0006a41186a22202011290300370300200241e0006a41106a22112012290300370300200241e0006a41086a22122013290300370300200220022903c002370360200241206a41386a22132014290300370300200241206a41306a22142015290300370300200241206a41286a22152016290300370300200241206a41206a22162017290300370300200241206a41186a22172018290300370300200241206a41106a22182019290300370300200241206a41086a2219201a2903003703002002200229038002370320200241186a221a201c290300370300200241106a221c201d290300370300200241086a221d201e290300370300200220022903e0013703002001280204211e200241e0026a200141086a10c301200041306a2010360200200041286a200f370300200041206a200e370300200041186a2003370300200041346a20022903c0013702002000413c6a2005290300370200200041c4006a2006290300370200200041cc006a201f290300370200200041d4006a200229038001370200200041dc006a2008290300370200200041e4006a2009290300370200200041ec006a200a290300370200200041f4006a200b290300370200200041fc006a200c29030037020020004184016a200d2903003702002000418c016a2004290300370200200141146a280200210120004194016a201b360200200041b0016a2020290300370200200041a8016a2011290300370200200041a0016a201229030037020020004198016a2002290360370200200041f0016a2013290300370200200041e8016a2014290300370200200041e0016a2015290300370200200041d8016a2016290300370200200041d0016a2017290300370200200041c8016a2018290300370200200041c0016a2019290300370200200041b8016a200229032037020020004190026a201a29030037030020004188026a201c29030037030020004180026a201d290300370300200041f8016a20022903003703002000201e360204200041106a2007280200360200200041086a20022903e002370200200041146a2001360200200041023602000c010b20004103360200200020012902043702040b200241c0036a24000b910403067f017e077f024002402001410c6a2802002202417f4c0d0020012802042103200128020021040240024020020d00410121050c010b2002102c2205450d020b20052003200210e9082106200141186a2802002207ad420c7e2208422088a70d002008a72203417f4c0d000240024020030d002003410c6e21094104210a0c010b2001280210210b2003102c220a450d022003410c6e21092003410c490d00200741ffffffff0371210c200a21052009210d0340200c450d01200b41086a2802002203417f4c0d02200b280200210e0240024020030d004101210f0c010b2003102c220f450d040b200f200e200310e908210e200541086a2003360200200541046a20033602002005200e360200200b410c6a210b2005410c6a2105200c417f6a210c200d417f6a220d0d000b0b2000200636020420002004360200200020012802243602242000200129021c37021c200041186a2007360200200041146a2009360200200041106a200a3602002000410c6a2002360200200041086a200236020020002001290228370228200041306a200141306a290200370200200041386a200141386a290200370200200041c0006a200141c0006a290200370200200041c8006a200141c8006a290200370200200041d0006a200141d0006a290200370200200041d8006a200141d8006a290200370200200041e0006a200141e0006a2902003702000f0b1038000b1036000b110041e2a0cc00412841f4afc4001039000b8a0f03037f027e027f230041106b220224000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d0000417f6a0e190102030405060708090a0b0c0d0e0f10111213141516171819000b41e2a0cc00412841c0accb001039000b200041013a000020002001290001370001200041306a200141306a290300370300200041286a200141286a290300370300200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a2900003700000c180b200041023a0000200041046a200141046a2902003702000c170b200141046a28020021034101210402400240200141086a2d00004101470d00200141286a2903002105200141206a29030021060c010b200141096a2d000041017121072001410a6a2d00002108410021040b200041033a0000200041286a2005370300200041206a2006370300200041106a20012903103703002000410a6a20083a0000200041096a20073a0000200041086a20043a0000200041046a20033602002000410b6a200228000b360000200041186a200141186a2903003703002000410f6a2002410b6a41046a2d00003a00000c160b200041043a0000200041046a200141046a2802003602000c150b200041053a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000c140b200041063a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000c130b200041073a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000c120b200041083a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a2902003702000c110b200041093a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000c100b2000410a3a0000200041046a200141046a2802003602000c0f0b2000410b3a0000200041046a200141046a2802003602000c0e0b2000410c3a000020002001290001370001200041306a200141306a290300370300200041286a200141286a290300370300200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041216a200141216a2d00003a00000c0d0b2000410d3a00000c0c0b2000410e3a00000c0b0b2001410c6a2802002204417f4c0d0b200141046a28020021010240024020040d00410121030c010b2004102c2203450d0d0b20032001200410e90821012000410c6a2004360200200041086a2004360200200041046a20013602002000410f3a00000c0a0b2001410c6a2802002204417f4c0d0a200141046a28020021010240024020040d00410121030c010b2004102c2203450d0c0b20032001200410e90821012000410c6a2004360200200041086a2004360200200041046a2001360200200041103a00000c090b2001410c6a2802002204417f4c0d09200141046a28020021010240024020040d00410121030c010b2004102c2203450d0b0b20032001200410e90821012000410c6a2004360200200041086a2004360200200041046a2001360200200041113a00000c080b2001410c6a2802002204417f4c0d08200141046a28020021010240024020040d00410121030c010b2004102c2203450d0a0b20032001200410e90821012000410c6a2004360200200041086a2004360200200041046a2001360200200041123a00000c070b200041133a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a2802003602000c060b200041143a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000c050b200041153a0000200041046a200141046a2802003602000c040b200041163a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a2802003602000c030b200041173a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a2802003602000c020b200041183a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041286a200141286a280200360200200041246a200141246a2802004101463602000c010b200041193a0000200041046a200141046a2802003602000b200241106a24000f0b1038000b1036000bd90501037f230041c0026b2202240002400240024002400240024002400240024020012d0000417f6a0e06010203040506000b41e2a0cc00412841b8afc9001039000b2002200141246a10c80141002103024020012d00014101470d00200241286a2001411a6a290000370300200241206a200141126a290000370300200241186a2001410a6a2900003703002002200141026a290000370310410121030b200020033a0001200041013a0000200041246a2002290300370200200041026a2002290310370000200041306a20012802303602002000412c6a200241086a2802003602002000410a6a200241106a41086a290300370000200041126a200241206a2903003700002000411a6a200241286a2903003700000c050b41b002102c2203450d05200241106a200141046a280200108e08200041046a2003200241106a41b00210e908360200200041023a0000200041086a200141086a2802003602000c040b200141046a280200210341b002102c2204450d04200241106a200141086a280200108e08200041086a2004200241106a41b00210e908360200200041046a2003360200200041033a00002000410c6a2001410c6a2802003602000c030b200041043a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a280200360200200041216a200141216a2d00004100473a00000c020b200041053a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041306a200141306a290300370300200041246a200141246a2902003702000c010b200041063a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000b200241c0026a24000f0b1036000b960701057f230041206b22022400024002400240024002400240024002400240024020012d0000417f6a0e06010203040506000b41e2a0cc0041284188f3c0001039000b200241086a200141046a10c801200041013a0000200041186a200141186a290300370300200041106a200141106a290300370300200041046a20022903083702002000410c6a200241106a2802003602000c050b200041023a00000c040b200041033a0000200041046a200141046a2802003602000c030b200141086a280200210341002104024002400240200141046a2802000e03020100020b410221040c010b410121040b200041043a0000200041086a2003360200200041046a20043602000c020b4101210502400240024002400240200141046a2d00000e050104020300010b2002411e6a200141076a2d00003a0000200241086a41046a200141186a2d00003a00002002200141056a2f00003b011c2002200141146a280000360208200141106a28000021062001410c6a2800002104200141086a2800002103410421050c030b2002411e6a200141076a2d00003a0000200241086a41086a2001411c6a290000370300200241086a41106a200141246a2d00003a00002002200141056a2f00003b011c2002200141146a290000370308200141106a28000021062001410c6a2800002104200141086a2800002103410021050c020b200141106a2802002204417f4c0d04200141086a28020021050240024020040d00410121030c010b2004102c2203450d060b20032005200410e9081a41022105200421060c010b2002411e6a200141076a2d00003a0000200241086a41086a2001411c6a290000370300200241086a41106a200141246a2d00003a00002002200141056a2f00003b011c2002200141146a290000370308200141106a28000021062001410c6a2800002104200141086a2800002103410321050b200041046a20053a0000200041056a20022f011c3b0000200041106a20063600002000410c6a2004360000200041086a2003360000200041146a2002290308370000200041256a20022f00053b0000200041076a2002411c6a41026a2d00003a00002000411c6a200241086a41086a290300370000200041246a200241086a41106a2d00003a0000200041276a200241056a41026a2d00003a000020012d00012101200041053a0000200020014100473a00010c010b200041063a0000200041046a200141046a2902003702000b200241206a24000f0b1038000b1036000bee0903037f037e037f23004180016b2202240002400240024002400240024002400240024020012d0000417f6a0e050102030405000b41e2a0cc00412841e0f3c0001039000b20002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a290000370000200041216a200141216a41c10010e9081a200041013a00000c040b200241106a2203200141116a280000360200200241086a2204200141096a29000037030020022001290001370300200141206a2903002105200141186a2903002106420021070240200141286a2903004201520d00200241206a41206a200141d0006a290300370300200241206a41186a200141c8006a290300370300200241206a41106a200141c0006a290300370300200241206a41086a200141386a2903003703002002200141306a290300370320420121070b20002002290300370001200041206a2005370300200041186a2006370300200041286a2007370300200041306a2002290320370300200041096a2004290300370000200041116a2003280200360000200041386a200241206a41086a290300370300200041c0006a200241206a41106a290300370300200041c8006a200241206a41186a290300370300200041d0006a200241206a41206a29030037030020012d00152101200041023a0000200041156a4102200141004720014102461b3a00000c030b200241186a200141196a290000370300200241106a200141116a290000370300200241086a200141096a29000037030020022001290001370300200241206a200141216a41c10010e9081a200141ec006a2802002203417f4c0d03200141e4006a28020021010240024020030d00410121040c010b2003102c2204450d050b20042001200310e9082101200041196a200241186a290300370000200041116a200241106a290300370000200041096a200241086a29030037000020002002290300370001200041216a200241206a41c10010e9081a200041ec006a2003360200200041e8006a2003360200200041e4006a2001360200200041033a00000c020b2001410c6a2802002203417f4c0d02200141046a28020021010240024020030d00410121040c010b2003102c2204450d040b20042001200310e90821012000410c6a2003360200200041086a2003360200200041046a2001360200200041043a00000c010b200241e8006a41106a2204200141116a280000360200200241e8006a41086a2208200141096a29000037030020022001290001370368200241106a2209200141256a280000360200200241086a220a2001411d6a2900003703002002200141156a290000370300410021030240200141296a2d00004101470d00200241386a200141c2006a290000370300200241206a41106a2001413a6a290000370300200241206a41086a200141326a29000037030020022001412a6a290000370320410121030b20002002290368370001200041156a2002290300370000200041296a20033a00002000412a6a2002290320370000200041116a2004280200360000200041096a20082903003700002000411d6a200a290300370000200041256a2009280200360000200041326a200241206a41086a2903003700002000413a6a200241206a41106a290300370000200041c2006a200241386a290300370000200041053a00000b20024180016a24000f0b1038000b1036000ba014020a7f047e230041c0006b2202240002400240024002400240024002402001280200417f6a0e0401020300010b200141046a210341012104410121050240024002400240024020012d00040e050104020300010b200241246a200341036a2d00003a0000200241106a41046a200141186a2d00003a0000200220032f00013b01222002200141146a280000360210200141106a28020021062001410c6a2802002107200141086a2802002108410421050c030b200241246a200341036a2d00003a0000200241106a41086a2001411c6a290000370300200241106a41106a200141246a2d00003a0000200220032f00013b01222002200141146a290000370310200141106a28020021062001410c6a2802002107200141086a2802002108410021050c020b200141106a2802002206417f4c0d06200141086a28020021030240024020060d00410121080c010b2006102c2208450d080b20082003200610e9081a41022105200621070c010b41032105200241246a200341036a2d00003a0000200241106a41086a2001411c6a290000370300200241106a41106a200141246a2d00003a0000200220032f00013b01222002200141146a290000370310200141106a28020021062001410c6a2802002107200141086a28020021080b02400240024002400240200141286a22092d00000e050104020300010b2002413e6a200941036a2d00003a000041042104200241286a41046a2001413c6a2d00003a0000200220092f00013b013c2002200141386a280000360228200141346a2802002103200141306a280200210a2001412c6a280200210b0c030b2002413e6a200941036a2d00003a0000200241306a200141c0006a290000370300200241386a200141c8006a2d00003a0000200220092f00013b013c2002200141386a290000370328200141346a2802002103200141306a280200210a2001412c6a280200210b410021040c020b200141346a2802002203417f4c0d062001412c6a28020021040240024020030d004101210b0c010b2003102c220b450d080b200b2004200310e9081a410221042003210a0c010b410321042002413e6a200941036a2d00003a0000200241306a200141c0006a290000370300200241386a200141c8006a2d00003a0000200220092f00013b013c2002200141386a290000370328200141346a2802002103200141306a280200210a2001412c6a280200210b0b200020053a0004200020022f01223b0005200041106a20063600002000410c6a2007360000200041086a2008360000200041146a2002290310370000200041076a200241226a41026a2d00003a00002000411c6a200241106a41086a290300370000200041246a200241106a41106a2d00003a0000200141f0006a2802002106200141d8006a290300210c200141e0006a290300210d200141e8006a290300210e2001290350210f200041286a20043a00002000412c6a200b360000200041306a200a360000200041346a2003360000200041276a2002410d6a41026a2d00003a0000200020022f000d3b0025200020022f013c3b00292000412b6a2002413c6a41026a2d00003a0000200041386a2002290328370000200041c0006a200241286a41086a290300370000200041c8006a200241286a41106a2d00003a0000200041e8006a200e370300200041e0006a200d370300200041d8006a200c370300200041d0006a200f370300200041f0006a200636020020004104360200200041cb006a200241256a41026a2d00003a0000200020022f00253b00490c030b200041013602000c020b200141046a2104410121080240024002400240024020012d00040e050104020300010b200241126a200441036a2d00003a0000200241286a41046a200141186a2d00003a0000200220042f00013b01102002200141146a280000360228200141106a280200210b2001410c6a2802002106200141086a2802002103410421080c030b200241126a200441036a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a0000200220042f00013b01102002200141146a290000370328200141106a280200210b2001410c6a2802002106200141086a2802002103410021080c020b200141106a2802002206417f4c0d04200141086a28020021010240024020060d00410121030c010b2006102c2203450d060b20032001200610e9081a410221082006210b0c010b41032108200241126a200441036a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a0000200220042f00013b01102002200141146a290000370328200141106a280200210b2001410c6a2802002106200141086a28020021030b200020083a0004200020022f01103b0005200020022f003c3b0025200041106a200b3600002000410c6a2006360000200041086a2003360000200041146a2002290328370000200041076a200241106a41026a2d00003a00002000411c6a200241286a41086a290300370000200041246a200241286a41106a2d00003a0000200041276a2002413c6a41026a2d00003a0000200041023602000c010b200141046a2104410121080240024002400240024020012d00040e050104020300010b200241126a200441036a2d00003a0000200241286a41046a200141186a2d00003a0000200220042f00013b01102002200141146a280000360228200141106a280200210b2001410c6a2802002106200141086a2802002103410421080c030b200241126a200441036a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a0000200220042f00013b01102002200141146a290000370328200141106a280200210b2001410c6a2802002106200141086a2802002103410021080c020b200141106a2802002206417f4c0d03200141086a28020021080240024020060d00410121030c010b2006102c2203450d050b20032008200610e9081a410221082006210b0c010b41032108200241126a200441036a2d00003a0000200241286a41086a2001411c6a290000370300200241286a41106a200141246a2d00003a0000200220042f00013b01102002200141146a290000370328200141106a280200210b2001410c6a2802002106200141086a28020021030b200020083a0004200020022f01103b0005200041106a200b3600002000410c6a2006360000200041086a2003360000200041146a2002290328370000200041076a200241106a41026a2d00003a00002000411c6a200241286a41086a290300370000200041246a200241286a41106a2d00003a0000200141306a290300210c200141c0006a290300210d200141386a290300210e2001290328210f200041c8006a200141c8006a280200360200200041386a200e370300200041c0006a200d370300200041286a200f370300200041306a200c37030020004103360200200041276a2002413c6a41026a2d00003a0000200020022f003c3b00250b200241c0006a24000f0b1038000b1036000be22505027f017e027f017e037f230041b0046b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802000e1c0102030405060708090a0b0c0d0e0f101112131415161718191a1b00010b200241086a200141386a10ca01200241f8016a41286a200141306a290300370300200241f8016a41206a200141286a290300370300200241f8016a41186a200141206a290300370300200241f8016a41106a200141186a290300370300200241f8016a41086a200141106a2903003703002002200141086a2903003703f801200141f8016a2802002103200241f8016a41306a200241086a41c00110e9081a20014180026a2903002104200241086a200241f8016a41f00110e9081a200041086a200241086a41f00110e9081a20004180026a2004370300200041f8016a20033602002000411b3602000c1b0b200241f8016a200141086a10cb0120004100360200200041186a200241f8016a41106a290300370300200041106a200241f8016a41086a290300370300200041086a20022903f8013703000c1a0b200241f8016a200141046a10cc0120004101360200200041246a20024198026a2802003602002000411c6a20024190026a290300370200200041146a20024188026a2903003702002000410c6a20024180026a290300370200200020022903f8013702040c190b200241f8016a200141086a10cd01200041086a200241f8016a41a00210e9081a200041023602000c180b20004103360200200041086a200141086a2903003703000c170b41042103200141046a210502400240024002400240024002400240024020012d0004417f6a0e050102030405000b41e2a0cc00412841e89bc4001039000b200141086a2802002105410121030c040b41022103200241086a41026a200541036a2d00003a0000200241f8016a41086a200141146a29020037030020024188026a2001411c6a29020037030020024190026a200141246a2d00003a0000200220052f00013b010820022001410c6a2902003703f801200141086a2802002105200141286a28020021010c040b200141086a2802002105410321030c020b2002410a6a200541036a2d00003a0000200241f8016a41086a200141146a29020037030020024188026a2001411c6a29020037030020024190026a200141246a2d00003a0000200220052f00013b010820022001410c6a2902003703f80120012d00254100472106200141086a2802002105200141286a28020021010c030b200141086a2802002105410521030b0b0b200020033a0004200020022f01083b0005200020063a0025200020022f01ac043b0126200041086a20053602002000410c6a20022903f801370200200041286a2001360200200041076a2002410a6a2d00003a0000200041146a200241f8016a41086a2903003702002000411c6a20024188026a290300370200200041246a20024190026a2d00003a0000200041043602000c160b200241f8016a200141086a10ce01200041086a200241f8016a41e00010e9081a200041053602000c150b200241f8016a200141046a10cf01200041063602002000410c6a20024180026a280200360200200020022903f8013702040c140b200241f8016a200141086a10d001200041086a200241f8016a41d80010e9081a200041073602000c130b10d101000b02400240200128020422050d00410021030c010b200241f8016a41186a200141286a290000370300200241f8016a41106a200141206a29000037030020024180026a200141186a290000370300200241f8016a41286a200141386a290000370300200241f8016a41306a200141c0006a290000370300200241f8016a41386a200141c8006a290000370300200241f8016a41c8006a200141d8006a290000370300200241f8016a41d0006a200141e0006a290000370300200241f8016a41d8006a200141e8006a2900003703002002200141106a2900003703f8012002200141306a290000370398022002200141d0006a2900003703b802200241f8016a41f8006a20014188016a290000370300200241f8016a41f0006a20014180016a290000370300200241f8016a41e8006a200141f8006a290000370300200241f8016a4198016a200141a8016a290000370300200241f8016a4190016a200141a0016a290000370300200241f8016a4188016a20014198016a290000370300200241f8016a41b8016a200141c8016a290000370300200241f8016a41b0016a200141c0016a290000370300200241f8016a41a8016a200141b8016a2900003703002002200141f0006a2900003703d802200220014190016a2900003703f8022002200141b0016a290000370398032001410c6a2802002201417f4c0d130240024020010d00410121030c010b2001102c2203450d150b20032005200110e9081a200241086a200241f8016a41c00110e9081a0b200020033602042000410c6a2001360200200041086a2001360200200041106a200241086a41c00110e9081a200041093602000c110b200241f8016a200141086a10d201200041086a200241f8016a41980210e9081a2000410a3602000c100b200241f8016a200141046a10d301200041046a200241f8016a41e80010e9081a2000410b3602000c0f0b10d401000b200241f8016a200141086a10d5012000410d360200200041386a200241f8016a41306a290300370300200041306a200241f8016a41286a290300370300200041286a200241f8016a41206a290300370300200041206a200241f8016a41186a290300370300200041186a200241f8016a41106a290300370300200041106a200241f8016a41086a290300370300200041086a20022903f8013703000c0d0b200241f8016a200141086a10d6012000410e360200200041386a200241f8016a41306a290300370300200041306a200241f8016a41286a290300370300200041286a200241f8016a41206a290300370300200041206a200241f8016a41186a290300370300200041186a200241f8016a41106a290300370300200041106a200241f8016a41086a290300370300200041086a20022903f8013703000c0c0b200241f8016a200141086a10d6012000410f360200200041386a200241f8016a41306a290300370300200041306a200241f8016a41286a290300370300200041286a200241f8016a41206a290300370300200041206a200241f8016a41186a290300370300200041186a200241f8016a41106a290300370300200041106a200241f8016a41086a290300370300200041086a20022903f8013703000c0b0b200241f8016a200141086a10d70120004110360200200041286a200241f8016a41206a290300370300200041206a200241f8016a41186a290300370300200041186a200241f8016a41106a290300370300200041106a200241f8016a41086a290300370300200041086a20022903f8013703000c0a0b200141046a2103410721050240024002400240024002400240024020012d0004417f6a0e0701020304050607000b41e2a0cc00412841a4c3cb001039000b20024190026a200341196a29000037030020024188026a200341116a29000037030020024180026a200341096a290000370300200220032900013703f801410121050c050b20024190026a200341196a29000037030020024188026a200341116a29000037030020024180026a200341096a290000370300200220032900013703f801410221050c040b200241f8016a41186a200341196a290000370300200241f8016a41106a200341116a290000370300200241f8016a41086a200341096a290000370300200241086a41086a200341296a290000370300200241086a41106a200341316a290000370300200241086a41186a200341396a290000370300200220032900013703f8012002200341216a290000370308410321050c030b200241086a200141086a10c80120024183026a200241086a41086a280200360000200220022903083700fb01410421050c020b20024190026a200341196a29000037030020024188026a200341116a29000037030020024180026a200341096a290000370300200220032900013703f801410521050c010b20024190026a200341196a29000037030020024188026a200341116a29000037030020024180026a200341096a290000370300200220032900013703f801410621050b200020053a0004200020022903f80137000520002002290308370025200020022f00ac043b00452000410d6a200241f8016a41086a290300370000200041156a200241f8016a41106a2903003700002000411d6a200241f8016a41186a2903003700002000412d6a200241086a41086a290300370000200041356a200241086a41106a2903003700002000413d6a200241086a41186a290300370000200041c7006a200241ae046a2d00003a0000200041113602000c090b024002400240024002400240200141086a280200417f6a0e03010203000b41e2a0cc0041284184ccc2001039000b200141386a2903002104200141306a29030021074101210841012109024002400240024002402001410c6a2d00000e050104020300010b41042109200241f8016a41046a200141206a2d00003a000020022001411c6a2800003602f80120012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a28020021050c030b20024180026a200141246a290000370300200241f8016a41106a2001412c6a2d00003a000020022001411c6a2900003703f80120012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a2802002105410021090c020b200141186a2802002203417f4c0d0f200141106a28020021010240024020030d00410121050c010b2003102c2205450d110b20052001200310e9081a410221092003210a0c010b20024180026a200141246a290000370300200241f8016a41106a2001412c6a2d00003a000020022001411c6a2900003703f80120012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a2802002105410321090b200241086a41106a200241f8016a41106a2d00003a0000200241086a41086a200241f8016a41086a290300370300200241046a41026a200241ac046a41026a2d00003a0000200220022903f801370308200220022f00ac043b01040c030b2001410c6a28020022094108762106410221080c010b2001410c6a28020022094108762106410321080b0b200020022f01043b002d20004112360200200041386a2004370300200041306a2007370300200041186a200a360200200041146a2003360200200041106a2005360200200041086a20083602002000411c6a20022903083702002000410c6a2006410874200941ff017172360200200041246a200241086a41086a2903003702002000412c6a200241086a41106a2d00003a00002000412f6a200241066a2d00003a00000c080b200241f8016a200141086a10d801200041086a200241f8016a41f00010e9081a200041133602000c070b200241f8016a200141086a10d901200041086a200241f8016a41f80010e9081a200041143602000c060b024002400240024020012f0104417f6a0e03010200010b200241f8016a200141086a10c90120022902fc01210420022802f8012103410321010c020b200241f8016a200141086a10c90120022902fc01210420022802f8012103410121010c010b20012f0106210541b002102c2203450d08200241f8016a200141086a28020010da012003200241f8016a41b00210e9081a410221010b200020013b0104200041153602002000410c6a2004370200200041086a2003360200200041066a20053b01000c050b200241f8016a200141086a10db01200041086a200241f8016a41a80210e9081a200041163602000c040b200241f8016a200141046a10dc01200041046a200241f8016a41c80010e9081a200041173602000c030b200241f8016a200141086a10dd01200041086a200241f8016a41c80010e9081a200041183602000c020b200241f8016a200141086a10de0120004119360200200041c0006a200241f8016a41386a290300370300200041386a200241f8016a41306a290300370300200041306a200241f8016a41286a290300370300200041286a200241f8016a41206a290300370300200041206a200241f8016a41186a290300370300200041186a200241f8016a41106a290300370300200041106a200241f8016a41086a290300370300200041086a20022903f8013703000c010b200241f8016a200141086a10df012000411a360200200041c0006a200241f8016a41386a290300370300200041386a200241f8016a41306a290300370300200041306a200241f8016a41286a290300370300200041286a200241f8016a41206a290300370300200041206a200241f8016a41186a290300370300200041186a200241f8016a41106a290300370300200041106a200241f8016a41086a290300370300200041086a20022903f8013703000b200241b0046a24000f0b1038000b1036000b8b6f04027f017e3c7f027e230041c0036b22022400024002400240024002400240024002400240024002400240024002400240024002400240024020012d0000417f6a0e0f0102030405060708090a0b0c0d0e0f000b41e2a0cc00412841f89bc4001039000b200041013a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000c0e0b2001410c6a2802002203ad42c8007e2204422088a70d0e2004a72205417f4c0d0e0240024020050d00200541c8006e2106410421070c010b200141046a28020021082005102c2207450d10200541c8006e2106200541c800490d00200341ffffffff017121094100210a2006210b03402009450d014100210c4100210d0240024002400240024002402008200a6a22052d00000e06050102030400050b200241f0026a41026a200541036a2d00003a000020024188036a41086a200541186a29000037030020024188036a41106a200541206a2d00003a00002002200541016a2f00003b01f0022002200541106a290000370388032005410c6a280000210e200541086a280000210f200541046a28000021104105210d0c040b2005410c6a280200220e417f4c0d14200541046a280200210f4101210d410121100240200e450d00200e102c2210450d160b2010200f200e10e9081a200e210f0c030b4102210d200241f0026a41026a200541036a2d00003a000020024188036a41086a200541186a29000037030020024188036a41106a200541206a2d00003a00002002200541016a2f00003b01f0022002200541106a290000370388032005410c6a280000210e200541086a280000210f200541046a28000021100c020b4103210d200241f0026a41026a200541036a2d00003a000020024188036a41086a200541186a29000037030020024188036a41106a200541206a2d00003a00002002200541016a2f00003b01f0022002200541106a290000370388032005410c6a280000210e200541086a280000210f200541046a28000021100c010b200241f0026a41026a200541036a2d00003a000020024188036a41086a200541186a29000037030020024188036a41106a200541206a2d00003a00002002200541016a2f00003b01f0022002200541106a290000370388032005410c6a280000210e200541086a280000210f4104210d200541046a28000021100b024002400240024002400240200541246a2d00000e06050102030400050b200241d8026a41026a200541276a2d00003a0000200241a0036a41086a2005413c6a290000370300200241a0036a41106a200541c4006a2d00003a00002002200541256a2f00003b01d8022002200541346a2900003703a003200541306a28000021112005412c6a2800002112200541286a28000021134105210c0c040b200541306a2802002212417f4c0d14200541286a28020021054101210c4101211302402012450d002012102c2213450d160b20132005201210e9081a201221110c030b4102210c200241d8026a41026a200541276a2d00003a0000200241a0036a41086a2005413c6a290000370300200241a0036a41106a200541c4006a2d00003a00002002200541256a2f00003b01d8022002200541346a2900003703a003200541306a28000021112005412c6a2800002112200541286a28000021130c020b200241d8026a41026a200541276a2d00003a0000200241a0036a41086a2005413c6a290000370300200241a0036a41106a200541c4006a2d00003a00002002200541256a2f00003b01d8022002200541346a2900003703a003200541306a28000021112005412c6a2800002112200541286a28000021134103210c0c010b200241d8026a41026a200541276a2d00003a0000200241a0036a41086a2005413c6a290000370300200241a0036a41106a200541c4006a2d00003a00002002200541256a2f00003b01d8022002200541346a2900003703a003200541306a28000021112005412c6a2800002112200541286a28000021134104210c0b2007200a6a2205200d3a0000200541016a20022f01f0023b0000200541036a200241f0026a41026a2d00003a00002005410c6a200e360200200541086a200f360200200541046a2010360200200541106a200229038803370200200541186a20024188036a41086a290300370200200541206a20024188036a41106a280200360200200541246a200c3a0000200541256a20022f01d8023b0000200541276a200241d8026a41026a2d00003a0000200541306a20113602002005412c6a2012360200200541286a2013360200200541346a20022903a0033702002005413c6a200241a0036a41086a290300370200200541c4006a200241a0036a41106a2802003602002009417f6a2109200a41c8006a210a200b417f6a220b0d000b0b4100211441002115024002400240024002400240200141106a2d00000e06050102030400050b200241f4016a200141136a2d00003a0000200241e8016a200141286a290000370300200241e0016a41106a200141306a2d00003a00002002200141116a2f00003b01f2012002200141206a2900003703e0012001411c6a2800002105200141186a2800002116200141146a2800002110410521150c040b2001411c6a2802002205417f4c0d12200141146a280200210a410121154101211002402005450d002005102c2210450d140b2010200a200510e9081a200521160c030b41022115200241f2016a41026a200141136a2d00003a0000200241e8016a200141286a290000370300200241e0016a41106a200141306a2d00003a00002002200141116a2f00003b01f2012002200141206a2900003703e0012001411c6a2800002105200141186a2800002116200141146a28000021100c020b200241f4016a200141136a2d00003a0000200241e8016a200141286a290000370300200241e0016a41106a200141306a2d00003a00002002200141116a2f00003b01f2012002200141206a2900003703e0012001411c6a2800002105200141186a2800002116200141146a2800002110410321150c010b200241f4016a200141136a2d00003a0000200241e8016a200141286a290000370300200241e0016a41106a200141306a2d00003a00002002200141116a2f00003b01f2012002200141206a2900003703e0012001411c6a2800002105200141186a2800002116200141146a2800002110410421150b024002400240024002400240200141346a2d00000e06050102030400050b2002418c026a200141376a2d00003a000020024180026a200141cc006a29000037030020024188026a200141d4006a2d00003a00002002200141356a2f00003b018a022002200141c4006a2900003703f801200141c0006a280000210a2001413c6a2800002117200141386a2800002113410521140c040b200141c0006a280200220a417f4c0d12200141386a280200210941012114410121130240200a450d00200a102c2213450d140b20132009200a10e9081a200a21170c030b410221142002418a026a41026a200141376a2d00003a000020024180026a200141cc006a29000037030020024188026a200141d4006a2d00003a00002002200141356a2f00003b018a022002200141c4006a2900003703f801200141c0006a280000210a2001413c6a2800002117200141386a28000021130c020b2002418c026a200141376a2d00003a000020024180026a200141cc006a29000037030020024188026a200141d4006a2d00003a00002002200141356a2f00003b018a022002200141c4006a2900003703f801200141c0006a280000210a2001413c6a2800002117200141386a2800002113410321140c010b2002418c026a200141376a2d00003a000020024180026a200141cc006a29000037030020024188026a200141d4006a2d00003a00002002200141356a2f00003b018a022002200141c4006a2900003703f801200141c0006a280000210a2001413c6a2800002117200141386a2800002113410421140b4100211841002119024002400240024002400240200141d8006a2d00000e06050102030400050b200241a4026a200141db006a2d00003a000020024198026a200141f0006a290000370300200241a0026a200141f8006a2d00003a00002002200141d9006a2f00003b01a2022002200141e8006a29000037039002200141e4006a2800002109200141e0006a280000211a200141dc006a280000210b410521190c040b200141e4006a2802002209417f4c0d12200141dc006a280200210c410121194101210b02402009450d002009102c220b450d140b200b200c200910e9081a2009211a0c030b41022119200241a2026a41026a200141db006a2d00003a000020024198026a200141f0006a290000370300200241a0026a200141f8006a2d00003a00002002200141d9006a2f00003b01a2022002200141e8006a29000037039002200141e4006a2800002109200141e0006a280000211a200141dc006a280000210b0c020b200241a4026a200141db006a2d00003a000020024198026a200141f0006a290000370300200241a0026a200141f8006a2d00003a00002002200141d9006a2f00003b01a2022002200141e8006a29000037039002200141e4006a2800002109200141e0006a280000211a200141dc006a280000210b410321190c010b200241a4026a200141db006a2d00003a000020024198026a200141f0006a290000370300200241a0026a200141f8006a2d00003a00002002200141d9006a2f00003b01a2022002200141e8006a29000037039002200141e4006a2800002109200141e0006a280000211a200141dc006a280000210b410421190b024002400240024002400240200141fc006a2d00000e06050102030400050b200241bc026a200141ff006a2d00003a0000200241b0026a20014194016a290000370300200241b8026a2001419c016a2d00003a00002002200141fd006a2f00003b01ba0220022001418c016a2900003703a80220014188016a280000211b20014184016a280000210c20014180016a2800002111410521180c040b20014188016a280200220c417f4c0d1220014180016a280200210d41012118410121110240200c450d00200c102c2211450d140b2011200d200c10e9081a200c211b0c030b41022118200241ba026a41026a200141ff006a2d00003a0000200241b0026a20014194016a290000370300200241b8026a2001419c016a2d00003a00002002200141fd006a2f00003b01ba0220022001418c016a2900003703a80220014188016a280000211b20014184016a280000210c20014180016a28000021110c020b200241bc026a200141ff006a2d00003a0000200241b0026a20014194016a290000370300200241b8026a2001419c016a2d00003a00002002200141fd006a2f00003b01ba0220022001418c016a2900003703a80220014188016a280000211b20014184016a280000210c20014180016a2800002111410321180c010b200241bc026a200141ff006a2d00003a0000200241b0026a20014194016a290000370300200241b8026a2001419c016a2d00003a00002002200141fd006a2f00003b01ba0220022001418c016a2900003703a80220014188016a280000211b20014184016a280000210c20014180016a2800002111410421180b4100211c4100211d024002400240024002400240200141a0016a2d00000e06050102030400050b200241d4026a200141a3016a2d00003a0000200241c8026a200141b8016a290000370300200241d0026a200141c0016a2d00003a00002002200141a1016a2f00003b01d2022002200141b0016a2900003703c002200141ac016a280000211e200141a8016a280000210d200141a4016a280000210f4105211d0c040b200141ac016a280200220d417f4c0d12200141a4016a280200210e4101211d4101210f0240200d450d00200d102c220f450d140b200f200e200d10e9081a200d211e0c030b4102211d200241d2026a41026a200141a3016a2d00003a0000200241c8026a200141b8016a290000370300200241d0026a200141c0016a2d00003a00002002200141a1016a2f00003b01d2022002200141b0016a2900003703c002200141ac016a280000211e200141a8016a280000210d200141a4016a280000210f0c020b200241d4026a200141a3016a2d00003a0000200241c8026a200141b8016a290000370300200241d0026a200141c0016a2d00003a00002002200141a1016a2f00003b01d2022002200141b0016a2900003703c002200141ac016a280000211e200141a8016a280000210d200141a4016a280000210f4103211d0c010b200241d4026a200141a3016a2d00003a0000200241c8026a200141b8016a290000370300200241d0026a200141c0016a2d00003a00002002200141a1016a2f00003b01d2022002200141b0016a2900003703c002200141ac016a280000211e200141a8016a280000210d200141a4016a280000210f4104211d0b02402001418c026a2d00004101470d00200241b0036a2001419d026a280000360200200241a8036a20014195026a29000037030020022001418d026a2900003703a0034101211c0b4100211f41002120024002400240024002400240200141c4016a2d00000e06050102030400050b200241ec026a200141c7016a2d00003a0000200241e0026a200141dc016a290000370300200241e8026a200141e4016a2d00003a00002002200141c5016a2f00003b01ea022002200141d4016a2900003703d802200141d0016a2800002121200141cc016a280000210e200141c8016a2800002108410521200c040b200141d0016a280200220e417f4c0d12200141c8016a280200211241012120410121080240200e450d00200e102c2208450d140b20082012200e10e9081a200e21210c030b41022120200241ea026a41026a200141c7016a2d00003a0000200241e0026a200141dc016a290000370300200241e8026a200141e4016a2d00003a00002002200141c5016a2f00003b01ea022002200141d4016a2900003703d802200141d0016a2800002121200141cc016a280000210e200141c8016a28000021080c020b200241ec026a200141c7016a2d00003a0000200241e0026a200141dc016a290000370300200241e8026a200141e4016a2d00003a00002002200141c5016a2f00003b01ea022002200141d4016a2900003703d802200141d0016a2800002121200141cc016a280000210e200141c8016a2800002108410321200c010b200241ec026a200141c7016a2d00003a0000200241e0026a200141dc016a290000370300200241e8026a200141e4016a2d00003a00002002200141c5016a2f00003b01ea022002200141d4016a2900003703d802200141d0016a2800002121200141cc016a280000210e200141c8016a2800002108410421200b024002400240024002400240200141e8016a2d00000e06050102030400050b20024186036a200141eb016a2d00003a0000200241f8026a20014180026a29000037030020024180036a20014188026a2d00003a00002002200141e9016a2f00003b0184032002200141f8016a2900003703f002200141f4016a2800002122200141f0016a2800002112200141ec016a28000021234105211f0c040b200141f4016a2802002212417f4c0d12200141ec016a28020021014101211f4101212302402012450d002012102c2223450d140b20232001201210e9081a201221220c030b4102211f20024184036a41026a200141eb016a2d00003a0000200241f8026a20014180026a29000037030020024180036a20014188026a2d00003a00002002200141e9016a2f00003b0184032002200141f8016a2900003703f002200141f4016a2800002122200141f0016a2800002112200141ec016a28000021230c020b20024186036a200141eb016a2d00003a0000200241f8026a20014180026a29000037030020024180036a20014188026a2d00003a00002002200141e9016a2f00003b0184032002200141f8016a2900003703f002200141f4016a2800002122200141f0016a2800002112200141ec016a28000021234103211f0c010b20024186036a200141eb016a2d00003a0000200241f8026a20014180026a29000037030020024180036a20014188026a2d00003a00002002200141e9016a2f00003b0184032002200141f8016a2900003703f002200141f4016a2800002122200141f0016a2800002112200141ec016a28000021234104211f0b200241da016a41026a2201200241f2016a41026a2d00003a0000200241c8016a41086a2224200241e0016a41086a290300370300200241c8016a41106a2225200241e0016a41106a2d00003a0000200241c4016a41026a2226200241dd016a41026a2d00003a0000200241c0016a41026a22272002418a026a41026a2d00003a0000200220022f01f2013b01da01200220022903e0013703c801200220022f00dd013b01c401200220022f018a023b01c001200241a8016a41106a2228200241f8016a41106a2d00003a0000200241a8016a41086a2229200241f8016a41086a290300370300200241a4016a41026a222a200241f5016a41026a2d00003a0000200241a0016a41026a222b200241a2026a41026a2d00003a000020024188016a41086a222c20024190026a41086a29030037030020024188016a41106a222d20024190026a41106a2d00003a0000200220022903f8013703a801200220022f00f5013b01a401200220022f01a2023b01a00120022002290390023703880120024184016a41026a222e2002418d026a41026a2d00003a000020024180016a41026a222f200241ba026a41026a2d00003a0000200241e8006a41106a2230200241a8026a41106a2d00003a0000200241e8006a41086a2231200241a8026a41086a290300370300200241e4006a41026a2232200241a5026a41026a2d00003a0000200220022f008d023b018401200220022f01ba023b018001200220022903a802370368200220022f00a5023b0164200241e0006a41026a2233200241d2026a41026a2d00003a0000200220022f01d2023b0160200241c8006a41106a2234200241c0026a41106a2d00003a0000200241c8006a41086a2235200241c0026a41086a290300370300200220022903c002370348200241c4006a41026a2236200241bd026a41026a2d00003a0000200220022f00bd023b014420024188036a41106a2237200241a0036a41106a28020036020020024188036a41086a2238200241a0036a41086a290300370300200220022903a00337038803200241c0006a41026a2239200241ea026a41026a2d00003a0000200220022f01ea023b0140200241286a41106a223a200241d8026a41106a2d00003a0000200241286a41086a223b200241d8026a41086a290300370300200220022903d802370328200241246a41026a223c200241d5026a41026a2d00003a0000200220022f00d5023b0124200241206a41026a223d20024184036a41026a2d00003a0000200220022f0184033b0120200241086a41106a223e200241f0026a41106a2d00003a0000200241086a41086a223f200241f0026a41086a290300370300200220022903f002370308200241046a41026a2240200241ed026a41026a2d00003a0000200220022f00ed023b0104200041106a20153a00002000410c6a2003360200200041086a2006360200200041046a20073602002000411c6a2005360000200041186a2016360000200041146a2010360000200041116a20022f01da013b0000200041136a20012d00003a0000200041206a20022903c801370000200041286a2024290300370000200041306a20252d00003a0000200041316a20022f01c4013b0000200041336a20262d00003a0000200041346a20143a0000200041376a20272d00003a0000200041356a20022f01c0013b0000200041c0006a200a3600002000413c6a2017360000200041386a2013360000200041d4006a20282d00003a0000200041cc006a2029290300370000200041c4006a20022903a801370000200041d7006a202a2d00003a0000200041d5006a20022f01a4013b0000200041d8006a20193a0000200041db006a202b2d00003a0000200041d9006a20022f01a0013b0000200041e4006a2009360000200041e0006a201a360000200041dc006a200b360000200041f8006a202d2d00003a0000200041f0006a202c290300370000200041e8006a200229038801370000200041fb006a202e2d00003a0000200041f9006a20022f0184013b0000200041fc006a20183a0000200041ff006a202f2d00003a0000200041fd006a20022f0180013b000020004188016a201b36000020004184016a200c36000020004180016a20113600002000419c016a20302d00003a000020004194016a20312903003700002000418c016a20022903683700002000419f016a20322d00003a00002000419d016a20022f01643b0000200041a0016a201d3a0000200041a3016a20332d00003a0000200041a1016a20022f01603b0000200041ac016a201e360000200041a8016a200d360000200041a4016a200f360000200041c0016a20342d00003a0000200041b8016a2035290300370000200041b0016a2002290348370000200041c3016a20362d00003a0000200041c1016a20022f01443b0000200041c4016a20203a0000200041c7016a20392d00003a0000200041c5016a20022f01403b0000200041d0016a2021360000200041cc016a200e360000200041c8016a2008360000200041e4016a203a2d00003a0000200041dc016a203b290300370000200041d4016a2002290328370000200041e7016a203c2d00003a0000200041e5016a20022f01243b0000200041e8016a201f3a0000200041eb016a203d2d00003a0000200041e9016a20022f01203b0000200041f4016a2022360000200041f0016a2012360000200041ec016a202336000020004188026a203e2d00003a000020004180026a203f290300370000200041f8016a20022903083700002000418b026a20402d00003a000020004189026a20022f01043b00002000418c026a201c3a00002000419d026a203728020036000020004195026a20382903003700002000418d026a200229038803370000200041a3026a200241a0036a41026a2d00003a0000200041a1026a20022f00a0033b0000200041023a00000c0d0b2001410c6a2802002214ad42c4007e2204422088a70d0d2004a72211417f4c0d0d0240024020110d00201141c4006e2123410421070c010b200141046a28020021082011102c2207450d0f201141c4006e2123201141c400490d004100210a200241f2026a210f200821052023210e03402011200a460d01200241a0036a41086a2212200541086a290200370300200241a0036a41106a2210200541106a290200370300200241a0036a41186a2213200541186a290200370300200220052902003703a0034100210902400240024002400240024020052d00200e06050102030400050b200f2008200a6a220141236a2d00003a000020024188036a41086a200141386a29000037030020024188036a41106a200141c0006a2d00003a00002002200141216a2f00003b01f0022002200141306a290000370388032001412c6a280000210b200141286a280000210c200141246a280000210d410521090c040b2008200a6a2201412c6a280200220c417f4c0d13200141246a2802002101410121094101210d0240200c450d00200c102c220d450d150b200d2001200c10e9081a200c210b0c030b41022109200241f0026a41026a2008200a6a220141236a2d00003a000020024188036a41086a200141386a29000037030020024188036a41106a200141c0006a2d00003a00002002200141216a2f00003b01f0022002200141306a290000370388032001412c6a280000210b200141286a280000210c200141246a280000210d0c020b200f2008200a6a220141236a2d00003a000020024188036a41086a200141386a29000037030020024188036a41106a200141c0006a2d00003a00002002200141216a2f00003b01f0022002200141306a290000370388032001412c6a280000210b200141286a280000210c200141246a280000210d410321090c010b200f2008200a6a220141236a2d00003a000020024188036a41086a200141386a29000037030020024188036a41106a200141c0006a2d00003a00002002200141216a2f00003b01f0022002200141306a290000370388032001412c6a280000210b200141286a280000210c200141246a280000210d410421090b200541c4006a21052007200a6a220120022903a003370200200141186a2013290300370200200141106a2010290300370200200141086a2012290300370200200141206a20093a0000200141216a20022f01f0023b0000200141236a200f2d00003a00002001412c6a200b360200200141286a200c360200200141246a200d360200200141306a200229038803370200200141386a20024188036a41086a290300370200200141c0006a20024188036a41106a280200360200200a41c4006a210a200e417f6a220e0d000b0b200041033a00002000410c6a2014360200200041086a2023360200200041046a20073602000c0c0b200041043a00000c0b0b200041053a0000200041106a200141106a290300370300200041086a200141086a290300370300200041046a200141046a2802003602000c0a0b200041063a0000200041046a200141046a2802003602000c090b200041073a0000200041106a200141106a290300370300200041086a200141086a290300370300200041046a200141046a2802003602000c080b200041083a000020002001290001370001200041246a200141246a280200360200200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a2900003700000c070b200041093a0000200041086a200141086a290300370300200041046a200141046a2802003602000c060b200141046a280200210d4101210902400240024002400240200141086a2d00000e050104020300010b2002418a036a2001410b6a2d00003a0000200241a0036a41046a2001411c6a2d00003a00002002200141096a2f00003b0188032002200141186a2800003602a003200141146a280000210c200141106a28000021052001410c6a280000210a410421090c030b2002418a036a2001410b6a2d00003a0000200241a0036a41086a200141206a290000370300200241a0036a41106a200141286a2d00003a00002002200141096a2f00003b0188032002200141186a2900003703a003200141146a280000210c200141106a28000021052001410c6a280000210a410021090c020b200141146a2802002205417f4c0d082001410c6a28020021090240024020050d004101210a0c010b2005102c220a450d0a0b200a2009200510e9081a410221092005210c0c010b2002418a036a2001410b6a2d00003a0000200241a0036a41086a200141206a290000370300200241a0036a41106a200141286a2d00003a00002002200141096a2f00003b0188032002200141186a2900003703a003200141146a280000210c200141106a28000021052001410c6a280000210a410321090b200141c0006a2903002141200141386a290300214242062104024002400240024002400240024020012802300e0700010203040506000b420021040c050b420121040c040b420221040c030b420321040c020b420421040c010b420521040b200041086a20093a0000200041046a200d360200200041096a20022f0188033b0000200041146a200c360000200041106a20053600002000410c6a200a360000200041186a20022903a003370000200041296a20022f00f0023b00002000410b6a20024188036a41026a2d00003a0000200041206a200241a0036a41086a290300370000200041286a200241a0036a41106a2d00003a00002000412b6a200241f0026a41026a2d00003a0000200041c0006a2041370300200041386a2042370300200041306a20043703002000410a3a00000c050b4101210902400240024002400240200141046a2d00000e050104020300010b2002418a036a200141076a2d00003a0000200241a0036a41046a200141186a2d00003a00002002200141056a2f00003b0188032002200141146a2800003602a003200141106a280000210c2001410c6a2800002105200141086a280000210a410421090c030b2002418a036a200141076a2d00003a0000200241a0036a41086a2001411c6a290000370300200241a0036a41106a200141246a2d00003a00002002200141056a2f00003b0188032002200141146a2900003703a003200141106a280000210c2001410c6a2800002105200141086a280000210a410021090c020b200141106a2802002205417f4c0d07200141086a28020021010240024020050d004101210a0c010b2005102c220a450d090b200a2001200510e9081a410221092005210c0c010b2002418a036a200141076a2d00003a0000200241a0036a41086a2001411c6a290000370300200241a0036a41106a200141246a2d00003a00002002200141056a2f00003b0188032002200141146a2900003703a003200141106a280000210c2001410c6a2800002105200141086a280000210a410321090b200041046a20093a0000200041056a20022f0188033b0000200041106a200c3600002000410c6a2005360000200041086a200a360000200041146a20022903a003370000200041256a20022f00f0023b0000200041076a20024188036a41026a2d00003a00002000411c6a200241a0036a41086a290300370000200041246a200241a0036a41106a2d00003a0000200041276a200241f0026a41026a2d00003a00002000410b3a00000c040b4101211202400240024002400240200141046a2d00000e050104020300010b200241c2026a200141076a2d00003a000020024188036a41046a200141186a2d00003a00002002200141056a2f00003b01c0022002200141146a28000036028803200141106a28000021102001410c6a2800002105200141086a280000210c410421120c030b200241c2026a200141076a2d00003a000020024188036a41086a2001411c6a29000037030020024188036a41106a200141246a2d00003a00002002200141056a2f00003b01c0022002200141146a29000037038803200141106a28000021102001410c6a2800002105200141086a280000210c410021120c020b200141106a2802002205417f4c0d06200141086a280200210a0240024020050d004101210c0c010b2005102c220c450d080b200c200a200510e9081a41022112200521100c010b200241c2026a200141076a2d00003a000020024188036a41086a2001411c6a29000037030020024188036a41106a200141246a2d00003a00002002200141056a2f00003b01c0022002200141146a29000037038803200141106a28000021102001410c6a2800002105200141086a280000210c410321120b4100210d02400240024002400240024020012d00280e06050102030400050b200241f2026a2001412b6a2d00003a0000200241a8036a200141c0006a290000370300200241b0036a200141c8006a2d00003a00002002200141296a2f00003b01f0022002200141386a2900003703a003200141346a280000210e200141306a280000210a2001412c6a28000021094105210d0c040b200141346a280200220a417f4c0d082001412c6a28020021014101210d410121090240200a450d00200a102c2209450d0a0b20092001200a10e9081a200a210e0c030b4102210d200241f0026a41026a2001412b6a2d00003a0000200241a8036a200141c0006a290000370300200241b0036a200141c8006a2d00003a00002002200141296a2f00003b01f0022002200141386a2900003703a003200141346a280000210e200141306a280000210a2001412c6a28000021090c020b200241f2026a2001412b6a2d00003a0000200241a8036a200141c0006a290000370300200241b0036a200141c8006a2d00003a00002002200141296a2f00003b01f0022002200141386a2900003703a003200141346a280000210e200141306a280000210a2001412c6a28000021094103210d0c010b200241f2026a2001412b6a2d00003a0000200241a8036a200141c0006a290000370300200241b0036a200141c8006a2d00003a00002002200141296a2f00003b01f0022002200141386a2900003703a003200141346a280000210e200141306a280000210a2001412c6a28000021094104210d0b200041046a20123a0000200041056a20022f01c0023b0000200041106a20103600002000410c6a2005360000200041086a200c360000200041146a200229038803370000200041256a20022f00a8023b0000200041076a200241c0026a41026a2d00003a00002000411c6a20024188036a41086a290300370000200041246a20024188036a41106a2d00003a0000200041276a200241a8026a41026a2d00003a0000200041286a200d3a00002000412c6a2009360000200041306a200a360000200041346a200e360000200041296a20022f01f0023b00002000412b6a200241f0026a41026a2d00003a0000200041386a20022903a003370000200041c0006a200241a0036a41086a290300370000200041c8006a200241a0036a41106a2d00003a0000200041c9006a20022f00d8023b0000200041cb006a200241d8026a41026a2d00003a00002000410c3a00000c030b4101211202400240024002400240200141046a2d00000e050104020300010b200241c2026a200141076a2d00003a000020024188036a41046a200141186a2d00003a00002002200141056a2f00003b01c0022002200141146a28000036028803200141106a28000021102001410c6a2800002105200141086a280000210c410421120c030b200241c2026a200141076a2d00003a000020024188036a41086a2001411c6a29000037030020024188036a41106a200141246a2d00003a00002002200141056a2f00003b01c0022002200141146a29000037038803200141106a28000021102001410c6a2800002105200141086a280000210c410021120c020b200141106a2802002205417f4c0d05200141086a280200210a0240024020050d004101210c0c010b2005102c220c450d070b200c200a200510e9081a41022112200521100c010b200241c2026a200141076a2d00003a000020024188036a41086a2001411c6a29000037030020024188036a41106a200141246a2d00003a00002002200141056a2f00003b01c0022002200141146a29000037038803200141106a28000021102001410c6a2800002105200141086a280000210c410321120b4100210d02400240024002400240024020012d00280e06050102030400050b200241f2026a2001412b6a2d00003a0000200241a8036a200141c0006a290000370300200241b0036a200141c8006a2d00003a00002002200141296a2f00003b01f0022002200141386a2900003703a003200141346a280000210e200141306a280000210a2001412c6a28000021094105210d0c040b200141346a280200220a417f4c0d072001412c6a28020021014101210d410121090240200a450d00200a102c2209450d090b20092001200a10e9081a200a210e0c030b4102210d200241f0026a41026a2001412b6a2d00003a0000200241a8036a200141c0006a290000370300200241b0036a200141c8006a2d00003a00002002200141296a2f00003b01f0022002200141386a2900003703a003200141346a280000210e200141306a280000210a2001412c6a28000021090c020b200241f2026a2001412b6a2d00003a0000200241a8036a200141c0006a290000370300200241b0036a200141c8006a2d00003a00002002200141296a2f00003b01f0022002200141386a2900003703a003200141346a280000210e200141306a280000210a2001412c6a28000021094103210d0c010b200241f2026a2001412b6a2d00003a0000200241a8036a200141c0006a290000370300200241b0036a200141c8006a2d00003a00002002200141296a2f00003b01f0022002200141386a2900003703a003200141346a280000210e200141306a280000210a2001412c6a28000021094104210d0b200041046a20123a0000200041056a20022f01c0023b0000200041106a20103600002000410c6a2005360000200041086a200c360000200041146a200229038803370000200041256a20022f00a8023b0000200041076a200241c0026a41026a2d00003a00002000411c6a20024188036a41086a290300370000200041246a20024188036a41106a2d00003a0000200041276a200241a8026a41026a2d00003a0000200041286a200d3a00002000412c6a2009360000200041306a200a360000200041346a200e360000200041296a20022f01f0023b00002000412b6a200241f0026a41026a2d00003a0000200041386a20022903a003370000200041c0006a200241a0036a41086a290300370000200041c8006a200241a0036a41106a2d00003a0000200041c9006a20022f00d8023b0000200041cb006a200241d8026a41026a2d00003a00002000410d3a00000c020b4101210902400240024002400240200141046a2d00000e050104020300010b2002418a036a200141076a2d00003a0000200241a0036a41046a200141186a2d00003a00002002200141056a2f00003b0188032002200141146a2800003602a003200141106a28000021052001410c6a280000210c200141086a280000210a410421090c030b2002418a036a200141076a2d00003a0000200241a0036a41086a2001411c6a290000370300200241a0036a41106a200141246a2d00003a00002002200141056a2f00003b0188032002200141146a2900003703a003200141106a28000021052001410c6a280000210c200141086a280000210a410021090c020b200141106a2802002205417f4c0d04200141086a28020021010240024020050d004101210a0c010b2005102c220a450d060b200a2001200510e9081a410221092005210c0c010b2002418a036a200141076a2d00003a0000200241a0036a41086a2001411c6a290000370300200241a0036a41106a200141246a2d00003a00002002200141056a2f00003b0188032002200141146a2900003703a003200141106a28000021052001410c6a280000210c200141086a280000210a410321090b200041046a20093a0000200041056a20022f0188033b0000200041106a20053600002000410c6a200c360000200041086a200a360000200041146a20022903a003370000200041256a20022f00f0023b0000200041076a20024188036a41026a2d00003a00002000411c6a200241a0036a41086a290300370000200041246a200241a0036a41106a2d00003a0000200041276a200241f0026a41026a2d00003a00002000410e3a00000c010b2000410f3a00000b200241c0036a24000f0b1038000b1036000bd90a01097f230041f0026b2202240002400240024002400240024002400240024002400240024020012d0000417f6a0e0a01020304050607080900010b200241186a2203200141196a290000370300200241106a2204200141116a290000370300200241086a2205200141096a29000037030020022001290001370300200241206a41186a2206200141396a290000370300200241206a41106a2207200141316a290000370300200241206a41086a2208200141296a2900003703002002200141216a290000370320200141c1006a2d0000210941b002102c220a450d0a200241c0006a200141c4006a28020010bb03200a200241c0006a41b00210e9082101200041196a2003290300370000200041116a2004290300370000200041096a200529030037000020002002290300370001200041216a2002290320370000200041296a2008290300370000200041316a2007290300370000200041396a2006290300370000200041c4006a2001360200200041c1006a20093a00002000410a3a00000c090b200241386a2203200141196a290000370300200241306a2204200141116a290000370300200241286a2205200141096a29000037030020022001290001370320200141216a2d0000210641b002102c2207450d09200241c0006a200141246a28020010bb032007200241c0006a41b00210e9082101200041196a2003290300370000200041116a2004290300370000200041096a200529030037000020002002290320370001200041246a2001360200200041216a20063a0000200041013a00000c080b200041023a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a280200360200200041216a200141216a2d00003a00000c070b200041033a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a280200360200200041216a200141216a2d00003a00000c060b200041043a00000c050b200041053a0000200020012d00013a0001200041046a200141046a280200360200200041026a200141026a2f01003b01000c040b200041063a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200041246a200141246a290200370200200041226a200141226a2f01003b0100200041216a200141216a2d00003a00000c030b200041073a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a290000370000200041216a200141216a290000370000200041296a200141296a290000370000200041316a200141316a290000370000200041396a200141396a2900003700000c020b200041083a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a290000370000200041216a200141216a290000370000200041296a200141296a290000370000200041316a200141316a290000370000200041396a200141396a2900003700000c010b200041093a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a290000370000200041216a200141216a290000370000200041296a200141296a290000370000200041316a200141316a290000370000200041396a200141396a2900003700000b200241f0026a24000f0b1036000bf14107037f017e057f017e027f027e067f230041b0056b220224000240024002400240024002400240024002400240024020012d0000417f6a0e0401020304000b41e2a0cc00412841889cc4001039000b200241086a200141046a10c80141b002102c2203450d03411021040240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200141106a28020022012802000e1c0102030405060708090a0b0c0d0e0f101112131415161718191a1b00010b20024180036a200141386a10ca01200141086a2903002105200241d0016a41086a200141246a2d00003a000020022001411c6a2902003703d001200220012f01263b01ce01200141186a2802002106200141146a2802002107200141106a2802002108200141286a28020021092001412c6a280200210a200141306a290300210b200141f8016a280200210c20012d0025210d200229038003210e200229038803210f200241186a20024180036a41106a41b00110e9081a2005a721102005422088a7211120014184026a280200211220014180026a2802002101411b21040c1c0b20024180036a200141086a10cb01200220024194036a2802003602d001200229038003220f422088a7211120024190036a28020021062002418c036a280200210720024180036a41086a2802002108200fa72110410021040c1c0b20024180036a200141046a10cc01200241d8016a200241a0036a2d00003a0000200220024198036a2903003703d0012002200241a2036a2f01003b01ce0120022f00810320022d008303411074722113200229028403220f422088a7211120024194036a280200210620024180036a41106a28020021072002418c036a2802002108200241a1036a2d0000210d20022d0080032114200fa72110410121040c230b20024180036a200141086a10cd01200241d0016a41086a2002419c036a2d00003a0000200220024194036a2902003703d001200220022f019e033b01ce01200241b0036a290300210e200241a8036a290300210b20024180036a41106a28020021062002418c036a280200210720024180036a41086a2802002108200241a0036a2802002109200241a4036a280200210a200241b8036a290300210f20022d009d03210d2002290380032105200241186a200241c0036a41b00110e9081a200241e0016a41086a20024188056a290300370300200241e0016a41106a20024190056a290300370300200241f8016a20024198056a290300370300200220024180056a2903003703e0012005422088a72111200241fc046a2802002112200241f8046a2802002101200241f4046a2802002115200241f0046a280200210c2005a72110410221040c190b200141086a290300220fa72110200f422088a72111410321040c190b02400240024002400240024002400240024020012d0004417f6a0e050102030405000b41e2a0cc00412841e89bc4001039000b200141086a2802002110410121140c040b20024180036a41086a200141246a2d00003a000020022001411c6a2902003703800320012f0005200141076a2d0000411074722113200141186a2802002106200141146a2802002107200141106a28020021082001410c6a2802002111200141086a2802002110200141286a2802002109410221140c040b200141086a2802002110410321140c020b20024180036a41086a200141246a2d00003a000020022001411c6a2902003703800320012d0025410047210d20012f0005200141076a2d0000411074722113200141186a2802002106200141146a2802002107200141106a28020021082001410c6a2802002111200141086a2802002110200141286a2802002109410421140c030b200141086a2802002110410521140b0b0b200241d0016a41086a20024180036a41086a2d00003a000020022002290380033703d001410421040c200b20024180036a200141086a10ce01200241d0016a41086a2002419c036a2d00003a0000200241186a41086a200241c8036a290300370300200241186a41106a200241d0036a290300370300200241306a200241d8036a290300370300200220024194036a2902003703d001200220022f019e033b01ce012002200241c0036a2903003703182002290380032205422088a72111200241b0036a290300210e200241a8036a290300210b20024180036a41106a28020021062002418c036a280200210720024180036a41086a2802002108200241a0036a2802002109200241a4036a280200210a200241b8036a290300210f20022d009d03210d2005a72110410521040c150b20024180036a200141046a10cf0120022f00810320022d008303411074722113200229028403220f422088a7211120022d0080032114200fa72110410621040c1e0b20024180036a200141086a10d001200241d0016a41086a2002419c036a2d00003a0000200241186a41086a200241c8036a290300370300200241186a41106a200241d0036a290300370300200220024194036a2902003703d00120022002419e036a2f01003b01ce012002200241c0036a2903003703182002290380032205422088a72111200241b0036a290300210e200241a8036a290300210b20024180036a41106a28020021062002418c036a280200210720024180036a41086a28020021082002419d036a2d0000210d200241a0036a2802002109200241a4036a280200210a200241b8036a290300210f2005a72110410721040c130b10d101000b02400240200128020422130d0041002114410021110c010b200241206a200141246a2d00003a000020022001411c6a290000370318200220012f01263b01d0012002200141c8006a29020037038003200141386a290200210e200141306a290200210b200141186a2802002106200141146a2802002107200141106a2802002108200141286a28020021092001412c6a280200210a200141c0006a290200210f20012d0025210d200241a0036a200141e8006a29020037030020024180036a41186a200141e0006a29020037030020024180036a41106a200141d8006a29020037030020024180036a41306a200141f8006a29020037030020024180036a41386a20014180016a29020037030020024180036a41c0006a20014188016a29020037030020024180036a41d0006a20014198016a29020037030020024180036a41d8006a200141a0016a29020037030020024180036a41e0006a200141a8016a2902003703002002200141d0006a290200370388032002200141f0006a2902003703a803200220014190016a2902003703c80320024180036a4180016a200141c8016a29020037030020024180036a41f8006a200141c0016a29020037030020024180036a41f0006a200141b8016a2902003703002002200141b0016a2902003703e8032001410c6a2802002211417f4c0d190240024020110d00410121140c010b2011102c2214450d190b20142013201110e9081a200241f0026a41086a200241186a41086a2d00003a0000200220022903183703f002200220022f01d0013b01ee02200241e0016a20024180036a41880110e9081a0b200241d0016a41086a200241f0026a41086a2d00003a0000200220022903f0023703d001200220022f01ee023b01ce01200241186a200241e0016a41880110e9081a2014410876211341092104201121100c1b0b20024180036a200141086a10d201200241d0016a41086a2002419c036a2d00003a0000200220024194036a2902003703d001200220022f019e033b01ce01200241b0036a290300210e200241a8036a290300210b20024180036a41106a28020021062002418c036a280200210720024180036a41086a2802002108200241a0036a2802002109200241a4036a280200210a200241b8036a290300210f20022d009d03210d2002290380032105200241186a200241c0036a41b00110e9081a200241e0016a41086a20024188056a290300370300200241e0016a41106a20024190056a290300370300200220024180056a2903003703e0012005422088a72111200241fc046a2802002112200241f8046a2802002101200241f4046a2802002115200241f0046a280200210c2005a72110410a21040c110b20024180036a200141046a10d301200241d0016a41086a20024180036a41206a2d00003a0000200241186a41086a200241cc036a290200370300200241186a41106a200241d4036a290200370300200241186a41186a200241dc036a290200370300200241186a41206a200241e4036a280200360200200220024180036a41186a2903003703d001200220022f01a2033b01ce012002200241c4036a29020037031820022f00810320022d0083034110747221132002290284032205422088a72111200241b4036a290200210e200241ac036a290200210b20024194036a280200210620024180036a41106a28020021072002418c036a2802002108200241bc036a290200210f20022d008003211420022d00a103210d20022802a403210920022802a803210a2005a72110410b21040c190b10d401000b20024180036a200141086a10d501200241d0016a41086a2002419c036a2d00003a0000200220024194036a2902003703d00120022002419e036a2f01003b01ce01200229038003220f422088a72111200241b0036a290300210e200241a8036a290300210b20024190036a28020021062002418c036a280200210720024180036a41086a28020021082002419d036a2d0000210d200241a0036a2802002109200241a4036a280200210a200fa72110410d21040c0e0b20024180036a200141086a10d601200241d0016a41086a2002419c036a2d00003a0000200220024194036a2902003703d00120022002419e036a2f01003b01ce01200229038003220f422088a72111200241b0036a290300210e200241a8036a290300210b20024190036a28020021062002418c036a280200210720024180036a41086a28020021082002419d036a2d0000210d200241a0036a2802002109200241a4036a280200210a200fa72110410e21040c0d0b20024180036a200141086a10d601200241d0016a41086a2002419c036a2d00003a0000200220024194036a2902003703d00120022002419e036a2f01003b01ce01200229038003220f422088a72111200241b0036a290300210e200241a8036a290300210b20024190036a28020021062002418c036a280200210720024180036a41086a28020021082002419d036a2d0000210d200241a0036a2802002109200241a4036a280200210a200fa72110410f21040c0c0b20024180036a200141086a10d701200241d0016a41086a2002419c036a2d00003a0000200220024194036a2902003703d00120022002419e036a2f01003b01ce01200229038003220f422088a7211120024180036a41106a28020021062002418c036a280200210720024180036a41086a28020021082002419d036a2d0000210d200241a0036a2802002109200241a4036a280200210a200fa721100c0c0b4107211402400240024002400240024002400240024020012d0004417f6a0e0701020304050608000b41e2a0cc00412841a4c3cb001039000b20024180036a41086a200141246a2d00003a000020022001411c6a2900003703800320012f0005200141076a2d0000411074722113200141186a2800002106200141146a2800002107200141106a2800002108200141086a2900002105410121140c050b20024180036a41086a200141246a2d00003a000020022001411c6a2900003703800320012f0005200141076a2d0000411074722113200141186a2800002106200141146a2800002107200141106a2800002108200141086a2900002105410221140c040b20024180036a41086a200141246a2d00003a0000200220012f00263b011820022001411c6a29000037038003200141c0006a350000200141c4006a31000042208684210f20012f0005200141076a2d0000411074722113200141386a290000210e200141306a290000210b2001412c6a280000210a200141286a2800002109200141186a2800002106200141146a2800002107200141106a2800002108200141086a290000210520012d0025210d410321140c040b20024180036a200141086a10c80120022802880321082002290380032105410421140c030b20024180036a41086a200141246a2d00003a000020022001411c6a2900003703800320012f0005200141076a2d0000411074722113200141186a2800002106200141146a2800002107200141106a2800002108200141086a2900002105410521140c010b20024180036a41086a200141246a2d00003a000020022001411c6a2900003703800320012f0005200141076a2d0000411074722113200141186a2800002106200141146a2800002107200141106a2800002108200141086a2900002105410621140b0b200241d0016a41086a20024180036a41086a2d00003a000020022002290380033703d001200220022f01183b01ce012005422088a721112005a72110411121040c130b024002400240024002400240200141086a280200417f6a0e03010203000b41e2a0cc0041284184ccc2001039000b200141386a290300210e200141306a290300210b4101211041012113024002400240024002402001410c6a2d00000e050104020300010b4104211320024180036a41046a200141206a2d00003a000020022001411c6a2802003602800320012f000d2001410f6a2d0000411074722104200141186a2802002106200141146a2802002107200141106a28020021080c030b20024188036a200141246a2d00003a0000200220012f01263b01e00120022001411c6a2902003703800320012f000d2001410f6a2d00004110747221042001412c6a2d00002114200141286a2802002109200141186a2802002106200141146a2802002107200141106a280200210820012d0025210d410021130c020b200141186a2802002207417f4c0d15200141106a28020021010240024020070d00410121080c010b2007102c2208450d150b20082001200710e9081a41022113200721060c010b20024188036a200141246a2d00003a0000200220012f01263b01e00120022001411c6a2902003703800320012f000d2001410f6a2d00004110747221042001412c6a2d00002114200141286a2802002109200141186a2802002106200141146a2802002107200141106a280200210820012d0025210d410321130b200241186a41086a20024180036a41086a2d00003a00002002200229038003370318200220022f01e0013b01f002201441ff0171210a0c030b2001410c6a28020022134108762104410221100c010b2001410c6a28020022134108762104410321100b0b200241d0016a41086a200241186a41086a2d00003a0000200220022903183703d001200220022f01f0023b01ce012004410874201341ff0171722111411221040c090b20024180036a200141086a10d801200241d0016a41086a2002419c036a2d00003a0000200241186a41086a200241c8036a290300370300200241186a41106a200241d0036a290300370300200241306a200241d8036a290300370300200241186a41206a200241e0036a290300370300200241186a41286a200241e8036a290300370300200220024194036a2902003703d00120022002419e036a2f01003b01ce012002200241c0036a2903003703182002290380032205422088a72111200241b0036a290300210e20024180036a41286a290300210b20024180036a41106a28020021062002418c036a280200210720024180036a41086a28020021082002419d036a2d0000210d20024180036a41206a2802002109200241a4036a280200210a200241b8036a290300210f2005a72110411321040c070b20024180036a200141086a10d901200241d0016a41086a2002419c036a2d00003a0000200241186a41086a200241c8036a290300370300200241186a41106a200241d0036a290300370300200241306a200241d8036a290300370300200241186a41206a200241e0036a290300370300200241186a41286a200241e8036a290300370300200241186a41306a200241f0036a290300370300200220024194036a2902003703d001200220022f019e033b01ce012002200241c0036a2903003703182002290380032205422088a7211120024180036a41306a290300210e20024180036a41286a290300210b20024180036a41106a28020021062002418c036a280200210720024180036a41086a280200210820024180036a41206a2802002109200241a4036a280200210a200241b8036a290300210f20022d009d03210d2005a72110411421040c100b02400240024020012f0104417f6a0e03010200010b20024180036a200141086a10c901410321140c0f0b20024180036a200141086a10c901410121140c0e0b20012f0106211341b002102c2210450d0b20024180036a200141086a28020010da01201020024180036a41b00210e9081a200220133b011a41022114200241023b01180c0e0b20024180036a200141086a10db01200241d0016a41086a2002419c036a2d00003a0000200220024194036a2902003703d00120022002419e036a2f01003b01ce01200241b0036a290300210e200241a8036a290300210b20024180036a41106a28020021062002418c036a280200210720024180036a41086a28020021082002419d036a2d0000210d20024180036a41206a2802002109200241a4036a280200210a200241b8036a290300210f2002290380032105200241186a200241c0036a41b00110e9081a200241e0016a41086a20024188056a290300370300200241e0016a41106a20024190056a290300370300200241f8016a20024198056a290300370300200241e0016a41206a200241a0056a290300370300200220024180056a2903003703e0012005422088a72111200241fc046a2802002112200241f8046a2802002101200241f4046a2802002115200241f0046a280200210c2005a72110411621040c050b20024180036a200141046a10dc01200241d8016a200241a0036a2d00003a0000200220024198036a2903003703d0012002200241a2036a2f01003b01ce01200241b4036a290200210e200241ac036a290200210b20024194036a280200210620024180036a41106a28020021072002418c036a2802002108200241a1036a2d0000210d200241a4036a2802002109200241a8036a280200210a200241bc036a290200210f20022d0080032114200229028403210520022f008103210120022d00830321132002200241c4036a280200360218200120134110747221132005422088a721112005a72110411721040c0d0b20024180036a200141086a10dd01200241d0016a41086a2002419c036a2d00003a0000200220024194036a2902003703d00120022002419e036a2f01003b01ce012002200241c0036a2903003703182002290380032205422088a72111200241b0036a290300210e200241a8036a290300210b20024180036a41106a28020021062002418c036a280200210720024180036a41086a28020021082002419d036a2d0000210d200241a0036a2802002109200241a4036a280200210a200241b8036a290300210f2005a72110411821040c020b20024180036a200141086a10de01200241d0016a41086a2002419c036a2d00003a0000200220024194036a2902003703d001200220022f019e033b01ce012002290380032205422088a72111200241b0036a290300210e200241a8036a290300210b20024180036a41106a28020021062002418c036a280200210720024180036a41086a2802002108200241a0036a2802002109200241a4036a280200210a200241b8036a290300210f20022d009d03210d2005a72110411921040c010b20024180036a200141086a10df01200241d0016a41086a2002419c036a2d00003a0000200220024194036a2902003703d00120022002419e036a2f01003b01ce012002290380032205422088a72111200241b0036a290300210e200241a8036a290300210b20024180036a41106a28020021062002418c036a280200210720024180036a41086a28020021082002419d036a2d0000210d200241a0036a2802002109200241a4036a280200210a200241b8036a290300210f2005a72110411a21040b0b0b0c070b200141026a2f0100211320024180036a200141046a10c801200141246a2802002203417f4c0d032001411c6a2802002104200141186a2802002114200141146a2802002111200141106a28020021070240024020030d00410121080c010b2003102c2208450d030b20082004200310e9082104200041026a20133b0100200041246a2003360200200041206a20033602002000411c6a2004360200200041186a2014360200200041146a2011360200200041106a2007360200200041023a0000200041046a2002290380033702002000410c6a20024188036a280200360200200041286a2001290328370300200020012d00014100473a00010c070b200141226a2f0100210320024180036a200141246a10c801200041226a20033b0100200041246a2002290380033702002000412c6a20024188036a280200360200200041386a200141386a280200360200200041306a200141306a29020037030020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a290000370000200141c0006a290300210f200041033a0000200041c0006a200f3703000c060b200141226a2f0100210320024180036a200141246a10c801200041226a20033b0100200041043a0000200041246a2002290380033702002000412c6a20024188036a280200360200200041306a200141306a29020037030020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a2900003700000c050b1036000b1038000b200220143b01182002280288032108200228028403211120022802800321100b20022f001920022d001b411074722113411521040b200320133b0005200320143a000420032004360200200341076a20134110763a000020032011ad4220862010ad843703082003200b3703302003200636021820032007360214200320083602102003200d3a00252003200f3703402003200a36022c20032009360228200320022f01ce013b0126200341386a200e370300200320022903d00137021c200341246a200241d0016a41086a2d00003a0000200341c8006a200241186a41b00110e9081a20032012360284022003200136028002200320153602fc012003200c3602f801200320022903e0013703880220034190026a200241e0016a41086a29030037030020034198026a200241e0016a41106a290300370300200341a0026a200241f8016a290300370300200341a8026a20024180026a2903003703002000410c6a200241086a41086a280200360200200041046a2002290308370200200041106a2003360200200041013a00000b200241b0056a24000b850d03027f027e057f230041206b2202240002400240024002400240024002400240024002400240024002402001280200417f6a0e09010203040506070809000b41e2a0cc00412841e0ecc0001039000b2001410c6a2802002203417f4c0d09200141186a2903002104200141106a2903002105200128020421064101210102402003450d002003102c2201450d0b0b20012006200310e9082101200041186a2004370300200041106a20053703002000410c6a2003360200200041086a200336020020002001360204200041013602000c080b20004102360200200020012802043602040c070b200128020421074101210802400240024002400240200141086a22092d00000e050104020300010b2002411e6a200941036a2d00003a000041042108200241086a41046a2001411c6a2d00003a0000200220092f00013b011c2002200141186a280000360208200141146a280200210a200141106a28020021032001410c6a28020021060c030b2002411e6a200941036a2d00003a0000200241086a41086a200141206a290000370300200241086a41106a200141286a2d00003a0000200220092f00013b011c2002200141186a290000370308200141146a280200210a200141106a28020021032001410c6a2802002106410021080c020b200141146a2802002203417f4c0d092001410c6a28020021080240024020030d00410121060c010b2003102c2206450d0b0b20062008200310e9081a410221082003210a0c010b410321082002411e6a200941036a2d00003a0000200241086a41086a200141206a290000370300200241086a41106a200141286a2d00003a0000200220092f00013b011c2002200141186a290000370308200141146a280200210a200141106a28020021032001410c6a28020021060b20002007360204200020022f011c3b0009200020022f00053b0029200041086a20083a0000200041146a200a360000200041106a20033600002000410c6a2006360000200041186a20022903083700002000410b6a2002411c6a41026a2d00003a0000200041206a200241086a41086a290300370000200041286a200241086a41106a2d00003a00002000412b6a200241056a41026a2d00003a000020012903302104200041386a200141386a290300370300200041306a2004370300200041033602000c060b20004104360200200020012802043602040c050b20004105360200200020012802043602040c040b200128020421074101210802400240024002400240200141086a22092d00000e050104020300010b2002411e6a200941036a2d00003a000041042108200241086a41046a2001411c6a2d00003a0000200220092f00013b011c2002200141186a280000360208200141146a280200210a200141106a28020021032001410c6a28020021060c030b2002411e6a200941036a2d00003a0000200241086a41086a200141206a290000370300200241086a41106a200141286a2d00003a0000200220092f00013b011c2002200141186a290000370308200141146a280200210a200141106a28020021032001410c6a2802002106410021080c020b200141146a2802002203417f4c0d062001410c6a28020021010240024020030d00410121060c010b2003102c2206450d080b20062001200310e9081a410221082003210a0c010b410321082002411e6a200941036a2d00003a0000200241086a41086a200141206a290000370300200241086a41106a200141286a2d00003a0000200220092f00013b011c2002200141186a290000370308200141146a280200210a200141106a28020021032001410c6a28020021060b20002007360204200020022f011c3b0009200020022f00053b0029200041086a20083a0000200041146a200a360000200041106a20033600002000410c6a2006360000200041186a20022903083700002000410b6a2002411c6a41026a2d00003a0000200041206a200241086a41086a290300370000200041286a200241086a41106a2d00003a00002000412b6a200241056a41026a2d00003a0000200041063602000c030b20004107360200200020012802043602040c020b20004108360200200020012802043602040c010b200141106a2802002203417f4c0d01200141086a2802002106200128020421010240024020030d00410121080c010b2003102c2208450d030b20082006200310e9082106200041106a20033602002000410c6a2003360200200041086a200636020020002001360204200041093602000b200241206a24000f0b1038000b1036000bc00501037f02400240024002400240024002400240024020012d0000417f6a0e06010203040506000b41e2a0cc00412841d4cec8001039000b2001412c6a2802002202417f4c0d05200141246a28020021034101210402402002450d002002102c2204450d070b20042003200210e90821042000412c6a2002360200200041286a2002360200200041246a2004360200200041013a000020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a2900003700000f0b200041023a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000f0b2001412c6a2802002202417f4c0d03200141246a28020021040240024020020d00410121030c010b2002102c2203450d050b20032004200210e90821042000412c6a2002360200200041286a2002360200200041246a2004360200200041033a0000200041386a200141386a290300370300200041306a200129033037030020002001290001370001200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a2900003700000f0b200041043a000020002001290001370001200041306a200141306a290300370300200041286a200141286a290300370300200041096a200141096a290000370000200041116a200141116a290000370000200041196a200141196a2900003700000f0b200041053a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000f0b200041063a000020002001290001370001200041196a200141196a290000370000200041116a200141116a290000370000200041096a200141096a2900003700000f0b1038000b1036000bff0104017f017e037f037e0240024020012802082202ad42287e2203422088a70d002003a72204417f4c0d00200128020021050240024020040d00410821010c010b2004102c2201450d020b2000410036020820002001360200200041046a200441286e2206360200024020044128490d0003402004450d01200541086a2903002103200541106a29030021072005290320210820052903002109200141186a200541186a290300370300200141106a2007370300200141086a200337030020012009370300200141206a2008370300200141286a2101200441586a2104200541286a21052006417f6a22060d000b0b200020023602080f0b1038000b1036000ba80101017f024020002802082201450d0020002802002100200141246c210103400240024002400240024020002d00000e050400010204030b2000410c6a280200450d03200041086a280200102e0c030b2000410c6a280200450d02200041086a280200102e0c020b2000410c6a280200450d01200041086a280200102e0c010b200041086a280200450d00200041046a280200102e0b200041246a21002001415c6a22010d000b0b0bcd0101017f0240024002400240024020002802000e0404000102030b0240200041086a2802004125490d00200041106a280200102e0b200041386a280200450d03200041346a280200102e0f0b200041086a2802004125490d02200041106a280200102e0f0b2000280204102e200041086a2802002201450d012000410c6a280200450d012001102e0c010b0240200041086a2802004125490d00200041106a280200102e0b200041346a280200102e200041386a2802002201450d002000413c6a280200450d002001102e0f0b0bff0403037f017e077f230041306b22022400200241086a200110ab01024002402002280208450d00200041003602000c010b024002400240024002400240200228020c22032001280204410c6e2204200420034b1bad420c7e2205422088a70d002005a72204417f4c0d000240024020040d00410421060c010b2004102c2206450d040b2004410c6e2107024020030d00410021030c060b41002108410021094100210a03402002200110ab0120022802000d032001280204220b20022802042204490d032004417f4c0d010240024020040d004101210c0c010b20041032220c450d052001280204210b0b200b2004490d02200c2001280200200410e908210b2001280204220c2004490d052001200c20046b3602042001200128020020046a36020002400240200a2007470d002008200a41016a220c2008200c4b1b220c4104200c41044b1bad420c7e2205422088a745410274210c2005a7210702400240200a0d00200241003602200c010b2002410436022820022009360224200220063602200b200241106a2007200c200241206a107d2002280218210c20022802104101460d0120022802142106200c410c6e21070b200620096a220c200b360200200c41046a2004ad2205422086200584370200200841026a21082009410c6a21092003200a41016a220a460d070c010b0b200c0d030b1038000b200c102e0b200041003602000240200a450d002006210403400240200441046a280200450d002004280200102e0b2004410c6a2104200941746a22090d000b0b2007450d032007410c6c450d032006102e0c030b1036000b2004200c41b8b2c0001056000b2000200736020420002006360200200041086a20033602000b200241306a24000bd206030a7f017e017f230041f0016b220224002002200110ad01024002402002280200450d00200041003602000c010b024002400240024002402002280204220320012802002802044105762204200420034b1b22054105742204417f4c0d004101210602402005450d002004102c2206450d020b2001200128020441016a220436020402400240200420012802084b0d0020030d01410021030c060b200041003602000c030b410021070340200241003a00a8012007220841016a21074100210902400240024002400240034020012802002204280204220a450d0120024188016a20096a2004280200220b2d00003a00002004200a417f6a3602042004200b41016a3602002002200941016a22043a00a8012004210920044120470d000b200241e8006a41186a20024188016a41186a290300220c370300200241c8006a41086a220420024188016a41086a290300370300200241c8006a41106a220920024188016a41106a290300370300200241c8006a41186a220a200c3703002002200229038801370348200241286a41186a220b200a290300370300200241286a41106a220a2009290300370300200241286a41086a2209200429030037030020022002290348370328200241086a41186a220d200b290300370300200241086a41106a220b200a290300370300200241086a41086a220a20092903003703002002200229032837030820082005470d0320084101742204200841016a2209200420094b1b22044104200441044b1b220441ffffff3f7120044621092004410574210420080d0120024100360288010c020b0240200941ff0171450d00200241003a00a8010b200041003602000c070b200241013602900120022006360288012002200841057436028c010b200241e8006a2004200920024188016a107d2002280270210420022802684101460d01200228026c2106200441057621050b200620084105746a22042002290308370000200441186a200d290300370000200441106a200b290300370000200441086a200a29030037000020072003460d050c010b0b20040d010b1038000b1036000b200541ffffff3f71450d022006102e0c020b200128020421040b2000200536020420002006360200200041086a200336020020012004417f6a3602040b200241f0016a24000bfc0503037f017e0b7f23004190016b220224002002200110ab01024002402002280200450d00200041003602000c010b024002400240024020022802042203200128020441246e2204200420034b1bad42247e2205422088a70d002005a72204417f4c0d000240024020040d00410421060c010b2004102c2206450d030b200441246e2107024020030d00410021030c040b200241d8006a4101722108410021094100210a4100210b0340200241d8006a200110e601200241306a41086a2204200841086a290000370300200241306a41106a220c200841106a290000370300200241306a41186a220d200841186a290000370300200241306a411f6a220e2008411f6a2800003600002002200829000037033020022d0058220f4105460d02200241086a411f6a2210200e280000360000200241086a41186a220e200d290300370300200241086a41106a220d200c290300370300200241086a41086a220c20042903003703002002200229033037030802400240200b2007470d002009200b41016a2204200920044b1b22044104200441044b1bad42247e2205422088a74541027421042005a7210702400240200b0d00200241003602580c010b200241043602602002200a36025c200220063602580b20024180016a20072004200241d8006a107d20022802880121042002280280014101460d012002280284012106200441246e21070b2006200a6a2204200f3a0000200441016a2002290308370000200441096a200c290300370000200441116a200d290300370000200441196a200e290300370000200441206a2010280000360000200941026a2109200a41246a210a2003200b41016a220b460d050c010b0b20040d020b1038000b200041003602000240200b450d00200621040340024020042d00004102470d00200441086a280200450d00200441046a280200102e0b200441246a2104200a415c6a220a0d000b0b2007450d02200741246c450d022006102e0c020b1036000b2000200736020420002006360200200041086a20033602000b20024190016a24000b801103057f047e017f230041f0016b22022400024002400240024002400240024002400240024002400240024002400240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a36020020050e050102030405060b200041053a00000c0e0b200241d8006a2001109301024020022d00584101460d0020024198016a200241d8006a41196a290000220737030020024190016a200241d8006a41116a290000220837030020024188016a200241d8006a41096a290000220937030020022002290059220a37038001200041003a00002000200a370001200041096a2009370000200041116a2008370000200041196a2007370000200041216a20022f00383b0000200041236a2002413a6a2d00003a00000c0e0b200041053a00000c0d0b200041013a00000c0c0b200241086a200110ab01024020022802080d0020012802042203200228020c2205490d002005417f4c0d050240024020050d004101210b0c010b20051032220b450d07200128020421030b024020032005490d00200b2001280200200510e90821032001280204220b2005490d082001200b20056b3602042001200128020020056a3602002003450d01200041023a0000200020022f0080013b0001200041086a2005ad2207422086200784370000200041046a2003360000200041106a2002290258370200200041036a20024180016a41026a2d00003a0000200041186a200241d8006a41086a290200370200200041206a200241d8006a41106a2802003602000c0d0b200b102e0b200041053a00000c0b0b41002105200241003a00782003417e6a21030240034020062005460d01200241d8006a20056a200420056a220b41016a2d00003a0000200120033602042001200b41026a3602002002200541016a220b3a00782003417f6a2103200b2105200b4120460d0a0c000b0b200541ff0171450d09200241003a00780c090b200241003a006c2006450d0620042d0001210520012003417e6a220b3602042001200441026a360200200241013a006c200220053a0058200b0d010c050b200041053a00000c080b20042d0002210520012003417d6a220b3602042001200441036a360200200241023a006c200220053a0059200b450d0320042d0003210520012003417c6a220b3602042001200441046a360200200241033a006c200220053a005a200b450d0320042d0004210520012003417b6a220b3602042001200441056a360200200241043a006c200220053a005b200b450d0320042d0005210520012003417a6a220b3602042001200441066a360200200241053a006c200220053a005c200b450d0320042d000621052001200341796a220b3602042001200441076a360200200241063a006c200220053a005d200b450d0320042d000721052001200341786a220b3602042001200441086a360200200241073a006c200220053a005e200b450d0320042d000821052001200341776a220b3602042001200441096a360200200241083a006c200220053a005f200b450d0320042d000921052001200341766a220b36020420012004410a6a360200200241093a006c200220053a0060200b450d0320042d000a21052001200341756a220b36020420012004410b6a3602002002410a3a006c200220053a0061200b450d0320042d000b21052001200341746a220b36020420012004410c6a3602002002410b3a006c200220053a0062200b450d0320042d000c21052001200341736a220b36020420012004410d6a3602002002410c3a006c200220053a0063200b450d0320042d000d21052001200341726a220b36020420012004410e6a3602002002410d3a006c200220053a0064200b450d0320042d000e21052001200341716a220b36020420012004410f6a3602002002410e3a006c200220053a0065200b450d0320042d000f21052001200341706a220b3602042001200441106a3602002002410f3a006c200220053a0066200b450d0320042d0010210520012003416f6a220b3602042001200441116a360200200241103a006c200220053a0067200b450d0320042d0011210520012003416e6a220b3602042001200441126a360200200241113a006c200220053a0068200b450d0320042d0012210520012003416d6a220b3602042001200441136a360200200241123a006c200220053a0069200b450d0320042d0013210520012003416c6a220b3602042001200441146a360200200241133a006c200220053a006a200b450d0320042d0014210520012003416b6a3602042001200441156a36020020024180016a41086a2201200241d8006a41086a290300370300200220053a006b20024180016a41106a2205200241d8006a41106a280200360200200241143a006c2002200229035837038001200241386a41106a22032005280200360200200241386a41086a220520012903003703002002200229038001370338200041043a000020002002290338370001200041096a2005290300370000200041116a2003280200360000200041156a20022900183700002000411c6a2002411f6a2900003700000c070b1038000b1036000b2005200b41b8b2c0001056000b200241003a006c0b200041053a00000c020b20024180016a41086a2205200241d8006a41086a29030037030020024180016a41106a2201200241d8006a41106a29030037030020024180016a41186a2203200241d8006a41186a2903003703002002200229035837038001200b41ff0171411f4d0d00200241186a41086a20052903002207370300200241186a41106a20012903002208370300200241186a41186a200329030022093703002002200229038001220a370318200041033a00002000200a370001200041096a2007370000200041116a2008370000200041196a2009370000200041216a20022f00153b0000200041236a200241176a2d00003a00000c010b200041053a00000b200241f0016a24000b8a0201067f230041106b22022400200241086a200110ab01024002400240024002402002280208450d00200041003602000c010b0240200228020c220341ffffffff03712003470d0020034102742204200128020422054b0d002004417f4c0d020240024020040d00410421060c010b200410322206450d04200128020421050b0240200520034102742207490d0020062001280200200710e9082105200128020422062007490d0520002003ad4220862004410276ad84370204200020053602002001200620076b3602042001200128020020076a3602000c020b2004450d002006102e0b200041003602000b200241106a24000f0b1038000b1036000b2007200641b8b2c0001056000bc50503037f017e087f230041306b22022400200241086a200110ad01024002402002280208450d00200041003602000c010b02400240024002400240024002400240200228020c22032001280200280204410c6e2204200420034b1bad420c7e2205422088a70d002005a72204417f4c0d000240024020040d00410421060c010b2004102c2206450d050b2001200128020441016a22073602042004410c6e210802400240200720012802084b0d0020030d01410021030c090b200041003602000c040b41002109410021074100210a03402002200110ad0120022802000d032001280200220b280204220c20022802042204490d032004417f4c0d010240024020040d004101210d0c010b20041032220d450d062001280200220b280204210c0b200c2004490d02200d200b280200200410e908210c200b280204220d2004490d06200b200d20046b360204200b200b28020020046a36020002400240200a2008470d002009200a41016a220b2009200b4b1b220b4104200b41044b1bad420c7e2205422088a745410274210b2005a7210802400240200a0d00200241003602200c010b2002410436022820022007360224200220063602200b200241106a2008200b200241206a107d2002280218210b20022802104101460d0120022802142106200b410c6e21080b200620076a220b200c360200200b41046a2004ad2205422086200584370200200941026a21092007410c6a21072003200a41016a220a460d080c010b0b200b0d040b1038000b200d102e0b20004100360200200a450d002006210403400240200441046a280200450d002004280200102e0b2004410c6a2104200741746a22070d000b0b2008450d042008410c6c450d042006102e0c040b1036000b2004200d41b8b2c0001056000b200128020421070b2000200836020420002006360200200041086a200336020020012007417f6a3602040b200241306a24000bd60704037f017e0a7f057e23004190026b220224002002200110ab01024002402002280200450d00200041003602000c010b024002400240024020022802042203200128020441306e2204200420034b1bad42307e2205422088a70d002005a72204417f4c0d000240024020040d00410821060c010b2004102c2206450d020b200441306e2107024020030d00410021030c040b410021080340200241003a00c8012008220941016a21082001280204210a417f210b41002104024002400340200a2004460d01200241a8016a20046a2001280200220c2d00003a00002001200a200b6a3602042001200c41016a3602002002200441016a220c3a00c801200b417f6a210b200c2104200c4120470d000b200241d0016a41086a2204200241a8016a41086a290300370300200241d0016a41106a220b200241a8016a41106a290300370300200241d0016a41186a220d200241a8016a41186a290300370300200220022903a8013703d001200c41ff0171411f4b0d010c050b200441ff0171450d04200241003a00c8010c040b200241e8006a41086a220e2004290300370300200241e8006a41106a220f200b290300370300200241e8006a41186a220b200d290300370300200220022903d001370368200a200c6b220c4110490d032001280200220441086a2900002105200429000021102001200441106a3602002001200c41706a360204200241286a41086a2204200e290300370300200241286a41106a220c200f290300370300200241286a41186a220a200b29030037030020022002290368370328200241086a41186a220b200a290300370300200241086a41106a220a200c290300370300200241086a41086a220c2004290300370300200220022903283703080240024020092007470d0020094101742204200941016a2207200420074b1b22044104200441044b1bad42307e2211422088a74541037421042011a721070240024020090d00200241003602a8010c010b200241083602b001200220063602a8012002200941306c3602ac010b200241d0016a20072004200241a8016a107d20022802d801210420022802d0014101460d0120022802d4012106200441306e21070b200c2903002111200a2903002112200b2903002113200229030821142006200941306c6a2204201037032020042014370300200441286a2005370300200441186a2013370300200441106a2012370300200441086a201137030020082003460d050c010b0b20040d010b1038000b1036000b200041003602002007450d01200741306c450d012006102e0c010b2000200736020420002006360200200041086a20033602000b20024190026a24000bb80603037f017e0b7f23004190016b220224002002200110ad01024002402002280200450d00200041003602000c010b02400240024002400240024020022802042203200128020028020441246e2204200420034b1bad42247e2205422088a70d002005a72204417f4c0d000240024020040d00410421060c010b2004102c2206450d040b2001200128020441016a2207360204200441246e210802400240200720012802084b0d0020030d01410021030c070b200041003602000c030b200241d8006a4101722107410021094100210a4100210b0340200241d8006a200110eb01200241306a41086a2204200741086a290000370300200241306a41106a220c200741106a290000370300200241306a41186a220d200741186a290000370300200241306a411f6a220e2007411f6a2800003600002002200729000037033020022d0058220f4105460d02200241086a411f6a2210200e280000360000200241086a41186a220e200d290300370300200241086a41106a220d200c290300370300200241086a41086a220c20042903003703002002200229033037030802400240200b2008470d002009200b41016a2204200920044b1b22044104200441044b1bad42247e2205422088a74541027421042005a7210802400240200b0d00200241003602580c010b200241043602602002200a36025c200220063602580b20024180016a20082004200241d8006a107d20022802880121042002280280014101460d012002280284012106200441246e21080b2006200a6a2204200f3a0000200441016a2002290308370000200441096a200c290300370000200441116a200d290300370000200441196a200e290300370000200441206a2010280000360000200941026a2109200a41246a210a2003200b41016a220b460d060c010b0b20040d030b1038000b20004100360200200b450d00200621040340024020042d00004102470d00200441086a280200450d00200441046a280200102e0b200441246a2104200a415c6a220a0d000b0b2008450d03200841246c450d032006102e0c030b1036000b200128020421070b2000200836020420002006360200200041086a200336020020012007417f6a3602040b20024190016a24000baf0a02057f027e230041b0026b2202240002400240024002400240024002400240024002400240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020060e050102030405060b200041053a00000c060b41002104200241003a00b80102400340200128020022032802042205450d0120024198016a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00b8012003210420034120470d000b200241386a41186a20024198016a41186a2903002207370300200241086a41086a220120024198016a41086a290300370300200241086a41106a220320024198016a41106a290300370300200241086a41186a220420073703002002200229039801370308200041003a000020002002290308370001200041096a2001290300370000200041116a2003290300370000200041196a2004290300370000200041216a20022f00293b0000200041236a2002412b6a2d00003a00000c060b0240200441ff0171450d00200241003a00b8010b200041053a00000c050b200041013a00000c040b2002200110ad01024020022802000d0020012802002204280204220520022802042203490d002003417f4c0d050240024020030d00410121060c010b200310322206450d072001280200220428020421050b024020052003490d0020062004280200200310e9082101200428020422052003490d082004200520036b3602042004200428020020036a3602002001450d01200041023a0000200020022f00383b0001200041086a2003ad2207422086200784370000200041046a2001360000200041106a200229029801370200200041036a200241386a41026a2d00003a0000200041186a20024198016a41086a290200370200200041206a20024198016a41106a2802003602000c050b2006102e0b200041053a00000c030b41002104200241003a00b80102400340200128020022032802042205450d0120024198016a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00b8012003210420034120470d000b200241386a41186a20024198016a41186a2903002207370300200241086a41086a220120024198016a41086a290300370300200241086a41106a220320024198016a41106a290300370300200241086a41186a220420073703002002200229039801370308200041033a000020002002290308370001200041096a2001290300370000200041116a2003290300370000200041196a2004290300370000200041216a20022f00293b0000200041236a2002412b6a2d00003a00000c030b0240200441ff0171450d00200241003a00b8010b200041053a00000c020b41002104200241003a00ac0102400340200128020022032802042205450d0120024198016a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00ac012003210420034114470d000b200241086a41086a20024198016a41086a2903002207370300200241086a41106a20024198016a41106a280200220136020020022002290398012208370308200041043a000020002008370001200041096a2007370000200041116a2001360000200041156a20022900293700002000411c6a200241306a2900003700000c020b0240200441ff0171450d00200241003a00ac010b200041053a00000c010b200041053a00000b200241b0026a24000f0b1038000b1036000b2003200541b8b2c0001056000bde0505037f017e057f017e017f230041e00a6b220224002002200110ad01024002402002280200450d00200041003602000c010b02400240024002400240024020022802042203200128020028020441c8036e2204200420034b1bad42c8037e2205422088a70d002005a72204417f4c0d000240024020040d00410821060c010b2004102c2206450d040b2001200128020441016a2207360204200441c8036e210802400240200720012802084b0d0020030d01410021030c070b200041003602000c030b20024188076a41f0006a21094100210a4100210441002107034020024188076a200110ed01200241a0066a20024188076a41e80010e9081a20022903f0072105200241c8036a200941d80210e9081a20054203510d02200241e0026a200241a0066a41e80010e9081a200241086a200241c8036a41d80210e9081a0240024020072008470d00200a200741016a2208200a20084b1b22084104200841044b1bad42c8037e220b422088a7454103742108200ba7210c0240024020070d0020024100360288070c010b20024108360290072002200436028c0720022006360288070b200241d00a6a200c200820024188076a107d20022802d80a210820022802d00a4101460d0120022802d40a2106200841c8036e21080b200620046a200241e0026a41e80010e908220c41e8006a2005370300200c41f0006a200241086a41d80210e9081a200a41026a210a200441c8036a21042003200741016a2207460d060c010b0b20080d030b1038000b200041003602002007450d002006210a03400240200a220741e8006a2903004202510d0020072d00004102470d00200741086a280200450d00200741046a280200102e0b200741c8036a210a20074198016a109601200441b87c6a22040d000b0b2008450d03200841c8036c450d032006102e0c030b1036000b200128020421070b2000200836020420002006360200200041086a200336020020012007417f6a3602040b200241e00a6a24000bdf1504057f017e077f067e230041c00a6b22022400200241286a200110ad0102400240024002400240024002400240024020022802280d00200228022c210320012001280204220441016a2205360204200520012802084b0d0002402003450d0041002105410020036b2103034020054101460d0520032005417f6a2205470d000b0b20012004360204200128020022052802042203450d01200528020022062d0000210420052003417f6a3602042005200641016a360200200441ff00714104460d02200042033703680c080b200042033703680c070b200042033703680c060b02402004411874411875417f4c0d00420221070c040b20024180076a200110eb01024020022d00800722044105460d00200241fc066a41026a20022d0083073a0000200241e0066a41086a20024194076a290200370300200241f0066a2002419c076a290200370300200220022f0081073b01fc0620022002418c076a2902003703e00620024180076a41086a2802002105200228028407210602400240024002400240200128020022032802042208450d00200328020022092d0000210a20032008417f6a3602042003200941016a36020002400240024002400240200a0e03000102050b41002108200241003a00e80402400340200128020022032802042209450d01200241a8046a20086a2003280200220a2d00003a000020032009417f6a3602042003200a41016a3602002002200841016a22033a00e80420032108200341c000470d000b200241f8016a41086a2203200241a8046a41086a290300370300200241f8016a41106a2208200241a8046a41106a290300370300200241f8016a41186a2209200241a8046a41186a290300370300200241f8016a41206a220a200241a8046a41206a290300370300200241f8016a41286a220b200241a8046a41286a290300370300200241f8016a41306a220c200241a8046a41306a290300370300200241f8016a41386a220d200241a8046a41386a290300370300200220022903a8043703f801200241f8096a41386a220e200d290300370300200241f8096a41306a200c2903002207370300200241f8096a41286a200b290300220f370300200241f8096a41206a200a2903002210370300200241f8096a41186a20092903002211370300200241f8096a41106a20082903002212370300200241f8096a41086a20032903002213370300200220022903f80122143703f809200241e8076a41306a2007370300200241e8076a41286a200f370300200241e8076a41206a2010370300200241e8076a41186a2011370300200241e8076a41106a2012370300200241e8076a41086a2013370300200241e8076a41386a200e290300370300200220143703e807410021080c030b200841ff0171450d04200241003a00e8040c040b41002108200241003a00e80402400340200128020022032802042209450d01200241a8046a20086a2003280200220a2d00003a000020032009417f6a3602042003200a41016a3602002002200841016a22033a00e80420032108200341c000470d000b200241f8016a41086a2203200241a8046a41086a290300370300200241f8016a41106a2208200241a8046a41106a290300370300200241f8016a41186a2209200241a8046a41186a290300370300200241f8016a41206a220a200241a8046a41206a290300370300200241f8016a41286a220b200241a8046a41286a290300370300200241f8016a41306a220c200241a8046a41306a290300370300200241f8016a41386a220d200241a8046a41386a290300370300200220022903a8043703f801200241f8096a41386a220e200d290300370300200241f8096a41306a200c2903002207370300200241f8096a41286a200b290300220f370300200241f8096a41206a200a2903002210370300200241f8096a41186a20092903002211370300200241f8096a41106a20082903002212370300200241f8096a41086a20032903002213370300200220022903f80122143703f809200241e8076a41306a2007370300200241e8076a41286a200f370300200241e8076a41206a2010370300200241e8076a41186a2011370300200241e8076a41106a2012370300200241e8076a41086a2013370300200241e8076a41386a200e290300370300200220143703e807410121080c020b200841ff0171450d03200241003a00e8040c030b41002108200241003a00e9040340200128020022032802042209450d02200241a8046a20086a2003280200220a2d00003a000020032009417f6a3602042003200a41016a3602002002200841016a22033a00e90420032108200341c100470d000b200241f8016a200241a8046a41c10010e9081a200241f8096a200241f8016a41c10010e9081a200241b6096a200241f8096a41c10010e9081a200241e8076a200241b6096a41c10010e9081a410221080b200241a7076a200241e8076a41c10010e9081a200128020022032802042209450d042003280200220a310000211020032009417f6a3602042003200a41016a360200201050450d02420021070c030b200841ff0171450d00200241003a00e9040b20044102470d0420050d030c040b200128020022032802042209450d012003280200220a310000211120032009417f6a3602042003200a41016a36020042022010420f8386220f4204540d01420121072011420886201084420488200f420c882210420120104201561b7e2210200f5a0d010b200241206a200110ad0120022802200d0020022802242109200241086a20011082022002290308a7450d040b20044102470d012005450d010b2006102e0b420221070c020b1038000b200241086a41106a290300211220022903102111200241f8096a41026a200241fc066a41026a2d00003a0000200241f8016a41086a200241e0066a41086a290300370300200241f8016a41106a200241e0066a41106a290300370300200220022f01fc063b01f809200220022903e0063703f801200241a8046a200241a7076a41c10010e9081a200220022f01de063b01b6090b200241f4016a41026a2203200241f8096a41026a2d00003a0000200241d8016a41086a220a200241f8016a41086a290300370300200241d8016a41106a220b200241f8016a41106a290300370300200220022f01f8093b01f401200220022903f8013703d80120024197016a200241a8046a41c10010e9081a200220022f01b6093b01940120074202510d0120024190016a41026a20032d00003a0000200241f8006a41086a200a290300370300200241f8006a41106a200b290300370300200220022f01f4013b019001200220022903d801370378200241376a20024197016a41c10010e9081a200220022f0194013b01340b200241a8046a200110950120022802a8042103200241f8016a200241a8046a41047241ac0210e9081a02402003411c460d00200020043a0000200020022f0190013b000120002005360208200020063602042000200229037837020c200020083a0024200041036a20024192016a2d00003a0000200041146a20024180016a2903003702002000411c6a20024188016a290300370200200041256a200241376a41c10010e9081a20004188016a201237030020004180016a201137030020004190016a2009360200200041f8006a20103703002000200f37037020002007370368200020022f01343b016620004198016a20033602002000419c016a200241f8016a41ac0210e9081a0c020b2000420337036820074202510d01200441ff01714102470d012005450d012006102e0c010b200042033703680b200241c00a6a24000beb0201067f230041206b2202240002400240200041046a2802002203200041086a28020022046b20012802042205200128020022066b2207490d00200028020021030c010b0240200420076a22062004490d00200341017422042006200420064b1b22044108200441084b1b21040240024020030d00200241003602100c010b200241106a41086a410136020020022003360214200220002802003602100b200220044101200241106a107d200241086a2802002104024020022802004101460d00200020022802042203360200200041046a2004360200200041086a280200210420012802002106200128020421050c020b2004450d001036000b1038000b024020062005460d002001200641016a36020020062d0000210602400340200320046a20063a0000200128020022062001280204460d01200441016a21042001200641016a36020020062d000021060c000b0b200441016a21040b200041086a2004360200200241206a24000bde0a04077f017e037f017e230041d0006b22022400200241086a200110ad01024002402002280208450d00200041013602000c010b200228020c21032001200128020441016a2204360204024002400240024002400240200420012802084b0d00200241003a00172002420037021c024020030d00200241286a41086a200241186a41086a28020036020020022002290318370328200241286a21040c050b4100210502400240024002400340200241003a0030200128020022042802042206450d07200428020022072d0000210820042006417f6a3602042004200741016a360200200241013a0030200220083a0028200128020022042802042206450d06200428020022072d0000210820042006417f6a3602042004200741016a360200200241023a0030200220083a0029200128020022042802042206450d06200428020022072d0000210820042006417f6a3602042004200741016a360200200241033a0030200220083a002a200128020022042802042206450d06200428020022072d0000210820042006417f6a3602042004200741016a360200200241043a0030200220083a002b200128020022042802042206450d06200428020022072d0000210820042006417f6a3602042004200741016a360200200241053a0030200220083a002c200128020022042802042206450d06200428020022072d0000210820042006417f6a3602042004200741016a360200200241063a0030200220083a002d200128020022042802042206450d06200428020022072d0000210820042006417f6a3602042004200741016a360200200241073a0030200220083a002e200128020022042802042206450d06200428020022072d0000210820042006417f6a3602042004200741016a360200200220083a002f200229032821092002200110ad0120022802000d0720012802002206280204220720022802042204490d072004417f4c0d020240024020040d00410121080c010b200410322208450d042001280200220628020421070b20072004490d0120082006280200200410e908210a200628020422072004490d042006200720046b3602042006200628020020046a360200200a450d072002200937032802400240200228021c220b450d002002280218210c0c010b41e401102c220b450d044100210c200b4100360200200b41003b018a012002200b36021c200241003602180b200541016a21052004ad220d422086200d84210d024002400340200b418c016a2106200b2f018a012108410021040240034020082004460d01200241286a2006410810ec082207450d03200441016a2104200641086a21062007417f4a0d000b2004417f6a21080b0240200c450d00200c417f6a210c200b20084102746a41e4016a280200210b0c010b0b20022009370338200220083602302002200b36022c200241003602282002200241186a3602342002200d3702442002200a360240200241286a200241c0006a10f0010c010b200b2004410c6c6a220441086a220628020021072006200d370200200441046a220628020021042006200a3602002004450d002007450d002004102e0b20052003470d000b20022d00172104200241286a41086a200241186a41086a2802003602002002200229031837032820040d07200241286a21040c080b2008102e0c050b1038000b1036000b2004200741b8b2c0001056000b200041013602000c050b200241003a00300b200241013a0017200241286a41086a200241186a41086a280200360200200220022903183703280b200241286a10f101410121040c010b200020042902003702042000410c6a200441086a280200360200410021040b2000200436020020012001280204417f6a3602040b200241d0006a24000b931505017f017e097f017e067f230041e0006b2202240020002902102103200028020821042000280200210520002802042106200241206a41086a2207200141086a2802003602002002200129020037032002400240024020062f018a012201410a4b0d00200241c0006a41086a2007280200360200200220022903203703402006418c016a2107200141016a21080240200441016a220920014b220a0d00200720094103746a200720044103746a20082004417f736a41037410ea081a0b200720044103746a2003370000200241d0006a41086a2205200241c0006a41086a28020036020020022002290340370350200641046a21070240200a0d0020072009410c6c6a20072004410c6c6a200120046b410c6c10ea081a0b20072004410c6c6a22042002290350370200200441086a2005280200360200200620083b018a010c010b410521014100210a02400240200441054f0d0041042101200421070c010b41052107024002402004417b6a0e020201000b200441796a21074101210a410621010c010b410021074101210a0b0240024002400240024002400240024002400240024041e401102c2204450d00200441003b018a0120044100360200200420062f018a01220b2001417f736a22083b018a012006418c016a220c20014103746a290000210d200241d0006a41086a200641046a220e2001410c6c6a220941086a280200360200200220092902003703502008410c4f0d01200b200141016a22096b2008470d022004418c016a200c20094103746a200841037410e9081a200441046a200e2009410c6c6a2008410c6c10e9081a200620013b018a01200241306a41086a200241d0006a41086a220b28020036020020022002290350370330200241c0006a41086a220c200241206a41086a2802003602002002200229032037034020042006200a1b2201418c016a210820012f018a01220941016a210a0240200741016a220e20094b220f0d002008200e4103746a200820074103746a200a2007417f736a41037410ea081a0b200820074103746a2003370000200b200c28020036020020022002290340370350200141046a21080240200f0d002008200e410c6c6a20082007410c6c6a200920076b410c6c10ea081a0b20082007410c6c6a22072002290350370200200741086a200241d0006a41086a220b2802003602002001200a3b018a01200241106a41086a200241306a41086a220f2802002201360200200220022903302203370310200241086a22102001360200200220033703000240024002402006280200220a0d00410021050c010b200d21032004211141002101034020062f0188012108200f20102802003602002002200229030037033020052001470d06200a2f018a01220e410b490d024100210941042106024020084105490d0020082106024002402008417b6a0e020201000b200841796a210841012109410621060c010b4100210841012109410521060b419402102c2204450d03200441003b018a01200441003602002004200a2f018a01220c2006417f736a22013b018a01200a418c016a221220064103746a290000210d200b200a41046a22132006410c6c6a220741086a280200360200200220072902003703502001410c4f0d07200c200641016a22076b2001470d082004418c016a201220074103746a200141037410e9081a200441046a20132007410c6c6a2001410c6c10e9081a200a20063b018a01200241c0006a41086a220c200b2802003602002002200229035037034020042f018a01220141016a21122001410c4f0d09200e20066b22062012470d0a200541016a2105200441e4016a200a20074102746a41e4016a200641027410e9081a4100210602400340200420064102746a41e4016a280200220720063b018801200720043602002006200620014922076a220620014b0d0120070d000b0b200241206a41086a2212200c28020036020020022002290340370320200c200f280200360200200220022903303703402004200a20091b2207418c016a210e20072f018a01220141016a21090240200841016a220620014b22130d00200e20064103746a200e20084103746a2008417f7320096a41037410ea081a0b200e20084103746a2003370000200b200c28020036020020022002290340370350200741046a210c024020130d00200c2006410c6c6a200c2008410c6c6a200120086b410c6c10ea081a0b200c2008410c6c6a220c2002290350370200200c41086a200b280200360200200741e4016a210c0240200841026a220e200141026a22014f0d00200c200e4102746a200c20064102746a2006417f7320016a41027410ea081a0b200c20064102746a2011360200200720093b018a010240200620014f0d00200720084102746a41e8016a2106034020062802002201200841016a22083b01880120012007360200200641046a210620092008470d000b0b2010201228020036020020022002290320370300200a2106200a2802002207210a200d2103200421112005210120070d000b0b200f20102802002206360200200220022903002203370330200241c0006a41086a200636020020022003370340200028020c22012802042207450d0920012802002108419402102c2206450d01200620073602e401200641003b018a0120064100360200200741003b01880120072006360200200120063602042001200841016a360200200241d0006a41086a200241c0006a41086a2802003602002002200229034037035020082005470d0a20062f018a012207410b4f0d0b2006200741016a22083b018a01200620074103746a418c016a200d37000020062007410c6c6a2207410c6a200241d8006a280200360200200741046a2002290350370200200620084102746a41e4016a2004360200200420083b018801200420063602002001200128020841016a3602080c0d0b200241c0006a41086a2205200241306a41086a28020036020020022002290330370340200841016a2106200a418c016a2107200a2f018a01220441016a21090240200420084d22010d00200720064103746a200720084103746a2008417f7320096a41037410ea081a0b200720084103746a2003370000200241d0006a41086a200528020036020020022002290340370350200a41046a2107024020010d0020072006410c6c6a20072008410c6c6a200420086b410c6c10ea081a0b20072008410c6c6a22072002290350370200200741086a200241d0006a41086a280200360200200a41e4016a2107200441026a2105024020010d00200841027420076a41086a200720064102746a2006417f7320056a41027410ea081a0b200720064102746a2011360200200a20093b018a01200620054f0d0b200441016a2107200a2006417f6a22064102746a41e8016a2104034020042802002201200641016a22063b0188012001200a360200200441046a210420072006470d000c0c0b0b1036000b2008410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b41ac9cc700413541e49cc7001039000b2001410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b2012410c41f49cc700104d000b41f49bc7004128419c9cc7001039000b41e8aac700412b4194abc7001039000b41e899c700413041989ac7001039000b41a89ac700412041c89ac7001039000b200028020c2206200628020841016a3602080b200241e0006a24000bc80203047f017e017f200028020421012000410036020402402001450d00024020002802002202450d002002417f6a2102034020012802e40121012002450d012002417f6a21020c000b0b024020002802082203450d004100210003402003417f6a210341012102024002400340200020012f018a01490d010240200128020022040d002001102e410021010c030b20012f01880121002001102e2002417f6a2102200421010c000b0b200041016a210420012000410c6c6a220041086a2902002105200041046a2802002106024020024101470d00200421000c010b200120044102746a41e4016a280200210102402002450d000340200241016a220020024f210420012802e40121012000210220040d000b0b410021000b2006450d0202402005a7450d002006102e0b20030d000b0b0340200128020021022001102e2002210120020d000b0b0bc30301067f230041206b22022400200041086a28020022032001107602400240200028020422040d004100210441002100410021030c010b2000280200210520042100034020042f013221062005450d012005417f6a2105200420064102746a4194036a280200210420002802940321000c000b0b200241146a2006360200200241106a20043602002002200336021820024200370308200220003602042002200536020002402003450d00034020022003417f6a3602182002410020001b220628020021050240024020062802082203200628020422042f01324f0d00200421000c010b03400240200428020022000d00410021000c020b200541016a210520042f0130210320002104200320002f01324f0d000b0b200341016a21070240024020050d00200021040c010b200020074102746a4194036a280200210402402005417f6a2205450d00034020042802940321042005417f6a22050d000b0b410021070b2006200436020420064100360200200620073602082001200020034105746a41346a412010742002200020034102746a41046a28020036021c20012002411c6a4104107420022802182203450d01200228020421000c000b0b200241206a24000ba3990204067f1a7e157f407e230041d0ce006b22042400200441d0c6006a200341d00110e9081a200441d0c6006a41abd8c8004109200241a0016a412010840120044180c5006a200441d0c6006a41d00110e9081a200441a0c8006a41386a22024200370300200441a0c8006a41306a22034200370300200441a0c8006a41286a22054200370300200441a0c8006a41206a22064200370300200441a0c8006a41186a22074200370300200441a0c8006a41106a22084200370300200441a0c8006a41086a22094200370300200442003703a04820044180c5006a41b0b7c0004107200441a0c8006a41c0001086012008310000210a2009310000210b2007310000210c20043100b248210d20043100b148210e20043100af48210f20043100ad48211020043100ae48211120043100bf48211220043100be48211320043100bd48211420043100bc48211520043100bb48211620043100ba48211720043100ac48211820043100ab48211920043100aa48211a20043100a948211b20043100a748211c20043100b948211d20043100b748211e20043100b648211f20043100b348212020043100b448212120043100b5482122200420043502a04820043100a4484220868420043100a5484228868420043100a64822234230868442ffffffffffffff03833703e04820042020202142088684202242108684201f42188684201e42208684200c42288684201d4230868442018842ffffffffffffff03833703f84820042023201c42088684200b42108684201b42188684201a4220868420194228868420184230868442038842ffffffffffffff03833703e8482004200c201d42088684201742108684201642188684201542208684201442288684201342308684201242388684420c8842ffffffffffffff03833703804920042018201042088684201142108684200f42188684200a42208684200e42288684200d4230868420204238868442068842ffffffffffffff03833703f04820044188c9006a200441e0c8006a1071200441a8ca006a41186a20022903002220370300200441a8ca006a41106a2003290300220a370300200441a8ca006a41086a2005290300220b37030020042006290300220d3703a84a20043100ba4a210e20043100b94a210f20043100b74a211020043100b54a211120043100b64a211220043100c74a211320043100c64a211420043100c54a211520043100c44a211620043100c34a211720043100c24a211920043100b44a210c20043100b34a211a20043100b24a211b20043100b14a211c20043100af4a211e20043100c14a211820043100bf4a211f20043100be4a212120043100bb4a211d20043100bc4a212220043100bd4a21232004200d42ffffffff0f8320043100ac4a4220868420043100ad4a4228868420043100ae4a220d4230868442ffffffffffffff03833703c84a2004201d202242088684202342108684202142188684201f42208684202042ff018322204228868420184230868442018842ffffffffffffff03833703e04a2004200d201e42088684200b42ff018342108684201c42188684201b42208684201a42288684200c4230868442038842ffffffffffffff03833703d04a20042018420886202084201942108684201742188684201642208684201542288684201442308684201342388684420c8842ffffffffffffff03833703e84a2004200c201142088684201242108684201042188684200a42ff018342208684200f42288684200e42308684201d4238868442068842ffffffffffffff03833703d84a200441f0ca006a200441c8ca006a1071200441d0c6006a41106a2203200441f0ca006a41386a290300220b370300200441d0c6006a41086a2224200441f0ca006a41306a290300220d20042903f84a220e7c3703002003200b20042903804b220f7c370300200441d0c6006a41186a2208200441f0ca006a41c0006a290300221020042903884b22117c370300200441d0c6006a41206a2209200441f0ca006a41c8006a290300221220042903904b22137c370300200420042903984b221420042903f04a22157c3703d046200441a8ce006a41206a2202200441f0ca006a41f0006a290300370300200441a8ce006a41186a2205200441f0ca006a41e8006a290300370300200441a8ce006a41106a2206200441f0ca006a41e0006a290300370300200441a8ce006a41086a2207200441f0ca006a41d8006a290300370300200420042903c04b3703a84e200441d0c1006a20042903e84b220c420042d9e2cbb5c2f2a603420010e808200441a0c2006a200441f0ca006a4198016a29030022184200428ee0b9a98cbfbd1f420010e808200441f0c2006a200441f0ca006a4190016a290300221d420042968c8a82a4c39824420010e808200441c0c3006a200441f0ca006a4188016a2903002220420042d587a4ceaceea43d420010e80820044190c4006a200441f0ca006a4180016a290300220a420042edd39cadab84b215420010e808200441a0c4006a200a420042d9e2cbb5c2f2a603420010e808200441e0c1006a200c420042fabaabb1878ad401420010e808200441b0c2006a2018420042968c8a82a4c39824420010e80820044180c3006a201d420042d587a4ceaceea43d420010e808200441d0c3006a2020420042edd39cadab84b215420010e808200441e0c3006a2020420042d9e2cbb5c2f2a603420010e808200441b0c4006a200a420042fabaabb1878ad401420010e808200441f0c1006a200c420042d2808e80cce8f301420010e808200441c0c2006a2018420042d587a4ceaceea43d420010e80820044190c3006a201d420042edd39cadab84b215420010e808200441a0c3006a201d420042d9e2cbb5c2f2a603420010e808200441f0c3006a2020420042fabaabb1878ad401420010e808200441c0c4006a200a420042d2808e80cce8f301420010e80820044180c2006a200c420042f7f281baccf19c03420010e808200441d0c2006a2018420042edd39cadab84b215420010e808200441e0c2006a2018420042d9e2cbb5c2f2a603420010e808200441b0c3006a201d420042fabaabb1878ad401420010e80820044180c4006a2020420042d2808e80cce8f301420010e808200441d0c4006a200a420042f7f281baccf19c03420010e80820044190c2006a200c420042ffdb95eed98d9001420010e808200441d0c6006a41c8006a2225201220137d42f0ffffffffffff3f7c220c42ffffffffffffff0383201020117d42f0ffffffffffff3f7c22184233887c370300200441d0c6006a41c0006a2226201842ffffffffffffff0383200b200f7d42f0ffffffffffff3f7c22184233887c370300200441d0c6006a41386a2227201842ffffffffffffff0383200d200e7d42f0ffffffffffff3f7c22184233887c370300200441d0c6006a41306a2228201842ffffffffffffff0383201420157d42d0fdffffffffff3f7c22184233887c3703002004200c42338842137e201842ffffffffffffff03837c3703f846200441d0c6006a41f0006a22292002290300370300200441d0c6006a41e8006a222a2005290300370300200441d0c6006a41e0006a222b2006290300370300200441d0c6006a41d8006a222c2007290300370300200420042903a84e3703a047200441d0c6006a4188016a222d20042903c042221320042903f0417c220c2004290390437c221820042903e0437c221d20042903b0447c222020042903b042221420042903e0417c220a2004290380437c220b20042903d0437c220d20042903a0447c220e20042903a042221520042903d0417c220f20042903f0427c221020042903c0437c22112004290390447c2212423388200441a0c2006a41086a290300200441d0c1006a41086a2903007c200f201554ad7c200441f0c2006a41086a2903007c2010200f54ad7c200441c0c3006a41086a2903007c2011201054ad7c20044190c4006a41086a2903007c2012201154ad7c420d86847c220f423388200441b0c2006a41086a290300200441e0c1006a41086a2903007c200a201454ad7c20044180c3006a41086a2903007c200b200a54ad7c200441d0c3006a41086a2903007c200d200b54ad7c200441a0c4006a41086a2903007c200e200d54ad7c200f200e54ad7c420d86847c220a42ffffffffffffff0383370300200441d0c6006a4190016a222e20042903d04222112004290380427c220b20042903a0437c220d20042903f0437c220e20042903c0447c2210200a423388200441c0c2006a41086a290300200441f0c1006a41086a2903007c200c201354ad7c20044190c3006a41086a2903007c2018200c54ad7c200441e0c3006a41086a2903007c201d201854ad7c200441b0c4006a41086a2903007c2020201d54ad7c200a202054ad7c420d86847c220c42ffffffffffffff0383370300200441d0c6006a4198016a222f20042903e04222132004290390427c221820042903b0437c221d2004290380447c222020042903d0447c220a200c423388200441d0c2006a41086a29030020044180c2006a41086a2903007c200b201154ad7c200441a0c3006a41086a2903007c200d200b54ad7c200441f0c3006a41086a2903007c200e200d54ad7c200441c0c4006a41086a2903007c2010200e54ad7c200c201054ad7c420d86847c220c42ffffffffffffff0383370300200441d0c6006a4180016a2230200c423388200441e0c2006a41086a29030020044190c2006a41086a2903007c2018201354ad7c200441b0c3006a41086a2903007c201d201854ad7c20044180c4006a41086a2903007c2020201d54ad7c200441d0c4006a41086a2903007c200a202054ad7c200c200a54ad7c420d868442137e201242ffffffffffffff03837c220c423388200f42ffffffffffffff03837c3703002004200c42ffffffffffffff03833703c84720044190cc006a41206a223120044188c9006a41c8006a223229030037030020044190cc006a41186a223320044188c9006a41c0006a2234290300222037030020044190cc006a41106a223520044188c9006a41386a2236290300221d37030020044190cc006a41086a223720044188c9006a41306a22382903002218370300200420042903b049220c3703904c2004200c2004290388497c220c3703904c203720182004290390497c22183703002035201d2004290398497c221d3703002033202020042903a0497c22203703002031203129030020042903a8497c220a370300200441c03e6a20042903d046220b4200200c420010e808200441c0c1006a200a42002024290300220d42137e420010e808200441f0c0006a202042002003290300220e42137e2212420010e808200441a0c0006a201d42002008290300221042137e2211420010e808200441d03f6a201842002009290300221342137e220f420010e808200441d03e6a20184200200b420010e808200441b0c1006a200c4200200d420010e808200441e0c0006a200a42002012420010e80820044190c0006a202042002011420010e808200441c03f6a201d4200200f420010e808200441e03e6a201d4200200b420010e808200441a0c1006a20184200200d420010e808200441d0c0006a200c4200200e420010e80820044180c0006a200a42002011420010e808200441b03f6a20204200200f420010e808200441f03e6a20204200200b420010e80820044190c1006a201d4200200d420010e808200441c0c0006a20184200200e420010e808200441f03f6a200c42002010420010e808200441a03f6a200a4200200f420010e808200441803f6a200a4200200b420010e80820044180c1006a20204200200d420010e808200441b0c0006a201d4200200e420010e808200441e03f6a201842002010420010e808200441903f6a200c42002013420010e8082038290300210b2036290300210a2034290300211d200429039049210d200429039849210e20042903a0492120200441f03b6a20042903f846220c4200203229030020042903a8497d42f0ffffffffffff3f7c220f42338842137e20042903b0492004290388497d42d0fdffffffffff3f7c221242ffffffffffffff03837c2218420010e808200441f03d6a200f42ffffffffffffff0383201d20207d42f0ffffffffffff3f7c220f4233887c221d42002028290300222042137e420010e808200441b03d6a200f42ffffffffffffff0383200a200e7d42f0ffffffffffff3f7c220f4233887c220a42002027290300220e42137e2213420010e808200441f03c6a200f42ffffffffffffff0383200b200d7d42f0ffffffffffff3f7c220d4233887c220b42002026290300221042137e2211420010e808200441b03c6a200d42ffffffffffffff038320124233887c220d42002025290300221242137e220f420010e808200441e03b6a200d4200200c420010e808200441b03e6a201842002020420010e808200441a03d6a201d42002013420010e808200441e03c6a200a42002011420010e808200441a03c6a200b4200200f420010e808200441d03b6a200b4200200c420010e808200441a03e6a200d42002020420010e808200441e03d6a20184200200e420010e808200441d03c6a201d42002011420010e808200441903c6a200a4200200f420010e808200441c03b6a200a4200200c420010e808200441903e6a200b42002020420010e808200441d03d6a200d4200200e420010e808200441903d6a201842002010420010e808200441803c6a201d4200200f420010e808200441b03b6a201d4200200c420010e808200441803e6a200a42002020420010e808200441c03d6a200b4200200e420010e808200441803d6a200d42002010420010e808200441c03c6a201842002012420010e808200420042903d03c221320042903e03d7c220c20042903903c7c221820042903d03b7c221d20042903a03e7c222020042903a03d221420042903b03e7c220a20042903e03c7c220b20042903a03c7c220d20042903e03b7c220e20042903f03d221520042903f03b7c220f20042903b03d7c221020042903f03c7c221120042903b03c7c2212423388200441f03d6a41086a290300200441f03b6a41086a2903007c200f201554ad7c200441b03d6a41086a2903007c2010200f54ad7c200441f03c6a41086a2903007c2011201054ad7c200441b03c6a41086a2903007c2012201154ad7c420d86847c220f423388200441a03d6a41086a290300200441b03e6a41086a2903007c200a201454ad7c200441e03c6a41086a2903007c200b200a54ad7c200441a03c6a41086a2903007c200d200b54ad7c200441e03b6a41086a2903007c200e200d54ad7c200f200e54ad7c420d86847c220a42ffffffffffffff03833703c84c200420042903803c221120042903903d7c220b20042903c03b7c220d20042903903e7c220e20042903d03d7c2210200a423388200441d03c6a41086a290300200441e03d6a41086a2903007c200c201354ad7c200441903c6a41086a2903007c2018200c54ad7c200441d03b6a41086a2903007c201d201854ad7c200441a03e6a41086a2903007c2020201d54ad7c200a202054ad7c420d86847c220c42ffffffffffffff03833703d04c200420042903b03b221320042903c03c7c221820042903803e7c221d20042903c03d7c222020042903803d7c220a200c423388200441803c6a41086a290300200441903d6a41086a2903007c200b201154ad7c200441c03b6a41086a2903007c200d200b54ad7c200441903e6a41086a2903007c200e200d54ad7c200441d03d6a41086a2903007c2010200e54ad7c200c201054ad7c420d86847c220c42ffffffffffffff03833703d84c2004200c423388200441b03b6a41086a290300200441c03c6a41086a2903007c2018201354ad7c200441803e6a41086a2903007c201d201854ad7c200441c03d6a41086a2903007c2020201d54ad7c200441803d6a41086a2903007c200a202054ad7c200c200a54ad7c420d868442137e201242ffffffffffffff03837c220c42ffffffffffffff03833703b84c2004200c423388200f42ffffffffffffff03837c3703c04c200441e03a6a20042903c847220c420020042903804a2218420010e808200441d03a6a20044188c9006a4198016a290300221d42002030290300222042137e420010e808200441803a6a20044188c9006a4190016a290300220a4200202d290300220e42137e2212420010e808200441b0396a20044188c9006a4188016a290300220b4200202e290300221042137e2211420010e808200441e0386a20044188c9006a4180016a290300220d4200202f290300221342137e220f420010e808200441d0386a200d4200200c420010e808200441a03b6a201842002020420010e808200441c03a6a201d42002012420010e808200441f0396a200a42002011420010e808200441a0396a200b4200200f420010e80820044190396a200b4200200c420010e808200441c0386a200d42002020420010e808200441903b6a20184200200e420010e808200441b03a6a201d42002011420010e808200441e0396a200a4200200f420010e808200441d0396a200a4200200c420010e80820044180396a200b42002020420010e808200441b0386a200d4200200e420010e808200441803b6a201842002010420010e808200441a03a6a201d4200200f420010e808200441903a6a201d4200200c420010e808200441c0396a200a42002020420010e808200441f0386a200b4200200e420010e808200441a0386a200d42002010420010e808200441f03a6a201842002013420010e808200420042903903a221c20042903f03a7c220c20042903c0397c221820042903f0387c221d20042903a0387c222020042903a03a221e20042903803b7c220a20042903d0397c220b2004290380397c220d20042903b0387c220e20042903b03a221f20042903903b7c220f20042903e0397c22102004290390397c221120042903c0387c221220042903c03a222120042903a03b7c221320042903f0397c221420042903a0397c221520042903d0387c221620042903d03a222220042903e03a7c221720042903803a7c221920042903b0397c221a20042903e0387c221b423388200441d03a6a41086a290300200441e03a6a41086a2903007c2017202254ad7c200441803a6a41086a2903007c2019201754ad7c200441b0396a41086a2903007c201a201954ad7c200441e0386a41086a2903007c201b201a54ad7c420d86847c2217423388200441c03a6a41086a290300200441a03b6a41086a2903007c2013202154ad7c200441f0396a41086a2903007c2014201354ad7c200441a0396a41086a2903007c2015201454ad7c200441d0386a41086a2903007c2016201554ad7c2017201654ad7c420d86847c2213423388200441b03a6a41086a290300200441903b6a41086a2903007c200f201f54ad7c200441e0396a41086a2903007c2010200f54ad7c20044190396a41086a2903007c2011201054ad7c200441c0386a41086a2903007c2012201154ad7c2013201254ad7c420d86847c220f423388200441a03a6a41086a290300200441803b6a41086a2903007c200a201e54ad7c200441d0396a41086a2903007c200b200a54ad7c20044180396a41086a2903007c200d200b54ad7c200441b0386a41086a2903007c200e200d54ad7c200f200e54ad7c420d86847c220a42ffffffffffffff03833703804d2004200f42ffffffffffffff03833703f84c2004201342ffffffffffffff03833703f04c2004200a423388200441903a6a41086a290300200441f03a6a41086a2903007c200c201c54ad7c200441c0396a41086a2903007c2018200c54ad7c200441f0386a41086a2903007c201d201854ad7c200441a0386a41086a2903007c2020201d54ad7c200a202054ad7c420d868442137e201b42ffffffffffffff03837c220c423388201742ffffffffffffff03837c3703e84c2004200c42ffffffffffffff03833703e04c20044190356a20042903a047220c420020042903d8492218420010e808200441a0366a20044188c9006a41f0006a290300221d4200202c290300222042137e420010e808200441e0366a20044188c9006a41e8006a290300220a4200202b290300220e42137e2212420010e808200441a0376a20044188c9006a41e0006a290300220b4200202a290300221042137e2211420010e808200441e0376a20044188c9006a41d8006a290300220d42002029290300221342137e220f420010e808200441e0356a200d4200200c420010e808200441a0356a201842002020420010e808200441b0366a201d42002012420010e808200441f0366a200a42002011420010e808200441b0376a200b4200200f420010e808200441f0356a200b4200200c420010e808200441f0376a200d42002020420010e808200441b0356a20184200200e420010e808200441c0366a201d42002011420010e80820044180376a200a4200200f420010e80820044180366a200a4200200c420010e808200441c0376a200b42002020420010e80820044180386a200d4200200e420010e808200441c0356a201842002010420010e808200441d0366a201d4200200f420010e80820044190366a201d4200200c420010e80820044190376a200a42002020420010e808200441d0376a200b4200200e420010e80820044190386a200d42002010420010e808200441d0356a201842002013420010e8082004200429039036221c20042903d0357c220c2004290390377c221820042903d0377c221d2004290390387c222020042903d036221e20042903c0357c220a2004290380367c220b20042903c0377c220d2004290380387c220e20042903c036221f20042903b0357c220f2004290380377c221020042903f0357c221120042903f0377c221220042903b036222120042903a0357c221320042903f0367c221420042903b0377c221520042903e0357c221620042903a03622222004290390357c221720042903e0367c221920042903a0377c221a20042903e0377c221b423388200441a0366a41086a29030020044190356a41086a2903007c2017202254ad7c200441e0366a41086a2903007c2019201754ad7c200441a0376a41086a2903007c201a201954ad7c200441e0376a41086a2903007c201b201a54ad7c420d86847c2217423388200441b0366a41086a290300200441a0356a41086a2903007c2013202154ad7c200441f0366a41086a2903007c2014201354ad7c200441b0376a41086a2903007c2015201454ad7c200441e0356a41086a2903007c2016201554ad7c2017201654ad7c420d86847c2213423388200441c0366a41086a290300200441b0356a41086a2903007c200f201f54ad7c20044180376a41086a2903007c2010200f54ad7c200441f0356a41086a2903007c2011201054ad7c200441f0376a41086a2903007c2012201154ad7c2013201254ad7c420d86847c220f423388200441d0366a41086a290300200441c0356a41086a2903007c200a201e54ad7c20044180366a41086a2903007c200b200a54ad7c200441c0376a41086a2903007c200d200b54ad7c20044180386a41086a2903007c200e200d54ad7c200f200e54ad7c420d86847c220a42338820044190366a41086a290300200441d0356a41086a2903007c200c201c54ad7c20044190376a41086a2903007c2018200c54ad7c200441d0376a41086a2903007c201d201854ad7c20044190386a41086a2903007c2020201d54ad7c200a202054ad7c420d868442137e201b42ffffffffffffff03837c221842ffffffffffffff0383220c3703884d20042018423388201742ffffffffffffff03837c22183703904d2004200a42ffffffffffffff0383221d3703a84d2004200f42ffffffffffffff038322203703a04d2004201342ffffffffffffff0383220a3703984d200441b0cd006a41086a2231201820187c370300200441b0cd006a41106a2224200a200a7c370300200441b0cd006a41186a2225202020207c370300200441b0cd006a41206a2226201d201d7c3703002004200c200c7c3703b04d20042903c04c211c20042903c84c211e20042903d04c211f20042903d84c212120042903b84c2122200420042903803f222320042903903f7c220c2004290380417c221820042903b0407c221d20042903e03f7c222020042903a03f223920042903f03f7c220a20042903f03e7c220b2004290390417c220d20042903c0407c220e200429038040223a20042903d0407c220f20042903b03f7c221020042903e03e7c221120042903a0417c221220042903e040223b20042903b0417c22132004290390407c221420042903c03f7c221520042903d03e7c221620042903c041223c20042903c03e7c221720042903f0407c221920042903a0407c221a20042903d03f7c221b423388200441c0c1006a41086a290300200441c03e6a41086a2903007c2017203c54ad7c200441f0c0006a41086a2903007c2019201754ad7c200441a0c0006a41086a2903007c201a201954ad7c200441d03f6a41086a2903007c201b201a54ad7c420d86847c2217423388200441e0c0006a41086a290300200441b0c1006a41086a2903007c2013203b54ad7c20044190c0006a41086a2903007c2014201354ad7c200441c03f6a41086a2903007c2015201454ad7c200441d03e6a41086a2903007c2016201554ad7c2017201654ad7c420d86847c221342338820044180c0006a41086a290300200441d0c0006a41086a2903007c200f203a54ad7c200441b03f6a41086a2903007c2010200f54ad7c200441e03e6a41086a2903007c2011201054ad7c200441a0c1006a41086a2903007c2012201154ad7c2013201254ad7c420d86847c220f423388200441a03f6a41086a290300200441f03f6a41086a2903007c200a203954ad7c200441f03e6a41086a2903007c200b200a54ad7c20044190c1006a41086a2903007c200d200b54ad7c200441c0c0006a41086a2903007c200e200d54ad7c200f200e54ad7c420d86847c220a423388200441803f6a41086a290300200441903f6a41086a2903007c200c202354ad7c20044180c1006a41086a2903007c2018200c54ad7c200441b0c0006a41086a2903007c201d201854ad7c200441e03f6a41086a2903007c2020201d54ad7c200a202054ad7c420d868442137e201b42ffffffffffffff03837c220c423388201742ffffffffffffff03837c220e3703884e2004200c42ffffffffffffff0383220b3703804e2004200a42ffffffffffffff0383220a3703a04e2004200f42ffffffffffffff0383220d3703984e2004201342ffffffffffffff0383220f3703904e2004200b20042903b84c7c3703804e2004200e20042903c04c7c3703884e2004200f20042903c84c7c3703904e2004200d20042903d04c7c3703984e2004200a20042903d84c7c3703a04e2002202629030037030020052025290300222037030020062024290300221d370300200720312903002218370300200420042903b04d220c3703a84e2004200c20042903e04c7c220c3703a84e2007201820042903e84c7c22183703002006201d20042903f04c7c221d3703002005202020042903f84c7c22123703002002200229030020042903804d7c2215370300200441f0276a202629030020042903804d7d42f0ffffffffffff3f7c221042338842137e20042903b04d20042903e04c7d42d0fdffffffffff3f7c221142ffffffffffffff03837c22204200200a20217d42f0ffffffffffff3f7c221342338842137e200b20227d42d0fdffffffffff3f7c221442ffffffffffffff03837c220a420010e80820044180356a201342ffffffffffffff0383200d201f7d42f0ffffffffffff3f7c220d4233887c220b4200203129030020042903e84c7d42f0ffffffffffff3f7c221642ffffffffffffff038320114233887c221342137e2223420010e80820044180346a200d42ffffffffffffff0383200f201e7d42f0ffffffffffff3f7c220f4233887c220d4200202429030020042903f04c7d42f0ffffffffffff3f7c221142ffffffffffffff038320164233887c221942137e221e420010e80820044180336a200f42ffffffffffffff0383200e201c7d42f0ffffffffffff3f7c220f4233887c220e4200202529030020042903f84c7d42f0ffffffffffff3f7c221642ffffffffffffff038320114233887c221c42137e221b420010e808200441d0266a200f42ffffffffffffff038320144233887c220f4200201042ffffffffffffff038320164233887c222142137e2216420010e808200441c0266a200f42002020420010e808200441e0276a200a42002013420010e808200441f0336a200b4200201e420010e808200441f0326a200d4200201b420010e80820044180326a200e42002016420010e80820044180316a200e42002020420010e808200441b0266a200f42002013420010e808200441d0276a200a42002019420010e808200441e0326a200b4200201b420010e808200441f0316a200d42002016420010e808200441f0306a200d42002020420010e808200441e0346a200e42002013420010e80820044180256a200f42002019420010e808200441c0276a200a4200201c420010e808200441e0316a200b42002016420010e808200441e0306a200b42002020420010e808200441d0346a200d42002013420010e808200441c0336a200e42002019420010e808200441d0236a200f4200201c420010e808200441b0276a200a42002021420010e808200441902b6a200c420020042903804e2210420010e808200441802d6a20042903a04e221a4200201842137e420010e808200441802e6a20042903984e22174200201d42137e2239420010e808200441802f6a20042903904e22144200201242137e2222420010e80820044180306a20042903884e22114200201542137e221f420010e808200441f02f6a20114200200c420010e808200441a02b6a201042002018420010e808200441f02c6a201a42002039420010e808200441f02d6a201742002022420010e808200441f02e6a20144200201f420010e808200441e02e6a20144200200c420010e808200441e02f6a201142002018420010e808200441b02b6a20104200201d420010e808200441e02c6a201a42002022420010e808200441e02d6a20174200201f420010e808200441d02d6a20174200200c420010e808200441d02e6a201442002018420010e808200441d02f6a20114200201d420010e808200441c02b6a201042002012420010e808200441d02c6a201a4200201f420010e808200441c02c6a201a4200200c420010e808200441c02d6a201742002018420010e808200441c02e6a20144200201d420010e808200441c02f6a201142002012420010e808200441d02b6a201042002015420010e808200441d0306a20204200200c420010e808200441f0346a201542002023420010e808200441e0336a20124200201e420010e808200441d0326a201d4200201b420010e808200441d0316a201842002016420010e808200441c0306a201842002020420010e808200441c0346a200c42002013420010e808200441d0336a20154200201e420010e808200441c0326a20124200201b420010e808200441c0316a201d42002016420010e808200441b0306a201d42002020420010e808200441b0346a201842002013420010e808200441b0336a200c42002019420010e808200441b0326a20154200201b420010e808200441b0316a201242002016420010e808200441a0306a201242002020420010e808200441a0346a201d42002013420010e808200441a0336a201842002019420010e808200441a0326a200c4200201c420010e808200441a0316a201542002016420010e80820044190306a201542002020420010e80820044190346a201242002013420010e80820044190336a201d42002019420010e80820044190326a20184200201c420010e80820044190316a200c42002021420010e808200441a0276a20104200200a420010e808200441902f6a200b4200201142137e420010e808200441a02e6a200d4200201442137e221d420010e808200441b02d6a200e4200201742137e2218420010e80820044190106a200f4200201a42137e220c420010e80820044180106a200f42002010420010e80820044190276a200a42002011420010e808200441902e6a200b4200201d420010e808200441a02d6a200d42002018420010e808200441b02c6a200e4200200c420010e808200441e02b6a200e42002010420010e808200441f00f6a200f42002011420010e80820044180276a200a42002014420010e808200441902d6a200b42002018420010e808200441a02c6a200d4200200c420010e808200441f02b6a200d42002010420010e808200441b02f6a200e42002011420010e808200441900f6a200f42002014420010e808200441f0266a200a42002017420010e808200441902c6a200b4200200c420010e808200441802c6a200b42002010420010e808200441a02f6a200d42002011420010e808200441b02e6a200e42002014420010e808200441b00e6a200f42002017420010e808200441e0266a200a4200201a420010e808200420042903e02c221320042903b02b7c220c20042903e02d7c221820042903e02e7c221d20042903e02f7c222020042903f02c221420042903a02b7c220a20042903f02d7c220b20042903f02e7c220d20042903f02f7c220e20042903802d221520042903902b7c220f20042903802e7c221020042903802f7c22112004290380307c2212423388200441802d6a41086a290300200441902b6a41086a2903007c200f201554ad7c200441802e6a41086a2903007c2010200f54ad7c200441802f6a41086a2903007c2011201054ad7c20044180306a41086a2903007c2012201154ad7c420d86847c220f423388200441f02c6a41086a290300200441a02b6a41086a2903007c200a201454ad7c200441f02d6a41086a2903007c200b200a54ad7c200441f02e6a41086a2903007c200d200b54ad7c200441f02f6a41086a2903007c200e200d54ad7c200f200e54ad7c420d86847c220a42ffffffffffffff038322173703c04d200420042903d02c221120042903c02b7c220b20042903d02d7c220d20042903d02e7c220e20042903d02f7c2210200a423388200441e02c6a41086a290300200441b02b6a41086a2903007c200c201354ad7c200441e02d6a41086a2903007c2018200c54ad7c200441e02e6a41086a2903007c201d201854ad7c200441e02f6a41086a2903007c2020201d54ad7c200a202054ad7c420d86847c220c42ffffffffffffff038322213703c84d200420042903c02c221320042903d02b7c221820042903c02d7c221d20042903c02e7c222020042903c02f7c220a200c423388200441d02c6a41086a290300200441c02b6a41086a2903007c200b201154ad7c200441d02d6a41086a2903007c200d200b54ad7c200441d02e6a41086a2903007c200e200d54ad7c200441d02f6a41086a2903007c2010200e54ad7c200c201054ad7c420d86847c220c42ffffffffffffff038322233703d04d2004200c423388200441c02c6a41086a290300200441d02b6a41086a2903007c2018201354ad7c200441c02d6a41086a2903007c201d201854ad7c200441c02e6a41086a2903007c2020201d54ad7c200441c02f6a41086a2903007c200a202054ad7c200c200a54ad7c420d868442137e201242ffffffffffffff03837c220c42ffffffffffffff038322143703b04d2004200c423388200f42ffffffffffffff03837c22153703b84d20044180286a20042903903022222004290390317c220c2004290390347c22182004290390337c221d2004290390327c222020042903a031223920042903a0327c220a20042903a0307c220b20042903a0347c220d20042903a0337c220e20042903b032223a20042903b0337c220f20042903b0317c221020042903b0307c221120042903b0347c221220042903d033223b20042903c0347c221320042903c0327c221620042903c0317c221920042903c0307c221a20042903f034223c20042903d0307c221b20042903e0337c221c20042903d0327c221e20042903d0317c221f423388200441f0346a41086a290300200441d0306a41086a2903007c201b203c54ad7c200441e0336a41086a2903007c201c201b54ad7c200441d0326a41086a2903007c201e201c54ad7c200441d0316a41086a2903007c201f201e54ad7c420d86847c221b423388200441d0336a41086a290300200441c0346a41086a2903007c2013203b54ad7c200441c0326a41086a2903007c2016201354ad7c200441c0316a41086a2903007c2019201654ad7c200441c0306a41086a2903007c201a201954ad7c201b201a54ad7c420d86847c2213423388200441b0326a41086a290300200441b0336a41086a2903007c200f203a54ad7c200441b0316a41086a2903007c2010200f54ad7c200441b0306a41086a2903007c2011201054ad7c200441b0346a41086a2903007c2012201154ad7c2013201254ad7c420d86847c220f423388200441a0316a41086a290300200441a0326a41086a2903007c200a203954ad7c200441a0306a41086a2903007c200b200a54ad7c200441a0346a41086a2903007c200d200b54ad7c200441a0336a41086a2903007c200e200d54ad7c200f200e54ad7c420d86847c220a42ffffffffffffff0383223d42f0ffffffffffff3f7c223e20237d221242338842137e200a42338820044190306a41086a29030020044190316a41086a2903007c200c202254ad7c20044190346a41086a2903007c2018200c54ad7c20044190336a41086a2903007c201d201854ad7c20044190326a41086a2903007c2020201d54ad7c200a202054ad7c420d868442137e201f42ffffffffffffff03837c222042ffffffffffffff0383223f42d0fdffffffffff3f7c224020147d220a42ffffffffffffff03837c220c4200203f20147c2218420010e808200441c0296a203d20237c221d42002020423388201b42ffffffffffffff03837c224142f0ffffffffffff3f7c224220157d220b42ffffffffffffff0383200a4233887c222042137e420010e808200441a02a6a200f42ffffffffffffff0383224320217c220a4200201342ffffffffffffff0383224442f0ffffffffffff3f7c224520177d220d42ffffffffffffff0383200b4233887c220e42137e2213420010e808200441b02a6a204420177c220b4200204342f0ffffffffffff3f7c224620217d220f42ffffffffffffff0383200d4233887c221042137e2211420010e808200441d0296a204120157c220d4200201242ffffffffffffff0383200f4233887c221242137e220f420010e80820044180296a200d4200200c420010e80820044190286a201842002020420010e808200441902a6a201d42002013420010e808200441e02a6a200a42002011420010e808200441c02a6a200b4200200f420010e808200441f0286a200b4200200c420010e808200441b0296a200d42002020420010e808200441a0286a20184200200e420010e808200441d02a6a201d42002011420010e808200441f02a6a200a4200200f420010e808200441e0286a200a4200200c420010e808200441a0296a200b42002020420010e808200441e0296a200d4200200e420010e808200441b0286a201842002010420010e808200441802b6a201d4200200f420010e808200441d0286a201d4200200c420010e80820044190296a200a42002020420010e808200441802a6a200b4200200e420010e808200441f0296a200d42002010420010e808200441c0286a201842002012420010e80820044180216a2014420020042903e030222220042903b0277c220c20042903d0347c221820042903c0337c221d20042903d0237c222020042903e031223920042903c0277c220a20042903f0307c220b20042903e0347c220d2004290380257c220e20042903e032223a20042903d0277c220f20042903f0317c22102004290380317c221120042903b0267c221220042903f033223b20042903e0277c221320042903f0327c22162004290380327c221920042903c0267c221a200429038035223c20042903f0277c221b2004290380347c221c2004290380337c221e20042903d0267c221f42338820044180356a41086a290300200441f0276a41086a2903007c201b203c54ad7c20044180346a41086a2903007c201c201b54ad7c20044180336a41086a2903007c201e201c54ad7c200441d0266a41086a2903007c201f201e54ad7c420d86847c221b423388200441f0336a41086a290300200441e0276a41086a2903007c2013203b54ad7c200441f0326a41086a2903007c2016201354ad7c20044180326a41086a2903007c2019201654ad7c200441c0266a41086a2903007c201a201954ad7c201b201a54ad7c420d86847c2213423388200441e0326a41086a290300200441d0276a41086a2903007c200f203a54ad7c200441f0316a41086a2903007c2010200f54ad7c20044180316a41086a2903007c2011201054ad7c200441b0266a41086a2903007c2012201154ad7c2013201254ad7c420d86847c220f423388200441e0316a41086a290300200441c0276a41086a2903007c200a203954ad7c200441f0306a41086a2903007c200b200a54ad7c200441e0346a41086a2903007c200d200b54ad7c20044180256a41086a2903007c200e200d54ad7c200f200e54ad7c420d86847c220a423388200441e0306a41086a290300200441b0276a41086a2903007c200c202254ad7c200441d0346a41086a2903007c2018200c54ad7c200441c0336a41086a2903007c201d201854ad7c200441d0236a41086a2903007c2020201d54ad7c200a202054ad7c420d868442137e201f42ffffffffffffff03837c220c42ffffffffffffff03832218420010e808200441b0226a200a42ffffffffffffff0383221d4200201542137e420010e808200441e0236a200f42ffffffffffffff038322204200201742137e220e420010e80820044190256a201342ffffffffffffff0383220a4200202142137e220d420010e808200441a0226a200c423388201b42ffffffffffffff03837c220b4200202342137e220c420010e80820044190226a200b42002014420010e808200441f0206a201842002015420010e808200441c0226a201d4200200e420010e808200441f0236a20204200200d420010e808200441a0256a200a4200200c420010e808200441b0256a200a42002014420010e80820044180226a200b42002015420010e808200441e0206a201842002017420010e808200441d0226a201d4200200d420010e80820044180246a20204200200c420010e80820044190246a202042002014420010e808200441c0256a200a42002015420010e808200441f0216a200b42002017420010e808200441d0206a201842002021420010e808200441e0226a201d4200200c420010e808200441f0226a201d42002014420010e808200441a0246a202042002015420010e808200441d0256a200a42002017420010e808200441e0216a200b42002021420010e808200441c0206a201842002023420010e808200420042903d022221c20042903e0207c220c2004290380247c220d20042903b0257c220e2004290380227c220f20042903c022221e20042903f0207c221020042903f0237c221120042903a0257c22122004290390227c221320042903b022221f2004290380217c221620042903e0237c22192004290390257c221a20042903a0227c221b423388200441b0226a41086a29030020044180216a41086a2903007c2016201f54ad7c200441e0236a41086a2903007c2019201654ad7c20044190256a41086a2903007c201a201954ad7c200441a0226a41086a2903007c201b201a54ad7c420d86847c2216423388200441c0226a41086a290300200441f0206a41086a2903007c2010201e54ad7c200441f0236a41086a2903007c2011201054ad7c200441a0256a41086a2903007c2012201154ad7c20044190226a41086a2903007c2013201254ad7c2016201354ad7c420d86847c221042ffffffffffffff03833703904e200420042903e022221a20042903d0207c22112004290390247c221220042903c0257c221320042903f0217c22192010423388200441d0226a41086a290300200441e0206a41086a2903007c200c201c54ad7c20044180246a41086a2903007c200d200c54ad7c200441b0256a41086a2903007c200e200d54ad7c20044180226a41086a2903007c200f200e54ad7c2010200f54ad7c420d86847c220c42ffffffffffffff03833703984e200420042903f022221c20042903c0207c220d20042903a0247c220e20042903d0257c220f20042903e0217c2210200c423388200441e0226a41086a290300200441d0206a41086a2903007c2011201a54ad7c20044190246a41086a2903007c2012201154ad7c200441c0256a41086a2903007c2013201254ad7c200441f0216a41086a2903007c2019201354ad7c200c201954ad7c420d86847c220c42ffffffffffffff03833703a04e2004200c423388200441f0226a41086a290300200441c0206a41086a2903007c200d201c54ad7c200441a0246a41086a2903007c200e200d54ad7c200441d0256a41086a2903007c200f200e54ad7c200441e0216a41086a2903007c2010200f54ad7c200c201054ad7c420d868442137e201b42ffffffffffffff03837c220c42ffffffffffffff03833703804e2004200c423388201642ffffffffffffff03837c3703884e20044190286a41086a2903002147200441902a6a41086a2903002148200429039028213b20042903902a210c200441e02a6a41086a290300214920042903e02a213c200441c02a6a41086a290300214a20042903c02a214b20044180296a41086a290300214c200429038029214d20044180286a41086a290300214e200441c0296a41086a290300214f200429038028215020042903c029210d200441a02a6a41086a290300215120042903a02a2152200441b02a6a41086a290300215320042903b02a2154200441d0296a41086a290300215520042903d029215620042903d02a210f20042903a028211f20042903f02a212220042903f028213920042903b029213a200441d02a6a41086a2903002157200441a0286a41086a2903002158200441f02a6a41086a2903002159200441f0286a41086a290300215a200441b0296a41086a290300215b20042903802b211020042903b028211a20042903e028211b20042903a029211c20042903e029211e200441802b6a41086a290300215c200441b0286a41086a290300215d200441e0286a41086a290300215e200441a0296a41086a290300215f200441e0296a41086a290300216020042903c028211220042903d0282111200429039029211320042903802a211620042903f0292119200441c0286a41086a2903002161200441d0286a41086a290300216220044190296a41086a2903002163200441802a6a41086a2903002164200441f0296a41086a290300216520044188c9006a20044180ce006a4101106e200441e01c6a200429038849220e4200201920162013201120127c22127c22137c22167c2219201e201c201b2010201a7c221a7c221b7c221c7c221e203a20392022200f201f7c221f7c22227c22397c223a204d204b203c200c203b7c223b7c223c7c224b7c224d205620542052200d20507c22507c22527c22547c2256423388205520532051204f204e7c2050200d54ad7c7c2052205054ad7c7c2054205254ad7c7c2056205454ad7c420d86847c220d423388204c204a2049204820477c203b200c54ad7c7c203c203b54ad7c7c204b203c54ad7c7c204d204b54ad7c200d204d54ad7c420d86847c223b423388205b205a2059205720587c201f200f54ad7c7c2022201f54ad7c7c2039202254ad7c7c203a203954ad7c203b203a54ad7c420d86847c221f4233882060205f205e205c205d7c201a201054ad7c7c201b201a54ad7c7c201c201b54ad7c7c201e201c54ad7c201f201e54ad7c420d86847c220f423388206520642063206220617c2012201154ad7c7c2013201254ad7c7c2016201354ad7c7c2019201654ad7c200f201954ad7c420d868442137e205642ffffffffffffff03837c221142ffffffffffffff0383220c420010e808200441e01f6a200f42ffffffffffffff038322194200200429039049220f42137e420010e808200441901f6a201f42ffffffffffffff038322164200200429039849221042137e221b420010e808200441c01e6a203b42ffffffffffffff03832213420020042903a049221242137e221a420010e808200441f01d6a2011423388200d42ffffffffffffff03837c220d420020042903a849221c42137e2211420010e808200441f01c6a200d4200200e420010e808200441d01f6a200c4200200f420010e808200441801f6a20194200201b420010e808200441b01e6a20164200201a420010e808200441e01d6a201342002011420010e808200441801d6a20134200200e420010e808200441c01f6a200d4200200f420010e808200441f01e6a200c42002010420010e808200441a01e6a20194200201a420010e808200441d01d6a201642002011420010e808200441901d6a20164200200e420010e808200441b01f6a20134200200f420010e808200441e01e6a200d42002010420010e808200441901e6a200c42002012420010e808200441c01d6a201942002011420010e808200441a01d6a20194200200e420010e808200441a01f6a20164200200f420010e808200441d01e6a201342002010420010e808200441801e6a200d42002012420010e808200441b01d6a200c4200201c420010e808200420042903a01e223a20042903f01e7c220e20042903d01d7c220f20042903801d7c221020042903c01f7c221120042903801f223b20042903d01f7c221220042903b01e7c221a20042903e01d7c221b20042903f01c7c221c20042903e01f223c20042903e01c7c221e20042903901f7c221f20042903c01e7c222220042903f01d7c2239423388200441e01f6a41086a290300200441e01c6a41086a2903007c201e203c54ad7c200441901f6a41086a2903007c201f201e54ad7c200441c01e6a41086a2903007c2022201f54ad7c200441f01d6a41086a2903007c2039202254ad7c420d86847c221e423388200441801f6a41086a290300200441d01f6a41086a2903007c2012203b54ad7c200441b01e6a41086a2903007c201a201254ad7c200441e01d6a41086a2903007c201b201a54ad7c200441f01c6a41086a2903007c201c201b54ad7c201e201c54ad7c420d86847c221242ffffffffffffff03833703b84e200420042903c01d222220042903901e7c221a20042903901d7c221b20042903b01f7c221c20042903e01e7c221f2012423388200441a01e6a41086a290300200441f01e6a41086a2903007c200e203a54ad7c200441d01d6a41086a2903007c200f200e54ad7c200441801d6a41086a2903007c2010200f54ad7c200441c01f6a41086a2903007c2011201054ad7c2012201154ad7c420d86847c220e42ffffffffffffff03833703c04e200420042903a01d223a20042903b01d7c220f20042903a01f7c221020042903d01e7c221120042903801e7c2212200e423388200441c01d6a41086a290300200441901e6a41086a2903007c201a202254ad7c200441901d6a41086a2903007c201b201a54ad7c200441b01f6a41086a2903007c201c201b54ad7c200441e01e6a41086a2903007c201f201c54ad7c200e201f54ad7c420d86847c220e42ffffffffffffff03833703c84e2004200e423388200441a01d6a41086a290300200441b01d6a41086a2903007c200f203a54ad7c200441a01f6a41086a2903007c2010200f54ad7c200441d01e6a41086a2903007c2011201054ad7c200441801e6a41086a2903007c2012201154ad7c200e201254ad7c420d868442137e203942ffffffffffffff03837c220e42ffffffffffffff03833703a84e2004200e423388201e42ffffffffffffff03837c3703b04e200441f0ca006a41106a4200370300200441f0ca006a41186a4200370300200441f0ca006a41206a4200370300200442003703f84a200442013703f04a200441d0c6006a200441f0ca006a200441a8ce006a106f200441c0146a200c420020042903d846220e420010e808200441e0156a200441d0c6006a41286a290300220f4200200d42137e420010e80820044180176a200929030022104200201342137e221c420010e808200441a0186a200829030022114200201642137e221b420010e808200441c0196a200329030022124200201942137e221a420010e808200441b0196a20124200200c420010e808200441b0146a200e4200200d420010e808200441d0156a200f4200201c420010e808200441f0166a20104200201b420010e80820044190186a20114200201a420010e80820044180186a20114200200c420010e808200441a0196a20124200200d420010e808200441a0146a200e42002013420010e808200441c0156a200f4200201b420010e808200441e0166a20104200201a420010e808200441d0166a20104200200c420010e808200441f0176a20114200200d420010e80820044190196a201242002013420010e808200441c0136a200e42002016420010e808200441b0156a200f4200201a420010e808200441a0156a200f4200200c420010e808200441c0166a20104200200d420010e808200441e0176a201142002013420010e80820044180196a201242002016420010e808200441e0126a200e42002019420010e80820044180126a20042903804e220c4200200e420010e80820044190156a200f420020042903884e220d42137e420010e808200441b0166a2010420020042903904e221342137e221b420010e808200441d0176a2011420020042903984e221942137e221a420010e808200441f0186a2012420020042903a04e221c42137e2216420010e808200441e0186a20124200200c420010e808200441f0116a200e4200200d420010e80820044180156a200f4200201b420010e808200441a0166a20104200201a420010e808200441c0176a201142002016420010e808200441b0176a20114200200c420010e808200441d0186a20124200200d420010e808200441e0116a200e42002013420010e808200441f0146a200f4200201a420010e80820044190166a201042002016420010e80820044180166a20104200200c420010e808200441a0176a20114200200d420010e808200441c0186a201242002013420010e808200441d0116a200e42002019420010e808200441e0146a200f42002016420010e808200441d0146a200f4200200c420010e808200441f0156a20104200200d420010e80820044190176a201142002013420010e808200441b0186a201242002019420010e808200441c0116a200e4200201c420010e808200441c00d6a20042903802c224b20042903e0267c220c20042903a02f7c220d20042903b02e7c220e20042903b00e7c220f20042903902c224d20042903f0267c221020042903f02b7c221120042903b02f7c221220042903900f7c221320042903902d22502004290380277c221620042903a02c7c221920042903e02b7c221a20042903f00f7c221b20042903902e22522004290390277c221c20042903a02d7c221e20042903b02c7c221f2004290380107c222220042903902f225420042903a0277c223920042903a02e7c223a20042903b02d7c223b2004290390107c223c423388200441902f6a41086a290300200441a0276a41086a2903007c2039205454ad7c200441a02e6a41086a2903007c203a203954ad7c200441b02d6a41086a2903007c203b203a54ad7c20044190106a41086a2903007c203c203b54ad7c420d86847c2239423388200441902e6a41086a29030020044190276a41086a2903007c201c205254ad7c200441a02d6a41086a2903007c201e201c54ad7c200441b02c6a41086a2903007c201f201e54ad7c20044180106a41086a2903007c2022201f54ad7c2039202254ad7c420d86847c221e423388200441902d6a41086a29030020044180276a41086a2903007c2016205054ad7c200441a02c6a41086a2903007c2019201654ad7c200441e02b6a41086a2903007c201a201954ad7c200441f00f6a41086a2903007c201b201a54ad7c201e201b54ad7c420d86847c2216423388200441902c6a41086a290300200441f0266a41086a2903007c2010204d54ad7c200441f02b6a41086a2903007c2011201054ad7c200441b02f6a41086a2903007c2012201154ad7c200441900f6a41086a2903007c2013201254ad7c2016201354ad7c420d86847c2210423388200441802c6a41086a290300200441e0266a41086a2903007c200c204b54ad7c200441a02f6a41086a2903007c200d200c54ad7c200441b02e6a41086a2903007c200e200d54ad7c200441b00e6a41086a2903007c200f200e54ad7c2010200f54ad7c420d868442137e203c42ffffffffffffff03837c225642ffffffffffffff0383220d420020042903d014224720042903c0117c220c20042903f0157c220e2004290390177c220f20042903b0187c221120042903e014224820042903d0117c22122004290380167c221320042903a0177c221920042903c0187c221a20042903f014224920042903e0117c221b2004290390167c221c20042903b0177c221f20042903d0187c2222200429038015224a20042903f0117c223a20042903a0167c223b20042903c0177c223c20042903e0187c224b200429039015224c2004290380127c224d20042903b0167c225020042903d0177c225220042903f0187c225442338820044190156a41086a29030020044180126a41086a2903007c204d204c54ad7c200441b0166a41086a2903007c2050204d54ad7c200441d0176a41086a2903007c2052205054ad7c200441f0186a41086a2903007c2054205254ad7c420d86847c224d42338820044180156a41086a290300200441f0116a41086a2903007c203a204a54ad7c200441a0166a41086a2903007c203b203a54ad7c200441c0176a41086a2903007c203c203b54ad7c200441e0186a41086a2903007c204b203c54ad7c204d204b54ad7c420d86847c223a423388200441f0146a41086a290300200441e0116a41086a2903007c201b204954ad7c20044190166a41086a2903007c201c201b54ad7c200441b0176a41086a2903007c201f201c54ad7c200441d0186a41086a2903007c2022201f54ad7c203a202254ad7c420d86847c221c423388200441e0146a41086a290300200441d0116a41086a2903007c2012204854ad7c20044180166a41086a2903007c2013201254ad7c200441a0176a41086a2903007c2019201354ad7c200441c0186a41086a2903007c201a201954ad7c201c201a54ad7c420d86847c2212423388200441d0146a41086a290300200441c0116a41086a2903007c200c204754ad7c200441f0156a41086a2903007c200e200c54ad7c20044190176a41086a2903007c200f200e54ad7c200441b0186a41086a2903007c2011200f54ad7c2012201154ad7c420d868442137e205442ffffffffffffff03837c220c42ffffffffffffff0383221a420010e808200441900e6a201242ffffffffffffff0383221b42002056423388203942ffffffffffffff03837c220e42137e420010e808200441b00f6a201c42ffffffffffffff0383221c4200201e42ffffffffffffff0383221342137e2211420010e808200441e00e6a203a42ffffffffffffff0383221e4200201642ffffffffffffff0383221642137e220f420010e808200441f00c6a200c423388204d42ffffffffffffff03837c221f4200201042ffffffffffffff0383221942137e220c420010e808200441b00d6a201f4200200d420010e808200441800e6a201a4200200e420010e808200441a00f6a201b42002011420010e808200441d00e6a201c4200200f420010e808200441e00c6a201e4200200c420010e808200441a00d6a201e4200200d420010e808200441f00d6a201f4200200e420010e808200441c00f6a201a42002013420010e808200441c00e6a201b4200200f420010e808200441d00c6a201c4200200c420010e808200441900d6a201c4200200d420010e808200441e00d6a201e4200200e420010e808200441d00f6a201f42002013420010e808200441f00e6a201a42002016420010e808200441f00b6a201b4200200c420010e808200441800d6a201b4200200d420010e808200441d00d6a201c4200200e420010e808200441e00f6a201e42002013420010e808200441800f6a201f42002016420010e808200441a00e6a201a42002019420010e808200441b00a6a20042903800d224c20042903a00e7c220c20042903d00d7c220f20042903e00f7c221020042903800f7c221120042903f00b224e20042903f00e7c221220042903900d7c222220042903e00d7c223920042903d00f7c223a20042903c00e224f20042903c00f7c223b20042903d00c7c223c20042903a00d7c224b20042903f00d7c224d20042903a00f225120042903800e7c225020042903d00e7c225220042903e00c7c225420042903b00d7c225620042903900e225320042903c00d7c224720042903b00f7c224820042903e00e7c224920042903f00c7c224a423388200441900e6a41086a290300200441c00d6a41086a2903007c2047205354ad7c200441b00f6a41086a2903007c2048204754ad7c200441e00e6a41086a2903007c2049204854ad7c200441f00c6a41086a2903007c204a204954ad7c420d86847c2247423388200441a00f6a41086a290300200441800e6a41086a2903007c2050205154ad7c200441d00e6a41086a2903007c2052205054ad7c200441e00c6a41086a2903007c2054205254ad7c200441b00d6a41086a2903007c2056205454ad7c2047205654ad7c420d86847c2250423388200441c00e6a41086a290300200441c00f6a41086a2903007c203b204f54ad7c200441d00c6a41086a2903007c203c203b54ad7c200441a00d6a41086a2903007c204b203c54ad7c200441f00d6a41086a2903007c204d204b54ad7c2050204d54ad7c420d86847c223b423388200441f00b6a41086a290300200441f00e6a41086a2903007c2012204e54ad7c200441900d6a41086a2903007c2022201254ad7c200441e00d6a41086a2903007c2039202254ad7c200441d00f6a41086a2903007c203a203954ad7c203b203a54ad7c420d86847c223c423388200441800d6a41086a290300200441a00e6a41086a2903007c200c204c54ad7c200441d00d6a41086a2903007c200f200c54ad7c200441e00f6a41086a2903007c2010200f54ad7c200441800f6a41086a2903007c2011201054ad7c203c201154ad7c420d868442137e204a42ffffffffffffff03837c225542ffffffffffffff03832222420020042903a015225720042903e0127c220c20042903c0167c220f20042903e0177c22102004290380197c221120042903b015225820042903c0137c221220042903d0167c223920042903f0177c223a2004290390197c224b20042903c015225920042903a0147c224d20042903e0167c22522004290380187c225420042903a0197c225620042903d015225a20042903b0147c224820042903f0167c22492004290390187c224a20042903b0197c224c20042903e015225b20042903c0147c224e2004290380177c224f20042903a0187c225120042903c0197c2253423388200441e0156a41086a290300200441c0146a41086a2903007c204e205b54ad7c20044180176a41086a2903007c204f204e54ad7c200441a0186a41086a2903007c2051204f54ad7c200441c0196a41086a2903007c2053205154ad7c420d86847c224e423388200441d0156a41086a290300200441b0146a41086a2903007c2048205a54ad7c200441f0166a41086a2903007c2049204854ad7c20044190186a41086a2903007c204a204954ad7c200441b0196a41086a2903007c204c204a54ad7c204e204c54ad7c420d86847c2248423388200441c0156a41086a290300200441a0146a41086a2903007c204d205954ad7c200441e0166a41086a2903007c2052204d54ad7c20044180186a41086a2903007c2054205254ad7c200441a0196a41086a2903007c2056205454ad7c2048205654ad7c420d86847c224d423388200441b0156a41086a290300200441c0136a41086a2903007c2012205854ad7c200441d0166a41086a2903007c2039201254ad7c200441f0176a41086a2903007c203a203954ad7c20044190196a41086a2903007c204b203a54ad7c204d204b54ad7c420d86847c2212423388200441a0156a41086a290300200441e0126a41086a2903007c200c205754ad7c200441c0166a41086a2903007c200f200c54ad7c200441e0176a41086a2903007c2010200f54ad7c20044180196a41086a2903007c2011201054ad7c2012201154ad7c420d868442137e205342ffffffffffffff03837c225242ffffffffffffff0383220c420010e808200441800b6a201242ffffffffffffff0383220f42002055423388204742ffffffffffffff03837c223942137e420010e808200441900c6a204d42ffffffffffffff038322104200205042ffffffffffffff0383223a42137e2250420010e808200441b00b6a204842ffffffffffffff038322114200203b42ffffffffffffff0383224b42137e224d420010e808200441e0096a2052423388204e42ffffffffffffff03837c22124200203c42ffffffffffffff0383223c42137e223b420010e808200441a00a6a201242002022420010e808200441f00a6a200c42002039420010e808200441800c6a200f42002050420010e808200441a00b6a20104200204d420010e808200441d0096a20114200203b420010e808200441900a6a201142002022420010e808200441e00a6a201242002039420010e808200441a00c6a200c4200203a420010e808200441900b6a200f4200204d420010e808200441c0096a20104200203b420010e808200441800a6a201042002022420010e808200441d00a6a201142002039420010e808200441b00c6a20124200203a420010e808200441c00b6a200c4200204b420010e808200441e0086a200f4200203b420010e808200441f0096a200f42002022420010e808200441c00a6a201042002039420010e808200441c00c6a20114200203a420010e808200441d00b6a20124200204b420010e808200441e00b6a200c4200203c420010e808200441b0206a2018420042b0c1bad0f4e48603420010e80820044180236a201d420042a7a7fbf49beaf607420010e808200441b0246a2020420042a0d69f90da80b1cb00420010e808200441e0256a200a420042badf96dcb5c3bac700420010e808200441d0216a200b420042a7ecfac2b5f7ea19420010e808200441c0216a200b420042b0c1bad0f4e48603420010e808200441a0206a20184200429db1bce4dfb435420010e80820044190236a201d420042a0d69f90da80b1cb00420010e808200441c0246a2020420042badf96dcb5c3bac700420010e808200441f0256a200a420042a7ecfac2b5f7ea19420010e80820044180266a200a420042b0c1bad0f4e48603420010e808200441b0216a200b4200429db1bce4dfb435420010e80820044190206a2018420042e098f4e5e9ebfb03420010e808200441a0236a201d420042badf96dcb5c3bac700420010e808200441d0246a2020420042a7ecfac2b5f7ea19420010e808200441e0246a2020420042b0c1bad0f4e48603420010e80820044190266a200a4200429db1bce4dfb435420010e808200441a0216a200b420042e098f4e5e9ebfb03420010e80820044180206a20184200429e9981b4dab2e103420010e808200441b0236a201d420042a7ecfac2b5f7ea19420010e808200441c0236a201d420042b0c1bad0f4e48603420010e808200441f0246a20204200429db1bce4dfb435420010e808200441a0266a200a420042e098f4e5e9ebfb03420010e80820044190216a200b4200429e9981b4dab2e103420010e808200441f01f6a20184200429df893c0a486ae01420010e808200441901a6a20042903b04d2222420042b0c1bad0f4e48603420010e808200441e01a6a20042903d04d2239420042a7a7fbf49beaf607420010e808200441b01b6a20042903c84d223a420042a0d69f90da80b1cb00420010e808200441801c6a20042903c04d223b420042badf96dcb5c3bac700420010e808200441d01c6a20042903b84d223c420042a7ecfac2b5f7ea19420010e808200441c01c6a203c420042b0c1bad0f4e48603420010e808200441801a6a20224200429db1bce4dfb435420010e808200441d01a6a2039420042a0d69f90da80b1cb00420010e808200441a01b6a203a420042badf96dcb5c3bac700420010e808200441f01b6a203b420042a7ecfac2b5f7ea19420010e808200441e01b6a203b420042b0c1bad0f4e48603420010e808200441b01c6a203c4200429db1bce4dfb435420010e808200441f0196a2022420042e098f4e5e9ebfb03420010e808200441c01a6a2039420042badf96dcb5c3bac700420010e808200441901b6a203a420042a7ecfac2b5f7ea19420010e808200441801b6a203a420042b0c1bad0f4e48603420010e808200441d01b6a203b4200429db1bce4dfb435420010e808200441a01c6a203c420042e098f4e5e9ebfb03420010e808200441e0196a20224200429e9981b4dab2e103420010e808200441b01a6a2039420042a7ecfac2b5f7ea19420010e808200441a01a6a2039420042b0c1bad0f4e48603420010e808200441f01a6a203a4200429db1bce4dfb435420010e808200441c01b6a203b420042e098f4e5e9ebfb03420010e808200441901c6a203c4200429e9981b4dab2e103420010e808200441d0196a20224200429df893c0a486ae01420010e808200441e0106a200c420042ea81f582a8b53f420010e808200441d0126a200f420042bbda9284b7cbdd1b420010e808200441b0136a201042004288f5a7f5b28623420010e80820044190146a2011420042edd5d7bc83fb803c420010e808200441b0116a2012420042edc19ab7ab9cc0c700420010e808200441a0116a2012420042ea81f582a8b53f420010e808200441d0106a200c420042b9a6dff282e9ba01420010e808200441c0126a200f42004288f5a7f5b28623420010e808200441a0136a2010420042edd5d7bc83fb803c420010e80820044180146a2011420042edc19ab7ab9cc0c700420010e808200441f0136a2011420042ea81f582a8b53f420010e80820044190116a2012420042b9a6dff282e9ba01420010e808200441c0106a200c420042d8f8d29390ec01420010e808200441b0126a200f420042edd5d7bc83fb803c420010e80820044190136a2010420042edc19ab7ab9cc0c700420010e80820044180136a2010420042ea81f582a8b53f420010e808200441e0136a2011420042b9a6dff282e9ba01420010e80820044180116a2012420042d8f8d29390ec01420010e808200441b0106a200c420042ff91f789b6a19403420010e808200441a0126a200f420042edc19ab7ab9cc0c700420010e80820044190126a200f420042ea81f582a8b53f420010e808200441f0126a2010420042b9a6dff282e9ba01420010e808200441d0136a2011420042d8f8d29390ec01420010e808200441f0106a2012420042ff91f789b6a19403420010e808200441a0106a200c420042fff5f38289d9e103420010e808200441a0076a20042903f009224c20042903e00b7c220c20042903c00a7c220f20042903c00c7c221020042903d00b7c221120042903e008224e20042903c00b7c221220042903800a7c222220042903d00a7c223920042903b00c7c223a20042903900b224f20042903a00c7c223b20042903c0097c223c20042903900a7c224b20042903e00a7c224d20042903800c225120042903f00a7c225020042903a00b7c225220042903d0097c225420042903a00a7c225620042903800b225320042903b00a7c224720042903900c7c224820042903b00b7c224920042903e0097c224a423388200441800b6a41086a290300200441b00a6a41086a2903007c2047205354ad7c200441900c6a41086a2903007c2048204754ad7c200441b00b6a41086a2903007c2049204854ad7c200441e0096a41086a2903007c204a204954ad7c420d86847c2247423388200441800c6a41086a290300200441f00a6a41086a2903007c2050205154ad7c200441a00b6a41086a2903007c2052205054ad7c200441d0096a41086a2903007c2054205254ad7c200441a00a6a41086a2903007c2056205454ad7c2047205654ad7c420d86847c2250423388200441900b6a41086a290300200441a00c6a41086a2903007c203b204f54ad7c200441c0096a41086a2903007c203c203b54ad7c200441900a6a41086a2903007c204b203c54ad7c200441e00a6a41086a2903007c204d204b54ad7c2050204d54ad7c420d86847c223b423388200441e0086a41086a290300200441c00b6a41086a2903007c2012204e54ad7c200441800a6a41086a2903007c2022201254ad7c200441d00a6a41086a2903007c2039202254ad7c200441b00c6a41086a2903007c203a203954ad7c203b203a54ad7c420d86847c223a423388200441f0096a41086a290300200441e00b6a41086a2903007c200c204c54ad7c200441c00a6a41086a2903007c200f200c54ad7c200441c00c6a41086a2903007c2010200f54ad7c200441d00b6a41086a2903007c2011201054ad7c203a201154ad7c420d868442137e204a42ffffffffffffff03837c220c42ffffffffffffff0383220f4200200d420010e808200441f0076a20194200200c423388204742ffffffffffffff03837c221042137e225e420010e80820044180096a20164200205042ffffffffffffff0383221242137e2250420010e808200441a0086a20134200203b42ffffffffffffff0383223942137e2222420010e808200441d0066a200e4200203a42ffffffffffffff0383225242137e2211420010e80820044190076a200e4200200f420010e808200441e0076a200d42002010420010e808200441f0086a201942002050420010e80820044190086a201642002022420010e808200441c0066a201342002011420010e80820044180076a20134200200f420010e808200441d0076a200e42002010420010e80820044190096a200d42002012420010e80820044180086a201942002022420010e808200441b0066a201642002011420010e808200441f0066a20164200200f420010e808200441c0076a201342002010420010e808200441a0096a200e42002012420010e808200441b0086a200d42002039420010e808200441a0066a201942002011420010e808200441e0066a20194200200f420010e808200441b0076a201642002010420010e808200441b0096a201342002012420010e808200441c0086a200e42002039420010e808200441d0086a200d42002052420010e8082004200429038008224c2004290390097c220c20042903b0067c223a2004290380077c223b20042903d0077c223c20042903f008224e20042903e0077c224b2004290390087c224d20042903c0067c22542004290390077c225620042903f007224f20042903a0077c22472004290380097c224820042903a0087c224920042903d0067c224a423388200441f0076a41086a290300200441a0076a41086a2903007c2047204f54ad7c20044180096a41086a2903007c2048204754ad7c200441a0086a41086a2903007c2049204854ad7c200441d0066a41086a2903007c204a204954ad7c420d86847c2247423388200441f0086a41086a290300200441e0076a41086a2903007c204b204e54ad7c20044190086a41086a2903007c204d204b54ad7c200441c0066a41086a2903007c2054204d54ad7c20044190076a41086a2903007c2056205454ad7c2047205654ad7c420d86847c224b42ffffffffffffff03833703e046200420042903a006224920042903b0087c224d20042903f0067c225420042903c0077c225620042903a0097c2248204b42338820044180086a41086a29030020044190096a41086a2903007c200c204c54ad7c200441b0066a41086a2903007c203a200c54ad7c20044180076a41086a2903007c203b203a54ad7c200441d0076a41086a2903007c203c203b54ad7c204b203c54ad7c420d86847c220c42ffffffffffffff03833703e846200420042903e006224c20042903d0087c223a20042903b0077c223b20042903b0097c223c20042903c0087c224b200c423388200441a0066a41086a290300200441b0086a41086a2903007c204d204954ad7c200441f0066a41086a2903007c2054204d54ad7c200441c0076a41086a2903007c2056205454ad7c200441a0096a41086a2903007c2048205654ad7c200c204854ad7c420d86847c220c42ffffffffffffff03833703f0462004200c423388200441e0066a41086a290300200441d0086a41086a2903007c203a204c54ad7c200441b0076a41086a2903007c203b203a54ad7c200441b0096a41086a2903007c203c203b54ad7c200441c0086a41086a2903007c204b203c54ad7c200c204b54ad7c420d868442137e204a42ffffffffffffff03837c220c42ffffffffffffff03833703d0462004200c423388204742ffffffffffffff03837c3703d84620044190236a41086a290300215f200441a0206a41086a2903002160200429039023210c20042903a0202155200441c0246a41086a290300216120042903c0242157200441f0256a41086a290300216220042903f0252158200441c0216a41086a290300216320042903c021215920044180236a41086a2903002164200441b0206a41086a2903002165200429038023213a20042903b020215a200441b0246a41086a290300216620042903b024215b200441e0256a41086a290300216720042903e025215c200441d0216a41086a290300216820042903d021215d20042903a023213b200429039020214e20042903d024214f200429038026215120042903b0212153200441a0236a41086a290300216920044190206a41086a290300216a200441d0246a41086a290300216b20044180266a41086a290300216c200441b0216a41086a290300216d20042903b023213c200429038020214820042903e0242149200429039026214a20042903a021214c200441b0236a41086a290300216e20044180206a41086a290300216f200441e0246a41086a290300217020044190266a41086a2903002171200441a0216a41086a290300217220042903c023214b20042903f01f214d20042903f024215420042903a02621562004290390212147200441c0236a41086a2903002173200441f01f6a41086a2903002174200441f0246a41086a2903002175200441a0266a41086a290300217620044190216a41086a2903002177200441a8ca006a200441d0c6006a106b20042d00a84a410171106d2102200420042903b04d2278204720562054204b204d7c224d7c22547c22567c2247204c204a2049203c20487c22487c22497c224a7c224c20532051204f203b204e7c224e7c224f7c22517c2253205920582057200c20557c22557c22577c22587c2259205d205c205b203a205a7c225a7c225b7c225c7c225d423388206820672066206420657c205a203a54ad7c7c205b205a54ad7c7c205c205b54ad7c7c205d205c54ad7c420d86847c223a423388206320622061205f20607c2055200c54ad7c7c2057205554ad7c7c2058205754ad7c7c2059205854ad7c203a205954ad7c420d86847c2255423388206d206c206b2069206a7c204e203b54ad7c7c204f204e54ad7c7c2051204f54ad7c7c2053205154ad7c2055205354ad7c420d86847c223b423388207220712070206e206f7c2048203c54ad7c7c2049204854ad7c7c204a204954ad7c7c204c204a54ad7c203b204c54ad7c420d86847c223c423388207720762075207320747c204d204b54ad7c7c2054204d54ad7c7c2056205454ad7c7c2047205654ad7c203c204754ad7c420d868442137e205d42ffffffffffffff03837c224b42ffffffffffffff03838542002002ad42ff01837d220c832078853703b04d200420042903b84d224d204b423388203a42ffffffffffffff03837c85200c83204d853703b84d200420042903c04d223a205542ffffffffffffff038385200c83203a853703c04d200420042903c84d223a203b42ffffffffffffff038385200c83203a853703c84d200420042903d04d223a203c42ffffffffffffff038385200c83203a853703d04d20044190066a200f4200201820042903a01a225a20042903d0197c223a20042903f01a7c223b20042903c01b7c223c20042903901c7c224b20042903b01a225b20042903e0197c224d20042903801b7c225420042903d01b7c225620042903a01c7c224720042903c01a225c20042903f0197c224820042903901b7c224920042903e01b7c224a20042903b01c7c224c20042903d01a225d20042903801a7c224e20042903a01b7c224f20042903f01b7c225120042903c01c7c225320042903e01a225f20042903901a7c225520042903b01b7c225720042903801c7c225820042903d01c7c2259423388200441e01a6a41086a290300200441901a6a41086a2903007c2055205f54ad7c200441b01b6a41086a2903007c2057205554ad7c200441801c6a41086a2903007c2058205754ad7c200441d01c6a41086a2903007c2059205854ad7c420d86847c2255423388200441d01a6a41086a290300200441801a6a41086a2903007c204e205d54ad7c200441a01b6a41086a2903007c204f204e54ad7c200441f01b6a41086a2903007c2051204f54ad7c200441c01c6a41086a2903007c2053205154ad7c2055205354ad7c420d86847c224e423388200441c01a6a41086a290300200441f0196a41086a2903007c2048205c54ad7c200441901b6a41086a2903007c2049204854ad7c200441e01b6a41086a2903007c204a204954ad7c200441b01c6a41086a2903007c204c204a54ad7c204e204c54ad7c420d86847c2248423388200441b01a6a41086a290300200441e0196a41086a2903007c204d205b54ad7c200441801b6a41086a2903007c2054204d54ad7c200441d01b6a41086a2903007c2056205454ad7c200441a01c6a41086a2903007c2047205654ad7c2048204754ad7c420d86847c224d423388200441a01a6a41086a290300200441d0196a41086a2903007c203a205a54ad7c200441f01a6a41086a2903007c203b203a54ad7c200441c01b6a41086a2903007c203c203b54ad7c200441901c6a41086a2903007c204b203c54ad7c204d204b54ad7c420d868442137e205942ffffffffffffff03837c225442ffffffffffffff038385200c83201885223a420010e808200441d0036a201d204d42ffffffffffffff038385200c83201d85223b4200205e420010e808200441a0046a2020204842ffffffffffffff038385200c83202085223c42002050420010e808200441f0046a200a204e42ffffffffffffff038385200c83200a85224b42002022420010e808200441c0056a200b2054423388205542ffffffffffffff03837c85200c83200b85224d42002011420010e808200441b0056a204d4200200f420010e80820044180066a203a42002010420010e808200441c0036a203b42002050420010e80820044190046a203c42002022420010e808200441e0046a204b42002011420010e808200441d0046a204b4200200f420010e808200441a0056a204d42002010420010e808200441f0056a203a42002012420010e808200441b0036a203b42002022420010e80820044180046a203c42002011420010e808200441f0036a203c4200200f420010e808200441c0046a204b42002010420010e80820044190056a204d42002012420010e808200441e0056a203a42002039420010e808200441a0036a203b42002011420010e80820044190036a203b4200200f420010e808200441e0036a203c42002010420010e808200441b0046a204b42002012420010e80820044180056a204d42002039420010e808200441d0056a203a42002052420010e808200420042903b003225220042903f0057c220f2004290380047c221020042903d0047c221120042903a0057c221220042903c00322542004290380067c22222004290390047c223920042903e0047c223a20042903b0057c223b20042903d00322562004290390067c223c20042903a0047c224b20042903f0047c224d20042903c0057c2250423388200441d0036a41086a29030020044190066a41086a2903007c203c205654ad7c200441a0046a41086a2903007c204b203c54ad7c200441f0046a41086a2903007c204d204b54ad7c200441c0056a41086a2903007c2050204d54ad7c420d86847c223c423388200441c0036a41086a29030020044180066a41086a2903007c2022205454ad7c20044190046a41086a2903007c2039202254ad7c200441e0046a41086a2903007c203a203954ad7c200441b0056a41086a2903007c203b203a54ad7c203c203b54ad7c420d86847c222242ffffffffffffff03833703e046200420042903a003224d20042903e0057c223920042903f0037c223a20042903c0047c223b2004290390057c224b2022423388200441b0036a41086a290300200441f0056a41086a2903007c200f205254ad7c20044180046a41086a2903007c2010200f54ad7c200441d0046a41086a2903007c2011201054ad7c200441a0056a41086a2903007c2012201154ad7c2022201254ad7c420d86847c220f42ffffffffffffff03833703e8462004200429039003225220042903d0057c221020042903e0037c221120042903b0047c22122004290380057c2222200f423388200441a0036a41086a290300200441e0056a41086a2903007c2039204d54ad7c200441f0036a41086a2903007c203a203954ad7c200441c0046a41086a2903007c203b203a54ad7c20044190056a41086a2903007c204b203b54ad7c200f204b54ad7c420d86847c220f42ffffffffffffff03833703f0462004200f42338820044190036a41086a290300200441d0056a41086a2903007c2010205254ad7c200441e0036a41086a2903007c2011201054ad7c200441b0046a41086a2903007c2012201154ad7c20044180056a41086a2903007c2022201254ad7c200f202254ad7c420d868442137e205042ffffffffffffff03837c220f42ffffffffffffff03833703d0462004200f423388203c42ffffffffffffff03837c3703d846200441c0126a41086a290300215a200441d0106a41086a290300215b20042903c012211120042903d010214e200441a0136a41086a290300215c20042903a013214f20044180146a41086a290300215d2004290380142151200441a0116a41086a290300215e20042903a0112153200441d0126a41086a290300215f200441e0106a41086a290300216020042903d012211220042903e0102155200441b0136a41086a290300216120042903b013215720044190146a41086a29030021622004290390142158200441b0116a41086a290300216320042903b011215920042903b012212220042903c0102148200429039013214920042903f013214a200429039011214c200441b0126a41086a2903002164200441c0106a41086a290300216520044190136a41086a2903002166200441f0136a41086a290300216720044190116a41086a290300216820042903a012213920042903b0102152200429038013215420042903e01321562004290380112147200441a0126a41086a2903002169200441b0106a41086a290300216a20044180136a41086a290300216b200441e0136a41086a290300216c20044180116a41086a290300216d200429039012213a20042903a010214b20042903f012214d20042903d013215020042903f010216e20044190126a41086a290300216f200441a0106a41086a2903002170200441f0126a41086a2903002171200441d0136a41086a2903002172200441f0106a41086a2903002173200441a8ca006a200441d0c6006a106b20042d00a84a410171106d2102200420042903b04d221042f0ffffffffffff3f20042903d04d223b7d223c42338842137e42d0fdffffffffff3f20107d227442ffffffffffffff03837c8542002002ad42ff01837d220f8320108522103703b04d2004203b203b203c42ffffffffffffff038342f0ffffffffffff3f20042903c84d223c7d22754233887c85200f8385223b3703d04d20044180036a203e203b7d223e42338842137e204020107d224042ffffffffffffff03837c22104200201a206e2050204d203a204b7c223b7c224b7c224d7c2250204720562054203920527c22527c22547c22567c2247204c204a2049202220487c22487c22497c224a7c224c20532051204f2011204e7c224e7c224f7c22517c2253205920582057201220557c22557c22577c22587c2259423388206320622061205f20607c2055201254ad7c7c2057205554ad7c7c2058205754ad7c7c2059205854ad7c420d86847c2255423388205e205d205c205a205b7c204e201154ad7c7c204f204e54ad7c7c2051204f54ad7c7c2053205154ad7c2055205354ad7c420d86847c224e423388206820672066206420657c2048202254ad7c7c2049204854ad7c7c204a204954ad7c7c204c204a54ad7c204e204c54ad7c420d86847c2222423388206d206c206b2069206a7c2052203954ad7c7c2054205254ad7c7c2056205454ad7c7c2047205654ad7c2022204754ad7c420d86847c2212423388207320722071206f20707c203b203a54ad7c7c204b203b54ad7c7c204d204b54ad7c7c2050204d54ad7c2012205054ad7c420d868442137e205942ffffffffffffff03837c223a42ffffffffffffff038385200c83201a852211420010e808200420042903b84d221a42f0ffffffffffff3f201a7d223942ffffffffffffff038320744233887c85200f83201a85221a3703b84d200441c0006a201b201242ffffffffffffff038385200c83201b85221242002042201a7d223b42ffffffffffffff038320404233887c221a42137e420010e808200420042903c04d221b42f0ffffffffffff3f201b7d224b42ffffffffffffff038320394233887c85200f83201b8522393703c04d20044190016a201c202242ffffffffffffff038385200c83201c85221b4200204520397d222242ffffffffffffff0383203b4233887c221c42137e223b420010e8082004203c203c207542ffffffffffffff0383204b4233887c85200f838522393703c84d200441e0016a201e204e42ffffffffffffff038385200c83201e85220f4200204620397d221e42ffffffffffffff038320224233887c222242137e2239420010e808200441b0026a201f203a423388205542ffffffffffffff03837c85200c83201f85220c4200203e42ffffffffffffff0383201e4233887c221f42137e221e420010e808200441a0026a200c42002010420010e808200441f0026a20114200201a420010e808200441306a20124200203b420010e80820044180016a201b42002039420010e808200441d0016a200f4200201e420010e808200441c0016a200f42002010420010e80820044190026a200c4200201a420010e808200441e0026a20114200201c420010e808200441206a201242002039420010e808200441f0006a201b4200201e420010e808200441e0006a201b42002010420010e808200441b0016a200f4200201a420010e80820044180026a200c4200201c420010e808200441d0026a201142002022420010e808200441106a20124200201e420010e8082004201242002010420010e808200441d0006a201b4200201a420010e808200441a0016a200f4200201c420010e808200441f0016a200c42002022420010e808200441c0026a20114200201f420010e80820042004290300225620042903c0027c220c20042903507c220f20042903a0017c221020042903f0017c22112004290310224720042903d0027c221220042903607c221a20042903b0017c221b2004290380027c221c2004290320224820042903e0027c221e20042903707c221f20042903c0017c22222004290390027c22392004290330224920042903f0027c223a2004290380017c223b20042903d0017c223c20042903a0027c224b2004290340224a2004290380037c224d2004290390017c225020042903e0017c225220042903b0027c2254423388200441c0006a41086a29030020044180036a41086a2903007c204d204a54ad7c20044190016a41086a2903007c2050204d54ad7c200441e0016a41086a2903007c2052205054ad7c200441b0026a41086a2903007c2054205254ad7c420d86847c224d423388200441306a41086a290300200441f0026a41086a2903007c203a204954ad7c20044180016a41086a2903007c203b203a54ad7c200441d0016a41086a2903007c203c203b54ad7c200441a0026a41086a2903007c204b203c54ad7c204d204b54ad7c420d86847c223a423388200441206a41086a290300200441e0026a41086a2903007c201e204854ad7c200441f0006a41086a2903007c201f201e54ad7c200441c0016a41086a2903007c2022201f54ad7c20044190026a41086a2903007c2039202254ad7c203a203954ad7c420d86847c221e423388200441106a41086a290300200441d0026a41086a2903007c2012204754ad7c200441e0006a41086a2903007c201a201254ad7c200441b0016a41086a2903007c201b201a54ad7c20044180026a41086a2903007c201c201b54ad7c201e201c54ad7c420d86847c2212423388200441086a290300200441c0026a41086a2903007c200c205654ad7c200441d0006a41086a2903007c200f200c54ad7c200441a0016a41086a2903007c2010200f54ad7c200441f0016a41086a2903007c2011201054ad7c2012201154ad7c420d868442137e205442ffffffffffffff03837c220c42ffffffffffffff0383220f3703d0462004200c423388204d42ffffffffffffff03837c22103703d8462004201242ffffffffffffff038322113703f0462004201e42ffffffffffffff038322123703e8462004203a42ffffffffffffff0383221a3703e046200441a8ca006a200441d0c6006a106b2004201142f0ffffffffffff3f20117d221b42ffffffffffffff038342f0ffffffffffff3f20127d221c4233887c85420020042d00a84a410171106dad42ff01837d220c832011853703f04620042012201c42ffffffffffffff038342f0ffffffffffff3f201a7d22114233887c85200c832012853703e8462004201a201142ffffffffffffff038342f0ffffffffffff3f20107d22114233887c85200c83201a853703e04620042010201142ffffffffffffff038342d0fdffffffffff3f200f7d22114233887c85200c832010853703d8462004200f201b42338842137e201142ffffffffffffff03837c85200c83200f853703d046200441e0c4006a200441d0c6006a106b41002102034020044180c5006a20026a41003a0000200241016a220241c801470d000b20044188c9006a41186a2203200141186a29000037030020044188c9006a41106a2205200141106a29000037030020044188c9006a41086a2206200141086a2900003703002004200129000037038849200441d0c6006a20044188c9006a10f401200441d0c6006a41086a290300210c200441d0c6006a41106a290300210f200441d0c6006a41186a2903002110200441d0c6006a41206a290300211a200441f8c6006a290300211b20044180c7006a290300211120044188c7006a290300211220044190c7006a290300211c20044198c7006a290300211e200441a0c7006a290300211f20042802d446210120042802d046210220044180c5006a200441a8c7006a41f00010e9081a0240024020024101460d00200441f0ca006a20044180c5006a41f00010e9081a2004200f200c4233887c22224233882022200f54ad420d8684223a20107c223942ffffffffffffff03833703b048200420394233882039203a54ad420d8684223a201a7c223942ffffffffffffff03833703b848200420394233882039203a54ad420d8684223a201b7c223942ffffffffffffff03833703c048200420394233882039203a54ad420d868442137e200c42ffffffffffffff03837c223942ffffffffffffff03833703a04820042039423388202242ffffffffffffff03837c3703a84820044188c9006a41206a4200370300200342003703002005420037030020064200370300200442003703884920044180c5006a41206a420037030020044180c5006a41186a420037030020044180c5006a41106a420037030020044180c5006a41086a420037030020044200370380452004201220114233887c22224233882022201254ad420d8684223a201c7c22394233882039203a54ad420d8684223b201e7c223a423388203a203b54ad420d8684223c201f7c223b42ffffffffffffff03833703f0462004203a42ffffffffffffff03833703e8462004203942ffffffffffffff03833703e0462004203b423388203b203c54ad420d868442137e201142ffffffffffffff03837c2239423388202242ffffffffffffff03837c3703d8462004203942ffffffffffffff03833703d0460240200441a0c8006a20044188c9006a106c20044180c5006a200441d0c6006a106c72106d41ff01714101470d0020004101360200200041013a00040c020b200041a0016a201937030020004198016a201637030020004190016a201337030020004188016a200e37030020004180016a200d370300200041f8006a203d370300200041f0006a2043370300200041e8006a2044370300200041e0006a2041370300200041d8006a203f370300200041d0006a2023370300200041c8006a2021370300200041c0006a2017370300200041386a2015370300200041306a2014370300200041286a201d370300200041206a2020370300200041186a200a370300200041106a200b370300200041086a201837030020004190026a201f37030020004188026a201e37030020004180026a201c370300200041f8016a2012370300200041f0016a2011370300200041e8016a201b370300200041e0016a201a370300200041d8016a2010370300200041d0016a200f370300200041c8016a200c370300200041c0016a200441e0c4006a41186a290300370300200041b8016a200441e0c4006a41106a290300370300200041b0016a200441e0c4006a41086a290300370300200041a8016a20042903e04437030020004198026a200441f0ca006a41f00010e9081a200041003602000c010b2000200136020420004101360200200041186a20103e0200200041106a200f370200200041086a200c3702000b200441d0ce006a24000bbd6603047f237e067f230041d01f6b22022400200241801c6a20011070200241a81c6a200241801c6a106b41002103410121040340200120036a2d0000200241a81c6a20036a2d0000732205410020056b72417f7341800171410776106d2004712104200341016a22034120470d000b2004106d2103200241881f6a200241801c6a106b20022d00881f410171106d210402400240024002400240200341ff0171450d00200441ff01714101470d010b200241b81e6a21030c010b200241c81c6a200241801c6a4101106e200242f0ffffffffffff3f20022903e81c7d220642ffffffffffffff038342f0ffffffffffff3f20022903e01c7d22074233887c3703901d2002200742ffffffffffffff038342f0ffffffffffff3f20022903d81c22077d22084233887c3703881d2002200842ffffffffffffff038342f0ffffffffffff3f20022903d01c22087d22094233887c3703801d2002200942ffffffffffffff038342d1fdffffffffff3f20022903c81c22097d220a4233887c3703f81c2002200642338842137e200a42ffffffffffffff03837c3703f01c200242003703b01d200242003703b81d2002200942017c3703981d200220083703a01d200220073703a81d200220022903e01c3703b01d200220022903b81d20022903e81c7c3703b81d200241c01d6a200241981d6a4101106e200241b81e6a200241f01c6a4101106e200241f8156a20022903b81e2206420042ca8e9ae5dec6ac02420010e808200241f8186a20022903c01e220742137e4200428092f58893f9b701420010e808200241a8186a20022903c81e220842137e220b420042c486ffe299c731420010e808200241d8176a20022903d01e220a42137e220c420042d6fff8ffd98b8601420010e80820024188176a20022903d81e220d42137e2209420042c2a2aaa7fcfa9503420010e80820024188166a2006420042c2a2aaa7fcfa9503420010e808200241e8186a2007420042ca8e9ae5dec6ac02420010e80820024198186a200b4200428092f58893f9b701420010e808200241c8176a200c420042c486ffe299c731420010e808200241f8166a2009420042d6fff8ffd98b8601420010e80820024198166a2006420042d6fff8ffd98b8601420010e808200241d8186a2007420042c2a2aaa7fcfa9503420010e80820024188186a2008420042ca8e9ae5dec6ac02420010e808200241b8176a200c4200428092f58893f9b701420010e808200241e8166a2009420042c486ffe299c731420010e808200241a8166a2006420042c486ffe299c731420010e808200241c8186a2007420042d6fff8ffd98b8601420010e808200241f8176a2008420042c2a2aaa7fcfa9503420010e808200241a8176a200a420042ca8e9ae5dec6ac02420010e808200241d8166a20094200428092f58893f9b701420010e808200241b8166a20064200428092f58893f9b701420010e808200241b8186a2007420042c486ffe299c731420010e808200241e8176a2008420042d6fff8ffd98b8601420010e80820024198176a200a420042c2a2aaa7fcfa9503420010e808200241c8166a200d420042ca8e9ae5dec6ac02420010e808200241f8136a20022903c01d2208420020022903b816220e20022903c8167c220620022903b8187c220720022903e8177c22092002290398177c220a20022903d816220f20022903a8177c220c20022903a8167c220b20022903c8187c220d20022903f8177c221020022903b81722112002290388187c221220022903e8167c22132002290398167c221420022903d8187c2215200229039818221620022903e8187c221720022903c8177c221820022903f8167c22192002290388167c221a20022903f818221b20022903f8157c221c20022903a8187c221d20022903d8177c221e2002290388177c221f423388200241f8186a41086a290300200241f8156a41086a2903007c201c201b54ad7c200241a8186a41086a2903007c201d201c54ad7c200241d8176a41086a2903007c201e201d54ad7c20024188176a41086a2903007c201f201e54ad7c420d86847c221c42338820024198186a41086a290300200241e8186a41086a2903007c2017201654ad7c200241c8176a41086a2903007c2018201754ad7c200241f8166a41086a2903007c2019201854ad7c20024188166a41086a2903007c201a201954ad7c201c201a54ad7c420d86847c2218423388200241b8176a41086a29030020024188186a41086a2903007c2012201154ad7c200241e8166a41086a2903007c2013201254ad7c20024198166a41086a2903007c2014201354ad7c200241d8186a41086a2903007c2015201454ad7c2018201554ad7c420d86847c2212423388200241d8166a41086a290300200241a8176a41086a2903007c200c200f54ad7c200241a8166a41086a2903007c200b200c54ad7c200241c8186a41086a2903007c200d200b54ad7c200241f8176a41086a2903007c2010200d54ad7c2012201054ad7c420d86847c220c42ffffffffffffff038320022903e01d220d7d42f0ffffffffffff3f7c220b42338842137e200c423388200241b8166a41086a290300200241c8166a41086a2903007c2006200e54ad7c200241b8186a41086a2903007c2007200654ad7c200241e8176a41086a2903007c2009200754ad7c20024198176a41086a2903007c200a200954ad7c200c200a54ad7c420d868442137e201f42feffffffffffff03837c220742ffffffffffffff038320087d42d0fdffffffffff3f7c221342ffffffffffffff03837c2206420010e808200241e8156a200b42ffffffffffffff0383201242ffffffffffffff038320022903d81d220c7d42f0ffffffffffff3f7c220a4233887c2217420020022903c81d220942137e420010e80820024198156a200a42ffffffffffffff0383201842ffffffffffffff038320022903d01d220a7d42f0ffffffffffff3f7c220b4233887c22144200200a42137e2215420010e808200241c8146a200b42ffffffffffffff03832007423388201c42ffffffffffffff03837c20097d42f0ffffffffffff3f7c22074233887c22124200200c42137e2210420010e808200241a8136a200742ffffffffffffff038320134233887c22074200200d42137e220b420010e80820024198136a200742002008420010e808200241e8136a200642002009420010e808200241d8156a201742002015420010e80820024188156a201442002010420010e808200241b8146a20124200200b420010e808200241a8146a201242002008420010e80820024188136a200742002009420010e808200241d8136a20064200200a420010e808200241c8156a201742002010420010e808200241f8146a20144200200b420010e808200241e8146a201442002008420010e80820024198146a201242002009420010e808200241f8126a20074200200a420010e808200241c8136a20064200200c420010e808200241b8156a20174200200b420010e808200241a8156a201742002008420010e808200241d8146a201442002009420010e80820024188146a20124200200a420010e808200241e8126a20074200200c420010e808200241b8136a20064200200d420010e808200220022903c815221c20022903d8137c220820022903f8147c220920022903a8147c220a2002290388137c220c20022903d815221d20022903e8137c220b2002290388157c220d20022903b8147c22102002290398137c221320022903e815221e20022903f8137c22152002290398157c221820022903c8147c221920022903a8137c221a423388200241e8156a41086a290300200241f8136a41086a2903007c2015201e54ad7c20024198156a41086a2903007c2018201554ad7c200241c8146a41086a2903007c2019201854ad7c200241a8136a41086a2903007c201a201954ad7c420d86847c2215423388200241d8156a41086a290300200241e8136a41086a2903007c200b201d54ad7c20024188156a41086a2903007c200d200b54ad7c200241b8146a41086a2903007c2010200d54ad7c20024198136a41086a2903007c2013201054ad7c2015201354ad7c420d86847c220b42ffffffffffffff03833703a01e200220022903b815221920022903c8137c220d20022903e8147c22102002290398147c221320022903f8127c2218200b423388200241c8156a41086a290300200241d8136a41086a2903007c2008201c54ad7c200241f8146a41086a2903007c2009200854ad7c200241a8146a41086a2903007c200a200954ad7c20024188136a41086a2903007c200c200a54ad7c200b200c54ad7c420d86847c220842ffffffffffffff03833703a81e200220022903a815221c20022903b8137c220920022903d8147c220a2002290388147c220c20022903e8127c220b2008423388200241b8156a41086a290300200241c8136a41086a2903007c200d201954ad7c200241e8146a41086a2903007c2010200d54ad7c20024198146a41086a2903007c2013201054ad7c200241f8126a41086a2903007c2018201354ad7c2008201854ad7c420d86847c220842ffffffffffffff03833703b01e20022008423388200241a8156a41086a290300200241b8136a41086a2903007c2009201c54ad7c200241d8146a41086a2903007c200a200954ad7c20024188146a41086a2903007c200c200a54ad7c200241e8126a41086a2903007c200b200c54ad7c2008200b54ad7c420d868442137e201a42ffffffffffffff03837c220842ffffffffffffff03833703901e20022008423388201542ffffffffffffff03837c3703981e200241a81f6a41106a4200370300200241a81f6a41186a4200370300200241a81f6a41206a4200370300200242003703b01f200242013703a81f200241b81e6a200241a81f6a200241901e6a106f20024198126a20022903981d220d420020022903c01e2208420010e808200241d80f6a200241e01e6a2903002209420020022903a01d221042137e420010e808200241b8106a200241b81e6a41206a2203290300220a420020022903a81d221342137e221a420010e80820024198116a200241b81e6a41186a2204290300220c420020022903b01d221842137e2219420010e808200241f8116a200241b81e6a41106a2205290300220b420020022903b81d221c42137e2215420010e808200241d8126a200b4200200d420010e80820024198106a200842002010420010e808200241a8106a20094200201a420010e80820024188116a200a42002019420010e808200241e8116a200c42002015420010e808200241c8126a200c4200200d420010e80820024188106a200b42002010420010e808200241e8106a200842002013420010e808200241f8106a200942002019420010e808200241d8116a200a42002015420010e808200241b8126a200a4200200d420010e808200241f80f6a200c42002010420010e808200241d8106a200b42002013420010e808200241b8116a200842002018420010e808200241c8116a200942002015420010e808200241a8126a20094200200d420010e808200241e80f6a200a42002010420010e808200241c8106a200c42002013420010e808200241a8116a200b42002018420010e80820024188126a20084200201c420010e808200241980d6a2006420020022903a81222202002290388127c220d20022903e80f7c221020022903c8107c221320022903a8117c221520022903c811222120022903b8117c221820022903b8127c221920022903f80f7c221a20022903d8107c221c20022903f810222220022903e8107c221d20022903d8117c221e20022903c8127c221f2002290388107c220e20022903a81022232002290398107c220f2002290388117c221120022903e8117c221620022903d8127c221b20022903d80f22242002290398127c222520022903b8107c22262002290398117c222720022903f8117c2228423388200241d80f6a41086a29030020024198126a41086a2903007c2025202454ad7c200241b8106a41086a2903007c2026202554ad7c20024198116a41086a2903007c2027202654ad7c200241f8116a41086a2903007c2028202754ad7c420d86847c2225423388200241a8106a41086a29030020024198106a41086a2903007c200f202354ad7c20024188116a41086a2903007c2011200f54ad7c200241e8116a41086a2903007c2016201154ad7c200241d8126a41086a2903007c201b201654ad7c2025201b54ad7c420d86847c220f423388200241f8106a41086a290300200241e8106a41086a2903007c201d202254ad7c200241d8116a41086a2903007c201e201d54ad7c200241c8126a41086a2903007c201f201e54ad7c20024188106a41086a2903007c200e201f54ad7c200f200e54ad7c420d86847c221d423388200241c8116a41086a290300200241b8116a41086a2903007c2018202154ad7c200241b8126a41086a2903007c2019201854ad7c200241f80f6a41086a2903007c201a201954ad7c200241d8106a41086a2903007c201c201a54ad7c201d201c54ad7c420d86847c2218423388200241a8126a41086a29030020024188126a41086a2903007c200d202054ad7c200241e80f6a41086a2903007c2010200d54ad7c200241c8106a41086a2903007c2013201054ad7c200241a8116a41086a2903007c2015201354ad7c2018201554ad7c420d868442137e202842ffffffffffffff03837c221042ffffffffffffff0383220d420010e808200241b8096a201842ffffffffffffff038322184200200742137e420010e808200241c80e6a201d42ffffffffffffff038322154200201242137e221c420010e808200241f80d6a200f42ffffffffffffff038322134200201442137e221a420010e808200241e80d6a2010423388202542ffffffffffffff03837c22104200201742137e2219420010e808200241d80d6a201042002006420010e808200241880d6a200d42002007420010e808200241980f6a20184200201c420010e808200241d80e6a20154200201a420010e808200241880e6a201342002019420010e808200241980e6a201342002006420010e808200241c80d6a201042002007420010e808200241f80c6a200d42002012420010e808200241a80f6a20184200201a420010e808200241e80e6a201542002019420010e808200241f80e6a201542002006420010e808200241a80e6a201342002007420010e808200241b80d6a201042002012420010e808200241e80c6a200d42002014420010e808200241b80f6a201842002019420010e808200241c80f6a201842002006420010e808200241880f6a201542002007420010e808200241b80e6a201342002012420010e808200241a80d6a201042002014420010e808200241d80c6a200d42002017420010e808200241e8066a20022903c80f222020022903d80c7c220620022903880f7c220720022903b80e7c221220022903a80d7c221420022903b80f222120022903e80c7c221720022903f80e7c221920022903a80e7c221a20022903b80d7c221c20022903a80f222220022903f80c7c221d20022903e80e7c221e20022903980e7c221f20022903c80d7c220e20022903980f222320022903880d7c220f20022903d80e7c221120022903880e7c221620022903d80d7c221b20022903b809222420022903980d7c222520022903c80e7c222620022903f80d7c222720022903e80d7c2228423388200241b8096a41086a290300200241980d6a41086a2903007c2025202454ad7c200241c80e6a41086a2903007c2026202554ad7c200241f80d6a41086a2903007c2027202654ad7c200241e80d6a41086a2903007c2028202754ad7c420d86847c2225423388200241980f6a41086a290300200241880d6a41086a2903007c200f202354ad7c200241d80e6a41086a2903007c2011200f54ad7c200241880e6a41086a2903007c2016201154ad7c200241d80d6a41086a2903007c201b201654ad7c2025201b54ad7c420d86847c220f423388200241a80f6a41086a290300200241f80c6a41086a2903007c201d202254ad7c200241e80e6a41086a2903007c201e201d54ad7c200241980e6a41086a2903007c201f201e54ad7c200241c80d6a41086a2903007c200e201f54ad7c200f200e54ad7c420d86847c221d423388200241b80f6a41086a290300200241e80c6a41086a2903007c2017202154ad7c200241f80e6a41086a2903007c2019201754ad7c200241a80e6a41086a2903007c201a201954ad7c200241b80d6a41086a2903007c201c201a54ad7c201d201c54ad7c420d86847c2217423388200241c80f6a41086a290300200241d80c6a41086a2903007c2006202054ad7c200241880f6a41086a2903007c2007200654ad7c200241b80e6a41086a2903007c2012200754ad7c200241a80d6a41086a2903007c2014201254ad7c2017201454ad7c420d868442137e202842ffffffffffffff03837c220742ffffffffffffff0383220642002008420010e808200241b8076a200942002007423388202542ffffffffffffff03837c220742137e420010e808200241d8076a200a4200200f42ffffffffffffff0383221242137e221c420010e80820024188086a200c4200201d42ffffffffffffff0383221942137e221a420010e808200241c8086a200b4200201742ffffffffffffff0383221742137e2214420010e808200241d8066a200b42002006420010e808200241a8076a200842002007420010e808200241c8076a20094200201c420010e808200241f8076a200a4200201a420010e808200241b8086a200c42002014420010e808200241c8066a200c42002006420010e80820024198076a200b42002007420010e808200241d8086a200842002012420010e808200241e8076a20094200201a420010e808200241a8086a200a42002014420010e808200241e8056a200a42002006420010e80820024188076a200c42002007420010e808200241e8086a200b42002012420010e80820024188096a200842002019420010e80820024198086a200942002014420010e80820024188056a200942002006420010e808200241f8066a200a42002007420010e808200241f8086a200c42002012420010e80820024198096a200b42002019420010e808200241a8096a200842002017420010e80820022d00b81e21292003200241801c6a41206a222a2903003703002004200241801c6a41186a222b2903003703002005200241801c6a41106a222c2903002208370300200241b81e6a41086a222d200241801c6a41086a222e2903002207370300200220022903801c22063703b81e2002200620022903801c7c22063703b81e202d2007202e2903007c220737030020052008202c2903007c220837030020042004290300202b2903007c220937030020032003290300202a2903007c220a370300200241880c6a200d42002006420010e808200241880a6a200a4200201042137e420010e808200241980a6a20094200201342137e2212420010e808200241e80a6a20084200201542137e220b420010e808200241b80b6a20074200201842137e220c420010e808200241c80b6a20074200200d420010e808200241980c6a200642002010420010e808200241f8096a200a42002012420010e808200241a80a6a20094200200b420010e808200241f80a6a20084200200c420010e808200241880b6a20084200200d420010e808200241d80b6a200742002010420010e808200241a80c6a200642002013420010e808200241e8096a200a4200200b420010e808200241b80a6a20094200200c420010e808200241c80a6a20094200200d420010e808200241980b6a200842002010420010e808200241e80b6a200742002013420010e808200241b80c6a200642002015420010e808200241d8096a200a4200200c420010e808200241c8096a200a4200200d420010e808200241d80a6a200942002010420010e808200241a80b6a200842002013420010e808200241f80b6a200742002015420010e808200241c80c6a200642002018420010e808200220022903c809221f20022903c80c7c220620022903d80a7c220720022903a80b7c220820022903f80b7c220920022903d809220e20022903b80c7c220a20022903c80a7c220c20022903980b7c220b20022903e80b7c220d20022903e809220f20022903a80c7c221020022903b80a7c221220022903880b7c221320022903d80b7c221420022903f809221120022903980c7c221520022903a80a7c221720022903f80a7c221820022903c80b7c221920022903880a221620022903880c7c221a20022903980a7c221c20022903e80a7c221d20022903b80b7c221e423388200241880a6a41086a290300200241880c6a41086a2903007c201a201654ad7c200241980a6a41086a2903007c201c201a54ad7c200241e80a6a41086a2903007c201d201c54ad7c200241b80b6a41086a2903007c201e201d54ad7c420d86847c221a423388200241f8096a41086a290300200241980c6a41086a2903007c2015201154ad7c200241a80a6a41086a2903007c2017201554ad7c200241f80a6a41086a2903007c2018201754ad7c200241c80b6a41086a2903007c2019201854ad7c201a201954ad7c420d86847c2215423388200241e8096a41086a290300200241a80c6a41086a2903007c2010200f54ad7c200241b80a6a41086a2903007c2012201054ad7c200241880b6a41086a2903007c2013201254ad7c200241d80b6a41086a2903007c2014201354ad7c2015201454ad7c420d86847c2210423388200241d8096a41086a290300200241b80c6a41086a2903007c200a200e54ad7c200241c80a6a41086a2903007c200c200a54ad7c200241980b6a41086a2903007c200b200c54ad7c200241e80b6a41086a2903007c200d200b54ad7c2010200d54ad7c420d86847c220a423388200241c8096a41086a290300200241c80c6a41086a2903007c2006201f54ad7c200241d80a6a41086a2903007c2007200654ad7c200241a80b6a41086a2903007c2008200754ad7c200241f80b6a41086a2903007c2009200854ad7c200a200954ad7c420d868442137e201e42ffffffffffffff03837c220642ffffffffffffff03833703e81d20022006423388201a42ffffffffffffff03837c3703f01d2002200a42ffffffffffffff038322063703881e2002201042ffffffffffffff038322073703801e2002201542ffffffffffffff0383220c3703f81d200241881f6a200241e81d6a106b2002200642f0ffffffffffff3f20067d220942ffffffffffffff038342f0ffffffffffff3f20077d22084233887c85420020022d00881f410171106dad42ff01837d220a8320068522063703881e20022007200842ffffffffffffff038342f0ffffffffffff3f200c7d220b4233887c85200a8320078522073703801e200220022903e81d2208200942338842137e42d0fdffffffffff3f20087d220d42ffffffffffffff03837c85200a8320088522083703e81d200220022903f01d220942f0ffffffffffff3f20097d221042ffffffffffffff0383200d4233887c85200a8320098522093703f01d2002200c200b42ffffffffffffff038320104233887c85200a83200c85220a3703f81d20024198046a200229038805221b20022903a8097c220c20022903f8067c220b20022903f8087c220d2002290398097c221020022903980822252002290388097c221220022903e8057c22132002290388077c221420022903e8087c221520022903e807222620022903d8087c221720022903a8087c221820022903c8067c22192002290398077c221a20022903c807222720022903a8077c221c20022903f8077c221d20022903b8087c221e20022903d8067c221f20022903b807222820022903e8067c220e20022903d8077c220f2002290388087c221120022903c8087c2216423388200241b8076a41086a290300200241e8066a41086a2903007c200e202854ad7c200241d8076a41086a2903007c200f200e54ad7c20024188086a41086a2903007c2011200f54ad7c200241c8086a41086a2903007c2016201154ad7c420d86847c220e423388200241c8076a41086a290300200241a8076a41086a2903007c201c202754ad7c200241f8076a41086a2903007c201d201c54ad7c200241b8086a41086a2903007c201e201d54ad7c200241d8066a41086a2903007c201f201e54ad7c200e201f54ad7c420d86847c221c423388200241e8076a41086a290300200241d8086a41086a2903007c2017202654ad7c200241a8086a41086a2903007c2018201754ad7c200241c8066a41086a2903007c2019201854ad7c20024198076a41086a2903007c201a201954ad7c201c201a54ad7c420d86847c221742338820024198086a41086a29030020024188096a41086a2903007c2012202554ad7c200241e8056a41086a2903007c2013201254ad7c20024188076a41086a2903007c2014201354ad7c200241e8086a41086a2903007c2015201454ad7c2017201554ad7c420d86847c221842338820024188056a41086a290300200241a8096a41086a2903007c200c201b54ad7c200241f8066a41086a2903007c200b200c54ad7c200241f8086a41086a2903007c200d200b54ad7c20024198096a41086a2903007c2010200d54ad7c2018201054ad7c420d868442137e201642ffffffffffffff03837c221042ffffffffffffff0383220c420020022903f01c220b420010e808200241e8046a20022903901d220d42002010423388200e42ffffffffffffff03837c221042137e420010e80820024188066a20022903881d22124200201c42ffffffffffffff0383221542137e221c420010e808200241b8056a20022903801d22134200201742ffffffffffffff0383221942137e221a420010e808200241c8036a20022903f81c22144200201842ffffffffffffff0383221842137e2217420010e80820024188046a20144200200c420010e808200241d8046a200b42002010420010e808200241f8056a200d4200201c420010e808200241a8056a20124200201a420010e808200241b8036a201342002017420010e808200241f8036a20134200200c420010e808200241c8046a201442002010420010e80820024198066a200b42002015420010e80820024198056a200d4200201a420010e808200241a8036a201242002017420010e808200241e8036a20124200200c420010e808200241b8046a201342002010420010e808200241a8066a201442002015420010e808200241c8056a200b42002019420010e808200241c8026a200d42002017420010e808200241d8036a200d4200200c420010e808200241a8046a201242002010420010e808200241b8066a201342002015420010e808200241d8056a201442002019420010e808200241f8046a200b42002018420010e8082002200229039805221c2002290398067c220c20022903a8037c220b20022903f8037c221020022903c8047c221220022903f805221d20022903d8047c220d20022903a8057c221320022903b8037c22142002290388047c221520022903e804221e2002290398047c22172002290388067c221820022903b8057c221920022903c8037c221a423388200241e8046a41086a29030020024198046a41086a2903007c2017201e54ad7c20024188066a41086a2903007c2018201754ad7c200241b8056a41086a2903007c2019201854ad7c200241c8036a41086a2903007c201a201954ad7c420d86847c2217423388200241f8056a41086a290300200241d8046a41086a2903007c200d201d54ad7c200241a8056a41086a2903007c2013200d54ad7c200241b8036a41086a2903007c2014201354ad7c20024188046a41086a2903007c2015201454ad7c2017201554ad7c420d86847c221342ffffffffffffff0383220d3703a01e200220022903c802221d20022903c8057c221420022903e8037c221520022903b8047c221820022903a8067c2219201342338820024198056a41086a29030020024198066a41086a2903007c200c201c54ad7c200241a8036a41086a2903007c200b200c54ad7c200241f8036a41086a2903007c2010200b54ad7c200241c8046a41086a2903007c2012201054ad7c2013201254ad7c420d86847c220c42ffffffffffffff038322103703a81e200220022903d803221e20022903f8047c220b20022903a8047c221220022903b8067c221320022903d8057c221c200c423388200241c8026a41086a290300200241c8056a41086a2903007c2014201d54ad7c200241e8036a41086a2903007c2015201454ad7c200241b8046a41086a2903007c2018201554ad7c200241a8066a41086a2903007c2019201854ad7c200c201954ad7c420d86847c220c42ffffffffffffff038322143703b01e2002200c423388200241d8036a41086a290300200241f8046a41086a2903007c200b201e54ad7c200241a8046a41086a2903007c2012200b54ad7c200241b8066a41086a2903007c2013201254ad7c200241d8056a41086a2903007c201c201354ad7c200c201c54ad7c420d868442137e201a42ffffffffffffff03837c220b42ffffffffffffff0383220c3703901e2002200b423388201742ffffffffffffff03837c220b3703981e20024188016a200c42002008420010e808200241d8016a20064200200b42137e420010e808200241e8026a20074200200d42137e2215420010e80820024188026a200a4200201042137e2213420010e808200241386a20094200201442137e2212420010e808200241f8006a20094200200c420010e808200241c8016a20084200200b420010e808200241d8026a200642002015420010e808200241f8016a200742002013420010e808200241286a200a42002012420010e808200241e8006a200a4200200c420010e808200241b8016a20094200200b420010e808200241f8026a20084200200d420010e808200241e8016a200642002013420010e808200241186a200742002012420010e808200241d8006a20074200200c420010e808200241a8016a200a4200200b420010e80820024188036a20094200200d420010e80820024198026a200842002010420010e808200241086a200642002012420010e808200241c8006a20064200200c420010e80820024198016a20074200200b420010e80820024198036a200a4200200d420010e808200241a8026a200942002010420010e808200241b8026a200842002014420010e808200220022903e801221520022903f8027c220620022903187c220720022903687c220820022903b8017c220920022903d802221720022903c8017c220a20022903f8017c220c20022903287c220b20022903787c220d20022903d80122182002290388017c221020022903e8027c22122002290388027c221320022903387c2214423388200241d8016a41086a29030020024188016a41086a2903007c2010201854ad7c200241e8026a41086a2903007c2012201054ad7c20024188026a41086a2903007c2013201254ad7c200241386a41086a2903007c2014201354ad7c420d86847c2210423388200241d8026a41086a290300200241c8016a41086a2903007c200a201754ad7c200241f8016a41086a2903007c200c200a54ad7c200241286a41086a2903007c200b200c54ad7c200241f8006a41086a2903007c200d200b54ad7c2010200d54ad7c420d86847c220a42ffffffffffffff03833703b81f2002200229030822132002290398027c220c20022903587c220b20022903a8017c220d2002290388037c2212200a423388200241e8016a41086a290300200241f8026a41086a2903007c2006201554ad7c200241186a41086a2903007c2007200654ad7c200241e8006a41086a2903007c2008200754ad7c200241b8016a41086a2903007c2009200854ad7c200a200954ad7c420d86847c220642ffffffffffffff03833703c01f20022002290348221520022903b8027c22072002290398017c22082002290398037c220920022903a8027c220a2006423388200241086a41086a29030020024198026a41086a2903007c200c201354ad7c200241d8006a41086a2903007c200b200c54ad7c200241a8016a41086a2903007c200d200b54ad7c20024188036a41086a2903007c2012200d54ad7c2006201254ad7c420d86847c220642ffffffffffffff03833703c81f20022006423388200241c8006a41086a290300200241b8026a41086a2903007c2007201554ad7c20024198016a41086a2903007c2008200754ad7c20024198036a41086a2903007c2009200854ad7c200241a8026a41086a2903007c200a200954ad7c2006200a54ad7c420d868442137e201442ffffffffffffff03837c220642ffffffffffffff03833703a81f20022006423388201042ffffffffffffff03837c3703b01f4200210602402029450d00200241881f6a200241a81f6a106b4200210620022d00881f410171106d41ff01714101460d00200241d01e6a4200370300200241c81e6a4200370300200241c01e6a4200370300200242003703b81e200241881f6a200241901e6a106b200241b81e6a4101722129410021054100210341012104024003402005200241881f6a20036a2d0000732205410020056b72417f7341800171410776106d20047121042003411f460d01202920036a2d00002105200341016a21030c000b0b420021062004106d41ff01714101460d00200241b81e6a41206a200241e81d6a41206a290300370300200241b81e6a41186a200241e81d6a41186a290300370300200241b81e6a41106a200241e81d6a41106a290300370300200241b81e6a41086a200241e81d6a41086a290300370300200241e81e6a200241901e6a41086a290300370300200241f01e6a200241901e6a41106a290300370300200241f81e6a200241901e6a41186a290300370300200241801f6a200241901e6a41206a290300370300200220022903e81d3703b81e200220022903901e3703e01e200241881b6a41206a200241a81f6a41206a290300370300200241881b6a41186a200241a81f6a41186a290300370300200241881b6a41106a200241a81f6a41106a290300370300200241881b6a41086a200241a81f6a41086a290300370300200220022903a81f3703881b200241b01b6a200241b81e6a41d00010e9081a420121060b200241b81e6a210320064200520d010b200241b01a6a410f6a2003410f6a290000370000200241b01a6a41086a200341086a290000370300200220032900003703b01a200241b5196a200241b01a6a41d30010e9081a41012103200041013a0004200020022900b5193700052000410d6a200241b5196a41086a290000370000200041146a200241b5196a410f6a2900003700000c010b200241b01a6a41036a200241b01b6a41d00010e9081a200241881a6a41206a2203200241881b6a41206a290300370300200241881a6a41186a2204200241881b6a41186a290300370300200241881a6a41106a2205200241881b6a41106a290300370300200241881a6a41086a2229200241881b6a41086a290300370300200220022903881b3703881a200241b5196a200241b01a6a41d30010e9081a20024188196a41206a222a200329030037030020024188196a41186a2203200429030037030020024188196a41106a2204200529030037030020024188196a41086a22052029290300370300200220022903881a37038819200041086a200241b5196a41036a41d00010e9081a200041e0006a4200370300200041d8006a4201370300200041e8006a4200370300200041f0006a4200370300200041f8006a420037030020004180016a20022903881937000020004188016a200529030037000020004190016a200429030037000020004198016a2003290300370000200041a0016a202a290300370000200041a8016a2001290000370000200041b0016a200141086a290000370000200041b8016a200141106a290000370000200041c0016a200141186a290000370000410021030b20002003360200200241d01f6a24000bd60101027f230041106b2202240002400240024002400240024020002d00000e050001020304050b200241003a000f20012002410f6a410110742001200041016a412010740c040b200241013a000f20012002410f6a410110740c030b200241023a000f20012002410f6a41011074200041046a28020021032000410c6a28020022002001107620012003200010740c020b200241033a000f20012002410f6a410110742001200041016a412010740c010b200241043a000f20012002410f6a410110742001200041016a411410740b200241106a24000bb40201067f230041106b22022400024002402001280200220328020422044104490d0020032802002205280000210620032004417c6a3602042003200541046a3602002002200110e8010240024020022802002203450d00200241086a2802002105200228020421042001280200220128020422074104490d012000200436020820002003360204200020063602002000410c6a200536020020012802002203280000210420012007417c6a3602042001200341046a360200200041106a20043602000c030b200041003602040c020b2000410036020402402005450d002005410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b2004450d012004410c6c450d012003102e0c010b200041003602040b200241106a24000baa0201067f230041106b2202240002400240200128020422034104490d0020012802002204280000210520012003417c6a3602042001200441046a3602002002200110e3010240024020022802002203450d00200241086a280200210620022802042104200128020422074104490d012000200436020820002003360204200020053602002000410c6a200636020020012802002203280000210420012007417c6a3602042001200341046a360200200041106a20043602000c030b200041003602040c020b2000410036020402402006450d002006410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b2004450d012004410c6c450d012003102e0c010b200041003602040b200241106a24000bd007020e7f047e230041b0046b22022400200128020c2103200128020821042001280204210520012802002106200241286a200010f901200241e0016a200228022822002002280230220710fa01200241f0036a41086a2208200241e0016a41086a290300370300200241f0036a41106a2209200241e0016a41106a290300370300200241f0036a41186a220a200241e0016a41186a290300370300200241f0036a41206a220b200241e0016a41206a290300370300200241f0036a41286a220c200241e0016a41286a290300370300200241f0036a41306a220d200241e0016a41306a290300370300200241f0036a41386a220e200241e0016a41386a290300370300200220022903e0013703f00320022d00a002210120024188036a200241e0016a41c1006a41e70010e9081a02402001410646220f0d00200241386a41386a200e290300370300200241386a41306a200d290300370300200241386a41286a200c290300370300200241386a41206a200b290300370300200241386a41186a200a290300370300200241386a41106a2009290300370300200241386a41086a2008290300370300200220022903f003370338200241386a41c1006a20024188036a41e70010e9081a0b200220013a0078410021010240200f0d0002402006280200220f290300221020022903382211542206200f41086a2903002212200241386a41086a220829030022135420122013511b0d00200f201020117d370300200f201220137d2006ad7d370308200241023a0078200241186a200241c0016a2002290368200241f0006a29030010fb012005280200210f20042802002106200242f0f2bda1a7ee9cb9f9003703f00320022006360290032002410236028c03200241e2b8c00036028803200241e0016a200241f0036a20024188036a10fc01200241086a200241e0016a2002290338200829030010fd01200f427f200f290300221220022903087c221320132012542206200f41086a22082903002212200241086a41086a2903007c2006ad7c221320125420132012511b22061b3703002008427f201320061b370300200241ec016a2004280200360200200241e0016a41086a41023a0000200241153a00e001200241e0016a10fe010c010b41012101200328020041013a00000b200241e0016a200241386a41a80110e9081a0240024020022d00a0024106470d002000200710ff010c010b20024100360290032002420137038803200241e0016a20024188036a10800220002007200228028803220f20022802900310b201200228028c03450d00200f102e0b0240200228022c450d002000102e0b200241b0046a240020010b870201037f230041d0006b22022400200241086a41bad7c7004108108102200241186a419dfec6004108108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241386a41086a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000bd41205047f067e017f027e0a7f230041a0026b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822010d00200041063a00400c010b200328020c21042003200341086a41086a28020036026c20032001360268200341186a200341e8006a109301024002400240024020032d00184101460d0020034190016a200341316a290000370300200341f8006a41106a200341296a290000370300200341f8006a41086a200341216a29000037030020032003290019370378200328026c22024110490d0020032003280268220541106a3602682003200241706a220636026c20064110490d00200541086a2900002107200529000021082003200541206a3602682003200241606a220636026c20064110490d00200541186a29000021092005290010210a2003200541306a3602682003200241506a220636026c20064110490d00200541286a290000210b2005290020210c2003200241406a220d36026c2003200541c0006a2206360268200d450d00200541386a290000210e2005290030210f2003200241bf7f6a36026c2003200641016a36026841002102024002400240024020062d00000e06060500010203040b410221020c050b200341186a200341e8006a10930120032d00184101460d02200341b8016a41186a200341316a290000370300200341b8016a41106a200341296a290000370300200341b8016a41086a200341216a290000370300200341b4016a41026a200341d8016a41026a2d00003a000020034198016a41086a200341f8016a41086a29000037030020034198016a41106a200341f8016a41106a29000037030020034198016a41186a200341f8016a41186a280000360200200320032900193703b801200320032f00d8013b01b401200320032900f80137039801410321020c040b200341186a200341e8006a10930120032d00184101460d01200341f8016a41186a2205200341316a290000370300200341f8016a41106a2206200341296a290000370300200341f8016a41086a220d200341216a290000370300200320032900193703f80141042102200328026c22104104490d01200341b8016a41086a200d290300370300200341b8016a41106a2006290300370300200341b8016a41186a2005290300370300200341b4016a41026a2003419c026a41026a2d00003a0000200320032903f8013703b80120032802682205280000210d20032010417c6a36026c2003200541046a360268200320032f009c023b01b40120034198016a41186a200341d8016a41186a28020036020020034198016a41106a200341d8016a41106a29020037030020034198016a41086a200341d8016a41086a290200370300200320032902d801370398010c030b200341186a200341e8006a10930120032d00184101460d00200341f8016a41186a200341316a290000370300200341f8016a41106a200341296a290000370300200341f8016a41086a200341216a290000370300200320032900193703f801200341186a200341e8006a10930120032d00184101460d002003419c026a41026a220220032d001b3a0000200341d8016a41086a200341186a41106a290300370300200341d8016a41106a200341186a41186a290300370300200341d8016a41186a200341386a2d00003a0000200320032f00193b019c022003200341186a41086a2903003703d801200328026c22064104490d00200328021c210d200341b8016a41086a200341f8016a41086a290300370300200341b8016a41106a200341f8016a41106a290300370300200341b8016a41186a200341f8016a41186a290300370300200341b4016a41026a20022d00003a000020034198016a41186a200341d8016a41186a2d00003a000020034198016a41106a200341d8016a41106a29030037030020034198016a41086a200341d8016a41086a290300370300200320032903f8013703b801200320032f019c023b01b401200320032903d8013703980120032802682202280000210520032006417c6a36026c2003200241046a360268200341b3016a200341f5016a41026a2d00003a0000200320032f00f5013b00b101410521020c020b20034100360220200342013703182003410a3602fc01200320033602f8012003200341186a3602b801200341d4006a410136020020034201370244200341909dc5003602402003200341f8016a360250200341b8016a419cebc000200341c0006a103d1a2003280218200328022010ef020240200328021c450d002003280218102e0b410621020c020b410121020b200341c0006a41186a2206200341b8016a41186a290300370300200341c0006a41106a2210200341b8016a41106a290300370300200341c0006a41086a2211200341b8016a41086a290300370300200341f4006a41026a2212200341b4016a41026a2d00003a0000200341d8016a41086a221320034198016a41086a290300370300200341d8016a41106a221420034198016a41106a290300370300200341d8016a41186a221520034198016a41186a280200360200200320032903b801370340200320032f01b4013b017420032003290398013703d801200341f8016a41086a2216200341f8006a41086a290300370300200341f8016a41106a2217200341f8006a41106a290300370300200341f8016a41186a2218200341f8006a41186a290300370300200341e2006a20122d00003a0000200320032903783703f801200320032f01743b0160200041386a200e3703002000200f370330200041286a200b3703002000200c370320200041186a20093703002000200a3703102000200737030820002008370300200341186a411f6a2212200341c0006a411f6a280000360000200341186a41186a22192006290300370300200341186a41106a22062010290300370300200341186a41086a2210201129030037030020032003290340370318200041e4006a200d360000200041e0006a2012280000360000200041d9006a2019290300370000200041d1006a2006290300370000200041c9006a201029030037000020002003290318370041200041e8006a20032903d801370000200041f0006a2013290300370000200041f8006a201429030037000020004180016a201528020036000020004184016a2005360000200041a0016a201829030037000020004198016a201729030037000020004190016a201629030037000020004188016a20032903f8013700000b200020023a00402004450d002001102e0b200341a0026a24000bf21104027f097e047f087e230041d0026b2204240002400240200220038450450d0042002102420021030c010b200441f0006a200110c802200441d0016a20042802702205200428027810c902200441f0016a2903002106200441e8016a2903002107200441e0016a290300210820042903d801210920042903d001210a02402004280274450d002005102e0b200a4201520d002009200784200820068484500d00200441f0006a200110c802200441d0016a20042802702205200428027810c902200441d0016a41386a290300210b200441d0016a41306a2903002107200441d0016a41286a2903002108200441d0016a41206a290300210c200441d0016a41186a290300210d200441d0016a41106a290300210a20044190026a290300210e20042903d801210620042903d0012109200441206a41086a200441a0026a290300370300200420044198026a2903003703200240024020094201510d004200210e200441306a41386a4200370300200441306a41306a4200370300200441306a41286a4200370300200441306a41206a4200370300200441306a41186a4200370300200441306a41106a4200370300200441306a41086a4200370300200442003703304200210842002107420021064200210a0c010b200441306a41286a2007370300200441306a41306a200b37030020042008370350200420063703302004200e3703682004200d3703402004200a3703382004200c3703480b02402004280274450d002005102e0b024002402006200a844200520d0020082004290340842007200441c8006a29030084844200520d002004290360200441e8006a2903008450450d004200210d410021050c010b200441c0006a2903002106200441e0006a290300210c200441d8006a2903002108200441d0006a290300210b20042903382107200429033021094201210d2004290348210a410121050b0240200d420152220f450d004200210b420021084200210c4200210e420021064200210a42002109420021070b200441f8016a2210200837030020044180026a2211200c370300200441e8016a200a2003200a2006200256200a200356200a2003511b22121b22087d20062002200620121b220a54ad7d220d3703002004200b3703f00120042006200a7d22133703e0012004427f200720087c2009200a7c220b2009542212ad7c22062012200620075420062007511b22121b22063703d8012004427f200b20121b22073703d001200fad210b02400240427f200720137c22092009200754220f2006200d7c200fad7c220920065420092006511b220f1b220c42ffc7afa02556427f2009200f1b22094200522009501b0d0020072013842006200d8484220d50210f42002113200d420052ad210d0c010b2011290300211420102903002115200441f0016a2903002116200441e0016a290300211720042903e801211820042903d801211920042903d001211a420121134200210d4101210f0b200441a8016a200837030020044198016a200937030020044190016a2212200c37030020044180016a20063703002004200a3703a001200420073703782004200d370388012004200b37037002400240024020052013420152720d00200420013602d0012001200441d0016a10bd060c010b0240200541017322052013420151720d00200420013602d0012001200441d0016a10be0641ff017122054103460d01024020050e03030200030b200f0d03200420123602d001200441d0016a10cc020c030b20134201522005710d010b200441b0016a200110c802200441d0016a20042802b001220520042802b801220f10c90220042903d001210a200441206a41086a2212200441a0026a290300370300200420044198026a29030037032002400240200a4201510d00200441c0016a41086a4200370300200442003703c0010c010b200441c0016a41086a2012290300370300200420042903203703c0010b024020134201510d004200211a420021194200211642002115420021144200210e42002117420021180b20044180026a2015370300200441d0016a41286a2016370300200441f0016a2018370300200441e8016a2017370300200441d0016a41106a201937030020044190026a200e37030020044198026a20042903c001370300200441d0016a41386a2014370300200441a0026a200441c0016a41086a2903003703002004201a3703d801200442013703d0012005200f200441d0016a41086a10c805024020042802b401450d002005102e0b200441f0006a41106a2903002106200441f0006a41286a2903002109200441f0006a41386a290300210820042903782107200429039001210c20042903a001210a2004290370210b200429038801210d0b0240200b4201520d0020044188026a200637030020044180026a2007370300200441d0016a41086a41003a0000200441d9016a2001290000370000200441e1016a200141086a290000370000200441e9016a200141106a290000370000200441f1016a200141186a290000370000200441033a00d001200441d0016a10fe010b02400240200d50450d00420021060c010b200441d0016a41186a200141186a290000370300200441d0016a41106a200141106a290000370300200441d0016a41086a200141086a290000370300200420012900003703d001420121060b200441186a200441d0016a41186a22052903002207370300200441106a200441d0016a41106a220f290300220b370300200441086a200441d0016a41086a2212290300220d370300200420042903d001220e37030020044180026a22102009370300200441f8016a2211200c370300200f200d3703002005200b370300200441f0016a2007370300200420063703d0012004200e3703d801200441d0016a10d204024020042903d001500d0020042011360270200441f0006a10cc020b20044188026a20083703002010200a370300201241063a0000200441d9016a2001290000370000200441e1016a200141086a290000370000200441e9016a200141106a290000370000200441f1016a200141186a290000370000200441033a00d001200320087d2002200a54ad7d21032002200a7d2102200441d0016a10fe010b2000200237030020002003370308200441d0026a24000b930301037f230041e0006b22032400200341c0006a200241086a2802003602002003200229020037033820032001360230200341edde91e30636023402400240200341306a410c6a2802002204410c6a2202417f4c0d000240024020020d00410121050c010b2002102c2205450d020b200341003602502003200236024c20032005360248200341c8006a200341306a41047241041074200341c8006a200141081074200328023821022004200341c8006a1076200341c8006a2002200410742003200341c0006a280200360208200341c8006a200341086a41041074200328024821022003200328025036025c20032002360258200341086a200341d8006a10d0040240200328024c450d002002102e0b0240024020032d00084101470d0020004200370000200041186a4200370000200041106a4200370000200041086a42003700000c010b20002003290009370000200041186a200341216a290000370000200041106a200341196a290000370000200041086a200341116a2900003700000b200341e0006a24000f0b1038000b1036000b9c1005027f0c7e017f047e017f230041d0026b22042400024002402002200384500d00200441e0006a200110c802200441d0016a20042802602205200428026810c902200441d0016a41386a2903002106200441d0016a41306a2903002107200441d0016a41286a2903002108200441d0016a41206a2903002109200441d0016a41186a290300210a200441d0016a41106a290300210b20044190026a290300210c20042903d801210d20042903d001210e200441a0016a41086a200441a0026a290300370300200420044198026a2903003703a00102400240200e4201510d004200210c200441206a41386a4200370300200441206a41306a4200370300200441206a41286a4200370300200441206a41206a4200370300200441206a41186a4200370300200441206a41106a4200370300200441206a41086a420037030020044200370320420021094200210842002107420021064200210d4200210b4200210a4200210f420021104200210e420021110c010b200441206a41206a2008370300200441206a41286a2007370300200441206a41106a200a370300200441206a41306a2006370300200420093703382004200d3703202004200c3703582004200b3703282008210f20072110200d210e200b21110b02402004280264450d002005102e0b02400240200e2011844200520d00200f2004290330842010200441386a29030084844200520d002004290350200441d8006a2903008450450d004200210e410021120c010b4201210e410121120b0240200e4201510d004200210a4200210c420021094200210842002107420021064200210d4200210b0b0240200e4201510d0020024280c8afa0255441002003501b0d010b200441f0016a2008370300200441f8016a200737030020044180026a2006370300200420093703e8012004200a3703e0012004200b200b20037c200d20027c220f200d542205ad7c221120052011200b542011200b511b22051b22113703d8012004200d200f20051b220d3703d0014200210f4200200320051b21034200200220051b210b42012110200e420152ad211302400240427f200d200a7c22022002200d542205201120097c2005ad7c220220115420022011511b22051b221442ffc7afa02556427f200220051b22024200522002501b0d00200d200a84201120098484220a50210542002110200a420052ad210f0c010b200441e0016a290300211520042903d801211620042903d001210a410121050b20044198016a200337030020044188016a200237030020044180016a22172014370300200441f0006a20113703002004200b370390012004200d3703682004200f3703782004201337036002400240024002400240024020122010420152720d00200420013602d0012001200441d0016a10bd060c010b0240201241017322122010420151720d00200420013602d0012001200441d0016a10be0641ff017122124103460d01024020120e03030200030b20044190016a2101024020050d00200420173602d001200441d0016a10cc020b200420013602d001200441d0016a10ce020c060b20104201522012710d020b200441b0016a200110c802200441d0016a20042802b001221220042802b801221710c90220042903d001210b200441a0016a41086a2205200441a0026a290300370300200420044198026a2903003703a00102400240200b4201510d00200441c0016a41086a4200370300200442003703c0010c010b200441c0016a41086a2005290300370300200420042903a0013703c0010b20044198026a20042903c001370300200441a0026a200441c0016a41086a290300370300200442013703d001200441d0016a41386a20064200201042015122051b37030020044180026a2007420020051b370300200441d0016a41286a2008420020051b370300200441f0016a2009420020051b370300200441e8016a2015420020051b370300200441d0016a41106a2016420020051b37030020044190026a200c420020051b3703002004200a420020051b3703d80120122017200441d0016a41086a10c805024020042802b401450d002012102e0b20042903602209428080808070832107200441e0006a41106a2903002111200441e0006a41286a2903002102200441e0006a41386a29030021032004290368210d2004290380012114200429039001210b2004290378210f0c030b200e420152ad21090c010b200e420152ad21090b420021070b02402007200942ffffffff0f83844201520d0020044188026a201137030020044180026a200d370300200441d0016a41086a41003a0000200441d9016a2001290000370000200441e1016a200141086a290000370000200441e9016a200141106a290000370000200441f1016a200141186a290000370000200441033a00d001200441d0016a10fe010b02400240200f50450d004200210d0c010b200441d0016a41186a200141186a290000370300200441d0016a41106a200141106a290000370300200441d0016a41086a200141086a290000370300200420012900003703d0014201210d0b200441186a200441d0016a41186a22012903002209370300200441106a200441d0016a41106a22052903002207370300200441086a200441d0016a41086a2903002208370300200420042903d001220a37030020044180026a2002370300200441f8016a221220143703002005200837030020012007370300200441f0016a20093703002004200d3703d0012004200a3703d801200441d0016a10d20420042903d001500d0120042012360260200441e0006a10cc020c010b4200210b420021030b2000200b37030020002003370308200441d0026a24000bfe0a010c7f23004180026b22012400200141c0016a22024200370300200141b8016a22034200370300200141a8016a41086a22044200370300200142003703a801200141c8016a41d9fcc60041061081022004200141c8016a41086a2205290000370300200120012900c8013703a801200141c8016a4180f4cb00410610810220022005290000370300200320012900c801370300200141086a200141a8016a4120108e02024002402001280208450d00200128020c450d00200141c0016a22064200370300200141b8016a22074200370300200141a8016a41086a22024200370300200142003703a801200141c8016a41d9fcc60041061081022002200141c8016a41086a2204290000370300200120012900c8013703a801200141c8016a41e8f7cb00410e108102200341086a22082004290000370000200320012900c801370000200141203602dc012001200141a8016a3602d801200141f0016a200141a8016a412010ed020240024020012802f00122090d00410321050c010b200141f0016a41086a280200210a20012802f401210b200141003a00c801024002400240200a450d00410121050240024020092d00000e03000401020b200a417f6a4104490d012009280001210c410021050c030b410221050c010b200141003602d001200142013703c8012001410a3602e4012001200141d8016a3602e0012001200141c8016a3602ec01200141246a410136020020014201370214200141909dc5003602102001200141e0016a360220200141ec016a419cebc000200141106a103d1a20012802c80120012802d00110ef02024020012802cc01450d0020012802c801102e0b410321050b0b200b450d002009102e0b200141106a200041800110e9081a200141a0016a410036020020014194016a200c360200200142013703980120014102200520054103461b220536029001200642003703002007420037030020024200370300200142003703a801200141c8016a41d9fcc600410610810220022004290000370300200120012900c8013703a801200141c8016a41a4f5cb00410a10810220082004290000370000200320012900c8013700002001200141a8016a4120108e020240024002402001280204410020012802001b220241016a22002002490d0020014198016a210c200141c0016a22064200370300200141b8016a22074200370300200141a8016a41086a22044200370300200142003703a801200141c8016a41d9fcc60041061081022004200141c8016a41086a2202290000370300200120012900c8013703a801200141c8016a41a4f5cb00410a108102200341086a22082002290000370000200320012900c801370000200120003602c801200141a8016a4120200141c8016a410410b201200642003703002007420037030020044200370300200142003703a801200141c8016a41d9fcc600410610810220042002290000370300200120012900c8013703a801200141c8016a41e0f4cb00410610810220082002290000370000200320012900c801370000200141003602f801200142013703f0010240024020050e03030001040b200141013a00c801200141f0016a200141c8016a410110740c030b200141023a00c801200141f0016a200141c8016a410110740c020b200141106a10c008200128029c0141ffffff3f71450d03200128029801102e0c030b200141003a00c801200141f0016a200141c8016a4101107420012001280294013602c801200141f0016a200141c8016a410410740b200141106a200141f0016a109c06200c200141f0016a10b8012002200141f0016a41086a280200360200200120012903f0013703c801200141a8016a4120200141c8016a10c702200141106a10c008200128029c0141ffffff3f71450d01200128029801102e0c010b200010c0080b20014180026a24000b0e002001ad4220862000ad8410210b910302017f017e230041106b22022400200120004188016a41201074200029030021032002200041086a290300370308200220033703002001200241101074200029031021032002200041186a290300370308200220033703002001200241101074200029032021032002200041286a290300370308200220033703002001200241101074200029033021032002200041386a290300370308200220033703002001200241101074024002400240024002400240024020002d00400e06000102030405060b200241003a000020012002410110740c050b200241013a000020012002410110740c040b200241023a000020012002410110740c030b200241033a000020012002410110742001200041c1006a412010740c020b200241043a000020012002410110742001200041c1006a412010742002200041e4006a28020036020020012002410410740c010b200241053a000020012002410110742001200041c1006a412010742001200041e1006a41201074200220004184016a28020036020020012002410410740b200241106a24000b2c0020002002ad4220862001ad8410122201290000370000200041086a200141086a2900003700002001102e0ba10606057f017e027f017e027f017e230041206b2202240002400240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020002400240200641037122034103460d00024002400240024020030e03000102000b2006410276ad21070c020b200128020022012802042203450d04200128020022042d0000210520012003417f6a360204410121032001200441016a3602002005410874200672220141ffff0371418002490d03200141fcff0371410276ad21070c010b410121032001280200220128020422044103490d022001280200220541026a2d0000210820052f000021092001200541036a36020020012004417d6a3602042009200841107472410874200672220141808004490d022001410276ad21070b4200210a410021030c030b02400240024002402006410276220b0e0d00030303010303030303030302030b2001280200220328020422014104490d0420032802002206350000210720032001417c6a3602042003200641046a36020020074280808080045421034200210a0c050b2001280200220328020422014108490d032003280200220629000021072003200141786a3602042003200641086a3602002007428080808080808080015421034200210a0c040b2001280200220328020422014110490d022003280200220641086a290000210a200629000021072003200641106a3602002003200141706a360204200a428080808080808080015421030c030b200641334b0d01200b41046a21094100210441012103200241186a210c420021074200210a0340200128020022062802042205450d0120062802002208310000210d20062005417f6a3602042006200841016a360200200241106a200d4200200441037441f8007110ed08200c290300200a84210a20022903102007842107200441016a22062104200641ff01712009490d000b2002427f427f41e800200b4103746b41f8007110e4082007200229030058200a200241086a290300220d58200a200d511b21030c020b0c010b410121030b20002007370308200041106a200a37030020002003ad370300200241206a24000b130020004109360204200041a8b9c0003602000b3400200041bad7c70036020420004100360200200041146a4104360200200041106a41b8d6c000360200200041086a42083702000b4201027f230041106b2202240002404104102c22030d001036000b20004204370204200020033602002002410036020c20002002410c6a41041074200241106a24000b130020004107360204200041a4dcc0003602000b4401027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241a0c21e36020c20002002410c6a41041074200241106a24000b4501027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241808dcf0036020c20002002410c6a41041074200241106a24000b4401027f230041106b2202240002404104102c22030d001036000b200042043702042000200336020020024180840736020c20002002410c6a41041074200241106a24000be92007017f027e027f017e067f027e027f230041f0126b2202240042022103024002400240024002400240200129036822044202520d00200241106a20014198016a41b00210e9081a0c010b2002418e036a200141246a41c20010e9081a200241d0036a41086a220520014188016a290300370300200241d0036a41106a220620014190016a290300370300200220014180016a2903003703d003200141f8006a290300210320012903702107200128020821082001280204210920012d0000210a200241d00d6a41026a220b200141036a2d00003a000020024188046a41086a220c200141146a29020037030020024188046a41106a2001411c6a290200370300200220012f00013b01d00d2002200129020c37038804024002400240200a0e03020100010b2008450d002009102e0b200241f8116a41026a200241c8126a41026a2d00003a000020024188086a41086a200241980b6a41086a29030037030020024188086a410d6a200241980b6a410d6a290000370000200220022f01c8123b01f811200220022903980b37038808200041036a41003a0000200041013b0001200041013a000020014198016a108b020c030b200241980b6a410d6a220a20024188046a410d6a290000370000200241980b6a41086a220d200c290300370300200241f8116a41026a220c200b2d00003a000020024188086a41086a220b200d29030037030020024188086a410d6a220d200a290000370000200220022f01d00d3b01f8112002200229038804370388082002200c2d00003a00ea03200220022f01f8113b01e803200220083600ef03200220093600eb03200241e8036a41186a200d290000370000200241e8036a41136a200b29030037000020022002290388083700f303200241d00d6a20014198016a41b00210e9081a20024180106a41106a200629030037030020024180106a41086a2005290300370300200220022903d003370380104100210a200241d8116a4100108c02200241c8126a20022802d811220820022802e011108d0220022d00c8122101200241f8116a41186a2209200241e1126a290000370300200241f8116a41106a200241d9126a290000370300200241f8116a41086a200241d1126a290000370300200220022900c9123703f8110240024020014101460d00200241bd126a4200370000200241b8126a4200370300200241b0126a4200370300200242003703a8120c010b200241b0126a20024183126a290000370300200241a8126a41106a200241f8116a41136a290000370300200241bd126a2009290000370000200220022900fb113703a81220022f01f81120022d00fa1141107472210a0b024020022802dc11450d002008102e0b20024198116a41086a200241a8126a41086a29030037030020024198116a41106a200241a8126a41106a29030037030020024198116a41156a200241a8126a41156a290000370000200220022903a8123703981120024190126a22014200370300200241f8116a41106a22084200370300200241f8116a41086a22094200370300200242003703f811200241c8126a41d9fcc60041061081022009200241c8126a41086a2205290000370300200220022900c8123703f811200241c8126a4180f4cb00410610810220012005290000370300200820022900c812370300200241086a200241f8116a4120108e0241002101024020044201520d0020074200510d04200228020c410020022802081b2108417f210142002008ad220e20037d220f200f200e561b220e20037c200e2007827d220e42ffffffff0f560d00200ea721010b200241c8126a2001108c0220022802c812220920022802d012108f022108024020022802cc12450d002009102e0b2008450d0120024198126a2001108c02200241c8126a200228029812220820022802a012108d0220022d00c812210120024190126a2209200241e1126a290000370300200241f8116a41106a200241d9126a290000370300200241f8116a41086a200241d1126a290000370300200220022900c9123703f8110240024020014101460d00200241bd126a4200370000200241a8126a41106a4200370300200241a8126a41086a4200370300200242003703a812410021010c010b200241a8126a41086a20024183126a290000370300200241a8126a41106a2002418b126a290000370300200241bd126a2009290000370000200220022900fb113703a81220022f01f81120022d00fa114110747221010b0240200228029c12450d002008102e0b200241d8116a41156a2208200241a8126a41156a290000370000200241d8116a41106a2209200241a8126a41106a290300370300200241b8116a41106a22052009290300370300200241b8116a41156a22092008290000370000200241b8116a41086a200241a8126a41086a290300220e370300200241d8106a41086a2208200e370300200241d8106a41106a22062005290300370300200241d8106a41156a22052009290000370000200220022903a812220e3703b8112002200e3703d810200241f8106a41156a220920024198116a41156a290000370000200241f8106a41106a220b20024198116a41106a290300370300200241f8106a41086a220c20024198116a41086a29030037030020022002290398113703f810200241b8106a41156a220d2009290000370000200241b8106a41106a2209200b290300370300200241b8106a41086a220b200c290300370300200220022903f8103703b81020024198106a41156a220c200529000037000020024198106a41106a2205200629030037030020024198106a41086a22062008290300370300200220022903d81037039810200241e00a6a41156a2208200d290000370000200241e00a6a41106a220d2009290300370300200241e00a6a41086a2209200b290300370300200220022903b8103703e00a200241c00a6a41156a220b200c290000370000200241c00a6a41106a220c2005290300370300200241c00a6a41086a2205200629030037030020022002290398103703c00a200241800b6a41106a220620024180106a41106a290300370300200241800b6a41086a221020024180106a41086a29030037030020022002290380103703800b200241980b6a41046a200241d00d6a41b00210e9081a20024188086a200241980b6a41b40210e9081a200241f0076a41106a22112006290300370300200241f0076a41086a22062010290300370300200241d0076a41086a22102009290300370300200241d0076a41106a2209200d290300370300200241d0076a41156a220d2008290000370000200241b0076a41086a22082005290300370300200241b0076a41106a2205200c290300370300200241b0076a41156a220c200b290000370000200220022903800b3703f007200220022903e00a3703d007200220022903c00a3703b00720024188046a20024188086a41046a41b00210e9081a200241f2066a200a4110763a0000200241f0066a200a3b0100200241c8066a2003370300200241c0066a2007370300200241d0066a220a20022903f007370300200241d8066a2006290300370300200241e0066a22062011290300370300200241f3066a20022903d007370000200241fb066a201029030037000020024183076a200929030037000020024188076a200d290000370000200220043703b8062002429e808080f0003703e80620024192076a20014110763a000020024190076a20013b010020024193076a20022903b0073700002002419b076a2008290300370000200241a3076a2005290300370000200241a8076a200c2900003700004108102c2201450d042002420837028c08200220013602880820024188046a20024188086a1090020240024020022903b8064201520d00200220022903c80620022903c0062203420c882204420120044201561b80a741047420037aa7417f6a22014101200141014b1b2201410f2001410f491b723b01980b20024188086a200241980b6a410210740c010b200241003a00980b20024188086a200241980b6a410110740b200620024188086a1091022002200a3602980b200241980b6a20024188086a10af01200220022802e8063602980b20024188086a200241980b6a41041074200220022802ec063602980b20024188086a200241980b6a410410744120102c2201450d042002422037029c0b200220013602980b200241980b6a200241f0066a4120107420024188086a20022802980b220120022802a00b10740240200228029c0b450d002001102e0b4120102c2201450d042002422037029c0b200220013602980b200241980b6a20024190076a4120107420024188086a20022802980b220120022802a00b10740240200228029c0b450d002001102e0b200228028808210102400240200228029008220a418102490d00200241f8116a2001200a10b0012002418e036a200241f8116a4120200241e8036a10920221010c010b2002418e036a2001200a200241e8036a10920221010b0240200228028c08450d00200228028808102e0b024020010d0020004180083b0001200041013a0000200041036a41003a000020024188046a108b020c030b200241e8026a41086a200241e8036a41086a290300370300200241e8026a41106a200241e8036a41106a290300370300200241e8026a41186a200241e8036a41186a290300370300200241c0026a41086a200241c8066a290300370300200241c0026a41106a200241d0066a290300370300200241c0026a41186a200241d8066a290300370300200241e0026a200241e0066a290300370300200220022903e8033703e8022002200241c0066a2903003703c00220022903b8062103200241106a20024188046a41b00210e9081a0b200041086a20022903e802370300200041286a2003370300200041306a20022903c002370300200041206a200241e8026a41186a290300370300200041186a200241e8026a41106a290300370300200041106a200241e8026a41086a290300370300200041386a200241c0026a41086a290300370300200041c0006a200241c0026a41106a290300370300200041c8006a200241c0026a41186a290300370300200041d0006a200241c0026a41206a290300370300200041d8006a200241106a41b00210e9081a200041003a00000c010b200241b8116a41156a200241d8116a41156a290000370000200241b8106a41086a200241f8106a41086a290000370300200241b8106a41106a200241f8106a41106a290000370300200241b8106a41156a200241f8106a41156a29000037000020024198106a41156a200241d8106a41156a290000370000200220022900f8103703b810200241d00d6a108b0220024188086a200241980b6a41b40210e9081a200241f0076a41106a200241800b6a41106a290300370300200241f0076a41086a200241800b6a41086a290300370300200241d0076a41086a200241e00a6a41086a290000370300200241d0076a41106a200241e00a6a41106a290000370300200241d0076a41156a200241e00a6a41156a290000370000200241b0076a41086a200241c00a6a41086a290000370300200241b0076a41106a200241c00a6a41106a290000370300200241b0076a41156a200241c00a6a41156a290000370000200220022903800b3703f007200220022900e00a3703d007200220022900c00a3703b007200041036a41003a0000200041800a3b0001200041013a00000b200241f0126a24000f0b41d0e7cc00411941ece7cc001039000b1036000ba62801047f024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002802000e1b00010218180304051806070818090a0b0c0d0e0f10111213141516170b0240024002400240024002400240200041086a2802000e0a1e1e001e01021e030405060b200041106a280200450d1d2000410c6a280200102e0f0b200041106a280200450d1c2000410c6a280200102e0f0b200041106a280200450d1b2000410c6a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141186c210103400240200241046a280200450d002002280200102e0b0240200241106a280200450d002002410c6a280200102e0b200241186a2102200141686a22010d000b0b200041106a2802002202450d1a200241186c450d1a200028020c102e0f0b0240200041146a2802002201450d002000410c6a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041106a2802002202450d192002410c6c450d19200028020c102e0f0b200041106a280200450d182000410c6a280200102e0f0b200041106a280200450d172000410c6a280200102e0f0b0240024002400240024020002d00040e061b001b010203040b200041186a2202280200108b022002280200102e0f0b02402000410c6a280200450d00200041086a280200102e0b200041246a2202280200108b022002280200102e0f0b2000410c6a280200450d18200041086a280200102e0f0b200041186a2202280200108b022002280200102e0f0b02402000410c6a280200450d00200041086a280200102e0b200041246a2202280200108b022002280200102e0f0b02400240200041086a280200417f6a0e020001170b2000412c6a220110e1010240200041306a2802002202450d00200241246c450d002001280200102e0b2000419c016a220110e1010240200041a0016a2802002202450d00200241246c450d002001280200102e0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d162002410c6c450d162000280210102e0f0b2000412c6a220110e1010240200041306a2802002202450d00200241246c450d002001280200102e0b2000419c016a220110e1010240200041a0016a2802002202450d00200241246c450d002001280200102e0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d152002410c6c450d152000280210102e0f0b0240024002400240200041086a2802000e0418000102030b2000410c6a2d00004102470d17200041146a280200450d17200041106a280200102e0f0b2000410c6a2d00004102470d16200041146a280200450d16200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004102470d15200041386a280200450d15200041346a280200102e0f0b2000410c6a2d00004102470d14200041146a280200450d14200041106a280200102e0f0b02402000410c6a2802002201450d0020002802042202200141f0006c6a21030340024020022204410c6a2802002201450d0020042802042102200141246c210103400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200441f0006a21020240200441086a2802002201450d00200141246c450d002004280204102e0b20022003470d000b0b200041086a2802002202450d13200241f0006c450d132000280204102e0f0b024002400240024002400240200041086a2d00000e171800181818180118180218181818180318180418181818050b2000412c6a2d00004102470d17200041346a280200450d17200041306a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141246c21010340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200041106a2802002202450d16200241246c450d16200028020c102e0f0b2000410c6a2d00004102470d15200041146a280200450d15200041106a280200102e0f0b200041106a28020041ffffff3f71450d142000410c6a280200102e0f0b200041146a28020041ffffffff0371450d13200041106a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141246c21010340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200041106a2802002202450d12200241246c450d12200028020c102e0f0b20002802042202450d11200041086a280200450d112002102e0f0b02400240200041086a280200417f6a0e020001120b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d112002410c6c450d112000280210102e0f0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d102002410c6c450d102000280210102e0f0b02402000410c6a280200450d00200041086a280200102e0b02402000411c6a2802002201450d00200041146a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041186a2802002202450d0f2002410c6c450d0f2000280214102e0f0b0240024002400240200041086a2d000041716a0e0400010203120b200041106a280200450d112000410c6a280200102e0f0b200041106a280200450d102000410c6a280200102e0f0b200041106a280200450d0f2000410c6a280200102e0f0b200041106a280200450d0e2000410c6a280200102e0f0b024002400240200041086a2d0000417f6a0e03000102100b200041306a28020041ffffff3f71450d0f2000412c6a280200102e0f0b2000410c6a2202280200108b022002280200102e0f0b200041106a2202280200108b022002280200102e0f0b024002400240200041086a2d0000417f6a0e030001020f0b200041306a28020041ffffff3f71450d0e2000412c6a280200102e0f0b2000410c6a2202280200108b022002280200102e0f0b200041106a2202280200108b022002280200102e0f0b02400240200041086a2d0000417f6a0e05000d0d0d010d0b200041106a28020041ffffff3f71450d0c2000410c6a280200102e0f0b2000410c6a2d00004102470d0b200041146a280200450d0b200041106a280200102e0f0b20002d00044104470d0a2000410c6a28020041ffffff3f71450d0a200041086a280200102e0f0b200041086a2802004101470d092000410c6a2d00004102470d09200041146a280200450d09200041106a280200102e0f0b02400240200041086a2d0000417d6a0e0200010a0b200041f0006a280200450d09200041ec006a280200102e0f0b200041106a280200450d082000410c6a280200102e0f0b024002400240200041086a2802000e040a0a0001020b2000410c6a2d00004102470d09200041146a280200450d09200041106a280200102e0f0b2000410c6a2d00004102470d08200041146a280200450d08200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004102470d07200041386a280200450d07200041346a280200102e0f0b02400240024020002f01040e03090001020b0240200041106a2802002201450d00200041086a2802002102200141b0026c210103402002109601200241b0026a2102200141d07d6a22010d000b0b2000410c6a2802002202450d08200241b0026c450d082000280208102e0f0b200041086a2202280200108b022002280200102e0f0b0240200041106a2802002201450d00200041086a2802002102200141b0026c210103402002109601200241b0026a2102200141d07d6a22010d000b0b2000410c6a2802002202450d06200241b0026c450d062000280208102e0f0b0240024002400240024002400240200041086a2d0000417e6a0e0d00010c0c0c0c0c0c02030405060c0b0240200041146a2802002201450d002000410c6a2802002202200141c8006c6a21010340024020022d00004101470d00200241086a280200450d00200241046a280200102e0b0240200241246a2d00004101470d002002412c6a280200450d00200241286a280200102e0b200241c8006a22022001470d000b0b0240200041106a2802002202450d00200241c8006c450d00200028020c102e0b0240200041186a2d00004101470d00200041206a280200450d002000411c6a280200102e0b02402000413c6a2d00004101470d00200041c4006a280200450d00200041c0006a280200102e0b0240200041e0006a2d00004101470d00200041e8006a280200450d00200041e4006a280200102e0b024020004184016a2d00004101470d002000418c016a280200450d0020004188016a280200102e0b0240200041a8016a2d00004101470d00200041b0016a280200450d00200041ac016a280200102e0b0240200041cc016a2d00004101470d00200041d4016a280200450d00200041d0016a280200102e0b200041f0016a2d00004101470d0b200041f8016a280200450d0b200041f4016a280200102e0f0b0240200041146a2802002202450d00200241c4006c21012000410c6a28020041286a210203400240200241786a2d00004101470d002002280200450d002002417c6a280200102e0b200241c4006a2102200141bc7f6a22010d000b0b200041106a2802002202450d0a200241c4006c450d0a200028020c102e0f0b200041106a2d00004102470d09200041186a280200450d09200041146a280200102e0f0b2000410c6a2d00004102470d08200041146a280200450d08200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004101470d07200041386a280200450d07200041346a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004101470d06200041386a280200450d06200041346a280200102e0f0b2000410c6a2d00004102470d05200041146a280200450d05200041106a280200102e0f0b20002d00042202417e6a4108490d040240024020020e020600010b200041286a2202280200108b022002280200102e0f0b200041c8006a2202280200108b022002280200102e0f0b0240024002400240200041086a2d00000e0407000102030b0240200041106a28020041ffffff3f71450d002000410c6a280200102e0b200041186a2202280200108b022002280200102e0f0b0240200041106a28020041ffffff3f71450d002000410c6a280200102e0b200041286a280200450d05200041246a280200102e0f0b200041306a28020041ffffff3f71450d042000412c6a280200102e0f0b200041306a28020041ffffff3f71450d032000412c6a280200102e0f0b0240024002400240200041086a2802000e09060006010606020606030b200041106a280200450d052000410c6a280200102e0f0b200041106a2d00004102470d04200041186a280200450d04200041146a280200102e0f0b200041106a2d00004102470d03200041186a280200450d03200041146a280200102e0f0b200041146a280200450d02200041106a280200102e0f0b02400240200041086a2d0000417f6a0e03000301030b200041306a280200450d022000412c6a280200102e0c020b200041306a280200450d012000412c6a280200102e0f0b02402000413c6a28020041ffffffff0171450d00200041386a280200102e0b0240200041c8006a2802002202450d002002410c6c450d00200041c4006a280200102e0b0240200041d4006a28020041ffffffff0071450d00200041d0006a280200102e0b0240200041e0006a2802002202450d00200241146c450d00200041dc006a280200102e0b0240200041ec006a2802002202450d00200241186c450d00200041e8006a280200102e0b0240200041f8006a2802002202450d002002411c6c450d00200041f4006a280200102e0b024020004184016a28020041ffffff3f71450d0020004180016a280200102e0b024020004190016a2802002202450d00200241246c450d002000418c016a280200102e0b02402000419c016a2802002202450d00200241286c450d0020004198016a280200102e0b0240200041a8016a2802002202450d002002412c6c450d00200041a4016a280200102e0b0240200041b4016a2802002202450d00200241306c450d00200041b0016a280200102e0b0240200041c0016a2802002202450d00200241346c450d00200041bc016a280200102e0b0240200041cc016a2802002202450d00200241386c450d00200041c8016a280200102e0b0240200041d8016a2802002202450d002002413c6c450d00200041d4016a280200102e0b0240200041e4016a28020041ffffff1f71450d00200041e0016a280200102e0b200041f0016a2802002202450d00200241c4006c450d00200041ec016a280200102e0f0b0b850201037f230041d0006b22022400200241086a41d9fcc6004106108102200241186a41a0f3cb004109108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000b9d0902047f017e230041b0016b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041003a00000c010b200341186a280200210220032802142104200341003a0060024002402002450d00200320012d00003a0040200341013a0060024020024101460d00200320012d00013a0041200341023a006020024102460d00200320012d00023a0042200341033a006020024103460d00200320012d00033a0043200341043a006020024104460d00200320012d00043a0044200341053a006020024105460d00200320012d00053a0045200341063a006020024106460d00200320012d00063a0046200341073a006020024107460d00200320012d00073a0047200341083a006020024108460d00200320012d00083a0048200341093a006020024109460d00200320012d00093a00492003410a3a00602002410a460d00200320012d000a3a004a2003410b3a00602002410b460d00200320012d000b3a004b2003410c3a00602002410c460d00200320012d000c3a004c2003410d3a00602002410d460d00200320012d000d3a004d2003410e3a00602002410e460d00200320012d000e3a004e2003410f3a00602002410f460d00200320012d000f3a004f200341103a006020024110460d00200320012d00103a0050200341113a006020024111460d00200320012d00113a0051200341123a006020024112460d00200320012d00123a0052200341133a006020024113460d00200320012d00133a0053200341143a006020024114460d00200320012d00143a0054200341153a006020024115460d00200320012d00153a0055200341163a006020024116460d00200320012d00163a0056200341173a006020024117460d00200320012d00173a0057200341183a006020024118460d00200320012d00183a0058200341193a006020024119460d00200320012d00193a00592003411a3a00602002411a460d00200320012d001a3a005a2003411b3a00602002411b460d00200320012d001b3a005b2003411c3a00602002411c460d00200320012d001c3a005c2003411d3a00602002411d460d00200320012d001d3a005d2003411e3a00602002411e460d00200320012d001e3a005e2003411f3a00602002411f460d00200341206a41106a2202200341c0006a41106a290300370300200341206a41086a2205200341c0006a41086a290300370300200320012d001f3a005f200341206a41186a2206200341c0006a41186a290300370300200341203a006020032003290340220737036820032007370320200041196a2006290300370000200041116a2002290300370000200041096a200529030037000020002003290320370001410121020c020b200341003a00600b20034100360270200342013703682003410a3602242003200341086a3602202003200341e8006a3602ac01200341d4006a410136020020034201370244200341909dc5003602402003200341206a360250200341ac016a419cebc000200341c0006a103d1a2003280268200328027010ef020240200328026c450d002003280268102e0b410021020b200020023a00002004450d002001102e0b200341b0016a24000b840201037f230041d0006b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822040d00410021010c010b200328020c210502400240200341106a2802004104490d0020042800002102410121010c010b4100210120034100360220200342013703182003410a36022c200320033602282003200341186a360234200341cc006a41013602002003420137023c200341909dc5003602382003200341286a360248200341346a419cebc000200341386a103d1a2003280218200328022010ef020240200328021c450d002003280218102e0b0b2005450d002004102e0b2000200236020420002001360200200341d0006a24000b11002001ad4220862000ad8410244101460bf97002067f017e230041106b2202240002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002802000e1c000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c0b200241003a000020012002410110740240024002400240024002400240024002400240200041086a280200417f6a0e0a00010203040506070809250b200241003a0000200120024101107420022000410c6a28020036020020012002410410740c240b200241013a000020012002410110742000410c6a2802002103200041146a28020022002001107620012003200010740c230b200241023a000020012002410110742002200041106a29030037030020012002410810740c220b200241033a000020012002410110742000410c6a2802002103200041146a28020022002001107620012003200010740c210b200241043a000020012002410110742000410c6a2802002103200041146a28020022002001107620012003200010740c200b200241053a0000200120024101107402402000410c6a2802004101460d00200241003a000020012002410110740c200b200241013a000020012002410110742002200041106a28020036020020012002410410742002200041146a28020036020020012002410410740c1f0b200241063a000020012002410110742000410c6a2802002103200041146a2802002200200110762000450d1e2003200041186c6a2104034020032802002100200341086a28020022052001107620012000200510742003410c6a2802002100200341146a2802002205200110762001200020051074200341186a22032004470d000c1f0b0b200241073a000020012002410110742000410c6a2802002103200041146a2802002200200110762000450d1d20032000410c6c6a2104034020032802002100200341086a28020022052001107620012000200510742003410c6a22032004470d000c1e0b0b200241083a000020012002410110742000410c6a2802002103200041146a28020022052001107620012003200510742002200041186a28020036020020012002410410740c1c0b200241093a000020012002410110742000410c6a2802002103200041146a28020022002001107620012003200010740c1b0b200241013a0000200120024101107402400240024002400240024020002d0004417f6a0e06000102030405200b200241003a000020012002410110742002200041086a2802003602002001200241041074024002402000410c6a2802004101460d00200241003a000020012002410110740c010b200241013a000020012002410110742002200041106a28020036020020012002410410742002200041146a28020036020020012002410410740b200220002d00053a00002001200241011074200028021820011090020c1f0b200241013a000020012002410110742002200041086a280200360200200120024104107420022000410c6a28020036020020012002410410740c1e0b200241023a00002001200241011074200041086a2802002103200041106a28020022052001107620012003200510742002200041146a280200360200200120024104107402400240200041186a2802004101460d00200241003a000020012002410110740c010b200241013a0000200120024101107420022000411c6a28020036020020012002410410742002200041206a28020036020020012002410410740b200220002d00053a00002001200241011074200028022420011090020c1d0b200241033a00002001200241011074200041086a2802002103200041106a28020022002001107620012003200010740c1c0b200241043a000020012002410110742002200041086a2802003602002001200241041074024002402000410c6a2802004101460d00200241003a000020012002410110740c010b200241013a000020012002410110742002200041106a28020036020020012002410410742002200041146a28020036020020012002410410740b200220002d00053a00002001200241011074200028021820011090020c1b0b200241053a00002001200241011074200041086a2802002103200041106a28020022052001107620012003200510742002200041146a280200360200200120024104107402400240200041186a2802004101460d00200241003a000020012002410110740c010b200241013a0000200120024101107420022000411c6a28020036020020012002410410742002200041206a28020036020020012002410410740b200220002d00053a00002001200241011074200028022420011090020c1a0b200241023a00002001200241011074024002400240200041086a280200417f6a0e030001021c0b200241003a00002001200241011074200120004188026a412010742002200041206a2903003703002001200241081074200041286a2001108f0620004198016a2001108f0620022000410c6a2802003602002001200241041074200041106a2802002103200041186a28020022052001107602402005450d0020032005410c6c6a2106034020032802002105200341086a28020022042001107620012005200410742003410c6a22032006470d000b0b20022000411c6a28020036020020012002410410740c1b0b200241013a00002001200241011074200120004188026a412010742002200041206a2903003703002001200241081074200041286a2001108f0620004198016a2001108f0620022000410c6a2802003602002001200241041074200041106a2802002103200041186a28020022052001107602402005450d0020032005410c6c6a2106034020032802002105200341086a28020022042001107620012005200410742003410c6a22032006470d000b0b20022000411c6a28020036020020012002410410740c1a0b200241023a00002001200241011074200041106a20011096020c190b200241033a00002001200241011074200241003a00002001200241011074200041086a200110dc040c180b200241043a00002001200241011074200041046a21030240024002400240024020002d0004417f6a0e0500010203041c0b200241003a000020012002410110742002200041086a28020036020020012002410410740c1b0b200241013a000020012002410110742001200341016a412010742002200041286a28020036020020012002410410740c1a0b200241023a000020012002410110742002200041086a28020036020020012002410410740c190b200241033a000020012002410110742001200341016a412010742002200041286a2802003602002001200241041074200220002d00253a000020012002410110740c180b200241043a000020012002410110742002200041086a28020036020020012002410410740c170b200241053a000020012002410110740240024002400240200041086a280200417f6a0e04000102031a0b200241003a000020012002410110742000410c6a200110f5012002200041306a3602002002200110af010c190b200241013a000020012002410110742000410c6a200110f5012002200041306a3602002002200110af012002200041c0006a3602002002200110af010c180b200241023a000020012002410110742000410c6a200110f501200041306a200110f5012002200041d8006a3602002002200110af010c170b200241033a000020012002410110742000410c6a200110f5012002200041306a3602002002200110af010c160b200241063a00002001200241011074200241003a00002001200241011074200028020421032000410c6a2802002200200110762000450d15200041f0006c2100034020032001108f06200341f0006a2103200041907f6a22000d000c160b0b200241073a0000200120024101107402400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041086a22032d0000417f6a0e17000102030405060708090a0b0c0d0e0f101112131415162b0b200241003a000020012002410110742000412c6a200110f5012002200041d0006a3602002002200110af010240024002400240024020002d00090e0500010203042f0b200241003a000020012002410110740c2e0b200241013a000020012002410110740c2d0b200241023a000020012002410110740c2c0b200241033a000020012002410110742001200341026a412010740c2b0b200241043a000020012002410110740c2a0b200241013a000020012002410110742002200041106a3602002002200110af010c290b200241023a000020012002410110742002200041106a3602002002200110af010c280b200241033a0000200120024101107420022000410c6a28020036020020012002410410740c270b200241043a000020012002410110742000410c6a20011091022002200041106a2d00003a000020012002410110740c260b200241053a000020012002410110742000410c6a2802002103200041146a280200220020011076200041246c2200450d2503402003200110f501200341246a21032000415c6a22000d000c260b0b200241063a000020012002410110740c240b200241073a000020012002410110740240024002400240024020032d00010e050001020304280b200241003a000020012002410110740c270b200241013a000020012002410110740c260b200241023a000020012002410110740c250b200241033a000020012002410110742001200341026a412010740c240b200241043a000020012002410110740c230b200241083a000020012002410110742000410c6a200110f5010c220b200241093a000020012002410110742000410c6a20011091020c210b2002410a3a000020012002410110742000410c6a20011091020c200b2002410b3a00002001200241011074200220032d00013a000020012002410110740c1f0b2002410c3a000020012002410110740c1e0b2002410d3a000020012002410110740c1d0b2002410e3a000020012002410110742000410c6a2802002103200041146a2802002200200110762000450d1c2000410574210003402001200341201074200341206a2103200041606a22000d000c1d0b0b2002410f3a000020012002410110742001200341016a4120107420022000412c6a28020036020020012002410410740c1b0b200241103a000020012002410110740c1a0b200241113a0000200120024101107420022000410c6a2802003602002001200241041074200041106a2802002103200041186a28020022002001107620012003200041027410740c190b200241123a000020012002410110742001200341016a4120107420022000412c6a28020036020020012002410410740c180b200241133a000020012002410110742002200041106a3602002002200110af010c170b200241143a000020012002410110742000410c6a2001109102200041106a20011091020c160b200241153a000020012002410110742001200341016a4120107420022000412c6a28020036020020012002410410740c150b200241163a000020012002410110742000410c6a2802002103200041146a280200220020011076200041246c2200450d1403402003200110f501200341246a21032000415c6a22000d000c150b0b200241083a00002001200241011074200110b6040c130b200241093a0000200120024101107402402000280204450d00200241003a000020012002410110742001200041106a412010742001200041306a412010742001200041d0006a412010742001200041f0006a41201074200120004190016a412010742001200041b0016a41201074200028020421032000410c6a28020022002001107620012003200010740c130b200241013a000020012002410110740c120b2002410b3a00002001200241011074024002400240200041086a280200417f6a0e03000102140b200241003a00002001200241011074200041206a200110900620022000410c6a2802003602002001200241041074200041106a2802002103200041186a28020022052001107602402005450d0020032005410c6c6a2106034020032802002105200341086a28020022042001107620012005200410742003410c6a22032006470d000b0b20022000411c6a28020036020020012002410410740c130b200241013a00002001200241011074200041206a200110900620022000410c6a2802003602002001200241041074200041106a2802002103200041186a28020022052001107602402005450d0020032005410c6c6a2106034020032802002105200341086a28020022042001107620012005200410742003410c6a22032006470d000b0b20022000411c6a28020036020020012002410410740c120b200241023a0000200120024101107420022000410c6a28020036020020012002410410742002200041106a28020036020020012002410410740c110b2002410c3a00002001200241011074200241003a00002001200241011074200220002802043602002001200241041074200041086a2802002103200041106a2802002205200110762001200320051074200041146a28020021032000411c6a2802002205200110762000412c6a210702402005450d0020032005410c6c6a2106034020032802002105200341086a28020022042001107620012005200410742003410c6a22032006470d000b0b2002200041206a28020036020020012002410410742002200041246a28020036020020012002410410742002200041286a28020036020020012002410410742001200741c00010740c100b2002410d3a00002001200241011074200110b6040c0f0b2002410e3a000020012002410110740240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041086a22032d0000417f6a0e19000102030405060708090a0b0c0d0e0f101112131415161718270b200241003a000020012002410110744120102c2205450d27200041306a210020024220370204200220053602002002200341016a412010742001200228020022032002280208107402402002280204450d002003102e0b200220003602002002200110af010c260b200241013a000020012002410110742000410c6a2001109102200041106a20011091020c250b200241023a000020012002410110742000410c6a2001109102200041106a200110b2040c240b200241033a0000200120024101107420022000410c6a28020036020020012002410410740c230b200241043a000020012002410110744120102c2200450d2320024220370204200220003602002002200341016a41201074200120022802002200200228020810742002280204450d222000102e0c220b200241053a000020012002410110744120102c2200450d2220024220370204200220003602002002200341016a41201074200120022802002200200228020810742002280204450d212000102e0c210b200241063a000020012002410110744120102c2200450d2120024220370204200220003602002002200341016a41201074200120022802002200200228020810742002280204450d202000102e0c200b200241073a000020012002410110744120102c2205450d2020024220370204200220053602002002200341016a412010742001200228020022032002280208107402402002280204450d002003102e0b2002200028022c36020020012002410410742002200028023036020020012002410410740c1f0b200241083a000020012002410110744120102c2200450d1f20024220370204200220003602002002200341016a41201074200120022802002200200228020810742002280204450d1e2000102e0c1e0b200241093a000020012002410110742000410c6a20011091020c1d0b2002410a3a0000200120024101107420022000410c6a28020036020020012002410410740c1c0b2002410b3a000020012002410110742001200341016a4120107420002d002920011073200041306a29030021082002200041386a2903003703082002200837030020012002411010740c1b0b2002410c3a000020012002410110740c1a0b2002410d3a000020012002410110740c190b2002410e3a000020012002410110742000410c6a2802002103200041146a28020022002001107620012003200010740c180b2002410f3a000020012002410110742000410c6a2802002103200041146a28020022002001107620012003200010740c170b200241103a000020012002410110742000410c6a2802002103200041146a28020022002001107620012003200010740c160b200241113a000020012002410110742000410c6a2802002103200041146a28020022002001107620012003200010740c150b200241123a000020012002410110744120102c2205450d152000412c6a210020024220370204200220053602002002200341016a412010742001200228020022032002280208107402402002280204450d002003102e0b200020011091020c140b200241133a000020012002410110742001200341016a412010740c130b200241143a0000200120024101107420022000410c6a28020036020020012002410410740c120b200241153a000020012002410110742001200341016a4120107420022000412c6a28020036020020012002410410740c110b200241163a000020012002410110744120102c2205450d1120024220370204200220053602002002200341016a412010742001200228020022032002280208107402402002280204450d002003102e0b2002200028022c36020020012002410410740c100b200241173a000020012002410110744120102c2205450d1020024220370204200220053602002002200341016a412010742001200228020022032002280208107402402002280204450d002003102e0b0240200028022c4101460d00200241003a000020012002410110740c100b200241013a000020012002410110742002200041306a28020036020020012002410410740c0f0b200241183a000020012002410110742000410c6a20011091020c0e0b2002410f3a00002001200241011074024002400240024002400240200041086a22042d0000417f6a0e06000102030405130b200241003a000020012002410110742000412c6a2802002103200041346a28020022052001107602402005450d002005410574210503402001200341201074200341206a2103200541606a22050d000b0b0240024020042d00014101460d00200241003a000020012002410110740c010b200241013a000020012002410110742001200441026a412010740b2002200028023836020020012002410410740c120b200241013a000020012002410110742000410c6a2802002001109002200041106a20011091020c110b200241023a000020012002410110742000410c6a2001109102200041106a2802002001109002200041146a20011091020c100b200241033a000020012002410110744120102c2203450d102000412c6a210020024220370204200220033602002002200441016a412010742001200228020022032002280208107402402002280204450d002003102e0b20002001109102200220042d00213a000020012002410110740c0f0b200241043a000020012002410110744120102c2203450d0f200041306a2105200041386a21062000412c6a210020024220370204200220033602002002200441016a412010742001200228020022032002280208107402402002280204450d002003102e0b200020011091022006200110dc04200520011091020c0e0b200241053a000020012002410110744120102c2200450d0e20024220370204200220003602002002200441016a41201074200120022802002200200228020810742002280204450d0d2000102e0c0d0b200241103a00002001200241011074024002400240024002400240200041086a22042d0000417f6a0e06000102030405120b200241003a000020012002410110742000412c6a2802002103200041346a28020022052001107602402005450d002005410574210503402001200341201074200341206a2103200541606a22050d000b0b0240024020042d00014101460d00200241003a000020012002410110740c010b200241013a000020012002410110742001200441026a412010740b2002200028023836020020012002410410740c110b200241013a000020012002410110742000410c6a2802002001109002200041106a20011091020c100b200241023a000020012002410110742000410c6a2001109102200041106a2802002001109002200041146a20011091020c0f0b200241033a000020012002410110744120102c2203450d0f2000412c6a210020024220370204200220033602002002200441016a412010742001200228020022032002280208107402402002280204450d002003102e0b20002001109102200220042d00213a000020012002410110740c0e0b200241043a000020012002410110744120102c2203450d0e200041306a2105200041386a21062000412c6a210020024220370204200220033602002002200441016a412010742001200228020022032002280208107402402002280204450d002003102e0b200020011091022006200110dc04200520011091020c0d0b200241053a000020012002410110744120102c2200450d0d20024220370204200220003602002002200441016a41201074200120022802002200200228020810742002280204450d0c2000102e0c0c0b200241113a00002001200241011074024002400240024002400240200041086a2d0000417f6a0e06000102030405110b200241003a000020012002410110742000410c6a2802002103200041146a280200220520011076200041186a210402402005450d002005410574210003402001200341201074200341206a2103200041606a22000d000b0b200220043602002002200110af010c100b200241013a000020012002410110740c0f0b200241023a000020012002410110742000410c6a20011091020c0e0b200241033a000020012002410110740240024002402000410c6a2802000e03000102100b200241003a000020012002410110740c0f0b200241013a000020012002410110740c0e0b200241023a00002001200241011074200041106a20011091020c0d0b200241043a000020012002410110742000410c6a200110f501200220002d00093a000020012002410110740c0c0b200241053a0000200120024101107420022000410c6a28020036020020012002410410742002200041106a28020036020020012002410410740c0b0b200241123a00002001200241011074200041046a2103024002400240024002400240024020002d0004417f6a0e0700010203040506110b200241003a000020012002410110742001200341016a412010740c100b200241013a000020012002410110742001200341016a412010740c0f0b200241023a000020012002410110742001200341016a412010742001200341216a412010740c0e0b200241033a00002001200241011074200041086a2802002103200041106a2802002200200110762000450d0d2000410574210003402001200341201074200341206a2103200041606a22000d000c0e0b0b200241043a000020012002410110742001200341016a412010740c0c0b200241053a000020012002410110742001200341016a412010740c0b0b200241063a000020012002410110740c0a0b200241133a00002001200241011074024002400240200041086a280200417f6a0e030001020c0b200241003a000020012002410110742002200041306a3602002002200110af012000410c6a200110f5010c0b0b200241013a000020012002410110742000410c6a20011091020c0a0b200241023a000020012002410110742000410c6a20011091020c090b200241183a0000200120024101107402400240024002400240200041086a22032d0000417f6a0e0500010203040d0b200241003a000020012002410110742001200341016a412010742001200341216a41c10010740c0c0b200241013a000020012002410110742001200341016a41141074200041206a29030021082002200041286a29030037030820022008370300200120024110107402400240200041306a2903004201510d00200241003a000020012002410110740c010b200241013a00002001200241011074200041386a29030021082002200041c0006a290300370308200220083703002001200241101074200041c8006a29030021082002200041d0006a2903003703082002200837030020012002411010742002200041d8006a28020036020020012002410410740b024020032d001522004102470d00200241003a000020012002410110740c0c0b200241013a00002001200241011074024020004101460d00200241003a000020012002410110740c0c0b200241013a000020012002410110740c0b0b200241023a000020012002410110742001200341016a412010742001200341216a41c1001074200041ec006a2802002103200041f4006a28020022002001107620012003200010740c0a0b200241033a000020012002410110742000410c6a2802002103200041146a28020022002001107620012003200010740c090b200241043a000020012002410110742001200341016a411410742001200341156a411410740240200341296a2d00004101460d00200241003a000020012002410110740c090b200241013a0000200120024101107420012003412a6a412010740c080b200241193a000020012002410110740240024002400240200041086a280200417f6a0e04000102030b0b200241003a000020012002410110740c0a0b200241013a000020012002410110742000410c6a200110f5010c090b200241023a000020012002410110742000410c6a200110f501200041306a29030021082002200041386a290300370308200220083703002001200241101074200041c0006a29030021082002200041c8006a2903003703082002200837030020012002411010742002200041d0006a28020036020020012002410410740c080b200241033a000020012002410110742000410c6a200110f501200041306a200110f501200041d8006a29030021082002200041e0006a290300370308200220083703002001200241101074200041e8006a29030021082002200041f0006a2903003703082002200837030020012002411010742002200041f8006a28020036020020012002410410740c070b2002411a3a0000200120024101107402400240024020002f0104417f6a0e03000102090b200241003a00002001200241011074200041086a2802002103200041106a280200220020011076200041b0026c2200450d08034020032001109002200341b0026a2103200041d07d6a22000d000c090b0b200241013a00002001200241011074200220002f01063b01002001200241021074200041086a28020020011090020c070b200241023a00002001200241011074200041086a2802002103200041106a280200220020011076200041b0026c2200450d06034020032001109002200341b0026a2103200041d07d6a22000d000c070b0b2002411c3a00002001200241011074024002400240024002400240024002400240024002400240024002400240200041086a22032d0000417f6a0e0f000102030405060708090a0b0c0d0e140b200241003a000020012002410110742001200341016a412010740c130b200241013a000020012002410110742000410c6a200110b7012002200041186a108a012001200228020022032002280208107402402002280204450d002003102e0b20022000413c6a108a012001200228020022032002280208107402402002280204450d002003102e0b2002200041e0006a108a012001200228020022032002280208107402402002280204450d002003102e0b200220004184016a108a012001200228020022032002280208107402402002280204450d002003102e0b2002200041a8016a108a012001200228020022032002280208107402402002280204450d002003102e0b0240024020004194026a22032d00004101460d00200241003a000020012002410110740c010b200241013a000020012002410110742001200341016a411410740b2002200041cc016a108a012001200228020022032002280208107402402002280204450d002003102e0b2002200041f0016a108a01200120022802002200200228020810742002280204450d122000102e0c120b200241023a000020012002410110742000410c6a2802002103200041146a280200220020011076200041c4006c2200450d11200320006a2105034020012003412010742002200341206a2200108a012001200228020022032002280208107402402002280204450d002003102e0b200041246a22032005470d000c120b0b200241033a000020012002410110740c100b200241043a000020012002410110742000410c6a20011091022002200041106a3602002002200110af010c0f0b200241053a0000200120024101107420022000410c6a28020036020020012002410410740c0e0b200241063a000020012002410110742000410c6a20011091022002200041106a3602002002200110af010c0d0b200241073a000020012002410110742000412c6a20011091022001200341016a412010740c0c0b200241083a000020012002410110742000410c6a20011091022002200041106a29030037030020012002410810740c0b0b200241093a000020012002410110742000410c6a2001109102200041106a200110f501200041386a200110ea030c0a0b2002410a3a000020012002410110742000410c6a200110f5010c090b2002410b3a000020012002410110742000410c6a200110f5012002200041306a108a01200120022802002200200228020810742002280204450d082000102e0c080b2002410c3a000020012002410110742000410c6a200110f5012002200041306a108a01200120022802002200200228020810742002280204450d072000102e0c070b2002410d3a000020012002410110742000410c6a200110f5010c060b2002410e3a000020012002410110740c050b2002411d3a00002001200241011074200041046a2103024002400240024002400240024002400240024020002d0004417f6a0e0a000102030405060708090e0b200241003a000020012002410110742001200341016a412010740240024020002d00254107470d00200241003a000020012002410110740c010b200241013a00002001200241011074024002400240024002400240024020032d00210e0700010203070405070b200241003a00000c050b200241013a00000c040b200241023a00000c030b200241033a00000c020b200241053a00000c010b200241063a00000b20012002410110740b200028022820011090020c0d0b200241013a000020012002410110742001200341016a41201074024002400240024002400240024020002d00250e0700010203060405060b200241003a000020012002410110740c050b200241013a000020012002410110740c040b200241023a000020012002410110740c030b200241033a000020012002410110740c020b200241053a000020012002410110740c010b200241063a000020012002410110740b2002200028022836020020012002410410740c0c0b200241023a000020012002410110742001200341016a41201074024002400240024002400240024020002d00250e0700010203060405060b200241003a000020012002410110740c050b200241013a000020012002410110740c040b200241023a000020012002410110740c030b200241033a000020012002410110740c020b200241053a000020012002410110740c010b200241063a000020012002410110740b2002200028022836020020012002410410740c0b0b200241033a000020012002410110740c0a0b200241043a00002001200241011074024002400240024002400240024020002d00050e0700010203060405060b200241003a000020012002410110740c050b200241013a000020012002410110740c040b200241023a000020012002410110740c030b200241033a000020012002410110740c020b200241053a000020012002410110740c010b200241063a000020012002410110740b200220002802083602002001200241041074200220002f01063b010020012002410210740c090b200241053a000020012002410110742001200341016a412010742000412c6a2105200041286a2104024002400240024002400240024020002d00250e0700010203060405060b200241003a000020012002410110740c050b200241013a000020012002410110740c040b200241023a000020012002410110740c030b200241033a000020012002410110740c020b200241053a000020012002410110740c010b200241063a000020012002410110740b200220032f01223b0100200120024102107420042001109102200520011091020c080b200241063a000020012002410110742001200341016a412010744120102c2200450d0820024220370204200220003602002002200341216a41201074200120022802002200200228020810742002280204450d072000102e0c070b200241073a000020012002410110742001200341016a412010744120102c2200450d0720024220370204200220003602002002200341216a41201074200120022802002200200228020810742002280204450d062000102e0c060b200241083a000020012002410110742001200341016a412010744120102c2200450d0620024220370204200220003602002002200341216a41201074200120022802002200200228020810742002280204450d052000102e0c050b200241093a000020012002410110742001200341016a412010742001200341216a412010740240024020002d00454107470d00200241003a000020012002410110740c010b200241013a00002001200241011074024002400240024002400240024020032d00410e0700010203070405070b200241003a00000c050b200241013a00000c040b200241023a00000c030b200241033a00000c020b200241053a00000c010b200241063a00000b20012002410110740b200028024820011090020c040b2002411e3a000020012002410110740240024002400240200041086a22042d0000417f6a0e0400010203070b200241003a000020012002410110742000410c6a2802002103200041146a28020022052001107602402005450d002005410574210503402001200341201074200341206a2103200541606a22050d000b0b200028021820011090020c060b200241013a00002001200241011074200220002f010a3b010020012002410210742000410c6a2802002103200041146a28020022052001107602402005450d002005410574210503402001200341201074200341206a2103200541606a22050d000b0b0240024020002802184101460d00200241003a000020012002410110740c010b200241013a0000200120024101107420022000411c6a28020036020020012002410410742002200041206a28020036020020012002410410740b200028022421032000412c6a2802002205200110762001200320051074200220002d00093a000020012002410110742002200029033037030020012002410810740c050b200241023a00002001200241011074200220002f012a3b010020012002410210742000412c6a2802002103200041346a28020022052001107602402005450d002005410574210503402001200341201074200341206a2103200541606a22050d000b0b200441016a21030240024020002802384101460d00200241003a000020012002410110740c010b200241013a0000200120024101107420022000413c6a28020036020020012002410410742002200041c0006a28020036020020012002410410740b20012003412010742002200029034837030020012002410810740c040b200241033a00002001200241011074200220002f012a3b010020012002410210742000412c6a2802002103200041346a280200220520011076200441016a210402402005450d002005410574210503402001200341201074200341206a2103200541606a22050d000b0b20022000280238360200200120024104107420022000413c6a280200360200200120024104107420012004412010740c030b200241223a00002001200241011074024002400240024002400240024002400240200041086a280200417f6a0e090001020304050607080b0b200241003a000020012002410110742002200041186a3602002002200110af012000410c6a2802002103200041146a28020022002001107620012003200010740c0a0b200241013a000020012002410110742000410c6a20011091020c090b200241023a000020012002410110742000410c6a2001109102200041106a200110f5012002200041386a3602002002200110af010c080b200241033a000020012002410110742000410c6a20011091020c070b200241043a000020012002410110742000410c6a20011091020c060b200241053a000020012002410110742000410c6a2001109102200041106a200110f5010c050b200241063a000020012002410110742000410c6a20011091020c040b200241073a000020012002410110742000410c6a20011091020c030b200241083a000020012002410110742000410c6a2001109102200041106a2802002103200041186a28020022002001107620012003200010740c020b200241233a00002001200241011074024002400240024002400240200041086a22032d0000417f6a0e06000102030405070b200241003a000020012002410110742000412c6a2802002105200041346a28020022002001107620012005200010742001200341016a412010740c060b200241013a000020012002410110744120102c2200450d0620024220370204200220003602002002200341016a41201074200120022802002200200228020810742002280204450d052000102e0c050b200241023a000020012002410110742000412c6a2802002105200041346a28020022042001107620012005200410742001200341016a412010742002200041386a3602002002200110af010c040b200241033a000020012002410110744120102c2205450d04200041306a210020024220370204200220053602002002200341016a412010742001200228020022032002280208107402402002280204450d002003102e0b200220003602002002200110af010c030b200241043a000020012002410110744120102c2200450d0320024220370204200220003602002002200341016a41201074200120022802002200200228020810742002280204450d022000102e0c020b200241053a000020012002410110744120102c2200450d0220024220370204200220003602002002200341016a41201074200120022802002200200228020810742002280204450d012000102e0c010b200241243a00002001200241011074200241003a000020012002410110742002200041386a1091062001200228020022042002280208107420004180026a2103200041086a210502402002280204450d002004102e0b20012005413010742002200041f8016a28020036020020012002410410742003200110910220004184026a20011091020b200241106a24000f0b1036000bb30101027f230041106b2202240002400240024002402000280200220341c000490d00200341808001490d012003418080808004490d02200241033a00032001200241036a41011074200220002802003602042001200241046a410410740c030b200220034102743a00032001200241036a410110740c020b200220034102744101723b010a20012002410a6a410210740c010b2002200341027441027236020c20012002410c6a410410740b200241106a24000bf70201017f23004190016b22042400024002400240024020002d00000e03000102000b200441206a41186a200341186a290000370300200441206a41106a200341106a290000370300200441206a41086a200341086a29000037030020042003290000370320200041016a20012002200441206a10890721000c020b200441206a41186a200341186a290000370300200441206a41106a200341106a290000370300200441206a41086a200341086a29000037030020042003290000370320200041016a20012002200441206a10fa0421000c010b20042001200210b001200441206a200041016a200410d3084100210020042d00200d00200441c8006a41206a200441206a41216a2d00003a0000200441e0006a200441396a290000370300200441d8006a200441316a290000370300200441d0006a200441296a29000037030020042004290021370348200441f0006a200441c8006a412110b001200441f0006a2003412010ec084521000b20044190016a240020000bc81303067f017e067f230041d0036b2202240002400240024002400240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a3602002005417f6a0e03010203040b200042033703000c040b024020064104490d002004280001210720012003417b6a22053602042001200441056a36020020054108490d00200429000521082001200341736a220936020420012004410d6a36020041002105200241003a0028200341726a21030240034020092005460d01200241086a20056a200420056a2206410d6a2d00003a00002001200336020420012006410e6a3602002002200541016a22063a00282003417f6a21032006210520064120470d000b20024190036a41086a2204200241086a41086a29030037030020024190036a41106a2203200241086a41106a29030037030020024190036a41186a2209200241086a41186a2903003703002002200229030837039003410121050240200641ff01714120490d00200241f0026a41186a2009290300370300200241f0026a41106a2003290300370300200241f0026a41086a200429030037030020022002290390033703f002410021050b200241b0026a41086a200241f0026a41086a290300370300200241b0026a41106a200241f0026a41106a290300370300200241b0026a41186a200241f0026a41186a290300370300200220022903f0023703b00220050d01200241f0016a41086a2205200241b0026a41086a290300370300200241f0016a41106a2204200241b0026a41106a290300370300200241f0016a41186a2203200241b0026a41186a290300370300200220022903b0023703f001200241086a200110940220022d00084101460d01200241a8016a2201200241c1006a290000370300200241a0016a2206200241396a29000037030020024198016a2209200241316a29000037030020024190016a220a200241296a290000370300200241f0006a41186a220b200241216a290000370300200241f0006a41106a220c200241196a290000370300200241f0006a41086a220d200241116a290000370300200241d0016a41086a220e2005290300370300200241d0016a41106a22052004290300370300200241d0016a41186a2204200329030037030020022002290009370370200220022903f0013703d001200241b0016a41186a22032004290300370300200241b0016a41106a22042005290300370300200241b0016a41086a2205200e290300370300200220022903d0013703b001200041106a20073602002000200837030820004200370300200020022903b0013702142000411c6a2005290300370200200041246a20042903003702002000412c6a2003290300370200200020022903703702342000413c6a200d290300370200200041c4006a200c290300370200200041cc006a200b290300370200200041d4006a200a290300370200200041dc006a2009290300370200200041e4006a2006290300370200200041ec006a20012903003702000c050b0240200541ff0171450d00200241003a00280b200241b0026a41086a200241f0026a41086a290300370300200241b0026a41106a200241f0026a41106a290300370300200241b0026a41186a200241f0026a41186a290300370300200220022903f0023703b0020b200042033703000c030b024020064104490d002004280001210620012003417b6a22053602042001200441056a36020020054108490d0020004201370300200429000521082001200341736a36020420012004410d6a360200200041106a200636020020002008370308200041146a200241086a41e40010e9081a0c030b200042033703000c020b024020064104490d002004280001210720012003417b6a22053602042001200441056a36020020054108490d00200429000521082001200341736a220936020420012004410d6a36020041002105200241003a0028200341726a21030240034020092005460d01200241086a20056a200420056a2206410d6a2d00003a00002001200336020420012006410e6a3602002002200541016a22063a00282003417f6a21032006210520064120470d000b20024190036a41086a2204200241086a41086a29030037030020024190036a41106a2203200241086a41106a29030037030020024190036a41186a2209200241086a41186a2903003703002002200229030837039003410121050240200641ff01714120490d00200241f0026a41186a2009290300370300200241f0026a41106a2003290300370300200241f0026a41086a200429030037030020022002290390033703f002410021050b200241b0026a41086a200241f0026a41086a290300370300200241b0026a41106a200241f0026a41106a290300370300200241b0026a41186a200241f0026a41186a290300370300200220022903f0023703b00220050d01200241f0016a41086a2205200241b0026a41086a290300370300200241f0016a41106a2204200241b0026a41106a290300370300200241f0016a41186a2203200241b0026a41186a290300370300200220022903b0023703f001200241086a200110940220022d00084101460d01200241a8016a2201200241c1006a290000370300200241a0016a2206200241396a29000037030020024198016a2209200241316a29000037030020024190016a220a200241296a290000370300200241f0006a41186a220b200241216a290000370300200241f0006a41106a220c200241196a290000370300200241f0006a41086a220d200241116a290000370300200241d0016a41086a220e2005290300370300200241d0016a41106a22052004290300370300200241d0016a41186a2204200329030037030020022002290009370370200220022903f0013703d001200241b0016a41186a22032004290300370300200241b0016a41106a22042005290300370300200241b0016a41086a2205200e290300370300200220022903d0013703b001200041106a20073602002000200837030820004202370300200020022903b0013702142000411c6a2005290300370200200041246a20042903003702002000412c6a2003290300370200200020022903703702342000413c6a200d290300370200200041c4006a200c290300370200200041cc006a200b290300370200200041d4006a200a290300370200200041dc006a2009290300370200200041e4006a2006290300370200200041ec006a20012903003702000c030b0240200541ff0171450d00200241003a00280b200241b0026a41086a200241f0026a41086a290300370300200241b0026a41106a200241f0026a41106a290300370300200241b0026a41186a200241f0026a41186a290300370300200220022903f0023703b0020b200042033703000c010b200042033703000b200241d0036a24000bd411010b7f230041b0036b2202240020024180016a200110a701200241c0006a41086a220120024189016a290000370300200241c0006a41106a220320024191016a290000370300200241c0006a41186a220420024199016a290000370300200241c0006a41206a2205200241a1016a290000370300200241c0006a41286a2206200241a9016a290000370300200241c0006a41306a2207200241b1016a290000370300200241c0006a41386a2208200241b9016a290000370300200220022900810137034002400240024020022d0080014101460d00200241386a22092008290300370300200241306a22082007290300370300200241286a22072006290300370300200241206a22062005290300370300200241186a22052004290300370300200241106a220a2003290300370300200241086a220b20012903003703002002200229034037030020024198026a41186a200929030037030020024198026a41106a200829030037030020024198026a41086a20072903003703002002200629030037039802200420052903003703002003200a2903003703002001200b2903003703002002200229030037034020024180016a200241c0006a10720240024020022d0080014101460d0020024190036a410f6a200241c0006a410f6a29000037000020024190036a41086a200241c0006a41086a290000370300200220022900403703900341012101410221050c010b200241ae036a20022d0083013a000020024198036a2002418d016a2900003703002002419f036a20024194016a2900003700002002418c036a200241a0016a2d00003a0000200220022f0081013b01ac0320022002290085013703900320022002419c016a280200360288034100210120022d00840121050b20024184036a41026a2206200241ac036a41026a2d00003a0000200241e8026a41086a220320024190036a41086a290300370300200241e8026a410f6a220420024190036a410f6a290000370000200241e0026a41046a220720024188036a41046a2d00003a0000200220022f01ac033b01840320022002290390033703e80220022002280288033602e002024020010d00200241dc026a41026a20062d00003a0000200241c0026a41086a2003290300370300200241c0026a410f6a2004290000370000200241b8026a41046a20072d00003a0000200220022f0184033b01dc02200220022903e8023703c002200220022802e0023602b802200241c0006a41186a20024198026a41186a290300370300200241c0006a41106a20024198026a41106a290300370300200241c0006a41086a20024198026a41086a290300370300200220022903980237034020024180016a200241c0006a1072410121010240024020022d0080014101460d0020024190036a410f6a200241c0006a410f6a29000037000020024190036a41086a200241c0006a41086a2900003703002002200229004037039003410221030c010b200241ae036a20022d0083013a000020024198036a2002418d016a2900003703002002419f036a20024194016a2900003700002002418c036a200241a0016a2d00003a0000200220022f0081013b01ac0320022002290085013703900320022002419c016a280200360288034100210120022d00840121030b20024184036a41026a2207200241ac036a41026a22082d00003a0000200241e8026a41086a220420024190036a41086a2209290300370300200241e8026a410f6a220620024190036a410f6a220a290000370000200241e0026a41046a220b20024188036a41046a220c2d00003a0000200220022f01ac033b01840320022002290390033703e80220022002280288033602e00202402001450d0020024180016a410f6a200629000037000020024180016a41086a2004290300370300200220022903e8023703800141012101200321050c030b20024194026a41026a20072d00003a000020092004290300370300200a2006290000370000200c200b2d00003a00002008200241dc026a41026a2d00003a0000200220022f0184033b019402200220022903e80237039003200220022802e00236028803200220022f01dc023b01ac0320024180016a410f6a2201200241c0026a410f6a29000037000020024180016a41086a2204200241c0026a41086a290300370300200220022903c00237038001200241e8026a41046a200241b8026a41046a2d00003a0000200220022802b8023602e802200241c0006a410f6a2001290000370000200241c0006a41086a20042903003703002002200229038001370340410021010c020b20024180016a410f6a200429000037000020024180016a41086a2003290300370300200220022903e80237038001410121010c010b200041013a00000c010b20024190026a41026a2204200241ac036a41026a2d00003a0000200241f8016a41086a2206200241c0006a41086a290300370300200241f8016a410f6a2207200241c0006a410f6a290000370000200241f0016a41046a2208200241e8026a41046a2d00003a0000200241ec016a41026a220920024194026a41026a2d00003a0000200220022f01ac033b019002200220022903403703f801200220022802e8023602f001200220022f0194023b01ec01200241d0016a410f6a220a20024190036a410f6a290000370000200241d0016a41086a220b20024190036a41086a290300370300200241c8016a41046a220c20024188036a41046a2d00003a000020022002290390033703d00120022002280288033602c801024020010d00200020022f0190023b0001200041046a20053a0000200041056a20022903f8013700002000411c6a20022802f001360000200041216a20022f01ec013b0000200041036a20042d00003a00002000410d6a2006290300370000200041146a2007290000370000200041206a20082d00003a0000200041236a20092d00003a0000200041246a20033a0000200041003a0000200041256a20022903d0013700002000412d6a200b290300370000200041346a200a2900003700002000413c6a20022802c801360000200041c0006a200c2d00003a00000c010b200041013a00000b200241b0036a24000ba40202057f027e230041106b21020240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a36020020054101470d01024002400240024020064108490d00200429000121072001200341776a22053602042001200441096a36020020054108490d002004290009210820012003416f6a22033602042001200441116a22043602002003450d0320042d0000210520012003417f6a3602042001200441016a36020041002101024020050e03030200040b410221010c020b200041033a00100f0b410121010b200020013a0010200020083703082000200737030020002002280009360011200041146a2002410c6a2800003600000f0b200041033a00100f0b200041033a00100f0b200041033a00100ba10101017f230041106b22022400200241013a00082001200241086a41011074200220002903003703082001200241086a41081074200220002903083703082001200241086a41081074024002400240024020002d00100e03000102030b200241003a00082001200241086a410110740c020b200241013a00082001200241086a410110740c010b200241023a00082001200241086a410110740b200241106a24000b9f0101057f230041106b2202240020004100360208200042013702002002200128020036020c20002002410c6a41041074200128020421032001410c6a28020022042000107602402004450d0020032004410c6c6a2105034020032802002104200341086a28020022062000107620002004200610742003410c6a22032005470d000b0b200220012802103602082000200241086a41041074200241106a24000bd20603057f017e027f230041a0046b2202240041002103200241003a009003024002400240024002400340200128020022042802042205450d01200241f0026a20036a200428020022062d00003a000020042005417f6a3602042004200641016a3602002002200341016a22043a0090032004210320044120470d000b20024190026a41186a200241f0026a41186a2903002207370300200241f0016a41086a200241f0026a41086a290300370300200241f0016a41106a200241f0026a41106a290300370300200241f0016a41186a2007370300200220022903f0023703f0012001280200220428020422034108490d012004280200220529000021072004200341786a3602042004200541086a360200200241f0026a200110990220022802f4022205450d02200241fc026a280200210420022802f802210620022802f002210320024190026a200241f0026a41106a41e00010e9081a200241f0026a200110990220022802f402450d03200241206a200241f0026a41f00010e9081a200241086a2201200241f0016a41086a290300370300200241106a2208200241f0016a41106a290300370300200241186a2209200241f0016a41186a290300370300200220022903f00137030020024190016a20024190026a41e00010e9081a200041146a2004360200200020063602102000200536020c2000200336020820002007370300200041186a20024190016a41e00010e9081a200041f8006a200241206a41f00010e9081a20004180026a2009290300370300200041f8016a2008290300370300200041f0016a2001290300370300200041e8016a20022903003703000c040b0240200341ff0171450d00200241003a0090030b2000410036020c0c030b2000410036020c0c020b2000410036020c0c010b2000410036020c02402004450d00200441246c21032005210403400240024002400240024020042d00000e050400010204030b2004410c6a280200450d03200441086a280200102e0c030b2004410c6a280200450d02200441086a280200102e0c020b2004410c6a280200450d01200441086a280200102e0c010b200441086a280200450d00200441046a280200102e0b200441246a21042003415c6a22030d000b0b2006450d00200641246c450d002005102e0b200241a0046a24000b881d05057f017e087f027e057f230041d0056b2202240041002103200241003a00a805024002400240024002400240024002400340200128020022042802042205450d0120024188056a20036a200428020022062d00003a000020042005417f6a3602042004200641016a3602002002200341016a22043a00a8052004210320044120470d000b200241e0036a41186a20024188056a41186a2903002207370300200241c0026a41086a220420024188056a41086a290300370300200241c0026a41106a220320024188056a41106a290300370300200241c0026a41186a2205200737030020022002290388053703c002200241a0016a41186a22062005290300370300200241a0016a41106a22052003290300370300200241a0016a41086a22032004290300370300200220022903c0023703a00120024180016a41186a200629030037030020024180016a41106a200529030037030020024180016a41086a2003290300370300200220022903a00137038001200241186a200110ad0120022802180d02200228021c210841002103200241003a00a8050340200128020022042802042205450d0220024188056a20036a200428020022062d00003a000020042005417f6a3602042004200641016a3602002002200341016a22043a00a8052004210320044120470d000b200241e0036a41186a20024188056a41186a2903002207370300200241c0026a41086a220420024188056a41086a290300370300200241c0026a41106a220320024188056a41106a290300370300200241c0026a41186a2205200737030020022002290388053703c002200241e0016a41186a22062005290300370300200241e0016a41106a22052003290300370300200241e0016a41086a22032004290300370300200220022903c0023703e001200241c0016a41186a2006290300370300200241c0016a41106a2005290300370300200241c0016a41086a2003290300370300200220022903e0013703c00141002103200241003a00a8050340200128020022042802042205450d0420024188056a20036a200428020022062d00003a000020042005417f6a3602042004200641016a3602002002200341016a22043a00a8052004210320044120470d000b200241e0036a41186a20024188056a41186a2903002207370300200241c0026a41086a220420024188056a41086a290300370300200241c0026a41106a220320024188056a41106a290300370300200241c0026a41186a2205200737030020022002290388053703c002200241a0026a41186a22062005290300370300200241a0026a41106a22052003290300370300200241a0026a41086a22032004290300370300200220022903c0023703a00220024180026a41186a200629030037030020024180026a41106a200529030037030020024180026a41086a2003290300370300200220022903a00237038002200241106a200110ad0120022802100d0520022802142209200128020028020441246e2204200420094b1bad42247e2207422088a7450d040c070b0240200341ff0171450d00200241003a00a8050b200241a0016a41086a200241c0026a41086a290300370300200241a0016a41106a200241c0026a41106a290300370300200241a0016a41186a200241c0026a41186a290300370300200220022903c0023703a001200041003602040c050b0240200341ff0171450d00200241003a00a8050b200241e0016a41086a200241c0026a41086a290300370300200241e0016a41106a200241c0026a41106a290300370300200241e0016a41186a200241c0026a41186a290300370300200220022903c0023703e001200041003602040c040b200041003602040c030b0240200341ff0171450d00200241003a00a8050b200241a0026a41086a200241c0026a41086a290300370300200241a0026a41106a200241c0026a41106a290300370300200241a0026a41186a200241c0026a41186a290300370300200220022903c0023703a002200041003602040c020b2007a72204417f4c0d02024002400240024020040d004104210a0c010b2004102c220a450d010b2001200128020441016a2203360204200441246ead2107200320012802084b0d01024002402009450d00200241ed036a210b2002419b056a220c41056a210d4100210e0340200128020022042802042203450d04200428020022052d0000210620042003417f6a3602042004200541016a360200024002400240024002400240024002400240024020060e08000e010e030402050e0b200241086a200110ad0120022802080d0d200128020022032802042206200228020c2204490d0d2004417f4c0d100240024020040d00410121050c010b200410322205450d0d2001280200220328020421060b20062004490d0620052003280200200410e90821062003280204220f20044f0d052004200f41b8b2c0001056000b41002103200241003a00a80502400340200128020022042802042205450d0120024188056a20036a200428020022062d00003a000020042005417f6a3602042004200641016a3602002002200341016a22043a00a8052004210320044120470d000b2002200d2900003700c5052002200c2900003703c005200220022900c5053700b505200220022903c0053703b005200220022903b0053703f804200220022900b5053700fd04200228008f05210620022f018805210420022d008a052103200228008b0521052002290093052110200220022900fd043700ed04200220022903f8043703e804200220022900ed043700dd04200220022903e8043703d804200220022900dd043700e503200220022903d8043703e003200b20022f00d5043b0000200b41026a200241d5046a41026a2d00003a0000201042808080807083211120054108762112200420034110747221032010a7210f410021130c080b200341ff0171450d0c200241003a00a8050c0c0b20024188056a200110ac01200228028c052206450d0b20022f01880520022d008a0541107472210320022d008b05210520022903900522104280808080708321112010a7210f410121130c060b20024188056a200110ac01200228028c052206450d0a20022f01880520022d008a0541107472210320022d008b05210520022903900522104280808080708321112010a7210f410221130c050b20024188056a200110ac01200228028c052206450d0920022f01880520022d008a0541107472210320022d008b05210520022903900522104280808080708321112010a7210f410321130c040b200128020022042802042203450d08200428020022052d0000210620042003417f6a3602042004200541016a36020020060d08200241c0056a200110fd0520022802c00522054102460d08200241e0036a41086a20024188056a41086a29020037030020022002290288053703e00320022802c805210f20022802c40521064104211342002111410021120c020b2003200f20046b3602042003200328020020046a3602002006450d07200241e0036a41086a20024188056a41086a29020037030020022002290288053703e003200641087621122004ad22104220862010842210422088a7210f2010a7210641052113420021110c010b2005102e0c060b0b200241c0026a41086a200241e0036a41086a2903002210370300200241c0046a41086a22142010370300200220022903e00322103703c002200220103703c004024020074220882210a722042007a7470d00200441016a22152004490d0820044101742216201520152016491b22154104201541044b1bad42247e2210422088a74541027421152010a721160240024020040d0020024100360288050c010b20024104360290052002200a360288052002200441246c36028c050b200241e0036a2016201520024188056a107d20022802e803211520022802e0034101460d0320022802e403210a20074220882210a72104201541246ead21070b200a200441246c6a22042011200fad8437000c2004200636000820042012410874200541ff017172360004200420033b0001200420133a0000200441036a20034110763a0000200420022903c0043700142004411c6a20142903003700002010422086200742ffffffff0f83844280808080107c2107200e41016a220e2009470d000b200128020421030b20012003417f6a360204200a450d03200241e0006a41186a220420024180016a41186a290300370300200241e0006a41106a220320024180016a41106a290300370300200241e0006a41086a220520024180016a41086a290300370300200241c0006a41086a2206200241c0016a41086a290300370300200241c0006a41106a2201200241c0016a41106a290300370300200241c0006a41186a2209200241c0016a41186a290300370300200241206a41086a220e20024180026a41086a290300370300200241206a41106a220f20024180026a41106a290300370300200241206a41186a221320024180026a41186a2903003703002002200229038001370360200220022903c0013703402002200229038002370320200020073702082000200a36020420002008360200200041106a2002290360370200200041186a2005290300370200200041206a2003290300370200200041286a2004290300370200200041306a2002290340370200200041386a2006290300370200200041c0006a2001290300370200200041c8006a2009290300370200200041e8006a2013290300370200200041e0006a200f290300370200200041d8006a200e290300370200200041d0006a20022903203702000c040b2015450d040b1036000b02402007422088a72204450d00200441246c2103200a210403400240024002400240024020042d00000e050400010204030b2004410c6a280200450d03200441086a280200102e0c030b2004410c6a280200450d02200441086a280200102e0c020b2004410c6a280200450d01200441086a280200102e0c010b200441086a280200450d00200441046a280200102e0b200441246a21042003415c6a22030d000b0b2007a72204450d00200441246c450d00200a102e0b200041003602040b200241d0056a24000f0b1038000b9e0703067f017e017f230041a0046b2202240041002103200241003a00900320012802042104417f21050240024002400240034020042003460d01200241f0026a20036a200128020022062d00003a00002001200420056a3602042001200641016a3602002002200341016a22063a0090032005417f6a21052006210320064120470d000b20024190026a41086a2203200241f0026a41086a29030037030020024190026a41106a2205200241f0026a41106a29030037030020024190026a41186a2207200241f0026a41186a290300370300200220022903f00237039002200641ff0171411f4b0d010c020b200341ff0171450d01200241003a0090030c010b200241f0016a41086a2003290300370300200241f0016a41106a2005290300370300200241f0016a41186a200729030037030020022002290390023703f001024002400240200420066b22034108490d002001280200220529000021082001200341786a3602042001200541086a360200200241f0026a2001109b0220022802f4022205450d01200241fc026a280200210320022802f802210620022802f002210420024190026a200241f0026a41106a41e00010e9081a200241f0026a2001109b0220022802f402450d02200241206a200241f0026a41f00010e9081a200241086a2201200241f0016a41086a290300370300200241106a2207200241f0016a41106a290300370300200241186a2209200241f0016a41186a290300370300200220022903f00137030020024190016a20024190026a41e00010e9081a200041146a2003360200200020063602102000200536020c2000200436020820002008370300200041186a20024190016a41e00010e9081a200041f8006a200241206a41f00010e9081a20004180026a2009290300370300200041f8016a2007290300370300200041f0016a2001290300370300200041e8016a20022903003703000c040b2000410036020c0c030b2000410036020c0c020b2000410036020c02402003450d00200341246c21012005210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a280200102e0c030b2003410c6a280200450d02200341086a280200102e0c020b2003410c6a280200450d01200341086a280200102e0c010b200341086a280200450d00200341046a280200102e0b200341246a21032001415c6a22010d000b0b2006450d01200641246c450d012005102e0c010b2000410036020c0b200241a0046a24000bd80e03057f037e067f23004190046b2202240041002103200241003a00c8032001280204417f6a210402400240024002400240024002400240024003402004417f460d01200241a8036a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00c8032004417f6a21042005210320054120470d000b200241d0036a41086a2204200241a8036a41086a290300370300200241d0036a41106a2203200241a8036a41106a290300370300200241d0036a41186a2206200241a8036a41186a290300370300200220022903a8033703d003200541ff0171411f4d0d0120024188016a41086a2004290300220737030020024188016a41106a2003290300220837030020024188016a41186a20062903002209370300200241e8006a41186a2009370300200241e8006a41106a2008370300200241e8006a41086a2007370300200220022903d00322073703a8022002200737038801200220073703682002200110ab0120022802000d042002280204210641002103200241003a00c8032001280204417f6a210403402004417f460d03200241a8036a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00c8032004417f6a21042005210320054120470d000b200241d0036a41086a2203200241a8036a41086a290300370300200241d0036a41106a220a200241a8036a41106a290300370300200241d0036a41186a220b200241a8036a41186a290300370300200220022903a8033703d003200541ff0171411f4d0d03200241c8016a41086a20032903002207370300200241c8016a41106a200a2903002208370300200241c8016a41186a200b2903002209370300200241a8016a41186a2009370300200241a8016a41106a2008370300200241a8016a41086a2007370300200220022903d00322073703a802200220073703c801200220073703a80141002103200241003a00c80303402004417f460d06200241a8036a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00c8032004417f6a21042005210320054120470d000b200241d0036a41086a2204200241a8036a41086a290300370300200241d0036a41106a2203200241a8036a41106a290300370300200241d0036a41186a220a200241a8036a41186a290300370300200220022903a8033703d003200541ff0171411f4d0d0620024188026a41086a2004290300220737030020024188026a41106a2003290300220837030020024188026a41186a200a2903002209370300200241e8016a41186a2009370300200241e8016a41106a2008370300200241e8016a41086a2007370300200220022903d00322073703a8022002200737038802200220073703e801200241a8036a200110b50520022802a8032204450d0720022902ac032107200241c8006a41186a2201200241e8006a41186a290300370300200241c8006a41106a2203200241e8006a41106a290300370300200241c8006a41086a2205200241e8006a41086a290300370300200241286a41086a220a200241a8016a41086a290300370300200241286a41106a220b200241a8016a41106a290300370300200241286a41186a220c200241a8016a41186a290300370300200241086a41086a220d200241e8016a41086a290300370300200241086a41106a220e200241e8016a41106a290300370300200241086a41186a220f200241e8016a41186a29030037030020022002290368370348200220022903a801370328200220022903e801370308200020073702082000200436020420002006360200200041106a2002290348370200200041186a2005290300370200200041206a2003290300370200200041286a2001290300370200200041306a2002290328370200200041386a200a290300370200200041c0006a200b290300370200200041c8006a200c290300370200200041e8006a200f290300370200200041e0006a200e290300370200200041d8006a200d290300370200200041d0006a20022903083702000c080b200341ff0171450d00200241003a00c8030b20024188016a41086a200241a8026a41086a29030037030020024188016a41106a200241a8026a41106a29030037030020024188016a41186a200241a8026a41186a290300370300200220022903a80237038801200041003602040c060b200341ff0171450d00200241003a00c8030b200241c8016a41086a200241a8026a41086a290300370300200241c8016a41106a200241a8026a41106a290300370300200241c8016a41186a200241a8026a41186a290300370300200220022903a8023703c801200041003602040c040b200041003602040c030b200341ff0171450d00200241003a00c8030b20024188026a41086a200241a8026a41086a29030037030020024188026a41106a200241a8026a41106a29030037030020024188026a41186a200241a8026a41186a290300370300200220022903a80237038802200041003602040c010b200041003602040b20024190046a24000b0f00200028020020012002107441000b8a0201027f230041106b22022400200028020021002002410036020c02400240024002402001418001490d002001418010490d012002410c6a21032001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c2002410c6a2103410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c2002410c6a2103410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b2000200320011074200241106a240041000b6301017f230041206b2202240020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a419cebc000200241086a103d2101200241206a240020010bdf0101087f0240200028020422020d0041000f0b2000280200210320012d002041ff01712104037f200241346a210020022f01322105410021060240024003400240200520062207470d00200521070c030b02400240024020012000412010ec082206450d00410121082006417f4c0d050c010b2004200041206a2d00002206460d01417f200420064720042006491b21080b200741016a2106200041216a210041012109200841016a0e03030201030b0b410121090b20090f0b024020030d0041000f0b2003417f6a2103200220074102746a41a0036a28020021020c000b0b980101057f0240200028020422020d0041000f0b200028020021030340200241346a210420022f013221054100210002400240034020052000460d0120012004412010ec082206450d02200041016a2100200441206a21042006417f4a0d000b2000417f6a21050b024020030d0041000f0b2003417f6a2103200220054102746a4194036a28020021020c010b0b200220004102746a41046a0b9a0101057f0240200028020422020d0041000f0b20002802002103034020024190026a210420022f018e0221054100210002400240034020052000460d0120012004412010ec082206450d02200041016a2100200441206a21042006417f4a0d000b2000417f6a21050b024020030d0041000f0b2003417f6a2103200220054102746a41f0046a28020021020c010b0b2002200041186c6a41046a0b960101057f0240200028020422020d0041000f0b200028020021030340200241e0006a210420022f015e21054100210002400240034020052000460d0120012004412010ec082206450d02200041016a2100200441206a21042006417f4a0d000b2000417f6a21050b024020030d0041000f0b2003417f6a2103200220054102746a41c0036a28020021020c010b0b200220004103746a0ba90301087f02400240024020012802042203450d00200128020021040c010b41a003102c2203450d0141002104200341003b01322003410036020020012003360204200141003602000b20022d002041ff017121050340200341346a210620032f0132210741002108024003400240200720082209470d00200721090c020b02400240024020022006412010ec082208450d004101210a2008417f4c0d040c010b2005200641206a2d00002208460d01417f200520084720052008491b210a0b200941016a2108200641216a2106200a41016a0e03020001020b0b20002004360204200041106a20013602002000410c6a2009360200200041086a2003360200200041013602000f0b02402004450d002004417f6a2104200320094102746a41a0036a28020021030c010b0b20004100360204200041106a20013602002000410c6a2009360200200041086a2003360200200041146a20022900003700002000411c6a200241086a290000370000200041246a200241106a2900003700002000412c6a200241186a290000370000200041346a200241206a2d00003a0000200041003602000f0b1036000bc01c03067f037e187f230041e0016b22032400200341206a41186a200141186a290000370300200341206a41106a200141106a290000370300200341206a41086a200141086a2900003703002003200129000037032002400240024002400240024002400240024002400240024002400240024020002802042204450d00200028020021050c010b419403102c2204450d0141002105200441003b01322004410036020020002004360204200041003602000b02400340200441346a210620042f01322107410021010240034020072001460d01200341206a2006412010ec082208450d03200141016a2101200641206a21062008417f4a0d000b2001417f6a21070b02402005450d002005417f6a2105200420074102746a4194036a28020021040c010b0b200341086a2003412c6a2902002209370300200341106a200341346a290200220a370300200341186a2003413c6a280200220136020020032003290224220b3703002003280220210c200341a0016a41186a22062001360200200341a0016a41106a2208200a370300200341a0016a41086a220520093703002003200b3703a001024020042f01322201410a4b0d00200341206a41186a2006280200360200200341206a41106a2008290300370300200341206a41086a2005290300370300200320032903a001370320200441346a2106200141016a21080240200741016a220520014b220d0d00200620054105746a200620074105746a20082007417f736a41057410ea081a0b200620074105746a2201200c360000200120032903203700042001410c6a200341286a290300370000200141146a200341306a2903003700002001411c6a200341386a280200360000200441046a21010240200d0d00200120054102746a200120074102746a20082007417f736a41027410ea081a0b200120074102746a2002360200200420083b01320c0d0b410521014100210e02400240200741054f0d0041042101200721080c010b41052108024002402007417b6a0e020201000b200741796a21084101210e410621010c010b410021084101210e0b419403102c2206450d01200641003b013220064100360200200620042f0132220d2001417f736a22073b0132200441346a220f20014105746a22052800002110200341386a2005411c6a280000360200200341306a200541146a290000370300200341286a2005410c6a290000370300200320052900043703202007410c4f0d02200d200141016a22056b2007470d03200441046a220d20014102746a2802002111200641346a200f20054105746a200741057410e9081a200641046a200d20054102746a200741027410e9081a200420013b0132200341c0016a41086a200341206a41086a2205290300370300200341c0016a41106a200341206a41106a220d290300370300200341c0016a41186a200341206a41186a220f280200360200200320032903203703c00120062004200e1b22072f01322101200f200341a0016a41186a280200360200200d200341a0016a41106a2903003703002005200341a0016a41086a290300370300200320032903a001370320200741346a210e200141016a21120240200841016a221320014b22140d00200e20134105746a200e20084105746a20122008417f736a41057410ea081a0b200e20084105746a2201200c360000200120032903203700042001410c6a2005290300370000200141146a200d2903003700002001411c6a200f280200360000200741046a2101024020140d00200120134102746a200120084102746a20122008417f736a41027410ea081a0b200120084102746a2002360200200720123b013220034180016a41086a2215200341c0016a41086a2216290300220937030020034180016a41106a2217200341c0016a41106a2218290300220a37030020034180016a41186a2219200341c0016a41186a221a2802002201360200200320032903c001220b37038001200341e0006a41186a22122001360200200341e0006a41106a2213200a370300200341e0006a41086a221420093703002003200b370360024002400240200428020022020d004100211b0c010b4100211b2011211c2006211d2010211e034020042f01302104200341a0016a41186a221f2012280200360200200341a0016a41106a22202013290300370300200341a0016a41086a22212014290300370300200320032903603703a0014101450d0720022f0132220e410b490d024100210541042101024020044105490d0020042101024002402004417b6a0e020201000b200441796a210441012105410621010c010b4100210441012105410521010b41c403102c2206450d04200641003b013220064100360200200620022f013222112001417f736a22083b0132200241346a222220014105746a22072800002110200341206a41186a220c2007411c6a280000360200200341206a41106a220d200741146a290000370300200341206a41086a220f2007410c6a290000370300200320072900043703202008410c4f0d082011200141016a22076b2008470d09200241046a222320014102746a2802002111200641346a202220074105746a200841057410e9081a200641046a2023200741027422076a200841027410e9081a200220013b01322016200f2903003703002018200d290300370300201a200c280200360200200320032903203703c00120062f0132220841016a21222008410c4f0d0a200e20016b22012022470d0b201b41016a211b20064194036a200220076a4194036a200141027410e9081a4100210102400340200620014102746a4194036a280200220720013b0130200720063602002001200120084922076a220120084b0d0120070d000b0b2019201a2802003602002017201829030037030020152016290300370300200320032903c001370380012006200220051b22072f0132210e200c201f280200360200200d2020290300370300200f2021290300370300200320032903a001370320200741346a2108200e41016a21050240200441016a2201200e4b221f0d00200820014105746a200820044105746a2004417f7320056a41057410ea081a0b200820044105746a2208201e360000200820032903203700042008410c6a200f290300370000200841146a200d2903003700002008411c6a200c280200360000200741046a21080240201f0d00200820014102746a200820044102746a2004417f7320056a41027410ea081a0b20082004410274220d6a201c36020020074194036a21080240200441026a220f200e41026a220c4f0d002008200f4102746a200820014102746a2001417f73200c6a41027410ea081a0b200820014102746a201d360200200720053b013202402001200c4f0d002007200d6a4198036a2101034020012802002208200441016a22043b013020082007360200200141046a210120052004470d000b0b2014201529030037030020132017290300370300201220192802003602002003200329038001370360200221042002280200220121022011211c2006211d2010211e20010d000b0b200341c0006a41186a20122802002201360200200341c0006a41106a20132903002209370300200341c0006a41086a2014290300220a37030020032003290360220b370340201a2001360200201820093703002016200a3703002003200b3703c00120002802042208450d0a2000280200210741c403102c2201450d022001200836029403200141003b013220014100360200200841003b013020082001360200200020013602042000200741016a360200200341206a41186a200341c0016a41186a280200360200200341206a41106a200341c0016a41106a290300370300200341206a41086a200341c0016a41086a290300370300200320032903c0013703202007201b470d0b20012f01322207410b4f0d0c200120074105746a220841346a2010360000200841386a2003290320370000200841c0006a200341286a290300370000200841c8006a200341306a290300370000200841d0006a200341386a2802003600002001200741016a22083b0132200120084102746a4194036a2006360200200120074102746a41046a2011360200200620083b0130200620013602002000200028020841016a3602080c0e0b20022f01322108200341206a41186a220c200341a0016a41186a280200360200200341206a41106a220d200341a0016a41106a290300370300200341206a41086a220f200341a0016a41086a290300370300200320032903a001370320200441016a2101200241346a2106200841016a21070240200420084f22050d00200620014105746a200620044105746a2004417f7320076a41057410ea081a0b200620044105746a2206201e360000200620032903203700042006410c6a200f290300370000200641146a200d2903003700002006411c6a200c280200360000200241046a2106024020050d00200620014102746a200620044102746a2004417f7320076a41027410ea081a0b20062004410274220c6a201c36020020024194036a2106200841026a2104024020050d00200c20066a41086a200620014102746a2001417f7320046a41027410ea081a0b200620014102746a201d360200200220073b0132200120044f0d0c200841016a210720022001417f6a22014102746a4198036a2106034020062802002208200141016a22013b013020082002360200200641046a210620072001470d000c0d0b0b200420014102746a41046a20023602000c0c0b1036000b2007410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b41ac9cc700413541e49cc7001039000b2008410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b2022410c41f49cc700104d000b41f49bc7004128419c9cc7001039000b41e8aac700412b4194abc7001039000b41e899c700413041989ac7001039000b41a89ac700412041c89ac7001039000b2000200028020841016a3602080b200341e0016a24000beb0201067f230041206b220124000240024002402000410c6a28020022022002417f6a200041046a28020020002802006b716b4101470d00200221030240024002402002450d00200220026a22032002490d04200141106a41086a4104360200200120024102743602142001200028020836021020012003410274200341ffffffff0371200346410274200141106a107d200141086a280200210320012802004101460d01200020012802043602082000410c6a200341027622033602000b20032002410174470d0420002802002204200041046a28020022054d0d022005200220046b22064f0d01200041086a280200220320024102746a2003200541027410e9081a200041046a2200200028020020026a3602000c020b2003450d021036000b200041086a2802002202200320066b22034102746a200220044102746a200641027410e9081a200020033602000b200141206a24000f0b1038000b41c4ebc000412b41f0ebc0001039000bd20302037f017e23004180126b2203240020034280808080802037020c2003200236021c200320013602182003200341186a360208200341b80e6a200341086a10ed010240024020032903a00f4203510d00200341f00a6a200341b80e6a41c80310e9081a02402003280208220228020422044104490d0020022802002205280000210120022004417c6a3602042002200541046a360200200341880a6a200341f00a6a41e80010e9081a20032903d80b2106200341b0076a200341e00b6a41d80210e9081a0c020b024020032903d80b4202510d0020032d00f00a41ff01714102470d0020032802f80a450d0020032802f40a102e0b200341880c6a108b020b420321060b200341c8066a200341880a6a41e80010e9081a200341f0036a200341b0076a41d80210e9081a0240024020064203510d00200341206a200341c8066a41e80010e9081a200320063703880120034190016a200341f0036a41d80210e9081a200320013602e803024020032802082802040d002000200341206a41d00310e9081a0c020b20004203370368024020064202510d0020032d002041ff01714102470d002003280228450d002003280224102e0b200341b8016a108b020c010b200042033703680b20034180126a24000bef1a03037f037e197f230041f0036b2205240020012802042106200128020021072001280208220141086a2900002108200141106a29000021092001290000210a200541186a220b200141186a290000370300200541106a220c2009370300200541086a220d20083703002005200a3703002003410174210e2005410772210f200541c8016a41186a2110200541c8016a410c6a2111200541c8016a41206a211241002113410021144100211502400240024002400240024002400240024002400240024002400240024002400340201541017621010240024020154101710d00200120034b0d03200541003a00d001200520013602cc01200520023602c8010c010b200120034b0d03200120034f0d04200541013a00d001200520023602c801200520013602cc012005200220016a2d000041f001713a00d1010b200541d0036a20072005200541c8016a200628020c110400024020052802d00322160d00200541c8016a41086a2213200541086a290300370300200541c8016a41106a2203200541106a290300370300200541c8016a41186a2217200541186a290300370300200520052903003703c8014130102c2201450d10200120052903c80137000120012005290020370021200120144100473a0000200141096a2013290300370000200141116a2003290300370000200141196a2017290300370000200141286a200541276a29000037000020004101360200200020013602040c0f0b20052802d803210120052802d4032118024002400240200428020c20144b0d002001417f4c0d130240024020010d00410121170c010b2001102c2217450d130b20172016200110e90821192010200b290300370300200541c8016a41106a221a200c290300370300200541c8016a41086a221b200d290300370300200520052903003703c801024020042802082217200441046a221c280200470d00201741016a221d2017490d142017410174221e201d201e201d4b1b221d4104201d41044b1bad42307e2208422088a745410274211d2008a7211e0240024020170d00200541003602200c010b200541043602282005201741306c360224200520042802003602200b200541d0036a201e201d200541206a107d20052802d803211720052802d0034101460d02200420052802d403360200201c201741306e360200200428020821170b2004280200201741306c6a2217201936020420172014360200201720052903c8013702102017410c6a2001360200201741086a2001360200201741186a201b290300370200201741206a201a290300370200201741286a20102903003702002004200428020841016a3602080b200541c8016a2016200110a80220052d00c8014101460d0e201441016a21140c010b20170d100c110b034020052802e401211f20052802e001212020052802dc01212120052802d801211920052802d401211720052802d001211a20052802cc012101200541206a201241a80110e9081a200528029403211b200528029003211c024002400240024020010e05100f000102100b410021010240201741017420196b2222200e20136b221b201b20224b1b2223450d000340201320016a221b410176221c20034f0d0a201920016a221d410176221e20174f0d0b2002201c6a2d0000221c410f71201c41f00171410476201b4101711b201a201e6a2d0000221b410f71201b410476201d4101711b470d012023200141016a2201470d000b202321010b024020012022470d00202221010c030b200042003702000c110b2005201f3602dc01200520203602d801200520213602d401200520193602d001200520173602cc012005201a3602c8012010200541206a41a80110e9081a02400240200e2013460d002013410176220120034f0d0b200541c8016a200220016a2d00002201410f71200141047620134101711b410c6c6a220128020022214102470d01200042003702000c120b410021010240201c450d00201b417f4c0d1502400240201b0d00410121010c010b201b102c2201450d150b2001201c201b10e9081a0b20002001360204200041003602002000410c6a201b360200200041086a201b3602000c110b20012802042120200141086a280200211f41012122410121010c010b20052802a0032123200528029c03212220052802980321012005201f3602d001200520203602cc01200520213602c8012011200541206a41a80110e9081a20052001360284032005201b360280032005201c3602fc02410021010240201741017420196b221f200e20136b22212021201f4b1b2220450d000340201320016a221b410176221c20034f0d0b201920016a221d410176221e20174f0d0c2002201c6a2d0000221c410f71201c41f00171410476201b4101711b201a201e6a2d0000221b410f71201b410476201d4101711b470d012020200141016a2201470d000b202021010b02402001201f460d00200042003702000c100b024002402021201f460d002013201f6a2201410176221720034f0d0d200541c8016a200220176a2d00002217410f71201741047620014101711b410c6c6a221728020022214102470d01200042003702000c110b4100210102402022450d002023417f4c0d140240024020230d00410121010c010b2023102c2201450d140b20012022202310e9081a0b20002001360204200041003602002000410c6a2023360200200041086a20233602000c100b201f41016a2122201f41016a210120172802042120201741086a280200211f0b200120156a2115201320226a211302402021450d00200541c8016a2020201f10a80220052d00c8014101460d0e0c010b0b02400240201f4120460d002010200b290300370300200541c8016a41106a2201200c290300370300200541c8016a41086a2217200d290300370300200520052903003703c801201f417f4c0d1202400240201f0d00410121190c010b201f102c2219450d120b20192020201f10e9082119200541d0036a41186a221a2010290300370300200541d0036a41106a221b2001290300370300200541d0036a41086a221c2017290300370300200520052903c8013703d0034130102c2201450d11200141043a0000200120052903d003370001200120052f00c8013b00212001201f36002c2001201f36002820012019360024200141096a201c290300370000200141116a201b290300370000200141196a201a290300370000200141236a200541c8016a41026a2d00003a0000410121170c010b41002117200541c8016a41026a41003a0000200541003b01c80120202f00002119200541cc036a41026a202041026a2d00003a00002020411f6a2d0000211a202041176a29000021082020280003210120202900072109200541d0036a41086a221b2020410f6a290000370300200541d0036a41106a221c2008370300200541d0036a41186a221d201a3a0000200520193b01cc03200520093703d0032010201d2d00003a0000200541c8016a41106a201c290300370300200541c8016a41086a201b290300370300200520052903d0033703c8010b200541c8036a41026a2219200541cc036a41026a2d00003a0000200541a8036a41086a221a200541c8016a41086a290300370300200541a8036a41106a221b200541c8016a41106a290300370300200541a8036a41186a221c2010280200360200200520052f01cc033b01c803200520052903c8013703a803024020170d00200f20052903a803370000200f41086a201a290300370000200f41106a201b290300370000200f41186a201c2d00003a0000200520052f01c8033b010020052001360003200520192d00003a00022018450d012016102e0c010b0b20004101360200200020013602040c0c0b2001200341a0f0cc00104d000b2001200341b0f0cc00104d000b2001200341c0f0cc00103c000b201c200341e0efcc00103c000b201e201741e0efcc00103c000b2001200341e0efcc00103c000b201c200341e0efcc00103c000b201e201741e0efcc00103c000b2017200341e0efcc00103c000b41002104024002400240201741017420196b200e20136b2215470d004100210441002101024002402015450d00410021010340201920016a221b410176221c20174f0d04201320016a221d410176221e20034f0d05201a201c6a2d0000221c410f71201c41f00171410476201b4101711b2002201e6a2d0000221b410f71201b410476201d4101711b470d012015200141016a2201470d000c020b0b20012015470d010b2020417f4c0d080240024020200d00410121040c010b2020102c2204450d080b20042021202010e9081a2020ad220842208620088421080b2000200436020420004100360200200041086a20083702000c040b201c201741e0efcc00103c000b201e200341e0efcc00103c000b200042003702000c010b20052d00c9012113200541d0036a41086a2203200541086a290300370300200541d0036a41106a2217200541106a290300370300200541d0036a41186a2219200541186a290300370300200520052903003703d0034130102c2201450d02200141033a0000200120052903d003370001200120133a0021200120052901a803370122200141096a2003290300370000200141116a2017290300370000200141196a2019290300370000200141286a200541ae036a29010037010020004101360200200020013602040b2018450d002016102e0b200541f0036a24000f0b1036000b1038000b9e1203027f027e127f230041b0096b2203240041002104200341003602a806200320023602a406200320013602a006420321050240024020020d0042002106410021070c010b41012107200341013602a80642002106024020012d000022080d00420021050c010b0240024002400240024002400240024002400240200841c00171220941c001460d0002402009418001460d00200941c000470d0b2008413f712208413f470d05410221074141210803402007417f6a20024f0d03200320073602a8060240200120076a417f6a2d0000220941ff01460d00200920086b21080c0c0b200841817e6a2108200741016a2207418302470d000b41ffff03210841820221070c0a0b2008413f712208413f470d05410221074141210803402007417f6a20024f0d03200320073602a8060240200120076a417f6a2d0000220941ff01460d00200920086b21080c0a0b200841817e6a2108200741016a2207418302470d000b41ffff03210841820221070c080b2008413f712208413f470d05410221074141210803402007417f6a20024f0d03200320073602a8060240200120076a417f6a2d0000220941ff01460d00200920086b21080c080b200841817e6a2108200741016a2207418302470d000b41ffff03210841820221070c060b2007417f6a21070c080b2007417f6a21070c070b2007417f6a21070c060b410121070c040b410121070c020b410121070b2008ad422086428002842106420121050c020b2008ad4220862106420121050c010b2008ad4220862106420221050b2006422088a721094101210a41012108024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402005200684a741ff01710e040500010a050b2009410171220b450d03200720024f0d0141002108200120076a2d00004110490d030c090b2009410171220b450d010240200720024f0d0041002108200120076a2d00004110490d020c090b2007200241f4cec800103c000b200720024184cfc800103c0c030b2007200941016a4101766a220c20024b0d052003200c3602a806200341106a200341a0066a10d70420032802100d0520032802a806220d20032802146a220e20032802a4064b0d052003200e3602a806200341e0046a200341f0076a41c00110e9081a410121040c010b2007200941016a4101766a220c20024b0d042003200c3602a806200c41026a220820024b0d04200320083602a806200c417e4f0d062001200c6a2f00002104410021094100210d0240200642800283500d00200341086a200341a0066a10d70420032802080d054101210820032802a806220e200328020c6a220f20032802a4064b0d062003200f3602a8064101210d0b200341023602a40920034102360298092003410236028c092003410236028009200341023602f408200341023602e808200341023602dc08200341023602d008200341023602c408200341023602b808200341023602ac08200341023602a00820034102360294082003410236028808200341023602fc07200341023602f007200341f0076a2108200441ffff037121100340024020102009410f7176410171450d002003200341a0066a10d70420032802000d0620032802a8062211200328020422126a220420032802a4064b0d06200320043602a806200841086a2004360200200841046a2011360200200820124120473602000b2008410c6a2108200941016a22094110470d000b200341e0046a200341f0076a41c00110e9081a410421040b200341a0036a200341e0046a41c00110e9081a200341c0016a41186a200f360200200341c0016a41146a200e360200200341c0016a41106a200d360200200341c0016a410c6a200b360200200341c0016a41086a200c360200200320073602c401200320043602c001200341c0016a411c6a200341a0036a41c00110e9081a4100210a4100211320040e050e010000020e0b000b200c2007490d04200c20024b0d05200e200d490d06200e20024b0d07200c20076b2109200120076a21082001200d6a2114200e200d6b2115410121130c0c0b200341023602a40920034102360298092003410236028c092003410236028009200341023602f408200341023602e808200341023602dc08200341023602d008200341023602c408200341023602b808200341023602ac08200341023602a00820034102360294082003410236028808200341023602fc07200341023602f007410021080340410221040240200341c0016a20086a2209411c6a22102802004102460d00200941246a2802002111200941206a28020021090240024020102802004101470d0020112009490d0b41012104201120024d0d012011200241d4f2cc00104d000b20112009490d0b41002104201120024b0d0c0b201120096b2111200120096a21120b200341f0076a20086a22092004360200200941086a2011360200200941046a20123602002008410c6a220841c001460d0b0c000b0b410121080b200341a0036a200341e0046a41c00110e9081a200020083a00010c0a0b200c200841e4cec8001057000b2007200c41c4f3cc001057000b200c200241c4f3cc00104d000b200d200e41d4f3cc001057000b200e200241d4f3cc00104d000b2009201141d4f2cc001057000b2009201141e4f2cc001057000b2011200241e4f2cc00104d000b02400240200d4101460d00410021120c010b200f200e490d03200f20024b0d04200f200e6b21112001200e6a21120b200c2007490d04200c20024b0d05200341f8076a280200211620032802f407211520032802f0072114200341186a200341fc076a41a80110e9081a200c20076b2109200120076a2108200341ac096a2802002110200341a8096a280200211720032802a4092118410421130b2000411c6a2016360200200041186a2015360200200041146a2014360200200041106a200b3602002000410c6a2009360200200041086a2008360200200041046a2013360200200041206a200341186a41a80110e9081a200041d8016a2011360200200041d4016a2012360200200041d0016a2010360200200041cc016a2017360200200041c8016a20183602000b2000200a3a0000200341b0096a24000f0b200e200f41e4f3cc001057000b200f200241e4f3cc00104d000b2007200c41c4f3cc001057000b200c200241c4f3cc00104d000b7e01027f230041306b22022400200241146a410436020020024188e2cc003602102002410436020c20024180e2cc003602082001411c6a2802002103200128021821012002412c6a41023602002002420237021c20024190e2cc003602182002200241086a36022820012003200241186a103d2101200241306a240020010bc81703037f037e197f230041f0036b2204240020012802042105200128020021062001280208220141086a2900002107200141106a290000210820012900002109200441186a220a200141186a290000370300200441106a220b2008370300200441086a220c2007370300200420093703002003410174210d2004410772210e200441c8016a41186a210f200441c8016a410c6a2110200441c8016a41206a211141002112410021134100211402400240024002400240024002400240024002400240024002400240024002400340201441017621010240024020144101710d00200120034b0d03200441003a00d001200420013602cc01200420023602c8010c010b200120034b0d03200120034f0d04200441013a00d001200420023602c801200420013602cc012004200220016a2d000041f001713a00d1010b200441d0036a20062004200441c8016a200528020c11040002400240024020042802d00322150d00200441c8016a41086a2212200441086a290300370300200441c8016a41106a2203200441106a290300370300200441c8016a41186a2216200441186a290300370300200420042903003703c8014130102c22010d010c130b20042802d4032117200441c8016a201520042802d80310a80220042d00c8014101460d0f201341016a21130c010b200120042903c80137000120012004290020370021200120134100473a0000200141096a2012290300370000200141116a2003290300370000200141196a2016290300370000200141286a200441276a29000037000020004101360200200020013602040c100b034020042802e401211820042802e001211920042802dc01211a20042802d801211b20042802d401211620042802d001211c20042802cc012101200441206a201141a80110e9081a200428029403211d200428029003211e024002400240024020010e05110f000102110b4100210102402016410174201b6b221f200d20126b221d201d201f4b1b2220450d000340201220016a221d410176221e20034f0d0a201b20016a2221410176222220164f0d0b2002201e6a2d0000221e410f71201e41f00171410476201d4101711b201c20226a2d0000221d410f71201d41047620214101711b470d012020200141016a2201470d000b202021010b02402001201f470d00201f21010c030b200042003702000c120b200420183602dc01200420193602d8012004201a3602d4012004201b3602d001200420163602cc012004201c3602c801200f200441206a41a80110e9081a02400240200d2012460d002012410176220120034f0d0b200441c8016a200220016a2d00002201410f71200141047620124101711b410c6c6a2201280200221a4102470d01200042003702000c130b410021010240201e450d00201d417f4c0d1002400240201d0d00410121010c010b201d102c2201450d160b2001201e201d10e9081a0b20002001360204200041003602002000410c6a201d360200200041086a201d3602000c120b20012802042119200141086a28020021184101211f410121010c010b20042802a0032120200428029c03211f2004280298032101200420183602d001200420193602cc012004201a3602c8012010200441206a41a80110e9081a20042001360284032004201d360280032004201e3602fc024100210102402016410174201b6b2218200d20126b221a201a20184b1b2219450d000340201220016a221d410176221e20034f0d0b201b20016a2221410176222220164f0d0c2002201e6a2d0000221e410f71201e41f00171410476201d4101711b201c20226a2d0000221d410f71201d41047620214101711b470d012019200141016a2201470d000b201921010b024020012018460d00200042003702000c110b02400240201a2018460d00201220186a2201410176221620034f0d0d200441c8016a200220166a2d00002216410f71201641047620014101711b410c6c6a2216280200221a4102470d01200042003702000c120b410021010240201f450d002020417f4c0d0f0240024020200d00410121010c010b2020102c2201450d150b2001201f202010e9081a0b20002001360204200041003602002000410c6a2020360200200041086a20203602000c110b201841016a211f201841016a210120162802042119201641086a28020021180b200120146a21142012201f6a21120240201a450d00200441c8016a2019201810a80220042d00c8014101460d0f0c010b0b0240024020184120460d00200f200a290300370300200441c8016a41106a2201200b290300370300200441c8016a41086a2216200c290300370300200420042903003703c8012018417f4c0d0d0240024020180d004101211b0c010b2018102c221b450d130b201b2019201810e908211b200441d0036a41186a221c200f290300370300200441d0036a41106a221d2001290300370300200441d0036a41086a221e2016290300370300200420042903c8013703d0034130102c2201450d12200141043a0000200120042903d003370001200120042f00c8013b00212001201836002c200120183600282001201b360024200141096a201e290300370000200141116a201d290300370000200141196a201c290300370000200141236a200441c8016a41026a2d00003a0000410121160c010b41002116200441c8016a41026a41003a0000200441003b01c80120192f0000211b200441cc036a41026a201941026a2d00003a00002019411f6a2d0000211c201941176a29000021072019280003210120192900072108200441d0036a41086a221d2019410f6a290000370300200441d0036a41106a221e2007370300200441d0036a41186a2221201c3a00002004201b3b01cc03200420083703d003200f20212d00003a0000200441c8016a41106a201e290300370300200441c8016a41086a201d290300370300200420042903d0033703c8010b200441c8036a41026a221b200441cc036a41026a2d00003a0000200441a8036a41086a221c200441c8016a41086a290300370300200441a8036a41106a221d200441c8016a41106a290300370300200441a8036a41186a221e200f280200360200200420042f01cc033b01c803200420042903c8013703a803024020160d00200e20042903a803370000200e41086a201c290300370000200e41106a201d290300370000200e41186a201e2d00003a0000200420042f01c8033b0100200420013600032004201b2d00003a00022017450d012015102e0c010b0b20004101360200200020013602040c0d0b2001200341a0f0cc00104d000b2001200341b0f0cc00104d000b2001200341c0f0cc00103c000b201e200341e0efcc00103c000b2022201641e0efcc00103c000b2001200341e0efcc00103c000b201e200341e0efcc00103c000b2022201641e0efcc00103c000b2016200341e0efcc00103c000b410021180240024002402016410174201b6b200d20126b2214470d004100211841002101024002402014450d00410021010340201b20016a221d410176221e20164f0d04201220016a2221410176222220034f0d05201c201e6a2d0000221e410f71201e41f00171410476201d4101711b200220226a2d0000221d410f71201d41047620214101711b470d012014200141016a2201470d000c020b0b20012014470d010b2019417f4c0d030240024020190d00410121180c010b2019102c2218450d090b2018201a201910e9081a2019ad220742208620078421070b2000201836020420004100360200200041086a20073702000c050b201e201641e0efcc00103c000b2022200341e0efcc00103c000b1038000b200042003702000c010b20042d00c9012112200441d0036a41086a2203200441086a290300370300200441d0036a41106a2216200441106a290300370300200441d0036a41186a221b200441186a290300370300200420042903003703d0034130102c2201450d02200141033a0000200120042903d003370001200120123a0021200120042901a803370122200141096a2003290300370000200141116a2016290300370000200141196a201b290300370000200141286a200441ae036a29010037010020004101360200200020013602040b2017450d002015102e0b200441f0036a24000f0b1036000b9f0402027f037e230041f0006b2201240002404101102c22020d001036000b200241003a0000410041003502e8f54c200141d0006aad7c42adfed5e4d485fda8d8007e42218922033e02e8f54c200141c0006a41e8f5cc00ad220442a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010e808200141206a200342a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010e808200141306a200442c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d800420010e808200141106a200342c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d800420010e80820012003200485420042adfed5e4d485fda8d800420010e808200141d0006a41aad3c800410110b001200041286a4200370300200041246a41d0a1c00036020020004100360220200041346a428180808010370200200020023602302000200129005037003c200041c4006a200141d0006a41086a290000370000200041cc006a200141e0006a290000370000200041d4006a200141e8006a29000037000020002003200141c0006a41086a2903002001290340857c200141086a29030020012903008542cf829ebbefefde82147c2205893703002000200141106a41086a29030020012903108520047c20054230888937031820002003200141306a41086a2903002001290330857c2005422088893703102000200141206a41086a29030020012903208520047c200542108889370308200141f0006a24000bfd0101057f2000410c6a280200200028020822016b220241e0006d210302402002450d002001200341e0006c6a2104034002402001220541386a2802002201450d00200141d8006c2102200528023041306a21010340200128020022032003280200417f6a3602000240200128020022032802000d00200341046a22032003280200417f6a3602002001280200220341046a2802000d002003102e0b200141d8006a2101200241a87f6a22020d000b0b200541e0006a21010240200541346a2802002202450d00200241d8006c450d002005280230102e0b20012004470d000b0b024020002802042201450d00200141e0006c450d002000280200102e0b0b130020004109360204200041f0ecc0003602000bb10201027f230041206b220424000240024002400240024020022001413c6a412010ec080d00200141386a2802002202417f4c0d01200128023021050240024020020d00410121010c010b2002102c2201450d030b200020023602042000200136020020012005200210e9081a200041086a20023602000c040b200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a290000370300200420022900003703002001200410af022202450d02200228020c4101480d0220022802082201417f4c0d00200228020021050240024020010d00410121020c010b2001102c2202450d020b200020013602042000200236020020022005200110e9081a200041086a20013602000c030b1038000b1036000b200041003602000b200441206a24000be10303017f047e087f230041306b22022400200241206a20002903182000290308852203200141186a2900008542002000290310220420002903002205852206200129001085420010e808200241106a2003200141086a2900008542002006200129000085420010e8082002200442002004200241106a41086a2903002002290310857c2004200241206a41086a2903002002290320857c200542adfed5e4d485fda8d8007e42a0cbbf9599b5a19f0a7c85421789854217892203420010e808200041246a280200220720002802202208200241086a290300200229030085200389a722097122006a280000220a200941197641818284086c220b732209417f73200941fffdfb776a71418081828478712109200041046a200871210c4104210d024003400240024020090d00200d21090340200c21000240200a200a4101747141808182847871450d004100210e0c050b2008200020096a41046a71210c200941046a220d2109200b200720006a280000220a73220e417f73200e41fffdfb776a7141808182847871220e450d000c020b0b2009210e20070d004100210e0c020b200e417f6a200e71210920012007410020082000200e684103766a716b41306c6a41506a220e412010ec080d000b0b200241306a2400200e41206a4100200e1b0bb60301057f230041e0006b22052400024002402004417f4c0d000240024020040d00410121060c010b2004102c2206450d020b20062003200410e9082107410021060240200141386a2802002004470d0020072001280230200410ec084521060b02402004450d002007102e0b024002402006450d002000200129003c370000200041186a200141d4006a290000370000200041106a200141cc006a290000370000200041086a200141c4006a2900003700000c010b20052003200410b001200541206a41186a200541186a2207290000370300200541206a41106a200541106a2208290000370300200541206a41086a200541086a220929000037030020052005290000370320200541c0006a41086a200241086a280200360200200520022902003703400240024020040d00410121060c010b2004102c2206450d030b200520043602542005200636025020062003200410e9081a200520043602582001200541206a200541c0006a200541d0006a10b102200041186a2007290000370000200041106a2008290000370000200041086a2009290000370000200020052900003700000b200541e0006a24000f0b1038000b1036000be50301047f23004180016b220424000240024020032802082205200041386a280200470d00200328020022062000280230200510ec080d00200341046a280200450d012006102e0c010b200441c0006a41186a2205200141186a290000370300200441c0006a41106a2206200141106a290000370300200441c0006a41086a2207200141086a2900003703002004200129000037034020042000200441c0006a10b202024020042903004201520d00200441c0006a41286a200441306a290300370300200441c0006a41206a200441286a2903003703002005200441206a2903003703002006200441186a2903003703002007200441106a29030037030020042004290308370340200441f0006a41086a200341086a2802003602002004410136027c20042003290200370370200441c0006a200441f0006a10b3020c010b0240200441106a2802002205417c6a2201280200220041004a0d00200541706a2106200441c0006a41086a2207200341086a280200360200200420032902003703400240200541746a280200450d002006280200102e200128020021000b20062004290340370200200641086a20072802003602002001200041016a3602000c010b2001200041016a360200200341046a280200450d002003280200102e0b20044180016a24000b880503017f047e097f230041306b22032400200341206a20012903182001290308852204200241186a2900008542002001290310220520012903002206852207200229001085420010e808200341106a2004200241086a2900008542002007200229000085420010e8082003200542002005200341106a41086a2903002003290310857c2005200341206a41086a2903002003290320857c200642adfed5e4d485fda8d8007e42a0cbbf9599b5a19f0a7c85421789854217892204420010e808200141246a280200220820012802202209200341086a2903002003290300852004892205a7220a71220b6a280000220c200a41197641818284086c220d73220a417f73200a41fffdfb776a7141808182847871210e200b41046a200971210f410421100240024003400240200e0d002010210a0340200f210b200c200c41017471418081828478710d032009200b200a6a41046a71210f200a41046a2210210a200d2008200b6a280000220c73220e417f73200e41fffdfb776a7141808182847871220e450d000b0b2008450d01200e68210a200e417f6a200e71210e200841002009200b200a4103766a716b41306c6a220a41506a2002412010ec080d000b2000200537030820004200370300200041186a41013a0000200041146a2001360200200041106a200a360200200041196a2002290000370000200041216a200241086a290000370000200041296a200241106a290000370000200041316a200241186a2900003700000c010b2000200537030820004201370300200041106a2001360200200041146a20022900003700002000411c6a200241086a290000370000200041246a200241106a2900003700002000412c6a200241186a2900003700000b200341306a24000bca0503027f077e067f23004180016b2202240020022000280208220336020c20002903002104200241106a41186a200041246a2902002205370300200241106a41106a2000411c6a2902002206370300200241106a41086a200041146a2902002207370300200241106a41286a200141086a29020022083703002002200029020c220937031020022001290200220a370330200241c0006a41286a2008370300200241c0006a41206a200a370300200241c0006a41186a2005370300200241c0006a41106a2006370300200241c0006a41086a200737030020022009370340200341206a210b2003280220220c2004a7220d712101200341246a280200210e4104210003402001220f20006a200c712101200041046a2100200e200f6a280000418081828478712210450d000b0240200e201068410376200f6a200c7122006a2c000022014100480d00200e200e280200418081828478716841037622006a2d000021010b200341286a280200210f024020014101712210450d00200f0d00200241f0006a200b2002410c6a10b4022003280220220c200d712101200341246a280200210e4104210003402001220f20006a200c712101200041046a2100200e200f6a28000041808182847871220b450d000b0240200e200b68410376200f6a200c7122006a2c00004100480d00200e280200418081828478716841037621000b2003280228210f0b2003200f20106b360228200e20006a200d41197622013a0000200c2000417c6a71200e6a41046a20013a0000200e410020006b41306c6a41506a220041286a200241c0006a41286a290300370200200041206a200241c0006a41206a290300370200200041186a200241c0006a41186a290300370200200041106a200241c0006a41106a290300370200200041086a200241c0006a41086a290300370200200020022903403702002003412c6a2200200028020041016a36020020024180016a24000be91007077f017e077f017e027f027e017f23004180016b220324000240024002400240200128020c220441016a22052004490d000240200520012802002206200641016a220741037641076c20064108491b22064101764b0d004100210641002105024003400240024020064101710d00200520074f0d0320052106200541016a21050c010b200541036a220620054922080d0220062007492209450d022007200541046a20081b200720091b21050b200141046a28020020066a220620062802002206410776417f73418182840871200641fffefdfb07726a360200410121060c000b0b200141046a2802002105200128020041016a22064104490d02200520066a20052800003600000c030b024002400240024002402005200641016a2206200520064b1b22050d0041d0a1c000210841002109410021050c010b02400240200541074b0d004104410820054104491b21050c010b200541ffffffff01712005470d04417f2005410374220541076e417f6a677641016a41012005410d4b1b21050b2005ad42307e220a422088a70d02200aa72206200541046a22096a22082006490d022008102c2208450d01200820066a220841ff01200910eb081a2005417f6a2209200541037641076c20094108491b21050b200841506a210b200520046b210c200141046a280200220d41046a210e200d20076a210f200d280200417f7341808182847871211020022802002111034002400240024020100d000340200e200f4f0d02200d41c07e6a210d200e2802002105200e41046a2206210e2005418081828478712205418081828478460d000b2005418081828478732207417f6a20077121102006210e0c020b200d450d00201021072010417f6a20107121100c010b2001200436020c2001200c360208200041003602002001280200210520012009360200200141046a22062802002107200620083602002005450d082007200541016aad42307ea76b102e0c080b41002105200341106a20112903182011290308852212200d41002007684103766b41306c6a41506a221341186a22142900008542002011290310220a20112903002215852216201329001085420010e808200341206a2012201341086a22172900008542002016201329000085420010e8082003200a4200200a200341206a41086a2903002003290320857c200a200341106a41086a2903002003290310857c201542adfed5e4d485fda8d8007e42a0cbbf9599b5a19f0a7c85421789854217892212420010e808200341086a290300200329030085201289220aa721060340200541046a2205200620097122076a2106200820076a280000418081828478712202450d000b0240200820026841037620076a20097122056a2c00004100480d002008280200418081828478716841037621050b200820056a200aa741197622063a00002005417c6a20097120086a41046a20063a0000200b410020056b41306c6a220541286a201341286a290200370200200541206a201341206a290200370200200541186a2014290200370200200541106a201341106a290200370200200541086a2017290200370200200520132902003702000c000b0b1036000b41accdcc00411c41c8cdcc001039000b41accdcc00411c41c8cdcc001039000b41accdcc00411c41c8cdcc001039000b200541046a2005200610ea081a0b41002105024020012802002204417f460d002002280200210d200141046a2110410021050340024020102802002208200522146a2d0000418001470d00410020146b21170340200341c0006a200d290318200d2903088522122008201741306c6a41506a220e41186a2213290000854200200d290310220a200d2903002215852216200e29001085420010e808200341d0006a2012200e41086a220f2900008542002016200e29000085420010e808200341306a200a4200200a200341d0006a41086a2903002003290350857c200a200341c0006a41086a2903002003290340857c201542adfed5e4d485fda8d8007e42a0cbbf9599b5a19f0a7c85421789854217892212420010e8082001280200210941002105200341306a41086a290300200329033085201289220aa7221121060340200541046a2205200620097122076a2106200820076a280000418081828478712202450d000b0240200820026841037620076a20097122056a2c00004100480d002008280200418081828478716841037621050b02402005200920117122066b201420066b7320097141034b0d00200820146a200aa741197622053a000020092014417c6a7120086a41046a20053a00000c020b200820056a22062d000021072006200aa741197622023a00002005417c6a20097120086a41046a20023a00000240200741ff01470d002010280200220620146a41ff013a0000200620012802002014417c6a716a41046a41ff013a00002010280200410020056b41306c6a41506a2205200e290200370200200541086a200f290200370200200541106a200e41106a290200370200200541186a2013290200370200200541206a200e41206a290200370200200541286a200e41286a2902003702000c020b2010280200410020056b41306c6a41506a2205290200210a2005200e290200370200200541186a2206290200211220062013290200370200200541106a220629020021152006200e41106a2207290200370200200541086a220629020021162006200f290200370200200f20163702002007201537020020132012370200200e200a370200200541286a2206290200210a2006200e41286a2207290200370200200529022021122005200e290220370220200e20123702202007200a370200201028020021080c000b0b201441016a210520142004470d000b20012802002205200541016a41037641076c20054108491b21050b2000410036020020012005200128020c6b3602080b20034180016a24000ba20201047f23004180016b22032400024020012000413c6a412010ec08450d00200341c0006a41186a2204200141186a290000370300200341c0006a41106a2205200141106a290000370300200341c0006a41086a2206200141086a2900003703002003200129000037034020032000200341c0006a10b202024020032903004201520d00200341c0006a41286a200341306a290300370300200341c0006a41206a200341286a2903003703002004200341206a2903003703002005200341186a2903003703002006200341106a29030037030020032003290308370340200342808080807037037820034201370370200341c0006a200341f0006a10b3020c010b200341106a280200417c6a22012001280200417f6a3602000b20034180016a24000b880101017f230041206b220324000240024020012000413c6a412010ec080d00410121010c010b200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a2900003703002003200129000037030002402000200310af0222010d00410021010c010b200128020c41004a21010b200341206a240020010b1300200041e0f2c000360204200020013602000b9a0201067f024020002802202201450d0002402000412c6a280200450d00200041246a280200220241046a2103200120026a41016a21042002280200417f73418081828478712101024003400240024020010d000340200320044f0d04200241c07e6a210220032802002101200341046a220521032001418081828478712201418081828478460d000b2001418081828478732201417f6a2001712106200521030c010b2002450d022001417f6a20017121060b2001682105200621012002410020054103766b41306c6a220541746a280200450d00200541706a280200102e200621010c000b0b200028022021010b200041246a280200200141016aad42307ea76b102e0b0240200041346a280200450d002000280230102e0b0b1300200041e0f2c000360204200020013602000bb10201027f230041206b220424000240024002400240024020022001413c6a412010ec080d00200141386a2802002202417f4c0d01200128023021050240024020020d00410121010c010b2002102c2201450d030b200020023602042000200136020020012005200210e9081a200041086a20023602000c040b200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a290000370300200420022900003703002001200410af022202450d02200228020c4101480d0220022802082201417f4c0d00200228020021050240024020010d00410121020c010b2001102c2202450d020b200020013602042000200236020020022005200110e9081a200041086a20013602000c030b1038000b1036000b200041003602000b200441206a24000b880101017f230041206b220324000240024020012000413c6a412010ec080d00410121010c010b200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a2900003703002003200129000037030002402000200310af0222010d00410021010c010b200128020c41004a21010b200341206a240020010b8b0201047f200028020421012000410036020402402001450d00024020002802002202450d002002417f6a2102034020012802940321012002450d012002417f6a21020c000b0b024020002802082203450d004100210003402003417f6a210341012102024002400340200020012f0132490d010240200128020022040d002001102e410021010c030b20012f013021002001102e2002417f6a2102200421010c000b0b200041016a210020024101460d00200120004102746a4194036a280200210102402002450d000340200241016a220020024f210420012802940321012000210220040d000b0b410021000b20030d000b0b0340200128020021022001102e2002210120020d000b0b0b8a0201047f200028020421012000410036020402402001450d00024020002802002202450d002002417f6a21020340200128026021012002450d012002417f6a21020c000b0b024020002802082203450d004100210003402003417f6a210341012102024002400340200020012f015e490d01024020012802002204450d0020012f015c21002001102e2002417f6a2102200421010c010b0b2001102e410021010c010b200041016a210020024101460d00200120004102746a41e0006a280200210102402002450d000340200241016a220020024f2104200128026021012000210220040d000b0b410021000b20030d000b0b0340200128020021022001102e2002210120020d000b0b0b8b0201047f200028020421012000410036020402402001450d00024020002802002202450d002002417f6a2102034020012802c00321012002450d012002417f6a21020c000b0b024020002802082203450d004100210003402003417f6a210341012102024002400340200020012f015e490d010240200128025822040d002001102e410021010c030b20012f015c21002001102e2002417f6a2102200421010c000b0b200041016a210020024101460d00200120004102746a41c0036a280200210102402002450d000340200241016a220020024f210420012802c00321012000210220040d000b0b410021000b20030d000b0b0340200128025821022001102e2002210120020d000b0b0be90101047f200028020421012000410036020402402001450d00024020002802182202450d0020002802082103200028020021000340410120006b21002002417f6a2102024002400340200320012f0106490d010240200128020022040d002001102e410021010c030b20012f010421032001102e2000417f6a2100200421010c000b0b200341016a210320004101460d00200120034102746a41206a280200210102402000450d004100210303402001280220210120002003417f6a2203470d000b0b410021030b4100210020020d000b0b0340200128020021002001102e2000210120000d000b0b0bc78c0106027f027e077f027e197f037e230022032104200341e0076b41607122032400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802000e0a00010203040506070809000b2003418c056a4101360200200342013702fc042003419cc3cb003602f804200341043602e40620034194c3cb003602e0062003200341e0066a36028805200341f8046a41e0ecc0001044000b200141186a2903002105200141106a29030021062001410c6a2802002107200141086a280200210820012802042101200341f8046a41286a200241286a280200360200200341f8046a41206a200241206a290200370300200341f8046a41186a200241186a290200370300200341f8046a41106a200241106a290200370300200341f8046a41086a200241086a290200370300200320022902003703f804200341e0066a200341f8046a10c10241022102200341d0066a41026a220920032d00e3063a0000200341a0036a41086a220a200341f4066a290200370300200341a0036a410d6a220b200341f9066a290000370000200320032f00e1063b01d0062003200341e0066a410c6a2902003703a00302400240024020032d00e0064101460d00200341e0066a41086a280200210220032802e406210c200341f4026a41026a20092d000022093a0000200341c0046a41086a220d200a290300370300200341c0046a410d6a220a200b290000370000200320032f01d006220b3b01f402200320032903a0033703c004200320093a00a2062003200b3b01a006200320023600a7062003200c3600a306200341b3066a200d290300370000200341a0066a41186a200a290000370000200320032903c0043700ab06024002400240200741818001490d00200341a0046a410310c2020c010b0240200642ffcfdbc3f4025620054200522005501b0d00200341a0046a410610c2020c010b200341a0046a41186a220b4200370300200341b0046a22024200370300200341a0046a41086a22094200370300200342003703a004200341e0066a41bad7c70041081081022009200341e0066a41086a220a290000370300200320032900e0063703a004200341e0066a4198d9c000410b108102200b200a290000370300200220032900e006370300200341106a200341a0046a4120108e0220032007ad42004280c2d72f420010e8082003280214210c2003280210210d200341f8046a200341a0066a2003290300220e4280c8afa0257c220f200341086a290300200f200e54ad7c220e10c302024020032d00f8044106470d00200b42003703002002420037030020094200370300200342003703a004200341e0066a41bad7c70041081081022009200a290000370300200320032900e0063703a004200341e0066a4198d9c000410b108102200241086a200a290000370000200220032900e0063700002003200c4100200d1b220241016a3602f804200341a0046a4120200341f8046a410410b20120034182066a20032d00a2063a000020034183066a20032900a306370000200341f8046a41186a4200370300200341f8046a41206a4200370300200341a0056a42003703002003418b066a200341ab066a220929000037000020034193066a200941086a29000037000020034198066a2009410d6a2900003700002003200537038005200320063703f804200320032f01a0063b0180062003420037038805200341b0056a200e3703002003200f3703a805200341003a00b805200341a0046a200210f90120032802a804210a20032802a0042109200341003602e806200342013703e006200341f8046a200341e0066a1080022009200a20032802e006220b20032802e80610b201024020032802e406450d00200b102e0b024020032802a404450d002009102e0b200320073602a804200320083602a404200320013602a004200341e0066a200210c40220032802e006220720032802e806200341a0046a10c502024020032802e406450d002007102e0b02402008450d002001102e0b200341ec066a2002360200200341e8066a41003a0000200341153a00e006200341e0066a10fe0141062102200341063a00a0040c020b200341a0046a410110c2020b02402008450d002001102e0b20032902a404210520032d00a00421020b200341f8026a41026a220120032d00a3043a0000200320032f00a1043b01f802200241ff01714106460d02200341e0036a41026a20012d00003a0000200320032f01f8023b01e0030c010b02402008450d002001102e0b0b20034190036a41026a200341e0036a41026a2d000022013a0000200320032f01e00322083b019003200041206a20023a0000200041186a41003a000020004200370308200020083b0021200041236a20013a00002000200537002420004201370300200424000f0b200041186a41003a00002000420037030820002003280080043600192000411c6a20034183046a28000036000020004200370300200424000f0b20012802042101200341f8046a41286a200241286a280200360200200341f8046a41206a200241206a290200370300200341f8046a41186a200241186a290200370300200341f8046a41106a200241106a290200370300200341f8046a41086a200241086a290200370300200320022902003703f8044102210202400240200341f8046a10c60241ff01714102460d00200341c0046a200110f901200341f8046a20032802c004220820032802c804220710fa01024002400240024020032d00b80541064622020d0002404100200341f8046a20021b22022d0040450d0020034180046a410410c2020c020b200241013a0040200241c1006a200341e0066a41c70010e9081a200341b8046a22094200370300200341b0046a220a4200370300200341a0046a41086a220b4200370300200342003703a004200341e0066a41bad7c7004108108102200b200341e0066a41086a2202290000370300200320032900e0063703a004200341e0066a41c0dac000410f10810220092002290000370300200a20032900e0063703004104102c2209450d0d200342043702a406200320093602a006200320013602e006200341a0066a200341e0066a41041074200220032802a806360200200320032903a0063703e006200341a0046a4120200341e0066a10c702200341063a0080040c020b20034180046a410210c2020b4100210120032d00800422024106470d010b410621020240024020032d00b8054106470d002008200710ff010c010b200341003602e806200342013703e006200341f8046a200341e0066a1080022008200720032802e006220220032802e80610b201024020032802e406450d002002102e0b410621020b410121010b024020032802c404450d002008102e0b200341f8026a41026a220820032d0083043a0000200320032f0081043b01f80220010d012003290284042105200341c0036a41026a20082d00003a0000200320032f01f8023b01c00320024106460d010b200341a0036a41026a200341c0036a41026a2d000022013a0000200320032f01c00322083b01a003200041206a20023a0000200041186a41003a000020004200370308200020083b0021200041236a20013a00002000200537002420004201370300200424000f0b20004200370308200020032800e003360019200041186a41003a00002000411c6a200341e3036a28000036000020004200370300200424000f0b200141386a2903002105200141306a29030021062001280204211020034190036a41026a22072001410b6a2d00003a0000200341e0066a41086a22092001411c6a290200370300200341e0066a41106a220a200141246a290200370300200320012f00093b0190032003200141146a2902003703e006200141086a2d000021082001410c6a280200210d200141106a2802002101200341f8046a41286a200241286a280200360200200341f8046a41206a200241206a290200370300200341f8046a41186a200241186a290200370300200341f8046a41106a220b200241106a290200370300200341f8046a41086a220c200241086a290200370300200320022902003703f8040240024002400240200341f8046a10c60241ff01714102460d00200341c0046a41026a20072d00003a0000200c2009290300370300200b200a290300370300200320032f0190033b01c004200320032903e0063703f8040240024020080e03030100010b2001450d00200d102e0b200341c0036a41086a200341a0066a41086a290300370300200320032f01a0043b01fc02410121020c020b20084102470d1f2001450d1f200d102e410221020c200b200341a0066a410d6a2202200341f8046a410d6a290000370000200341a0066a41086a2208200341f8046a41086a290300370300200341fc026a41026a2207200341c0046a41026a2d00003a0000200341c0036a41086a22092008290300370300200341c0036a410d6a22082002290000370000200320032f01c0043b01fc02200320032903f8043703c003200341d0066a41026a220220072d00003a0000200320032f01fc023b01d006200341a0036a410d6a22072008290000370000200341a0036a41086a220a2009290300370300200320032903c0033703a003200341c0046a201010f901200341f8046a20032802c004220820032802c804220910fa01200341b3046a200a290300370000200341b8046a2007290000370000200320022d00003a00a204200320032f01d0063b01a004200320013600a7042003200d3600a304200320032903a0033700ab04024002400240024020032d00b80541064622020d0002404100200341f8046a20021b22022d00404103490d0020034180046a410410c2020c020b02402002290300200656200241086a290300220f200556200f2005511b0d0020034180046a410710c2020c020b200241033a0040200241c1006a20032903a004370000200341a0046a41186a290300210f200241186a2005370300200341b0046a290300210520022006370310200241c9006a200341a0046a41086a290300370000200241d1006a2005370000200241d9006a200f370000200341063a0080040c020b20034180046a410210c2020b4100210120032d00800422024106470d010b410621020240024020032d00b8054106470d002008200910ff010c010b200341003602a806200342013703a006200341f8046a200341a0066a1080022008200920032802a006220220032802a80610b201024020032802a406450d002002102e0b410621020b410121010b024020032802c404450d002008102e0b200341f8026a41026a220820032d0083043a0000200320032f0081043b01f80220010d01200329028404210520034180036a41026a20082d00003a0000200320032f01f8023b0180030b20024106470d1e0b20004200370308200020032800e003360019200041186a41003a00002000411c6a200341e3036a28000036000020004200370300200424000f0b20012802042111200241276a2d00002112200241256a2f00002113200241246a2d00002114200241226a2f01002115200241206a2f0100210b2002411c6a280200210c200241186a280200210d200241146a2802002110200241106a28020021162002410c6a2802002109200241086a280200210a200241066a2f00002117200241056a2d00002118200241046a2d0000210841022107200241026a2f010021192002280228210120022d0001211a0240024002400240024020022d0000221b0e03000102000b4100211c4102211d2008210702400240201a0e03000105000b4100211d200821074100211c0c040b4101211d200821070c030b4102210702400240024020080e03000102000b410021070c010b410121070b200341a0066a41026a200341f8046a41026a2d00003a0000200320032f00f8043b01a0064101211c0c010b02400240024020080e03000102000b410021070c010b410121070b4102211c200341a0066a41026a200341f8046a41026a2d00003a0000200320032f00f8043b01a0060b0b200128020041016a221e41014d0d06201320124110747221022003419c056a221220143a00002003419a056a221320153b010020034198056a221f200b3b010020034194056a2220200c36020020034190056a2221200d360200200341f8046a41146a22222010360200200341f8046a41106a22232016360200200341f8046a410c6a22242009360200200341f8046a41086a2225200a3602002001201e3602002003419d056a221e20032f01a0063b00002003419f056a2226200341a0066a41026a2d00003a0000200320173b01fe04200320183a00fd04200320073a00fc04200320193b01fa042003201d3a00f9042003201c3a00f804200320013602a005200341e0066a200341f8046a10c102024020032d00e0064101470d00202620024110763a0000201e20023b0000201220143a0000201320153b0100201f200b3b01002020200c3602002021200d3602002022201036020020232016360200202420093602002025200a360200200320013602a005200320173b01fe04200320183a00fd04200320083a00fc04200320193b01fa042003201a3a00f9042003201b3a00f804024002400240201b0e020001020b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b2003200b3b01be062003200c3601ba062003200d3601b606200320103601b206200320163601ae06200320093601aa062003200a3601a606200320173b01a406200320183a00a306200320083a00a206200320193b01a0060240201a450d004110102c2202450d09200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d0920014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220836020020080d022002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22082008280200417f6a220836020020080d022002102e0c020b4101210b410021084100210a0c1d0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b024020080d004101210b200a41017420094d0d00410021084100210a0c1d0b4110102c2202450d07200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d0720014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220836020020080d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22082008280200417f6a220836020020080d002002102e0b20012001280200417f6a22023602004100210b4101210820020d1a2001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d1a2001102e4100210a0c1b0b200341d0066a41026a220720032d00e3063a0000200341a0036a41086a2227200341e0066a41146a290200370300200341a0036a410d6a2228200341f9066a290000370000200320032f00e1063b01d0062003200341e0066a410c6a2902003703a003200341e0066a41086a280200211d20032802e406211c202620024110763a0000201e20023b0000201220143a0000201320153b0100201f200b3b01002020200c3602002021200d3602002022201036020020232016360200202420093602002025200a360200200320013602a005200320173b01fe04200320183a00fd04200320083a00fc04200320193b01fa042003201a3a00f9042003201b3a00f804200341f4026a41026a20072d00003a0000200341c0046a41086a2027290300370300200341c0046a410d6a202829000037000020012001280200417f6a2202360200200320032f01d0063b01f402200320032903a0033703c0044101210a41002108024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b20032802a005220141046a22022002280200417f6a220236020020020d002001102e0b4100210b0c1a0b20012802042101200341f8046a41286a200241286a280200360200200341f8046a41206a200241206a290200370300200341f8046a41186a200241186a290200370300200341f8046a41106a200241106a290200370300200341f8046a41086a200241086a290200370300200320022902003703f804200341e0066a200341f8046a10c102200341a0046a41086a2202200341e9066a290000370300200341a0046a41106a2208200341f1066a290000370300200341a0046a41186a2207200341f9066a290000370300200320032900e1063703a00420032d00e0064101460d07200341c0046a41186a2007290300370300200341c0046a41106a2008290300370300200341c0046a41086a2002290300370300200320032903a0043703c004200341a0046a200110f901200341f8046a20032802a004220820032802a804220710fa0120032d00b80541064622020d0602404100200341f8046a20021b22022d00404103460d00200341a0066a410410c2020c140b0240200341c0046a200241c1006a2201412010ec08450d00200341a0066a410510c2020c140b200341e8016a20022903102205200241186a290300220642c0843d420010e608200341d8016a2005200642c0843d420010e708200341c8016a20032903d801200341d8016a41086a29030042a0c21e420010e808200341e0066a200120032903c801220620032903e8012205420188a7200542a0c21e7e42c0843d8242a0c21e566aad7c2205200341c8016a41086a2903002005200654ad7c220610c302200341fa026a220920032d00e3063a0000200320032f00e1063b01f802024020032d00e006220a4106470d0020022005370320200241286a2006370300200341a0066a41186a22094200370300200341a0066a41106a220a4200370300200341a0066a41086a220b4200370300200342003703a006200341d0066a41d9fcc6004106108102200b200341d0066a41086a220c290000370300200320032900d0063703a006200341d0066a4180f4cb0041061081022009200c290000370300200a20032900d006370300200341c0016a200341a0066a4120108e0220032802c001210920032802c401210a200241043a0040200141086a2900002105200141106a29000021062001290000210f200241d9006a200141186a290000370000200241d1006a2006370000200241c9006a2005370000200241c1006a200f370000200241e4006a200a41808dcf006a41808dcf0020091b360200200341063a00a0060c150b20032902e40621052003200a3a00a006200320032f01f8023b00a106200320053702a406200320092d00003a00a3060c130b20012802042117200341ec026a41026a22072001410b6a2d00003a000020034180046a41086a22092001411c6a29020037030020034180046a41106a220a200141246a290200370300200320012f00093b01ec022003200141146a29020037038004200141086a2d000021082001410c6a280200210b200141106a2802002101200341f8046a41286a200241286a280200360200200341f8046a41206a200241206a290200370300200341f8046a41186a200241186a290200370300200341f8046a41106a220c200241106a290200370300200341f8046a41086a220d200241086a290200370300200320022902003703f804200341e0066a200341f8046a10c102200341f4026a41026a220220032d00e3063a0000200341c0046a41086a2210200341e0066a41146a290200370300200341c0046a410d6a2216200341f9066a290000370000200320032f00e1063b01f4022003200341e0066a410c6a2902003703c00402400240024020032d00e0064101460d00200341e0066a41086a280200211820032802e406211920034180036a41026a20022d00003a0000200341e0036a41086a2010290300370300200341e0036a410d6a2016290000370000200320032f01f4023b018003200320032903c0043703e003200341a0066a41026a20072d00003a0000200320032f01ec023b01a006200d2009290300370300200c200a29030037030020032003290380043703f8040240024020080e03030100010b2001450d00200b102e0b200341a0036a41086a200341e0066a41086a290300370300200320032f01a0043b01d006410121020c020b20084102470d122001450d12200b102e410221020c130b200341e0066a410d6a2202200341f8046a410d6a290000370000200341e0066a41086a2208200341f8046a41086a290300370300200341d0066a41026a2207200341a0066a41026a2d00003a0000200341a0036a41086a22092008290300370300200341a0036a410d6a22082002290000370000200320032f01a0063b01d006200320032903f8043703a003200320072d00003a00c204200320032f01d0063b01c004200320013600c7042003200b3600c304200341d8046a2008290000370000200341d3046a2009290300370000200320032903a0033700cb04200341a0036a201710f901200341f8046a20032802a003220820032802a803220710fa01200341e0066a410b6a2018360000200341ef066a20032903e003370000200341f7066a200341e0036a41086a290300370000200341fc066a200341e0036a410d6a290000370000200320032f0180033b01e406200320034180036a41026a2d00003a00e606200320193600e70620032d00b80521022003200341c0046a3602e0060240024002400240200241064622020d0002404100200341f8046a20021b22022d00404104460d00200341a0066a410410c2020c020b0240200341e0066a4104722209200241c1006a220a412010ec08450d00200341a0066a410510c2020c020b200341fe026a220d20032d00c2043a0000200341a0046a41086a2210200941086a290200370300200341a0046a41106a2216200941106a290200370300200341a0046a41186a2218200941186a290200370300200341c0036a41086a2219200341c0046a410b6a220c41086a290000370300200341c0036a410d6a2214200c410d6a290000370000200320032f01c0043b01fc02200320092902003703a0042003200c2900003703c003200341a0066a41186a22094200370300200341a0066a41106a220c4200370300200341a0066a41086a22154200370300200342003703a006200341d0066a41d9fcc60041061081022015200341d0066a41086a221a290000370300200320032900d0063703a006200341d0066a4180f4cb0041061081022009201a290000370300200c20032900d006370300200341f8016a200341a0066a4120108e0220032802f801210920032802fc01210c200241053a0040200a41186a2018290300370000200a41106a2016290300370000200a41086a2010290300370000200a20032903a004370000200241e1006a20032f01fc023b0000200241e3006a200d2d00003a0000200241e8006a2001360000200241e4006a200b36000020024184016a200c418084076a4180840720091b360200200241ec006a20032903c003370000200241f4006a2019290300370000200241f9006a2014290000370000200341063a00a0060c020b200341a0066a410210c2020b4100210120032d00a00622024106470d010b410621020240024020032d00b8054106470d002008200710ff010c010b200341003602e806200342013703e006200341f8046a200341e0066a1080022008200720032802e006220220032802e80610b201024020032802e406450d002002102e0b410621020b410121010b024020032802a403450d002008102e0b200341f8026a41026a220820032d00a3063a0000200320032f00a1063b01f80202402001450d00200341f8046a41086a41033a000020034181056a20032903c004370000200341a4056a201736020020034189056a200341c0046a41086a29030037000020034191056a200341d0046a29030037000020034199056a200341d8046a290300370000200341153a00f804200341f8046a10fe010c110b20032902a4062105200341e8026a41026a20082d00003a0000200320032f01f8023b01e8020b20024106460d0f0c110b20012802042108200341f8046a41286a2207200241286a280200360200200341f8046a41206a200241206a290200370300200341f8046a41186a2209200241186a290200370300200341f8046a41106a200241106a290200370300200341f8046a41086a200241086a290200370300200320022902003703f804200341e0066a200341f8046a10c102410121014102210220032d00e0064101460d0d20034190036a200810f901200341f8046a200328029003220a200328029803220b10fa01200341d0056a22022903002105200220032903f806370300200341c8056a22022903002106200220032903f006370300200341c0056a2202290300210f200220032903e806370300200320053703b806200320063703b0062003200f3703a806200320032903b80522053703a0062003200341f0056a2903003703d8042003200341e8056a2903003703d0042003200341e0056a2903003703c8042003200341d8056a290300220e3703c004200341063a00e006200320032903e00622063703b805200341f8056a290300210f024002402005a7220241ff01714106470d000c010b2009290300210520072903002129200329038805212a200329039805212b200341e0066a41176a20032900b806370000200341e0066a41106a20032900b106370300200341e0066a41086a20032900a906370300200341a0046a41086a20032900c904370300200341a0046a41106a20032900d104370300200341a0046a41176a20032900d804370000200320032900a1063703e006200320032900c1043703a004200ea72118200fa72119410021010b2006a7210720034180046a41086a2209200341e0066a41086a29030037030020034180046a41106a220c200341e0066a41106a29030037030020034180046a41176a220d200341e0066a41176a290000370000200341e0036a41086a2210200341a0046a41086a290300370300200341e0036a41106a2216200341a0046a41106a290300370300200341e0036a41176a2217200341a0046a41176a290000370000200320032903e00637038004200320032903a0043703e00320010d06200341c0036a41176a200d290000370000200341c0036a41106a200c290300370300200341c0036a41086a2009290300370300200341a0036a41086a2010290300370300200341a0036a41106a2016290300370300200341a0036a41176a201729000037000020032003290380043703c003200320032903e0033703a0030240200241ff01714105460d0020034180036a410410c2020c0d0b200341a0046a41176a200341c0036a41176a290000370000200341a0046a41106a200341c0036a41106a290300370300200341a0046a41086a200341c0036a41086a290300370300200320032903c0033703a004200320183a00bf04200341c0046a41176a200341a0036a41176a290000370000200341c0046a41106a200341a0036a41106a290300370300200341c0046a41086a200341a0036a41086a290300370300200320032903a0033703c004200320193a00df04200341b8066a22024200370300200341a0066a41106a22014200370300200341a0066a41086a22094200370300200342003703a006200341d0066a41d9fcc60041061081022009200341d0066a41086a220c290000370300200320032900d0063703a006200341d0066a4180f4cb0041061081022002200c290000370300200120032900d00637030020034190026a200341a0066a4120108e02024020032802940241002003280290021b200f422088a74f0d0020034180036a410910c2020c0d0b200342f0f2bda1a7ee9cb9f90037038004200320083602e806200341023602e406200341e2b8c0003602e006200341a0066a20034180046a200341e0066a10fc0120034180046a200341a0066a10c802200341e0066a200328028004220120032802880410c902200341e0066a41106a290300420020032903e00642015122021b210620032903e806420020021b210f0240200328028404450d002001102e0b20034180026a200341a0046a202b202910fb01200341e0036a200341a0066a200341a0046a200f202a202a200f56200520065620052006511b22021b220e2006200520021b2205410110ca0220034180046a200341a0066a200341c0046a4200200f200e7d222a202a200f56200620057d200f200e54ad7d220520065620052006511b22021b22064200200520021b2205410110ca0241062107200341063a00b805200341e0066a200810c40220032802e006220220032802e80610ff01024020032802e406450d002002102e0b20034198076a200537030020034190076a2006370300200341e0066a41086a41043a0000200341e9066a20032903c0043700002003418c076a2008360200200341f1066a200341c0046a41086a290300370000200341f9066a200341d0046a29030037000020034181076a200341d8046a290300370000200341153a00e006200341e0066a10fe01200341063a0080030c0c0b200128020421072002410e6a2f0100210a2002410d6a2d0000210b2002410c6a2d0000210c2002410a6a2f0100210d200241096a2d00002110200241086a2d00002116200241046a2d0000210920022802282101024020022d000022080d002002411a6a2901002105200241196a2d00002108200241186a2d00002117200241166a2f01002118200241156a2d00002119200241146a2d00002114200241126a2f01002115200241116a2d0000211a200241106a2d0000211b200241066a2f0100211d200241056a2d0000211c200241026a2f0100211220022d0001210220012001280200417f6a2213360200024020130d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22132013280200417f6a221336020020130d002001102e0b200320053703b806200320083a00b706200320173a00b606200320183b01b406200320193a00b306200320143a00b206200320153b01b0062003201a3a00af062003201b3a00ae062003200a3b01ac062003200b3a00ab062003200c3a00aa062003200d3b01a806200320103a00a706200320163a00a6062003201d3b01a4062003201c3a00a306200320093a00a206200320123b01a0060240200241ff01710d00410321080c010b4110102c2202450d02200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d0220014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a22173602004100210820170d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22172017280200417f6a221736020020170d002002102e0b0240024002402008417f6a0e03000102010b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200941ff01710d00200d411074201041087472201672410174200a411074200b41087472200c724b0d020b4110102c2202450d03200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d0320014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220836020020080d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22082008280200417f6a220836020020080d002002102e0b20012001280200417f6a22083602004102210220080d0b2001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22082008280200417f6a220836020020080d0b2001102e0c0b0b200341a0046a200710f901200341f8046a20032802a004220120032802a804220810fa01024002400240024002400240024020032d00b80541064622020d004100200341f8046a20021b22022d00400e06020305050401020b200341e0066a410210c202200320032900e106370380042003200341e8066a2800003600870420032d00e006210220032802a404450d102001102e0c100b200341e0066a410810c202200320032900e106370380042003200341e0066a41086a2800003600870420032d00e006210220032802a404450d0f2001102e0c0f0b200341e0066a200710c40220032802e006220920032802e80610ff01024020032802e406450d002009102e0b200341a8026a20024188016a2002290330222a200241386a290300222b10cb0220032903a80221052003200341a8026a41086a29030022063703e806200320053703e0060240024020052006844200520d002003200341e0066a3602a006200341a0066a10cc020c010b200342f0f2bda1a7ee9cb9f9003703a006200341e0066a200341a0066a10cd0220034198026a200341e0066a2005200610fd01200341b0066a20034198026a41086a290300220e20067d200329039802220f200554ad7d2006200e7d2005200f54ad7d200f200556200e200656200e2006511b22021b3703002003200f20057d2005200f7d20021b3703a80620032002ad3703a006200341a0066a41086a21090240024020020d00200320093602c004200341c0046a10cc020c010b200320093602c004200341c0046a10ce020b200341f8066a2006370300200341f0066a2005370300200341e8066a41063a00002003410e3a00e006200341e0066a10fe010b200341063a00b805200341f8066a202b370300200341f0066a202a370300200341ec066a2007360200200341e8066a41013a0000200341153a00e006200341e0066a10fe0142f0f98fc30121050c030b200341e0066a410410c202200320032900e106370380042003200341e8066a2800003600870420032d00e006210220032802a404450d0d2001102e0c0d0b200341c8026a200241c1006a2002290320200241286a29030010fb010b200342f0f2bda1a7ee9cb9f9003703c004200320073602e806200341023602e406200341e2b8c0003602e006200341a0066a200341c0046a200341e0066a10fc01200341e0066a200710c40220032802e006220220032802e80610ff01024020032802e406450d002002102e0b200341c0046a200341a0066a10c802200341e0066a20032802c004220920032802c80410c902200341f0066a290300420020032903e00642015122021b210520032903e806420020021b2106024020032802c404450d002009102e0b200342f0f2bda1a7ee9cb9f9003703c004200341e0066a200341c0046a10cd02200341c0046a200341a0066a200341e0066a20062005410110ca02200341063a00b805200341ec066a2007360200200341e8066a41053a0000200341153a00e006200341e0066a10fe01428887a88c0221050b0240024020032d00b8054106470d002001200810ff010c010b200341003602e806200342013703e006200341f8046a200341e0066a1080022001200820032802e006220220032802e80610b20120032802e406450d002002102e0b024020032802a404450d002001102e0b200320032800c0033602a0032003200341c3036a2800003600a303200041186a41003a0000200041106a200537030020004201370308200020032802a0033600192000411c6a20032800a30336000020004200370300200424000f0b200128020421072001410c6a2802002108200141086a2802002101200341f8046a41286a200241286a280200360200200341f8046a41206a200241206a290200370300200341f8046a41186a200241186a290200370300200341f8046a41106a200241106a290200370300200341f8046a41086a200241086a290200370300200320022902003703f804200341e0066a200341f8046a10c102200341a0046a41086a2202200341e9066a290000370300200341a0046a41106a2209200341f1066a290000370300200341a0046a41186a220a200341f9066a290000370300200320032900e1063703a00420032d00e0064101460d05200341c0046a41186a200a290300370300200341c0046a41106a2009290300370300200341c0046a41086a2002290300370300200320032903a0043703c004200341a0046a200710f901200341f8046a20032802a004220a20032802a804220b10fa01024002400240024020032d00b80541064622020d0002404100200341f8046a20021b22022d00404104460d00200341a0066a410410c2020c020b0240200241c1006a200341c0046a412010ec08450d00200341a0066a410510c2020c020b200341b8066a22094200370300200341b0066a220c4200370300200341a0066a41086a220d4200370300200342003703a006200341d0066a41d9fcc6004106108102200d200341d0066a41086a2210290000370300200320032900d0063703a006200341d0066a4180f4cb00410610810220092010290000370300200c20032900d006370300200341d8026a200341a0066a4120108e02200220032802dc0241808dcf006a41808dcf0020032802d8021b22092002280264220c2009200c4b1b360264200341063a00a0060c020b200341a0066a410210c2020b4100210920032d00a00622024106470d010b410621020240024020032d00b8054106470d00200a200b10ff010c010b200341003602e806200342013703e006200341f8046a200341e0066a108002200a200b20032802e006220220032802e80610b201024020032802e406450d002002102e0b410621020b410121090b024020032802a404450d00200a102e0b200341f8026a41026a220a20032d00a3063a0000200320032f00a1063b01f80202402009450d0020034184056a200736020020034180056a41063a0000200341153a00f804200341f8046a10fe012008450d082001102e0c080b20032902a406210520034180046a41026a200a2d00003a0000200320032f01f8023b0180040c060b1036000b00000b200341a0066a410210c2020c0c0b410221020c0e0b20034180036a410210c2020c050b410221020b02402008450d002001102e0b20024106460d00200341f8046a41026a20034180046a41026a2d000022013a0000200320032f01800422083b01f804200041206a20023a0000200041186a41003a000020004200370308200020083b0021200041236a20013a000020002005370024420121050c010b4200210520004200370308200020032800f804360019200041186a41003a00002000411c6a200341fb046a2800003600000b20002005370300200424000f0b200320032800c0033602a00320032003290380043703e00320032003280087043600e7032003200341c3036a2800003600a303200041186a41003a000020004200370308200020032802a0033600192000411c6a20032800a303360000200041206a20023a0000200020032903e003370021200041286a20032800e70336000020004201370300200424000f0b024020032d00800322024106470d0002400240200741ff01714106470d00200a200b10ff010c010b200341003602e806200342013703e006200341f8046a200341e0066a108002200a200b20032802e006220220032802e80610b20120032802e406450d002002102e0b0240200328029403450d00200a102e0b200041186a41003a000020004200370308200020032800ec023600192000411c6a200341ef026a28000036000020004200370300200424000f0b0240200328029403450d00200a102e0b200341fe026a20032d0083033a0000200320032f00810322013b01f802200320013b01fc0220032902840321050b200341f4026a41026a200341fc026a41026a2d000022013a0000200320032f01fc0222083b01f402200041206a20023a0000200041186a41003a000020004200370308200020083b0021200041236a20013a00002000200537002420004201370300200424000f0b200042003703082000200328009003360019200041186a41003a00002000411c6a20034193036a28000036000020004200370300200424000f0b410221020b200341e4026a41026a200341e8026a41026a2d000022013a0000200320032f01e80222083b01e402200041206a20023a0000200041186a41003a000020004200370308200020083b0021200041236a20013a00002000200537002420004201370300200424000f0b4100210120032d00a00622024106470d010b410621020240024020032d00b8054106470d002008200710ff010c010b200341003602e806200342013703e006200341f8046a200341e0066a1080022008200720032802e006220220032802e80610b201024020032802e406450d002002102e0b410621020b410121010b024020032802a404450d002008102e0b200341e0036a41026a220820032d00a3063a0000200320032f00a1063b01e00320010d0120032902a4062105200341c0036a41026a20082d00003a0000200320032f01e0033b01c00320024106460d010b200341a0036a41026a200341c0036a41026a2d000022013a0000200320032f01c00322083b01a003200041206a20023a0000200041186a41003a000020004200370308200020083b0021200041236a20013a00002000200537002420004201370300200424000f0b200042003703082000200328008004360019200041186a41003a00002000411c6a20034183046a28000036000020004200370300200424000f0b4100210a0b4102210220034180036a41026a2201200341f4026a41026a2d00003a0000200341e0036a41086a2207200341c0046a41086a290300370300200341e0036a410d6a2209200341c0046a410d6a290000370000200320032f01f4023b018003200320032903c0043703e003024002400240024002400240024020080d00200341ec026a41026a220220012d00003a000020034180046a41086a2201200729030037030020034180046a410d6a22072009290000370000200320032f0180033b01ec02200320032903e00337038004200341e0036a201110f901200341f8046a20032802e003220820032802e803220910fa01200341fc026a41026a20022d00003a0000200341c0036a41086a2001290300370300200341c0036a410d6a2007290000370000200320032f01ec023b01fc0220032003290380043703c0030240024020032d00b80541064622020d00024002400240024002404100200341f8046a20021b22022d00400e06000000010203000b200341a0066a410410c2020c050b200341b3046a200341c0036a41086a290300370000200341a0046a41186a2201200341cd036a290000370000200320032f01fc023b01a0042003201d3600a7042003201c3600a304200320032903c0033700ab042003200341fe026a2d00003a00a204200a450d07200341e0066a41186a2001290300370300200341e0066a41106a200341a0046a41106a290300370300200341e0066a41086a200341a0046a41086a290300370300200320032903a0043703e006200341e0066a200241c1006a412010ec08450d070c020b200241c1006a2101024002400240200a450d00200341d3046a200341c0036a41086a290300370000200341c0046a41186a200341cd036a290000370000200320032f01fc023b01c0042003201d3600c7042003201c3600c304200320032903c0033700cb042003200341fe026a2d00003a00c204200341c0046a2001412010ec08450d01200341a0066a41186a22074200370300200341b0066a220a4200370300200341a0066a41086a220b4200370300200342003703a006200341d0066a41d9fcc6004106108102200b200341d0066a41086a220c290000370300200320032900d0063703a006200341d0066a4180f4cb0041061081022007200c290000370300200a20032900d006370300200341d8006a200341a0066a4120108e0202402003280258450d002002280264200328025c490d030b200341a0066a410910c2020c060b200341f0006a20012002290320200241286a29030010cb02200329037021052003200341f0006a41086a29030022063703e806200320053703e0060240024020052006844200520d002003200341e0066a3602a006200341a0066a10cc020c010b200342f0f2bda1a7ee9cb9f9003703a006200341e0066a200341a0066a10cd02200341e0006a200341e0066a2005200610fd01200341b0066a200341e0006a41086a290300220e20067d2003290360220f200554ad7d2006200e7d2005200f54ad7d200f200556200e200656200e2006511b22011b3703002003200f20057d2005200f7d20011b3703a80620032001ad3703a006200341a0066a41086a21070240024020010d00200320073602c004200341c0046a10cc020c010b200320073602c004200341c0046a10ce020b200341f8066a2006370300200341f0066a2005370300200341e8066a41063a00002003410e3a00e006200341e0066a10fe010b20024200370320200241286a42003703000c080b200341186a20012002290320200241286a29030010fb010c070b200341386a20012002290320200241286a29030010cb02200329033821052003200341386a41086a29030022063703e806200320053703e0060240024020052006844200520d002003200341e0066a3602a006200341a0066a10cc020c010b200342f0f2bda1a7ee9cb9f9003703a006200341e0066a200341a0066a10cd02200341286a200341e0066a2005200610fd01200341b0066a200341286a41086a290300220e20067d2003290328220f200554ad7d2006200e7d2005200f54ad7d200f200556200e200656200e2006511b22011b3703002003200f20057d2005200f7d20011b3703a80620032001ad3703a006200341a0066a41086a21070240024020010d00200320073602a004200341a0046a10cc020c010b200320073602a004200341a0046a10ce020b200341f8066a2006370300200341f0066a2005370300200341e8066a41063a00002003410e3a00e006200341e0066a10fe010b20024200370320200241286a42003703000c060b200b0d040b41022102200341023a00a006410021010c060b200341a0066a410210c2020b4100210120032d00a00622024106470d040c030b0c040b200341a0016a200241c1006a2002290320200241286a29030010cb0220032903a00121052003200341a0016a41086a29030022063703e806200320053703e0060240024020052006844200520d002003200341e0066a3602a006200341a0066a10cc020c010b200342f0f2bda1a7ee9cb9f9003703a006200341e0066a200341a0066a10cd0220034190016a200341e0066a2005200610fd01200341b0066a20034190016a41086a290300220e20067d200329039001220f200554ad7d2006200e7d2005200f54ad7d200f200556200e200656200e2006511b22011b3703002003200f20057d2005200f7d20011b3703a80620032001ad3703a006200341a0066a41086a21070240024020010d00200320073602c004200341c0046a10cc020c010b200320073602c004200341c0046a10ce020b200341f8066a2006370300200341f0066a2005370300200341e8066a41063a00002003410e3a00e006200341e0066a10fe010b20024200370320200241286a42003703000b200241023a0040200241c1006a200341e0066a41c70010e9081a200341063a00a0060b410621020240024020032d00b8054106470d002008200910ff010c010b200341003602e806200342013703e006200341f8046a200341e0066a1080022008200920032802e006220220032802e80610b201024020032802e406450d002002102e0b410621020b410121010b024020032802e403450d002008102e0b200341f8026a41026a220820032d00a3063a0000200320032f00a1063b01f80220010d0120032902a4062105200341e8026a41026a20082d00003a0000200320032f01f8023b01e80220024106460d010b200341e4026a41026a200341e8026a41026a2d000022013a0000200320032f01e80222083b01e402200041206a20023a0000200041186a41003a000020004200370308200020083b0021200041236a20013a00002000200537002420004201370300200424000f0b200042003703082000200328009003360019200041186a41003a00002000411c6a20034193036a28000036000020004200370300200424000f0b410221020b200341ec026a41026a20034180036a41026a2d000022013a0000200320032f01800322083b01ec02200041206a20023a0000200041186a41003a000020004200370308200020083b0021200041236a20013a00002000200537002420004201370300200424000bbe06030d7f017e037f230041306b220224002002200141026a2f01003b012e2002200141066a2f01003b012c20022001410a6a2f01003b012a200141046a2d00002103200141056a2d00002104200141086a2d00002105200141096a2d000021062001410c6a2d000021072001410d6a2d0000210820012d0001210920012d0000210a20022001410e6a2f01003b0128200141116a2d0000210b200141106a2d0000210c2002200141126a2f01003b0126200141156a2d0000210d200141146a2d0000210e2002200141166a2f01003b01242001411a6a290100210f200141196a2d00002110200141186a2d000021112001280228210120022f012e211202400240200a0d0020012001280200417f6a220a360200200220123b0122200220022f012c3b0120200220022f012a3b011e200220022f01283b011c200220022f01263b011a200220022f01243b01182002200f3703080240200a0d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a220a200a280200417f6a220a360200200a0d002001102e0b0240200941ff01714101460d00200041013a00000c020b200020022f01223b0001200041046a20043a0000200041036a20033a0000200041086a20063a0000200041076a20053a0000200041056a20022f01203b00002000410c6a20083a00002000410b6a20073a0000200041096a20022f011e3b0000200041106a200b3a00002000410f6a200c3a00002000410d6a20022f011c3b0000200041146a200d3a0000200041136a200e3a0000200041116a20022f011a3b0000200041186a20103a0000200041176a20113a0000200041003a0000200041156a20022f01183b0000200041196a20022903083700000c010b200220123b0120200220022f012c3b011e200220022f012a3b011c200220022f01283b011a200220022f01263b01182002200f37020c200220103a000b200220113a000a200220022f01243b0108200041013a000020012001280200417f6a220036020020000d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22002000280200417f6a220036020020000d002001102e0b200241306a24000bc60201047f230041c0006b2202240041aab4c700210341092104410821050240024002400240024002400240024002400240200141ff01710e0a00010203040506070809000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a41b0a5cc001044000b41d0ffc3002103411c2104410021050c070b41caeac2002103410c2104410121050c060b419eb4c7002103410c2104410221050c050b4195b9c000210341102104410321050c040b4187b9c0002103410e2104410421050c030b41fbb8c0002103410c2104410521050c020b41f1b8c0002103410a2104410621050c010b41e4b8c0002103410d2104410721050b20004183c4003b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000bce1204027f0c7e037f037e230041e0026b220424002004200337031020042002370308200420013602040240024020022003844200520d00200041063a00000c010b2004200136023c20044180016a200110c802200441e0016a200428028001220520042802880110c902200441e0016a41386a2903002106200441e0016a41306a2903002107200441e0016a41286a2903002108200441e0016a41206a2903002109200441e0016a41186a290300210a200441e0016a41106a290300210b200441a0026a290300210c20042903e801210d20042903e001210e200441b0016a41086a200441b0026a2903003703002004200441a8026a2903003703b00102400240200e4201510d004200210c200441c0006a41386a4200370300200441c0006a41306a4200370300200441c0006a41286a4200370300200441c0006a41206a4200370300200441c0006a41186a4200370300200441c0006a41106a4200370300200441c0006a41086a420037030020044200370340420021094200210842002107420021064200210d4200210b4200210a4200210f420021104200210e420021110c010b200441c0006a41206a2008370300200441c0006a41286a2007370300200441c0006a41106a200a370300200441c0006a41306a2006370300200420093703582004200d3703402004200c3703782004200b3703482008210f20072110200d210e200b21110b0240200428028401450d002005102e0b02400240200e2011844200520d00200f2004290350842010200441d8006a29030084844200520d002004290370200441f8006a2903008450450d004200210e410021050c010b4201210e410121050b0240200e4201510d004200210842002107420021064200210c4200210a420021094200210d4200210b0b0240024002400240024002400240200d20027d2211200d56200b20037d200d200254ad7d220d200b56200d200b511b0d000240200a20027c220f200a542212200920037c2012ad7c220b200954200b2009511b450d00200441d0016a41086a4108360200200441a984ca003602d401200441023a00d201200441830a3b01d0010c020b200441d0016a20012002200341042011200d10d70620042d00d0014106470d0120044188026a22132007370300200441f8016a200b37030020044190026a2214200637030020042008370380022004200f3703f001200420113703e0012004200d3703e8014200210a42012107200e420152ad210802400240427f2011200f7c220920092011542212200d200b7c2012ad7c2209200d542009200d511b22121b220642ffc7afa02556427f200920121b22094200522009501b0d002011200f84200d200b8484220b50211242002107200b420052ad210a0c010b201429030021152013290300211620044180026a2903002117200441f0016a290300210f20042903f801211020042903e801210e20042903e001210b410121120b200441a8016a2009370300200441a0016a2213200637030020044190016a200d37030020042011370388012004200a37039801200420083703800120052007420152720d02200420013602e0012001200441e0016a10bd060c040b200441d8016a4113360200200441c8a3c7003602d401200441033a00d201200441830a3b01d0010b20042902d401210b20042802d00121050c010b0240200541017322052007420151720d00200420013602e0012001200441e0016a10be0641ff017122054103460d02024020050e03040300040b41042105024020120d00200420133602e001200441e0016a10cc020b0c010b2007420152200571450d010c020b200541ff01714106460d02200020053a0000200041036a20054118763a0000200020054108763b0001200041046a200b3702000c030b200441c0016a200110c802200441e0016a20042802c001221220042802c801221310c90220042903e0012102200441b0016a41086a2205200441b0026a2903003703002004200441a8026a2903003703b0010240024020024201510d00200441d0016a41086a4200370300200442003703d0010c010b200441d0016a41086a2005290300370300200420042903b0013703d0010b200441a8026a20042903d001370300200441b0026a200441d0016a41086a290300370300200442013703e00120044198026a20154200200742015122051b37030020044190026a2016420020051b370300200441e0016a41286a2017420020051b37030020044180026a2010420020051b370300200441f8016a200f420020051b370300200441e0016a41106a200e420020051b370300200441a0026a200c420020051b3703002004200b420020051b3703e80120122013200441e0016a41086a10c805024020042802c401450d002012102e0b20044180016a41106a290300210d20044180016a41286a2903002109200429038801211120042903a00121062004290380012108200429039801210a0b024020084201520d0020044198026a200d37030020044190026a2011370300200441e0016a41086a41003a0000200441e9016a2001290000370000200441f1016a200141086a290000370000200441f9016a200141106a29000037000020044181026a200141186a290000370000200441033a00e001200441e0016a10fe010b02400240200a50450d00420021020c010b200441e0016a41086a200428023c220141086a290000370300200441e0016a41106a200141106a290000370300200441e0016a41186a200141186a290000370300200420012900003703e001420121020b200441186a41186a200441e0016a41186a22012903002203370300200441186a41106a200441e0016a41106a2205290300220b370300200441186a41086a200441e0016a41086a290300220d370300200420042903e001220a37031820044190026a200937030020044188026a221220063703002005200d3703002001200b37030020044180026a2003370300200420023703e0012004200a3703e801200441e0016a10d204024020042903e001500d0020042012360240200441c0006a10cc020b200441086a41086a290300210320042903082102200428020421010b20044198026a200337030020044190026a2002370300200441e0016a41086a41053a0000200441e9016a2001290000370000200441f1016a200141086a290000370000200441f9016a200141106a29000037000020044181026a200141186a290000370000200441033a00e001200441e0016a10fe01200041063a00000b200441e0026a24000b870201037f230041d0006b22022400200241086a41bad7c7004108108102200241186a4194dac0004112108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241386a41086a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000b970101047f230041106b22032400024002402002280208220441046a2205417f4c0d00200228020021020240024020050d00410121060c010b2005102c2206450d020b20034100360208200320053602042003200636020020042003107620032002200410742000200120032802002205200328020810b20102402003280204450d002005102e0b200341106a24000f0b1038000b1036000b9d0601087f20002802282101024002400240024020002d000022020d0020002d0001210020012001280200417f6a2203360200024020030d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22032003280200417f6a220336020020030d002001102e0b0240200041ff01710d0041000f0b4110102c2200450d03200041f8f7c60036020c2000410136020820004281808080103702004110102c2201450d0320014190f8c60036020c20014101360208200142818080801037020020002000280200417f6a220336020020030d012000280208200028020c2802001103000240200028020c280204450d002000280208102e0b200041046a22032003280200417f6a220336020020030d012000102e0c010b410021030240024002402002417f6a0e03000104010b2000410e6a2f010021022000410d6a2d000021042000410c6a2d000021052000410a6a2f01002106200041096a2d00002107200041086a2d00002108200041046a2d0000210020012001280200417f6a2203360200024020030d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22032003280200417f6a220336020020030d002001102e0b200041ff01710d0141012103200641107420074108747220087241056c200241107420044108747220057241036c490d010c030b4101210320024103460d020c010b4110102c2200450d02200041f8f7c60036020c2000410136020820004281808080103702004110102c2201450d0220014190f8c60036020c20014101360208200142818080801037020020002000280200417f6a220336020020030d002000280208200028020c2802001103000240200028020c280204450d002000280208102e0b200041046a22032003280200417f6a220336020020030d002000102e0b20012001280200417f6a22003602004102210320000d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22002000280200417f6a220036020020000d002001102e0b20030f0b1036000b31002001ad4220862000ad84200235020842208620022802002200ad84101f0240200241046a280200450d002000102e0b0bac0201037f230041e0006b22022400200241d9fcc6004106108102200241106a41dcf1cb004107108102024002404120102c2203450d002002422037023420022003360230200241306a200141201074200241c0006a200228023022012002280238220310d803200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c0006a360250200241206a200241d0006a107c02402002280234450d002001102e0b2002280228220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b20004100360208200020013602042000200436020020002002411010742000200241106a411010742000200228022022012003107402402002280224450d002001102e0b200241e0006a24000f0b1036000b1038000b8c0402067f027e230041d0006b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822010d00200042003703000c010b200328020c2102024002400240200341106a28020022044104490d002004417c7122054104460d0020054108460d002005410c460d00200441707122044110460d00200128000021052001280004210620012800082107200128000c2108200141186a29000021092001290010210a0240200441506a0e110102020202020202020202020202020201000b20044120470d010b20034100360220200342013703182003410a36022c200320033602282003200341186a360234200341cc006a41013602002003420137023c200341909dc5003602382003200341286a360248200341346a419cebc000200341386a103d1a2003280218200328022010ef020240200328021c450d002003280218102e0b420021090c010b2000200a370308200041386a2001290040370300200041286a2001290030370300200041186a2001290020370300200041106a2009370300200041d4006a2008360200200041d0006a2007360200200041cc006a2006360200200041c8006a2005360200200041c0006a200141c8006a290000370300200041306a200141386a290000370300200041206a200141286a290000370300420121090b200020093703002002450d002001102e0b200341d0006a24000bb63507017f0a7e017f067e047f047e037f230041d0066b2206240020062001360204200620053a001f20062003370308200620043703100240024002402003200484500d0020012002412010ec080d010b200041063a00000c010b200620023602e401200641a8026a200210c802200641d0056a20062802a802220120062802b00210c9020240024020062903d0054201510d0042002107200641e8016a41386a4200370300200641e8016a41306a4200370300200641e8016a41286a420037030020064188026a4200370300200641e8016a41186a4200370300200641e8016a41106a4200370300200641f0016a4200370300200642003703e80142002108420021094200210a4200210b42002104420021034200210c4200210d4200210e4200210f420021100c010b200641d0056a41386a290300210b200641d0056a41306a290300210a200641d0056a41206a2903002108200641d0056a41186a290300210c200641d0056a41106a290300210320064190066a290300210720062903d805210420064188026a200641d0056a41286a2903002209370300200641e8016a41286a200a370300200641e8016a41106a200c370300200641e8016a41306a200b3703002006200837038002200620043703e801200620073703a002200620033703f0012009210d200a210e2004210f200321100b024020062802ac02450d002001102e0b02400240200f2010844200520d00200d20062903f80184200e20064180026a29030084844200520d00200629039802200641a0026a2903008450450d0042002110410021110c010b42012110410121110b0240024020104201510d00200641e8036a4200370300200641e0036a4200370300200641d8036a4200370300200641d0036a4200370300200641c8036a4200370300200641c0036a4200370300200641b8036a4200370300200642003703b0030c010b200641d0036a2009370300200641d8036a200a370300200641e0036a200b370300200641c0036a200c370300200620083703c803200620073703e803200620043703b003200620033703b8030b2006200628020422013602f403200641e8046a200110c802200641d0056a20062802e804220520062802f00410c9020240024020062903d0054201510d004200210d200641f8036a41386a4200370300200641f8036a41306a4200370300200641f8036a41286a4200370300200641f8036a41206a4200370300200641f8036a41186a4200370300200641f8036a41106a420037030020064180046a4200370300200642003703f80342002112420021134200210c4200211442002104420021034200210f42002115420021164200210e420021170c010b200641d0056a41386a2903002114200641d0056a41306a290300210c200641d0056a41206a2903002112200641d0056a41186a290300210f200641d0056a41106a290300210320064190066a290300210d20062903d8052104200641f8036a41206a200641d0056a41286a2903002213370300200641f8036a41286a200c370300200641f8036a41106a200f370300200641f8036a41306a20143703002006201237039004200620043703f8032006200d3703b004200620033703800420132115200c21162004210e200321170b024020062802ec04450d002005102e0b02400240200e2017844200520d00201520062903880484201620064190046a29030084844200520d0020062903a804200641b0046a2903008450450d004200210e410021050c010b4201210e410121050b02400240200e4201510d004200210d20064198056a420037030020064190056a420037030020064188056a420037030020064180056a4200370300200641f8046a4200370300200641f0046a4200370300200642003703e80442002104420021030c010b20064188056a201337030020064190056a200c37030020064198056a2014370300200641f8046a200f3703002006201237038005200620043703e804200620033703f0040b024002400240024020042006290308220f7d220c2004562003200641086a41086a29030022177d2004200f54ad7d220420035620042003511b450d0041838a0c21054280808080b002210341c8a3c7002118410121190c010b2006200c3703e804200620043703f004024020062903b0032203200f7c22132003542218200641b0036a41086a290300221220177c2018ad7c220320125420032012511b450d0041838a08210542808080808001210341a984ca002118410121190c010b200620133703b003200641c8036a2903002112200620033703b8030240427f201320062903c0037c221420142013542218200320127c2018ad7c221220035420122003511b22181b4280c8afa025544100427f201220181b501b450d0041838a1021054280808080a002210341e4a3c7002118410121190c010b200641d0056a2006280204200f20174102200c200410d706024020062d00d0054106460d0041838a0421054280808080d002210341a0a3c7002118410121190c010b0240024020062d001f4101470d00200641a0056a200628020410c802200641d0056a20062802a005221920062802a80510c902200628029c06211820062903d0052103024020062802a405450d002019102e0b20034201520d012018450d010b427f200c20062903f8047c22032003200c542218200420064180056a2903007c2018ad7c220320045420032004511b22181b4280c8afa025544100427f200320181b501b450d0041838a1421054280808080900121034180a4c7002118410121190c010b200641a0056a41206a200641e8046a41306a2903002203370300200641a0056a41186a200641e8046a41286a2903002212370300200641a0056a41106a200641e8046a41206a2903002213370300200641a8056a200641e8046a41186a290300220f370300200620062903f80422173703a0052006200d3703c805200641d0056a41186a200f370300200641d0056a41206a22192013370300200641d0056a41286a221a2012370300200641d0056a41306a221b2003370300200620173703e0052006200c3703d005200620043703d80542012103200e420152ad211402400240427f200c20177c22122012200c5422182004200f7c2018ad7c221320045420132004511b22181b22124280c8afa025544100427f201320181b2213501b450d00200c2017842004200f8484220f50211842002103200f420052ad21170c010b201b290300211c201a290300211d2019290300211e200641d0056a41106a290300211620062903e805211f20062903d805211520062903d005210f42002117410121180b200641e0046a2013370300200641d8046a221a2012370300200641c8046a20043703002006200c3703c004200620173703d004200620143703b8040240024002400240024020052003420152720d00200620013602d0052001200641d0056a10bd060c010b0240200541017322052003420151720d00200620013602d0052001200641d0056a10be0641ff017122054103460d01024020050e03030200030b42002103410121194104210502402018450d000c060b2006201a3602d005200641d0056a10cc020c050b20034201522005710d020b200641e8046a200110c802200641d0056a20062802e804221920062802f004221a10c90220064198066a221b2802002120200641a0066a22212903002104200628029c06212220062903d005210c200642013703d00520064188066a201c4200200342015122051b37030020064180066a201d420020051b370300200641d0056a41286a201e420020051b370300200641f0056a201f420020051b370300200641e8056a2016420020051b370300200641d0056a41106a2015420020051b370300202120044200200c42015122181b3703002006419c066a2022410020181b360200201b2020410020181b36020020064190066a200d420020051b3703002006200f420020051b3703d8052019201a200641d8056a10c805024020062802ec04450d002019102e0b200641b8046a41106a2903002104200641b8046a41286a290300211320062903c004210c20062903d804211220062903b804210f20062903d00421170c040b20062903b80422044280808080708321032004a72118200641e0046a2903002113200641c8046a290300210420062903d804211220062903c004210c4100211920062903d00421170c010b200e420152211842002103410021190b0b20032018ad84210f2019450d00410121010c010b0240200f4201520d0020064188066a200437030020064180066a200c370300200641d0056a41086a41003a0000200641d9056a2001290000370000200641e1056a200141086a290000370000200641e9056a200141106a290000370000200641f1056a200141186a290000370000200641033a00d005200641d0056a10fe010b02400240201750450d004200210f0c010b200641d0056a41086a20062802f403220141086a290000370300200641d0056a41106a200141106a290000370300200641d0056a41186a200141186a290000370300200620012900003703d0054201210f0b200641f8036a41186a200641d0056a41186a2903002204370300200641f8036a41106a200641d0056a41106a2903002203370300200641f8036a41086a200641d0056a41086a290300220c370300200641e8046a41086a200c370300200641e8046a41106a2003370300200641e8046a41186a2004370300200620062903d00522043703f803200620043703e804410021010b200641f8036a41086a2218200641b0036a41186a290300370300200641f8036a41106a2219200641b0036a41206a290300370300200641f8036a41186a221a200641b0036a41286a290300370300200641f8036a41206a221b200641b0036a41306a290300370300200620062903c0033703f803200641b0036a41086a290300210420062903b0032103024002402001450d004200210e41012101200f210c0c010b200641e8036a2903002107200641d0056a41186a2018290300220a370300200641d0056a41206a2019290300370300200641d0056a41286a201a290300370300200641d0056a41306a201b290300370300200620062903f80322083703e005200620033703d005200620043703d8054200210d4201210e2010420152210102400240427f200320087c220c200c20035422182004200a7c2018ad7c220c200454200c2004511b22181b221742ffc7afa02556427f200c20181b22104200522010501b0d004200210e20032008842004200a8484420052ad210d0c010b20064180066a290300210b200641f8056a290300210a200641f0056a2903002109200641e0056a290300211620062903e805210820062903d805211520062903d00521140b2001ad210c200641a0056a41086a200641e8046a41086a290300370300200641a0056a41106a200641e8046a41106a290300370300200641a0056a41186a200641e8046a41186a290300370300200620062903e8043703a005410021010b20064190036a41086a200641a0056a41086a29030037030020064190036a41106a200641a0056a41106a29030037030020064190036a41186a200641a0056a41186a290300370300200620062903a0053703900302400240024002400240024020010d00200641d0026a2010370300200641c8026a22052017370300200641a8026a41106a200437030020064188036a201337030020064180036a22192012370300200641e0026a2201200629039003370300200641e8026a20064198036a290300370300200641f0026a20064190036a41106a290300370300200641f8026a200641a8036a290300370300200620033703b0022006200f3703d8022006200d3703c0022006200c3703a802024002402011200e420152720d00200620023602d0052002200641d0056a10bd060c010b024020114101732218200e420151720d00200620023602d0052002200641d0056a10be0641ff017122184103460d010240024020180e03010300010b0240200d500d00200620053602d005200641d0056a10cc020b200641d8026a10d204410121184104210520062903d802500d05200620193602d005200641d0056a10cc020c050b200641b0036a41286a200141286a290300370300200641b0036a41206a200141206a290300370300200641b0036a41186a200141186a290300370300200641b0036a41106a200141106a290300370300200641b0036a41086a200141086a290300370300200620012903003703b003410021180c040b200e4201522018710d020b200641f8036a200210c802200641d0056a20062802f8032219200628028004221110c90220064198066a221a280200211b200641a0066a22202903002104200628029c06212120062903d0052103200642013703d00520064188066a200b4200200e42015122051b37030020064180066a200a420020051b370300200641d0056a41286a2009420020051b370300200641d0056a41206a2008420020051b370300200641d0056a41186a2016420020051b370300200641d0056a41106a2015420020051b370300202020044200200342015122181b3703002006419c066a2021410020181b360200201a201b410020181b36020020064190066a2007420020051b37030020062014420020051b3703d80520192011200641d0056a41086a10c805024020062802fc03450d002019102e0b200641b0036a41086a2205200141086a290300370300200641b0036a41106a2218200141106a290300370300200641b0036a41186a2219200141186a290300370300200641b0036a41206a2211200141206a290300370300200641b0036a41286a221a200141286a290300370300200620012903003703b003200641a8026a41106a2903002104200641a8026a41286a290300211020062903b002210320062903c802211720062903a802210a20062903c002210d20062903d802210c200641f8036a41286a201a290300370300200641f8036a41206a2011290300370300200641f8036a41186a2019290300370300200641f8036a41106a2018290300370300200641f8036a41086a2005290300370300200620062903b0033703f803200641f8036a21010c030b410121180c010b200641b0036a41286a200141286a290300370300200641b0036a41206a200141206a290300370300200641b0036a41186a200141186a290300370300200641b0036a41106a200141106a290300370300200641b0036a41086a200141086a290300370300200620012903003703b003410021180b200641f8036a41286a200641b0036a41286a290300370300200641f8036a41206a200641b0036a41206a290300370300200641f8036a41186a200641b0036a41186a290300370300200641f8036a41106a200641b0036a41106a290300370300200641f8036a41086a200641b0036a41086a290300370300200620062903b0033703f803200641f8036a210120180d01200c210a200f210c0b200641a8026a41286a200141286a290300370300200641a8026a41206a200141206a290300370300200641a8026a41186a200141186a290300370300200641a8026a41106a200141106a290300370300200641a8026a41086a200141086a290300370300200620012903003703a8020240200a4201520d0020062802e401210120064188066a200437030020064180066a2003370300200641d0056a41086a41003a0000200641d9056a2001290000370000200641e1056a200141086a290000370000200641e9056a200141106a290000370000200641f1056a200141186a290000370000200641033a00d005200641d0056a10fe010b02400240200d50450d00420021040c010b200641e8016a41086a20062802e401220141086a290000370300200641e8016a41106a200141106a290000370300200641e8016a41186a200141186a290000370300200620012900003703e801420121040b200641e8046a41186a200641e8016a41186a290300370300200641e8046a41106a200641e8016a41106a290300370300200641e8046a41086a200641e8016a41086a290300370300200641d0056a41086a200641a8026a41086a290300370300200641d0056a41106a200641a8026a41106a290300370300200641d0056a41186a200641a8026a41186a290300370300200641d0056a41206a200641a8026a41206a290300370300200641d0056a41286a200641a8026a41286a290300370300200620062903e8013703e804200620062903a8023703d005410021010c010b410121010b200641b0016a41086a2218200641d0056a41086a290300370300200641b0016a41106a2219200641d0056a41106a290300370300200641b0016a41186a2211200641d0056a41186a290300370300200641b0016a41206a221a200641d0056a41206a290300370300200641b0016a41286a221b200641d0056a41286a29030037030020064190016a41086a2220200641e8046a41086a29030037030020064190016a41106a2221200641e8046a41106a29030037030020064190016a41186a2222200641e8046a41186a290300370300200620062903d0053703b001200620062903e80437039001024020010d00200641e0006a200629039001370300200641206a41106a2018290300370300200641206a41186a2019290300370300200641206a41206a2011290300370300200641206a41286a201a290300370300200641d0006a201b290300370300200641e8006a2020290300370300200641f0006a2021290300370300200641f8006a20222903003703002006200c370320200620062903b0013703282006200437035820064188016a201037030020064180016a22012017370300200641206a10d20402402006290320500d002006200641c8006a3602d005200641d0056a10cc020b200641d8006a10d20402402006290358500d00200620013602d005200641d0056a10cc020b200641086a41086a290300210420062903082103200641206a41186a2006280204220141186a290000220c370300200641206a41106a200141106a290000220a370300200641206a41086a200141086a290000220f370300200620012900002207370320200641a8066a2004370300200641a0066a2003370300200641d0056a41086a41023a0000200641d9056a2007370000200641e1056a200f370000200641e9056a200a370000200641f1056a200c370000200641f9056a200229000037000020064181066a200241086a29000037000020064189066a200241106a29000037000020064191066a200241186a290000370000200641033a00d005200641d0056a10fe01200041063a00000c010b20002005360200200041046a200c3702000b200641d0066a24000beb130a017f047e017f047e0b7f017e027f017e017f0c7e230041f0026b2204240002400240200220038450450d00420021054200210642002107420021080c010b20044180016a200110c802200441f0016a200428028001220920042802880110c90220044190026a290300210a20044188026a290300210b20044180026a290300210620042903f801210c20042903f001210d0240200428028401450d002009102e0b420021050240200d4201520d00200c200b842006200a8484500d00200441f0016a41c8006a210e200441f0016a41086a210f20044180016a41306a211020044180016a41206a211141002109200441f0016a41386a2112200441f0016a41106a2113200441c0006a41286a2114200441c0006a41186a211502400240024003402004200136022c20044180016a200110c802200441f0016a200428028001221620042802880110c90220122903002107200441f0016a41306a2217290300210b200441f0016a41206a221829030021082013290300210d2004290398022105200429038802211920042903f801210a20042903b002210c20042903f0012106200441306a41086a200e41086a2903003703002004200e2903003703300240024020064201510d004200210c200441c0006a41386a4200370300200441c0006a41306a420037030020144200370300200441c0006a41206a420037030020154200370300200441c0006a41106a4200370300200441c0006a41086a420037030020044200370340420021054200210b4200210a4200210d0c010b2014200b370300200441c0006a41306a2007370300200420053703602004200a3703402004200c370378200420193703502004200d370348200420083703580b0240200428028401450d002016102e0b02400240200a200d844200520d002005200429035084200429037084200b201529030084200441c0006a41386a290300848450450d0042002119410021160c010b200441c0006a41106a290300210a200441c0006a41306a290300210820142903002106200441c0006a41206a29030021072004290348210d2004290340210b4201211920042903582105410121160b02402019420152221a450d004200210742002106420021084200210c4200210a420021054200210b4200210d0b200441f0016a41286a221b2006370300201720083703002004200b3703f0012004200d3703f801200441f0016a41186a200542002005200d7c200a200b7c2206200a54ad7c220820064280c8afa02554ad7d221920064280b8d0df5a7c221c2006562019200856200642ffc7afa025561b221d1b220620034200201c201d1b2208200254200620035420062003511b221d1b200320091b22062005200a20082002201d1b200220091b220856200520065620052006511b221d1b22067d200a2008200a201d1b220554ad7d221937030020042007370390022004200a20057d221c37038002200320067d2002200554ad7d2108200220057d2107201aad211e02400240427f200b201c7c220a200a200b54221a200d20197c201aad7c220a200d54200a200d511b221a1b221f42ffc7afa02556427f200a201a1b220a420052200a501b0d002020200a200b201c84200d20198484220c5022171b21202021201f20171b21214200210a200c420052ad21190c010b20172903002122201b29030021232018290300212420132903002125200429038802212620042903f801212720042903f00121284201210a4200211941012117200c21290b20044180016a41c8006a200837030020044180016a41386a200637030020044180016a41286a202037030020044180016a41106a200d370300200420073703c001200420053703b001200420213703a0012004200b3703880120042019370398012004201e3703800102402016200a420152720d00200420013602f0012001200441f0016a10bd060c030b20164101732216200a420151720d01200420013602f00102402001200441f0016a10be0641ff017122164102460d0020160d03200441c8016a2903002108200441b8016a2903002106200441a8016a290300212020044190016a290300210d20042903c001210720042903b001210520042903a0012121200429038801210b2004290398012119200429038001211e0c040b024020170d00200420113602f001200441f0016a10cc020b200420103602f001200441f0016a10cc02200941016a22094102470d000b420021050c030b200a4201522016710d010b200441d0016a200110c802200441f0016a20042802d001220920042802d801221610c90220042903f001210d200441306a41086a2217200e41086a2903003703002004200e29030037033002400240200d4201510d00200441e0016a41086a4200370300200442003703e0010c010b200441e0016a41086a2017290300370300200420042903303703e0010b0240200a4201510d0042002128420021274200212442002123420021224200212942002125420021260b200e20042903e001370300200441a0026a202337030020044190026a2026370300200441f0016a41106a2027370300200441f0016a41386a2022370300200e41086a200441e0016a41086a29030037030020042024370398022004202537038802200420283703f801200420293703b002200442013703f00120092016200f10c805024020042802d401450d002009102e0b20044180016a41106a290300210d200441a8016a290300212020044180016a41386a2903002106200441c8016a2903002108200429038801210b20042903a001212120042903b001210520042903c0012107200429038001211e20042903980121190b0240201e4201520d00200441a8026a200d370300200441a0026a200b370300200441f0016a41086a41003a0000200441f9016a200129000037000020044181026a200141086a29000037000020044189026a200141106a29000037000020044191026a200141186a290000370000200441033a00f001200441f0016a10fe010b02400240201950450d00420021030c010b200441f0016a41086a200428022c220141086a290000370300200441f0016a41106a200141106a290000370300200441f0016a41186a200141186a290000370300200420012900003703f001420121030b200441086a41186a200441f0016a41186a2201290300220d370300200441086a41106a200441f0016a41106a2209290300220a370300200441086a41086a200441f0016a41086a290300220b370300200420042903f0012202370308200441a0026a202037030020044198026a221620213703002009200b3703002001200a37030020044190026a200d370300200420033703f001200420023703f801200441f0016a10d20420042903f001500d01200420163602800120044180016a10cc020c010b4200210620022107200321080b2000200737031020002005370300200041186a200837030020002006370308200441f0026a24000b9b0304057f027e017f027e230041d0006b22012400200141386a22024200370300200141206a41106a22034200370300200141206a41086a2204420037030020014200370320200141c0006a41f8fcc60041081081022004200141c0006a41086a220529000037030020012001290040370320200141c0006a41a8aac800410d1081022002200529000037030020032001290040370300200141086a200141206a412010f802200141086a41106a290300210620012903102107200128020821082000280200220041086a29030021092000290300210a20024200370300200342003703002004420037030020014200370320200141c0006a41f8fcc60041081081022004200529000037030020012001290040370320200141c0006a41a8aac800410d1081022002200529000037030020032001290040370300200142002006420020081b220620097d2007420020081b2207200a54ad7d22092007200a7d220a200756200920065620092006511b22021b37034820014200200a20021b370340200141206a4120200141c0006a411010b201200141d0006a24000b8f0201027f230041d0006b22022400200241d4e2cc0036023020022001360228200241edde91e30636022c02404104102c2203450d002002420437023c20022003360238200241386a200241286a41047241041074200241386a200141081074200228023821012002200228024036024c200220013602482002200241c8006a10d0040240200228023c450d002001102e0b0240024020022d00004101470d0020004200370000200041186a4200370000200041106a4200370000200041086a42003700000c010b20002002290001370000200041186a200241196a290000370000200041106a200241116a290000370000200041086a200241096a2900003700000b200241d0006a24000f0b1036000b9a0304057f027e017f027e230041d0006b22012400200141386a22024200370300200141206a41106a22034200370300200141206a41086a2204420037030020014200370320200141c0006a41f8fcc60041081081022004200141c0006a41086a220529000037030020012001290040370320200141c0006a41a8aac800410d1081022002200529000037030020032001290040370300200141086a200141206a412010f802200141086a41106a290300210620012903102107200128020821082000280200220041086a29030021092000290300210a20024200370300200342003703002004420037030020014200370320200141c0006a41f8fcc60041081081022004200529000037030020012001290040370320200141c0006a41a8aac800410d10810220022005290000370300200320012900403703002001427f20092006420020081b22067c200a2007420020081b22077c22092007542202ad7c22072002200720065420072006511b22021b3703482001427f200920021b370340200141206a4120200141c0006a411010b201200141d0006a24000bd88f01040a7f047e047f037e230022032104200341c0086b416071220324000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d00000e0b00010203040506070d1817000b20034194056a410136020020034201370284052003419cc3cb0036028005200341043602e403200341a4a7c7003602e0032003200341e0036a3602900520034180056a4198f3c0001044000b200141246a2802002105200141216a2d00002106200341b8076a41186a200141196a290000370300200341b8076a41106a200141116a290000370300200341b8076a41086a200141096a290000370300200320012900013703b80720034180056a41286a2201200241286a28020036020020034180056a41206a2207200241206a29020037030020034180056a41186a2208200241186a29020037030020034180056a41106a2209200241106a29020037030020034180056a41086a220a200241086a2902003703002003200229020037038005200341e0036a20034180056a10c102200341c0036a41086a2202200341e0036a41096a290000370300200341c0036a41106a220b200341e0036a41116a290000370300200341c0036a41186a220c200341e0036a41196a290000370300200320032900e1033703c00320032d00e0034101460d14200341a0026a41186a200c290300370300200341a0026a41106a200b290300370300200341a0026a41086a2002290300370300200320032903c0033703a00220034180056a200341b8076a200341a0026a200610d002200341e0036a41086a2008290300370300200341e0036a41106a2007290300370300200341e0036a41186a2001280200360200200320092903003703e003200a290300210d20032802840521012003280280054101460d2f200341e0046a41186a2202200341e0036a41186a280200360200200341e0046a41106a2206200341e0036a41106a290300370300200341e0046a41086a2207200341e0036a41086a290300370300200320032903e0033703e00402402001450d0020034180056a410710d102200329028405210d20032802800521010c300b200341ec036a20032903e004370200200341f4036a2007290300370200200341e0036a411c6a200629030037020020034184046a20022802003602002003200d3702e403200341003602e003200341d8076a41186a200341b8076a41186a290300370300200341d8076a41106a200341b8076a41106a290300370300200341d8076a41086a200341b8076a41086a290300370300200320032903b8073703d80720034180056a200541b00210e9081a200341e0036a200341d8076a20034180056a10d2022005102e200320032800c0043602a0042003200341c3046a2800003600a304200041186a41003a000020004200370308200020032802a0043600192000411c6a20032800a30436000020004200370300200424000f0b200141246a2802002109200141216a2d0000210a200341a0036a41186a2205200141196a290000370300200341a0036a41106a2206200141116a290000370300200341a0036a41086a2207200141096a290000370300200320012900013703a003200341e0036a41286a200241286a280200360200200341e0036a41206a200241206a290200370300200341e0036a41186a200241186a290200370300200341e0036a41106a200241106a290200370300200341e0036a41086a200241086a290200370300200320022902003703e003200341d8076a200341e0036a10c102200341c0036a41086a2201200341d8076a41096a290000370300200341c0036a41106a2202200341d8076a41116a290000370300200341c0036a41186a2208200341d8076a41196a290000370300200320032900d9073703c00320032d00d8074101460d11200341a0046a41186a2008290300370300200341a0046a41106a2002290300370300200341a0046a41086a2001290300370300200320032903c0033703a004200341c0046a41186a2005290300370300200341c0046a41106a2006290300370300200341c0046a41086a2007290300370300200320032903a0033703c0040240200341a0046a200341c0046a412010ec080d00200341d8076a410810d102200341ef036a200341d8076a41086a280200220136000020034198056a41003a0000200341a8056a2001360000200320032903d8073700e703200341a1056a200341e0036a41086a29000037000020034200370388052003420137038005200320032900e00337009905410121020c2c0b200341e0046a41186a2206200341c0046a41186a290300370300200341e0046a41106a2207200341c0046a41106a290300370300200341e0046a41086a2208200341c0046a41086a290300370300200320032903c0043703e004200341b0086a200341a0046a10d302200341e0036a20032802b00820032802b80810d402200341ec036a280200210b0240024020032802e00322050d004200210e4100210141042105410021024200210d0c010b200341e0036a41186a290300210d200341e0036a41106a290300210e200341e0036a41086a280200210220032802e40321010b200341b8076a41186a2006290300370300200341b8076a41106a2007290300370300200341b8076a41086a2008290300370300200320032903e0043703b807024020024120490d00200341e0036a410110d10220032f00e10320032d00e3034110747221020c290b200341f4076a200341b8076a41186a290300370200200341ec076a200341b8076a41106a290300370200200341e4076a200341b8076a41086a290300370200200320032903b8073702dc072003200a3a00fc07200320093602d807200341306a20052002200341d8076a10d5022003280230450d0b20032802342107200341e0036a41206a200341d8076a41206a290300370300200341e0036a41186a200341d8076a41186a290300370300200341e0036a41106a200341d8076a41106a290300370300200341e0036a41086a200341d8076a41086a290300370300200320032903d8073703e00320022007490d12024002400240024020022001470d00200141016a22062001490d09200141017422082006200820064b1b22064104200641044b1bad42287e220f422088a7454102742106200fa721080240024020010d00200341003602c0030c010b200341c8036a4104360200200320053602c0032003200141286c3602c4030b20034180036a20082006200341c0036a107d20034188036a28020021012003280280034101460d012003280284032105200141286e21010b2005200741286c6a220641286a2006200220076b41286c10ea081a200641206a200341e0036a41206a290300370200200641186a200341e0036a41186a290300370200200641106a200341e0036a41106a290300370200200641086a200341e0036a41086a290300370200200620032903e003370200200341206a200241016a2202ad42004280cdad9d01420010e80820032903202210428088caade9057c220f200e56200341206a41086a290300200f201054ad7c2210200d562010200d5122061b450d01200341e0036a200341a0046a200f200e7d2010200d7d200f200e54ad7d10c30220032d00e00322064106460d0220032f00e10320032d00e30341107472210220032902e403210d0c2c0b2001450d070c290b200e200f58200d20105820061b0d00200341106a200341a0046a200e200f7d200d20107d200e200f54ad7d10fb010b200341f8036a20103703002003200f3703f0032003200b3602ec03200320023602e803200320013602e403200320053602e00320032802b808210220032802b00821060240024020050d002006200210ff010c010b20062002200341e0036a10d6022005450d002001450d00200141286c450d002005102e0b20034198056a41003a00002003419c056a200341a3086a28000036000020034200370380052003420037038805200320032800a008360099050c2a0b200141246a2802002109200141216a2d0000210a200341c0046a41186a2205200141196a290000370300200341c0046a41106a2206200141116a290000370300200341c0046a41086a2207200141096a290000370300200320012900013703c004200341e0036a41286a200241286a280200360200200341e0036a41206a200241206a290200370300200341e0036a41186a200241186a290200370300200341e0036a41106a200241106a290200370300200341e0036a41086a200241086a290200370300200320022902003703e003200341a0026a200341e0036a10c102200341c0036a41086a2201200341a0026a41096a290000370300200341c0036a41106a2202200341a0026a41116a290000370300200341c0036a41186a2208200341a0026a41196a290000370300200320032900a1023703c003024020032d00a0024101470d0020034180056a41206a41023a000020034180056a41186a41003a00002003420037038805200342013703800520034180056a41086a21010c250b200341e0046a41186a2008290300370300200341e0046a41106a2002290300370300200341e0046a41086a2001290300370300200320032903c0033703e004200341a0036a200341e0046a10d302200341a0026a20032802a00320032802a80310d402200341b8076a41186a2005290300370300200341b8076a41106a2006290300370300200341b8076a41086a2007290300370300200320032903c0043703b807200341a0026a41186a2201290300210e200120032903f803370300200341003602e00320032903b0022110200320032903f0033703b00220032903a802210f200320032903e8033703a80220032903a002210d200320032903e0033703a002200da72201450d0f200341fc036a200341b8076a41186a290300370200200341f4036a200341c8076a290300370200200341ec036a200341b8076a41086a290300370200200320032903b8073702e4032003200a3a008404200320093602e003200341d8006a2001200fa72205200341e0036a10d502200d422088a721020240024020032802580d00200328025c220620054f0d102001200641286c6a2207200741286a20052006417f736a41286c10ea081a02402005417f6a22050d004200210f4200210d0c220b200341c8006a2005ad42004280cdad9d01420010e8082003290348220d428088caade9057c220f201056200341d0006a290300200f200d54ad7c220d200e56200d200e511b450d21200341a0046a200341e0046a200f20107d200d200e7d200f201054ad7d10c30220032d00a00422064106460d2220032d00a304210520032f00a104210720032902a404210d200341a0056a20063a000020034198056a41003a00002003200720054110747222053b00a105200341a3056a20054110763a00002003200d3702a405200342003703880520034201370380050c010b200341c0036a410210d102200341af046a200341c0036a41086a280200220536000020034180056a41186a41003a0000200341a8056a2005360000200320032903c0033700a704200341a1056a200341a0046a41086a29000037000020034200370388052003420137038005200320032900a004370099050b2002450d23200241286c450d232001102e0c230b20034180056a41286a200241286a28020036020020034180056a41206a200241206a29020037030020034180056a41186a200241186a29020037030020034180056a41106a200241106a29020037030020034180056a41086a200241086a2902003703002003200229020037038005200341e0036a20034180056a10c102200341c0036a41086a2201200341e9036a290000370300200341c0036a41106a2202200341f1036a290000370300200341c0036a41186a2205200341f9036a290000370300200320032900e1033703c003024020032d00e0034101470d00200320032800e0043602c004200320032900a0023703b8072003200341e3046a2800003600c3042003200341a7026a2800003600bf07200041186a41003a000020004200370308200020032802c0043600192000411c6a20032800c304360000200041206a41023a0000200020032903b807370021200041286a20032800bf0736000020004201370300200424000f0b200341d8076a41186a2005290300370300200341d8076a41106a2002290300370300200341d8076a41086a2001290300370300200320032903c0033703d807200341e0036a200341d8076a10d30220034180056a20032802e003220220032802e803220110d4020240024020032802800522050d004200210d41042105410021014200210e0c010b2002200110ff0120034198056a290300210e20034190056a290300210d20032802840521010b024020032802e403450d002002102e0b02402001450d00200141286c450d002005102e0b200341e0006a200341d8076a200d200e10fb01200320032800e0043602c0042003200341e3046a2800003600c304200041186a41003a000020004200370308200020032802c0043600192000411c6a20032800c30436000020004200370300200424000f0b41022105200141026a2f01002106200141046a2802002109200320012d00013a00b00820034180056a41286a200241286a28020036020020034180056a41206a200241206a29020037030020034180056a41186a200241186a29020037030020034180056a41106a200241106a29020037030020034180056a41086a2201200241086a2902003703002003200229020037038005200341e0036a20034180056a10c102200341d8076a41086a2202200341e9036a290000370300200341d8076a41106a2207200341f1036a290000370300200341d8076a41186a2208200341f9036a290000370300200320032900e1033703d807024020032d00e0034101460d00200341a0026a41186a2008290300370300200341a0026a41106a2007290300370300200341a0026a41086a2002290300370300200320032903d8073703a002200341b8076a41186a22024200370300200341b8076a41106a22054200370300200341b8076a41086a22074200370300200342003703b80720034180056a41d9fcc60041061081022007200129000037030020032003290080053703b80720034180056a4180f4cb004106108102200220012900003703002005200329008005370300200341f8006a200341b8076a4120108e02200328027c210120032802782102200341f0006a41fcc6cb004110108e022003280274210520032802702107200320063b01940520032005410020071b36028c0520032001410020021b36028805200341a8f3c000360280052003200341b0086a360290052003200341a0026a36028405200341c0036a20034180056a10d702200341203602dc072003200341c0036a3602d80720034180056a200341d8076a1093010240024020032d0080054101470d00200341f8036a4200370300200341f0036a4200370300200341e8036a4200370300200342003703e0030c010b200341f8036a20034199056a290000370300200341f0036a20034191056a290000370300200341e8036a20034189056a29000037030020032003290081053703e0030b20034180056a200341e0036a10d3022003280280052202200328028805108f0221010240200328028405450d002002102e0b02402001450d0020034180056a410510d10220032003290081053703e004200320034188056a2800003600e70420032d00800521050c010b20034180056a200341a0026a4280d5f7caea05420010c302200320032900810537039004200320034180056a41086a28000036009704024020032d00800522054106470d00200341a0046a41086a200341a0026a41086a290300370300200341a0046a41106a2202200341a0026a41106a290300370300200341a0046a41186a2205200341a0026a41186a290300370300200320032903a0023703a00420032d00b00821074128102c2201450d2620012009360200200120032903a004370204200120073a0024200120032f01c0033b00252001410c6a200341a8046a290300370200200141146a20022903003702002001411c6a2005290300370200200141276a200341c2036a2d00003a0000200341b8076a200341e0036a10d30220032802c007210520032802b8072102413c102c2207450d262003423c3702dc07200320073602d80720014101200341d8076a10d802200342003703880520034280d5f7caea0537038005200341d8076a20034180056a411010742002200520032802d807220720032802e00710b201024020032802dc07450d002007102e0b024020032802bc07450d002002102e0b2001102e20032d00b00821012003418d056a200341e0036a41086a29030037000020034195056a200341e0036a41106a2903003700002003419d056a200341e0036a41186a290300370000200341a5056a20032903a002370000200341ad056a200341a0026a41086a290300370000200341b5056a200341a0026a41106a290300370000200341bd056a200341a0026a41186a290300370000200341c6056a20063b0100200341c5056a20013a0000200341013a008405200341133a008005200320032903e0033700850520034180056a10fe01200320032800a003360280032003200341a3036a28000036008303200041186a41003a00002000420037030820002003280280033600192000411c6a20032800830336000020004200370300200424000f0b20032003280097043600e70420032003290390043703e0040b200320032800a00336028003200320032903e0043703c004200320032800e7043600c7042003200341a3036a28000036008303200041186a41003a00002000420037030820002003280280033600192000411c6a200328008303360000200041206a20053a0000200020032903c004370021200041286a20032800c70436000020004201370300200424000f0b200141286a2802002106200141246a2802002107200141226a2f01002108200141216a2d00002105200341a0026a41186a200141196a290000370300200341a0026a41106a200141116a290000370300200341a0026a41086a200141096a290000370300200320012900013703a002200320053a00b00820034180056a41286a200241286a28020036020020034180056a41206a200241206a29020037030020034180056a41186a200241186a29020037030020034180056a41106a200241106a29020037030020034180056a41086a200241086a2902003703002003200229020037038005200341e0036a20034180056a10c102200341a0046a41086a2201200341e0036a41096a290000370300200341a0046a41106a2202200341e0036a41116a290000370300200341a0046a41186a2205200341e0036a41196a290000370300200320032900e1033703a0040240024020032d00e0034101460d00200341d8076a41186a2005290300370300200341d8076a41106a2002290300370300200341d8076a41086a2001290300370300200320032903a0043703d807200320083b0194052003200636028c052003200736028805200341a8f3c000360280052003200341b0086a360290052003200341a0026a36028405200341c0036a20034180056a10d702200341203602bc072003200341c0036a3602b80720034180056a200341b8076a1093010240024020032d0080054101470d00200341f8036a4200370300200341f0036a4200370300200341e8036a4200370300200342003703e0030c010b200341f8036a20034199056a290000370300200341f0036a20034191056a290000370300200341e8036a20034189056a29000037030020032003290081053703e0030b0240200341e0036a200341d8076a412010ec08450d0020034180056a410610d10220032003290081053703e004200320034188056a2800003600e70420032d00800521010c020b200341b8076a200341d8076a10d30220034180056a20032802b807220220032802c007220110d4020240024020032802800522050d004200210d41002101410421054200210e0c010b2002200110ff0120034198056a290300210e20034190056a290300210d20032802840521010b024020032802bc07450d002002102e0b02402001450d00200141286c450d002005102e0b20034180016a200341a0026a200d200e10fb01200320032800a003360280032003200341a3036a28000036008303200041186a41003a00002000420037030820002003280280033600192000411c6a20032800830336000020004200370300200424000f0b410221010b200320032800a00336028003200320032903e0043703c004200320032800e7043600c7042003200341a3036a28000036008303200041186a41003a00002000420037030820002003280280033600192000411c6a200328008303360000200041206a20013a0000200020032903c004370021200041286a20032800c70436000020004201370300200424000f0b20034180036a41186a200141196a29000037030020034180036a41106a200141116a29000037030020034180036a41086a200141096a2900003703002003200129000137038003200341a0036a41186a200141396a290000370300200341a0036a41106a200141316a290000370300200341a0036a41086a200141296a2900003703002003200141216a2900003703a00320034180056a41286a200241286a28020036020020034180056a41206a200241206a29020037030020034180056a41186a200241186a29020037030020034180056a41106a200241106a29020037030020034180056a41086a2201200241086a2902003703002003200229020037038005200341e0036a20034180056a10c102200341d8076a41086a2202200341e0036a41096a290000370300200341d8076a41106a2205200341e0036a41116a290000370300200341d8076a41186a2206200341e0036a41196a290000370300200320032900e1033703d80720032d00e0034101460d09200341c0046a41186a2006290300370300200341c0046a41106a2005290300370300200341c0046a41086a2002290300370300200320032903d8073703c004200341e0036a20034180036a10d30220034180056a20032802e003220620032802e80310d4022001280200410020032802800522011b21022003280284052105024020032802e403450d002006102e0b2001410420011b21112005410020011b2112024002402002450d002011200241286c6a210c20034180056a410472210b20034180056a41256a2106200341d8076a41026a2105201121010340200341e0036a41206a2207200141206a280200360200200341e0036a41186a2208200141186a290200370300200341e0036a41106a2209200141106a290200370300200341e0036a41086a220a200141086a290200370300200320012902003703e003200141246a2d000021022005200141276a2d00003a00002003200141256a2f00003b01d80720024107460d01200620032f01d8073b000020034180056a41206a200728020036020020034180056a41186a200829030037030020034180056a41106a200929030037030020034180056a41086a200a290300370300200641026a20052d00003a0000200320032903e00337038005200320023a00a405200b200341c0046a412010ec08450d02200141286a2201200c470d000b0b20034180056a410310d10220032003290081053703e802200320034188056a2800003600ef0220032d00800521012012450d1b201241286c450d1b2011102e0c1b0b02402012450d00201241286c450d002011102e0b200341c0036a41086a220520034180036a41086a290300370300200341c0036a41106a220620034180036a41106a290300370300200341c0036a41186a220920034180036a41186a290300370300200341a0046a41086a220a200341a0036a41086a290300370300200341a0046a41106a220b200341a0036a41106a290300370300200341a0046a41186a220c200341a0036a41186a29030037030020032003290380033703c003200320032903a0033703a0044200210d200341b8076a41186a22014200370300200341b8076a41106a22074200370300200341b8076a41086a22084200370300200342003703b80720034180056a41d9fcc6004106108102200820034180056a41086a220229000037030020032003290080053703b80720034180056a4180f4cb004106108102200120022900003703002007200329008005370300200341b0016a200341b8076a4120108e0220032802b401211220032802b0012111200820052903003703002007200629030037030020012009290300370300200341e0046a41086a2209200a290300370300200341e0046a41106a220a200b290300370300200341e0046a41186a220b200c290300370300200320032903c0033703b807200320032903a0043703e00420034180086a200341c0046a10d90220034180056a20032802800820032802880810da022003418c056a280200210c0240024020032802800522060d004104210641002102410021054200210e0c010b20034180056a41186a290300210e20034180056a41106a290300210d2002280200210520032802840521020b200341d8076a41086a2008290300370300200341d8076a41106a2007290300370300200341d8076a41186a2001290300370300200341a0026a41086a2009290300370300200341a0026a41106a200a290300370300200341a0026a41186a200b290300370300200320032903b8073703d807200320032903e0043703a0022005411f4b0d0320034180056a41086a2207200341d8076a41086a29030037030020034180056a41106a2208200341d8076a41106a29030037030020034180056a41186a2209200341d8076a41186a290300370300200341e0036a41086a220a200341a0026a41086a290300370300200341e0036a41106a220b200341a0026a41106a290300370300200341e0036a41186a2213200341a0026a41186a290300370300200320032903d80737038005200320032903a0023703e00320052002470d02200241016a22012002490d00200241017422142001201420014b1b22014104200141044b1bad42c4007e220f422088a7454102742101200fa721140240024020020d00200341003602b0080c010b200341b8086a4104360200200320063602b0082003200241c4006c3602b4080b200341a0086a20142001200341b0086a107d200341a8086a280200210120032802a0084101470d0120010d220b1038000b20032802a4082106200141c4006e21020b2006200541c4006c6a22012012410020111b36020020012003290380053702042001410c6a2007290300370200200141146a20082903003702002001411c6a2009290300370200200120032903e0033702242001412c6a200a290300370200200141346a200b2903003702002001413c6a2013290300370200200341a0016a200541016a2205ad420042809adbba02420010e8080240024020032903a0012210428088caade9057c220f200d58200341a0016a41086a290300200f201054ad7c2210200e582010200e5122011b0d0020034180056a200341c0046a200f200d7d2010200e7d200f200d54ad7d10c30220032d00800522014106460d0120032d008305210520032f008105210720032003290284053702940820032007200541107472410874200172360290080c170b200d200f58200e20105820011b0d0020034190016a200341c0046a200d200f7d200e20107d200d200f54ad7d10fb010b41062101200341063a0090080c010b20034190086a410110d102200d210f200e211020032d00900822014106470d140b20034198056a20103703002003200f370390052003200c36028c05200320053602880520032002360284052003200636028005200328028808210520032802800821070240024020060d002007200510ff010c010b2007200520034180056a10db022006450d002002450d00200241c4006c450d002006102e0b20032003290091083703e003200320034198086a2800003600e7030c140b200341b8076a41186a200141196a290000370300200341b8076a41106a200141116a290000370300200341b8076a41086a200141096a290000370300200320012900013703b807200341a0026a41186a200141396a290000370300200341a0026a41106a200141316a290000370300200341a0026a41086a200141296a2900003703002003200141216a2900003703a00220034180056a41286a200241286a28020036020020034180056a41206a200241206a29020037030020034180056a41186a200241186a29020037030020034180056a41106a200241106a29020037030020034180056a41086a200241086a2902003703002003200229020037038005200341e0036a20034180056a10c102200341c0036a41086a2201200341e0036a41096a290000370300200341c0036a41106a2202200341e0036a41116a290000370300200341c0036a41186a2205200341e0036a41196a290000370300200320032900e1033703c00320032d00e0034101460d01200341d8076a41186a2005290300370300200341d8076a41106a2002290300370300200341d8076a41086a2001290300370300200320032903c0033703d807200341e0046a200341d8076a10d902200341e0036a20032802e00420032802e80410da02200341e0036a41186a2201290300210e200120032903980537030041002108200341003602800520032903f003211020032003290390053703f00320032903e803210f20032003290388053703e80320032903e003210d20032003290380053703e003200da72207450d02200d422088210d0240200fa72206450d00200741246a210a41002109410021084100210202400340024002402008450d002007200241c4006c6a21012007200220096a41c4006c6a210503400240200141046a200341b8076a412010ec080d00200141246a200341a0026a412010ec08450d030b2005200141c40010e90841c4006a2105200141c4006a2101200241016a22022006490d000c040b0b200a200241c4006c6a210103400240200141606a200341b8076a412010ec080d002001200341a0026a412010ec08450d020b200141c4006a2101200241016a22022006490d000b410021080c030b2009417f6a2109200841016a2108200241016a22022006490d000b0b024020080d00410021080c010b2007200220086b41c4006c6a2007200241c4006c6a200620026b41c4006c10ea081a0b200da7210202400240200620086b22012006490d0020034180056a410210d1020c010b200d200f422086842115024020010d004200210f4200210d0c0e0b200341c8016a2001ad2216420042809adbba02420010e80820032903c801220d428088caade9057c220f201058200341d0016a290300200f200d54ad7c220d200e58200d200e511b0d0d20034180056a200341d8076a200f20107d200d200e7d200f201054ad7d10c302024020032d00800522014106470d002016422086201542ffffffff0f8384210e0c0f0b20032d008305210520032f008105210620032003290284053702840520032006200541107472410874200172360280050b2002450d0b200241c4006c450d0b2007102e0c0b0b200341e0036a410510d10220032f00e10320032d00e3034110747221020c1c0b410221010c0f0b20034180056a410210d1020c080b410221010c100b200620051046000b200341a0046a410210d102200341ef036a200341a0046a41086a280200220136000020034198056a41003a0000200341a8056a2001360000200320032903a0043700e703200341a1056a200341e0036a41086a29000037000020034200370388052003420137038005200320032900e003370099050c130b20034180056a41206a41023a000020034180056a41186a41003a00002003420037038805200342013703800520034180056a41086a21010c1a0b200720021045000b410221010c1a0b200141c4006a2802002107200141c1006a2d00002105200341c0046a41186a200141196a290000370300200341c0046a41106a200141116a290000370300200341c0046a41086a200141096a290000370300200320012900013703c004200341e0046a41186a200141396a290000370300200341e0046a41106a200141316a290000370300200341e0046a41086a200141296a2900003703002003200141216a2900003703e00420034180056a41286a2201200241286a28020036020020034180056a41206a2206200241206a29020037030020034180056a41186a2208200241186a29020037030020034180056a41106a2209200241106a29020037030020034180056a41086a220a200241086a2902003703002003200229020037038005200341e0036a20034180056a10c10202400240024020032d00e0034101470d00410221090c010b20034180056a200341e0046a200341c0046a200510d002200341e0036a41086a2008290300370300200341e0036a41106a2006290300370300200341e0036a41186a2001280200360200200320092903003703e00320032f00850520032d008705411074722108200a290300210d20032d00840521092003280280054101460d00200341a0046a41186a200341e0036a41186a2201280200360200200341a0046a41106a200341e0036a41106a290300370300200341a0046a41086a200341e0036a41086a290300370300200320032903e0033703a00420034100360288052003420137038005200720034180056a109002200341b8076a20032802800520032802880510b001200341a0026a41186a200341b8076a41186a2202290200370300200341a0026a41106a200341b8076a41106a2205290200370300200341a0026a41086a200341b8076a41086a2206290200370300200320032902b8073703a0020240200328028405450d00200328028005102e0b200242003703002005420037030020064200370300200342003703b80720034180056a41d9fcc6004106108102200620034180056a41086a220a29000037030020032003290080053703b80720034180056a4180f4cb0041061081022002200a290000370300200520032900800537030020034198026a200341b8076a4120108e02200328029c0221022003280298022105200341d8076a200341c0046a10d902200341e0036a20032802d80720032802e00710da022001290300210f200120032903980537030020032903f003211520032003290390053703f00320032903e803211020032003290388053703e803200341003602800520032903e003210e20032003290380053703e0030240024002400240024002400240200ea7220a450d00200e422088210e024002402010a722060d004100210c0c010b2002410020051b210b20084108742009722111410021134100210c410021020240034002400240200c450d00200a200241c4006c6a2101200a200220136a41c4006c6a210503400240200141046a200341e0046a412010ec080d00200141246a200341a0026a412010ec080d004100200b20012802006b22122012200b4b1b20114f0d030b2005200141c40010e90841c4006a2105200141c4006a2101200241016a22022006490d000c040b0b200a200241c4006c6a210103400240200141046a200341e0046a412010ec080d00200141246a200341a0026a412010ec080d004100200b20012802006b22052005200b4b1b20114f0d020b200141c4006a2101200241016a22022006490d000b4100210c0c030b2013417f6a2113200c41016a210c200241016a22022006490d000b0b0240200c0d004100210c0c010b200a2002200c6b41c4006c6a200a200241c4006c6a200620026b41c4006c10ea081a0b200ea72102024002402006200c6b22012006490d0020034180056a410210d1020c010b200e2010422086842116024020010d00420021104200210e0c040b20034188026a2001ad2217420042809adbba02420010e808200329038802220e428088caade9057c221020155820034190026a2903002010200e54ad7c220e200f58200e200f511b0d0320034180056a200341c0046a201020157d200e200f7d2010201554ad7d10c302024020032d00800522014106470d002017422086201642ffffffff0f8384210f0c050b20032d008305210520032f008105210620032003290284053702840520032006200541107472410874200172360280050b2002450d01200241c4006c450d01200a102e0c010b20034180056a410210d1020b20032d0080052202410646210120032802e003210a20024106460d02200a450d040c030b02402015201058200f200e58200f200e511b0d00200341f8016a200341c0046a201520107d200f200e7d2015201054ad7d10fb010b2001ad422086201642ffffffff0f8384210f20010d0002402002450d00200241c4006c450d00200a102e0b4100210a0b024020032802e0032201450d0020032802e4032202450d00200241c4006c450d002001102e0b200341f8036a200e370300200341f0036a20103703002003200f3702e4032003200a3602e003200341063a008005410121010b20032802e007210220032802d80721050240200a0d002005200210ff010c020b20052002200341e0036a10db020b20032802e4032202450d00200241c4006c450d00200a102e0b024020032802dc07450d0020032802d807102e0b02402001450d00200341ec036a20032903a004370200200341f4036a200341a0046a41086a290300370200200341e0036a411c6a200341a0046a41106a29030037020020034184046a200341a0046a41186a2802003602002003200d3702e403200320084108742009723602e003200341d8076a41186a200341e0046a41186a290300370300200341d8076a41106a200341e0046a41106a290300370300200341d8076a41086a200341e0046a41086a290300370300200320032903e0043703d80720034180056a200741b00210e9081a200341e0036a200341d8076a20034180056a10d2022007102e200320032800c003360280052003200341c3036a28000036008305200041186a41003a00004200210d2000420037030820002003280280053600192000411c6a2003280083053600000c020b20034180056a410710d10220032f00810520032d008305411074722108200329028405210d20032d00800521090b2007108b022007102e200320032800c003360280052003200341c3036a28000036008305200041236a20084110763a0000200020083b0021200041186a41003a00002000420037030820002003280280053600192000411c6a2003280083053600002000200d370024200041206a20093a00004201210d0b2000200d370300200424000f0b200341b8076a41186a200141196a290000370300200341b8076a41106a200141116a290000370300200341b8076a41086a200141096a290000370300200320012900013703b807200341a0026a41186a200141396a290000370300200341a0026a41106a200141316a290000370300200341a0026a41086a200141296a2900003703002003200141216a2900003703a00220034180056a41286a200241286a28020036020020034180056a41206a200241206a29020037030020034180056a41186a200241186a29020037030020034180056a41106a200241106a29020037030020034180056a41086a200241086a2902003703002003200229020037038005200341e0036a20034180056a10c102200341c0036a41086a2201200341e0036a41096a290000370300200341c0036a41106a2202200341e0036a41116a290000370300200341c0036a41186a2205200341e0036a41196a290000370300200320032900e1033703c00302400240024002400240024002400240024020032d00e0034101460d00200341d8076a41186a2005290300370300200341d8076a41106a2002290300370300200341d8076a41086a2001290300370300200320032903c0033703d807200341e0046a200341b8076a10d902200341e0036a20032802e00420032802e80410da02200341e0036a41186a2201290300210e200120032903980537030041002108200341003602800520032903f003211020032003290390053703f00320032903e803210f20032003290388053703e80320032903e003210d20032003290380053703e003200da72207450d01200d422088210d0240200fa72206450d00200741246a210a41002109410021084100210202400340024002402008450d002007200241c4006c6a21012007200220096a41c4006c6a210503400240200141046a200341d8076a412010ec080d00200141246a200341a0026a412010ec08450d030b2005200141c40010e90841c4006a2105200141c4006a2101200241016a22022006490d000c040b0b200a200241c4006c6a210103400240200141606a200341d8076a412010ec080d002001200341a0026a412010ec08450d020b200141c4006a2101200241016a22022006490d000b410021080c030b2009417f6a2109200841016a2108200241016a22022006490d000b0b024020080d00410021080c010b2007200220086b41c4006c6a2007200241c4006c6a200620026b41c4006c10ea081a0b200da7210202400240200620086b22012006490d0020034180056a410210d1020c010b200d200f422086842115024020010d004200210f4200210d0c050b200341e8016a2001ad2216420042809adbba02420010e80820032903e801220d428088caade9057c220f201058200341f0016a290300200f200d54ad7c220d200e58200d200e511b0d0420034180056a200341b8076a200f20107d200d200e7d200f201054ad7d10c302024020032d00800522014106470d002016422086201542ffffffff0f8384210e0c060b20032d008305210520032f008105210620032003290284053702840520032006200541107472410874200172360280050b2002450d02200241c4006c450d022007102e0c020b410221010c070b20034180056a410210d1020b20032d0080052201410646210220032802e003210720014106460d022007450d040c030b02402010200f58200e200d58200e200d511b0d00200341d8016a200341b8076a2010200f7d200e200d7d2010200f54ad7d10fb010b2001ad422086201542ffffffff0f8384210e20010d0002402002450d00200241c4006c450d002007102e0b410021070b024020032802e0032201450d0020032802e4032202450d00200241c4006c450d002001102e0b200341f8036a200d370300200341f0036a200f3703002003200e3702e403200320073602e00341062101200341063a008005410121020b20032802e804210520032802e0042106024020070d002006200510ff010c020b20062005200341e0036a10db020b20032802e4032205450d00200541c4006c450d002007102e0b024020032802e404450d0020032802e004102e0b200320032900810537039004200320034188056a2800003600970402402002450d00200320032800a003360280032003200341a3036a28000036008303200041186a41003a00002000420037030820002003280280033600192000411c6a20032800830336000020004200370300200424000f0b20032003280097043600c70420032003290390043703c0040b200320032800a00336028003200320032903c0043703a004200320032800c7043600a7042003200341a3036a28000036008303200041186a41003a00002000420037030820002003280280033600192000411c6a200328008303360000200041206a20013a0000200020032903a004370021200041286a20032800a70436000020004201370300200424000f0b20032d0080052201410646210220032802e003210720014106460d022007450d040c030b02402010200f58200e200d58200e200d511b0d00200341b8016a200341d8076a2010200f7d200e200d7d2010200f54ad7d10fb010b2001ad422086201542ffffffff0f8384210e20010d0002402002450d00200241c4006c450d002007102e0b410021070b024020032802e0032201450d0020032802e4032202450d00200241c4006c450d002001102e0b200341f8036a200d370300200341f0036a200f3703002003200e3702e403200320073602e00341062101200341063a008005410121020b20032802e804210520032802e0042106024020070d002006200510ff010c020b20062005200341e0036a10db020b20032802e4032205450d00200541c4006c450d002007102e0b024020032802e404450d0020032802e004102e0b200320032900810537039004200320034188056a2800003600970402402002450d00200320032800a003360280032003200341a3036a28000036008303200041186a41003a00002000420037030820002003280280033600192000411c6a20032800830336000020004200370300200424000f0b20032003280097043600c70420032003290390043703c0040b200320032800a00336028003200320032903c0043703a004200320032800c7043600a7042003200341a3036a28000036008303200041186a41003a00002000420037030820002003280280033600192000411c6a200328008303360000200041206a20013a0000200020032903a004370021200041286a20032800a70436000020004201370300200424000f0b20032003290091083703e003200320034198086a2800003600e7032002450d00200241c4006c450d002006102e0b0240200328028408450d00200328028008102e0b200320032903e00337039004200320032800e70336009704024020014106470d00200341a5056a20032903c0043700002003418d056a20034180036a41086a29030037000020034195056a20034180036a41106a2903003700002003419d056a20034180036a41186a290300370000200341ad056a200341c0046a41086a290300370000200341b5056a200341c0046a41106a290300370000200341bd056a200341c0046a41186a290300370000200341023a008405200341133a008005200320032903800337008505200341dd056a200341a0036a41186a290300370000200341d5056a200341a0036a41106a290300370000200341cd056a200341a0036a41086a290300370000200341c5056a20032903a00337000020034180056a10fe01200320032800f9023602e0022003200341fc026a2800003600e302200041186a41003a000020004200370308200020032802e0023600192000411c6a20032800e30236000020004200370300200424000f0b20032003280097043600ef0220032003290390043703e8020b200320032800f9023602e002200320032903e8023703d002200320032800ef023600d7022003200341fc026a2800003600e302200041186a41003a000020004200370308200020032802e0023600192000411c6a20032800e302360000200041206a20013a0000200020032903d002370021200041286a20032800d70236000020004201370300200424000f0b02402010200f56200e200d56200e200d511b450d00200341386a200341e0046a2010200f7d200e200d7d2010200f54ad7d10fb010b2005450d010b024020032802a0022206450d0020032802a4022207450d00200741286c450d002006102e0b200341a0026a41186a200d370300200341b0026a200f37030020034180056a41186a41003a0000200320053602a802200320023602a402200320013602a002200342003703800520034200370388050c010b20034198056a41003a00002003420037038005200342003703880502402002450d00200241286c450d002001102e0b20032802a00221010b20032802a803210220032802a0032105024020010d002005200210ff010c010b20052002200341a0026a10d6020b024020032802a002450d0020032802a4022201450d00200141286c450d0020032802a002102e0b024020032802a403450d0020032802a003102e0b20034180056a41086a21012003290380054201520d010b200341d8076a41206a200141206a290300220d370300200341d8076a41186a200141186a290300220e370300200341d8076a41106a200141106a290300220f370300200341d8076a41086a200141086a29030022103703002003200129030022153703d807200041286a200d370300200041206a200e370300200041186a200f370300200041106a20103703002000201537030820004201370300200424000f0b200341d8076a41106a200141106a290300220d370300200341d8076a41086a200141086a290300220e37030020032001290300220f3703d807200041186a200d370300200041106a200e3703002000200f37030820004200370300200424000f0b1036000b20032902e403210d20032d00e00321060b20034198056a41003a0000200341a0056a20063a0000200320023b00a105200341a3056a20024110763a00002003419c056a200341a3086a28000036000020034200370388052003420137038005200320032800a008360099052003200d3702a4052001450d00200141286c450d002005102e0b024020032802b408450d0020032802b008102e0b20032903800542015121020b20034180056a41086a21012002450d010b200341a0026a41206a200141206a290300220d370300200341a0026a41186a200141186a290300220e370300200341a0026a41106a200141106a290300220f370300200341a0026a41086a200141086a29030022103703002003200129030022153703a002200041286a200d370300200041206a200e370300200041186a200f370300200041106a20103703002000201537030820004201370300200424000f0b200341a0026a41106a200141106a290300220d370300200341a0026a41086a200141086a290300220e37030020032001290300220f3703a002200041186a200d370300200041106a200e3703002000200f37030820004200370300200424000f0b2005108b022005102e200320032800c0043602a0042003200341c3046a2800003600a304200041186a41003a000020004200370308200020032802a0043600192000411c6a20032800a304360000200041246a200d370200200041206a200136020020004201370300200424000b8a0e020e7f037e230041e0016b2204240020044190016a200110d302200441b8016a200428029001220520042802980110d402200441c0016a280200410020042802b80122061b210120042802bc0121070240200428029401450d002005102e0b2006410420061b21080240024002402001450d002008200141286c6a2109200441b8016a410472210a200441b8016a41256a2105024002400240200341ff0171220b4107460d00200441e4006a41026a210c200821010340200441e8006a41206a220d200141206a280200360200200441e8006a41186a220e200141186a290200370300200441e8006a41106a220f200141106a290200370300200441e8006a41086a2210200141086a29020037030020042001290200370368200141246a2d00002111200c200141276a2d00003a00002004200141256a2f00003b016420114107460d04200441b8016a41206a200d280200360200200441b8016a41186a200e290300370300200441b8016a41106a200f290300370300200441b8016a41086a2010290300370300200520042f01643b0000200541026a200c2d00003a0000200420042903683703b801200420113a00dc010240200a2002412010ec080d002011200b460d030b200141286a22012009470d000c040b0b200441e4006a41026a2111200821010340200441e8006a41206a220c200141206a280200360200200441e8006a41186a220d200141186a290200370300200441e8006a41106a220e200141106a290200370300200441e8006a41086a220f200141086a29020037030020042001290200370368200141246a2d000021032011200141276a2d00003a00002004200141256a2f00003b016420034107460d03200441b8016a41206a200c280200360200200441b8016a41186a200d290300370300200441b8016a41106a200e290300370300200441b8016a41086a200f290300370300200520042f01643b0000200541026a20112d00003a0000200420042903683703b801200420033a00dc010240200a2002412010ec08450d0020044190016a41206a41002802d8f34036020020044190016a41186a41002902d0f34037030020044190016a41106a41002902c8f340370300200141286a22012009470d010c040b0b20044190016a41206a200441b8016a41206a28020036020020044190016a41186a200441b8016a41186a29030037030020044190016a41106a200441b8016a41106a29030037030020044190016a41086a200441b8016a41086a2903003703002004418c016a41026a200541026a2d00003a0000200420042903b80137039001200420052f00003b018c010c010b20044190016a41206a200441b8016a41206a28020036020020044190016a41186a200441b8016a41186a29030037030020044190016a41106a200441b8016a41106a29030037030020044190016a41086a200441b8016a41086a2903003703002004418c016a41026a200541026a2d00003a0000200420042903b80137039001200420052f00003b018c010b200441c0006a41206a220120044190016a41206a2205280200360200200441c0006a41186a221120044190016a41186a2202290300370300200441c0006a41106a220a20044190016a41106a220c290300370300200441c0006a41086a220920044190016a41086a220d2903003703002004413c6a41026a220e2004418c016a41026a2d00003a00002004200429039001370340200420042f018c013b013c200341ff01714107470d010b41012105410721030c010b200520012802002201360200200220112903002212370300200c200a2903002213370300200d20092903002214370300200441e8006a41026a200e2d00003a0000200441c2016a2014370100200441ca016a2013370100200441d2016a2012370100200441da016a200136010020042004290340221237039001200420042f013c3b0168200420123701ba01410021050b2007410020061b2101200441106a41086a200441b8016a41086a2211290100370300200441106a41106a200441b8016a41106a290100370300200441106a41186a200441b8016a41186a290100370300200441106a411e6a200441b8016a411e6a2901003701002004410c6a41026a2202200441e8006a41026a2d00003a0000200420042901b801370310200420042f01683b010c0240024020050d0020002004290112370104200020042f010c3b0029200041286a20033a0000200041246a200441326a2801003601002000411c6a2004412a6a290100370100200041146a200441226a2901003701002000410c6a2004411a6a2901003701002000412b6a20022d00003a000002402001450d00200141286c450d002008102e0b410021010c010b200441b8016a410310d1022000410c6a2011280200360200200020042903b80137020402402001450d00200141286c450d002008102e0b410121010b20002001360200200441e0016a24000ba80201047f230041c0006b22022400410b210341f6fac000210441072105024002400240024002400240024002400240200141ff01710e09000102030405060708000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a41bc8ccc001044000b4107210341effac0002104410021050c060b41082103418be7c4002104410121050c050b4108210341e7fac0002104410221050c040b41dcfac0002104410321050c030b4109210341d3fac0002104410421050c020b410c210341c284ca002104410521050c010b41c8fac0002104410621050b200041833a3b0100200041086a2003360200200041046a2004360200200041026a20053a0000200241c0006a24000bd20a02057f017e23004190066b22032400200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a29000037030020032001290000370300024002404110102c2204450d00200441f8f7c60036020c2004410136020820044281808080103702004110102c2201450d0020014190f8c60036020c20014101360208200142818080801037020020042004280200417f6a2205360200024020050d002004280208200428020c2802001103000240200428020c280204450d002004280208102e0b200441046a22052005280200417f6a220536020020050d002004102e0b200341d8006a41206a2204200041206a290200370300200341d8006a41186a2205200041186a290200370300200341d8006a41106a2206200041106a290200370300200341d8006a41086a2207200041086a29020037030020032000290200370358200128020041016a220041014d0d0120012000360200200341b0036a41206a2004290300370300200341b0036a41186a2005290300370300200341b0036a41106a2006290300370300200341b0036a41086a2007290300370300200320032903583703b003412c102c2200450d0020002001360200200020032903b0033702042000410c6a200341b8036a290300370200200041146a200341b0036a41106a2903003702002000411c6a200341c8036a290300370200200041246a200341d0036a2903003702004110102c2204450d00200441c0fec60036020c20042000360208200442818080801037020020012001280200417f6a2200360200024020000d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22002000280200417f6a220036020020000d002001102e0b200341d8006a200241b00210e9081a20034188036a411e6a22012003411e6a29010037010020034188036a41186a2200200341186a29030037030020034188036a41106a2202200341106a29030037030020034188036a41086a2205200341086a2903003703002003200329030037038803024002402004280208200341d8006a200428020c28020c1101000d0041022100200341c8006a41023a0000200341286a41186a41003a000020042004280200417f6a2201360200420021082003420037033020034201370328024020010d002004280208200428020c2802001103000240200428020c280204450d002004280208102e0b200441046a22012001280200417f6a220136020020010d002004102e0b200341d8006a10dc02410121010c010b200341b0036a200341d8006a41b00210e9081a200341ea056a2005290300370100200341f2056a2002290300370100200341fa056a2000290300370100200341e0056a41206a200129010037010020034180023b01e00520032003290388033701e2052003200436028806200341286a200341b0036a200341e0056a10dd0220032903284201512101200341286a41206a2d00002100200329033021080b2003200341d0006a2800003600b703200320032900493703b0030240024020010d00410621010c010b200320032800b70336005f200320032903b0033703584106210120084202510d002003200328005f3600b703200320032903583703b003200021010b200320032903b0033703e005200320032800b7033600e705200341b8036a20013a0000200341b9036a20032903e005370000200341c0036a20032800e705360000200341003a00b403200341133a00b003200320032f0088033b00b50320032003418a036a2d00003a00b703200341c4036a200341d8006a41d40010e9081a200341b0036a10fe0120034190066a24000f0b1036000b00000bb10201037f230041e0006b22022400200241086a4190fec6004105108102200241186a41a8dbc8004107108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000ba30b04047f017e0c7f037e230041d0016b220324002003200236021420032001360210200341186a2001200210ed0202400240200328021822040d00200041003602000c010b200328021c21052003200341206a28020036022c20032004360228200341086a200341286a10ab0102400240024020032802080d00024002400240200328020c2206200328022c41286e2201200120064b1bad42287e2207422088a70d002007a72201417f4c0d0002400240024020010d00410421080c010b2001102c2208450d010b200141286e2102024020060d00410021060c030b200341a8016a41017221094100210a4100210b0340200341a8016a200341286a1093010240024020032d00a8014101460d0020034188016a41186a220c200941186a29000037030020034188016a41106a220d200941106a29000037030020034188016a41086a220e200941086a2900003703002003200929000037038801200328022c2201450d002003280228220f2d0000211020032001417f6a221136022c2003200f41016a3602284100211202400240024002400240024020100e0705040001060203060b410221120c040b410321120c030b410521120c020b410621120c010b410121120b20114104490d00200341a8016a41086a200e290300370300200341a8016a41106a200d290300370300200341a8016a41186a200c29030037030020034182016a41026a20034185016a41026a2d00003a000020032003290388013703a801200f280001211320032001417b6a36022c2003200f41056a360228200320032f0085013b0182010c010b410721120b200341e0006a41186a2201200341a8016a41186a290300370300200341e0006a41106a220f200341a8016a41106a290300370300200341e0006a41086a220c200341a8016a41086a290300370300200341dc006a41026a220d20034182016a41026a2d00003a0000200320032903a801370360200320032f0182013b015c024020124107460d00200341386a41186a220e2001290300370300200341386a41106a2210200f290300370300200341386a41086a220f200c290300370300200341346a41026a220c200d2d00003a000020032003290360370338200320032f015c3b01340240200b2002470d00200241016a22012002490d042002410174220d2001200d20014b1b22014104200141044b1bad42287e2207422088a74541027421012007a7210d0240024020020d00200341003602a8010c010b200341043602b001200320083602a8012003200241286c3602ac010b20034188016a200d2001200341a8016a107d200328029001210102402003280288014101470d0020010d040c050b200328028c012108200141286e21020b2008200a6a22012013360200200e290300210720102903002114200f290300211520032903382116200141246a20123a0000200141046a20163702002001410c6a2015370200200141146a20143702002001411c6a2007370200200141256a20032f01343b0000200141276a200c2d00003a0000200a41286a210a2006200b41016a220b460d040c010b0b2002450d04200241286c450d040c030b1036000b1038000b2008450d01200328022c2201410f4b0d022002450d01200241286c450d010b2008102e0b200341003602900120034201370388012003410a3602642003200341106a360260200320034188016a360238200341bc016a4101360200200342013702ac01200341909dc5003602a8012003200341e0006a3602b801200341386a419cebc000200341a8016a103d1a20032802880120032802900110ef020240200328028c01450d00200328028801102e0b200041003602000c010b2000200236020420002008360200200041106a20032802282202290000370300200041086a2006360200200041186a200241086a2900003703002003200141706a36022c2003200241106a3602280b2005450d002004102e0b200341d0016a24000bd70201097f410121044100210502400240024020020e020201000b200341046a21062003280200210720032d002441ff017121084100210503400240024020012002410176220920056a220a41286c6a220b41046a2006412010ec08220c450d00417f4101200c4100481b210c0c010b4100417f200b2d0024220c200847200c2008491b200c2008461b220c0d00417f200b280200220c200747200c2007491b210c0b2005200a200c4101461b2105200220096b220241014b0d000b0b024002402001200541286c6a220c41046a200341046a412010ec082202450d00417f410120024100481b21020c010b02404100417f200c2d0024220220032d002422094720022009491b20022009461b22020d0041ff012102200c280200220c20032802002209490d01200c20094721020b20020d00410021040c010b2005200241ff017141ff01466a21050b20002005360204200020043602000baa0102037f017e230041206b2203240002400240200228020841286c41146a2204417f4c0d002004102c2205450d0120034100360208200320043602042003200536020020022802002002280208200310d802200229031021062003200241186a290300370318200320063703102003200341106a411010742000200120032802002202200328020810b20102402003280204450d002002102e0b200341206a24000f0b1038000b1036000bc40201027f230041106b220224000240411a102c2203450d002002421a37020420022003360200200220012802004110107420022001280204412010742002200128020836020c20022002410c6a410410742002200128020c36020c20022002410c6a41041074024002400240024002400240024020012802102d00000e0700010203060405060b200241003a000c20022002410c6a410110740c050b200241013a000c20022002410c6a410110740c040b200241023a000c20022002410c6a410110740c030b200241033a000c20022002410c6a410110740c020b200241053a000c20022002410c6a410110740c010b200241063a000c20022002410c6a410110740b200220012f01143b010c20022002410c6a41021074200020022802002201200228020810b00102402002280204450d002001102e0b200241106a24000f0b1036000bf90101017f230041106b2203240020012002107602402001450d00200141286c210103402002200041046a412010740240024002400240024002400240200041246a2d00000e0700010203060405060b200341003a000b20022003410b6a410110740c050b200341013a000c20022003410c6a410110740c040b200341023a000d20022003410d6a410110740c030b200341033a000e20022003410e6a410110740c020b200341053a000f20022003410f6a410110740c010b200341063a00032002200341036a410110740b200320002802003602042002200341046a41041074200041286a2100200141586a22010d000b0b200341106a24000bb10201037f230041e0006b22022400200241086a4190fec6004105108102200241186a41afdbc800410d108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000bb10d03047f017e0d7f23004190036b220324002003200236020c20032001360208200341106a2001200210ed020240024002400240200328021022040d00200041003602000c010b200328021421052003200341186a280200360224200320043602202003200341206a10ab0102400240024020032802000d0020032802042206200328022441c4006e2201200120064b1bad42c4007e2207422088a70d052007a72201417f4c0d050240024020010d00410421080c010b2001102c2208450d050b200141c4006e210902400240024020060d00410021060c010b200341a8026a410172210a4100210b0340200341a8026a200341206a10930102400240024020032d00a8024101460d00200b41016a210c200341e8016a41186a220d200a41186a290000370300200341e8016a41106a220e200a41106a290000370300200341e8016a41086a220f200a41086a2900003703002003200a2900003703e80141002101200341003a00c802417f2102200328022421100240034020102001460d01200341a8026a20016a200328022022112d00003a00002003201020026a3602242003201141016a3602202003200141016a22123a00c8022002417f6a21022012210120124120470d000b200341f0026a41186a2201200341a8026a41186a290300370300200341f0026a41106a2202200341a8026a41106a290300370300200341f0026a41086a2213200341a8026a41086a290300370300200320032903a8023703f002201241ff01714120490d0120034188026a41086a2214201329030037030020034188026a41106a2213200229030037030020034188026a41186a22022001290300370300200320032903f00237038802201020126b22014104490d01200341c8016a41086a2212200f290300370300200341c8016a41106a2210200e290300370300200341c8016a41186a220e200d290300370300200341a8016a41086a220d2014290300370300200341a8016a41106a220f2013290300370300200341a8016a41186a22132002290300370300200320032903e8013703c80120032003290388023703a801201128000121022003201141056a36022020032001417c6a36022420034188016a41086a2201201229030037030020034188016a41106a2212201029030037030020034188016a41186a2210200e290300370300200341e8006a41086a2211200d290300370300200341e8006a41106a220d200f290300370300200341e8006a41186a220e2013290300370300200320032903c80137038801200320032903a801370368200341c8006a41186a220f2010290300370300200341c8006a41106a22102012290300370300200341c8006a41086a22122001290300370300200341286a41186a2213200e290300370300200341286a41106a220e200d290300370300200341286a41086a220d2011290300370300200320032903880137034820032003290368370328200b2009470d03200941016a220120094f0d020c0c0b200141ff0171450d00200341003a00c8020b2009450d05200941c4006c0d040c050b200941017422112001201120014b1b22014104200141044b1bad42c4007e2207422088a74541027421012007a721110240024020090d00200341003602a8020c010b200341043602b002200320083602a8022003200941c4006c3602ac020b200341f0026a20112001200341a8026a107d20032802f8022101024020032802f0024101470d002001450d0a0c090b20032802f4022108200141c4006e21090b2008200b41c4006c6a22012002360200200120032903483702042001410c6a2012290300370200200141146a20102903003702002001411c6a200f290300370200200120032903283702242001412c6a200d290300370200200141346a200e2903003702002001413c6a2013290300370200200c210b200c2006470d000b0b2008450d0120032802242201410f4b0d022009450d01200941c4006c450d010b2008102e0b200341003602f802200342013703f0022003410a3602d4022003200341086a3602d0022003200341f0026a36028802200341bc026a4101360200200342013702ac02200341909dc5003602a8022003200341d0026a3602b80220034188026a419cebc000200341a8026a103d1a20032802f00220032802f80210ef02024020032802f402450d0020032802f002102e0b200041003602000c010b2000200936020420002008360200200041106a20032802202202290000370300200041086a2006360200200041186a200241086a2900003703002003200141706a3602242003200241106a3602200b2005450d002004102e0b20034190036a24000f0b1036000b1038000bc10102047f017e230041206b22032400024002402002280208220441c4006c41146a2205417f4c0d000240024020050d00410121060c010b2005102c2206450d02200228020821040b200341003602082003200536020420032006360200200228020020042003109505200229031021072003200241186a290300370318200320073703102003200341106a411010742000200120032802002202200328020810b20102402003280204450d002002102e0b200341206a24000f0b1038000b1036000b802401047f024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002802000e1b00010218180304051806070818090a0b0c0d0e0f10111213141516170b0240024002400240024002400240200041086a2802000e0a1e1e001e01021e030405060b200041106a280200450d1d2000410c6a280200102e0f0b200041106a280200450d1c2000410c6a280200102e0f0b200041106a280200450d1b2000410c6a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141186c210103400240200241046a280200450d002002280200102e0b0240200241106a280200450d002002410c6a280200102e0b200241186a2102200141686a22010d000b0b200041106a2802002202450d1a200241186c450d1a200028020c102e0f0b0240200041146a2802002201450d002000410c6a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041106a2802002202450d192002410c6c450d19200028020c102e0f0b200041106a280200450d182000410c6a280200102e0f0b200041106a280200450d172000410c6a280200102e0f0b0240024002400240024020002d00040e061b001b010203040b200041186a220228020010dc022002280200102e0f0b02402000410c6a280200450d00200041086a280200102e0b200041246a220228020010dc022002280200102e0f0b2000410c6a280200450d18200041086a280200102e0f0b200041186a220228020010dc022002280200102e0f0b02402000410c6a280200450d00200041086a280200102e0b200041246a220228020010dc022002280200102e0f0b02400240200041086a280200417f6a0e020001170b2000412c6a220110e1010240200041306a2802002202450d00200241246c450d002001280200102e0b2000419c016a220110e1010240200041a0016a2802002202450d00200241246c450d002001280200102e0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d162002410c6c450d162000280210102e0f0b2000412c6a220110e1010240200041306a2802002202450d00200241246c450d002001280200102e0b2000419c016a220110e1010240200041a0016a2802002202450d00200241246c450d002001280200102e0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d152002410c6c450d152000280210102e0f0b0240024002400240200041086a2802000e0418000102030b2000410c6a2d00004102470d17200041146a280200450d17200041106a280200102e0f0b2000410c6a2d00004102470d16200041146a280200450d16200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004102470d15200041386a280200450d15200041346a280200102e0f0b2000410c6a2d00004102470d14200041146a280200450d14200041106a280200102e0f0b02402000410c6a2802002201450d0020002802042202200141f0006c6a21030340024020022204410c6a2802002201450d0020042802042102200141246c210103400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200441f0006a21020240200441086a2802002201450d00200141246c450d002004280204102e0b20022003470d000b0b200041086a2802002202450d13200241f0006c450d132000280204102e0f0b024002400240024002400240200041086a2d00000e171800181818180118180218181818180318180418181818050b2000412c6a2d00004102470d17200041346a280200450d17200041306a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141246c21010340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200041106a2802002202450d16200241246c450d16200028020c102e0f0b2000410c6a2d00004102470d15200041146a280200450d15200041106a280200102e0f0b200041106a28020041ffffff3f71450d142000410c6a280200102e0f0b200041146a28020041ffffffff0371450d13200041106a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141246c21010340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200041106a2802002202450d12200241246c450d12200028020c102e0f0b20002802042202450d11200041086a280200450d112002102e0f0b02400240200041086a280200417f6a0e020001120b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d112002410c6c450d112000280210102e0f0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d102002410c6c450d102000280210102e0f0b02402000410c6a280200450d00200041086a280200102e0b02402000411c6a2802002201450d00200041146a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041186a2802002202450d0f2002410c6c450d0f2000280214102e0f0b0240024002400240200041086a2d000041716a0e0400010203120b200041106a280200450d112000410c6a280200102e0f0b200041106a280200450d102000410c6a280200102e0f0b200041106a280200450d0f2000410c6a280200102e0f0b200041106a280200450d0e2000410c6a280200102e0f0b024002400240200041086a2d0000417f6a0e03000102100b200041306a28020041ffffff3f71450d0f2000412c6a280200102e0f0b2000410c6a220228020010dc022002280200102e0f0b200041106a220228020010dc022002280200102e0f0b024002400240200041086a2d0000417f6a0e030001020f0b200041306a28020041ffffff3f71450d0e2000412c6a280200102e0f0b2000410c6a220228020010dc022002280200102e0f0b200041106a220228020010dc022002280200102e0f0b02400240200041086a2d0000417f6a0e05000d0d0d010d0b200041106a28020041ffffff3f71450d0c2000410c6a280200102e0f0b2000410c6a2d00004102470d0b200041146a280200450d0b200041106a280200102e0f0b20002d00044104470d0a2000410c6a28020041ffffff3f71450d0a200041086a280200102e0f0b200041086a2802004101470d092000410c6a2d00004102470d09200041146a280200450d09200041106a280200102e0f0b02400240200041086a2d0000417d6a0e0200010a0b200041f0006a280200450d09200041ec006a280200102e0f0b200041106a280200450d082000410c6a280200102e0f0b024002400240200041086a2802000e040a0a0001020b2000410c6a2d00004102470d09200041146a280200450d09200041106a280200102e0f0b2000410c6a2d00004102470d08200041146a280200450d08200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004102470d07200041386a280200450d07200041346a280200102e0f0b02400240024020002f01040e03090001020b0240200041106a2802002201450d00200041086a2802002102200141b0026c210103402002109601200241b0026a2102200141d07d6a22010d000b0b2000410c6a2802002202450d08200241b0026c450d082000280208102e0f0b200041086a220228020010dc022002280200102e0f0b0240200041106a2802002201450d00200041086a2802002102200141b0026c210103402002109601200241b0026a2102200141d07d6a22010d000b0b2000410c6a2802002202450d06200241b0026c450d062000280208102e0f0b0240024002400240024002400240200041086a2d0000417e6a0e0d00010c0c0c0c0c0c02030405060c0b0240200041146a2802002201450d002000410c6a2802002202200141c8006c6a21010340024020022d00004101470d00200241086a280200450d00200241046a280200102e0b0240200241246a2d00004101470d002002412c6a280200450d00200241286a280200102e0b200241c8006a22022001470d000b0b0240200041106a2802002202450d00200241c8006c450d00200028020c102e0b0240200041186a2d00004101470d00200041206a280200450d002000411c6a280200102e0b02402000413c6a2d00004101470d00200041c4006a280200450d00200041c0006a280200102e0b0240200041e0006a2d00004101470d00200041e8006a280200450d00200041e4006a280200102e0b024020004184016a2d00004101470d002000418c016a280200450d0020004188016a280200102e0b0240200041a8016a2d00004101470d00200041b0016a280200450d00200041ac016a280200102e0b0240200041cc016a2d00004101470d00200041d4016a280200450d00200041d0016a280200102e0b200041f0016a2d00004101470d0b200041f8016a280200450d0b200041f4016a280200102e0f0b0240200041146a2802002202450d00200241c4006c21012000410c6a28020041286a210203400240200241786a2d00004101470d002002280200450d002002417c6a280200102e0b200241c4006a2102200141bc7f6a22010d000b0b200041106a2802002202450d0a200241c4006c450d0a200028020c102e0f0b200041106a2d00004102470d09200041186a280200450d09200041146a280200102e0f0b2000410c6a2d00004102470d08200041146a280200450d08200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004101470d07200041386a280200450d07200041346a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004101470d06200041386a280200450d06200041346a280200102e0f0b2000410c6a2d00004102470d05200041146a280200450d05200041106a280200102e0f0b20002d00042202417e6a4108490d040240024020020e020600010b200041286a220228020010dc022002280200102e0f0b200041c8006a220228020010dc022002280200102e0f0b0240024002400240200041086a2d00000e0407000102030b0240200041106a28020041ffffff3f71450d002000410c6a280200102e0b200041186a220228020010dc022002280200102e0f0b0240200041106a28020041ffffff3f71450d002000410c6a280200102e0b200041286a280200450d05200041246a280200102e0f0b200041306a28020041ffffff3f71450d042000412c6a280200102e0f0b200041306a28020041ffffff3f71450d032000412c6a280200102e0f0b0240024002400240200041086a2802000e09060006010606020606030b200041106a280200450d052000410c6a280200102e0f0b200041106a2d00004102470d04200041186a280200450d04200041146a280200102e0f0b200041106a2d00004102470d03200041186a280200450d03200041146a280200102e0f0b200041146a280200450d02200041106a280200102e0f0b02400240200041086a2d0000417f6a0e03000301030b200041306a280200450d022000412c6a280200102e0c020b200041306a280200450d012000412c6a280200102e0f0b200041386a109b060f0b0be5890505077f077e147f0b7e037f230041f0176b22032400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802000e1c0203040506070809010a0b0c010d0e0f10363534333231302f2e2d00020b20014184026a280200210420014180026a280200210520022d0001210620022d000021072002280228210220034190136a200141086a41f80110e9081a20022002280200417f6a2201360200024002400240024020070d00024020010d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b200641ff01714102470d01200341e9003602d408200341fee7c7003602d008200341e0106a20034190136a10b80620032d00e0104106470d2f200341c0066a22014200370300200341a8066a41106a22024200370300200341a8066a41086a22074200370300200342003703a806200341e8056a41a5fec600411a1081022007200341e8056a41086a290300370300200320032903e8053703a806200341a8046a41ccc5c80041101081022001200341a8046a41086a290300370300200220032903a804370300200341203602b40a2003200341a8066a3602b00a200341b00e6a200341a8066a412010ed0220032802b00e22070d02410021060c030b20010d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b200341c0136a109b06200320032800f0063602e8062003200341f3066a2800003600eb06200041186a41003a000020004200370308200020032802e8063600192000411c6a20032800eb06360000200041206a41023a0000200042013703000c640b20032802b40e21082003200341b00e6a41086a2802003602840c200320073602800c200341a0046a200341800c6a10ab0102400240024020032802a0040d0020032802a404210120034198046a200341800c6a10ab01200328029804450d010b41002106200341003602e810200342013703e0102003410a3602ac042003200341b00a6a3602a8042003200341e0106a3602e805200341d4156a4101360200200342013702c415200341909dc5003602c0152003200341a8046a3602d015200341e8056a419cebc000200341c0156a103d1a20032802e01020032802e81010ef02024020032802e410450d0020032802e010102e0b0c010b200328029c042109410121060b2008450d002007102e0b2006450d2a20012005470d2920092004470d28200341c0156a20034190136a41f80110e9081a200341e0106a200341c0156a10b90620032802e0104101460d12200341b00e6a41386a2201200341a0116a290300370300200341b00e6a41306a200341e0106a41386a290300220a370300200341b00e6a41286a200341e0106a41306a290300220b370300200341b00e6a41206a200341e0106a41286a290300220c370300200341b00e6a41186a200341e0106a41206a290300220d370300200341b00e6a41106a200341e0106a41186a290300220e370300200341b00e6a41086a200341e0106a41106a290300220f3703002003200341e0106a41086a29030022103703b00e200341c0156a41306a2207200a370300200341c0156a41286a200b370300200341c0156a41206a200c370300200341c0156a41186a200d370300200341c0156a41106a200e370300200341c0156a41086a200f370300200341c0156a41386a2001290300370300200320103703c015200341a8066a41186a4200370300200341a8066a41106a4200370300200341a8066a41086a22014200370300200342003703a806200341e8056a41a5fec600411a1081022001200341e8056a41086a290300370300200320032903e8053703a806200341a8046a4184c4c800410e108102200241086a200341a8046a41086a290300370300200220032903a804370300200341003602e810200342013703e0102007200341e0106a10b901200341e0106a200341c0156a41301074024002400240024020032d00fc150e03000102030b200341003a00a804200341e0106a200341a8046a410110740c020b200341013a00a804200341e0106a200341a8046a410110740c010b200341023a00a804200341e0106a200341a8046a410110740b200341a8066a412020032802e010220220032802e81010b201024020032802e410450d002002102e0b20032802f01521060240200341f8156a2802002202450d0020024106742101200641346a21020340024020022802002207450d00200741306c450d002002417c6a280200102e0b200241c0006a2102200141406a22010d000b0b0240200341f4156a28020041ffffff1f71450d002006102e0b20034180043b01c415200341173a00c015200341c0156a10fe01200320032800f0063602e8062003200341f3066a2800003600eb06200041186a41003a000020004200370308200020032802e8063600192000411c6a20032800eb06360000200042003703000c620b000b2001410c6a2802002108200141106a290300210a200141086a280200210120034190136a41286a2207200241286a28020036020020034190136a41206a2206200241206a29020037030020034190136a41186a2204200241186a29020037030020034190136a41106a2205200241106a29020037030020034190136a41086a2209200241086a2902003703002003200229020037039013200aa72111200a422088a7211202400240024002400240024002400240024002402001417f6a0e0a00010203040506070809000b200341c0156a41286a2007280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c0150240200341c0156a10a705450d00200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200041206a41023a0000200042013703000c6a0b200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200042003703000c690b200341c0156a41286a2007280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c015200341e0106a200341c0156a10c102024020032d00e0104101470d0002402011450d002008102e0b200320032800b00e3602800c2003200341b30e6a2800003600830c200041186a41003a000020004200370308200020032802800c3600192000411c6a20032800830c360000200041206a41023a0000200042013703000c690b02402011450d002008102e0b200320032800b00e3602800c2003200341b30e6a2800003600830c200041186a41003a000020004200370308200020032802800c3600192000411c6a20032800830c360000200042003703000c680b200341c0156a41286a2007280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c0150240200341c0156a10a705450d00200320032800b00e3602800c2003200341b30e6a2800003600830c200041186a41003a000020004200370308200020032802800c3600192000411c6a20032800830c360000200041206a41023a0000200042013703000c680b4108102c2202450d64200342083702c415200320023602c0152003200a3703e010200341c0156a200341e0106a4108107441dcc1cb00410a20032802c015220220032802c81510b201024020032802c415450d002002102e0b200320032800b00e3602800c2003200341b30e6a2800003600830c200041186a41003a000020004200370308200020032802800c3600192000411c6a20032800830c360000200042003703000c670b200341c0156a41286a2007280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c0150240200341c0156a10a705450d00410221060c660b200341b00e6a2008201210ba0620032802b00e2202450d6420032802b40e21012003200341b80e6a2802003602840c200320023602800c200341106a200341800c6a10ab010240024020032802100d0020032802840c220720032802142206490d002006417f4c0d510240024020060d00410121040c010b200610322204450d6620032802840c21070b024020072006490d00200420032802800c200610e908210920032802840c22072006490d182003200720066b3602840c200320032802800c20066a3602800c200341086a200341800c6a10ab01024020032802080d0020032802840c2207200328020c2205490d002005417f4c0d530240024020050d00410121130c010b200510322213450d6820032802840c21070b024020072005490d00201320032802800c200510e908211420032802840c22072005490d192003200720056b22073602840c200320032802800c20056a22153602800c024020074104490d002003201541046a3602800c20032007417c6a22163602840c20164104490d00201528000421172003201541086a3602800c2003200741786a22163602840c20164104490d002003200741746a3602840c20032015410c6a3602800c2003200341800c6a10ab0120032802000d002003280204221520032802840c410c6e2207200720154b1bad420c7e220a422088a70d55200aa72207417f4c0d550240024020070d00410421160c010b2007102c2216450d6a0b2007410c6ead210a02400240024002402015450d000340200341c0156a200341800c6a10a50120032d00c0154101460d0320032802840c22074104490d0320032900c115210b20032802800c2218280000211920032007417c6a3602840c2003201841046a3602800c0240200a422088a72207200aa7470d00200741016a22182007490d5b2007410174221a20182018201a491b22184104201841044b1bad420c7e220c422088a7454102742118200ca7211a0240024020070d00200341003602c0150c010b200341043602c815200320163602c01520032007410c6c3602c4150b200341e0106a201a2018200341c0156a107d20032802e810211820032802e0104101460d0320032802e4102116200a428080808070832018410c6ead84210a0b20162007410c6c6a220720193602082007200b370200200a4280808080107c210a2015417f6a22150d000b0b2016450d03200aa7211520032802840c41034b0d082015450d032015410c6c0d020c030b2018450d570c6b0b200aa72207450d012007410c6c450d010b2016102e0b2005450d010b2013102e0b2006450d010b2004102e0b2001450d652002102e0c650b02402001450d002002102e0b02400240024020064108470d000240200929000042f0deb1db968cd9b7f400510d00410021074180c2cb002101410f21020c020b02402017411f4f0d004101210741e6c1cb002101411a21020c020b2009102e02402005450d002014102e0b02402015450d002015410c6c450d002016102e0b41acc2cb0041052008201210b201200341c8156a41023a0000200341003a00c015200341c0156a10fe0102402011450d002008102e0b200320032800b00a3602d0082003200341b30a6a2800003600d308200041186a41003a000020004200370308200020032802d0083600192000411c6a20032800d308360000200042003703000c690b410021074180c2cb002101410f21022006450d010b2009102e0b02402005450d002014102e0b410321062015450d652015410c6c450d652016102e0c650b200341c0156a41286a2007280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c0150240200341c0156a10a705450d0002402011450d002008102e0b200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200041206a41023a0000200042013703000c660b41acc2cb0041052008201210b201200341c8156a41023a0000200341003a00c015200341c0156a10fe0102402011450d002008102e0b200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200042003703000c650b200341c0156a41286a2007280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c015200341c0156a10a7050d290240024020084101460d0041b1c2cb00410d10ff010c010b200341003602c815200342013703c015200320113602800c200341c0156a200341800c6a41041074200320123602800c200341c0156a200341800c6a4104107441b1c2cb00410d20032802c015220220032802c81510b20120032802c415450d002002102e0b200341cc156a2012360200200341c8156a2011360200200320083602c415200341043a00c015200341c0156a10a504200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200042003703000c640b200341c0156a41286a2007280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c0150240200341c0156a10a7050d0002402012450d002008201241186c6a21012008210203402002280200200241086a2802002002410c6a280200200241146a28020010b201200241186a22022001470d000b2012450d00201241186c21012008210203400240200241046a280200450d002002280200102e0b0240200241106a280200450d002002410c6a280200102e0b200241186a2102200141686a22010d000b0b02402011450d00201141186c450d002008102e0b200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200042003703000c640b02402012450d00201241186c21012008210203400240200241046a280200450d002002280200102e0b0240200241106a280200450d002002410c6a280200102e0b200241186a2102200141686a22010d000b0b02402011450d00201141186c450d002008102e0b200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200041206a41023a0000200042013703000c630b200341c0156a41286a2007280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c0150240200341c0156a10a7050d0002402012450d0020082012410c6c6a21012008210203402002280200200241086a28020010ff012002410c6a22022001470d000b2012450d002012410c6c21012008210203400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b02402011450d002011410c6c450d002008102e0b200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200042003703000c630b02402012450d002012410c6c21012008210203400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b02402011450d002011410c6c450d002008102e0b200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200041206a41023a0000200042013703000c620b200341c0156a41286a2007280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c0150240200341c0156a10a705450d0002402011450d002008102e0b200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200041206a41023a0000200042013703000c620b2008201210890302402011450d002008102e0b200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200042003703000c610b200341c0156a41286a2007280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c015200341e0106a200341c0156a10c102200341c8066a41086a200341e0106a41096a290000370300200341c8066a41106a200341e0106a41116a290000370300200341c8066a41186a200341e0106a41196a290000370300200320032900e1103703c806024020032d00e0104101470d0002402011450d002008102e0b200320032800ab043600f30b200320032802a8043602f00b200041186a41003a000020004200370308200020032802f00b3600192000411c6a20032800f30b360000200041206a41023a0000200042013703000c610b200341900a6a41186a2202200341c8066a41186a290300370300200341900a6a41106a2201200341c8066a41106a290300370300200341900a6a41086a2207200341c8066a41086a290300370300200320032903c8063703900a200341a8066a2008201210b001200341e0106a41186a2206200341a8066a41186a290300370300200341e0106a41106a2204200341a8066a41106a290300370300200341e0106a41086a2205200341a8066a41086a290300370300200320032903a8063703e010200341c0156a41086a41053a0000200341c0156a41096a20032903900a370000200341c0156a41116a2007290300370000200341c0156a41196a2001290300370000200341e1156a2002290300370000200341e9156a20032903e010370000200341f1156a2005290300370000200341f9156a200429030037000020034181166a2006290300370000200341003a00c015200341c0156a10fe0102402011450d002008102e0b200320032800ab043600f30b200320032802a8043602f00b200041186a41003a000020004200370308200020032802f00b3600192000411c6a20032800f30b360000200042003703000c600b20034190136a41206a200141246a28020036020020034190136a41186a2001411c6a29020037030020034190136a41106a200141146a29020037030020034190136a41086a2001410c6a2902003703002003200129020437039013200341c0156a41286a200241286a280200360200200341c0156a41206a200241206a290200370300200341c0156a41186a200241186a290200370300200341c0156a41106a200241106a290200370300200341c0156a41086a200241086a290200370300200320022902003703c015200020034190136a200341c0156a10d5040c5f0b200141346a2802002115200141306a28020021122001412c6a2802002118200141286a2802002117200141206a290200210a2001411c6a280200211a200141186a2802002106200141146a2802002107200141106a28020021162001410c6a280200211b200141086a2802002104200341800c6a200141386a41e40010e9081a200141a4016a2802002114200141a0016a28020021132001419c016a2802002119200341e0106a200141a8016a41800110e9081a200341d0086a41286a2201200241286a280200360200200341d0086a41206a2205200241206a290200370300200341d0086a41186a2209200241186a290200370300200341d0086a41106a2208200241106a290200370300200341d0086a41086a2211200241086a290200370300200320022902003703d008024002400240024020040e0400010203000b200341c0156a41146a4101360200200342013702c4152003419cc3cb003602c015200341043602ac04200341a4a7c7003602a8042003200341a8046a3602d015200341c0156a4190afc4001044000b200341b00e6a200341800c6a41e40010e9081a20034190136a200341e0106a41800110e9081a200341c0156a41286a2001280200360200200341c0156a41206a2005290300370300200341c0156a41186a2009290300370300200341c0156a41106a2008290300370300200341c0156a41086a2011290300370300200320032903d0083703c015200341f0066a200341c0156a10c102200341a8066a41086a200341f9066a2202290000370300200341a8066a41106a20034181076a2201290000370300200341a8066a41186a20034189076a2204290000370300200320032900f1063703a80602400240024020032d00f0064101470d00200341d00a6a41023a0000200341c80a6a41003a0000200342003703b80a200342013703b00a02402006450d002006410c6c21012016210203400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b02402007450d002007410c6c450d002016102e0b02402015450d00201541246c21012018210203400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b02402012450d00201241246c450d002018102e0b02402014450d00201441246c21012019210203400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b02402013450d00201341246c450d002019102e0b200341b80a6a210241002106410221040c010b200341c8066a41186a200341a8066a41186a290300220b370300200341c8066a41106a200341a8066a41106a290300220c370300200341c8066a41086a200341a8066a41086a290300220d370300200320032903a806220e3703c8062004200b3700002001200c3700002002200d3700002003200e3700f106200341013a00f006200341d4156a2015360200200341c0156a41106a2012360200200341c0156a410c6a2018360200200320173602c8152003200a3703c015200341c0156a41186a200341b00e6a41e40010e9081a200341c4166a2014360200200341c0156a4180016a2013360200200341bc166a2019360200200341c8166a20034190136a41800110e9081a200341a8046a410c6a2006360200200341a8046a41086a20073602002003201a3602b804200320163602ac042003201b3602a804200341b00a6a200341f0066a200341c0156a200341a8046a10990420032903b00a4201520d01200341b00a6a41086a2102200341d00a6a2d0000210420032d00c80a21060b200320022800113602b0082003200241146a2800003600b30820022f0019210120022d001b2107200229001c210a2002280224210220032903b80a210b20032903c00a210c200041186a20063a0000200041106a200c3703002000200b370308200020032802b0083600192000411c6a20032800b3083600002000412c6a20023602002000200a370024200020073a0023200020013b0021200041206a20043a0000200042013703000c610b200320032800c90a3602b0082003200341b00a6a411c6a2800003600b30820032903b80a210a20032903c00a210b200041186a20032d00c80a3a0000200041106a200b3703002000200a370308200020032802b0083600192000411c6a20032800b308360000200042003703000c600b200341b00e6a200341800c6a41e40010e9081a20034190136a200341e0106a41800110e9081a200341c0156a41286a2001280200360200200341c0156a41206a2005290300370300200341c0156a41186a2009290300370300200341c0156a41106a2008290300370300200341c0156a41086a2011290300370300200320032903d0083703c015024002400240200341c0156a10bb06450d00200341d00a6a41023a0000200341c80a6a41003a0000200342003703b80a200342013703b00a02402006450d002006410c6c21012016210203400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b02402007450d002007410c6c450d002016102e0b02402015450d00201541246c21012018210203400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b02402012450d00201241246c450d002018102e0b02402014450d00201441246c21012019210203400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b02402013450d00201341246c450d002019102e0b200341b80a6a210241002106410221040c010b200341c0156a10e20420034189076a200341c0156a41186a220229030037000020034181076a200341c0156a41106a2201290300370000200341f9066a200341c0156a41086a290300370000200341013a00f006200320032903c0153700f106200341d4156a201536020020012012360200200341c0156a410c6a2018360200200320173602c8152003200a3703c0152002200341b00e6a41e40010e9081a200341c4166a2014360200200341c0156a4180016a2013360200200341bc166a2019360200200341c8166a20034190136a41800110e9081a200341a8046a410c6a2006360200200341a8046a41086a20073602002003201a3602b804200320163602ac042003201b3602a804200341b00a6a200341f0066a200341c0156a200341a8046a10990420032903b00a4201520d01200341b00a6a41086a2102200341d00a6a2d0000210420032d00c80a21060b200320022800113602e8052003200241146a2800003600eb0520022f0019210120022d001b2107200229001c210a2002280224210220032903b80a210b20032903c00a210c200041186a20063a0000200041106a200c3703002000200b370308200020032802e8053600192000411c6a20032800eb053600002000412c6a20023602002000200a370024200020073a0023200020013b0021200041206a20043a0000200042013703000c600b200320032800c90a3602e8052003200341b00a6a411c6a2800003600eb0520032903b80a210a20032903c00a210b200041186a20032d00c80a3a0000200041106a200b3703002000200a370308200020032802e8053600192000411c6a20032800eb05360000200042003703000c5f0b200341c0156a41286a2001280200360200200341c0156a41206a2005290300370300200341c0156a41186a2009290300370300200341c0156a41106a2008290300370300200341c0156a41086a2011290300370300200320032903d0083703c0150240200341c0156a10a705450d00200320032800f3063600eb06200320032802f0063602e806200041186a41003a000020004200370308200020032802e8063600192000411c6a20032800eb06360000200041206a41023a0000200042013703000c5f0b2003200a3703d0152003201a3602cc15200320063602c815200320073602c415200320163602c015200341c0156a10ed04200320032802f0063602e806200320032800f3063600eb06200041186a41003a000020004200370308200020032802e8063600192000411c6a20032800eb06360000200042003703000c5e0b200141086a290300210a200341c0156a41286a200241286a280200360200200341c0156a41206a200241206a290200370300200341c0156a41186a200241186a290200370300200341c0156a41106a200241106a290200370300200341c0156a41086a200241086a290200370300200320022902003703c01502400240200341c0156a10bb060d00200341a8066a41186a22024200370300200341a8066a41106a22014200370300200341a8066a41086a22074200370300200342003703a806200341e8056a41e8fcc60041091081022007200341e8056a41086a290300370300200320032903e8053703a806200341a8046a41d48ec90041091081022002200341a8046a41086a290300370300200120032903a804370300200341a8066a4120108f020d23200341c0066a22074200370300200341b8066a22064200370300200341a8066a41086a22024200370300200342003703a806200341e8056a41e8fcc60041091081022002200341e8056a41086a2204290300370300200320032903e8053703a806200341a8046a41b08ec9004103108102200141086a2205200341a8046a41086a2209290300370300200120032903a804370300200341286a200341a8066a1085032003280228450d012003290330220b500d01200b42b8177c200a580d0141f4d6c80041ce0041c4d7c8001039000b200320032800f3063600eb06200320032802f0063602e806200041186a41003a000020004200370308200020032802e8063600192000411c6a20032800eb06360000200041206a41023a0000200042013703000c5e0b200742003703002006420037030020024200370300200342003703a806200341e8056a41e8fcc600410910810220022004290300370300200320032903e8053703a806200341a8046a41b08ec900410310810220052009290300370300200120032903a8043703002003200a3703c015200341a8066a4120200341c0156a410810b201200742003703002006420037030020024200370300200342003703a806200341e8056a41e8fcc600410910810220022004290300370300200320032903e8053703a806200341a8046a41d48ec900410910810220052009290300370300200120032903a804370300200341013a00a804200341a8066a4120200341a8046a410110b201200742003703002006420037030020024200370300200342003703a806200341e8056a41a8f8c600410410810220022004290300370300200320032903e8053703a806200341a8046a41c98bc500410b10810220052009290300370300200120032903a804370300200341186a200341a8066a1085032003290320420020032802181b200a42f02e80520d20200320032800f3063600eb06200320032802f0063602e806200041186a41003a000020004200370308200020032802e8063600192000411c6a20032800eb06360000200042003703000c5d0b200341f0066a41086a22082001411d6a290000370300200320012900153703f0062001410d6a290000210b200141286a2802002111200141056a290000210a20012d0004210720012d0025211220034190136a41286a2201200241286a28020036020020034190136a41206a2206200241206a29020037030020034190136a41186a2204200241186a29020037030020034190136a41106a2205200241106a29020037030020034190136a41086a2209200241086a2902003703002003200229020037039013200a421888a7210202400240024002400240024020070e06000102030405000b200341d4156a4101360200200342013702c4152003419cc3cb003602c015200341043602ac0420034194c3cb003602a8042003200341a8046a3602d015200341c0156a41e89bc4001044000b200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c015200341e0106a200341c0156a10c102200341900a6a41086a200341e9106a290000370300200341900a6a41106a200341f1106a290000370300200341900a6a41186a200341f9106a290000370300200320032900e1103703900a02400240024020032d00e0104101460d00200341b00e6a41186a200341900a6a41186a290300370300200341b00e6a41106a200341900a6a41106a290300370300200341b00e6a41086a200341900a6a41086a290300370300200320032903900a3703b00e200341800c6a200210ff03200341c0156a20032802800c220420032802880c220610b205200341a8066a41086a2205200341c0156a41186a290300370300200341a8066a41106a2209200341e0156a290300370300200341a8066a41186a2208200341e8156a290300370300200320032903d0153703a806200320032800f1153602a8042003200341f4156a2800003600ab04200341c0156a41086a290300210a20032903c015210b024020032d00f015220741024622010d00200341c8066a41186a2008290300370300200341c8066a41106a2009290300370300200341c8066a41086a2005290300370300200320032903a8063703c806200320032802a8043602f00b200320032800ab043600f30b0b0240024020010d00200341e0106a410310bc060c010b200341c8066a41186a200341b00e6a41186a290300370300200341c8066a41106a200341b00e6a41106a290300370300200341c8066a41086a200341b00e6a41086a290300370300200320032903b00e3703c8064200210a4280d0dbc3f402210b200341e0106a200341b00e6a4280d0dbc3f402420010c302410021070b20032d00e01022014106470d01200341f4156a20032800f30b360000200341c0156a41186a200341c8066a41086a290300370300200341e0156a200341c8066a41106a290300370300200341e8156a2201200341c8066a41186a2903003703002003200b3703c015200320032903c8063703d015200320073a00f015200320032802f00b3600f1152003200a3703c81520042006200341c0156a10c605024020032802840c450d002004102e0b20012002360200200341cd156a200341b00e6a41086a290300370000200341d5156a200341b00e6a41106a290300370000200341dd156a200341b00e6a41186a290300370000200341003a00c415200341023a00c015200320032903b00e3700c515200341c0156a10fe01200041186a41003a000020004200370308200020032800e8053600192000411c6a200341eb056a280000360000200042003703000c630b410221010c010b20032902e410210a20032d00e310210620032d00e210210720032d00e110210220032802840c450d002004102e0b2000200a370024200020063a0023200020073a0022200020023a002120004200370308200041206a20013a0000200041186a41003a0000200042013703000c600b200341800c6a41186a20082903003703002003200b3703880c2003200a3703800c200320032903f0063703900c200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c015200341e0106a200341c0156a10c102200341a8066a41086a200341e9106a290000370300200341a8066a41106a200341f1106a290000370300200341a8066a41186a200341f9106a290000370300200320032900e1103703a80620032d00e0104101460d21200341b00e6a41186a200341a8066a41186a290300370300200341b00e6a41106a200341a8066a41106a290300370300200341b00e6a41086a200341a8066a41086a290300370300200320032903a8063703b00e0240200341b00e6a200341800c6a412010ec08450d00200341900a6a201110ff03200341c0156a20032802900a220120032802980a220710b205200341b00a6a41086a200341e8156a290300370300200320032903e0153703b00a200320032800f1153602a8042003200341f4156a2800003600ab04200341c0156a41186a290300210a20032903d015210b20032903c815210c20032903c015210d024020032d00f015220641024622020d00200341d0086a41086a200341b00a6a41086a290300370300200320032903b00a3703d008200320032802a8043602f00b200320032800ab043600f30b0b200341a8046a41086a2204200341d0086a41086a290300370300200320032903d0083703a80420020d21200341e8056a41086a2004290300220e370300200320032903a804220f3703e805200341d8156a200e3703002003200a3703c8152003200b3703c0152003200f3703d01502402006410171450d00200341e0106a410510bc060c580b0240200341c0156a200341b00e6a412010ec08450d00200341e0106a410210bc060c580b200341e0106a200341b00e6a200341800c6a200d200c4101108904200341e0106a41086a290300210e024020032802e0104101460d00200341f0106a290300210a200341d0086a41086a200341980c6a290300370300200320032903900c3703d008200341063a00e0104200200c200a7d200d200e54ad7d220a200d200e7d220b200d56200a200c56200a200c511b22021b210c4200200b20021b210d20032903880c210a20032903800c210b41002102410021060c590b20032802e41021022003200e3702e410200320023602e0100c570b200341b0086a410410bc0620032d00b0084106460d590c5b0b200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c015200341e0106a200341c0156a10c102200341a8066a41086a200341e9106a290000370300200341a8066a41106a200341f1106a290000370300200341a8066a41186a200341f9106a290000370300200320032900e1103703a80620032d00e0104101460d1c200341b00e6a41186a200341a8066a41186a290300370300200341b00e6a41106a200341a8066a41106a290300370300200341b00e6a41086a200341a8066a41086a290300370300200320032903a8063703b00e200341800c6a200210ff03200341c0156a20032802800c220520032802880c220710b205200341b00a6a41086a2206200341e8156a290300370300200320032903e0153703b00a200341c0156a41186a290300210a20032903d015210b20032903c815210c20032903c015210d024020032d00f015220441024622010d00200341d0086a41086a2006290300370300200320032903b00a3703d0080b200341a8046a41086a200341d0086a41086a290300370300200320032903d0083703a80420010d1e200341e8056a41086a200341a8046a41086a290300220e370300200320032903a804220f3703e805200341d8156a200e3703002003200a3703c8152003200b3703c0152003200f3703d01502402004410171450d00200341e0106a410510bc060c510b200341c0156a200341b00e6a412010ec08450d1d200341e0106a410210bc060c500b200341d0086a41086a2008290300370300200320032903f0063703d008200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c015200341c0156a10a7050d1a200341e0106a201110ff03200341c0156a20032802e010220220032802e810220110b205200341e8056a41086a2206200341e8156a290300370300200320032903e0153703e805200320032800f1153602a8042003200341f4156a2800003600ab04200341d8156a290300210c20032903d015210d20032903c815210e20032903c015210f024020032d00f01541024622070d00200341b00a6a41086a2006290300370300200320032903e8053703b00a200320032802a8043602f00b200320032800ab043600f30b0b200341a8046a41086a200341b00a6a41086a290300370300200320032903b00a3703a804024020070d00200341d8156a200341b0046a290300370300200320032903a8043703d0152003200d3703c0152003200c3703c815200341c8006a200341c0156a200f200e10fb010b200341c0156a41186a200b370300200341e0156a20032903d008370300200341f4156a20032800f30b360000200341e8156a2207200341d8086a22062903003703002003200a3703d015200342003703c815200342003703c015200320123a00f015200320032802f00b3600f11520022001200341c0156a10c605024020032802e410450d002002102e0b200341cd156a200b370000200341d5156a20032903d00837000020072011360200200341dd156a20062903003700002003200a3700c515200341003a00c415200341023a00c015200341c0156a10fe01200041186a41003a000020004200370308200020032800e8063600192000411c6a200341eb066a280000360000200042003703000c5d0b200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a200929030037030020032003290390133703c015200341e0106a200341c0156a10c102200341a8066a41086a200341e9106a290000370300200341a8066a41106a200341f1106a290000370300200341a8066a41186a200341f9106a290000370300200320032900e1103703a80620032d00e0104101460d16200341b00e6a41186a200341a8066a41186a290300370300200341b00e6a41106a200341a8066a41106a290300370300200341b00e6a41086a200341a8066a41086a290300370300200320032903a8063703b00e200341900a6a200210ff03200341c0156a20032802900a220520032802980a220710b205200341b00a6a41086a2206200341e8156a290300370300200320032903e0153703b00a200320032800f1153602a8042003200341f4156a2800003600ab04200341c0156a41186a290300210a20032903d015210b20032903c815210c20032903c015210d024020032d00f015220441024622010d00200341d0086a41086a2006290300370300200320032903b00a3703d008200320032802a8043602f00b200320032800ab043600f30b0b200341a8046a41086a200341d0086a41086a290300370300200320032903d0083703a80420010d18200341e8056a41086a200341a8046a41086a290300220e370300200320032903a804220f3703e805200341f8106a200e3703002003200a3703e8102003200b3703e0102003200f3703f01002402004410171450d00200341800c6a410510bc060c4a0b200341e0106a200341b00e6a412010ec08450d17200341800c6a410210bc060c490b20034194066a41026a22062001410f6a2d00003a0000200341d0086a41086a2204200141206a290200370300200341d0086a41106a2205200141286a290200370300200320012f000d3b0194062003200141186a2902003703d008200141c8006a290300210e200141c0006a290300210d2002411a6a290100210c200241196a2d00002113200241186a2d00002115200241166a2f01002114200241156a2d00002116200241146a2d00002118200241126a2f01002119200241116a2d0000211a200241106a2d000021172002410e6a2f0100211b2002410d6a2d0000211c2002410c6a2d0000211d2002410a6a2f0100211e200241096a2d0000211f200241086a2d00002120200241066a2f01002121200241056a2d00002122200241046a2d00002123200241026a2f01002124200141146a2802002108200141106a28020021112001410c6a2d00002109200141386a290300210b200141306a290300210a2002280228210720022d0001211220022d0000210202400240024002400240200141086a2802000e050001020304000b200341c0156a41146a4101360200200342013702c4152003419cc3cb003602c015200341043602ac04200341a4a7c7003602a8042003200341a8046a3602d015200341c0156a4194a7c7001044000b200341b0086a41026a20062d00003a0000200341b00e6a41086a2004290300370300200341b00e6a41106a2005290300370300200320032f0194063b01b008200320032903d0083703b00e20072007280200417f6a22013602000240024002400240024002400240200241ff01710d00024020010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b41012102201241ff01714101470d012003201f3a00cf06200320203a00ce06200320213b01cc06200320223a00cb06200320233a00ca06200320243b01c8062003201a3a00d706200320173a00d6062003201b3b01d4062003201c3a00d3062003201d3a00d2062003201e3b01d006200320133a00df06200320153a00de06200320143b01dc06200320163a00db06200320183a00da06200320193b01d8062003200c3703e006200341900a6a41186a2201200c370300200341900a6a41106a220720032903d806370300200341900a6a41086a220620032903d006370300200320032903c8063703900a20034190136a41186a200129030037030020034190136a41106a200729030037030020034190136a41086a2006290300370300200320032903900a37039013200341a8046a41026a2201200341b0086a41026a2d00003a0000200320032f01b0083b01a804200341e0106a41086a2207200341b00e6a41086a290300370300200341e0106a41106a200341b00e6a41106a290300370300200320032903b00e3703e01002400240024020090e03000201020b200341e8056a41026a20012d00003a0000200341800c6a41086a2007290300370300200341800c6a410d6a200341e0106a410d6a290000370000200320032f01a8043b01e805200320032903e0103703800c410021020c010b2008450d002011102e0b200341bb066a200341800c6a41086a290300370000200341a8066a41186a2003418d0c6a290000370000200320032f01e8053b01a806200320083600af06200320113600ab06200320032903800c3700b3062003200341e8056a41026a2d00003a00aa0620020d03200341c0156a41186a200341a8066a41186a290300370300200341c0156a41106a200341a8066a41106a290300370300200341c0156a41086a200341a8066a41086a290300370300200320032903a8063703c015200341e0106a20034190136a200341c0156a200a200b410110ca0220032d00e01022024106460d0620032902e410210a20032d00e310210120032d00e210210720032d00e11021060c050b024020010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b200341900a6a41186a200341c8066a41186a290300370300200341900a6a41106a200341c8066a41106a290300370300200341900a6a41086a200341c8066a41086a290300370300200320032903c8063703900a0c010b200341900a6a41186a200341c8066a41186a290300370300200341900a6a41106a200341c8066a41106a290300370300200341900a6a41086a200341c8066a41086a290300370300200320032903c8063703900a0b4102210220094102470d012008450d012011102e0c010b410121020b0b200320032800b00a3602f0062003200341b30a6a2800003600f306200041186a41003a000020004200370308200020032802f0063600192000411c6a20032800f306360000200041246a200a370200200020013a0023200020073a0022200020063a0021200041206a20023a0000200042013703000c5f0b200320032800b00a3602f0062003200341b30a6a2800003600f306200041186a41003a000020004200370308200020032802f0063600192000411c6a20032800f306360000200042003703000c5e0b200341e8066a41026a20062d00003a0000200341b00a6a41086a2004290300370300200341b00a6a41106a200529030037030020072007280200417f6a2201360200200320032f0194063b01e806200320032903d0083703b00a02400240024002400240200241ff01710d00024020010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b201241ff01710d01200341e0106a41026a2201200341e8066a41026a2d00003a0000200341c0156a41086a2207200341b00a6a41086a290300370300200341c0156a41106a200341b00a6a41106a290300370300200320032f01e8063b01e010200320032903b00a3703c0154101210220090e03020403040b20010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b4102210220094102470d4c2008450d4c2011102e0c4c0b200341b00e6a41026a20012d00003a000020034190136a41086a200729030037030020034190136a410d6a200341c0156a410d6a290000370000200320032f01e0103b01b00e200320032903c01537039013410021020c010b2008450d002011102e0b200341bb066a20034190136a41086a290300370000200341a8066a41186a22012003419d136a290000370000200320032f01b00e3b01a806200320083600af06200320113600ab0620032003290390133700b3062003200341b00e6a41026a2d00003a00aa0620020d16200341800c6a41186a2001290300370300200341800c6a41106a200341a8066a41106a290300370300200341800c6a41086a200341a8066a41086a290300370300200320032903a8063703800c20034190136a200341800c6a10c802200341c0156a200328029013220720032802981310c902200341c0156a41386a2903002125200341c0156a41306a2903002126200341c0156a41286a2903002127200341c0156a41206a2903002128200341c0156a41186a2903002129200341c0156a41106a290300210f20034180166a290300212a20032903c815211020032903c015210c200341a8046a41086a20034190166a290300370300200320034188166a2903003703a804200e200b7c200d200a7c222b200d54ad7c212c02400240200c4201510d00200341e0106a41386a4200370300200341e0106a41306a4200370300200341e0106a41286a4200370300200341e0106a41206a4200370300200341f8106a4200370300200341e0106a41106a4200370300200341e0106a41086a4200370300200342003703e0104200212a42002128420021274200212642002125420021104200210f420021294200212d4200212e4200210c4200212f0c010b200341e0106a41206a2027370300200341e0106a41286a2026370300200341e0106a41106a2029370300200341e0106a41306a2025370300200320283703f810200320103703e0102003202a370398112003200f3703e8102027212d2026212e2010210c200f212f0b202c502102202b4280c8afa0255421010240200328029413450d002007102e0b2001410020021b210202400240200c202f844200520d00202d20032903f01084202e200341f8106a29030084844200520d0020032903901120034198116a2903008450450d004200212b410021010c010b4201212b410121010b4200200b20021b210b4200200a20021b210a0240202b4201510d004200212742002126420021254200212a4200212942002128420021104200210f0b4200200e20021b210c4200200d20021b210d02400240200a201058200b200f58200b200f5122021b0d002003200a20107d3703c0152003200b200f7d200a201054ad7d3703c8152003200341c0156a3602f006200341f0066a10ce020c010b200a20105a200b200f5a20021b0d0020032010200a7d3703c0152003200f200b7d2010200a54ad7d3703c8152003200341c0156a3602f006200341f0066a10cc020b02400240200d202958200c202858200c20285122021b0d002003200d20297d3703c0152003200c20287d200d202954ad7d3703c8152003200341c0156a3602f006200341f0066a10ce020c010b200d20295a200c20285a20021b0d0020032029200d7d3703c01520032028200c7d2029200d54ad7d3703c8152003200341c0156a3602f006200341f0066a10cc020b200341e8156a22072026370300200341f0156a22062025370300200320273703e0152003200c3703d8152003200d3703d0152003200a3703c0152003200b3703c8154200210f42012110202b420152ad212802400240427f200a200d7c220e200e200a542202200b200c7c2002ad7c220e200b54200e200b511b22021b222942ffc7afa02556427f200e20021b220e420052200e501b0d00200a200d84200b200c8484220f50210242002110200f420052ad210f0c010b2006290300212d2007290300212f200341e0156a290300212c200341d0156a290300212520032903d815212b20032903c815212720032903c0152126410121020b200341d8136a200c370300200341d0136a200d370300200341c8136a200b370300200341b8136a200e370300200341b0136a22072029370300200341a0136a200b3703002003200a3703c0132003200a370398132003200f3703a8132003202837039013024020012010420152720d002003200341800c6a3602c015200341800c6a200341c0156a10bd060c480b02400240200141017322012010420151720d002003200341800c6a3602c015200341800c6a200341c0156a10be0641ff017122014103460d49024020010e03024a00020b024020020d00200320073602c015200341c0156a10cc020b410421020c4b0b2010420152200171450d480b200a2126200b21100c480b200141e0006a290300210c200141d8006a290300210f200141d0006a2903002110200ba72113200aa72101200a422088a72115200341f0066a41026a20062d00003a0000200341e0106a41086a2004290300370300200341e0106a41106a200529030037030020072007280200417f6a2206360200200320032f0194063b01f006200320032903d0083703e0100240024002400240024002400240200241ff01710d00024020060d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b201241ff01710d01200341800c6a41026a2207200341f0066a41026a2d00003a0000200341c0156a41086a2206200341e0106a41086a290300370300200341c0156a41106a200341e0106a41106a290300370300200320032f01f0063b01800c200320032903e0103703c0154101210220090e03020403040b20060d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b410221020240200141ff01714102470d002013450d002015102e0b20094102470d032008450d032011102e0c030b200341b00a6a41026a20072d00003a0000200341b00e6a41086a2006290300370300200341b00e6a410d6a200341c0156a410d6a290000370000200320032f01800c3b01b00a200320032903c0153703b00e410021020c010b2008450d002011102e0b200341db066a200341b00e6a41086a290300370000200341c8066a41186a2207200341bd0e6a290000370000200320032f01b00a3b01c806200320083600cf06200320113600cb06200320032903b00e3700d3062003200341b00a6a41026a2d00003a00ca060240024020020d00200b422088a7210420034190136a41186a200729030037030020034190136a41106a200341c8066a41106a29030037030020034190136a41086a200341c8066a41086a290300370300200320032903c806370390132001410876210241012106024002400240200141ff01710e03000201020b2010a72107410021060c010b02402013450d002015102e0b0b200341bf066a200e3700002003200d3700b706200320073a00c706200320043600b306200320133600af06200320153600ab06200320023b01a806200320024110763a00aa0620060d01200341c0156a41186a200341a8066a41186a290300370300200341c0156a41106a200341a8066a41106a290300370300200341c0156a41086a200341a8066a41086a290300370300200320032903a8063703c015200341b00e6a20034190136a200341c0156a200f200c410110ca02024020032d00b00e22024106460d0020032902b40e210a20032d00b30e210120032d00b20e210720032d00b10e21060c040b200320032802e8053602b008200320032800eb053600b308200041186a41003a000020004200370308200020032802b0083600192000411c6a20032800b308360000200042003703000c600b41012102200141ff01714102470d012013450d012015102e0c010b410121020b0b200320032802e8053602b008200320032800eb053600b308200041186a41003a000020004200370308200020032802b0083600192000411c6a20032800b308360000200041246a200a370200200020013a0023200020073a0022200020063a0021200041206a20023a0000200042013703000c5c0b200341e8056a41026a20062d00003a0000200341b00e6a41086a2004290300370300200341b00e6a41106a2005290300370300200320032f0194063b01e805200320032903d0083703b00e20072007280200417f6a22013602000240024002400240024002400240200241ff01710d00024020010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b41012102201241ff01714101470d012003201f3a00cf06200320203a00ce06200320213b01cc06200320223a00cb06200320233a00ca06200320243b01c8062003201a3a00d706200320173a00d6062003201b3b01d4062003201c3a00d3062003201d3a00d2062003201e3b01d006200320133a00df06200320153a00de06200320143b01dc06200320163a00db06200320183a00da06200320193b01d8062003200c3703e006200341900a6a41186a2201200c370300200341900a6a41106a220720032903d806370300200341900a6a41086a220620032903d006370300200320032903c8063703900a20034190136a41186a200129030037030020034190136a41106a200729030037030020034190136a41086a2006290300370300200320032903900a37039013200341b00a6a41026a2201200341e8056a41026a2d00003a0000200320032f01e8053b01b00a200341e0106a41086a2207200341b00e6a41086a290300370300200341e0106a41106a200341b00e6a41106a290300370300200320032903b00e3703e01002400240024020090e03000201020b200341a8046a41026a20012d00003a0000200341800c6a41086a2007290300370300200341800c6a410d6a200341e0106a410d6a290000370000200320032f01b00a3b01a804200320032903e0103703800c410021020c010b2008450d002011102e0b200341bb066a200341800c6a41086a290300370000200341a8066a41186a2003418d0c6a290000370000200320032f01a8043b01a806200320083600af06200320113600ab06200320032903800c3700b3062003200341a8046a41026a2d00003a00aa0620020d03200341c0156a41186a200341a8066a41186a290300370300200341c0156a41106a200341a8066a41106a290300370300200341c0156a41086a200341a8066a41086a290300370300200320032903a8063703c015200341e0106a20034190136a200341c0156a200a200b410010ca0220032d00e01022024106460d0620032902e410210a20032d00e310210120032d00e210210720032d00e11021060c050b024020010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b200341900a6a41186a200341c8066a41186a290300370300200341900a6a41106a200341c8066a41106a290300370300200341900a6a41086a200341c8066a41086a290300370300200320032903c8063703900a0c010b200341900a6a41186a200341c8066a41186a290300370300200341900a6a41106a200341c8066a41106a290300370300200341900a6a41086a200341c8066a41086a290300370300200320032903c8063703900a0b4102210220094102470d012008450d012011102e0c010b410121020b0b200320032802f0063602e806200320032800f3063600eb06200041186a41003a000020004200370308200020032802e8063600192000411c6a20032800eb063600002000200a370024200020013a0023200020073a0022200020063a0021200041206a20023a0000200042013703000c5c0b200320032802f0063602e806200320032800f3063600eb06200041186a41003a000020004200370308200020032802e8063600192000411c6a20032800eb06360000200042003703000c5b0b2001410c6a2802002105200141086a280200211120012802042104200341c0156a41286a200241286a280200360200200341c0156a41206a200241206a290200370300200341c0156a41186a200241186a290200370300200341c0156a41106a200241106a290200370300200341c0156a41086a200241086a290200370300200320022902003703c0150240024002400240200341c0156a10bb060d0002402005410a4d0d00200341f00b6a410310bf060c030b200341900a6a41186a22014200370300200341900a6a41106a22174200370300200341900a6a41086a22024200370300200342003703900a200341d0086a4190dac800410a1081022002200341d0086a41086a2206290300370300200320032903d0083703900a200341b00a6a41d097c900410c1081022001200341b00a6a41086a2209290300370300201720032903b00a3703000240200341900a6a108603220741ff01714102460d002007410171450d00200341f00b6a410210bf060c020b200142003703002017420037030020024200370300200342003703900a200341d0086a4190dac800410a10810220022006290300370300200320032903d0083703900a200341b00a6a41d097c900410c108102201741086a2009290300370200201720032903b00a370200200341013a00a804200341900a6a4120200341a8046a410110b201200341c8066a41186a22024200370300200341c8066a41106a221b4200370300200341c8066a41086a22014200370300200342003703c806200341e8056a41d9fcc60041061081022001200341e8056a41086a290300370300200320032903e8053703c806200341a8046a4180f4cb0041061081022002200341a8046a41086a290300370300201b20032903a80437030020034180016a200341c8066a4120108e0220032802800121012003280284012107200341b0086a10e10402400240024020032802b808220220032802b4082219470d00200241016a22062002490d4a200241017422092006200920064b1b22064104200641044b1bad42c4007e220a422088a7454102742106200aa721090240024020020d00200341003602c0150c010b200341c8156a4104360200200320032802b0083602c0152003200241c4006c3602c4150b20034190136a20092006200341c0156a107d20034198136a28020021062003280290134101460d0120032003280294133602b0082003200641c4006e22193602b4080b20032802b008221c200241c4006c6a22062007410020011b360204200641003a00002003200241016a22153602b8082004200541f0006c22026a212420050d01200421070c460b20060d5c0c480b200441f4006a2106200241907f6a2109200341e0106a4101722114200341c0156a41106a2130200341c0156a41086a2131200341c8066a41186a21162003419f0c6a21322004210703402007280204211a20072802002112200341c0156a200741086a41e80010e9081a200741f0006a2107201a450d4520034190136a200341c0156a41e80010e9081a2003201a3602c415200320123602c015203120034190136a41e80010e9081a20164200370300200341c8066a41106a22184200370300200341c8066a41086a22134200370300200342003703c806200341e8056a41d9fcc60041061081022013200341e8056a41086a290300370300200320032903e8053703c806200341a8046a4180f4cb004106108102201b41086a200341a8046a41086a290300370300201b20032903a804370300200341f8006a200341c8066a4120108e0220032802782102200328027c2101200341800c6a200341c0156a109a04024020120d00200341e0106a410410bf0620033500e11020033300e51020033100e7104210868442208684210a200341e8106a28020021020c450b024020122001410020021b22024d0d00200341e0106a410510bf0620033500e11020033300e51020033100e7104210868442208684210a200341e8106a28020021020c450b200341b00a6a2012417f6a108c02200341e0106a20032802b00a220820032802b80a108d0220032d00e01021012016201441186a221d2900003703002018201441106a221e2900003703002013201441086a221f290000370300200320142900003703c8060240024020014101460d00200341b00e6a41186a4200370300200341b00e6a41106a4200370300200341b00e6a41086a4200370300200342003703b00e0c010b200341b00e6a41186a2016290300370300200341b00e6a41106a2018290300370300200341b00e6a41086a2013290300370300200320032903c8063703b00e0b024020032802b40a450d002008102e0b0240200341b00e6a2030412010ec08450d00200341e0106a410110bf0620033500e11020033300e51020033100e7104210868442208684210a200341e8106a28020021020c450b0240201220024f0d00200341e0106a410710bf0620033500e11020033300e51020033100e7104210868442208684210a200341e8106a28020021020c450b024002402015450d00201541c4006c2101201c21020340024020022d00004101470d0041012108200241016a200341800c6a412010ec08450d030b200241c4006a2102200141bc7f6a22010d000b0b410021080b200341b00a6a2012108c02200341e0106a20032802b00a220120032802b80a108d0220032d00e01021022016201d2900003703002018201e2900003703002013201f290000370300200320142900003703c8060240024020024101460d00200341b00e6a41186a4200370300200341b00e6a41106a4200370300200341b00e6a41086a4200370300200342003703b00e0c010b200341b00e6a41186a2016290300370300200341b00e6a41106a2018290300370300200341b00e6a41086a2013290300370300200320032903c8063703b00e0b024020032802b40a450d002001102e0b02402008417f73200341b00e6a200341800c6a412010ec08410047710d00200341e0106a410610bf0620033500e11020033300e51020033100e7104210868442208684210a200341e8106a28020021020c450b2032310000210a20032900930c210b200328008f0c2101200328008b0c210820032800870c211220032800830c211a20032f00810c211d200335009b0c210c200341800c6a200341c0156a109a04200341b00e6a41186a221e4200370300200341b00e6a41106a221f4200370300200341b00e6a41086a22204200370300200342003703b00e200341a8066a41186a22214200370300200341a8066a41106a22224200370300200341a8066a41086a22234200370300200342003703a80641c800102c2202450d5c200341c8066a10e2042002410236022020024101360244200241186a2016290300370200200241106a2018290300370200200241086a2013290300370200200220032903c806370200200220032903a8063702242002412c6a2023290300370200200241346a20222903003702002002413c6a2021290300370200200320023602e01020034282808080203702e410200341e0106a10e304200341e0106a41186a201e290300370300200341e0106a41106a201f290300370300200341e0106a41086a2020290300370300200320032903b00e3703e010200341e0106a10e404200341f0066a41186a2213200341800c6a41186a290300370300200341f0066a41106a2218200341800c6a41106a290300370300200341f0066a41086a221e200341800c6a41086a290300370300200320032903800c3703f006024020152019470d0020192019470d00201941016a22022019490d492019410174221f2002201f20024b1b22024104200241044b1bad42c4007e220d422088a7454102742102200da7211f0240024020190d00200341003602e0100c010b200341043602e8102003201c3602e0102003201941c4006c3602e4100b200341b00e6a201f2002200341e0106a107d20032802b80e210220032802b00e4101460d44200320032802b40e221c3602b0082003200241c4006e22193602b4080b201c201541c4006c6a220241013a0000201e290300210d2018290300210e2013290300210f20032903f0062110200241c1006a200c200a42208684220a4220883c00002002200a3e003d2002200b370035200220013600312002200836002d200220123600292002201a3600252002201d3b0023200241003a002120022010370001200241196a200f370000200241116a200e370000200241096a200d370000200320032802b80841016a22153602b80820032802c4152108024020032802cc152202450d00200241246c21012008210203400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b024020032802c8152202450d00200241246c450d002008102e0b200941907f6a2109200641f0006a210620072024470d000c460b0b200341023a00f00b0b2005450d010b2004200541f0006c6a2106200421020340024020022207410c6a2802002201450d0020072802042102200141246c210103400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200741f0006a21020240200741086a2802002201450d00200141246c450d002007280204102e0b20022006470d000b0b2011450d42201141f0006c450d422004102e0c420b200341c0156a200141086a41d80010e9081a20034190136a41286a200241286a28020036020020034190136a41206a200241206a29020037030020034190136a41186a200241186a29020037030020034190136a41106a200241106a29020037030020034190136a41086a200241086a29020037030020032002290200370390132000200341c0156a20034190136a1081060c590b200141086a280200211520012802042112200341a8046a200141106a41c00110e9081a200341e8056a41286a2201200241286a280200360200200341e8056a41206a2207200241206a290200370300200341e8056a41186a2206200241186a290200370300200341e8056a41106a2204200241106a290200370300200341e8056a41086a2205200241086a290200370300200320022902003703e80502402012450d00200341f0066a200341a8046a41c00110e9081a200341c0156a41286a2001280200360200200341c0156a41206a2007290300370300200341c0156a41186a2006290300370300200341c0156a41106a2004290300370300200341c0156a41086a2005290300370300200320032903e8053703c01520034190136a200341c0156a10c102200341900a6a41086a20034199136a290000370300200341900a6a41106a200341a1136a290000370300200341900a6a41186a200341a9136a29000037030020032003290091133703900a024020032d0090134101460d00200341b0086a41186a2202200341900a6a41186a2206290300370300200341b0086a41106a2201200341900a6a41106a290300370300200341b0086a41086a2207200341900a6a41086a290300370300200320032903900a3703b008200341d0086a200341f0066a41c00110e9081a20034190136a41186a200229030037030020034190136a41106a200129030037030020034190136a41086a2007290300370300200320032903b00837039013200341c0156a20034190136a10f005024020032d00c0154101470d00200341f7106a2202200341d9156a290000370000200341e0106a41106a2201200341d2156a290100370300200341990a6a200341ca156a290100370000200341a10a6a200129030037000020062002290000370000200320032d00c1153a00900a200320032901c2153700910a200341b0086a1083060d13200341b00e6a200341d0086a41c00110e9081a200341c8066a200341900a6a10a603200341c0156a20032802c806220120032802d00610a70320032d00c0152102200341e0106a200341c0156a41017241c00110e9081a0240024020024101460d00200341003a0090130c010b200341013a00901320034190136a410172200341e0106a41c00110e9081a0b024020032802cc06450d002001102e0b20034190136a4101722114200341c0156a4101722102416821060340200341c0016a200341b00e6a200641b0fac6006a280000220110d10320032802c0012107200320032802c40122043602e810200320073602e410200320013602e010200341f00b6a200341e0106a10c203200341c0156a20032802f00b220520032802f80b10f402200341a8066a41086a2209200241086a290000370300200341a8066a41106a2208200241106a290000370300200341a8066a41186a2211200241186a290000370300200320022900003703a8060240024020032d00c0154101470d00200341c8066a41186a22132011290300370300200341c8066a41106a22112008290300370300200341c8066a41086a22082009290300370300200320032903a8063703c806024020032802f40b450d002005102e0b200341c0156a41186a2013290300370300200341c0156a41106a2011290300370300200341c0156a41086a2008290300370300200320032903c8063703c015200341c0156a200341900a6a412010ec08450d01200341c0156a410310c006200341800c6a410a6a200341c8156a2202280200360000200320032903c0153700820c200341b00a6a200341800c6a41c00110e9081a2002200341b00a6a410a6a280000360200200320032900b20a3703c0150c3f0b20032802f40b450d002005102e0b0240024020032d0090134101470d00200341b8016a2014200110d10320032802b8012205450d000240200420032802bc012209470d0020072005200410ec08450d020b200320093602c815200320053602c415200320013602c015200341e0106a200341c0156a10c20320032802e010220520032802e81010ff0120032802e410450d002005102e0b200320043602c815200320073602c415200320013602c015200341e0106a200341c0156a10c20320032802e010210120032802e81021074120102c2204450d5a200342203702c415200320043602c015200341c0156a200341900a6a412010742001200720032802c015220420032802c81510b201024020032802c415450d002004102e0b20032802e410450d002001102e0b200641046a22060d000b200341e0106a200341900a6a10a60320032802e810210120032802e0102102200341003602c815200342013703c015200341c0156a200341b00e6a41201074200341c0156a200341b00e6a41206a41201074200341c0156a200341f00e6a41201074200341c0156a200341900f6a41201074200341c0156a200341b00f6a41201074200341c0156a200341d00f6a412010742002200120032802c015220720032802c81510b201024020032802c415450d002007102e0b024020032802e410450d002002102e0b024020032d009013450d00200341b0086a108a060b41062102200341063a00c0150c3d0b200341c0156a410210c0060c3b0b410221020c3c0b200341c0156a41286a2001280200360200200341c0156a41206a2007290300370300200341c0156a41186a2006290300370300200341c0156a41106a2004290300370300200341c0156a41086a2005290300370300200320032903e8053703c01520034190136a200341c0156a10c102200341a8066a41086a20034199136a290000370300200341a8066a41106a200341a1136a290000370300200341a8066a41186a200341a9136a29000037030020032003290091133703a80620032d0090134101460d0f200341b00a6a41186a200341a8066a41186a290300220a370300200341b00a6a41106a200341a8066a41106a290300220b370300200341b00a6a41086a200341a8066a41086a290300220c370300200320032903a806220d3703b00a20034190136a41186a200a37030020034190136a41106a200b37030020034190136a41086a200c3703002003200d37039013200341c0156a20034190136a10f0050240024020032d00c0154101470d00200341f7106a2202200341d9156a290000370000200341e0106a41106a2201200341d2156a290100370300200341890c6a200341ca156a290100370000200341910c6a2001290300370000200341800c6a41186a2002290000370000200320032d00c1153a00800c200320032901c2153700810c200341d0086a200341800c6a10a603200341c0156a20032802d008220220032802d808220710a703024020032d00c0152201450d002002200710ff010b20032d00c1152107200341e0106a200341c0156a41027241bf0110e9081a024020014101470d00200341b00e6a200341e0106a41bf0110e9081a024020032802d408450d002002102e0b200320073a00901320034190136a410172200341b00e6a41bf0110e9081a200341b0016a20034190136a41e7e485f30610d103200320032903b0013702c415200341e7e485f3063602c015200341e0106a200341c0156a10c20320032802e010220220032802e81010ff01024020032802e410450d002002102e0b200341a8016a20034190136a41e2c289ab0610d103200320032903a8013702c415200341e2c289ab063602c015200341e0106a200341c0156a10c20320032802e010220220032802e81010ff01024020032802e410450d002002102e0b200341a0016a20034190136a41e9dabdf30610d103200320032903a0013702c415200341e9dabdf3063602c015200341e0106a200341c0156a10c20320032802e010220220032802e81010ff01024020032802e410450d002002102e0b20034198016a20034190136a41f0c2c98b0610d10320032003290398013702c415200341f0c2c98b063602c015200341e0106a200341c0156a10c20320032802e010220220032802e81010ff01024020032802e410450d002002102e0b20034190016a20034190136a41e1e69df30610d10320032003290390013702c415200341e1e69df3063602c015200341e0106a200341c0156a10c20320032802e010220220032802e81010ff01024020032802e410450d002002102e0b20034188016a20034190136a41e1ea91cb0610d10320032003290388013702c415200341e1ea91cb063602c015200341e0106a200341c0156a10c20320032802e010220220032802e81010ff01024020032802e410450d002002102e0b200341b00a6a108a060c3b0b024020032802d408450d002002102e0b200341f0066a410410c0060c010b200341f0066a410210c0060b20032d00f00622024106460d3820032d00f106210120032d00f206210720032d00f306210620032902f406210a0c370b2001411c6a2802002115200141186a2802002111200141146a2802002108200141106a28020021122001410c6a2802002113200141086a2802002107200341e0106a200141206a41800210e9081a200341800c6a41286a2201200241286a280200360200200341800c6a41206a2206200241206a290200370300200341800c6a41186a2204200241186a290200370300200341800c6a41106a2205200241106a290200370300200341800c6a41086a2209200241086a290200370300200320022902003703800c024002400240024020070e0400010203000b200341c0156a41146a4101360200200342013702c4152003419cc3cb003602c015200341043602ac0420034194c3cb003602a8042003200341a8046a3602d015200341c0156a41c499c9001044000b20034190136a200341e0106a41800210e9081a200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a2009290300370300200320032903800c3703c015200341b00a6a200341c0156a10c102200341a8066a41086a200341b90a6a2202290000370300200341a8066a41106a200341c10a6a2201290000370300200341a8066a41186a200341c90a6a2207290000370300200320032900b10a3703a80602400240024020032d00b00a4101470d00200341d00e6a41023a0000200341c80e6a41003a0000200342003703b80e200342013703b00e02402011450d002011410c6c21012012210203400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b02402008450d002008410c6c450d002012102e0b200341b80e6a210241002106410221040c010b200341c8066a41186a200341a8066a41186a290300220a370300200341c8066a41106a200341a8066a41106a290300220b370300200341c8066a41086a200341a8066a41086a290300220c370300200320032903a806220d3703c8062007200a3700002001200b3700002002200c3700002003200d3700b10a200341013a00b00a200341c0156a20034190136a41800210e9081a200341dc086a2011360200200341d0086a41086a2008360200200320153602e008200320123602d408200320133602d008200341b00e6a200341b00a6a200341c0156a200341d0086a10c10620032903b00e4201520d01200341b00e6a41086a2102200341d00e6a2d0000210420032d00c80e21060b200320022800113602e8062003200241146a2800003600eb0620022f0019210120022d001b2107200229001c210a2002280024210220032903b80e210b20032903c00e210c200041186a20063a0000200041106a200c3703002000200b370308200020032802e8063600192000411c6a20032800eb063600002000412c6a2002360200200041246a200a370200200020073a0023200020013b0021200041206a20043a0000200042013703000c5a0b200320032800c90e3602e8062003200341b00e6a411c6a2800003600eb0620032903b80e210a20032903c00e210b200041186a20032d00c80e3a0000200041106a200b3703002000200a370308200020032802e8063600192000411c6a20032800eb06360000200042003703000c590b20034190136a200341e0106a41800210e9081a200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a2009290300370300200320032903800c3703c015024002400240200341c0156a10bb06450d00200341d00e6a41023a0000200341c80e6a41003a0000200342003703b80e200342013703b00e02402011450d002011410c6c21012012210203400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b02402008450d002008410c6c450d002012102e0b200341b80e6a210241002106410221040c010b200341c0156a10e204200341c90a6a200341c0156a41186a290300370000200341c10a6a200341c0156a41106a290300370000200341b90a6a200341c0156a41086a290300370000200341013a00b00a200320032903c0153700b10a200341c0156a20034190136a41800210e9081a200341dc086a2011360200200341d0086a41086a2008360200200320153602e008200320123602d408200320133602d008200341b00e6a200341b00a6a200341c0156a200341d0086a10c10620032903b00e4201520d01200341b00e6a41086a2102200341d00e6a2d0000210420032d00c80e21060b200320022800113602f0062003200241146a2800003600f30620022f0019210120022d001b2107200229001c210a2002280024210220032903b80e210b20032903c00e210c200041186a20063a0000200041106a200c3703002000200b370308200020032802f0063600192000411c6a20032800f3063600002000412c6a2002360200200041246a200a370200200020073a0023200020013b0021200041206a20043a0000200042013703000c590b200320032800c90e3602f0062003200341b00e6a411c6a2800003600f30620032903b80e210a20032903c00e210b200041186a20032d00c80e3a0000200041106a200b3703002000200a370308200020032802f0063600192000411c6a20032800f306360000200042003703000c580b200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a2009290300370300200320032903800c3703c0150240200341c0156a10a705450d002000420037002420004200370308200041206a41023a0000200041186a41003a0000200042013703000c580b200341a8066a41186a22024200370300200341b8066a22014200370300200341a8066a41086a22074200370300200342003703a806200341e8056a41a0dac800410f1081022007200341e8056a41086a290300370300200320032903e8053703a806200341a8046a41a0eec80041071081022002200341a8046a41086a290300370300200120032903a804370300200341a8066a41202013201210e504200041186a41003a000020004200370308200020032800e8063600192000411c6a200341eb066a280000360000200042003703000c570b200141246a28020021052001411c6a2802002104200141186a2802002109200141146a2802002108200141106a28020021062001410c6a2802002111200141086a2802002112200341c0156a41286a200241286a280200360200200341c0156a41206a200241206a290200370300200341c0156a41186a200241186a290200370300200341c0156a41106a200241106a290200370300200341c0156a41086a200241086a290200370300200320022902003703c015024002400240200341c0156a10bb06450d004200210a410221064200210b0c010b200341a8066a41186a22024200370300200341a8066a41106a22014200370300200341a8066a41086a22074200370300200342003703a806200341e8056a41a081ca0041071081022007200341e8056a41086a290300370300200320032903e8053703a806200341a8046a41e4d1c100410c1081022002200341a8046a41086a290300370300200120032903a804370300200341c8016a200341a8066a4120108e02200341c0156a20032802cc01410020032802c8011b2215200510c20620032802c015220220032802c815108f022107024020032802c415450d002002102e0b200341b00e6a1087032007417f7320032802b00e221320054105746a410020032802b80e20054b1b2202410047710d01024020032802b40e41ffffff3f71450d002013102e0b4280808080b0024280808080a00120071b210b41b4f3c800ad41aaf3c800ad20071b210a410321060b02402011450d002012102e0b02402004450d002004410c6c21012008210203400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b02402009450d002009410c6c450d002008102e0b200020073a00222000410c3a0021200042003703082000200b200a84370024200041206a20063a0000200041186a41003a0000200042013703000c570b200241086a290000210a200241106a290000210b2002290000210c200341c8066a41186a200241186a290000220d370300200341c8066a41106a200b370300200341c8066a41086a200a3703002003200c3703c806200341cd156a200a370000200341d5156a200b370000200341dd156a200d370000200341003a00c415200341083a00c0152003200c3700c515200341c0156a10fe01200341003602e810200342013703e0102006200341e0106a1076200341e0106a2012200610742004200341e0106a107602402004450d0020082004410c6c6a210620082102034020022802002101200241086a2802002207200341e0106a1076200341e0106a2001200710742002410c6a22022006470d000b0b20034190136a2015200510c20620032802e810220141046a2202417f4c0d3f20032802e0102107200328029813210520032802901321060240024020020d00410121150c010b2002102c2215450d540b200341003602c815200320023602c415200320153602c0152001200341c0156a1076200341c0156a2007200110742006200520032802c015220220032802c81510b201024020032802c415450d002002102e0b0240200328029413450d002006102e0b024020032802e410450d002007102e0b024020032802b40e41ffffff3f71450d002013102e0b02402011450d002012102e0b02402004450d002004410c6c21012008210203400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b02402009450d002009410c6c450d002008102e0b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c560b200341c0156a41306a200141386a290300370300200341c0156a41286a200141306a290300370300200341c0156a41206a200141286a290300370300200341c0156a41186a200141206a290300370300200341c0156a41106a200141186a290300370300200341c0156a41086a200141106a2903003703002003200141086a2903003703c01520034190136a41286a200241286a28020036020020034190136a41206a200241206a29020037030020034190136a41186a200241186a29020037030020034190136a41106a200241106a29020037030020034190136a41086a200241086a29020037030020032002290200370390132000200341c0156a20034190136a10c3060c550b200341c0156a41306a200141386a290300370300200341c0156a41286a200141306a290300370300200341c0156a41206a200141286a290300370300200341c0156a41186a200141206a290300370300200341c0156a41106a200141186a290300370300200341c0156a41086a200141106a2903003703002003200141086a2903003703c01520034190136a41286a200241286a28020036020020034190136a41206a200241206a29020037030020034190136a41186a200241186a29020037030020034190136a41106a200241106a29020037030020034190136a41086a200241086a29020037030020032002290200370390132000200341c0156a20034190136a10c4060c540b200341c0156a41306a200141386a290300370300200341c0156a41286a200141306a290300370300200341c0156a41206a200141286a290300370300200341c0156a41186a200141206a290300370300200341c0156a41106a200141186a290300370300200341c0156a41086a200141106a2903003703002003200141086a2903003703c01520034190136a41286a200241286a28020036020020034190136a41206a200241206a29020037030020034190136a41186a200241186a29020037030020034190136a41106a200241106a29020037030020034190136a41086a200241086a29020037030020032002290200370390132000200341c0156a20034190136a10c5060c530b200141206a290300210c200141186a290300210a200141286a290300210b200141146a2802002112200141106a28020021112001410c6a2802002108200141086a2d0000210720012d00092113200341e0106a41286a2201200241286a280200360200200341e0106a41206a2206200241206a290200370300200341e0106a41186a2204200241186a290200370300200341e0106a41106a2205200241106a290200370300200341e0106a41086a2209200241086a290200370300200320022902003703e0100240024002400240024002400240024020070e0700010203040506000b200341c0156a41146a4101360200200342013702c4152003419cc3cb003602c015200341043602ac0420034194c3cb003602a8042003200341a8046a3602d015200341c0156a4188f3c0001044000b200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a2009290300370300200320032903e0103703c01520034190136a200341c0156a10c1020240024020032d0090134101460d0020034190136a41086a280200210220034190136a410c6a280200210120034190136a41106a280200210720034190136a41146a290200210b20032d009113210620032f019213210420032802941321052003200341ac136a35020020034190136a41206a31000042208684220d3e00cb0e200341cf0e6a200d4220883c00002003200b3700c30e200320073600bf0e200320013600bb0e200320023600b70e200320053600b30e200320043b00b10e200320063a00b00e0240201241104d0d00200341d0086a410410f3020c020b024020120d00200341d0086a410210f3020c020b200341980c6a22014200370300200341800c6a41106a22024200370300200341800c6a41086a22074200370300200342003703800c200341b00a6a418ef9c00041101081022007200341b00a6a41086a290000370300200320032900b00a3703800c200341c0156a419ef9c000410a1081022001200341c0156a41086a290000370300200220032900c01537030041002101200341b40a6a41003a0000200341003602b00a20034198026a200341800c6a4120200341b00a6a4105410010ca040240200328029802450d002003200328029c022201410520014105491b3602c4152003200341b00a6a3602c01520034190026a200341c0156a10ab010240200328029002450d00410021010c010b20032802940221010b200341980c6a4200370300200341800c6a41106a4200370300200341800c6a41086a22074200370300200342003703800c200341b00a6a418ef9c00041101081022007200341b00a6a41086a290000370300200320032900b00a3703800c200341c0156a41c7c3cb004107108102200241086a200341c0156a41086a290000370000200220032900c01537000041002107200341b40a6a41003a0000200341003602b00a20034188026a200341800c6a4120200341b00a6a4105410010ca040240200328028802450d002003200328028c022207410520074105491b3602c4152003200341b00a6a3602c01520034180026a200341c0156a10ab010240200328028002450d00410021070c010b20032802840221070b200341980c6a4200370300200341800c6a41106a4200370300200341800c6a41086a22064200370300200342003703800c200341b00a6a418ef9c00041101081022006200341b00a6a41086a290000370300200320032900b00a3703800c200341c0156a41a8f9c0004109108102200241086a200341c0156a41086a290000370000200220032900c01537000041002102200341b40a6a41003a0000200341003602b00a200341f8016a200341800c6a4120200341b00a6a4105410010ca04024020032802f801450d00200320032802fc012202410520024105491b3602c4152003200341b00a6a3602c015200341f0016a200341c0156a10ab01024020032802f001450d00410021020c010b20032802f40121020b02402002417f200120076a220720072001491b2201720d00200341d0086a410110f3020c020b02402012417f200120026a220220022001491b4d0d00200341d0086a410310f3020c020b0240200a4280c8afa02556200c420052200c501b0d00200341d0086a410510f3020c020b200341e0016a2012ad42004280a0cb9801420010e80820034190136a200341b00e6a10e702200341c0156a200328029013220120032802981310e902200341d8156a290300210b20032802e015210220032903d015210f20032903e001220e4280e0cdb8eb057c220d200e54ad2110200341e8016a290300212820032902e41521290240200328029413450d002001102e0b200b420020021b210e200f420020021b210f202820107c210b02402002450d00202942ffffff3f83500d002002410120021b102e0b024002400240417f200d200f85200b200e8584420052200d200f542202200b200e54200b200e511b1b41016a0e03010200010b200341c0156a200341b00e6a200d200f7d200b200e7d2002ad7d10c30220032d00c0154106460d01200341d0086a410610f3020c030b200341d0016a200341b00e6a200f200d7d200e200b7d200f200d54ad7d10fb010b20034190136a200341b00e6a10c802200341c0156a200328029013220720032802981310c902200341e0156a290300420020032903c01542015122021b2110200341d8156a2201290300420020021b2128200341d0156a290300420020021b210e20032903c815420020021b210f0240200328029413450d002007102e0b42f0d0c9abc6add9b1f400200341b00e6a427f200f20287c22282028200f542202200e20107c2002ad7c220f200e54200f200e511b22021b220e200a200e200a54427f200f20021b220e200c54200e200c511b22021b220a200e200c20021b220c411f1085062001200b370300200341e8156a2012360200200341e4156a20113602002003200d3703d0152003200c3703c8152003200a3703c015200320083602e01520034190136a200341b00e6a10e7022003280290132202200328029813200341c0156a10b9050240200328029413450d002002102e0b0240201141ffffff3f71450d002008102e0b200341063a00d0080c380b200341023a00d0080b0240201141ffffff3f71450d002008102e0b20032d00d00822024106460d3620032f00d108210120032d00d3082107200020032902d408370024200020073a0023200020013b0021200041206a20023a0000200041186a41003a000020004200370308200042013703000c580b200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a2009290300370300200320032903e0103703c01520034190136a200341c0156a10c102200341800c6a41086a20034199136a290000370300200341800c6a41106a200341a1136a290000370300200341800c6a41186a200341a9136a29000037030020032003290091133703800c20032d0090134101460d0d200341b00e6a41186a200341800c6a41186a290300370300200341b00e6a41106a200341800c6a41106a290300370300200341b00e6a41086a200341800c6a41086a290300370300200320032903800c3703b00e200341c0156a200341b00e6a10e70220032802c015220120032802c815108f022102024020032802c415450d002001102e0b02402002450d00200341b00e6a10e802200341063a00b00a0c350b200341b00a6a410710f30220032d00b00a4106460d340c330b200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a2009290300370300200320032903e0103703c01520034190136a200341c0156a10c10220032d0090134101460d0b20034190136a41086a280200210220034190136a410c6a280200210120034190136a41106a280200210720034190136a41146a290200210a20032d009113210620032f019213210420032802941321052003200341ac136a35020020034190136a41206a31000042208684220b3e00cb0e200341cf0e6a200b4220883c00002003200a3700c30e200320073600bf0e200320013600bb0e200320023600b70e200320053600b30e200320043b00b10e200320063a00b00e200341980c6a22024200370300200341800c6a41106a22054200370300200341800c6a41086a22014200370300200342003703800c200341b00a6a418ef9c00041101081022001200341b00a6a41086a290000370300200320032900b00a3703800c200341c0156a419ef9c000410a1081022002200341c0156a41086a290000370300200520032900c015370300200341b40a6a41003a0000200341003602b00a200341b0026a200341800c6a4120200341b00a6a4105410010ca04024020032802b002450d00200320032802b4022202410520024105491b3602c4152003200341b00a6a3602c015200341a8026a200341c0156a10ab0120032802a8020d0020032802ac0220084d0d00200341f0066a410e10f3020c300b200341a0026a200341b00e6a10eb0220032802a002450d0a20032802a4022109200341c0066a22024200370300200341a8066a41106a22014200370300200341a8066a41086a22074200370300200342003703a806200341e8056a418ef9c00041101081022007200341e8056a41086a290300370300200320032903e8053703a806200341a8046a41c7c3cb0041071081022002200341a8046a41086a290300370300200120032903a804370300200341c0156a200341a8066a10f10220032802c0152201410820011b21044100210202400240024020032902c415420020011b220a422088a722010e020201000b4100210203402001410176220620026a210720072002200420074106746a41206a200341b00e6a412010ec084101481b2102200120066b220141014b0d000b0b200420024106746a41206a200341b00e6a412010ec084521020b0240200a42ffffff1f83500d002004102e0b02402002450d00200341f0066a410a10f3020c300b200341a80a6a22024200370300200341900a6a41106a22014200370300200341900a6a41086a22074200370300200342003703900a200341b00a6a418ef9c00041101081022007200341b00a6a41086a290000370300200320032900b00a3703900a200341d0086a41a8f9c00041091081022002200341d0086a41086a290000370300200120032900d008370300200341c0156a200341900a6a10f10220032802c0152202410820021b210602400240024020032902c415420020021b220a422088a72201450d00200641206a2102200141067441406a41067641016a210741002101034002402002200341b00e6a412010ec080d000240200a42ffffff1f83500d002006102e0b200341f0066a410b10f3020c340b200241c0006a21022007200141016a2201470d000b200a42ffffff1f8350450d010c020b200a42ffffff1f83500d010b2006102e0b200341c0156a200341b00e6a4280a094a58d1d420010c302024020032d00c0154106470d00200341cf0e6a310000210a20033500cb0e210b20032900c30e210c20032800bf0e210720032800bb0e210620032800b70e210420032800b30e210820032f00b10e211120032d00b00e2112200341d0086a10ec0220032802d80822012009490d0a0240200120032802d408470d00200141016a22022001490d41200141017422132002201320024b1b22024104200241044b1bad42307e220d422088a7454103742102200da721130240024020010d00200341003602c0150c010b200341c0156a41086a4108360200200320032802d0083602c0152003200141306c3602c4150b20034190136a20132002200341c0156a107d20034198136a28020021022003280290134101460d0520032003280294133602d0082003200241306e3602d4080b20032802d008200941306c6a220241306a2002200120096b41306c10ea081a2002411f6a200b200a42208684220a4220883c00002002200a3e001b200241286a420037030020024280a094a58d1d3703202002200c3700132002200736000f2002200636000b2002200436000720022008360003200220113b0001200220123a00002003200141016a22023602d80820034190136a41086a2002360200200320032903d008220a3703901302400240200aa722020d00200341980c6a4200370300200341800c6a41106a4200370300200341800c6a41086a22024200370300200342003703800c200341b00a6a418ef9c00041101081022002200341b00a6a41086a290000370300200320032900b00a3703800c200341c0156a419ef9c000410a108102200541086a200341c0156a41086a290000370000200520032900c015370000200341800c6a412010ff010c010b200341980c6a4200370300200341800c6a41106a4200370300200341800c6a41086a22014200370300200342003703800c200341b00a6a418ef9c00041101081022001200341b00a6a41086a290000370300200320032900b00a3703800c200341c0156a419ef9c000410a108102200541086a200341c0156a41086a290000370000200520032900c015370000200341800c6a20034190136a10bd052003280294132201450d00200141306c450d002002102e0b200341063a00f0060c320b200341f0066a410c10f3020c2f0b200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a2009290300370300200320032903e0103703c01520034190136a200341c0156a10c102200341f0066a41086a20034199136a290000370300200341f0066a41106a200341a1136a290000370300200341f0066a41186a200341a9136a29000037030020032003290091133703f0060240024002400240024002400240024020032d0090134101460d00200341b00e6a41186a200341f0066a41186a290300370300200341b00e6a41106a200341f0066a41106a290300370300200341b00e6a41086a200341f0066a41086a290300370300200320032903f0063703b00e20080e03020301020b41022102200341023a00a8040c060b200320113602f006200341b00e6a411f6a310000210a20032d00b00e210220032f00b10e210120032900b30e210b20032900bb0e210c20032900c30e210d20033500cb0e210e200341d0086a10ec02200341b3136a200a3c000020034190136a411f6a200e3e0000200341a7136a200d3700002003419f136a200c3700002003200b37009713200320013b009513200320023a00941320032802d80821092003200341f0066a36029013410e2108200920114b0d0220034190136a4104722104410021024110210820032802d00821050240024020090e020401000b410021022009210103402001410176220620026a2107200720022005200741306c6a2004412010ec084101481b2102200120066b220141014b0d000b0b2005200241306c6a2004412010ec080d02200920024d0d0d2005200241306c6a2201290320210a200141286a290300210b2001200141306a20092002417f736a41306c10ea081a20032009417f6a3602d808200341c8026a2004200a200b10fb01200341c0156a41086a220241043a0000200341c9156a2004290000370000200341d1156a200441086a290000370000200341d9156a200441106a290000370000200341e1156a200441186a2900003700002003410c3a00c015200341c0156a10fe0120034190136a41086a20032802d808360200200320032903d008220a370390130240200aa722010d00200341800c6a41186a22014200370300200341800c6a41106a22074200370300200341800c6a41086a22064200370300200342003703800c200341b00a6a418ef9c00041101081022006200341b00a6a41086a290000370300200320032900b00a3703800c200341c0156a419ef9c000410a10810220012002290000370300200720032900c015370300200341800c6a412010ff010c330b200341800c6a41186a22074200370300200341800c6a41106a22064200370300200341800c6a41086a22044200370300200342003703800c200341b00a6a418ef9c00041101081022004200341b00a6a41086a290000370300200320032900b00a3703800c200341c0156a419ef9c000410a10810220072002290000370300200620032900c015370300200341800c6a20034190136a10bd052003280294132202450d32200241306c450d322001102e0c320b200341c0156a200341b00e6a410010f00220032d00c0154101460d02200341c0156a41086a41043a0000200341c9156a20032903b00e370000200341d1156a200341b00e6a41086a290300370000200341d9156a200341c00e6a290300370000200341e1156a200341c80e6a2903003700002003410c3a00c015200341c0156a10fe010c310b200341b00e6a411f6a310000210a20032d00b00e210120032f00b10e210720032900b30e210b20032900bb0e210c20032900c30e210d20033500cb0e210e200341900a6a41186a22024200370300200341900a6a41106a22064200370300200341900a6a41086a22044200370300200342003703900a200341b00a6a418ef9c00041101081022004200341b00a6a41086a290000370300200320032900b00a3703900a200341d0086a41a8f9c00041091081022002200341d0086a41086a290000370300200620032900d008370300200341c0156a200341900a6a10f10220032802c015210220032902c415210f20034190136a411f6a200a3c00002003200e3e00ab132003200d3700a3132003200c37009b132003200b37009313200320073b009113200320013a0090132002410820021b210402400240200f420020021b220a422088a72205450d00200441206a2107200541067441406a41067641016a210641002102410021010340200720026a20034190136a412010ec08450d02200241c0006a21022006200141016a2201470d000b0b0240200a42ffffff1f83500d002004102e0b200341a8046a411010f3020c030b200420026a220241186a290300210b200241106a290300210c2002200241c0006a2001417f7320056a41067410ea081a200341b8026a20034190136a200c200b10fb01200341c0156a41086a220241043a0000200341c0156a41096a200329039013370000200341d1156a20034190136a41086a290300370000200341d9156a20034190136a41106a290300370000200341e1156a20034190136a41186a2903003700002003410c3a00c015200341c0156a10fe0120032004360290132003200a4280808080707c220a37029413200341800c6a41186a22014200370300200341800c6a41106a22074200370300200341800c6a41086a22064200370300200342003703800c200341b00a6a418ef9c00041101081022006200341b00a6a41086a290000370300200320032900b00a3703800c200341c0156a41a8f9c000410910810220012002290000370300200720032900c015370300200341800c6a20034190136a10f202200a42ffffff1f83500d302004102e0c300b024020032802d4082202450d00200241306c450d0020032802d008102e0b200341a8046a200810f3020c010b200341a8046a411010f3020b20032d00a80422024106460d2e0b20032f00a904210120032d00ab042107200020032902ac04370024200020073a0023200020013b0021200041206a20023a0000200041186a41003a000020004200370308200042013703000c550b200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a2009290300370300200320032903e0103703c01502400240200341c0156a10a7050d004200210e410121010240200841ff01710e03022d002d0b2012450d2b2011102e0c2b0b410221014200210e200841ff01714102470d2a2012450d2a2011102e0c2a0b2003200b3e00ab13200341af136a200b4220883c000020032012360097132003201136009313200320084110763b009113200320084108763a0090132003200a3e009b132003200c3700a3132003200a4220883e009f13200341980c6a22024200370300200341800c6a41106a22014200370300200341800c6a41086a22074200370300200342003703800c200341b00a6a418ef9c00041101081022007200341b00a6a41086a290000370300200320032900b00a3703800c200341c0156a41a8f9c00041091081022002200341c0156a41086a290000370300200120032900c015370300200341b40a6a41003a0000200341003602b00a200341e0026a200341800c6a4120200341b00a6a4105410010ca040240024020032802e002450d00200320032802e4022202410520024105491b3602c4152003200341b00a6a3602c015200341d8026a200341c0156a10ab01201341ff017141004720032802d8024520032802dc0241004771730d010c2a0b201341ff0171450d290b200341c0156a411110f30220033500c11520033300c51520033100c7154210868442208684210d200341c8156a280200210220032d00c01521014201210e0c2a0b200341c0156a41286a2001280200360200200341c0156a41206a2006290300370300200341c0156a41186a2004290300370300200341c0156a41106a2005290300370300200341c0156a41086a2009290300370300200320032903e0103703c015200341c0156a10a7050d04200341b00a6a418ef9c0004110108102200341c0156a41fbafc90041061081024120102c2202450d502003422037029413200320023602901320034190136a200341b00a6a4110107420034190136a200341c0156a411010742003280298132202417f4c0d3c20032802901321010240024020020d00410121070c010b2002102c2207450d510b20072001200210e9082101200341f0066a41086a20034190136a41086a22162802002207360200200341a8046a41026a2206200341c0156a41026a2d00003a00002003200329039013220a3703f006200320032f00c0153b01a804200341940c6a2007360200200320023602880c200320023602840c200320013602800c2003200a37028c0c200341003a009c0c2003410b3602980c2003419f0c6a20062d00003a0000200320032f01a8043b009d0c200341c0156a200341800c6a10fa020240200341c0156a41c0006a2802002213450d00200341900a6a41106a2108200341c8066a41106a2109034020034190136a41386a200341c0156a41386a29030037030020034190136a41306a200341c0156a41306a29030037030020034190136a41286a200341c0156a41286a29030037030020034190136a41206a200341c0156a41206a29030037030020034190136a41186a2218200341c0156a41186a29030037030020034190136a41106a2219200341c0156a41106a2903003703002016200341c0156a41086a290300370300200320032903c0153703901320132003280288164105746a211520032802841621142013210202400240024003400240024002400240200222062015460d00200341c8066a41186a420037030020094200370300200341c8066a41086a22024200370300200342003703c806200341d0086a418ef9c00041101081022002200341d0086a41086a2211290300370300200320032903d0083703c806200341b00a6a41c7c3cb004107108102200941086a200341b00a6a41086a2212290300370300200920032903b00a370300200341b00e6a200341c8066a10f10220032802b00e2201410820011b21054100210202400240024020032902b40e420020011b220a422088a722010e020201000b4100210203402001410176220420026a210720072002200520074106746a41206a2006412010ec084101481b2102200120046b220141014b0d000b0b200520024106746a41206a2006412010ec084521020b0240200a42ffffff1f83500d002005102e0b20020d05200341900a6a41186a420037030020084200370300200341900a6a41086a22024200370300200342003703900a200341b00a6a418ef9c000411010810220022012290000370300200320032900b00a3703900a200341d0086a41a8f9c0004109108102200841086a2011290000370000200820032900d008370000200341b00e6a200341900a6a10f10220032802b00e2202410820021b210420032902b40e420020021b220a422088a72201450d01200441206a2102200141067441406a41067641016a2107410021010340024020022006412010ec080d00200a42ffffff1f83500d072004102e0c070b200241c0006a21022007200141016a2201470d000b200a42ffffff1f8350450d020c030b200341b00e6a41186a2018290300370300200341b00e6a41106a2019290300370300200341b00e6a41086a201629030037030020032003290390133703b00e200341b00e6a10e802201441ffffff3f71450d060c050b200a42ffffff1f83500d010b2004102e0b200641206a2102200341e8026a200610eb0220032802e8020d000b0b201441ffffff3f71450d010b2013102e0b200341c0156a200341800c6a10fa0220032802801622130d000b0b024020032802840c450d0020032802800c102e0b0240200341900c6a280200450d00200328028c0c102e0b200041186a41003a000020004200370308200020032800e8063600192000411c6a200341eb066a280000360000200042003703000c530b20020d4f0c3b0b2005200741b8b2c0001056000b2006200741b8b2c0001056000b20032802d008210220032802d4082101200341c8156a200341ec106a280200360200200320032902e4103703c01520022001200341c0156a41a8e9c70041b8e9c700103e000b2000420037002420004200370308200041206a41023a0000200041186a41003a0000200042013703000c4e0b200220091046000b200920011045000b200341f0066a410910f3020c240b41022102200341023a00f0060c240b200341023a00b00a0c250b410221020c270b200341c0156a410510c0060c280b410121020c320b410221010c350b200341d8006a200341b00e6a200d200c10cb02200341c0156a41186a200341d8006a41186a290300370300200320032903683703d0152003200341d8006a41086a2903003703c815200320032903583703c0152003200341c0156a3602800c200341800c6a10cc02200341d0086a41086a200341f0106a220141086a290300370300200341063a00800c200320012903003703d0084200210d41002101410121064200210c0c320b200341800c6a410110bc060c300b2000420037002420004200370308200041206a41023a0000200041186a41003a0000200042013703000c420b410221010c360b200341386a200341b00e6a200d200c10fb01200341063a00e0100c330b200341e0106a410110bc060c310b200341e0106a410110bc060c350b200341023a00b0080c390b4184b4c400412741acb4c4001039000b41b3d6c800413041e4d6c8001039000b200320032800e0103602b00e2003200341e3106a2800003600b30e200041186a41003a000020004200370308200020032802b00e3600192000411c6a20032800b30e360000200041206a41023a0000200042013703000c3a0b200341d4156a4101360200200342013702c415200341c4e2cc003602c015200341043602e4102003200341e0106a3602d0152003200341d0086a3602e010200341c0156a4198e9c7001044000b200341d4156a4101360200200342013702c415200341c4e2cc003602c015200341043602e4102003200341e0106a3602d0152003200341d0086a3602e010200341c0156a4188e9c7001044000b41fee7c70041e90041f8e8c700105d000b200341c0156a41086a200341e0106a41086a280200360200200320032903e0103703c01541fee7c70041e900200341c0156a41f4a7c70041e8e8c700103e000b200341c0156a41386a200141c0006a290300370300200341c0156a41306a200141386a290300370300200341c0156a41286a200141306a290300370300200341c0156a41206a200141286a290300370300200341c0156a41186a200141206a290300370300200341c0156a41106a200141186a290300370300200341c0156a41086a200141106a2903003703002003200141086a2903003703c01520034190136a41286a200241286a28020036020020034190136a41206a200241206a29020037030020034190136a41186a200241186a29020037030020034190136a41106a200241106a29020037030020034190136a41086a200241086a29020037030020032002290200370390132000200341c0156a20034190136a10c6060c350b200341c0156a41386a200141c0006a290300370300200341c0156a41306a200141386a290300370300200341c0156a41286a200141306a290300370300200341c0156a41206a200141286a290300370300200341c0156a41186a200141206a290300370300200341c0156a41106a200141186a290300370300200341c0156a41086a200141106a2903003703002003200141086a2903003703c01520034190136a41286a200241286a28020036020020034190136a41206a200241206a29020037030020034190136a41186a200241186a29020037030020034190136a41106a200241106a29020037030020034190136a41086a200241086a29020037030020032002290200370390132000200341c0156a20034190136a10c0020c340b200141c8006a290300210f200141c0006a29030021102001413c6a2802002117200141386a280200211a200141306a290300210d2001412c6a28020021182001412a6a2f010021152001411c6a290200210e200141186a2802002107200141146a2802002113200141106a28020021112001410c6a28020021122001410a6a2f01002114200141086a2d00002106200141246a350200210a200141286a310000210b20012d0029211920012d00092116200341800c6a41286a2201200241286a280200360200200341800c6a41206a2204200241206a290200370300200341800c6a41186a2205200241186a290200370300200341800c6a41106a2209200241106a290200370300200341800c6a41086a2208200241086a290200370300200320022902003703800c200a200b42208684210c0240024002400240024020060e050001020304000b200341c0156a41146a4101360200200342013702c4152003419cc3cb003602c015200341043602ac0420034194c3cb003602a8042003200341a8046a3602d015200341c0156a41889cc4001044000b200341c0156a41286a2001280200360200200341c0156a41206a2004290300370300200341c0156a41186a2005290300370300200341c0156a41106a2009290300370300200341c0156a41086a2008290300370300200320032903800c3703c01520034190136a200341c0156a10c102200341c8066a41086a20034199136a290000370300200341c8066a41106a200341a1136a290000370300200341c8066a41186a200341a9136a29000037030020032003290091133703c806024002400240024002400240024020032d0090134101460d00200341900a6a41186a200341c8066a41186a290300370300200341900a6a41106a200341c8066a41106a290300370300200341900a6a41086a200341c8066a41086a290300370300200320032903c8063703900a02400240024020130d00200341c0156a4104108e04200341c0156a41086a28020021020c010b201341e400490d01200341c0156a4105108e04200341c8156a28020021020b20032903c015210a2007108c042007102e0c020b200320133602e810200320113602e410200320123602e010200341c0156a41186a200341900a6a41186a290300370300200341c0156a41106a200341900a6a41106a290300370300200341c0156a41086a2201200341900a6a41086a290300370300200320032903900a3703c01520034190136a200341e0106a200341c0156a108d042003419c136a2802002102200329029413210a02402003280290134101460d00200120023602002003200aa722043602c415200341b1c5cb003602c015200341013b01cc15200341a8066a200341c0156a10900420034120360294132003200341a8066a36029013200341c0156a20034190136a1093010240024020032d00c0154101470d00200341e8086a4200370300200341e0086a4200370300200341d8086a4200370300200342003703d0080c010b200341e8086a200341d9156a290000370300200341e0086a200341d1156a290000370300200341d8086a200341c9156a290000370300200320032900c1153703d0080b200341003602c815200342013703c0152007200341c0156a10900220032802c8152105024020032802c415450d0020032802c015102e0b20034190136a200741b00210e9081a200341b00a6a41186a200341d0086a41186a290300370300200341b00a6a41106a200341d0086a41106a290300370300200341b00a6a41086a200341d0086a41086a290300370300200320032903d0083703b00a4110102c2201450d3b200141f8f7c60036020c2001410136020820014281808080103702004110102c2202450d3b20024190f8c60036020c20024101360208200242818080801037020020012001280200417f6a2206360200024020060d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22062006280200417f6a220636020020060d002001102e0b02400240200228020820034190136a200228020c28020c1101000d0020034180116a41023a0000200341f8106a41003a000020022002280200417f6a22013602004200210b200342003703e810200342013703e010024020010d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b20034190136a10dc02410121060c010b200341c0156a20034190136a41b00210e9081a200341ba0e6a200341b80a6a290300370100200341c20e6a200341c00a6a290300370100200341ca0e6a200341c80a6a290300370100200341d00e6a200341ce0a6a29010037010020034180023b01b00e200320032903b00a3701b20e200320023602d80e200341e0106a200341c0156a200341b00e6a10dd0220032903e010420151210620032903e810210b0b20034188116a280200210220034180116a290300210e200341f0106a290300210c200328028c112101024020060d00410021064200210d200ba70d044200210b0c060b410121060240200b4201510d00200341f8106a290300210d0c060b427f2005ad42e8077e42b0b182067c220b200c7c220c200c200b541b210c4200210d0c040b2007108c042007102e4200210b4200210d0c050b2007108c042007102e4202210a0b4200210b0240201141ffffff3f710d004200210d0c040b2012102e4200210d0c030b427f2005ad42e8077e42b0b182067c220b200c7c220c200c200b541b210c0b4201210b0b0240200a4280808080f0ffffff0783500d002004102e0b2007102e2006450d01200e210a0b2000200b3703082000412c6a2001360200200041286a2002360200200041206a200a370300200041186a200d370300200041106a200c370300200042013703000c370b2000200b370308200041186a200d370300200041106a200c370300200042003703000c360b200ba72102200aa7210620034190136a41286a200128020036020020034190136a41206a200429030037030020034190136a41186a200529030037030020034190136a41106a200929030037030020034190136a41086a2008290300370300200320032903800c37039013200341e0106a20034190136a10c102200341a8066a41086a200341e9106a290000370300200341a8066a41106a200341f1106a290000370300200341a8066a41186a200341f9106a290000370300200320032900e1103703a80602400240024020032d00e0104101470d0041022101200341e0156a41023a000041002107200341d8156a41003a00004200210a200342003703c815200342013703c01502402015411074201941087472200272450d002006102e0b201141ffffff3f71450d012012102e0c010b200341c8066a41186a200341a8066a41186a290300220a370300200341c8066a41106a200341a8066a41106a290300220b370300200341c8066a41086a200341a8066a41086a290300220c370300200320032903a806220f3703c806200341e0106a41186a200a370300200341e0106a41106a200b370300200341e0106a41086a200c3703002003200f3703e010200320133602b80e200320113602b40e200320123602b00e2003419c136a201836020020034190136a41086a20154110742019410874722002723602002003200636029413200320163a009113200341003a009013200341c0156a200341e0106a2014200341b00e6a2007200ea7200e422088a720034190136a200d108f0420032903c815210a20032903c0154201520d01200341e0156a2d00002101200341c0156a41186a2d000021070b200320032800d9153602e8062003200341c0156a411c6a2800003600eb06200341c0156a41106a290300210b20032f00e115210220032d00e315210620032902e415210c20032802ec152104200041186a20073a0000200041106a200b3703002000200a370308200020032802e8063600192000411c6a20032800eb063600002000412c6a2004360200200041246a200c370200200020063a0023200020023b0021200041206a20013a0000200042013703000c360b200320032800d9153602e8062003200341c0156a411c6a2800003600eb06200341c0156a41106a290300210b200041186a200341c0156a41186a2d00003a0000200041106a200b3703002000200a370308200020032802e8063600192000411c6a20032800eb06360000200042003703000c350b20034190136a41286a200128020036020020034190136a41206a200429030037030020034190136a41186a200529030037030020034190136a41106a200929030037030020034190136a41086a2008290300370300200320032903800c37039013200341e0106a20034190136a10c102200341a8066a41086a200341e9106a290000370300200341a8066a41106a200341f1106a290000370300200341a8066a41186a200341f9106a290000370300200320032900e1103703a80602400240024020032d00e0104101470d0041022102200341e0156a41023a000041002101200341d8156a41003a00004200210a200342003703c815200342013703c015200d42ffffff3f83500d012018102e0c010b200341c8066a41186a200341a8066a41186a290300220a370300200341c8066a41106a200341a8066a41106a290300220b370300200341c8066a41086a200341a8066a41086a2903002228370300200320032903a80622293703c806200341e0106a41186a200a370300200341e0106a41106a200b370300200341e0106a41086a2028370300200320293703e0102003200d3702b40e200320183602b00e20034190136a41206a200c4220883c000020034190136a411c6a200c3e0200200341a4136a200e37020020034190136a41106a20073602002003419c136a201336020020034190136a41086a20113602002003201236029413200320143b019213200320163a009113200341013a009013200341c0156a200341e0106a2015200341b00e6a201a20172010a720034190136a200f108f0420032903c815210a20032903c0154201520d01200341c0156a41206a2d00002102200341c0156a41186a2d000021010b200320032800d9153602f0062003200341c0156a411c6a2800003600f306200341c0156a41106a290300210b20032f00e115210720032d00e315210620032902e415210c20032802ec152104200041186a20013a0000200041106a200b3703002000200a370308200020032802f0063600192000411c6a20032800f3063600002000412c6a2004360200200041246a200c370200200020063a0023200020073b0021200041206a20023a0000200042013703000c350b200320032800d9153602f0062003200341c0156a411c6a2800003600f306200341c0156a41106a290300210b200041186a200341c0156a41186a2d00003a0000200041106a200b3703002000200a370308200020032802f0063600192000411c6a20032800f306360000200042003703000c340b2003200c3e008b072003418f076a200c4220883c00002003200e37008307200320073600ff06200320133600fb06200320113600f706200320123600f306200320143b00f106200320163a00f006200341c0156a41286a2001280200360200200341c0156a41206a2004290300370300200341c0156a41186a2005290300370300200341c0156a41106a2009290300370300200341c0156a41086a2008290300370300200320032903800c3703c01520034190136a200341c0156a10c102200341c8066a41086a20034199136a290000370300200341c8066a41106a200341a1136a290000370300200341c8066a41186a200341a9136a29000037030020032003290091133703c8060240024002400240024020032d0090134101460d00200341d0086a41186a200341c8066a41186a290300370300200341d0086a41106a200341c8066a41106a290300370300200341d0086a41086a200341c8066a41086a290300370300200320032903c8063703d0080240201541024f0d00200341f00b6a4101108e040c020b0240200d42ffffffff0f560d00200341f00b6a4104108e040c020b0240200d422088a741e400490d00200341f00b6a4105108e040c020b2003200d3702e410200320183602e010200341c0156a41186a200341d0086a41186a290300370300200341c0156a41106a200341d0086a41106a290300370300200341c0156a41086a2201200341d0086a41086a290300370300200320032903d0083703c01520034190136a200341e0106a200341c0156a108d042003419c136a2802002102200329029413210a024002402003280290134101460d0020012002360200200320153b01cc152003200aa722013602c415200341b1c5cb003602c015200341a8066a200341c0156a10900420034120360294132003200341a8066a36029013200341c0156a20034190136a109301200a422088210a0240024020032d00c0154101470d00200341c80a6a4200370300200341c00a6a4200370300200341b80a6a4200370300200342003703b00a0c010b200341c80a6a200341d9156a290000370300200341c00a6a200341d1156a290000370300200341b80a6a200341c9156a290000370300200320032900c1153703b00a0b200aa72102200341a8066a41186a200341f0066a41186a290000370300200341a8066a41106a200341f0066a41106a290000370300200341a8066a41086a200341f0066a41086a290000370300200320032900f0063703a806200341c8066a200341b00a6a200341a8066a109104200341c0156a20032802c806220720032802d006109204200341900a6a41086a2206200341c0156a41086a290300370300200341900a6a41106a2204200341c0156a41106a290300370300200341e0106a41086a2205200341e4156a290200370300200341e0106a41106a2209200341ec156a290200370300200341e0106a41186a2208200341f4156a290200370300200341e0106a41206a2211200341fc156a290200370300200341e0106a41286a221220034184166a280200360200200320032903c0153703900a200320032902dc153703e010024020032802d8152213450d00200341b0086a41106a2004290300370300200341b0086a41086a2006290300370300200341b00e6a41086a2005290300370300200341b00e6a41106a2009290300370300200341b00e6a41186a2008290300370300200341b00e6a41206a2011290300370300200341b00e6a41286a2012280200360200200320032903900a3703b008200320032903e0103703b00e024020032802cc06450d002007102e0b200341a8046a41166a200341b0086a41106a290300220a370100200341a8046a410e6a200341b0086a41086a290300370100200341e8056a41166a2207200a370100200341e8056a41106a200341a8046a41106a290100370300200320032903b0083701ae04200341e8056a41086a200341a8046a41086a290100370300200320032901a8043703e80520034190136a41106a2206200729010037030020034190136a41086a200341e8056a410e6a290100370300200320032901ee0537039013200320133602a813200341d4136a200341d80e6a280200360200200341cc136a200341d00e6a290300370200200341c4136a200341c80e6a290300370200200341bc136a200341b00e6a41106a290300370200200341b4136a200341b00e6a41086a290300370200200341ac136a20032903b00e37020002402006280200201a470d00200341a4136a2802002017460d030b200341f00b6a410b108e040c050b024020032802cc06450d002007102e0b200341f00b6a4108108e040c050b200341f00b6a41086a20023602002003200a3703f00b0c050b0240200341b4136a2207200341d0086a412010ec08450d00200341f00b6a4109108e040c030b20034188046a200720032903901320034190136a41086a29030010fb01200341e8056a4195fec6004108108102200341a8046a41f4f3c30041091081024120102c2207450d35200342203702e410200320073602e010200341e0106a200341b00a6a41201074200320032802e010220720032802e810220610a3013703b00e200341cc156a200720066a360200200320073602c8152003200341b00e6a41086a3602c4152003200341b00e6a3602c015200341b0086a200341c0156a107c024020032802e410450d002007102e0b4120102c2207450d35200342203702b40e200320073602b00e200341b00e6a200341f0066a41201074200341e0106a20032802b00e220720032802b80e220610d803200341cc156a200720066a360200200320073602c8152003200341f0106a3602c4152003200341e0106a3602c015200341900a6a200341c0156a107c024020032802b40e450d002007102e0b20032802b808220620032802980a22046a41206a2207417f4c0d210240024020070d00410121050c010b2007102c2205450d360b200341003602c815200320073602c415200320053602c015200341c0156a200341e8056a41101074200341c0156a200341a8046a41101074200341c0156a20032802b008220720061074200341c0156a20032802900a220620041074024020032802940a450d002006102e0b024020032802b408450d002007102e0b20032802c015220720032802c81510ff01024020032802c415450d002007102e0b200341f0066a109804200341cd156a200341d0086a41086a290300370000200341d5156a200341d0086a41106a290300370000200341dd156a200341d0086a41186a290300370000200341e5156a20032903b00a370000200341ed156a200341b00a6a41086a290300370000200341f5156a200341b00a6a41106a290300370000200341fd156a200341b00a6a41186a290300370000200341033a00c415200341143a00c015200320032903d0083700c515200341a8166a201a360200200341ac166a20173602002003419d166a200341f0066a41186a29000037000020034195166a200341f0066a41106a2900003700002003418d166a200341f0066a41086a29000037000020034185166a20032900f006370000200341c0156a10fe01200341063a00f00b024020032802ac1341ffffff3f71450d0020032802a813102e0b200241ffffff3f71450d042001102e0c040b200341023a00f00b0b200d42ffffff3f83500d022018102e0c020b20032802ac1341ffffff3f71450d0020032802a813102e0b200241ffffff3f71450d002001102e0b024020032d00f00b22024106460d0020032f00f10b210120032d00f30b2107200020032902f40b370024200020073a0023200020013b0021200041206a20023a0000200041186a41003a000020004200370308200042013703000c340b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c330b200341c0156a200141046a41c80010e9081a20034190136a41286a200241286a28020036020020034190136a41206a200241206a29020037030020034190136a41186a200241186a29020037030020034190136a41106a200241106a29020037030020034190136a41086a200241086a29020037030020032002290200370390132000200341c0156a20034190136a10cf020c320b200341c0156a200141086a41a80210e9081a20034190136a41286a200241286a28020036020020034190136a41206a200241206a29020037030020034190136a41186a200241186a29020037030020034190136a41106a200241106a29020037030020034190136a41086a200241086a29020037030020032002290200370390132000200341c0156a20034190136a1080040c310b200141106a28020021232001410c6a2802002131200141086a280200211d200141066a2f0100210420012f01042107200241246a2d0000211c200241226a2f010021092002411a6a290100210b200241196a2d00002108200241186a2d00002111200241166a2f01002112200241156a2d00002113200241146a2d00002115200241106a28020021142002410c6a2802002116200241086a2802002118200241066a2f01002119200241056a2d0000211a200241046a2d00002101200241026a2f0100211720022d0001212220022d00002105200341f00b6a41026a2206200241276a2d00003a00002003200241256a2f00003b01f00b2002280228210202400240024002400240024002400240024002400240024002402007417f6a0e03000102000b024002400240024002400240024020050e03000102000b4100210441022107200121060240024020220e03000107000b4100210720012106410021040c060b41012107200121060c050b4101210441022106024020010e03020005020b41012106410121040c040b410221044102210620010e03000103000b410021060c010b410121060b0b200228020041016a221b41014d0d0b200341e4156a201c360200200341e2156a20093b0100200341da156a200b370100200341d9156a20083a0000200341d8156a20113a0000200341d6156a20123b0100200341d5156a20133a0000200341d4156a20153a0000200341d0156a2014360200200341cc156a2016360200200341c8156a20183602002002201b360200200320023602e815200320193b01c6152003201a3a00c515200320063a00c415200320173b01c215200320073a00c115200320043a00c015201d202341b0026c6a2107200341c0156a10a7052106024020230d004200210a201d21010c050b200341e0106a410472212120060d024200210a41002106201c2130201c2120201c2132201d210403402004280200211b20034190136a200441046a221e41ac0210e9081a200341c0156a201e41ac0210e9081a0240201b411c470d00200441b0026a21010c080b200341e0106a200341c0156a41ac0210e9081a200341b00e6a200341e0106a41ac0210e9081a200341800c6a200341b00e6a41ac0210e9081a2003201b3602e0102021200341800c6a41ac0210e9081a200341d0086a200341e0106a109704200341c0156a200341e0106a41b00210e9081a0240024002400240024020050e03000102000b4100211f4102211b2001211e0240024020220e03000105000b4100211b2001211e4100211f0c040b4101211b2001211e0c030b4101211f4102211e203221200240024020010e03000104000b4100211e203221200c020b4101211e203241807e71201c72222021324101211f0c020b4102211f203021204102211e02400240024020010e03000104000b4100211e0c010b203041807e71201c7221304101211e0b203021200b0b200228020041016a222441014d0d0c20022024360200200320023602b813200320203602b413200320093b01b2132003200b3701aa13200320083a00a913200320113a00a813200320123b01a613200320133a00a513200320153a00a413200320143602a0132003201636029c132003201836029813200320193b0196132003201a3a0095132003201e3a009413200320173b0192132003201b3a0091132003201f3a009013200341b00e6a200341c0156a20034190136a10dd020240024020032903b80e4201510d0020032903d008210c0c010b20032903d008220c20032903c00e220d200d200c561b210c0b427f200a200c7c220c200c200a541b210a024020032903b00e4201510d00200641016a2106200441b0026a22042007470d010c050b0b200441b0026a21010c080b200341f0066a41026a20062d00003a0000200320032f01f00b3b01f006024002400240024002400240024020050e03000102000b41002106410221070240024020220e03000107000b41002107410021060c060b410121070c050b410121062001210541022101024020050e03020005020b41012101410121060c040b41022106200121054102210120050e03000103000b410021010c010b410121010b0b200228020041016a220541014d0d0a200341e4156a201c360200200341e2156a20093b0100200341da156a200b370100200341c0156a41196a20083a0000200341c0156a41186a20113a0000200341d6156a20123b0100200341d5156a20133a0000200341d4156a220920153a0000200341c0156a41106a2014360200200341cc156a22082016360200200341c0156a41086a201836020020022005360200200320023602e815200320193b01c6152003201a3a00c515200320013a00c415200320173b01c215200320073a00c115200320063a00c01520034190136a200341c0156a10c102200341c8066a41086a220120034199136a290000370300200341c8066a41106a2207200341a1136a290000370300200341c8066a41186a220620034190136a41196a29000037030020032003290091133703c8060240024002400240024020032d0090134101460d00200341900a6a41186a2006290300220a370300200341900a6a41106a2007290300220b370300200341900a6a41086a2001290300220c370300200320032903c806220d3703900a2008200c3702002009200b370200200341dc156a200a370200200341b1c5cb003602c0152003200d3702c415200320043b01e4154112102c2201450d3d2003421237029413200320013602901320034190136a41b1c5cb004110107420034190136a200341c0156a41047241201074200320043b01e01020034190136a200341e0106a41021074200341a8066a200328029013220120032802981310b0010240200328029413450d002001102e0b20034120360294132003200341a8066a36029013200341c0156a20034190136a1093010240024020032d00c0154101470d00410021044200210a41002105410021094100210841002111410021124100211341002115410021144100211641002118410021190c010b200341d9156a290000210a200341d8156a2d00002104200341d7156a2d00002105200341d5156a2f00002109200341d4156a2d00002108200341d3156a2d00002111200341cf156a2800002112200341cb156a280000211320032800c715211520032f00c515211420032d00c415211620032d00c315211820032f00c11521190b4110102c2201450d3d200141f8f7c60036020c2001410136020820014281808080103702004110102c2207450d3d20074190f8c60036020c20074101360208200742818080801037020020012001280200417f6a2206360200024020060d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22062006280200417f6a220636020020060d002001102e0b200341f0066a41026a2201200341c0156a41026a2d00003a000020072007280200417f6a2206360200200320032f00c0153b01f006024020060d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22062006280200417f6a220636020020060d002007102e0b200341800c6a201d10970420034190136a201d41b00210e9081a200341b00a6a41026a20012d00003a0000200320032f01f0063b01b00a02400240200228020820034190136a200228020c28020c1101000d0020034180116a41023a0000200341f8106a41003a000020022002280200417f6a2201360200200342003703e810200342013703e010024020010d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b20034190136a10dc0220032903800c210a0c010b200341c0156a20034190136a41b00210e9081a200341ca0e6a200a370100200341c90e6a20043a0000200341c80e6a20053a0000200341c60e6a20093b0100200341c50e6a20083a0000200341c40e6a20113a0000200341b00e6a41106a2012360200200341bc0e6a2013360200200341b80e6a2015360200200341d50e6a20032f01b00a3b0000200341d70e6a200341b20a6a2d00003a0000200320143b01b60e200320163a00b50e200320183a00b40e200320193b01b20e20034180023b01b00e200320023602d80e200341e0106a200341c0156a200341b00e6a10dd02024020032903e8104201510d0020032903800c210a0c010b20032903800c220a200341e0106a41106a290300220b200b200a561b210a0b200320032800f9103602a8042003200341fc106a2800003600ab04200a42d0ceae3d7c220b200a54210620034188116a280200210220032903e0104201520d0120034180116a290300210c200320032800ab043600d308200320032802a8043602d008200320032802d0083602b008200320032800d3083600b308200c420888210a200328028c112101200ca72107410121040c020b20022002280200417f6a2201360200024020010d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b201d108b02201d102e4200210c410221070c020b200320032800ab043600d308200320032802a8043602d008410021040b427f200b20061b210b201d102e4201210c2004450d010b200320032800b3083600eb05200320032802b0083602e805200041276a200a4230883c0000200041256a200a4220883d00002000200a3e0021200041186a41003a0000200041106a200b3703002000200c370308200020032802e8053600192000411c6a20032800eb053600002000412c6a2001360200200041286a2002360000200041206a20073a0000200042013703000c3c0b200320032800b3083600eb05200320032802b0083602e805200041186a41003a0000200041106a200b37030020004201370308200020032802e8053600192000411c6a20032800eb05360000200042003703000c3b0b20034190136a41246a201c3a000020034190136a41226a20093b010020034190136a411a6a200b37010020034190136a41196a20083a000020034190136a41186a20113a000020034190136a41166a20123b010020034190136a41156a20133a000020034190136a41146a20153a000020034190136a41106a201436020020034190136a410c6a201636020020034190136a41086a2018360200200320193b0196132003201a3a009513200320013a009413200320173b019213200320223a009113200320053a00901320034190136a41256a20032f01f00b3b000020034190136a41276a20062d00003a0000200320023602b813200341e0106a410c6a2023360200200341e0106a41086a20313602002003201d3602e410200320034190136a3602e010200341c0156a200341e0106a10a40520032802b81322022002280200417f6a360200024020032802b81322022802000d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b20032802b81341046a22022002280200417f6a36020020032802b813220241046a2802000d002002102e0b200341d9156a2102200341c0156a41186a2d00002101200341c0156a41106a290300210a20032903c815210b024020032903c0154201520d00200320022800003602f0062003200241036a2800003600f306200341c0156a41206a280200210220032902e415210c20032802ec152107200041186a20013a0000200041106a200a3703002000200b370308200020032802f0063600192000411c6a20032800f3063600002000200736002c2000200c370024200041206a2002360000200042013703000c3b0b200320022800003602f0062003200241036a2800003600f306200041186a20013a0000200041106a200a3703002000200b370308200020032802f0063600192000411c6a20032800f306360000200042003703000c3a0b201c213041002106201c2124201c2132201d21044200210a03402004280200211b20034190136a200441046a221e41ac0210e9081a200341c0156a201e41ac0210e9081a201b411c460d03200341e0106a200341c0156a41ac0210e9081a200341b00e6a200341e0106a41ac0210e9081a200341800c6a200341b00e6a41ac0210e9081a2003201b3602e0102021200341800c6a41ac0210e9081a200341d0086a200341e0106a10970420034190136a200341e0106a41b00210e9081a0240024002400240024020050e03000102000b410021204102211b2001211e0240024020220e03000105000b4100211b2001211e410021200c040b4101211b2001211e0c030b410121204102211e203221240240024020010e03000104000b4100211e203221240c020b4101211e203241807e71201c7222242132410121200c020b41022120203021244102211e02400240024020010e03000104000b4100211e0c010b203041807e71201c7221304101211e0b203021240b0b200228020041016a221f41014d0d092002201f36020002400240200228020820034190136a200228020c28020c1101000d0020022002280200417f6a221b360200200341023a00d00e200341003a00c80e200342003703b80e200342013703b00e0240201b0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a221b201b280200417f6a221b360200201b0d002002102e0b20034190136a10dc0220032903d008210c0c010b200341c0156a20034190136a41b00210e9081a200320023602d80a200320243602d40a200320093b01d20a2003200b3701ca0a200320083a00c90a200320113a00c80a200320123b01c60a200320133a00c50a200320153a00c40a200320143602c00a200320163602bc0a200320183602b80a200320193b01b60a2003201a3a00b50a2003201e3a00b40a200320173b01b20a2003201b3a00b10a200320203a00b00a200341b00e6a200341c0156a200341b00a6a10dd02024020032903b80e4201510d0020032903d008210c0c010b20032903d008220c20032903c00e220d200d200c561b210c0b427f200a200c7c220c200c200a541b210a20032903b00e4201510d05200641016a2106200441b0026a22042007470d000b0b200721010b200341c0156a20034190136a41ac0210e9081a0c010b200441b0026a21010b024020072001460d0003402001108b022007200141b0026a2201470d000b0b02402031450d00203141b0026c450d00201d102e0b200341c8156a41063a0000200341113a00c015200341c0156a10fe0120022002280200417f6a22013602002023ad4288b0fa007e200a7c42c8b8fa067c210a20010d032002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a22013602002001450d020c030b200441b0026a21010b20034190136a41206a200341d80e6a290300220b37030020034190136a41186a200341b00e6a41206a290300220c37030020034190136a41106a200341b00e6a41186a29030037030020034190136a41086a200341b00e6a41106a290300370300200320032903b80e37039013200341c0156a41086a200c370300200341c0156a41106a200b3e0200200341113a00c015200320063602c415200641016aad4288b0fa007e210b200341c0156a10fe01024020072001460d0003402001108b022007200141b0026a2201470d000b0b200b200a7c210a02402031450d00203141b0026c450d00201d102e0b200a42c8b8fa067c210a20022002280200417f6a220136020020010d012002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d010b2002102e0b200320032800eb063600eb05200320032802e8063602e805200041186a41003a0000200041106a200a37030020004201370308200020032802e8053600192000411c6a20032800eb05360000200042003703000c310b00000b200341e8056a41026a22062001410f6a2d00003a0000200341800c6a41086a2204200141206a290200370300200341800c6a41106a2205200141286a290200370300200320012f000d3b01e8052003200141186a2902003703800c200141c8006a290300210d200141c0006a290300210e2002411a6a290100210c200241196a2d00002113200241186a2d00002115200241166a2f01002114200241156a2d00002116200241146a2d00002118200241126a2f01002119200241116a2d0000211a200241106a2d000021172002410e6a2f0100211b2002410d6a2d0000211c2002410c6a2d0000211d2002410a6a2f0100211e200241096a2d0000211f200241086a2d00002120200241066a2f01002121200241056a2d00002122200241046a2d00002123200241026a2f01002124200141d0006a2802002131200141146a2802002108200141106a28020021112001410c6a2d00002109200141386a290300210b200141306a290300210a2002280228210720022d0001211220022d0000210202400240024002400240200141086a2802000e050001020304000b200341c0156a41146a4101360200200342013702c4152003419cc3cb003602c015200341043602e410200341a4a7c7003602e0102003200341e0106a3602d015200341c0156a41aca7c7001044000b20072007280200417f6a220136020002400240024002400240200241ff01710d00024020010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b201241ff01714101460d02200341c8066a41186a200341a8066a41186a290300370300200341c8066a41106a200341a8066a41106a290300370300200341c8066a41086a200341a8066a41086a290300370300200320032903a8063703c8060c010b024020010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b200341c8066a41186a200341a8066a41186a290300370300200341c8066a41106a200341a8066a41106a290300370300200341c8066a41086a200341a8066a41086a290300370300200320032903a8063703c8060b200341023a0090130c010b2003201f3a00af06200320203a00ae06200320213b01ac06200320223a00ab06200320233a00aa06200320243b01a8062003201a3a00b706200320173a00b6062003201b3b01b4062003201c3a00b3062003201d3a00b2062003201e3b01b006200320133a00bf06200320153a00be06200320143b01bc06200320163a00bb06200320183a00ba06200320193b01b8062003200c3703c006200341c8066a41186a2202200c370300200341c8066a41106a220120032903b806370300200341c8066a41086a220720032903b006370300200320032903a8063703c806200341900a6a41186a22062002290300370300200341900a6a41106a22022001290300370300200341900a6a41086a22012007290300370300200320032903c8063703900a200341c0156a41186a2006290300370300200341c0156a41106a2002290300370300200341c0156a41086a2001290300370300200320032903900a3703c01520034190136a200341c0156a10b30320032d0090134106460d010b20032802901321022000200329029413370024200041206a2002360000200041186a41003a000020004200370308200042013703000c330b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c320b200341a8046a41026a20062d00003a0000200341e0106a41086a2004290300370300200341e0106a41106a200529030037030020072007280200417f6a2201360200200320032f01e8053b01a804200320032903800c3703e0100240024002400240024002400240200241ff01710d00024020010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b41012102201241ff01714101470d01200341d0086a41026a2201200341a8046a41026a2d00003a000020034190136a41086a2207200341e0106a41086a29030037030020034190136a41106a200341e0106a41106a290300370300200320032f01a8043b01d008200320032903e0103703901320090e03020403040b20010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b41022102200341023a00b00a20094102470d0302402008450d002011102e0b410221020c030b200341f0066a41026a20012d00003a0000200341b00e6a41086a2007290300370300200341b00e6a410d6a20034190136a410d6a290000370000200320032f01d0083b01f00620032003290390133703b00e410021020c010b2008450d002011102e0b200341bb066a200341b00e6a41086a290300370000200341a8066a41186a2201200341bd0e6a290000370000200320032f01f0063b01a806200320083600af06200320113600ab06200320032903b00e3700b3062003200341f0066a41026a2d00003a00aa0602402002450d0041012102200341013a00b00a0c010b200341c0156a41186a2001290300370300200341c0156a41106a200341a8066a41106a290300370300200341c0156a41086a200341a8066a41086a290300370300200320032903a8063703c015200341b00a6a200341c0156a10b30320032d00b00a22024106460d010b20032f00b10a210120032d00b30a2107200020032902b40a370024200020073a0023200020013b0021200041206a20023a0000200041186a41003a000020004200370308200042013703000c320b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c310b200341a8046a41026a20062d00003a0000200341b00e6a41086a2004290300370300200341b00e6a41106a2005290300370300200320032f01e8053b01a804200320032903800c3703b00e20072007280200417f6a220136020002400240024002400240024002400240200241ff01710d00024020010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b201241ff01714101470d022003201f3a00cf06200320203a00ce06200320213b01cc06200320223a00cb06200320233a00ca06200320243b01c8062003201a3a00d706200320173a00d6062003201b3b01d4062003201c3a00d3062003201d3a00d2062003201e3b01d006200320133a00df06200320153a00de06200320143b01dc06200320163a00db06200320183a00da06200320193b01d8062003200c3703e006200341900a6a41186a2202200c370300200341900a6a41106a220120032903d806370300200341900a6a41086a220720032903d006370300200320032903c8063703900a200341e0106a41186a2002290300370300200341e0106a41106a2001290300370300200341e0106a41086a2007290300370300200320032903900a3703e010200a4280a094a58d1d544100200b501b450d01410321020c040b024020010d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b200341900a6a41186a200341c8066a41186a290300370300200341900a6a41106a200341c8066a41106a290300370300200341900a6a41086a200341c8066a41086a290300370300200320032903c8063703900a0c020b200341d0086a41026a2201200341a8046a41026a2d00003a0000200341c0156a41086a200341b00e6a41086a290300370300200341c0156a41106a200341b00e6a41106a290300370300200320032f01a8043b01d008200320032903b00e3703c0154101210202400240024020090e03000201020b200341f0066a41026a20012d00003a0000200341b00a6a41086a200341c0156a41086a290300370300200341b00a6a410d6a200341c0156a410d6a290000370000200320032f01d0083b01f006200320032903c0153703b00a410021020c010b2008450d002011102e0b200341bb066a200341b00a6a41086a290300370000200341a8066a41186a2201200341bd0a6a290000370000200320032f01f0063b01a806200320083600af06200320113600ab06200320032903b00a3700b3062003200341f0066a41026a2d00003a00aa060240024020020d0020034190136a41186a200129030037030020034190136a41106a200341a8066a41106a29030037030020034190136a41086a200341a8066a41086a290300370300200320032903a80637039013200341c0156a20034190136a10b10320032802c015220120032802c815108f022102024020032802c415450d002001102e0b2002450d014194a4c700ad210a4280808080f002210b4101210741192106410321020c050b4200210a410121024200210b0c050b200341c0156a200341e0106a20034190136a200a200b410110ca02024020032d00c01522024106470d00200341c0156a20034190136a10b10320032802c015220120032802c815108f022102024020032802c415450d002001102e0b2002450d06200341c8156a411736020020034194a4c7003602c415200341013a00c21520034183323b01c01541bca7c7004137200341c0156a41f4a7c7004184a8c700103e000b20032d00c315210120032d00c215210720032d00c115210620032902c415220a42808080807083210b0c040b200341900a6a41186a200341c8066a41186a290300370300200341900a6a41106a200341c8066a41106a290300370300200341900a6a41086a200341c8066a41086a290300370300200320032903c8063703900a0b410221020b4102210741ceeac700ad210a42808080809001210b4119210620094102470d002008450d002011102e41ceeac700ad210a0b0b200020013a0023200020073a0022200020063a0021200041206a20023a0000200041186a41003a0000200042003703082000200b42808080807083200a42ffffffff0f8384370024200042013703000c310b200341c0156a41186a2202200d3703002003200e3703d0152003200a3703c015200320313602e0152003200b3703c81520034190136a200341c0156a10b203200220034190136a41186a290300370300200341c0156a41106a20034190136a41106a290300370300200341c0156a41086a20034190136a41086a29030037030020032003290390133703c015200341b00a6a200341c0156a10b303200041186a41003a000020004200370308200020032800e8063600192000411c6a200341eb066a280000360000200042003703000c300b200141f0006a2903002110200141e8006a2903002128200141e0006a290300210c200141d8006a290300210f200141f8006a2802002114200ba72113200aa72101200a422088a72115200341a8046a41026a20062d00003a0000200341b00e6a41086a2004290300370300200341b00e6a41106a200529030037030020072007280200417f6a2206360200200320032f01e8053b01a804200320032903800c3703b00e0240024002400240024002400240200241ff01710d00024020060d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b41022102201241ff01710d0141032102200f4280a094a58d1d544100200c501b0d01200b422088a721062001410876210241012107200141ff01710e03020403040b4102210220060d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22062006280200417f6a220636020020060d002007102e0b200141ff01714102470d032013450d032015102e0c030b410021070c010b02402013450d002015102e0b0b200341df066a200d3700002003200e3700d706200320313a00e706200320063600d306200320133600cf06200320153600cb06200320023b01c806200320024110763a00ca06024020070d00200341e0106a41186a200341c8066a41186a290300370300200341e0106a41106a200341c8066a41106a290300370300200341e0106a41086a200341c8066a41086a290300370300200320032903c8063703e010200341d0086a41026a2201200341a8046a41026a2d00003a0000200320032f01a8043b01d008200341c0156a41086a2207200341b00e6a41086a290300370300200341c0156a41106a200341b00e6a41106a290300370300200320032903b00e3703c0154101210202400240024020090e03000201020b200341f0066a41026a20012d00003a0000200341b00a6a41086a2007290300370300200341b00a6a410d6a200341c0156a410d6a290000370000200320032f01d0083b01f006200320032903c0153703b00a410021020c010b2008450d002011102e0b200341bb066a200341b00a6a41086a290300370000200341a8066a41186a200341bd0a6a290000370000200320032f01f0063b01a806200320083600af06200320113600ab06200320032903b00a3700b3062003200341f0066a41026a2d00003a00aa060240024020020d0020034190136a41186a200341a8066a41186a29030037030020034190136a41106a200341a8066a41106a29030037030020034190136a41086a200341a8066a41086a290300370300200320032903a80637039013200341c0156a200341e0106a10b10320032802c015220120032802c815108f022102024020032802c415450d002001102e0b2002450d014194a4c700ad210a4280808080f002210b4101210141192107410321020c040b4200210a410121024200210b0c030b200341c0156a20034190136a200341e0106a200f200c410110ca020240024020032d00c01522024106470d00200341c0156a200341e0106a10b10320032802c015220120032802c815108f022102024020032802c415450d002001102e0b2002450d01200341c8156a411736020020034194a4c7003602c415200341013a00c21520034183323b01c01541bca7c7004137200341c0156a41f4a7c7004194a8c700103e000b20032d00c315210620032d00c215210120032d00c115210720032902c415220a42808080807083210b0c030b200341c0156a41186a22022010370300200320283703d0152003200f3703c015200320143602e0152003200c3703c815200341e0106a200341c0156a10b2032002200341e0106a41186a290300370300200341c0156a41106a200341e0106a41106a290300370300200341c0156a41086a200341e0106a41086a290300370300200320032903e0103703c015200341b00a6a200341c0156a10b303200041186a41003a000020004200370308200020032800e8063600192000411c6a200341eb066a280000360000200042003703000c320b410121020b4102210141ceeac700ad210a42808080809001210b41192107024020094102470d002008450d002011102e41ceeac700ad210a0b0b200020063a0023200020013a0022200020073a0021200041206a20023a0000200041186a41003a0000200042003703082000200b42808080807083200a42ffffffff0f8384370024200042013703000c2f0b200341a4066a41026a22192001410b6a2d00003a00002003419c066a41046a221a2001411c6a2d00003a0000200320012f00093b01a4062003200141186a28000036029c06200141286a290300210a200141206a290300210c200141086a2d000021042001410c6a2800002111200141106a2800002105200141146a2800002118200141306a290300210b200141386a290300210d200141c0006a290300210e200141c8006a2d0000211b20012d001d211720012f011e211e200341f00b6a41086a221f200141da006a2f00003b0100200341900a6a41086a2221200141e8006a2802003602002003200141cc006a280000360097062003200128004936029406200320012900523703f00b2003200141e0006a2903003703900a200141d0006a2d0000211c200141dc006a2802002120200141ec006a2802002122200141f0006a2802002123200141f4006a280200212420012d0051211d2003200241166a2901003703b00a20032002411c6a2901003701b60a200241246a2802002112200241156a2d00002113200241146a2d00002115200241106a28020021072002410c6a2802002108200241086a2802002109200241046a2802002106200241026a2f010021142002280228210120022d0001211620022d0000210202400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020040e06000102030405000b200341c0156a41146a4101360200200342013702c4152003419cc3cb003602c015200341043602ac0420034194c3cb003602a8042003200341a8046a3602d015200341c0156a41e0f3c0001044000b200341ff106a200a3c0000200341f3106a201a2d00003a00002003200c3700f710200320192d00003a00e210200320032f01a4063b01e010200320183600eb10200320053600e710200320113600e3102003200328029c063600ef102003201e3b00f510200320173a00f4102003200a4238883c00c6152003200a4228883d01c4152003200a4208883e02c0152003201b3a00df152003200e3700d7152003200d3700cf152003200b3700c715200341e3156a2003280097063600002003201d3a00e8152003201c3a00e71520032003280294063602e015200341f1156a201f2f01003b0000200320203600f315200320032903f00b3700e915200341ff156a20212f01003b0000200320032903900a3700f71520034190136a41156a20133a000020034190136a41146a20153a000020034190136a41106a200736020020034190136a410c6a200836020020034190136a41086a200936020020034190136a41246a20123602002003200636029413200320143b019213200320163a009113200320023a00901320034190136a41166a20032903b00a37010020034190136a411c6a20032901b60a370100200320013602b81320034190136a10bb060d04200341f0066a200341e0106a10e00220034190136a200341c0156a20032802f006220220032802f80641d4e2cc00410010e10220032d0090134101470d0520032003280095133600b30820032003280192133602b008200320032800b3083600eb05200320032802b0083602e805200320032d0091133a00800c200320032802e8053600810c200320032800eb053600840c20034199136a2d00002101200341a1136a28000021072003419a136a350100210a2003419e136a330100210b2003418f0c6a200341a0136a3100003c00002003418d0c6a200b3d00002003200a3e00890c200320073602900c200320013a00880c20034190136a200341800c6a10ab03200328029013220720032802981310e40241ff017121010240200328029413450d002007102e0b024020014102460d00200341a8046a410510b0030c140b200341b00e6a41106a200341800c6a41106a280200360200200341b00e6a41086a200341800c6a41086a290300370300200320032903800c3703b00e20034190136a41186a200341e0106a41186a29030037030020034190136a41106a200341e0106a41106a29030037030020034190136a41086a200341e0106a41086a290300370300200320032903e01037039013200341d0086a200341b00e6a20034190136a10ac03024020032d00d00822014106470d00024020032802f406450d002002102e0b200341063a00a8040c160b20032d00d108210720032d00d208210620032d00d3082104200320032902d4083702ac04200320043a00ab04200320063a00aa04200320073a00a904200320013a00a8040c130b200341800c6a41026a20192d00003a0000200341b00e6a41046a201a2d00003a0000200320032f01a4063b01800c2003200328029c063602b00e20032003280294063602c80620032003280097063600cb06200341b0086a41086a201f2f01003b0100200320032903f00b3703b008200341c0156a41156a20133a0000200341c0156a41146a20153a0000200341c0156a41106a2007360200200341c0156a410c6a2008360200200341c0156a41086a2009360200200341c0156a41246a2012360200200320063602c415200320143b01c215200320163a00c115200320023a00c015200341c0156a41166a20032903b00a370100200341c0156a411c6a20032901b60a370100200320013602e815200341c0156a10a7050d05200341c0066a22024200370300200341a8066a41106a22014200370300200341a8066a41086a22074200370300200342003703a806200341e8056a41b6d1cc0041061081022007200341e8056a41086a2204290300370300200320032903e8053703a806200341a8046a41e9f9c00041051081022002200341a8046a41086a2209290300370300200120032903a804370300200341d8036a200341a8066a412010f802200341d8036a41106a290300210f20032903e003211020032802d8032106200242003703002001420037030020074200370300200342003703a806200341e8056a41b6d1cc00410610810220072004290300370300200320032903e8053703a806200341a8046a41e9f9c000410510810220022009290300370300200120032903a80437030020032010420020061b2210200c7c22283703c0152003200f420020061b200a7c2028201054ad7c3703c815200341a8066a4120200341c0156a411010b201200341d3156a200341b40e6a2d00003a00002003200341820c6a2d00003a00c215200320032f01800c3b01c015200320183600cb15200320053600c715200320113600c315200320032802b00e3600cf15200341e8056a41b6d1cc004106108102200341a8046a41b6d1cc0041061081024114102c2202450d402003421437029413200320023602901320034190136a200341c0156a411410742003280298132202417f4c0d2c20032802901321010240024020020d00410121070c010b2002102c2207450d410b20072001200210e90821070240200328029413450d002001102e0b200241206a2201417f4c0d2c2001102c2206450d4020034100360298132003200136029413200320063602901320034190136a200341e8056a4110107420034190136a200341a8046a4110107420034190136a20072002107402402002450d002007102e0b200328029013210220032802981321012003200a3703c8152003200c3703c01520022001200341c0156a411010b2010240200328029413450d002002102e0b0240200b4201520d00200341c0156a41146a20032800cb06360000200341e2156a200341b8086a2f01003b01002003201b3a00d0152003200e3703c8152003200d3703c015200320032802c8063600d1152003201d3a00d9152003201c3a00d815200320032903b0083701da15200320203602e4152003200341820c6a2d00003a009213200320032f01800c3b0190132003201836009b1320032005360097132003201136009313200341a3136a200341b40e6a2d00003a0000200320032802b00e36009f13200341e8056a41b6d1cc004106108102200341a8046a41bcdbc80041071081024114102c2202450d41200342143702e410200320023602e010200341e0106a20034190136a4114107420032802e8102202417f4c0d2d20032802e01021010240024020020d00410121070c010b2002102c2207450d420b20072001200210e9082107024020032802e410450d002001102e0b200241206a2201417f4c0d2d2001102c2206450d41200341003602e810200320013602e410200320063602e010200341e0106a200341e8056a41101074200341e0106a200341a8046a41101074200341e0106a20072002107402402002450d002007102e0b20032802e010220220032802e810200341c0156a10ba0520032802e410450d002002102e0b0240201741ff017122024102460d00200341d3156a200341b40e6a2d00003a0000200320032f01800c3b01c015200320183600cb15200320053600c715200320113600c315200320032802b00e3600cf152003200341800c6a41026a2d00003a00c21520034190136a200341c0156a10e30220032802901321012003280298132107200341003602c815200342013703c0150240024020024101460d00200341003a00a804200341c0156a200341a8046a410110740c010b200341013a00a804200341c0156a200341a8046a410110740b2001200720032802c015220220032802c81510b201024020032802c415450d002002102e0b200328029413450d002001102e0b200041186a41003a000020004200370308200020032800e8063600192000411c6a200341eb066a280000360000200042003703000c430b200341ff106a200a3c0000200341f3106a201a2d00003a00002003200c3700f710200320192d00003a00e210200320032f01a4063b01e010200320183600eb10200320053600e710200320113600e3102003200328029c063600ef102003201e3b00f510200320173a00f4102003200a4238883c00c6152003200a4228883d01c4152003200a4208883e02c0152003201b3a00df152003200e3700d7152003200d3700cf152003200b3700c715200341e3156a2003280097063600002003201d3a00e8152003201c3a00e71520032003280294063602e015200341f1156a201f2f01003b0000200320203600f315200320032903f00b3700e915200341ff156a20212f01003b0000200320032903900a3700f71520034190136a41156a20133a000020034190136a41146a20153a000020034190136a41106a200736020020034190136a410c6a200836020020034190136a41086a200936020020034190136a41246a20123602002003200636029413200320143b019213200320163a009113200320023a00901320034190136a41166a20032903b00a37010020034190136a411c6a20032901b60a370100200320013602b81320034190136a10bb060d05200341d0086a200341e0106a10e00220034190136a200341c0156a20032802d008220220032802d8082022202410e10220032d0090134101470d0620032003280095133600b30820032003280192133602b008200320032800b3083600eb05200320032802b0083602e805200320032802e8053602a804200320032800eb053600ab0420034199136a2d00002107200341a1136a28000021062003419a136a350100210a2003419e136a330100210b20032d00911321042003419f136a200341a0136a310000220c3c00002003419d136a200b3d0000200320043a0090132003200a3e009913200320063602a013200320073a009813200320032802a80436009113200320032800ab0436009413200341b00e6a20034190136a10e30220032802b00e220520032802b80e10e40241ff01712101024020032802b40e450d002005102e0b024020014102460d00024041c40141c70120011b2024470d0041abcecc0041efcfcc0020011b2022202410ec08450d010b200341f0066a410510b0030c0f0b2003200a200b200c4210868442208684220a3e00b90e200341bf0e6a200a4230883c0000200341bd0e6a200a4220883d0000200320043a00b00e200320032802a8043600b10e200320032800ab043600b40e200320063602c00e200320073a00b80e20034190136a41186a200341e0106a41186a29030037030020034190136a41106a200341e0106a41106a29030037030020034190136a41086a200341e0106a41086a290300370300200320032903e01037039013200341800c6a200341b00e6a20034190136a10ac03024020032d00800c22014106470d00024020032802d408450d002002102e0b200341063a00f0062023450d112022102e0c110b20032d00810c210720032d00820c210620032d00830c2104200320032902840c3702f406200320043a00f306200320063a00f206200320073a00f106200320013a00f0060c0e0b200341c0156a41156a20133a0000200341c0156a41146a20153a0000200341c0156a41106a2007360200200341c0156a410c6a2008360200200341c0156a41086a2009360200200341c0156a41166a20032903b00a370100200341c0156a411c6a20032901b60a370100200341c0156a41246a2012360200200320063602c415200320143b01c215200320163a00c115200320023a00c015200320013602e81520034190136a200341c0156a10c102200341a8066a41086a20034190136a41096a290000370300200341a8066a41106a20034190136a41116a290000370300200341a8066a41186a200341a9136a29000037030020032003290091133703a80620032d0090134101460d06200341e0106a41186a200341a8066a41186a290300370300200341e0106a41106a200341a8066a41106a290300370300200341e0106a41086a200341a8066a41086a290300370300200320032903a8063703e01020034190136a200341e0106a108103200341c0156a2003280290132202200328029813108203200320032801c2153602b008200320032800c5153600b3080240024020032d00c0154101470d00200341ca156a350100200341ce156a330100200341c0156a41106a3100004210868442208684210a200341c0156a41116a2800002101200341c0156a41096a2d0000210720032d00c1152106200320032800b3083600eb05200320032802b0083602e8050240200328029413450d002002102e0b200320032800eb053600ab04200320032802e8053602a804200320032802a8043602d008200320032800ab043600d3082003200a3e00c915200341cf156a200a4230883c0000200341cd156a200a4220883d0000200320063a00c015200320032802d0083600c115200320032800d3083600c415200320013602d015200320073a00c81520034190136a200341c0156a10e302200328029013220420032802981310e40241ff017121020240200328029413450d002004102e0b20024102460d01024041c40141c70120021b2018470d0041abcecc0041efcfcc0020021b2011201810ec08450d020b200341800c6a410510b0030c0d0b0240200328029413450d002002102e0b200341800c6a410310b0030c0c0b2003200a3e0099132003419f136a200a4230883c00002003419d136a200a4220883d0000200320063a009013200320032802d00836009113200320032800d30836009413200320013602a013200320073a009813200341c0156a41186a200341e0106a41186a290300370300200341c0156a41106a200341e0106a41106a290300370300200341c0156a41086a200341e0106a41086a290300370300200320032903e0103703c015200341b00e6a20034190136a200341c0156a10ac03024020032d00b00e22024106470d00200341c0156a200341e0106a10810320032802c015220220032802c81510ff01024020032802c415450d002002102e0b200341063a00800c2005450d0d2011102e0c0d0b20032d00b10e210120032d00b20e210720032d00b30e2106200320032902b40e3702840c200320063a00830c200320073a00820c200320013a00810c200320023a00800c0c0b0b200341930c6a201a2d00003a0000200320192d00003a00820c200320032f01a4063b01800c2003201836008b0c200320053600870c200320113600830c2003200328029c0636008f0c200341b00e6a410b6a200a3700002003200c3700b30e2003201e3b00b10e200320173a00b00e2003200b3c00c30e2003200b4230883d01cc062003200b4210883e02c8062003201b3a00de062003200e3701d6062003200d3701ce06200341e2066a2003280097063600002003201d3a00e7062003201c3a00e60620032003280294063600df06200320032901b60a3701c615200320032903b00a3703c0150240200241ff017122044101470d0020012001280200417f6a220236020020032f01cc15210420032902c415210a20032d00c315210520032d00c215211120032f01c0152118024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200641ff01710d072009410274200841036c490d070c090b20044103460d0820032801ca15210520032f01c815211120032903c015210c0c070b200341023a00a8040c0f0b200341a8046a410110b0030c0d0b20004200370024200041206a41023a0000200041186a41003a000020004200370308200042013703000c3d0b200341023a00f0060c090b200341f0066a410110b0030c070b200341023a00800c0c040b200320043b01cc15200320053a00c315200320113a00c215200320183b01c0152003200a3702c41520032801ca15210520032903c015210c4110102c2204450d36200441f8f7c60036020c410121022004410136020820044281808080103702004110102c2201450d36200a422088a7211120014190f8c60036020c20014101360208200142818080801037020020042004280200417f6a221836020020180d002004280208200428020c2802001103000240200428020c280204450d002004280208102e0b200441046a22182018280200417f6a221836020020180d002004102e0b200341e4156a2012360200200341c0156a41206a2005360200200341de156a20113b0100200341d6156a200c370100200341d5156a20133a0000200341d4156a20153a0000200341d2156a20074110763b0100200341d1156a20074108763a0000200341c0156a41106a20073a0000200341cc156a2008360200200341c0156a41086a2009360200200320013602e815200320063602c415200320143b01c215200320163a00c115200320023a00c015200341c0156a10a7050d010b200341c0156a200341800c6a10e202200341f0036a20032802c015220220032802c815220110f80220034180046a290300210c20032903f803210d024020032903f003220a4201520d002002200110ff010b200aa72101024020032802c415450d002002102e0b02402001450d0020034190136a200341b00e6a10e202200328029813210120032802901321022003200c3703c8152003200d3703c01520022001200341c0156a411010b201200328029413450d002002102e0b20034190136a200341800c6a10ad03200341c0156a2003280290132202200328029813220710ae03024020032903c01542015222010d002002200710ff010b200320032800d9153602f0062003200341dc156a2800003600f3060240024020010d00200341e0156a2d00002101200341d8156a2d00002107200341d0156a290300210a20032802ec15210620032902e415210c20032d00e315210420032d00e215210520032d00e115210920032903c815210d200320032800f3063600eb06200320032802f0063602e8060240200328029413450d002002102e0b200341d4156a20032800eb06360000200320073a00d0152003200a3703c8152003200d3703c015200320032802e8063600d115200320063602e4152003200c3702dc15200320043a00db15200320053a00da15200320093a00d915200320013a00d81520034190136a200341b00e6a10ad032003280290132202200328029813200341c0156a10ba05200328029413450d012002102e0c010b200328029413450d002002102e0b200341c0156a200341800c6a10ab03024020032802c015220120032802c815220710e40241ff017122024102460d002001200710ff010b024020032802c415450d002001102e0b024020024102460d0020034190136a200341b00e6a10ab0320032802981321072003280290132101200341003602c815200342013703c0150240024020024101460d00200341003a00a804200341c0156a200341a8046a410110740c010b200341013a00a804200341c0156a200341a8046a410110740b2001200720032802c015220220032802c81510b201024020032802c415450d002002102e0b200328029413450d002001102e0b200341a8066a41186a2202200341c8066a41186a290300370300200341a8066a41106a2201200341c8066a41106a290300370300200341a8066a41086a2207200341c8066a41086a290300370300200320032903c8063703a8060240200b4280fe0383428002520d00200341c0156a41186a2002290300370300200341c0156a41106a2001290300370300200341c0156a41086a2007290300370300200320032903a8063703c015200341f0066a200341c0156a10810320034190136a20032802f006220220032802f80622011082030240024020032d0090134101460d00200341003a00e0100c010b200341e0106a41136a20034190136a41136a2f00003b0000200341e0106a410b6a20034190136a410b6a290000370000200341e0106a41096a20034190136a41096a2f00003b000020032003290091133700e110200341013a00e010200341e0106a4101722207200341800c6a411410ec080d00200720032903b00e370000200741086a200341b00e6a41086a290300370000200741106a200341b00e6a41106a280200360000200341013a00e0100b20034190136a410d6a200341e0106a410d6a29000037000020034190136a41086a200341e0106a41086a290300370300200320032903e010220a3703901302400240200aa741ff01714101460d002002200110ff010c010b4114102c2207450d36200342143702d408200320073602d008200341d0086a20034190136a410172411410742002200120032802d008220720032802d80810b20120032802d408450d002007102e0b20032802f406450d002002102e0b200320032802e8053602b008200320032800eb053600b308200041186a41013a000020004200370308200020032802b0083600192000411c6a20032800b308360000200042003703000c370b200320032802e8053602b008200320032800eb053600b308200041186a41003a000020004200370308200020032802b0083600192000411c6a20032800b308360000200041206a41023a0000200042013703000c360b02402005450d002011102e0b20032d00800c22024106460d0020032f00810c210120032d00830c2107200020032902840c370024200020073a0023200020013b0021200041206a20023a0000200041186a41003a000020004200370308200042013703000c350b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c340b20032802d408450d002002102e0b02402023450d002022102e0b20032d00f00622024106460d0020032f00f106210120032d00f3062107200020032902f406370024200020073a0023200020013b0021200041206a20023a0000200041186a41003a000020004200370308200042013703000c320b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c310b024020032802f406450d002002102e0b20032d00a8044106460d010b20032802a8042102200020032902ac04370024200041206a2002360000200041186a41003a000020004200370308200042013703000c2f0b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c2e0b200341d0086a41086a2222200141206a290300370300200341d0086a41106a2223200141286a2903003703002003200141186a2903003703d008200241246a2801002120200241226a2f010021212002411a6a290100210a200241196a2d00002115200241186a2d00002114200241166a2f01002116200241156a2d00002118200241146a2d00002119200241126a2f0100211a200241116a2d00002117200241106a2d0000211b2002410e6a2f010021052002410d6a2d000021092002410c6a2d000021082002410a6a2f01002111200241096a2d00002112200241086a2d00002113200241066a2f0100211c200241056a2d0000211d200241046a2d0000210441022124200241026a2f0100211e2001410c6a28020021062002280228210720022d0001211f20022d000021020240024002400240200141086a2802000e0400010203000b200341c0156a41146a4101360200200342013702c4152003419cc3cb003602c015200341043602e41020034194c3cb003602e0102003200341e0106a3602d015200341c0156a4184ccc2001044000b200141386a290300210b200141306a290300210c200141146a2802002124200141106a2802002101200341b00e6a41106a2023290300370300200341b00e6a41086a2022290300370300200320032903d0083703b00e200341c0156a41246a2020360200200341c0156a41226a20213b0100200341c0156a411a6a200a370100200341c0156a41196a20153a0000200341c0156a41186a20143a0000200341c0156a41166a20163b0100200341c0156a41156a20183a0000200341c0156a41146a20193a0000200341c0156a41126a201a3b0100200341c0156a41116a20173a0000200341c0156a41106a201b3a0000200341c0156a410e6a20053b0100200341c0156a410d6a20093a0000200341c0156a410c6a20083a0000200341c0156a410a6a20113b0100200341c0156a41096a20123a0000200341c0156a41086a20133a0000200320073602e8152003201c3b01c6152003201d3a00c515200320043a00c4152003201e3b01c2152003201f3a00c115200320023a00c01520034190136a200341c0156a10c10241012102024002400240024020032d0090134101460d0020034190136a41086a280200210720034190136a410c6a280200210420034190136a41106a280200210520034190136a41146a290200210a20032d009113210920032f019213210820032802941321112003200341ac136a35020020034190136a41206a31000042208684220d3e00fb10200341ff106a200d4220883c00002003200a3700f310200320053600ef10200320043600eb10200320073600e710200320113600e310200320083b00e110200320093a00e010200341c0156a41106a200341b00e6a41106a290300370300200341c0156a41086a2204200341b00e6a41086a290300370300200320032903b00e3703c01520064108762107024002400240200641ff01710e03000201020b20034190136a410d6a200341c0156a410d6a29000037000020034190136a41086a2004290300370300200320032903c01537039013410021020c010b2024450d002001102e0b200341a30a6a20034190136a41086a290300370000200341900a6a41186a22062003419d136a290000370000200320243600970a200320013600930a200320032903901337009b0a200320073b01900a200320074110763a00920a20020d02200341f0066a41186a2006290300370300200341f0066a41106a2206200341900a6a41106a290300370300200341f0066a41086a2204200341900a6a41086a290300370300200320032903900a3703f00620034198036a200c200b42c0843d420010e60820034188036a200c200b42c0843d420010e708200341f8026a20032903880320034188036a41086a29030042d08603420010e808200341c0156a200341e0106a20032903f802220d200329039803220a421480a7200a42d086037e42c0843d8242a0c21e566aad7c220a4280a094a58d1d200a4280a094a58d1d56200341f8026a41086a290300200a200d54ad7c220a420052200a501b22021b220d200a420020021b220a10c30220032d00c0154106460d014280808080c003210a410321020c030b410221020240200641ff01714102460d004200210a0c030b4200210a410221022024450d022001102e0c020b200341c8066a41186a22024200370300200341c8066a41106a22014200370300200341c8066a41086a22074200370300200342003703c806200341e8056a41bad7c70041081081022007200341e8056a41086a2205290300370300200320032903e8053703c806200341a8046a41e4afc900410d1081022002200341a8046a41086a2209290300370300200120032903a804370300200341f0026a200341c8066a4120108e0220032802f402210820032802f0022111200242003703002001420037030020074200370300200342003703c806200341e8056a41bad7c700410810810220072005290300370300200320032903e8053703c806200341a8046a41e4afc900410d10810220022009290300370300200120032903a80437030020032008410020111b220241016a3602c015200341c8066a4120200341c0156a410410b201200341c0156a41186a200a370300200341f8156a200341e0106a41186a290300370300200341f0156a200341e0106a41106a290300370300200341e8156a200341e0106a41086a29030037030020034188166a200429030037030020034190166a200629030037030020034198166a200341f0066a41186a2903003703002003200b3703c8152003200c3703c0152003200d3703d015200320032903e0103703e015200320032903f00637038016200341b00a6a200210d60320032802b80a210720032802b00a2101200341003602880c200342013703800c200341800c6a200341c0156a41206a412010742003200b370398132003200c37039013200341800c6a20034190136a41101074200341800c6a20034180166a412010742003200a370398132003200d37039013200341800c6a20034190136a411010742001200720032802800c220620032802880c10b201024020032802840c450d002006102e0b024020032802b40a450d002001102e0b200341cc156a2002360200200341c8156a41003a00002003410e3a00c015200341c0156a10fe01200041186a41003a000020004200370308200020032800e8063600192000411c6a200341eb066a280000360000200042003703000c310b4200210a410121020b200041133b002120004200370308200041206a20023a0000200041186a41003a00002000200a4280808080f0038341d0ffc300ad84370024200042013703000c2f0b0240200241ff01710d0020072007280200417f6a2202360200024020020d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b2003200a3703c006200320153a00bf06200320143a00be06200320163b01bc06200320183a00bb06200320193a00ba062003201a3b01b806200320173a00b7062003201b3a00b606200320053b01b406200320093a00b306200320083a00b206200320113b01b006200320123a00af06200320133a00ae062003201c3b01ac062003201d3a00ab06200320043a00aa062003201e3b01a8060240201f41ff01710d00410321020c010b4110102c2201450d2c200141f8f7c60036020c2001410136020820014281808080103702004110102c2207450d2c20074190f8c60036020c20074101360208200742818080801037020020012001280200417f6a22153602004100210220150d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22152015280200417f6a221536020020150d002001102e0b0240024002400240200241ff0171417f6a0e03000102010b20072007280200417f6a2202360200024020020d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b0240200441ff01710d00201141107420124108747220137241017420054110742009410874722008724b0d020b4110102c2202450d2e200241f8f7c60036020c2002410136020820024281808080103702004110102c2207450d2e20074190f8c60036020c20074101360208200742818080801037020020022002280200417f6a220136020020010d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b20072007280200417f6a22013602004200210a4102210202402001450d004200210b0c020b2007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22012001280200417f6a220136020002402001450d004200210b0c020b2007102e4200210b0c010b200341e8056a41bad7c7004108108102200341a8046a41dbafc9004109108102200320063602b0082003200341b0086a410410a3013703900a200341cc156a200341b0086a41046a3602002003200341900a6a41086a3602c4152003200341b0086a3602c8152003200341900a6a3602c015200341b00e6a200341c0156a107c20032802b80e220741206a2202417f4c0d180240024020020d00410121010c010b2002102c2201450d2d0b200341003602f806200320023602f406200320013602f006200341f0066a200341e8056a41101074200341f0066a200341a8046a41101074200341f0066a20032802b00e220220071074024020032802b40e450d002002102e0b200341c0156a20032802f006220220032802f806220110b805024020032903c0154201520d002002200110ff01200341b00e6a200341c0156a41086a41e00010e9081a200341800c6a200341b00e6a41e00010e9081a024020032802f406450d002002102e0b20034190136a41066a200341800c6a41e00010e9081a200341e0106a20034190136a41e60010e9081a200341b00a6a200341e0106a41066a41e00010e9081a200341b8036a200341d00a6a20032903c00a220e200341c80a6a290300220f10cb0220032903b803210a2003200341b8036a41086a290300220b3703c8152003200a3703c01502400240200a200b844200520d002003200341c0156a3602901320034190136a10cc020c010b200342f0f2bda1a7ee9cb9f90037039013200341c0156a20034190136a10cd02200341a8036a200341c0156a200a200b10fd01200341a0136a200341a8036a41086a290300220d200b7d20032903a803220c200a54ad7d200b200d7d200a200c54ad7d200c200a56200d200b56200d200b511b22021b3703002003200c200a7d200a200c7d20021b3703981320032002ad3703901320034190136a41086a21010240024020020d00200320013602e010200341e0106a10cc020c010b200320013602e010200341e0106a10ce020b200341d8156a200b370300200341d0156a200a370300200341c8156a41063a00002003410e3a00c015200341c0156a10fe010b200341c0156a41186a200f370300200341d0156a200e370300200341cc156a2006360200200341c8156a41033a00002003410e3a00c015200341c0156a10fe01200041186a41003a000020004200370308200020032800e8063600192000411c6a200341e8066a41036a280000360000200042003703000c300b200341b00e6a200341c8156a41e00010e9081a024020032802f406450d002002102e0b41caeac200ad210a4280808080c001210b410321020b20004193023b0021200042003703082000200b200a84370024200041206a20023a0000200041186a41003a0000200042013703000c2e0b200341c0156a41246a2020360200200341c0156a41226a20213b0100200341c0156a411a6a200a370100200341c0156a41196a20153a0000200341c0156a41186a20143a0000200341c0156a41166a20163b0100200341c0156a41156a20183a0000200341c0156a41146a20193a0000200341c0156a41126a201a3b0100200341c0156a41116a20173a0000200341c0156a41106a201b3a0000200341c0156a410e6a20053b0100200341c0156a410d6a20093a0000200341c0156a410c6a20083a0000200341c0156a410a6a20113b0100200341c0156a41096a20123a0000200341c0156a41086a20133a0000200320073602e8152003201c3b01c6152003201d3a00c515200320043a00c4152003201e3b01c2152003201f3a00c115200320023a00c0154200210a4200210b02400240200341c0156a10c60241ff01714102460d00200341c0156a200610d60320032802c015220120032802c815108f022102024020032802c415450d002001102e0b20020d0141caeac200ad210a4280808080c001210b410321240b20004193023b0021200042003703082000200b200a84370024200041206a20243a0000200041186a41003a0000200042013703000c2e0b200341c8066a41186a22024200370300200341d8066a22014200370300200341c8066a41086a22074200370300200342003703c806200341e8056a41bad7c70041081081022007200341e8056a41086a290300370300200320032903e8053703c806200341a8046a4194ccc20041091081022002200341a8046a41086a290300370300200120032903a8043703004104102c2202450d2a20034204370294132003200236029013200320063602c01520034190136a200341c0156a41041074200341c0156a41086a20032802981336020020032003290390133703c015200341c8066a4120200341c0156a10c702200041186a41003a000020004200370308200020032800e8063600192000411c6a200341eb066a280000360000200042003703000c2d0b200341c0156a200141046a41c40010e9081a20034190136a41286a200241286a28020036020020034190136a41206a200241206a29020037030020034190136a41186a200241186a29020037030020034190136a41106a200241106a29020037030020034190136a41086a200241086a29020037030020032002290200370390132000200341c0156a20034190136a10c7060c2c0b200341c0156a20034190136a410110f002200341c9156a2102024020032d00c0154101470d0020033500c5152002330000200341cb156a3100004210868442208684210d200341c0156a410c6a280200210220032d00c41521014200210e0c020b20032d00c1152101200341c0156a41086a41033a00002002200329039013370000200341d1156a20034190136a41086a290300370000200341d9156a200341a0136a290300370000200341e1156a20034190136a41186a2903003700002003410c3a00c015200341c0156a10fe010240200141ff01710d0010f7021a0b200320032802a8043602b008200320032800ab043600b308200041186a41003a000020004200370308200020032802b0083600192000411c6a20032800b308360000200042003703000c2b0b0b200320032800ab043600b308200320032802a8043602b008200041276a200d4230883c0000200041256a200d4220883d00002000200d3e0021200041186a41003a0000200041106a42d8e4970f3703002000200e370308200020032802b0083600192000411c6a20032800b308360000200041286a2002360000200041206a20013a0000200042013703000c290b200341063a00a8040b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c270b20032d00f00622024106460d010b20032f00f106210120032d00f3062107200020032902f406370024200020073a0023200020013b0021200041206a20023a0000200041186a41003a000020004200370308200042013703000c250b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c240b20032802b00a2102200020032902b40a370024200041206a2002360000200041186a41003a000020004200370308200042013703000c230b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c220b20004200370308200020032800e805360019200041186a41003a00002000411c6a200341eb056a280000360000200042003703000c210b2000200a370024200020063a0023200020073a0022200020013a002120004200370308200041206a20023a0000200041186a41003a0000200042013703000c200b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c1f0b20032d00c01521020b0240200241ff01714106460d0020032d00c115210120032d00c215210720032d00c315210620032902c415210a0c010b02402015450d002012102e0b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c1d0b02402015450d002012102e0b2000200a370024200020063a0023200020073a0022200020013a002120004200370308200041206a20023a0000200041186a41003a0000200042013703000c1c0b20020d180c040b20032d00e0102101200341f00b6a41086a2002360200200320013a00f00b2003200a3e00f10b2003200a4230883c00f70b2003200a4220883d00f50b024020032802cc152202450d00200241246c2101201a210203400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b024020032802c8152202450d00200241246c450d00201a102e0b024020242007460d000340200610e1010240200641046a2802002202450d00200241246c450d002006280200102e0b200641f0006a2106200941907f6a22090d000b0b02402011450d00201141f0006c450d002004102e0b20032802b4082202450d02200241c4006c450d0220032802b008102e0c020b20242007460d002004200541f0006c6a210603402007220241046a220110e101200241f0006a21070240200241086a2802002202450d00200241246c450d002001280200102e0b20062007470d000b0b02402011450d00201141f0006c450d002004102e0b200341a80a6a4200370300200341a00a6a4200370300200341900a6a41086a22024200370300200342003703900a200341d0086a4190dac800410a1081022002200341d0086a41086a290300370300200320032903d0083703900a200341b00a6a41d5dac8004106108102201741086a200341b00a6a41086a290300370200201720032903b00a370200201541c4006c41046a2202417f4c0d0120032802b00821010240024020020d00410121070c010b2002102c2207450d160b200341003602c815200320023602c415200320073602c0152015200341c0156a107620012015200341c0156a109f01200341900a6a412020032802c015220220032802c81510b201024020032802c415450d002002102e0b200341063a00f00b20032802b4082202450d00200241c4006c450d002001102e0b024020032d00f00b22024106460d0020032f00f10b210120032d00f30b2107200020032902f40b370024200020073a0023200020013b0021200041206a20023a0000200041186a41003a000020004200370308200042013703000c180b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c170b1038000b200341e8056a200341800c6a10c802200341c0156a20032802e805220120032802f005220710c90220032903c015210a200341a8046a41086a220220034190166a290300370300200320034188166a2903003703a80402400240200a4201510d00200341f0066a41086a4200370300200342003703f0060c010b200341f0066a41086a2002290300370300200320032903a8043703f0060b200341c0156a41c8006a20032903f00637030020034190166a200341f0066a41086a290300370300200342013703c015200341c0156a41386a202d4200201042015122021b370300200341f0156a202f420020021b370300200341c0156a41286a202c420020021b370300200341e0156a202b420020021b370300200341d8156a2025420020021b370300200341c0156a41106a2027420020021b37030020034180166a202a420020021b37030020032026420020021b3703c81520012007200341c0156a41086a10c805024020032802ec05450d002001102e0b20034190136a41106a290300211020034190136a41286a290300210e20034190136a41386a290300210b20034190136a41c8006a290300210c200329039813212620032903b013212920032903c013210a20032903d013210d200329039013212820032903a813210f0b024020284201520d00200341f8156a2010370300200341f0156a2026370300200341c0156a41086a41003a0000200341c9156a20032903800c370000200341d1156a200341800c6a41086a290300370000200341d9156a200341900c6a290300370000200341e1156a200341980c6a290300370000200341033a00c015200341c0156a10fe010b02400240200f50450d004200210f0c010b200341c0156a41186a200341800c6a41186a290300370300200341c0156a41106a200341800c6a41106a290300370300200341c0156a41086a200341800c6a41086a290300370300200320032903800c3703c0154201210f0b200341b00e6a41186a200341c0156a41186a22022903002210370300200341b00e6a41106a200341c0156a41106a22012903002228370300200341b00e6a41086a200341c0156a41086a22072903002226370300200320032903c01522273703b00e200341f0156a2206200e370300200341e8156a220420293703002001202637030020022028370300200341e0156a20103703002003200f3703c015200320273703c815200341c0156a10d204024020032903c015500d00200320043602901320034190136a10cc020b20034188166a200c37030020034180166a200d370300200341f8156a200b3703002006200a370300200741033a0000200341c9156a20032903800c370000200341d1156a200341800c6a41086a290300370000200341d9156a200341800c6a41106a290300370000200341e1156a200341800c6a41186a290300370000200341033a00c015200341c0156a10fe01200320032802c8063602f00b200320032800cb063600f30b200041186a41003a000020004200370308200020032802f00b3600192000411c6a20032800f30b360000200042003703000c140b200341900a6a41086a2201200341b0086a41086a2f01003b0100200320032802c8063602f00b200320032800cb063600f30b200320032903b0083703900a200041186a41003a000020004200370308200020032802f00b3600192000411c6a20032800f30b360000200041206a20023a0000200020032903900a3700222000412a6a20012f01003b0000200042013703000c130b20032d00800c22014106470d0141012101410221060b200341e0156a20032903d008370300200341f4156a20032800f30b360000200341e8156a200341d8086a290300370300200341d8156a200a3703002003200d3703c015200320063a00f015200320032802f00b3600f1152003200c3703c8152003200b3703d015024002402001450d002005200710ff010c010b20052007200341c0156a10c6050b410621010b20032902840c210a20032d00830c210720032d00820c210620032d00810c2104024020032802940a450d002005102e0b20014106460d010b2000200a370024200020073a0023200020063a0022200020043a002120004200370308200041206a20013a0000200041186a41003a0000200042013703000c0f0b200341e8156a2002360200200341cd156a200341b80e6a290300370000200341d5156a200341c00e6a290300370000200341dd156a200341b00e6a41186a290300370000200341023a00c415200341023a00c015200320032903b00e3700c515200341c0156a10fe01200041186a41003a000020004200370308200020032800e8063600192000411c6a200341eb066a280000360000200042003703000c0e0b20032d00e01022014106470d010b2005200710ff01410621010b20032902e410210a20032d00e310210720032d00e210210620032d00e1102104024020032802840c450d002005102e0b20014106460d010b2000200a370024200020073a0023200020063a0022200020043a002120004200370308200041206a20013a0000200041186a41003a0000200042013703000c0a0b200341c8156a2002360200200341013a00c415200341023a00c015200341c0156a10fe01200041186a41003a000020004200370308200020032800e8063600192000411c6a200341eb066a280000360000200042003703000c090b20032d00e01022024106470d0141012106410221020b200341e0156a20032903d008370300200341f4156a20032800f30b360000200341e8156a200341d8086a290300370300200341d8156a200a3703002003200d3703c015200320023a00f015200320032802f00b3600f1152003200c3703c8152003200b3703d015024002402006450d002001200710ff010c010b20012007200341c0156a10c6050b410621020b20032902e410210a20032d00e310210720032d00e210210620032d00e1102104024020032802940a450d002001102e0b20024106470d01200341cd156a20032903880c370000200341e8156a2011360200200341d5156a200341900c6a290300370000200341dd156a200341980c6a290300370000200341003a00c415200341023a00c015200320032903800c3700c515200341c0156a10fe01200341063a00b0080b20004200370308200020032800e806360019200041186a41003a00002000411c6a200341eb066a280000360000200042003703000c050b2003200a3702b408200320073a00b308200320063a00b208200320043a00b108200320023a00b0080b20032802b0082102200020032902b408370024200041206a2002360000200041186a41003a000020004200370308200042013703000c030b1036000b4103210641022107418fc2cb002101411d21020b02402011450d002008102e0b200320032800b00a3602d0082003200341b30a6a2800003600d308200041186a41003a000020004200370308200020032802d0083600192000411c6a20032800d308360000200041286a2002360200200041246a2001360200200020073a0022200041003a0021200041206a20063a0000200042013703000b200341f0176a24000b13002000410636020420004198f4c0003602000bf70802077f027e230041f0006b2202240002400240024002400240024020012d0000417f6a0e03010002000b200041003b0001200041013a0000200041036a41003a00000c030b200241386a200141016a10e00241002103200241d0006a200141216a20022802382204200228024041d4e2cc00410010e102200241286a200241db006a290000370300200241306a200241e3006a2f00003b01002002200229005337032020022d0052210520022d0051210620022d005021010240200228023c450d002004102e0b0c010b200241386a200141016a10e002200241d0006a200141216a200228023822072002280240200141e4006a2204280200200141ec006a220128020010e102200241286a200241db006a290000370300200241306a200241e3006a2f00003b010020022002290053370320200128020021082004280200210320022d0052210520022d0051210620022d00502101200228023c450d002007102e0b200241086a41106a200241206a41106a2f010022043b0100200241086a41086a200241206a41086a290300220937030020022002290320220a370308200241d0006a41106a220720043b0100200241d0006a41086a220420093703002002200a3703500240200141ff01714101470d002002412a6a2004290300370100200241326a20072f01003b0100200220053a0021200220063a002020022002290350370122200241d0006a200241206a10e202200228025022042002280258108f02210102402002280254450d002004102e0b024020010d00200041800e3b0001200041013a0000200041036a41013a00000c020b200241d0006a41106a200241206a41106a280200360200200241d0006a41086a200241206a41086a29030037030020022002290320370350200241386a200241d0006a10e30220022802382204200228024010e40241ff017121010240200228023c450d002004102e0b0240024020014102460d0002402003450d0041c40141c70120011b2008470d0041abcecc0041efcfcc0020011b2003200810ec08450d020b200041800e3b0001200041013a0000200041036a41033a00000c030b2003450d00200041800e3b0001200041013a0000200041036a41033a00000c020b410c102c2201450d02200241d0006a41106a200241206a41086a290300370300200241d0006a41186a200241206a41106a28020036020020024106360254200241eef8c00036025020022002290320370358410a102c2204450d022002420a37023c200220043602384106200241386a1076200241386a41eef8c00041061074200241386a200241d0006a41086a41141074200141086a200228024036020020012002290338370200200041306a41013a0000200041286a428180808010370200200041246a2001360200200041206a4100360200200041186a4204370300200041106a427f370300200041086a42e400370300200041316a2002280038360000200041346a2002413b6a280000360000200041003a00000c010b200041800e3b0001200041013a0000200041036a41003a00000b200241f0006a24000f0b1036000be80401097f230041306b22022400024002404120102c2203450d002002422037020420022003360200200220014120107441012104200228020822034101742201417f4c0d012002280200210502402001450d002001102c2204450d010b2000410036020820002004360200200041046a2206200136020002402003450d002003417f6a2107410021030240034020052d00002108024002400240024020032001470d00200141016a22092001490d082001410174220a2009200a20094b1b22094108200941084b1b21090240024020010d00200241003602200c010b2002410136022820022001360224200220043602200b200241106a20094101200241206a10d1042002280218210120022802104101460d01200020022802142204360200200620013602000b2000200341016a2209360208200420036a413041d700200841a001491b20084104766a3a000020092001470d0220062802002001470d02200141016a220420014f0d010c070b2001450d060c050b2001410174220a2004200a20044b1b22044108200441084b1b21040240024020010d00200241003602200c010b2002410136022820022001360224200220002802003602200b200241106a20044101200241206a10d1042002280218210120022802104101460d02200020022802142204360200200620013602000b2000200941016a2209360208200420036a41016a413041d7002008410f712201410a491b20016a3a00002007450d02200541016a21052007417f6a210720062802002101200921030c000b0b2001450d020c010b02402002280204450d002002280200102e0b200241306a24000f0b1036000b1038000bb40a02077f027e230041a0026b22062400024002400240024002400240200520036a41216a22070d0041012108410021094100210a0c010b4100210b4100210c4100210a410121080240024003402007410a7021090240200c200a470d00200c41016a220a200c490d05200b200a200b200a4b1b220a4108200a41084b1b210a02400240200c0d00200641003602d8010c010b200641013602e0012006200c3602dc01200620083602d8010b20064198016a200a4101200641d8016a107d20062802a001210a2006280298014101460d02200628029c0121080b2008200c6a20094130723a00002007410a490d02200c41016a210c200b41026a210b2007410a6e21070c000b0b200a450d020c050b200c41016a21090b411a102c220c450d032006411a36025c2006200c360258200c41002900f4f840370000200c41086a41002900fcf840370000200c41106a4100290084f940370000200c41186a41002f008cf9403b00002006411a360260024002402009450d002009411a6a22072009490d022006429a808080103702dc012006200c3602d80120064198016a20074134200741344b1b4101200641d8016a107d200641a0016a28020021072006280298014101460d01200628029c01210c2006200736025c2006200c3602580b20090d02411a210c0c030b20070d030b1038000b2008417f6a210b200c411a6a210c200921070340200c200b20076a2d00003a0000200c41016a210c2007417f6a22070d000b2009411a6a210c0b2006200c3602600240200a450d002008102e0b200641d8006a41b8fcc60041211074200641d8006a200220031074200641d8006a20042005107420062006280258220c200628026010e5020240200628025c450d00200c102e0b4100210c200641206a41106a4100360200200641206a41086a420037030020064200370320200641d8016a2001200610e602024020062d00d8014101460d00200641d0016a20064191026a290000370300200641c8016a20064189026a290000370300200641c0016a20064181026a290000370300200641b8016a200641f9016a290000370300200641b0016a200641f1016a29000037030020064198016a41106a200641e9016a29000037030020064198016a41086a200641e1016a290000370300200620062900d901370398014101210c0b200641d8016a41386a220720064198016a41386a290300370300200641d8016a41306a220b20064198016a41306a290300370300200641d8016a41286a220920064198016a41286a290300370300200641d8016a41206a220820064198016a41206a290300370300200641d8016a41186a220a20064198016a41186a290300370300200641d8016a41106a20064198016a41106a290300370300200641d8016a41086a20064198016a41086a29030037030020062006290398013703d80102400240200c450d00200641d8006a41386a2007290300370300200641d8006a41306a200b290300370300200641d8006a41286a2009290300370300200641d8006a41206a2008290300370300200641d8006a41186a200a290300370300200641d8006a41106a200641d8016a41106a290300370300200641d8006a41086a200641d8016a41086a290300370300200620062903d801370358200641386a200641d8006a41c00010e502200641206a41106a200641d4006a280000220c360200200641206a41086a200641cc006a290000220d37030020062006290044220e370320200041116a200c360000200041096a200d3700002000200e3700014101210c0c010b4100210c0b2000200c3a0000200641a0026a24000f0b1036000bf50101047f230041306b22022400200241b6d1cc004106108102200241106a41b6d1cc004106108102024002404114102c2203450d002002421437022420022003360220200241206a20014114107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bf50101047f230041306b22022400200241b6d1cc004106108102200241106a41bcd1cc004107108102024002404114102c2203450d002002421437022420022003360220200241206a20014114107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000b800201027f230041d0006b220224002002200136020420022000360200200241086a2000200110ed0202400240200228020822010d00410221000c010b200228020c210302400240200241106a280200450d0041002100024020012d00000e020200010b410121000c010b20024100360220200242013703182002410a36022c200220023602282002200241186a360234200241cc006a41013602002002420137023c200241909dc5003602382002200241286a360248200241346a419cebc000200241386a103d1a2002280218200228022010ef020240200228021c450d002002280218102e0b410221000b2003450d002001102e0b200241d0006a240020000b4c0020002002ad4220862001ad8410112201290000370000200041186a200141186a290000370000200041106a200141106a290000370000200041086a200141086a2900003700002001102e0ba80503017f017e027f23004190016b22032400024002402001200210052204422088a722020d00410121010c010b2004a721010b200320023602442003200136024002402002450d0020012d0000210520032002417f6a22063602442003200141016a36024002400240024020050e020001030b200341c8006a200341c0006a10a70120032d00484101460d02200341086a200341d2006a290100370300200341106a200341da006a290100370300200341186a200341e2006a290100370300200341206a200341ea006a290100370300200341286a200341f2006a290100370300200341306a200341fa006a290100370300200341376a20034181016a2900003700002003200329014a37030020032d00492102410021050c010b2006450d0120012d0001210520032002417e6a3602442003200141026a3602404100210202400240024020050e03020100040b410221020c010b410121020b200341376a200341c8006a41376a290000370000200341306a200341c8006a41306a290000370300200341286a200341c8006a41286a290000370300200341206a200341c8006a41206a290000370300200341186a200341c8006a41186a290000370300200341106a200341c8006a41106a290000370300200341086a200341c8006a41086a29000037030020032003290048370300410121050b200020023a0001200020053a0000200041026a20032903003700002000410a6a200341086a290300370000200041126a200341106a2903003700002000411a6a200341186a290300370000200041226a200341206a2903003700002000412a6a200341286a290300370000200041326a200341306a290300370000200041396a200341376a2900003700002001102e20034190016a24000f0b41cae0cc00412e200341c8006a41f8e0cc004188e1cc00103e000bb10201037f230041e0006b22022400200241086a418ef9c0004110108102200241186a41fbafc9004106108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000bb40102047f027e230041d0006b22012400200141106a200010e702200141206a200128021022022001280218220310e90202400240200128024022040d00420021054101210441002103420021060c010b2002200310ff01200128024441ffffff3f712103200141386a2903002106200129033021050b02402001280214450d002002102e0b02402003450d002004102e0b42f0d0c9abc6add9b1f400200010ea02200120002005200610fb01200141d0006a24000bf00304027f017e037f037e230041e0006b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041003602200c010b200328021421022003200341186a280200360224200320013602202003200341206a10ab0102400240024002402003280200450d00200341003602480c010b200341c8006a200341206a200328020410920120032802482204450d00200329024c210502400240200328022422064110490d0020032003280220220741106a3602202003200641706a2208360224200841104f0d010b200542ffffff3f83500d012004102e0c010b200741086a29000021092007290000210a2003200641606a3602242003200741206a36022020040d010b20034100360230200342013703282003410a36023c2003200341086a3602382003200341286a360244200341dc006a41013602002003420137024c200341909dc5003602482003200341386a360258200341c4006a419cebc000200341c8006a103d1a2003280228200328023010ef020240200328022c450d002003280228102e0b200041003602200c010b200741186a290000210b200020072900103703102000200a3703002000200537022420002004360220200041186a200b370300200020093703080b2002450d002001102e0b200341e0006a24000b9503010a7f230041206b2202240020022000370308200241106a200110d4062002280218210341002104200241003602180240024020030d0041002105200228021021060c010b2002280210220641106a2107410021054100210802400340024002402005450d00200620084105746a21092006200820046a4105746a210a0340200941106a220b2900002002290308510d02200a2009290300370300200a41186a200941186a290300370300200a41106a200b290300370300200a41086a200941086a290300370300200a41206a210a200941206a21092003200841016a22084b0d000c040b0b200720084105746a2109034020092900002002290308510d01200941206a21092003200841016a22084b0d000b410021050c030b2004417f6a2104200541016a21052003200841016a22084b0d000b0b024020050d00410021050c010b2006200820056b4105746a200620084105746a200320086b41057410ea081a0b2002200320056b220936021820012006200910d5060240200228021441ffffff3f71450d002006102e0b200241206a24000bca0101077f230041106b22022400200210ec0241012103200228020021044100210541002106024002400240200228020822070e020201000b4100210503402007410176220820056a2106200620052004200641306c6a2001412010ec084101481b2105200720086b220741014b0d000b0b02402004200541306c6a2001412010ec0822070d0020052106410021030c010b20052007411f766a21060b024020022802042205450d00200541306c450d002004102e0b2000200636020420002003360200200241106a24000bb40302047f017e23004180016b22012400200141206a22024200370300200141086a41106a22034200370300200141086a41086a420037030020014200370308200141086a418ef9c0004110108102200141e8006a419ef9c000410a1081022002200141e8006a41086a290000370300200320012900683703002001412036022c2001200141086a360228200141306a200141086a412010ed0202400240200128023022030d00410021020c010b200128023421042001200141306a41086a28020036024420012003360240200141e8006a200141c0006a10e90102400240200128026822020d004100210220014100360250200142013703482001410a36025c2001200141286a3602582001200141c8006a360264200141fc006a41013602002001420137026c200141909dc5003602682001200141d8006a360278200141e4006a419cebc000200141e8006a103d1a2001280248200128025010ef020240200128024c450d002001280248102e0b0c010b200129026c21050b2004450d002003102e0b0240024020020d0020004100360208200042083702000c010b20002005370204200020023602000b20014180016a24000b130020002002ad4220862001ad84102510da080bde0401047f230041c0006b220224002000280204210320002802002104200128021841a89fc00041012001411c6a28020028020c11000021000240024020030d00200021050c010b2002200436020441012105024020000d00024020012d0000410471450d0041012105200128021841f99ec0004101200128021c28020c1100000d012001280200210041012105200241013a001720022000360218200241c09ec00036023420022001290218370308200220012d00203a00382002200128020436021c20022001290210370328200220012902083703202002200241176a3602102002200241086a360230200241046a200241186a1087010d01200228023041d89ec0004102200228023428020c11000021050c010b200241046a200110870121050b20034101460d00200441016a21002003417f6a2103034020022000360204200541ff0171210441012105024020040d00024020012802002205410471450d00200241013a001720022005360218200241c09ec00036023420022001290218370308200220012d00203a00382002200128020436021c20022001290210370328200220012902083703202002200241176a3602102002200241086a3602300240200241046a200241186a1087010d00200228023041d89ec0004102200228023428020c11000021050c020b410121050c010b41012105200128021841bc9ec0004102200128021c28020c1100000d00200241046a200110870121050b200041016a21002003417f6a22030d000b0b41012100024020050d00200128021841fa9ec0004101200128021c28020c11000021000b200241c0006a240020000b0e002001ad4220862000ad8410160be52005067f017e027f067e057f230041f0026b22032400200341b8016a22044200370300200341a0016a41106a22054200370300200341a0016a41086a22064200370300200342003703a001200341e0006a418ef9c00041101081022006200341e0006a41086a2207290000370300200320032900603703a001200341e0006a41c7c3cb0041071081022004200729000037030020052003290060370300200341e0016a200341a0016a10f10220032802e0012206410820061b2108410021040240024002400240024002400240024002400240024002400240024002400240024020032902e401420020061b2209422088a7220a0e020201000b41002104200a210603402006410176220b20046a210720072004200820074106746a41206a2001412010ec084101481b21042006200b6b220641014b0d000b0b200820044106746a41206a2001412010ec080d002004200a4f0d01200820044106746a2206290310210c200641186a290300210d2006200641c0006a2004417f73200a6a41067410ea081a024002402002450d00200341106a2001200c200d10cb022003290310210e2003200341106a41086a290300220f3703e8012003200e3703e00102400240200e200f844200520d002003200341e0016a3602a001200341a0016a10cc020c010b200342f0f2bda1a7ee9cb9f9003703a001200341e0016a200341a0016a10cd022003200341e0016a200e200f10fd01200341b0016a200341086a2903002210200f7d20032903002211200e54ad7d200f20107d200e201154ad7d2011200e562010200f562010200f511b22041b37030020032011200e7d200e20117d20041b3703a80120032004ad3703a001200341a0016a41086a21060240024020040d0020032006360260200341e0006a10cc020c010b20032006360260200341e0006a10ce020b200341f8016a200f370300200341f0016a200e370300200341e8016a41063a00002003410e3a00e001200341e0016a10fe010b20034198026a200d37030020034190026a200c370300200341e0016a41086a41063a0000200341e9016a2001290000370000200341f1016a200141086a290000370000200341f9016a200141106a29000037000020034181026a200141186a2900003700002003410c3a00e001200341e0016a10fe010c010b200341306a2001200c200d10fb010b200341a0016a41186a220a4200370300200341a0016a41106a22024200370300200341a0016a41086a220b4200370300200342003703a001200341e0006a418ef9c0004110108102200b200341e0006a41086a2206290000370300200320032900603703a001200341e0006a41a8f9c0004109108102200541086a200629000037000020052003290060370000200341e0016a200341a0016a10f10220032802e0012204410820041b21070240024020032902e401420020041b220e422088a722040d00410021120c010b200341e0016a41386a20072004417f6a22134106746a220441386a290300370300200341e0016a41306a200441306a290300370300200341e0016a41286a200441286a290300370300200341e0016a41206a200441206a290300370300200341e0016a41186a200441186a290300370300200341e0016a41106a200441106a290300370300200341e0016a41086a200441086a290300370300200320042903003703e001200e42ffffffff0f832013ad42208684210e410121120b200341a0016a41386a2213200341e0016a41386a290300370300200341a0016a41306a2214200341e0016a41306a290300370300200341a0016a41286a2215200341e0016a41286a290300370300200341a0016a41206a2216200341e0016a41206a290300370300200a200341e0016a41186a22042903003703002002200341e0016a41106a220a290300370300200b200341e0016a41086a2202290300370300200320032903e0013703a001200320073602402003200e37024420044200370300200a420037030020024200370300200342003703e001200341e0006a418ef9c000411010810220022006290000370300200320032900603703e001200341e0006a41a8f9c000410910810220042006290000370300200a2003290060370300200341e0016a200341c0006a10f2020240200e42ffffff1f83500d002007102e0b20094280808080707c210e200341e0006a41086a2204200341a0016a41086a290300370300200341e0006a41106a2206200341a0016a41106a290300370300200341e0006a41186a2207200341a0016a41186a290300370300200341e0006a41206a2016290300370300200341e0006a41286a2015290300370300200341e0006a41306a2014290300370300200341e0006a41386a2013290300370300200320032903a001370360410021132012450d05200341e0016a41386a2212200341e0006a41386a290300370300200341e0016a41306a2214200341e0006a41306a290300370300200341e0016a41286a2215200341e0006a41286a290300370300200341e0016a41206a2202200341e0006a41206a290300370300200341e0016a41186a2007290300370300200341e0016a41106a2006290300370300200341e0016a41086a2004290300370300200320032903603703e001410021040240200e4220882210a722130e020403000b410021042013210603402006410176220b20046a210720072004200820074106746a41206a2002412010ec084101481b21042006200b6b220641014b0d000c030b0b0240200942ffffff1f83500d002008102e0b200341e0016a410d10f302200041013a00002000410c6a200341e8016a280200360200200041046a20032903e0013702000c0b0b2004200a1046000b200820044106746a41206a2002412010ec082206450d0120042006411f766a21040b200341a0016a41086a2015290300370300200341b0016a2014290300370300200341a0016a41186a201229030037030020032003290380023703a001200420134b0d09200341e0016a41186a290300210f200341e0016a41086a290300210c20032903f001210d20032903e001211102402013200ea7470d00201341016a22062013490d0620134101742207200620062007491b22064104200641044b1b220641ffffff1f712006464103742107200641067421060240024020130d00200341003602400c010b200341c0006a41086a410836020020032008360240200320104206863e02440b200341e0026a20062007200341c0006a107d200341e8026a280200210620032802e0024101460d0320032802e40221082006410676ad210e0b200820044106746a220641c0006a2006201320046b41067410ea081a200641186a200f3703002006200d3703102006200c37030820062011370300200620032903a001370320200641286a200341a8016a290300370300200641306a200341b0016a290300370300200641386a200341a0016a41186a290300370300200e42ffffffff0f8320094280808080708384210e0b410121130b2003200e3702a401200320083602a00120080d01200341f8016a4200370300200341e0016a41106a4200370300200341e0016a41086a22044200370300200342003703e001200341e0006a418ef9c00041101081022004200341e0006a41086a2206290000370300200320032900603703e001200341e0006a41c7c3cb004107108102200a41086a2006290000370000200a2003290060370000200341e0016a412010ff010c020b2006450d020c070b200341f8016a4200370300200341e0016a41106a4200370300200341e0016a41086a22044200370300200342003703e001200341e0006a418ef9c00041101081022004200341e0006a41086a2206290000370300200320032900603703e001200341e0006a41c7c3cb004107108102200a41086a2006290000370000200a2003290060370000200341e0016a200341a0016a10f2022008450d00200e42ffffff1f83500d002008102e0b200341b8016a4200370300200341a0016a41106a4200370300200341a0016a41086a22044200370300200342003703a001200341e0006a418ef9c00041101081022004200341e0006a41086a2206290000370300200320032900603703a001200341e0006a41c7c3cb004107108102200541086a200629000037000020052003290060370000200341e0016a200341a0016a10f10220032902e401420020032802e001220b1b2209422088a72207410674410675220441ffffff3f712004470d0020044105742206417f4c0d000240024020060d00410121020c010b2006102c2202450d060b024002402006410576221220044f0d00200641047622082004200820044b1b22044104200441044b1b220441ffffff3f712004462108200441057421040240024020060d00200341003602e0010c010b200341e8016a4101360200200320063602e401200320023602e0010b200341a0016a20042008200341e0016a107d200341a8016a280200210420032802a0014101460d0120032802a4012102200441057621120b200b4108200b1b211420070d02410021080c030b20040d050b1038000b2007410674210b200741067441406a4106762115200341e0016a41206a210720022104201421060340200341e0016a41386a200641386a290300370300200341e0016a41306a200641306a290300370300200341e0016a41286a200641286a2903003703002007200641206a290300370300200341a0016a41086a2208200741086a290000370300200341a0016a41106a2205200741106a290000370300200341a0016a41186a220a200741186a290000370300200320072900003703a001200441186a200a290300370000200441106a2005290300370000200441086a2008290300370000200420032903a001370000200441206a2104200641c0006a2106200b41406a220b0d000b201541016a21080b0240200942ffffff1f83500d002014102e0b200341c0006a41186a200141186a290000370300200341c0006a41106a200141106a290000370300200341c0006a41086a200141086a29000037030020032001290000370340200341a0016a41186a22044200370300200341a0016a41106a22064200370300200341a0016a41086a22074200370300200342003703a001200341e0006a41c8afc90041131081022007200341e0006a41086a220b290000370300200320032900603703a001200341e0006a41dbc3cb0041051081022004200b29000037030020062003290060370300200341e0016a200341a0016a412010f40220032d00e00121052004200341f9016a2900003703002006200341f1016a2900003703002007200341e9016a290000370300200320032900e1013703a0010240024020054101470d00200341e0006a41186a22052004290300370300200341e0006a41106a220a2006290300370300200b2007290300370300200320032903a001370360200341c0006a41012002200810f502200420052903003703002006200a2903003703002007200b290300370300200320032903603703a001200341a0016a2001412010ec08450d01200341f9016a200341b8016a290300370000200341f1016a200341b0016a290300370000200341e9016a200341a8016a290300370000200320032903a0013700e101200341013a00e001200341e0016a10f6020c010b200341c0006a41012002200810f5020b200041003a0000200020133a00012012450d002002102e0b200341f0026a24000f0b200420131045000b1036000b9c0804067f017e057f057e230041d0016b220224002002412036020c20022001360208200241106a2001412010ed02024002400240200228021022030d00200041003602000c010b200228021421042002200241186a280200360224200220033602202002200241206a10ab010240024020022802000d00024002402002280204220520022802244106762201200120054b1b22014106742206417f4c0d000240024020010d00410821070c010b2006102c2207450d060b2001ad2108024002402005450d00200241a8016a41017221090340200241a8016a200241206a10930120022d00a8014101460d0420024188016a41186a220a200941186a29000037030020024188016a41106a220b200941106a29000037030020024188016a41086a220c200941086a2900003703002002200929000037038801200228022422064110490d0420022002280220220141106a3602202002200641706a220d360224200d4110490d04200141086a290000210e2001290000210f200241c8006a41086a200c2903002210370300200241c8006a41106a200b2903002211370300200241c8006a41186a200a2903002212370300200241286a41086a220a2010370300200241286a41106a220b2011370300200241286a41186a220c20123703002002200641606a3602242002200141206a3602202002200229038801221037034820022010370328200141186a290000211020012900102111024020084220882212a722062008a7470d00200641016a22012006490d042006410174220d20012001200d491b22014104200141044b1b220141ffffff1f71200146410374210d200141067421010240024020060d00200241003602a8010c010b200241083602b001200220073602a801200220124206863e02ac010b20024188016a2001200d200241a8016a107d20022802900121012002280288014101460d03200228028c0121072001410676ad21080b200720064106746a220120113703102001200e3703082001200f370300200141186a201037030020012002290328370320200141286a200a290300370300200141306a200b290300370300200141386a200c290300370300200842ffffffff0f83200641016aad4220868421082005417f6a22050d000b0b2007450d0320002008370204200020073602000c040b20010d050b1038000b200842ffffff1f83500d002007102e0b200241003602900120024201370388012002410a36026c2002200241086a360268200220024188016a360248200241bc016a4101360200200242013702ac01200241909dc5003602a8012002200241e8006a3602b801200241c8006a419cebc000200241a8016a103d1a20022802880120022802900110ef020240200228028c01450d00200228028801102e0b200041003602000b2004450d002003102e0b200241d0016a24000f0b1036000b810202047f017e230041206b2202240002400240200128020822034106744104722204417f4c0d00200128020021012004102c2205450d0120024100360208200220043602042002200536020020032002107602402003450d002003410674210303402002200141206a41201074200129030021062002200141086a290300370318200220063703102002200241106a41101074200141106a29030021062002200141186a290300370318200220063703102002200241106a41101074200141c0006a2101200341406a22030d000b0b2000412020022802002201200228020810b20102402002280204450d002001102e0b200241206a24000f0b1038000b1036000be90301047f230041c0006b220224004182fcc10021034112210441102105024002400240024002400240024002400240024002400240024002400240024002400240200141ff01710e12000102030405060708090a0b0c0d0e0f1011000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a4184c2cc001044000b41f6fbc1002103410c2104410021050c0f0b41effbc100210341072104410121050c0e0b41e3fbc1002103410c2104410221050c0d0b41cffbc100210341142104410321050c0c0b41c5fbc1002103410a2104410421050c0b0b41b6fbc1002103410f2104410521050c0a0b41abfbc1002103410b2104410621050c090b41a1fbc1002103410a2104410721050c080b418efbc100210341132104410821050c070b4182fbc1002103410c2104410921050c060b41f4fac1002103410e2104410a21050c050b41dafac1002103411a2104410b21050c040b41e0c3cb00210341092104410c21050c030b41c8fac1002103410d21050c020b41b8fac100210341102104410e21050c010b41a7fac100210341112104410f21050b20004183223b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000b970302027f047e23004180016b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041003a00000c010b200328021421042003200341106a41086a28020036026c20032001360268200341c0006a200341e8006a109301410121020240024020032d00404101470d004100210220034100360228200342013703202003410a3602742003200341086a3602702003200341206a36027c200341d4006a410136020020034201370244200341909dc5003602402003200341f0006a360250200341fc006a419cebc000200341c0006a103d1a2003280220200328022810ef022003280224450d012003280220102e0c010b200341386a200341c0006a41196a2900002205370300200341306a200341c0006a41116a2900002206370300200341206a41086a200341c0006a41096a2900002207370300200320032900412208370320200041196a2005370000200041116a2006370000200041096a2007370000200020083700010b200020023a00002004450d002001102e0b20034180016a24000bc210050b7f017e087f087e0b7f230022042105200441c0016b4160712206240002400240200141ffffff3f712001470d0020014105742207417f4c0d0041012108024002402007450d002007102c2208450d0120074105762109200821042007210a0340200a450d0120042000290000370000200441086a200041086a290000370000200441106a200041106a290000370000200441186a200041186a290000370000200441206a2104200a41606a210a200041206a21002009417f6a22090d000b0b2008200110fc02200641e0006a41186a220b4200370300200641e0006a41106a220c4200370300200641e0006a41086a220d42003703002006420037036020064180016a41c8afc9004113108102200d20064180016a41086a2200290000370300200620062900800137036020064180016a41dbafc9004109108102200b2000290000370300200c20062900800137030020064180016a200641e0006a4120108d032006280280012204410120041b210e200629028401420020041b220f422088a72204450d02200e20044105746a2110200641206a410c72211120064180016a410c6a2112200e2113034020064180016a41186a2214201341186a29000037030020064180016a41106a201341106a2900003703002000201341086a2900003703002006201329000037038001200641106a20064180016a10f50720064180016a200628021022152006280218221610b305200d201241086a290200370300200c201241106a2802003602002006201229020037036020062802a00121170240200628028801220a450d00200629038001211820112006290360370200201141086a200d290300370200201141106a200c28020036020020062018370320201721040b2006200a360228200641003602880120062903382119200620062903980122183703382006290330211a2006200629039001221b3703302006290320211c2006200629038001221d3703202006290328211e2006200629038801221f37032802400240201ea722200d00200421170c010b2006201c3703402006201e3703482006201a370350201e422088a721212006201937035802400240201aa722040d00201a422088a721222019422088a721042019a72123202021240c010b202020044105746a212220202125202021240340200b202541186a2900002218370300200c202541106a290000221b370300200d202541086a290000221d37030020002025290000221e370000200041086a2226201d370000200041106a2227201b370000200041186a222820183700002006201e37036020062024360284012006202036028001202541206a212541002104024002400240024020010e020201000b410021042001210a0340200a410176222920046a210920092004200820094105746a2000412010ec084101481b2104200a20296b220a41014b0d000b0b200820044105746a2000412010ec08450d010b20242000290000370000202441186a2028290000370000202441106a2027290000370000202441086a2026290000370000202441206a21240b20252022470d000b200628025c210420062802582123200628025421220b201fa7212a2006202136024c200620203602482006202420206b4105753602500240024020040d00202221240c010b202220044105746a212020222125202221240340200b202541186a2900002218370300200c202541106a290000221b370300200d202541086a290000221d37030020002025290000221e370000200041086a2226201d370000200041106a2227201b370000200041186a222820183700002006201e37036020062024360284012006202236028001202541206a212541002104024002400240024020010e020201000b410021042001210a0340200a410176222920046a210920092004200820094105746a2000412010ec084101481b2104200a20296b220a41014b0d000b0b200820044105746a2000412010ec08450d010b20242000290000370000202441186a2028290000370000202441106a2027290000370000202441086a2026290000370000202441206a21240b20252020470d000b0b20062023360258200620223602542006202420226b41057536025c2006290348211f2006290340211d2006290350211b200629035821180240202a450d000240200628022c41ffffff3f71450d002006280228102e0b200628023841ffffff3f71450d002006280234102e0b2006201d3703202006201f3703282006201b370330200620183703380b2006201f370388012006201b37039001201420183703002006201d37038001200620173602a00102400240201fa722040d002015201610ff010c010b2018a7210a2015201620064180016a10c0050240201f422088a741ffffff3f71450d002004102e0b200a41ffffff3f71450d00201b422088a7102e0b201341206a211302402006280214450d002015102e0b2017210420132010470d000c030b0b1036000b1038000b0240200f42ffffff3f83500d00200e102e0b20064198016a2200420037030020064190016a2204420037030020064180016a41086a220a42003703002006420037038001200641e0006a41c8afc9004113108102200a200641e0006a41086a22092900003703002006200629006037038001200641e0006a41c7c3cb004107108102200020092900003703002004200629006037030020064180016a2002200310c5052000420037030020044200370300200a42003703002006420037038001200641e0006a41c8afc9004113108102200a20092900003703002006200629006037038001200641e0006a41dbc3cb004105108102200020092900003703002004200629006037030020064180016a412010ff0102402007450d002008102e0b200524000bdc0301057f230041f0006b2201240020002d00002102200141186a2203200041196a290000370300200141106a2204200041116a290000370300200141086a2205200041096a2900003703002001200029000137030002400240024020020d00200141c0006a41186a22004200370300200141c0006a41106a22024200370300200141c0006a41086a420037030020014200370340200141c0006a41c8afc9004113108102200141206a41dbc3cb0041051081022000200141206a41086a29000037030020022001290020370300200141c0006a412010ff010c010b200141206a41186a2003290300370300200141206a41106a2004290300370300200141206a41086a200529030037030020012001290300370320200141c0006a41186a22004200370300200141c0006a41106a22024200370300200141c0006a41086a420037030020014200370340200141c0006a41c8afc9004113108102200141e0006a41dbc3cb0041051081022000200141e0006a41086a290000370300200220012900603703004120102c2200450d012001422037026420012000360260200141e0006a200141206a41201074200141c0006a412020012802602200200128026810b2012001280264450d002000102e0b200141f0006a24000f0b1036000be4750d067f017e047f017e0b7f057e027f027e027f027e027f017e177f230041f0036b22002400200041d0016a10ec02200041c0026a41186a22014200370300200041c0026a41106a22024200370300200041c0026a41086a22034200370300200042003703c002200041f0026a418ef9c00041101081022003200041f0026a41086a2204290000370300200020002900f0023703c002200041f0026a41c7c3cb00410710810220012004290000370300200220002900f002370300200041f0026a200041c0026a10f10220002802f002210520002902f4022106200142003703002002420037030020034200370300200042003703c002200041f0026a418ef9c000411010810220032004290000370300200020002900f0023703c002200041f0026a41a8f9c000410910810220012004290000370300200220002900f002370300200041f0026a200041c0026a10f1022005410820051b210720002802f0022208410820081b21092006420020051b2206a7210a20002902f402420020081b220ba7210c0240024002400240024002402006422088a7220d410674220e4106752208200b422088a7220f41067422104106756a22052008490d002005ad42307e2206422088a70d042006a72208417f4c0d04024020080d00410821110c020b2008102c22110d010c050b2007200e6a2112200920106a2113200a41ffffff1f7121144100210a4100210f4100210d41002115410821112007210e200921080340024002400240024020070d00200721050c010b2012200e470d01410021052014450d002007102e0b024020132008460d00200829031021062002200841306a2903003703002003200841286a290300370300200841186a290300210b2001200841386a290300370300200020082903203703c002200841c0006a2108200521070c020b200c41ffffff1f710d040c050b200e29031021062002200e41306a2903003703002003200e41286a290300370300200e41186a290300210b2001200e41386a2903003703002000200e2903203703c002200e41c0006a210e0b200041f0026a41186a22102001290300370300200041f0026a41106a2216200229030037030020042003290300370300200020002903c0023703f00202400240200d2015470d00024002402007450d00417f2012200e6b4106752205201320086b4106756a221520152005491b21050c010b201320086b41067521050b200d417f200541016a221520152005491b6a2205200d490d06200f2005200f20054b1b22054104200541044b1bad42307e2217422088a74541037421052017a7211502400240200d0d00200041003602a0020c010b200041083602a8022000200a3602a402200020113602a0020b20004180026a20152005200041a0026a107d20002802880221052000280280024101460d012000280284022111200541306e21150b2011200a6a220520002903f002370300200429030021172016290300211820102903002119200541286a200b370300200541206a2006370300200541186a2019370300200541106a2018370300200541086a2017370300200a41306a210a200f41026a210f200d41016a210d0c010b0b20050d040c030b0240024002400240200841306e221520054f0d00201541017422082005200820054b1b22054104200541044b1bad42307e2206422088a74541037421052006a721080240024020150d00200041003602f0020c010b200041f0026a41086a4108360200200020113602f0022000201541306c3602f4020b200041c0026a20082005200041f0026a107d200041c8026a280200210520002802c0024101460d0120002802c4022111200541306e21150b200d0d014100210d201121050c020b20050d050c040b200741206a2108200d410674220d41406a4106762101201121050340200841086a2903002106200841106a290300210b200841186a2903002117200841706a220e41086a290300211820082903002119200541206a200e290300370300200541286a2018370300200541186a2017370300200541106a200b370300200541086a200637030020052019370300200541306a2105200841c0006a2108200d41406a220d0d000b200141016a210d0b0240200a41ffffff1f71450d002007102e0b0240200f450d00200f410674210e200941206a21080340200841086a2903002106200841106a290300210b200841186a2903002117200841706a220a41086a290300211820082903002119200541206a200a290300370300200541286a2018370300200541186a2017370300200541106a200b370300200541086a200637030020052019370300200541306a2105200841c0006a2108200d41016a210d200e41406a220e0d000b0b200c41ffffff1f71450d010b2009102e0b0240024020002802d401220820002802d80122056b200d490d0020002802d00121080c010b2005200d6a220e2005490d0120084101742205200e2005200e4b1b22054104200541044b1bad42307e2206422088a74541037421052006a7210e0240024020080d00200041003602f0020c010b200041f0026a41086a4108360200200020002802d0013602f0022000200841306c3602f4020b200041c0026a200e2005200041f0026a107d200041c8026a2802002105024020002802c0024101460d00200020002802c40222083602d0012000200541306e3602d40120002802d80121050c010b20050d020c010b2008200541306c6a2011200d41306c10e9081a200020002802d801200d6a22083602d80102402015450d00201541306c450d002011102e20002802d80121080b02400240024020080d00200041f8026a41013a00002000410c3a00f002200041f0026a10fe01024020002802d4012205450d00200541306c450d0020002802d001102e0b42c0b2cd3b21060c010b200841ffffff3f712008470d022008410574220d417f4c0d0220002802d0012105200d102c2204450d030240024002400240200d410576221020084f0d00200041f0026a41086a4101360200200020043602f0022000200d3602f402200041c0026a200d410476220d2008200d20084b1b220d4104200d41044b1b220d410574200d41ffffff3f71200d46200041f0026a107d200041c0026a41086a280200210d20002802c0024101460d0120002802c4022104200d41057621100b20052005200841306c6a470d01410021160c020b200d0d050c040b200841306c220d41506a41306e210e20042108034020082005290000370000200841186a200541186a290000370000200841106a200541106a290000370000200841086a200541086a290000370000200841206a2108200541306a2105200d41506a220d0d000b200e41016a21160b200041d8026a4200370300200041c0026a41106a4200370300200041c0026a41086a22054200370300200042003703c002200041f0026a41f8fcc60041081081022005200041f0026a41086a2208290000370300200020002900f0023703c002200041f0026a41a8aac800410d108102200241086a2008290000370000200220002900f002370000200041b8016a200041c0026a412010f802200041b8016a41106a290300211a20002903c001211b20002802b8012103200041f0016a418ef9c0004110108102200041c0026a41fbafc90041061081024120102c2205450d03200042203702f402200020053602f002200041f0026a200041f0016a41101074200041f0026a200041c0026a4110107420002802f8022205417f4c0d0220002802f002210d0240024020050d00410121080c010b2005102c2208450d040b2008200d200510e9082108200041e0016a41086a200041f0026a41086a220a280200220d360200200041dc016a41026a220e200041c0026a41026a2d00003a0000200020002903f00222063703e001200020002f00c0023b01dc0120004194026a200d3602002000200536028802200020053602840220002008360280022000200637028c02200041003a009c022000410b360298022000419f026a200e2d00003a0000200020002f01dc013b009d02200041f0026a20004180026a10fa02024002400240024002400240024002400240024020002802b00322050d000240200028028402450d00200028028002102e0b4108211c4100211d024020004190026a280200450d00200028028c02102e0b4100210c0c010b200041c0026a41186a2208200041f0026a41186a290300370300200041c0026a41106a220d200041f0026a41106a290300370300200041c0026a41086a200a290300370300200020002903f0023703c002200041f0026a41286a2903002106200029039003210b20002902b403211741c000102c221c450d0c201c200b370300201c20002903c002370310201c2017370234201c2005360230201c2006370308201c41186a200041c0026a41086a2202290300370300201c41206a200d290300370300201c41286a2008290300370300200041a0026a41186a20004180026a41186a290300370300200041a0026a41106a20004180026a41106a290300370300200041a0026a41086a20004180026a41086a29030037030020002000290380023703a002200041f0026a200041a0026a10fa020240024020002802b00322070d004101210c4101211d0c010b41f400210d20004198036a21014101210c4101211d0340200041c0026a41186a200041f0026a41186a220e2903002206370300200041c0026a41106a200041f0026a41106a220a290300220b3703002002200041f0026a41086a220f2903002217370300200020002903f00222183703c00220012903002119200029039003211e20002902b403211f200e2006370300200a200b370300200f2017370300200020183703f0020240201d200c470d00200c41016a2205200c490d0e200c41017422082005200820054b1b22054104200541044b1b220541ffffff1f7120054641037421082005410674210502400240200c0d00200041003602f0010c010b200041083602f8012000201c3602f0012000200c4106743602f4010b200041e0026a20052008200041f0016a107d20002802e802210520002802e0024101460d0420002802e402211c2005410676210c0b201c200d6a2205414c6a220820193703082008201e3703002005415c6a220820002903f002370300200841086a200f290300370300200841106a200a290300370300200841186a200e2903003703002005201f3702002005417c6a2007360200200d41c0006a210d201d41016a211d200041f0026a200041a0026a10fa0220002802b00322070d000b0b024020002802a402450d0020002802a002102e0b200041b0026a280200450d0020002802ac02102e0b201d41ffffff1f7141386c2220417f4c0d0a0240024020200d00410821210c010b2020102c2221450d0c0b201a420020031b2122201b420020031b212302400240201c201d41067422246a201c470d0041002125420021260c010b200041a8016a20232022427f420010e708200041a8016a41086a2903002206420020002903a801220b42015620064200522006501b22051b211e200b420120051b211f201c201d4106746a2101200041f0026a41306a2103200041f0026a41106a210d4100210e4100212520212105201c21080340200d41186a220f200841286a290300370300200d41106a2207200841206a290300370300200d41086a2202200841186a290300370300200d200841106a2903003703002000200841086a2903003703f802200020082903003703f0022003200841306a10c80120004198016a20002903f00220002903f802201f201e10e70820002903a003210620002802a803210a2005200029039801427f20004198016a41086a290300501b3703002002290300210b20072903002117200f2903002118200d2903002119200541306a200a360200200541206a2018370300200541186a2017370300200541106a200b370300200541086a2019370300200541286a2006370300417f200e200a6a220a200a200e491b210e200541386a2105202541016a21252001200841c0006a2208470d000b200ead42a895b1037e21260b20003502d801211a200020163602a802200020103602a402200020043602a0022025ad221b42387e2206422088a70d0a2006a7220e417f4c0d0a02400240200e0d00410821050c010b200e102c2205450d0c0b200041003602c802200020053602c0022000200e41386e22073602c4020240200e4138490d00200041f0026a41286a210f200041f0026a41086a210d202121082007210a0340200e450d01200a450d04200d2008290308370300200d41186a200841206a290300370300200d41106a200841186a290300370300200d41086a200841106a290300370300200020082903003703f002200f200841286a10c801200541306a200041f0026a41306a290300370300200541286a200f290300370300200541206a200041f0026a41206a290300370300200541186a200041f0026a41186a290300370300200541106a200041f0026a41106a290300370300200541086a200d290300370300200520002903f002370300200541386a2105200e41486a210e200841386a2108200a417f6a220a0d000b0b200020253602c80242002106200042003703f00220004180026a4121200041a0026a200041c0026a200041f0026a10fb022000280280024101460d032000418c026a28020021014108210220004180026a41086a280200212720004180026a41186a280200212820004194026a280200212920004180026a41106a280200212a200028028402212b200041f0026a41186a22054200370300200041f0026a41106a222c4200370300200041f0026a41086a22084200370300200042003703f002200041f0016a418ef9c00041101081022008200041f0016a41086a290000370300200020002900f0013703f002200041c0026a41c7c3cb0041071081022005200041c0026a41086a290000370300202c20002900c002370300200041c0026a200041f0026a10f102024020002802c0022205450d00200041f0026a412010ff0120002902c4022106200521020b2006422088a7220d410674410675220541ffffff3f712005470d0a20054105742208417f4c0d0a0240024020080d004101212d0c010b2008102c222d450d0c0b02400240024002402008410576222e20054f0d002008410476220e2005200e20054b1b22054104200541044b1b220541ffffff3f71200546210e200541057421050240024020080d00200041003602f0020c010b200041f8026a4101360200200020083602f4022000202d3602f0020b200041c0026a2005200e200041f0026a107d200041c8026a280200210520002802c0024101460d0120002802c402212d2005410576212e0b200d0d014100212f0c020b20050d0d0c0c0b200d410674210e200d41067441406a4106762103200041f0026a41206a210d202d2105200221080340200041f0026a41386a200841386a290300370300200041f0026a41306a200841306a290300370300200041f0026a41286a200841286a290300370300200d200841206a290300370300200041c0026a41086a220a200d41086a290300370300200041c0026a41106a220f200d41106a290300370300200041c0026a41186a2207200d41186a2903003703002000200d2903003703c002200541186a2007290300370000200541106a200f290300370000200541086a200a290300370000200520002903c002370000200541206a2105200841c0006a2108200e41406a220e0d000b200341016a212f0b0240200642ffffff1f83500d002002102e0b4200210620004188036a4200370300200041f0026a41106a420037030041082102200041f0026a41086a22054200370300200042003703f002200041f0016a418ef9c00041101081022005200041f0016a41086a290000370300200020002900f0013703f002200041c0026a41a8f9c0004109108102202c41086a200041c0026a41086a290000370000202c20002900c002370000200041c0026a200041f0026a10f102024020002802c0022205450d00200041f0026a412010ff0120002902c4022106200521020b2006422088a7220d410674410675220541ffffff3f712005470d0a20054105742208417f4c0d0a0240024020080d00410121300c010b2008102c2230450d0c0b02400240024002402008410576223120054f0d002008410476220e2005200e20054b1b22054104200541044b1b220541ffffff3f71200546210e200541057421050240024020080d00200041003602f0020c010b200041f8026a4101360200200020083602f402200020303602f0020b200041c0026a2005200e200041f0026a107d200041c8026a280200210520002802c0024101460d0120002802c4022130200541057621310b200d0d01410021050c020b20050d0d0c0c0b200d410674210e200d41067441406a4106762103200041f0026a41206a210d20302105200221080340200041f0026a41386a200841386a290300370300200041f0026a41306a200841306a290300370300200041f0026a41286a200841286a290300370300200d200841206a290300370300200041c0026a41086a220a200d41086a290300370300200041c0026a41106a220f200d41106a290300370300200041c0026a41186a2207200d41186a2903003703002000200d2903003703c002200541186a2007290300370000200541106a200f290300370000200541086a200a290300370000200520002903c002370000200541206a2105200841c0006a2108200e41406a220e0d000b200341016a21050b0240200642ffffff1f83500d002002102e0b2030200510fc020240024020010d00202b21080c010b20004188016a20232022427f420010e70820004188016a41086a29030022064200200029038801220b42015620064200522006501b22051b2117200b420120051b2118200141306c210d202b2105202b21080340200541286a2903002106200541206a290300210b200041c0026a41186a220e200541186a290300370300200041c0026a41106a220a200541106a290300370300200041c0026a41086a220f200541086a290300370300200020052903003703c0020240200b2006844200510d00200041d8006a200642002018420010e808200041e8006a20174200200b420010e808200041f8006a200b42002018420010e808200041f0026a41186a200e290300220b370300200041f0026a41106a200a2903002219370300200041f0026a41086a200f290300221e370300200020002903c002221f3703f002200841186a200b370300200841106a2019370300200841086a201e3703002008201f370300200841286a427f200041f8006a41086a290300220b200029035820002903687c7c221920064200522017420052712000290360420052722000290370420052722019200b5472220e1b3703002008427f2000290378200e1b370320200841306a21080b200541306a2105200d41506a220d0d000b0b024002402008202b6b41306d2232410d2032410d491b223341306c22050d00410821340c010b2005102c2234450d0c0b203220336b2135024020330d00410021360c070b203341306c220d41506a41306e210e20342105202b21080340200841086a2903002106200841106a290300210b200841186a2903002117200841206a290300211820082903002119200541286a200841286a290300370300200541206a2018370300200541186a2017370300200541106a200b370300200541086a200637030020052019370300200541306a2105200841306a2108200d41506a220d0d000b200e41016a213602402035450d002033450d00202b202b203341306c6a203541306c10ea081a0b0240203641144b0d00203641014d0d07200e417f6a2105200e41306c20346a41506a21084102210d034020362005490d032008200d10fd02200841506a2108200d41016a210d2005417f6a2205417f470d000c080b0b2036410176ad42307e2206422088a70d0a2006a72237417f4c0d0a2037102c2238450d0b203441506a2139203441f07e6a213a410421104100213b410021032036213c0340203c213d4100213c4101210d0240203d417f6a220e450d000240024002400240024002402034200e41306c6a203d41306c220f20346a41a07f6a412010ec084100480d00203d417e6a210e203a200f6a21054100213c4100210803400240200e2008470d00203d210d0c080b200841016a2108200541306a2005412010ec08210d200541506a2105200d417f4a0d000b200841016a210d2008417f73203d6a210e0c010b203a200f6a2105024003400240200e4101470d004100210e0c020b200e417f6a210e200541306a2005412010ec082108200541506a210520084100480d000b0b203d200e490d01203d20364b0d02203d200e6b220d410176220a450d002039200f6a21052034200e41306c6a21080340200041c0026a41186a220f200841186a2207290300370300200041c0026a41106a2202200841106a2201290300370300200041c0026a41086a2204200841086a2216290300370300200020082903003703c002200841206a22112903002106200541286a2215290300210b200541086a22132903002117200541106a22122903002118200541186a221429030021192005290300211e2011200541206a22092903003703002007201937030020012018370300201620173703002008201e370300200841286a220729030021172007200b370300201220022903003703002014200f29030037030020132004290300370300200520002903c0023703002015201737030020092006370300200541506a2105200841306a2108200a417f6a220a0d000b0b0240200e0d00200e213c0c050b0240200d41094d0d00200e213c0c050b203d20364b0d02203d200e6b210d200e417f6a21052039200e41306c6a21080340203d2005490d0b2008200d41016a220d10fd022005417f6a220e20054f0d04200841506a2108200e2105200d410a490d000c040b0b200e203d41e4d1cc001057000b203d203641e4d1cc00104d000b203d200e417f6a2205490d07203d203641f4d1cc00104d000b200e41016a213c0b02402003203b470d00203b41016a2205203b490d0c203b41017422082005200820054b1b22054104200541044b1b220541ffffffff017120054641027421082005410374210502400240203b0d00200041003602f0020c010b200041043602f802200020103602f0022000203b4103743602f4020b200041c0026a20052008200041f0026a107d20002802c8022105024020002802c0024101470d0020050d0e0c0d0b20002802c40221102005410376213b0b201020034103746a2205200d3602042005203c360200200341016a22132103024020134102490d0002400240024003400240024002400240201020132203417f6a22134103746a2205280200450d00200341037420106a220a41746a280200220e200528020422084d0d00200341024d0d0820102003417d6a22054103746a280204220d2008200e6a4d0d01200341034d0d08200a41646a280200200d200e6a4b0d080c010b20034103490d012005280204210820102003417d6a22054103746a280204210d0b200d2008490d010b2003417e6a21050b02402003200541016a22124d0d00200320054d0d02201020054103746a2216280204221420162802006a2205201020124103746a22112802002215490d03200520364b0d04201641046a21092034201541306c6a22012011280204220441306c22086a210e200541306c210d02400240200520156b220f20046b22052004490d0020382001200810e908220220086a210a0240024020044101480d00200f20044a0d010b200121052002210d0c020b2034200d6a21072002210d2001210503402005200e200d200e200d412010ec08410048220f1b2208290300370300200541286a200841286a290300370300200541206a200841206a290300370300200541186a200841186a290300370300200541106a200841106a290300370300200541086a200841086a290300370300200d200d41306a200f1b210d200541306a2105200e41306a200e200f1b220e20074f0d02200a200d4b0d000c020b0b2038200e200541306c220810e908220220086a210a0240024020044101480d00200541014e0d010b200e21052002210d0c010b2039200d6a2108200e21050340200541506a210e200a41506a210f2008200e200f200f200e412010ec0841004822071b220d290300370300200841286a200d41286a290300370300200841206a200d41206a290300370300200841186a200d41186a290300370300200841106a200d41106a290300370300200841086a200d41086a290300370300200a200f20071b210a02402001200e200520071b2205490d002002210d0c020b200841506a21082002210d2002200a490d000b0b2005200d200a200d6b220820084130706b10e9081a2009201420046a360200201620153602002011201141086a20032012417f736a41037410ea081a41012103201341014d0d050c010b0b201220034184d2cc00103c000b200520034194d2cc00103c000b2015200541a4d2cc001057000b2005203641a4d2cc00104d000b203c450d060c000b0b20050d0a0c090b2005203641c4d1cc001056000b200720074188decc00103c000b200028028402210d0240201d450d00201d4106742108201c41346a210503400240200528020041ffffff3f71450d002005417c6a280200102e0b200541c0006a2105200841406a22080d000b0b0240200c41ffffff1f71450d00201c102e0b200d4105460d03200041f8026a41023a00002000410c3a00f002200041f0026a10fe010c030b2005203d41f4d1cc001057000b0240203b41ffffffff0171450d002010102e0b2037413070210520374130490d0020372005460d002038102e0b02402035410176220d450d00203541306c202b6a41506a2105202b21080340200041f0026a41286a220e200841286a220a290300370300200041f0026a41206a220f200841206a2207290300370300200041f0026a41186a2202200841186a2201290300370300200041f0026a41106a2203200841106a2204290300370300200041f0026a41086a2210200841086a2216290300370300200020082903003703f002200541086a22112903002106200541106a2215290300210b200541186a22132903002117200541206a22122903002118200541286a2214290300211920082005290300370300200a201937030020072018370300200120173703002004200b370300201620063703002014200e2903003703002012200f290300370300201320022903003703002015200329030037030020112010290300370300200520002903f002370300200541506a2105200841306a2108200d417f6a220d0d000b0b203541ffffff3f712035470d0320354105742205417f4c0d030240024020050d00410121030c010b2005102c2203450d050b0240024002402005410576221420354f0d00200541047622082035200820354b1b22084104200841044b1b220841ffffff3f71200846210d200841057421080240024020050d00200041003602f0020c010b200041f8026a4101360200200020053602f402200020033602f0020b200041c0026a2008200d200041f0026a107d200041c8026a2802002105024020002802c0024101460d0020002802c40221032005410576211420354521380c020b20050d070c060b203545213820350d00410021150c010b203241306c203341306c6b210d203541306c41506a41306e210e20032105202b2108034020052008290000370000200541186a200841186a290000370000200541106a200841106a290000370000200541086a200841086a290000370000200541206a2105200841306a2108200d41506a220d0d000b200e41016a21150b2003201510fc022036ad42187e2206422088a70d032006a72205417f4c0d030240024020050d004108210f0c010b2005102c220f450d050b0240024002400240200541186e221320364f0d00201341017422082036200820364b1b22084104200841044b1bad42187e2206422088a74541037421082006a7210d02400240200541174b0d00200041003602f0020c010b200041f0026a41086a41083602002000200f3602f0022000201341186c3602f4020b200041c0026a200d2008200041f0026a107d200041c8026a280200210520002802c0024101460d0120002802c402210f200541186e21130b20342034203641306c6a2211462212450d01410021020c020b20050d060c050b2034203641306c22056a210d200541506a41306e210e200f210520342108034020052008360200200541106a4200370300200541086a4200370300200541186a2105200d200841306a2208470d000b200e41016a21020b201c201d4106746a2116024002400240201d0d00201c21040c010b201c21050340200541c0006a210420052802302210450d010240200541346a290200221e422088a74105742208450d00200541086a290300211820052903002119201020086a2101410021072010210a024003404100210502400240024020020e020201000b410021052002210803402008410176220e20056a210d200d2005200f200d41186c6a280200200a412010ec084101481b21052008200e6b220841014b0d000b0b200f200541186c6a2208280200200a412010ec080d00200220054d0d02200041386a20184200411020076bad2206420010e808200041c8006a201942002006420010e8082008427f20082903082206427f20002903482000290340420052200041c8006a41086a290300220b20002903387c2217200b547222051b7c220b200b200654220d200841106a220e2903002206427f201720051b7c200dad7c220b200654200b2006511b22051b370308200e427f200b20051b3703000b200741016a21072001200a41206a220a470d000c020b0b2005200241b4f9c000103c000b0240201e42ffffff3f83500d002010102e0b2004210520042016470d000c020b0b20162004460d000340200441c0006a21050240200441346a28020041ffffff3f71450d00200441306a280200102e0b2005210420162005470d000b0b0240200c41ffffff1f71450d00201c102e0b0240024002402002450d00200f280200220d450d00024020024101460d00200f200241186c6a210a200f41186a2105200f41106a2903002106200f290308210b03402005280200220e450d012006200541106a2903002217200b200541086a290300221856200620175620062017511b22081b2106200b201820081b210b200d200e20081b210d200541186a2205200a470d000b0b02402013450d00201341186c450d00200f102e0b200d0d014100210e0c020b4100210e2013450d01201341186c450d01200f102e0c010b200041a0026a41186a200d41186a290000370300200041a0026a41106a200d41106a290000370300200041a0026a41086a200d41086a2900003703002000200d2900003703a0024101210e0b203641ffffff3f712036470d0320364105742205417f4c0d030240024020050d00410121070c010b2005102c2207450d050b02400240024002402005410576220920364f0d00200541047622082036200820364b1b22084104200841044b1b220841ffffff3f71200846210d200841057421080240024020050d00200041003602f0020c010b200041f8026a4101360200200020053602f402200020073602f0020b200041c0026a2008200d200041f0026a107d200041c8026a280200210520002802c0024101460d0120002802c4022107200541057621090b2012450d01410021010c020b20050d060c050b2034203641306c22056a210d200541506a41306e210a2007210520342108034020052008290000370000200541186a200841186a290000370000200541106a200841106a290000370000200541086a200841086a290000370000200541206a2105200d200841306a2208470d000b200a41016a21010b200041f0026a20072001202d202f10fe02200041f0026a41106a280200210c20002802f402211d20002802f002211c20002802fc02223d20004184036a2802002007200110f502200041f9026a2202200041a0026a41086a29030037000020004181036a200041a0026a41106a29030037000020004189036a200041a0026a41186a2903003700002000200e3a00f002200020002903a0023700f102200041f0026a10f602024020002802d80141306c2205450d0020002802d001220e20056a2104200041c0026a41086a2116200041a8036a21100340200e41306a210f0240024002400240024020010e020300010b410021050c010b410021052001210803402008410176220a20056a210d200d20052007200d4105746a200e412010ec084101481b21052008200a6b220841014b0d000b0b200720054105746a200e412010ec08450d010b024002400240024020150e020300010b410021050c010b410021052015210803402008410176220a20056a210d200d20052003200d4105746a200e412010ec084101481b21052008200a6b220841014b0d000b0b200320054105746a200e412010ec08450d010b200041186a200e200e290320200e41286a220829030010cb02200029031821062000200041186a41086a290300220b3703f802200020063703f002024002402006200b844200520d002000200041f0026a3602c002200041c0026a10cc020c010b200042f0f2bda1a7ee9cb9f9003703c002200041f0026a200041c0026a10cd02200041086a200041f0026a2006200b10fd01200041c0026a41106a200041086a41086a2903002218200b7d20002903082217200654ad7d200b20187d2006201754ad7d20172006562018200b562018200b511b22051b3703002000201720067d200620177d20051b3703c80220002005ad3703c0020240024020050d00200020163602f001200041f0016a10cc020c010b200020163602f001200041f0016a10ce020b200041f0026a41186a200b3703002000200637038003200041063a00f8022000410e3a00f002200041f0026a10fe010b200e2903202106200e41186a290000210b200e41106a2900002117200e29000021182010200829030037030020022018370000200241086a200e41086a290000370000200241106a2017370000200241186a200b370000200041053a00f8022000410c3a00f002200020063703a003200041f0026a10fe010b200f210e200f2004470d000b0b201120346b41306e220541ffffff1f712005470d0320054106742208417f4c0d030240024020080d00410821100c010b2008102c2210450d050b4100210d200041003602e802200020103602e0022000200841067622163602e4020240201620054f0d002008410576220e2005200e20054b1b22054104200541044b1b220541ffffff1f71200546410374210e200541067421050240024020080d00200041003602f0020c010b200041f0026a41086a4108360200200020083602f402200020103602f0020b200041c0026a2005200e200041f0026a107d200041c8026a280200210520002802c0024101460d03200020002802c40222103602e0022000200541067622163602e4020b024020120d0020002802d80141306c2101203641306c41506a41306e211520002802d00121042010210f2034210203402002220e41306a2102200121052004210802400340024020050d00420021064200210b0c020b200541506a21052008200e412010ec08210d200841306a220a2108200d0d000b200a41706a22052903002106200541086a290300210b0b200041c0026a41186a2205200e41186a290300370300200041c0026a41106a2208200e41106a290300370300200041c0026a41086a220d200e41086a290300370300200e41286a2903002117200e2903202118200e2903002119200f2006370310200f41186a200b370300200020193703c002200f2018370300200f2017370308200f41386a2005290300370300200f41306a2008290300370300200f20002903c002370320200f41286a200d290300370300200f41c0006a210f20022011470d000b201541016a210d0b2000200d3602e80220004188036a4200370300200041f0026a41106a4200370300200041f0026a41086a22054200370300200042003703f002200041f0016a418ef9c00041101081022005200041f0016a41086a290000370300200020002900f0013703f002200041c0026a41c7c3cb004107108102202c41086a200041c0026a41086a290000370000202c20002900c002370000200041f0026a200041e0026a10ff0202402016450d002010102e0b203541ffffff1f712035470d0320354106742205417f4c0d030240024020050d00410821150c010b2005102c2215450d050b41002108200041003602e802200020153602e0022000200541067622133602e402024002400240201320354f0d00200541057622082035200820354b1b22084104200841044b1b220841ffffff1f71200846410374210d200841067421080240024020050d00200041003602f0020c010b200041f0026a41086a4108360200200020053602f402200020153602f0020b200041c0026a2008200d200041f0026a107d200041c8026a2802002105024020002802c0024101460d00200020002802c40222153602e0022000200541067622133602e4020c020b20050d070c060b20380d010b202b203541306c6a211020002802d80141306c2116203541306c41506a41306e211220002802d00121112015210a202b210f0340200f41286a2903002106200f290320210b200041f0026a41186a2202200f41186a290000370300200041f0026a41106a2201200f41106a290000370300200041f0026a41086a2204200f41086a2900003703002000200f2900003703f002200f41306a210f201621052011210802400340024020050d0042002117420021180c020b200541506a21052008200041f0026a412010ec08210d200841306a220e2108200d0d000b200e41706a22052903002117200541086a29030021180b200041c0026a41186a22052002290300370300200041c0026a41106a22082001290300370300200041c0026a41086a220d2004290300370300200020002903f0023703c002200a2006370308200a200b370300200a2017370310200a41186a2018370300200a20002903c002370320200a41286a200d290300370300200a41306a2008290300370300200a41386a2005290300370300200a41c0006a210a200f2010470d000b201241016a21080b200020083602e80202402027450d00202741306c450d00202b102e0b20004188036a220d4200370300200041f0026a41106a22084200370300200041f0026a41086a22054200370300200042003703f002200041f0016a418ef9c00041101081022005200041f0016a41086a220e290000370300200020002900f0013703f002200041c0026a41a8f9c0004109108102202c41086a220a200041c0026a41086a220f290000370000202c20002900c002370000200041f0026a200041e0026a10ff0202402013450d002015102e0b200d42003703002008420037030020054200370300200042003703f002200041f0016a418ef9c00041101081022005200e290000370300200020002900f0013703f002200041c0026a419ef9c000410a108102200a200f290000370000202c20002900c002370000200041f0026a412010ff0120004184036a203636020020082033360200200541003a00002000410c3a00f002200041f0026a410c6a2034360200200041f0026a10fe01200d42003703002008420037030020054200370300200042003703f002200041f0016a418ef9c00041101081022005200e290000370300200020002900f0013703f002200041c0026a41e0a3c200410e108102200a200f290000370000202c20002900c0023700002000200041f0026a4120108e022000280200210220002802042101200d42003703002008420037030020054200370300200042003703f002200041f0016a418ef9c00041101081022005200e290000370300200020002900f0013703f002200041c0026a41e0a3c200410e108102200a200f290000370000202c20002900c0023700002000200141016a410120021b3602c002200041f0026a4120200041c0026a410410b2010240200c41ffffff3f71450d00203d102e0b0240201d41ffffff3f71450d00201c102e0b02402009450d002007102e0b02402014450d002003102e0b02402031450d002030102e0b0240202e450d00202d102e0b02402028450d002028412c6c2108202a210503400240200541046a280200220d450d00200d41246c450d002005280200102e0b2005412c6a2105200841546a22080d000b0b2029450d002029412c6c450d00202a102e0b201b42f094c0337e201a42c0a8ee3f7e7c20267c2106201a4280e1eb177e210b02402025450d00202541386c21082021412c6a210503400240200528020041ffffff3f71450d002005417c6a280200102e0b200541386a2105200841486a22080d000b0b2006200b7c2106201b42c0f0f50b7e210b02402024450d002020450d002021102e0b2006200b7c2106201a4280c2d72f7e210b024020002802d4012205450d00200541306c450d0020002802d001102e0b2006200b7c21060b200041f0036a240020060f0b20050d010b1038000b1036000b9d0202017f037e230041d0006b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822010d00420021040c010b200328020c210202400240200341086a41086a2802004110490d00200141086a290000210520012900002106420121040c010b20034100360220200342013703182003410a36022c200320033602282003200341186a360234200341cc006a41013602002003420137023c200341909dc5003602382003200341286a360248200341346a419cebc000200341386a103d1a2003280218200328022010ef020240200328021c450d002003280218102e0b420021040b2002450d002001102e0b2000200637030820002004370300200041106a2005370300200341d0006a24000bbf0402017f057e23004180016b220524002005200436020c20052003360208200541d4e2cc00200141086a20024108491b36021020054100200241786a2201200120024b1b360214200541d8006a200541106a109301200541386a41086a2202200541e1006a290000370300200541386a41106a2201200541e9006a290000370300200541386a41186a2203200541f1006a290000370300200520052900593703380240024002400240024020052d00584101460d00200541186a41186a2003290300370300200541186a41106a2001290300370300200541186a41086a2002290300370300200520052903383703182005200541086a10ab0102402005280200450d00200541003602580c030b200541d8006a200541086a200528020410920120052802582202450d02200529025c21060240200528020c22014110490d0020052005280208220341106a3602082005200141706a220436020c200441104f0d020b200642ffffff3f83500d022002102e0c020b200041003602400c030b200341086a2900002107200329000021082005200141606a36020c2005200341206a36020820020d010b200041003602400c010b200341186a29000021092003290010210a20002005290318370000200041186a200541186a41186a290300370000200041106a200541186a41106a290300370000200041086a200541186a41086a290300370000200041386a20093703002000200a370330200041286a20073703002000200837032020002006370244200020023602400b20054180016a24000be60203057f017e037f230041d0006b220224002002200128020c200141146a280200108b050240024020022802002203450d00200141086a2104200141106a210502400340024002402004280200220620022902042207422088a722084b0d0020012802002003200610ec08450d010b2007a7450d032003102e0c030b02402005280200450d00200128020c102e0b2001200336020c2005200737020020022003200810ed020240024020022802002203450d002002280208210920022802042108024020012d001c450d00200128020c200128021410ff010b2001280214220a20042802002206490d032002200128020c20066a200a20066b20032009200128021811050020022802400d012008450d002003102e0b2002200128020c2001280214108b05200228020022030d010c030b0b2000200241d00010e9081a2008450d022003102e0c020b2006200a41e89ec5001056000b200041003602400b200241d0006a24000bea6609037f017e017f017e187f037e097f027e067f230041c0036b22052400200541b0026a41086a2206200241086a280200360200200520022902003703b00220054180026a41086a2202200341086a2802003602002005200329020037038002200541e0026a200541b0026a20054180026a10b904200541086a41086a200541e0026a41086a22032802002207360200200520052903e0022208370308200541186a41086a200541f4026a2802002209360200200520052902ec02220a37031820062007360200200520083703b002200220093602002005200a37038002200541e0026a2001200541b0026a20054180026a10e206200541c8006a41086a2206200541f8026a2802003602002005200541f0026a2903003703482003280200210b200541e0026a410c6a280200210220052802e402210c024002400240024002400240024002400240024020052802e0024101460d00200541286a41086a200628020036020020052005290348370328024020042903004201520d00200541286a2004280208200441106a290300200441186a29030010c0040b200c20024102746a210702400240024020010d00200c2103200c210d0c010b200c2103200c210d2002450d0020024102742104200c2103200c210d03402003220241046a210320022802002202450d012002280208220641016a41004c0d022002200636020802400240200241f4006a2d00000d0020022002280200417f6a220636020020060d01200241046a22062006280200417f6a220636020020060d012002102e0c010b200d2002360200200d41046a210d2001417f6a2201450d020b2004417c6a22040d000b200721030b0240200720036b2202450d00200241027541027421020340200328020022012001280200417f6a3602000240200328020022012802000d00200141046a22012001280200417f6a3602002003280200220141046a2802000d002001102e0b200341046a21032002417c6a22020d000b0b02400240200d200c6b220e410275220f41144b0d00200f41014d0d0641022103200c200f417e6a22024102746a21010340200f2002490d022001200310e306200341016a21032001417c6a21012002417f6a2202417f470d000c070b0b200f410176220341ffffffff03712003470d0b20034102742210417f4c0d0b2010102c2211450d0a200c417c6a2112200c41746a2113410421144100211541002116200f2117034020172109410021174101210202402009417f6a2204450d00024002400240024002400240024002400240024002400240200c20044102746a2802002203280208220241016a41004c0d0020032002360208200c2009417e6a22074102746a2802002202280208220141016a41004c0d01200328025021032002200136020820032002280250490d04201320094102746a210341002117410021010340024020072001470d00200921020c0e0b200341046a2802002202280208220441016a41004c0d032002200436020820032802002204280208220641016a41004c0d0420022802502102200420063602082003417c6a2103200141016a2101200220042802504f0d000b200141016a21022001417f7320096a21040c050b41bcd9cc00411820054180026a41c4f8c90041d4f8c900103e000b41bcd9cc00411820054180026a41c4f8c90041d4f8c900103e000b41bcd9cc00411820054180026a41c4f8c90041d4f8c900103e000b41bcd9cc00411820054180026a41c4f8c90041d4f8c900103e000b2013200941027422076a210302400340024020044101470d00410021040c020b200341046a2802002202280208220141016a41004c0d032002200136020820032802002201280208220641016a41004c0d0420022802502102200120063602082004417f6a21042003417c6a210320022001280250490d000b0b20092004490d032009200f4b0d04200920046b22024101762206450d00200c20044102746a2103201220076a21010340200328020021072003200128020036020020012007360200200341046a21032001417c6a21012006417f6a22060d000b0b024020040d00200421170c070b0240200241094d0d00200421170c070b2009200f4b0d04200920046b21022004417f6a2103201220044102746a2101034020092003490d0c2001200241016a220210e3062003417f6a220420034f0d062001417c6a2101200421032002410a490d000c060b0b41bcd9cc00411820054180026a41c4f8c90041d4f8c900103e000b41bcd9cc00411820054180026a41c4f8c90041d4f8c900103e000b2004200941e4d1cc001057000b2009200f41e4d1cc00104d000b20092004417f6a2203490d062009200f41f4d1cc00104d000b200441016a21170b0240024002400240024020162015460d00201621030c010b201541016a22032015490d10201541017422012003200120034b1b22034104200341044b1b220341ffffffff01712003464102742101200341037421030240024020150d00200541003602e0020c010b200541043602e802200520143602e002200520154103743602e4020b20054180026a20032001200541e0026a107d20052802880221012005280280024101460d01200528028402211420152103200141037621150b201420034103746a2203200236020420032017360200201641016a22182116201841024f0d010c020b20010d0d0c0e0b024002400240024002400240024003400240024002400240201420182216417f6a22184103746a2203280200450d00201641037420146a220641746a2802002204200328020422024d0d00201641024d0d0c20142016417d6a22034103746a2802042201200220046a4d0d01201641034d0d0c200641646a280200200120046a4b0d0c0c010b20164103490d012003280204210220142016417d6a22034103746a28020421010b20012002490d010b2016417e6a21030b02402016200341016a22194d0d00201620034d0d02201420034103746a221a280204221b201a2802006a2203201420194103746a221c280200221d490d032003200f4b0d04200c201d4102746a221e201c280204221f41027422026a210120034102742106024002402003201d6b2207201f6b2203201f490d002011201e200210e908220320026a210402400240201f4101480d002007201f4a0d010b201e2102200321030c020b200c20066a212020032103201e2102034020012802002206280208220741016a41004c0d082006200736020820032802002207280208220941016a41004c0d092006280250210620072009360208200220012003200620072802504922061b2802003602002003200341046a20061b2103200241046a2102200141046a200120061b220120204f0d02200420034b0d000c020b0b201120012003410274220210e908222020026a210402400240201f4101480d00200341014e0d010b20012102202021030c010b201220066a21092001210203402004417c6a22032802002201280208220641016a41004c0d09200120063602082002417c6a22062802002207280208222141016a41004c0d0a2001280250210120072021360208200920062003200120072802504922011b2802003602002004200320011b21040240201e2006200220011b2202490d00202021030c020b2009417c6a21092020210320202004490d000b0b20022003200420036b417c7110e9081a201a41046a201b201f6a360200201a201d360200201c201c41086a20162019417f736a41037410ea081a41012116201841014d0d090c010b0b201920164184d2cc00103c000b200320164194d2cc00103c000b201d200341a4d2cc001057000b2003200f41a4d2cc00104d000b41bcd9cc00411820054180026a41c4f8c90041d4f8c900103e000b41bcd9cc00411820054180026a41c4f8c90041d4f8c900103e000b41bcd9cc00411820054180026a41c4f8c90041d4f8c900103e000b41bcd9cc00411820054180026a41c4f8c90041d4f8c900103e000b2017450d050c000b0b2002200f41c4d1cc001056000b41bcd9cc00411820054180026a4190b7c00041a0b7c000103e000b2000200c360204200041013602002000410c6a2002360200200041086a200b3602000c030b2003200941f4d1cc001057000b0240201541ffffffff0171450d002014102e0b2010450d002011102e0b20052802302102200528022c21012005200528022822033602402005200136023c2005200336023820052003200241e0006c6a221a36024441042122024002402002450d00200541b0026a410472211c200541e0026a41346a21020240034020054180026a41286a2204200341286a29030037030020054180026a41206a2206200341206a29030037030020054180026a41186a2207200341186a29030037030020054180026a41106a2209200341106a29030037030020054180026a41086a2220200341086a2903003703002005200329030037038002200341306a2802002101200541c8006a41086a22212003413c6a290200370300200541c8006a41106a221e200341c4006a290200370300200541c8006a41186a2216200341cc006a290200370300200541c8006a41206a221f200341d4006a290200370300200541c8006a41286a2214200341dc006a2802003602002005200341346a290200370348024020010d00200341e0006a211a0c020b200541e0026a41286a2004290300370300200541e0026a41206a2006290300370300200541e0026a41186a2007290300370300200541e0026a41106a2009290300370300200541e0026a41086a202029030037030020022005290348370200200241086a2021290300370200200241106a201e290300370200200241186a2016290300370200200241206a201f290300370200200241286a201428020036020020052005290380023703e0022005200136029003200541b0026a200541e0026a10bd07024020052802b00222010d00200341e0006a2203201a470d010c020b0b200541f8006a41106a201c41106a2902002208370300200541d8016a41086a201c41086a290200220a370300200541d8016a41106a2008370300200541d8016a41186a201c41186a2902002223370300200541d8016a41206a201c41206a29020022243703002005200341e0006a3602402005201c29020022253703d801200541b0016a41206a22032024370300200541b0016a41186a22022023370300200541b0016a41106a22042008370300200541b0016a41086a2206200a370300200520253703b001412c102c2222450d0720222001360200202220052903b0013702042022410c6a2006290300370200202241146a20042903003702002022411c6a2002290300370200202241246a2003290300370200200541a0016a41086a200541386a41086a2903002208370300200520052903383703a001024002402008a7220120052802ac01221a470d0041012126410121270c010b200541e0026a41346a2102200541b0026a410472211c41012126410121270240034020054180026a41286a22042001220341286a29030037030020054180026a41206a2206200341206a29030037030020054180026a41186a2207200341186a29030037030020054180026a41106a2209200341106a29030037030020054180026a41086a2220200341086a2903003703002005200329030037038002200341306a2802002101200541c8006a41086a22212003413c6a290200370300200541c8006a41106a221e200341c4006a290200370300200541c8006a41186a2216200341cc006a290200370300200541c8006a41206a221f200341d4006a290200370300200541c8006a41286a2214200341dc006a2802003602002005200341346a2902003703482001450d01200541e0026a41286a2004290300370300200541e0026a41206a22042006290300370300200541e0026a41186a22062007290300370300200541e0026a41106a22072009290300370300200541e0026a41086a2209202029030037030020022005290348370200200241086a2021290300370200200241106a201e290300370200200241186a2016290300370200200241206a201f290300370200200241286a201428020036020020052005290380023703e0022005200136029003200541b0026a200541e0026a10bd07024020052802b00222010d00200341e0006a2201201a470d010c020b200541f8006a41106a201c41106a2902002208370300200541d8016a41086a201c41086a290200220a370300200541d8016a41106a2008370300200541d8016a41186a201c41186a2902002223370300200541d8016a41206a201c41206a29020022243703002005200341e0006a3602a8012005201c29020022253703d801200541b0016a41206a22032024370300200541b0016a41186a22202023370300200541b0016a41106a22212008370300200541b0016a41086a221e200a370300200520253703b0012004200329030037030020062020290300370300200720212903003703002009201e290300370300200520052903b0013703e0020240024020272026470d00202641016a22032026490d0d202641017422202003202020034b1b22034104200341044b1bad422c7e2208422088a74541027421032008a721200240024020260d0020054100360280020c010b2005410436028802200520223602800220052026412c6c360284020b200541b0026a2020200320054180026a107d20052802b802210320052802b0024101460d0120052802b40221222003412c6e21260b20222027412c6c6a220320013602002003410c6a2009290300370200200320052903e002370204200341146a20072903003702002003411c6a2006290300370200200341246a2004290300370200202741016a212720052802a801220120052802ac01221a470d010c030b0b2003450d0a0c090b2005200341e0006a3602a8010b200541a0016a10ac020c020b2005201a3602400b200541386a10ac0241002127410021260b200541053602b00220222027412c6c6a2128202221290240034020292028460d012029280208220341ffffffff03712003470d072029280200210402400240200341027422020d004104212a0c010b2002102c222a450d070b02400240024002402002410276222b20034f0d00200241017622012003200120034b1b22014104200141044b1b220141ffffffff03712001464102742106200141027421010240024020020d00200541003602e0020c010b200541043602e802200520023602e4022005202a3602e0020b20054180026a20012006200541e0026a107d20052802880221022005280280024101460d01200528028402212a2002410276212b0b20042004200341246c22016a470d01410021030c020b2002450d090c080b200441206a21032001415c6a41246e2104202a2102034020022003280200360200200341246a2103200241046a21022001415c6a22010d000b200441016a21030b4101450d0720034103742202417f4c0d070240024020020d004108212c0c010b2002102c222c450d070b0240024002402002410376222d20034f0d00200241027622012003200120034b1b22014104200141044b1b41037421010240024020020d00200541003602e0020c010b200541083602e802200520023602e4022005202c3602e0020b20054180026a20014108200541e0026a107d200528028802210202402005280280024101460d00200528028402212c2002410376212d0c020b2002450d0a0c090b20030d00410021130c010b20034102742201417c6a4102762104202c2103202a2102034020032002350200370300200341086a2103200241046a21022001417c6a22010d000b200441016a21130b2029412c6a212e202c201341037422046a21064200210820042103202c210202400240024002400340024020030d00024020130d004100212041082107410021130c050b0240428094ebdc0320082008428094ebdc035422031b2008428094ebdc0320031b7d222f4200520d00201341ffffffff01712013470d0e20134103742203417f4c0d0e2003102c2207450d0d2007202c200310e9081a200341037621200c050b202f2013ad2230822124202f20308021252006202c6b2203410376220241ffffffff00712002470d0d20034101742203417f4c0d0d0240024020030d004108211f0c010b2003102c221f450d0d0b02400240024002402003410476223120024f0d00200341037622012002200120024b1b22024104200241044b1b220241ffffffff00712002464103742101200241047421020240024020030d00200541003602e0020c010b200541083602e802200520033602e4022005201f3602e0020b20054180026a20022001200541e0026a107d20052802880221032005280280024101460d01200528028402211f200341047621310b201341037441786a2232410376211541002102201f2103202c21010340200341086a200129030037030020032002360200200341106a2103200241016a2102200141086a2101200441786a22040d000b201541016a210f02402032419f014b22330d002032450d07200f410474201f6a41706a210741002104201521010340200f20012203417f6a2201490d040240200f20016b22204102490d00201f20034104746a220341086a2206290300201f20014104746a220241086a2209290300220a5a0d00200228020021212002200329030037030020092006290300370300024020204103490d002004417f6a210941002102200721030340200341186a2206290300200a5a0d0120092002460d06200341086a20062903003703002003200341106a22062903003703002006210320042002417f6a2202470d000b200621030b2003200a370308200320213602000b200741706a21072004417f6a210420010d000c080b0b200f410176220341ffffffff00712003470d1020034104742234417f4c0d102034102c2212450d0f201f41706a2135201f41586a213641002110410421144100211e200f211803400240024020182207417f6a22030d0041012106410021180c010b0240024002400240024002400240201f20034104746a41086a29030020074104742209201f6a41686a290300220a540d002007417e6a2104203620096a210241002118410021030340024020042003470d00200721060c090b200341016a2103200a200229030022235a2101200241706a21022023210a20010d000b200341016a21062003417f7320076a21030c010b203620096a210202400340024020034101470d00410021030c020b2003417f6a2103200a20022903002223542101200241706a21022023210a20010d000b0b20072003490d012007200f4b0d02200720036b22064101762204450d00201f20034104746a2102203520096a21010340200541e0026a41086a2209200241086a2220290300370300200520022903003703e002200141086a2221290300210a200220012903003703002020200a37030020212009290300370300200120052903e002370300200241106a2102200141706a21012004417f6a22040d000b0b024020030d00200321180c060b0240200641094d0d00200321180c060b2007200f4b0d03200320076b2101201f20034104746a2109034020072003417f6a2218490d050240200720186b22064102490d00201f20034104746a220341086a2204290300201f20184104746a220241086a2220290300220a5a0d00200228020021212002200329030037030020202004290300370300024020064103490d0041012102200921030340200341186a2204290300200a5a0d01200120026a4101460d06200341086a20042903003703002003200341106a2204290300370300200421032001200241016a22026a0d000b200421030b2003200a370308200320213602000b2018450d06200941706a21092001417f6a2101201821032006410a4f0d060c000b0b2003200741e4d1cc001057000b2007200f41e4d1cc00104d000b2002200641d4d1cc00103c000b20072003417f6a2218490d002007200f41f4d1cc00104d000b2018200741f4d1cc001057000b02400240024002400240201e2010460d00201e21030c010b201041016a22032010490d15201041017422022003200220034b1b22034104200341044b1b220341ffffffff01712003464102742102200341037421030240024020100d00200541003602e0020c010b200541043602e802200520143602e002200520104103743602e4020b20054180026a20032002200541e0026a107d20052802880221022005280280024101460d01200528028402211420102103200241037621100b201420034103746a2203200636020420032018360200201e41016a2219211e201941024f0d010c020b2002450d130c120b0240024002400340024002400240024020142019221e417f6a22194103746a2203280200450d00201e41037420146a220641746a2802002204200328020422024d0d00201e41024d0d082014201e417d6a22034103746a2802042201200220046a4d0d01201e41034d0d08200641646a280200200120046a4b0d080c010b201e4103490d01200328020421022014201e417d6a22034103746a28020421010b20012002490d010b201e417e6a21030b0240201e200341016a221b4d0d00201e20034d0d02201420034103746a221a2802042211201a2802006a22032014201b4103746a221c280200221d490d032003200f4b0d04201a41046a2117201f201d4104746a2221201c280204221641047422026a210420034104742106024002402003201d6b220720166b22032016490d0020122021200210e908222020026a21010240024020164101480d00200720164a0d010b20212103202021020c020b201f20066a210920202102202121030340200320042002200441086a290300200241086a2903005422061b2207290300370300200341086a200741086a2903003703002002200241106a20061b2102200341106a2103200441106a200420061b220420094f0d02200120024b0d000c020b0b201220042003410474220210e908220720026a21010240024020164101480d00200341014e0d010b20042103200721020c010b203520066a21062004210303402006200341706a2204200141706a2209200141786a290300200341786a2903005422021b2220290300370300200641086a202041086a2903003703002001200920021b2101024020212004200320021b2203490d00200721020c020b200641706a21062007210220072001490d000b0b20032002200120026b41707110e9081a2017201120166a360200201a201d360200201c201c41086a201e201b417f736a41037410ea081a4101211e201941014d0d050c010b0b201b201e4184d2cc00103c000b2003201e4194d2cc00103c000b201d200341a4d2cc001057000b2003200f41a4d2cc00104d000b2018450d060c000b0b2003450d0f0c0e0b410120026b202041d4d1cc00103c000b2001200f41c4d1cc001056000b200341786a2103200820022903007c220a2008542101200241086a2102200a21082001450d000b0240202d450d00202c102e0b411e212041b4d2cc0021030c030b0240201041ffffffff0171450d002014102e0b2034450d002012102e0b0240024002400240024002400240024002400240200842ff93ebdc03560d00428094ebdc032030802123410021030240202f2030540d004100210320132102034020152003490d09201f20034104746a2201290308220a20257c2208200a540d08200141086a2008370300024020082023540d00200341016a20137021030b2002417f6a22020d000b0b2024500d01034020152003490d06201f20034104746a2202290308220a42017c2208200a540d05200241086a2008370300024020082023540d00200341016a20137021030b2024427f7c222450450d000c020b0b201f29030821232013417f6a220121030240202f2030540d00034020152003490d04201f20034104746a220242002002290308220820257d220a200a20085622021b200a20021b220a370308200320012003417f6a2204200420034b1b200a2023561b21032024202520087d420020021b7c21242013417f6a22130d000b0b2024500d00034020152003490d0202400240201f20034104746a22022903082208427f7c220a2008580d0020012003417f6a2202200220034b1b21030c010b200241086a200a370300200320012003417f6a2202200220034b1b200a2023561b21032024427f7c21240b20244200520d000b0b02400240024020330d002032450d0a200f410474201f6a41706a2107410021040340200f20152203417f6a2215490d030240200f20156b22204102490d00201f20034104746a2203280200201f20154104746a220228020022064f0d0020022903082108200241086a200341086a29030037030020022003290300370300024020204103490d002004417f6a210941002101200721030340200341106a220228020020064f0d0120092001460d05200341086a200341186a290300370300200320022903003703002002210320042001417f6a2201470d000b200221030b20032008370308200320063602000b200741706a21072004417f6a210420150d000c0b0b0b200f410176220341ffffffff00712003470d1320034104742235417f4c0d132035102c2215450d12201f41706a2113201f41506a211041002112410421144100211e200f211803400240024020182209417f6a22030d0041012107410021180c010b0240024002400240024002400240201f20034104746a28020020094104742220201f6a41606a2802002202490d002009417e6a2107201020206a210141002118410021030340024020072003470d00200921070c090b200341016a21032002200128020022044f2106200141706a21012004210220060d000b200341016a21072003417f7320096a21030c010b201020206a210102400340024020034101470d00410021030c020b2003417f6a2103200220012802002204492106200141706a21012004210220060d000b0b20092003490d012009200f4b0d02200920036b22074101762204450d00201f20034104746a2102201320206a21010340200541e0026a41086a2206200241086a2220290300370300200520022903003703e002200141086a22212903002108200220012903003703002020200837030020212006290300370300200120052903e002370300200241106a2102200141706a21012004417f6a22040d000b0b024020030d00200321180c060b0240200741094d0d00200321180c060b2009200f4b0d03200320096b2104201f20034104746a2120034020092003417f6a2218490d050240200920186b22074102490d00201f20034104746a2203280200201f20184104746a220228020022064f0d0020022903082108200241086a200341086a29030037030020022003290300370300024020074103490d0041012102202021030340200341106a220128020020064f0d01200420026a4101460d06200341086a200341186a29030037030020032001290300370300200121032004200241016a22026a0d000b200121030b20032008370308200320063602000b2018450d06202041706a21202004417f6a2104201821032007410a4f0d060c000b0b2003200941e4d1cc001057000b2009200f41e4d1cc00104d000b2002200741d4d1cc00103c000b20092003417f6a2218490d002009200f41f4d1cc00104d000b2018200941f4d1cc001057000b02400240024002400240201e2012460d00201e21030c010b201241016a22032012490d18201241017422022003200220034b1b22034104200341044b1b220341ffffffff01712003464102742102200341037421030240024020120d00200541003602e0020c010b200541043602e802200520143602e002200520124103743602e4020b20054180026a20032002200541e0026a107d20052802880221022005280280024101460d01200528028402211420122103200241037621120b201420034103746a2203200736020420032018360200201e41016a2219211e201941024f0d010c020b2002450d160c150b0240024002400340024002400240024020142019221e417f6a22194103746a2203280200450d00201e41037420146a220641746a2802002204200328020422024d0d00201e41024d0d082014201e417d6a22034103746a2802042201200220046a4d0d01201e41034d0d08200641646a280200200120046a4b0d080c010b201e4103490d01200328020421022014201e417d6a22034103746a28020421010b20012002490d010b201e417e6a21030b0240201e200341016a221b4d0d00201e20034d0d02201420034103746a221a2802042211201a2802006a22032014201b4103746a221c280200221d490d032003200f4b0d04201a41046a2117201f201d4104746a2221201c280204221641047422026a210120034104742106024002402003201d6b220720166b22032016490d0020152021200210e908220320026a21040240024020164101480d00200720164a0d010b20212102200321030c020b201f20066a210920032103202121020340200220012003200128020020032802004922061b2207290300370300200241086a200741086a2903003703002003200341106a20061b2103200241106a2102200141106a200120061b220120094f0d02200420034b0d000c020b0b201520012003410474220210e908220920026a21040240024020164101480d00200341014e0d010b20012102200921030c010b201320066a21062001210203402006200241706a2203200441706a2201200128020020032802004922071b2220290300370300200641086a202041086a2903003703002004200120071b2104024020212003200220071b2202490d00200921030c020b200641706a21062009210320092004490d000b0b20022003200420036b41707110e9081a2017201120166a360200201a201d360200201c201c41086a201e201b417f736a41037410ea081a4101211e201941014d0d050c010b0b201b201e4184d2cc00103c000b2003201e4194d2cc00103c000b201d200341a4d2cc001057000b2003200f41a4d2cc00104d000b2018450d090c000b0b410120016b202041d4d1cc00103c000b2015200f41c4d1cc001056000b2003200f419cd4cc00103c000b2003200f418cd4cc00103c000b41b4d3cc00412641fcd3cc00105d000b2003200f41ecd3cc00103c000b41b4d3cc00412641dcd3cc00105d000b2003200f41a4d3cc00103c000b0240201241ffffffff0171450d002014102e0b2035450d002015102e0b200f4104742201410475220341ffffffff01712003470d0920034103742202417f4c0d090240024020020d00410821070c010b2002102c2207450d090b02402002410376222020034f0d00200241027622042003200420034b1b22034104200341044b1b220341ffffffff01712003464103742104200341037421030240024020020d00200541003602e0020c010b200541083602e802200520023602e402200520073602e0020b20054180026a20032004200541e0026a107d20052802880221032005280280024101460d082005280284022107200341037621200b201f41086a2103200141706a410476210420072102034020022003290300370300200341106a2103200241086a2102200141706a22010d000b200441016a21132031450d00201f102e0b20134103742201410375220341ffffffff03712003470d0820034102742202417f4c0d080240024020020d00410421090c010b2002102c2209450d080b02400240024002402002410276222120034f0d00200241017622042003200420034b1b22034104200341044b1b220341ffffffff03712003464102742104200341027421030240024020020d00200541003602e0020c010b200541043602e802200520023602e402200520093602e0020b20054180026a20032004200541e0026a107d20052802880221032005280280024101460d012005280284022109200341027621210b200720016a22062007470d01410021010c020b2003450d0a0c090b4100210120092103200721020340200320022903002208a7417f2008428080808010541b2204418094ebdc032004418094ebdc03491b360200200141016a2101200341046a21032006200241086a2202470d000b0b02402020450d002007102e0b0240202d450d00202c102e0b02402001410274410275220320292802082202200220034b1b2201450d00202928020041206a210320092102034020032002280200360200200241046a2102200341246a21032001417f6a22010d000b0b410021032021450d002009102e0b0240202b450d00202a102e0b202e21292003450d000b200541033602b00220052020ad4220862003ad843702b4020b024020052802b00222034105470d00200e4102752203ad42307e2208422088a70d062008a72202417f4c0d060240024020020d004108211f0c010b2002102c221f450d060b0240024002400240200241306e221420034f0d00201441017422012003200120034b1b22014104200141044b1bad42307e2208422088a74541037421012008a72104024002402002412f4b0d00200541003602e0020c010b200541e0026a41086a41083602002005201f3602e0022005201441306c3602e4020b20054180026a20042001200541e0026a107d20054188026a28020021022005280280024101460d01200528028402211f200241306e21140b200c200d470d014100211a200c21020c020b2002450d080c070b200e417c6a41027641016a211a200541e0026a41086a2107200541e0026a41106a2109200541e0026a41186a212041002106201f2101200c2102024003402002220341046a21020240200328020022030d002006211a0c020b2003280208220441016a222141004c0d05200320213602082007200341dc006a2900003703002009200341e4006a2900003703002020200341ec006a2900003703002005200341d4006a2900003703e002200441026a41004c0d062003200436020820054180026a41086a2204200729030037030020054180026a41106a2221200929030037030020054180026a41186a221e2020290300370300200520052903e00237038002200341c8006a29030021082003290340210a20032003280200417f6a2216360200024020160d00200341046a22162016280200417f6a221636020020160d002003102e0b20012005290380023703002004290300212320212903002124201e2903002125200141286a2008370300200141206a200a370300200141186a2025370300200141106a2024370300200141086a2023370300200141306a2101200641016a2106200d2002470d000b200d21020b200d20026b220e41027521030b0240200e450d00200341027421030340200228020022012001280200417f6a3602000240200228020022012802000d00200141046a22012001280200417f6a3602002002280200220141046a2802000d002001102e0b200241046a21022003417c6a22030d000b0b0240200b41ffffffff0371450d00200c102e0b2000201f36020420004100360200200041186a2027360200200041146a2026360200200041106a20223602002000410c6a201a360200200041086a20143602000c010b200041086a20052902b402370200200020033602042000410136020002402027450d002027412c6c21022022210303400240200341046a2802002201450d00200141246c450d002003280200102e0b2003412c6a2103200241546a22020d000b0b02402026450d002026412c6c450d002022102e0b0240200e450d00200c210203402002220328020022022002280200417f6a360200200341046a21020240200328020022012802000d00200141046a22012001280200417f6a3602002003280200220341046a2802000d002003102e0b200d2002470d000b0b200b41ffffffff0371450d00200c102e0b200541c0036a24000f0b41bcd9cc00411820054180026a41f09cc50041c09dc500103e000b41bcd9cc00411820054180026a41f09cc50041d09dc500103e000b2003450d010b1036000b1038000bad0f07167f017e017f017e017f017e027f230041306b220224000240024002400240024002400240200141144b0d00200141014d0d0620002001417e6a22034105746a2104410221050340200320014b0d022004200510fa07200541016a2105200441606a21042003417f6a2203417f470d000c070b0b2001410176220341ffffff3f712003470d0220034105742206417f4c0d022006102c2207450d01200041606a2108200041a07f6a21094104210a4100210b4100210c2001210d0340200d210e4100210d410121050240200e417f6a220f450d000240024002400240024002402000200f4105746a200e410574221020006a41406a412010ec084100480d00200e417e6a210f200920106a21034100210d4100210403400240200f2004470d00200e21050c080b200441016a2104200341206a2003412010ec082105200341606a21032005417f4a0d000b200441016a21052004417f73200e6a210f0c010b200920106a2103024003400240200f4101470d004100210f0c020b200f417f6a210f200341206a2003412010ec082104200341606a210320044100480d000b0b200e200f490d01200e20014b0d02200e200f6b22054101762211450d00200820106a21032000200f4105746a21040340200241186a2210200441186a2212290000370300200241106a2213200441106a2214290000370300200241086a2215200441086a221629000037030020022004290000370300200341086a22172900002118200341106a2219290000211a200341186a221b290000211c200420032900003700002012201c3700002014201a37000020162018370000201b2010290300370000201920132903003700002017201529030037000020032002290300370000200341606a2103200441206a21042011417f6a22110d000b0b0240200f0d00200f210d0c050b0240200541094d0d00200f210d0c050b200e20014b0d02200e200f6b2105200f417f6a21032008200f4105746a21040340200e2003490d0a2004200541016a220510fa072003417f6a220f20034f0d04200441606a2104200f21032005410a490d000c040b0b200f200e41e4d1cc001057000b200e200141e4d1cc00104d000b200e200f417f6a2203490d06200e200141f4d1cc00104d000b200f41016a210d0b02400240024002400240200c200b460d00200c21030c010b200b41016a2203200b490d07200b41017422042003200420034b1b22034104200341044b1b220341ffffffff017120034641027421042003410374210302400240200b0d00200241003602000c010b200241043602082002200a3602002002200b4103743602040b200241206a200320042002107d2002280228210420022802204101460d012002280224210a200b21032004410376210b0b200a20034103746a220320053602042003200d360200200c41016a221b210c201b41024f0d010c020b20040d040c050b02400240024003400240024002400240200a201b220c417f6a221b4103746a2203280200450d00200c410374200a6a221141746a280200220f200328020422044d0d00200c41024d0d08200a200c417d6a22034103746a28020422052004200f6a4d0d01200c41034d0d08201141646a2802002005200f6a4b0d080c010b200c4103490d0120032802042104200a200c417d6a22034103746a28020421050b20052004490d010b200c417e6a21030b0240200c200341016a220e4d0d00200c20034d0d02200a20034103746a2216280204221d20162802006a2203200a200e4103746a22172802002219490d03200320014b0d04201641046a211e200020194105746a22142017280204221541057422046a210f2003410574210502400240200320196b221020156b22032015490d0020072014200410e908221320046a21110240024020154101480d00201020154a0d010b20142103201321040c020b200020056a2112201321042014210303402003200f2004200f2004412010ec0841004822101b2205290000370000200341186a200541186a290000370000200341106a200541106a290000370000200341086a200541086a2900003700002004200441206a20101b2104200341206a2103200f41206a200f20101b220f20124f0d02201120044b0d000c020b0b2007200f2003410574220410e908221320046a21110240024020154101480d00200341014e0d010b200f2103201321040c010b200820056a2105200f21030340200341606a2104201141606a210f20052004200f200f2004412010ec0841004822121b2210290000370000200541186a201041186a290000370000200541106a201041106a290000370000200541086a201041086a2900003700002011200f20121b2111024020142004200320121b2203490d00201321040c020b200541606a21052013210420132011490d000b0b20032004201120046b41607110e9081a201e201d20156a360200201620193602002017201741086a200c200e417f736a41037410ea081a4101210c201b41014d0d050c010b0b200e200c4184d2cc00103c000b2003200c4194d2cc00103c000b2019200341a4d2cc001057000b2003200141a4d2cc00104d000b200d450d050c000b0b2003200141c4d1cc001056000b1036000b1038000b2003200e41f4d1cc001057000b0240200b41ffffffff0171450d00200a102e0b2006450d002007102e0b200241306a24000b840403027f017e097f230041306b220224000240024020014102490d00200041306a22032000412010ec08417f4a0d002000290300210420002003290300370300200241286a2205200041286a2206290300370300200241206a200041206a2207290300370300200241186a2208200041186a2209290300370300200241106a220a200041106a220b290300370300200241086a220c200041086a220d290300370300200d200341086a290300370300200b200341106a2903003703002009200341186a2903003703002007200341206a2903003703002006200341286a2903003703002002200437030041012107024020014103490d00410020016b2109200041e0006a210341012107034020032002412010ec08417f4a0d0120012007460d03200341506a22062003290300370300200641286a200341286a290300370300200641206a200341206a290300370300200641186a200341186a290300370300200641106a200341106a290300370300200641086a200341086a290300370300200341306a21032009200741016a22076a417f470d000b0b2000200741306c6a22032002290300370300200341286a2005290300370300200341206a200241206a290300370300200341186a2008290300370300200341106a200a290300370300200341086a200c2903003703000b200241306a24000f0b2001200141d4d1cc00103c000bd809010c7f230041c0006b220524002003410020041b21062001410020021b2107200341206a200320041b2108200141206a200120021b2109200120024105746a210a200320044105746a210b410021034100210c4101210d410021014100210e4101210f0240024003400240024020060d0020070d012000200d36020c200020013602082000200e3602042000200f360200200041146a2003360200200041106a200c360200200541c0006a24000f0b02402007450d00024020062007412010ec0822020d00410020092009200a4622021b2107410020082008200b4622041b21062009200941206a20021b21092008200841206a20041b21080c030b2002417f4a0d01200541186a2202200641186a290000370300200541106a2204200641106a290000370300200541086a2210200641086a29000037030020052006290000370300024002402003200c470d00200341016a22062003490d062003410174220c2006200c20064b1b22064104200641044b1b220641ffffff3f71200646210c200641057421060240024020030d00200541003602300c010b200541013602382005200d360230200520034105743602340b200541206a2006200c200541306a107d2005280228210620052802204101460d012005280224210d2006410576210c0b200d20034105746a22062005290300370000200641186a2002290300370000200641106a2004290300370000200641086a2010290300370000410020082008200b4622021b2106200341016a21032008200841206a20021b21080c030b20060d030c040b200541186a2202200641186a290000370300200541106a2204200641106a290000370300200541086a2210200641086a29000037030020052006290000370300024002402003200c470d00200341016a22072003490d05200341017422062007200620074b1b22074104200741044b1b220741ffffff3f712007462106200741057421070240024020030d00200541003602300c010b200541013602382005200d360230200520034105743602340b200541206a20072006200541306a107d2005280228210720052802204101460d012005280224210d2007410576210c0b200d20034105746a22072005290300370000200741186a2002290300370000200741106a2004290300370000200741086a201029030037000041002107410020082008200b4622021b2106200341016a21032008200841206a20021b21080c020b20070d020c030b200541186a2202200741186a290000370300200541106a2204200741106a290000370300200541086a2210200741086a29000037030020052007290000370300024002402001200e470d00200141016a22072001490d042001410174220e2007200e20074b1b22074104200741044b1b220741ffffff3f71200746210e200741057421070240024020010d00200541003602300c010b200541013602382005200f360230200520014105743602340b200541206a2007200e200541306a107d2005280228210720052802204101460d012005280224210f2007410576210e0b200f20014105746a22072005290300370000200741186a2002290300370000200741106a2004290300370000200741086a2010290300370000410020092009200a4622021b2107200141016a21012009200941206a20021b21090c010b0b2007450d010b1036000b1038000b810202047f017e230041206b2202240002400240200128020822034106744104722204417f4c0d00200128020021012004102c2205450d0120024100360208200220043602042002200536020020032002107602402003450d002003410674210303402002200141206a41201074200129030021062002200141086a290300370318200220063703102002200241106a41101074200141106a29030021062002200141186a290300370318200220063703102002200241106a41101074200141c0006a2101200341406a22030d000b0b2000412020022802002201200228020810b20102402002280204450d002001102e0b200241206a24000f0b1038000b1036000bc30402057f027e230041f0006b2203240002400240024020022802004113470d00200241086a2d00004104470d00200341c8006a2001108103200341306a200328024822042003280250108203200341d8006a41086a2003413b6a290000370300200341d8006a41106a2205200341c3006a2f00003b0100200320032900333703584101210120032d0032210620032d003121070240024020032d00304101460d00410021010c010b200341186a41106a20052f01003b0100200341186a41086a200341d8006a41086a290300370300200320032903583703180b0240200328024c450d002004102e0b2001450d01200341106a200341186a41106a2f010022013b0100200341086a200341186a41086a29030022083703002003200329031822093703002003413a6a2008370100200341c2006a20013b0100200320063a0031200320073a003020032009370132200341d8006a200341306a10e30220032802582204200328026010e40241ff017121010240200328025c450d002004102e0b20014102460d000240200241146a280200220441c40141c70120011b470d00200228020c41abcecc0041efcfcc0020011b200410ec08450d010b200041800e3b0001200041013a0000200041036a41033a00000c020b200041003a0000200041306a41013a0000200041286a4200370300200041206a4280808080c000370300200041186a4204370300200041106a427f370300200041086a42003703000c010b200041800e3b0001200041013a0000200041036a41013a00000b200341f0006a24000bf50101047f230041306b22022400200241b6d1cc004106108102200241106a41d6f9c0004109108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bc20602027f027e23004180016b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822010d00200041003a00000c010b200341106a2802002102200328020c2104200341003a007c024002402002450d00200320012d00003a0068200341013a007c024020024101460d00200320012d00013a0069200341023a007c20024102460d00200320012d00023a006a200341033a007c20024103460d00200320012d00033a006b200341043a007c20024104460d00200320012d00043a006c200341053a007c20024105460d00200320012d00053a006d200341063a007c20024106460d00200320012d00063a006e200341073a007c20024107460d00200320012d00073a006f200341083a007c20024108460d00200320012d00083a0070200341093a007c20024109460d00200320012d00093a00712003410a3a007c2002410a460d00200320012d000a3a00722003410b3a007c2002410b460d00200320012d000b3a00732003410c3a007c2002410c460d00200320012d000c3a00742003410d3a007c2002410d460d00200320012d000d3a00752003410e3a007c2002410e460d00200320012d000e3a00762003410f3a007c2002410f460d00200320012d000f3a0077200341103a007c20024110460d00200320012d00103a0078200341113a007c20024111460d00200320012d00113a0079200341123a007c20024112460d00200320012d00123a007a200341133a007c20024113460d00200341186a41086a200341e8006a41086a2903002205370300200320012d00133a007b200341186a41106a200341e8006a41106a2802002202360200200341143a007c200320032903682206370318200041116a2002360000200041096a200537000020002006370001410121020c020b200341003a007c0b20034100360220200342013703182003410a360234200320033602302003200341186a360264200341fc006a41013602002003420137026c200341909dc5003602682003200341306a360278200341e4006a419cebc000200341e8006a103d1a2003280218200328022010ef020240200328021c450d002003280218102e0b410021020b200020023a00002004450d002001102e0b20034180016a24000bd7c40108017f017e057f017e057f017e217f077e230041e00e6b2201240010840342002102024002400240024020004101460d00200141b0046a41186a22034200370300200141b0046a41106a22044200370300200141b0046a41086a22054200370300200142003703b004200141b8076a41a8f8c60041041081022005200141b8076a41086a2206290000370300200120012900b8073703b00420014198096a41c98bc500410b108102200320014198096a41086a22072900003703002004200129009809370300200141a0046a200141b0046a10850320012903a804210820012802a0042109200141d0046a41186a220a4200370300200141d0046a41106a220b4200370300200141d0046a41086a220c4200370300200142003703d004200141800d6a41a8f8c6004104108102200c200141800d6a41086a220d290000370300200120012900800d3703d004200141800d6a41fa8bc500410a108102200a200d290000370300200b20012900800d37030020014190046a200141d0046a10850320014180046a20012903980442002001280290041b420042e012420010e8080240024002400240024020012903880450450d002001290380042102200342003703002004420037030020054200370300200142003703b004200141b8076a41a8f8c600410410810220052006290000370300200120012900b8073703b00420014198096a41e38bc500410b108102200441086a20072900003700002004200129009809370000200141f0036a200141b0046a108503200220012903f803420020012802f0031b7c220e2002540d014200210242002008420020091b2208200e7d220e200e2008561b42e012540d05200141b0046a41186a22034200370300200141b0046a41106a220f420037030041082107200141b0046a41086a22064200370300200142003703b004200141800d6a41a081ca0041071081022006200141800d6a41086a2205290000370300200120012900800d3703b004200141800d6a41e4d1c100410c10810220032005290000370300200f20012900800d370300200141e8036a200141b0046a4120108e0220012802ec03211020012802e803211120034200370300200f420037030020064200370300200142003703b004200141800d6a41a081ca00410710810220062005290000370300200120012900800d3703b004200141800d6a4188d2c100410d10810220032005290000370300200f20012900800d370300200141b0046a1086032112200141c00c6a41186a22034200370300200141c00c6a41106a220c4200370300200141c00c6a41086a22064200370300200142003703c00c200141800d6a41a081ca00410710810220062005290000370300200120012900800d3703c00c200141800d6a41e4d1c100410c10810220032005290000370300200c20012900800d370300200141e0036a200141c00c6a4120108e0220012802e403210d20012802e0032113200141f0046a10870320034200370300200c420037030020064200370300200142003703c00c200141800d6a41a081ca00410710810220062005290000370300200120012900800d3703c00c200141800d6a41f09dc500410a10810220032005290000370300200c20012900800d370300200141800d6a200141c00c6a10880320012902840d2102200120012802800d2205410120051b22033602e005200120033602d80520012002420020051b22023e02dc05200120032002422088a74105746a3602e405200141003602e805200141800d6a200141d8056a10bd0102400240200141c00d6a280200450d0041d000102c2207450d0a2007200141800d6a41d00010e9081a200141b8076a41106a200141d8056a41106a280200360200200141b8076a41086a200141d8056a41086a290300370300200120012903d8053703b80720014198096a200141b8076a10bd01024002400240200141d8096a2802000d0041012105410121030c010b41d000210641012105410121030340200141800d6a20014198096a41d00010e9081a024020032005470d00200541016a22092005490d0d2005410174220a2009200a20094b1b22094104200941044b1bad42d0007e2202422088a74541037421092002a7210a0240024020050d00200141003602f80a0c010b200141083602800b200120073602f80a2001200541d0006c3602fc0a0b200141e00c6a200a2009200141f80a6a107d20012802e80c210520012802e00c4101460d0320012802e40c2107200541d0006e21050b200720066a200141800d6a41d00010e9081a200641d0006a2106200341016a210320014198096a200141b8076a10bd0120012802d8090d000b0b024020012802bc0741ffffff3f71450d0020012802b807102e0b2001200336028805200120053602840520012007360280050c020b2005450d090c0a0b20014100360288052001420837038005024020012802dc0541ffffff3f71450d0020012802d805102e0b41002105410021030b200141d80c6a4200370300200141d00c6a4200370300200141c00c6a41086a22064200370300200142003703c00c200141800d6a41a081ca0041071081022006200141800d6a41086a2209290000370300200120012900800d3703c00c200141800d6a41e4d1c100410c108102200c41086a2009290000370000200c20012900800d370000200141d8036a200141c00c6a4120108e0220012802dc03210620012802d8032109200141b8076a41bed8c800410810810220014198096a41a4fcc800411210810220012006410020091b3602e00c2001200141e00c6a410410a3013703f80a200141800d6a410c6a200141e00c6a41046a3602002001200141f80a6a41086a3602840d2001200141e00c6a3602880d2001200141f80a6a3602800d200141d8056a200141800d6a107c20012802e005220941206a2206417f4c0d070240024020060d004101210a0c010b2006102c220a450d090b200141003602880d200120063602840d2001200a3602800d200141800d6a200141b8076a41101074200141800d6a20014198096a41101074200141800d6a20012802d805220620091074024020012802dc05450d002006102e0b20012802800d220620012802880d108903024020012802840d450d002006102e0b200141d80c6a4200370300200141d00c6a4200370300200141c00c6a41086a22064200370300200142003703c00c200141800d6a41a081ca0041071081022006200141800d6a41086a2209290000370300200120012900800d3703c00c200141800d6a41e4d1c100410c108102200c41086a2009290000370000200c20012900800d370000200141d0036a200141c00c6a4120108e0220012802d403210620012802d0032109200141b8076a41bed8c800410810810220014198096a41edd8c800410e10810220012006410020091b3602e00c2001200141e00c6a410410a3013703f80a200141800d6a410c6a200141e00c6a41046a3602002001200141f80a6a41086a3602840d2001200141e00c6a3602880d2001200141f80a6a3602800d200141d8056a200141800d6a107c20012802e005220941206a2206417f4c0d070240024020060d004101210a0c010b2006102c220a450d090b200141003602880d200120063602840d2001200a3602800d200141800d6a200141b8076a41101074200141800d6a20014198096a41101074200141800d6a20012802d805220620091074024020012802dc05450d002006102e0b20012802800d220620012802880d108903024020012802840d450d002006102e0b024020030d00200141013a00840d200141083a00800d200141800d6a10fe012005450d05200541d0006c450d052007102e0c050b200141800d6a20014180056a10c601200141a3096a200141800d6a41086a280200360000200120012903800d37009b092001418c0d6a2001419f096a290000370000200141023a00840d200141083a00800d20012001290098093700850d200141800d6a10fe0120012802f8042114200141a0056a20014180056a41086a28020036020020012014360294052001200d410020131b220a36029005200120012903800537039805200141b8056a20014190056a41086a10c601200141003602d005200142013703c80520012802b805211520012802bc05211620012802c00521134104102c2205450d08200142043702d404200120053602d0042001200a3602800d200141d0046a200141800d6a41041074200141800d6a41f996c500108a0320014198096a20012802800d220320012802880d108b03200129029c09420020012802980922051b21022005410120051b2117024020012802840d450d002003102e0b200120024220883e02b404200120173602b004200141c8036a200141b0046a10ab01024020012802c803450d00410021184104210c4100210d0c040b20012802cc03220c20012802b40441246e22052005200c4b1bad42247e2208422088a70d072008a72205417f4c0d070240024020050d00410421190c010b2005102c2219450d090b200541246e211a0240200c0d004100210c0c030b4100210d034002400240024020012802b40422034104490d00200d41016a211820012802b0042207280000211b20012003417c6a22093602b4042001200741046a3602b00441002105200141003a00a00d2003417b6a210302400340200141003a00a80520092005460d01200141800d6a20056a200720056a220641046a2d00003a00002001200641056a3602b0042001200541016a22063a00a00d200120033602b4042003417f6a21032006210520064120470d000b20014198096a41186a2205200141800d6a41186a29030037030020014198096a41106a2203200141800d6a41106a29030037030020014198096a41086a2207200141800d6a41086a290300370300200120012903800d37039809200641ff01714120490d01200141d8056a41086a20072903002208370300200141f80a6a41186a22062005290300370300200141f80a6a41106a22052003290300370300200141f80a6a41086a22032008370300200120012903980922083703d805200120083703f80a200141e00c6a41186a22072006290300370300200141e00c6a41106a22062005290300370300200141e00c6a41086a22092003290300370300200120012903f80a3703e00c200d201a470d03201a41016a2205201a4f0d020c0c0b200541ff0171450d00200141003a00a00d0b410021184104210c0240201a450d00201a41246c450d002019102e0b4100210d0c060b201a41017422032005200320054b1b22054104200541044b1bad42247e2208422088a74541027421052008a7210302400240201a0d00200141003602800d0c010b200141043602880d200120193602800d2001201a41246c3602840d0b20014198096a20032005200141800d6a107d20012802a009210502402001280298094101470d0020050d0b0c0a0b200128029c092119200541246e211a0b2019200d41246c6a2205201b360200200520012903e00c3702042005410c6a2009290300370200200541146a20062903003702002005411c6a20072903003702002018210d2018200c460d030c000b0b41e8b2c40041fa0041e4b3c400105d000b41e8b2c40041fa0041f4b3c400105d000b200c410020191b210d201a410020191b21182019410420191b210c0b200141800d6a41f996c500200141d0046a108c0320014198096a20012802800d220320012802880d108d032001280298092105200129029c092108024020012802840d450d002003102e0b2008420020051b210820012802d804211c20012802d404211d20012802d004211e02402002a7450d002017102e0b2005410120051b211f2008a72119024002400240024002402013450d002008422088a7211a2015201341d0006c6a2117200141800d6a41d0006a2120200141800d6a410c6a211b200141b8076a41c4006a21212015210941002122024002400340200141d8056a41386a22232009220541386a290300370300200141d8056a41306a2224200541306a290300370300200141d8056a41286a2225200541286a290300370300200141d8056a41206a2226200541206a290300370300200141d8056a41186a2206200541186a290300370300200141d8056a41106a2207200541106a290300370300200141d8056a41086a2213200541086a290300370300200141b8076a41086a2203200541cc006a280200360200200120052903003703d8052001200541c4006a2902003703b807200541d0006a2109200541c0006a2802002205450d04200141f80a6a41386a22272023290300370300200141f80a6a41306a22232024290300370300200141f80a6a41286a22242025290300370300200141f80a6a41206a22252026290300370300200141f80a6a41186a22262006290300370300200141f80a6a41106a22282007290300370300200141f80a6a41086a22292013290300370300200141a8056a41086a222a2003280200360200200120012903d8053703f80a200120012903b8073703a805200141b8076a41386a2027290300370300200141b8076a41306a2023290300370300200141b8076a41286a2024290300370300200141b8076a41206a2025290300370300200141b8076a41186a2026290300370300200141b8076a41106a202829030037030020032029290300370300200120012903f80a3703b807200120053602f807202120012903a805370200202141086a202a2802003602004104102c2205450d0c200142043702840d200120053602800d2001200a36029809200141800d6a20014198096a41041074201b41086a41002900819745370000201b41002900f996453700002001200141b8076a36029c0d200141d8056a200141800d6a10ae01024020012802840d450d0020012802800d102e0b200141800d6a200141d8056a108e0320012802800d220320012802880d108f022105024020012802840d450d002003102e0b024002400240024020050d0020014198096a200141b8076a41d00010e9081a200141e00c6a200141c8056a10c801200141800d6a20014198096a41d00010e9081a202041086a200141e00c6a41086a280200360200202020012903e00c37020020014198096a200141d8056a108e03200128029809220520012802a009200141800d6a108f030240200128029c09450d002005102e0b024020012802c40d2205450d00200541306c450d0020012802c00d102e0b024020012802d40d41ffffff3f71450d0020012802d00d102e0b200141b0046a41186a22232006290300370300200141b0046a41106a22242007290300370300200141b0046a41086a22252013290300370300200120012903d8053703b004410021050240200d0e020302000b41002105200d2103034020052003410176220620056a2207200c200741246c6a280200200a4b1b2105200320066b220341014b0d000c020b0b20012802fc072205450d02200541306c450d0220012802f807102e0c020b200c200541246c6a2802002203200a460d0020052003200a496a21050b200141800d6a41186a22062023290300370300200141800d6a41106a22072024290300370300200141800d6a41086a22132025290300370300200120012903b0043703800d200d2005490d020240200d2018470d00201841016a22032018490d0d201841017422262003202620034b1b22034104200341044b1bad42247e2202422088a74541027421032002a721260240024020180d0020014100360298090c010b200141043602a0092001200c360298092001201841246c36029c090b200141e00c6a2026200320014198096a107d20012802e80c210320012802e00c4101460d0420012802e40c210c200341246e21180b200c200541246c6a220341246a2003200d20056b41246c10ea081a2003200a3602002003411c6a2006290300370200200341146a20072903003702002003410c6a2013290300370200200320012903800d370204200141d0046a41186a22032023290300370300200141d0046a41106a22062024290300370300200141d0046a41086a22072025290300370300200120012903b0043703d0040240201a2019470d00201941016a22052019490d0d201941017422132005201320054b1b22054104200541044b1b220541ffffff3f712005462113200541057421050240024020190d00200141003602800d0c010b200141013602880d2001201f3602800d200120194105743602840d0b20014198096a20052013200141800d6a107d20012802a009210502402001280298094101470d0020050d0f0c0e0b200128029c09211f200541057621190b200d41016a210d201f201a4105746a220520012903d004370000200541186a2003290300370000200541106a2006290300370000200541086a200729030037000041012122201a41016a211a0b20092017470d000b201721090c030b2005200d1045000b20030d090c080b2016450d01201641d0006c450d012015102e0c010b024020172009460d0003402009220541d0006a21090240200541c4006a2802002203450d00200341306c450d00200541c0006a280200102e0b20172009470d000b0b02402016450d00201641d0006c450d002015102e0b2022410171450d00024002400240201a450d00201a4105742107200141c40d6a2105201f21030340200141d0046a2003108e03200141800d6a20012802d004220920012802d80410900320014198096a41086a2213200141800d6a41086a29030037030020014198096a41106a2217200141800d6a41106a29030037030020014198096a41186a221b200141800d6a41186a29030037030020014198096a41206a2221200141800d6a41206a29030037030020014198096a41286a2223200141800d6a41286a29030037030020014198096a41306a2224200141800d6a41306a29030037030020014198096a41386a2225200141800d6a41386a290300370300200141e00c6a41086a2226200541086a290200370300200141e00c6a41106a2227200541106a290200370300200141e00c6a41186a2228200541186a280200360200200120012903800d37039809200120052902003703e00c024020012802c00d2206450d00200141b8076a41386a2025290300370300200141b8076a41306a2024290300370300200141b8076a41286a2023290300370300200141b8076a41206a2021290300370300200141b8076a41186a201b290300370300200141b8076a41106a2017290300370300200141b8076a41086a2013290300370300200141d8056a41086a2026290300370300200141d8056a41106a2027290300370300200141d8056a41186a202828020036020020012001290398093703b807200120012903e00c3703d8050b024020012802d404450d002009102e0b20060d02200341206a2103200741606a22070d000b0b42002102410821090c010b200141f80a6a41386a2205200141b8076a41386a290300370300200141f80a6a41306a2213200141b8076a41306a290300370300200141f80a6a41286a2217200141b8076a41286a290300370300200141f80a6a41206a221b200141b8076a41206a290300370300200141f80a6a41186a2221200141b8076a41186a290300370300200141f80a6a41106a2223200141b8076a41106a290300370300200141f80a6a41086a2224200141b8076a41086a290300370300200141c00c6a41086a2225200141d8056a41086a290300370300200141c00c6a41106a2226200141d8056a41106a290300370300200141c00c6a41186a2227200141d8056a41186a280200360200200120012903b8073703f80a200120012903d8053703c00c41e000102c2209450d08200920012903f80a37030020092006360240200920012903c00c370244200941386a2005290300370300200941306a2013290300370300200941286a2017290300370300200941206a201b290300370300200941186a2021290300370300200941106a2023290300370300200941086a2024290300370300200941cc006a2025290300370200200941d4006a2026290300370200200941dc006a2027280200360200024020074120470d0042818080801021020c010b200341206a2113201f201a4105746a222241606a2115200141800d6a41c4006a210542818080801021020340201321030340200141d0046a2003108e03200141800d6a20012802d004220720012802d80410900320014198096a41086a2213200141800d6a41086a222929030037030020014198096a41106a2217200141800d6a41106a222a29030037030020014198096a41186a221b200141800d6a41186a222029030037030020014198096a41206a2221200141800d6a41206a29030037030020014198096a41286a2223200141800d6a41286a29030037030020014198096a41306a2224200141800d6a41306a29030037030020014198096a41386a2225200141800d6a41386a290300370300200141e00c6a41086a2226200541086a290200370300200141e00c6a41106a2227200541106a290200370300200141e00c6a41186a2228200541186a280200360200200120012903800d37039809200120052902003703e00c024020012802c00d2206450d00200141b8076a41386a2025290300370300200141b8076a41306a2024290300370300200141b8076a41286a2023290300370300200141b8076a41206a2021290300370300200141b8076a41186a201b290300370300200141b8076a41106a2017290300370300200141b8076a41086a2013290300370300200141f80a6a41086a2026290300370300200141f80a6a41106a2027290300370300200141f80a6a41186a202828020036020020012001290398093703b807200120012903e00c3703f80a0b024020012802d404450d002007102e0b024020060d002022200341206a2203470d010c030b0b200141d8056a41386a2207200141b8076a41386a2217290300370300200141d8056a41306a2213200141b8076a41306a221b290300370300200141d8056a41286a2227200141b8076a41286a2221290300370300200141d8056a41206a2228200141b8076a41206a2223290300370300200141d8056a41186a2216200141b8076a41186a2224290300370300200141d8056a41106a222b200141b8076a41106a2225290300370300200141d8056a41086a222c200141b8076a41086a2226290300370300200141c00c6a41086a222d200141f80a6a41086a290300370300200141c00c6a41106a222e200141f80a6a41106a290300370300200141c00c6a41186a222f200141f80a6a41186a280200360200200120012903b8073703d805200120012903f80a3703c00c2026202c2903003703002025202b290300370300202420162903003703002023202829030037030020212027290300370300201b201329030037030020172007290300370300200120012903d8053703b8072029202d290300370300202a202e2903003703002020202f280200360200200120012903c00c3703800d024002402002422088a722072002a7460d00200221080c010b200741016a22132007490d0920074101742227201320132027491b22134104201341044b1bad42e0007e2208422088a74541037421132008a721270240024020070d0020014100360298090c010b200141083602a00920012009360298092001200741e0006c36029c090b200141f80a6a2027201320014198096a107d20012802800b211320012802f80a4101460d0420012802fc0a2109201341e0006ead21080b200341206a21132009200741e0006c6a220720012903b807370300200741106a2025290300370300200741086a2026290300370300201b290300210e20172903002130202129030021312023290300213220242903002133200741c0006a2006360200200741186a2033370300200741206a2032370300200741286a2031370300200741386a2030370300200741306a200e370300200741c4006a20012903800d370200200741cc006a2029290300370200200741d4006a202a290300370200200741dc006a2020280200360200200842ffffffff0f8320024280808080107c4280808080708384210220152003470d000b0b200141a00d6a200d3602002001419c0d6a2018360200200141940d6a201a360200200141900d6a20193602002001200c3602980d2001201f36028c0d2001201c3602880d2001201d3602840d2001201e3602800d200d41246c41046a2205417f4c0d060240024020050d00410121030c010b2005102c2203450d080b200141003602c007200120053602bc07200120033602b807200d200141b8076a10760240200d450d00200c200d41246c6a2106200c210503402001200528020036029809200141b8076a20014198096a410410744120102c2203450d092001422037029c09200120033602980920014198096a200541046a220541201074200141b8076a200128029809220320012802a00910740240200128029c09450d002003102e0b200541206a22052006470d000b0b20014198096a41f996c500108a03200128029809220520012802a009200141b8076a10c5020240200128029c09450d002005102e0b024020012802bc07450d0020012802b807102e0b20014198096a41f996c500200141800d6a108c03200128029809220520012802a0092001418c0d6a1091030240200128029c09450d002005102e0b0240201d450d00201e102e0b0240201941ffffff3f71450d00201f102e0b2018450d02201841246c450d02200c102e0c020b0240201d450d00201e102e0b0240201941ffffff3f71450d00201f102e0b4100210902402018450d00201841246c450d00200c102e0b0c010b20130d050c040b024020012802cc0541ffffff3f71450d0020012802c805102e0b024020090d0020012802980521070240200141a0056a2802002205450d00200541d0006c2103200741c4006a21050340024020052802002206450d00200641306c450d002005417c6a280200102e0b200541d0006a2105200341b07f6a22030d000b0b024020014190056a410c6a2802002205450d00200541d0006c450d002007102e0b41bceacc00410c10ef0241adeacc00410f10ef020c010b4100210602400240024002402014410a6e417f732002422088a722076a220320074b0d0020144101201441014b1b2205418094ebdc036e2005418094ebdc03704100476a22064101200641014b1b220620054b0d012005200341036c220320052003491b20066ead428094ebdc037e200520066ead8042ffffffff0f834280bbb0217e428094ebdc0380a721060b200741ffffffff03712007470d0620074102742205417f4c0d060240024020050d004104210c0c010b2005102c220c450d080b02402005410276220d20074f0d00200541017622032007200320074b1b22034104200341044b1b220341ffffffff0371200346410274210d200341027421030240024020050d00200141003602800d0c010b200141880d6a4104360200200120053602840d2001200c3602800d0b20014198096a2003200d200141800d6a107d200141a0096a280200210502402001280298094101460d00200128029c09210c2005410276210d0c030b20050d080c070b20070d01410021050c020b41d0d8c800411941bcd7cc001039000b20072103200c2105034020052006360200200541046a21052003417f6a22030d000b200721050b200141b8036a20092007200c20052001280290051092034104102c2205450d04200142043702bc07200120053602b8072001200a3602800d200141b8076a200141800d6a41041074200141cc076a41002900819745370200200141002900f996453702c407200141b3096a200141b8076a41186a280200360000200141ab096a200141b8076a41106a290300370000200141a3096a20012903c007370000200120012903b80737009b09200141890d6a200141a0096a290000370000200141910d6a20014198096a41106a290000370000200141800d6a41186a200141af096a290000370000200141a00d6a41013a0000200141053a00800d20012001290098093700810d200141800d6a10fe010240200d450d00200c102e0b02402007450d00200741e0006c2103200941d4006a210503400240200541706a2802002206450d00200641306c450d002005416c6a280200102e0b0240200528020041ffffff3f71450d002005417c6a280200102e0b200541e0006a2105200341a07f6a22030d000b0b02402002a72205450d00200541e0006c450d002009102e0b20012802980521070240200141a0056a2802002205450d00200541d0006c2103200741c4006a21050340024020052802002206450d00200641306c450d002005417c6a280200102e0b200541d0006a2105200341b07f6a22030d000b0b2001419c056a2802002205450d00200541d0006c450d002007102e0b024020012802f40441ffffff3f71450d0020012802f004102e0b200141b0046a41186a22184200370300200141b0046a41106a221a4200370300200141b0046a41086a22174200370300200142003703b004200141800d6a41a081ca0041071081022017200141800d6a41086a2205290000370300200120012900800d3703b004200141800d6a41f09dc500410a108102200441086a2005290000370000200420012900800d370000200141800d6a200141b0046a10880320012802800d2205410120051b212920012902840d420020051b2202a7211f0240024002402002422088a72205450d002029200541057422076a2119200141b8076a41206a212a2001419c0b6a2103202921050340200141c00c6a41186a2206200541186a2209290000370300200141c00c6a41106a220a200541106a220c290000370300200141c00c6a41086a220d200541086a2213290000370300200120052900003703c00c20132900002102200c29000021082005290000210e200141d0046a41186a220c2009290000370300200141d0046a41106a22092008370300200141d0046a41086a221320023703002001200e3703d004200141b8076a41186a2006290300370300200141b8076a41106a200a290300370300200141b8076a41086a200d290300370300200120012903c00c3703b807200141f80a6a200141b8076a10bf01200141e00c6a41086a200141f80a6a41086a290300370300200141e00c6a41106a200141f80a6a41106a290300370300200141e00c6a41186a200141f80a6a41186a29030037030020014190056a41086a200341086a280200360200200120012903f80a3703e00c200120032902003703900520012802980b21062018200c290300370300201a200929030037030020172013290300370300200120012903d0043703b00402402006450d00202a20012903e00c370300202a41086a200141e00c6a41086a290300370300202a41106a200141e00c6a41106a290300370300202a41186a200141e00c6a41186a290300370300200141b8076a41186a200141b0046a41186a2903002202370300200141b8076a41106a200141b0046a41106a2903002208370300200141b8076a41086a200141b0046a41086a290300220e370300200141800d6a41086a2203200e370300200141800d6a41106a22092008370300200141800d6a41186a220a2002370300200141800d6a41206a220c200141b8076a41206a290300370300200141800d6a41286a220d200141b8076a41286a290300370300200141800d6a41306a2213200141b8076a41306a290300370300200141800d6a41386a2217200141b8076a41386a290300370300200120012903b00422023703b807200120023703800d200141c8056a41086a221820014190056a41086a28020036020020014198096a41386a221a201729030037030020014198096a41306a2217201329030037030020014198096a41286a2213200d29030037030020014198096a41206a220d200c29030037030020014198096a41186a220c200a29030037030020014198096a41106a220a200929030037030020014198096a41086a2209200329030037030020012001290390053703c805200120012903800d37039809200141b8056a41086a22032018280200360200200120012903c8053703b805200141d8056a41386a2218201a290300370300200141d8056a41306a221a2017290300370300200141d8056a41286a221b2013290300370300200141d8056a41206a2213200d290300370300200141d8056a41186a220d200c290300370300200141d8056a41106a220c200a290300370300200141d8056a41086a220a200929030037030020012001290398093703d805200141a8056a41086a22092003280200360200200120012903b8053703a80541d000102c2217450d08201720012903d80537030020172006360240201720012903a805370244201741386a2018290300370300201741306a201a290300370300201741286a201b290300370300201741206a2013290300370300201741186a200d290300370300201741106a200c290300370300201741086a200a290300370300201741cc006a2009280200360200024020074120470d0041012128410121270c040b200541206a210a201941606a2120200141fc056a210341012128410121270340200a21050340200141c00c6a41186a2206200541186a2207290000370300200141c00c6a41106a2209200541106a220a290000370300200141c00c6a41086a220c200541086a220d290000370300200120052900003703c00c200141d0046a41186a22132007290000370300200141d0046a41106a2207200a290000370300200141d0046a41086a220a200d290000370300200120052900003703d004200141b8076a41186a221a2006290300370300200141b8076a41106a221b2009290300370300200141b8076a41086a2209200c290300370300200120012903c00c3703b807200141d8056a200141b8076a10bf01200141e00c6a41086a2221200141d8056a41086a220c290300370300200141e00c6a41106a2223200141d8056a41106a220d290300370300200141e00c6a41186a2224200141d8056a41186a221829030037030020014190056a41086a2225200341086a280200360200200120012903d8053703e00c200120032902003703900520012802f8052106200141b0046a41186a22262013290300370300200141b0046a41106a22132007290300370300200141b0046a41086a2207200a290300370300200120012903d0043703b00402402006450d00202a20012903e00c370300202a41086a2021290300370300202a41106a2023290300370300202a41186a2024290300370300201a20262903002202370300201b2013290300220837030020092007290300220e370300200141800d6a41086a2207200e370300200141800d6a41106a220a2008370300200141800d6a41186a22132002370300200141800d6a41206a221a200141b8076a41206a290300370300200141800d6a41286a221b200141b8076a41286a290300370300200141800d6a41306a2221200141b8076a41306a290300370300200141800d6a41386a2223200141b8076a41386a290300370300200120012903b00422023703b807200120023703800d200141c8056a41086a2224202528020036020020014198096a41386a2225202329030037030020014198096a41306a2223202129030037030020014198096a41286a2221201b29030037030020014198096a41206a221b201a29030037030020014198096a41186a221a201329030037030020014198096a41106a2213200a29030037030020014198096a41086a220a200729030037030020012001290390053703c805200120012903800d37039809200141b8056a41086a22072024280200360200200120012903c8053703b805200141f80a6a41386a22242025290300370300200141f80a6a41306a22252023290300370300200141f80a6a41286a22232021290300370300200141f80a6a41206a2221201b290300370300200141f80a6a41186a221b201a290300370300200141f80a6a41106a221a2013290300370300200141f80a6a41086a2213200a29030037030020012001290398093703f80a200141a8056a41086a220a2007280200360200200120012903b8053703a805200c2013290300370300200d201a2903003703002018201b290300370300200141d8056a41206a22132021290300370300200141d8056a41286a221a2023290300370300200141d8056a41306a221b2025290300370300200141d8056a41386a22212024290300370300200120012903f80a3703d8052009200a280200360200200120012903a8053703b8070240024020272028470d00202841016a22072028490d0c2028410174220a2007200a20074b1b22074104200741044b1bad42d0007e2202422088a74541037421072002a7210a0240024020280d00200141003602800d0c010b200141083602880d200120173602800d2001202841d0006c3602840d0b20014198096a200a2007200141800d6a107d20012802a00921072001280298094101460d01200128029c092117200741d0006e21280b200541206a210a2017202741d0006c6a220720012903d805370300200d2903002102201829030021082013290300210e201a2903002130201b290300213120212903002132200c290300213320072006360240200741086a2033370300200741386a2032370300200741306a2031370300200741286a2030370300200741206a200e370300200741186a2008370300200741106a2002370300200720012903b807370244200741cc006a2009280200360200202741016a212720202005470d030c070b20070d0b0c0a0b2019200541206a2205470d000c050b0b0b200541206a2105200741606a22070d000b0b0240201f41ffffff3f71450d002029102e0b410821174100212741042105410021280c010b0240201f41ffffff3f71450d002029102e0b202741d0006c4104722205417f4c0d030b2005102c2203450d032010410020111b2107200141003602880d200120053602840d200120033602800d2027200141800d6a10760240202741d0006c2205450d00201720056a21032017210503402005200141800d6a10a1012003200541d0006a2205470d000b0b20012802880d210320012802800d210620012007360298094117102c2205450d032005412f3a0012200541e1d8013b0010200542e8d2cda3f7cddcb4e300370008200542f3cacd9b97ed9bb7df00370000200520012802980936001320054117200620031093032005102e024020012802840d450d0020012802800d102e0b02402027450d00202741d0006c2103201741c4006a21050340024020052802002206450d00200641306c450d002005417c6a280200102e0b200541d0006a2105200341b07f6a22030d000b0b02402028450d00202841d0006c450d002017102e0b200141b8076a109403024020012903b80722024202510d0020012903c0072108200141800d6a200141c8076a280200220641016a109503200141b0036a20012802800d220320012802880d108e0220012802b403210920012802b0032105024020012802840d450d002003102e0b20054101470d002009200741016a470d0020024201520d00200141e8046a22094200370300200141d0046a41106a220a4200370300200141d0046a41086a22054200370300200142003703d004200141800d6a41e8fcc60041091081022005200141800d6a41086a2203290000370300200120012900800d3703d004200141800d6a41b08ec9004103108102200b41086a220c2003290000370000200b20012900800d370000200141a0036a200141d0046a108503200141f8026a20012903a803420020012802a0031b220242e80780420042e807420010e808200141800d6a200610960320014188036a20012802800d221320012802880d10f80220012903f802220e200242e807827c2202427f200141f8026a41086a2903002002200e54ad7c501b20087d213020014188036a41106a2903004200200128028803220d1b21082001290390034200200d1b2131024020012802840d450d002013102e0b20094200370300200a420037030020054200370300200142003703d004200141800d6a41f8fcc600410810810220052003290000370300200120012900800d3703d004200141800d6a41a8aac800410d108102200c2003290000370000200b20012900800d370000200141e0026a200141d0046a412010f802200141d0026a20012903e802420020012802e00222051b220e200141e0026a41106a290300420020051b2202428094ebdc03420010e608200141c0026a200e2002428094ebdc03420010e708200220082031200e56200820025620082002511b22051b2108200e203120051b21332030428086ebc7f5002030428086ebc7f500541b420588428094ebdc037e4298ac9fd603802134200141c0026a41086a29030021314100210341b0fac600210520012903c002213220012903d0022130024002400340200141b0026a2032203120053502002202420010e808203320012903b002220e203020027e2202428094ebdc0380a7417f2002428080808080c0b2cd3b541b2002428094ebdc03824280cab5ee01566aad7c2202542008200141b0026a41086a2903002002200e54ad7c22025420082002511b0d01200541086a2105200341016a22034121470d000b200141a0026a203220314298f1840d420010e808200141a8026a29030020012903a002220820304298f1840d7e2202428094ebdc0380a72002428094ebdc03824280cab5ee01566aad7c2202200854ad7c21080c010b02402003417f6a220920034d0d00200141b0016a2032203142c0f0f50b420010e808200141b8016a29030020012903b00122082030422880a7203042c0f0f50b7e428094ebdc03824280cab5ee01566aad7c2202200854ad7c21080c010b02400240200941204b0d0020014190026a203220312009410374220a41b0fac6006a2802002209ad2202420010e808200141f0016a2033200129039002220e203020027e2202428094ebdc0380a7417f2002428080808080c0b2cd3b541b220341016a20032002428094ebdc03824280cab5ee01561bad7c22022033200256200820014190026a41086a2903002002200e54ad7c220e562008200e511b22031b22352002203320031b22027d22332008200e20031b200e200820031b7d2035200254ad7d220e41002005280200220c20096b22092009200c4b1b22094101200941014b1bad2202420010e708200141c0016a200141f0016a41086a2903004200200541046a2802002209200a41b4fac6006a2802002205200920054b220a1b20052009200a1b6bad2208420010e808200141d0016a20012903f00142002008420010e808200141e0016a2033200e2002420010e60820014180026a203220312005ad2233420010e808427f427f200141d0016a41086a290300220e20012903c0017c223520012903c8014200522035200e5472220a1b2235427f20012903d001200a1b220e20012903e00120087e2002807c2202200e54220aad7c2208200a20082035542002200e5a1b220a1b2135427f2002200a1b210e20014180026a41086a2903002001290380022236203020337e2202428094ebdc0380a7417f2002428080808080c0b2cd3b541b2002428094ebdc03824280cab5ee01566aad7c2208203654ad7c21022003200920054d460d01427f200220357c2008200e7c220e2008542205ad7c22082005200820025420082002511b22051b2108427f200e20051b21020c020b2009412141f889c500103c000b4200200220357d2008200e54ad7d22332008200e7d220e200856203320025620332002511b22051b21084200200e20051b21020b200141a0016a20022008428094ebdc03420010e60820014190016a20022008428094ebdc03420010e70820014180016a20012903900120014190016a41086a2903002034420010e808200141f0006a203220314280c2d72f420010e808200141e0006a200129037022082030420a80a720304280c2d72f7e428094ebdc03824280cab5ee01566aad7c2202200141f0006a41086a2903002002200854ad7c2208428094ebdc03420010e608200141d0006a20022008428094ebdc03420010e708200141c0006a2001290350200141d0006a41086a2903002034420010e8082001418c0d6a2006360200200141800d6a41086a41003a0000200141800d6a41106a2001290380012208203420012903a0017e2202428094ebdc0380a72002428094ebdc03824280cab5ee01566aad7c2202370300200141980d6a20014180016a41086a2903002002200854ad7c2208370300200141a80d6a4200200141c0006a41086a29030020012903402230203420012903607e220e428094ebdc0380a7200e428094ebdc03824280cab5ee01566aad7c220e203054ad7c223020087d200e200254ad7d2231200e20027d2232200e56203120305620312030511b22051b2231370300200141a00d6a4200203220051b2232370300200141043a00800d200141800d6a10fe0120014198096a200610970320012802a00921032001280298092105200120083703880d200120023703800d20052003200141800d6a411010b2010240200128029c09450d002005102e0b200120313703880d200120323703800d024002400240200e200256203020085620302008511b0d00200142003703880d200142003703800d0c010b200141800d6a10980320012903800d21022001200141800d6a41086a29030022083703880d200120023703800d20022008844200520d010b2001200141800d6a3602980920014198096a10cc020c010b200142f0f2bda1a7ee9cb9f90037039809200141800d6a20014198096a10cd02200141306a200141800d6a2002200810fd01200141a8096a200141306a41086a290300223020087d2001290330220e200254ad7d200820307d2002200e54ad7d200e200256203020085620302008511b22051b3703002001200e20027d2002200e7d20051b3703a00920012005ad3703980920014198096a41086a21030240024020050d00200120033602d805200141d8056a10cc020c010b200120033602d805200141d8056a10ce020b200141980d6a2008370300200141900d6a2002370300200141880d6a41063a00002001410e3a00800d200141800d6a10fe010b200141c8046a4200370300200141c0046a4200370300200141b0046a41086a22054200370300200142003703b004200141800d6a41a081ca0041071081022005200141800d6a41086a2203290000370300200120012900800d3703b004200141800d6a41dff9c000410a108102200f41086a2003290000370000200f20012900800d370000200141203602bc052001200141b0046a3602b80520014190056a200141b0046a412010ed0202400240200128029005220a0d00410021090c010b200128029405210c200120014190056a41086a2802003602cc052001200a3602c805200141286a200141c8056a10ab010240024020012802280d00200128022c220d20012802cc0541e0016e22052005200d4b1bad42e0017e2202422088a70d052002a72205417f4c0d050240024020050d00410121090c010b2005102c2209450d070b200541e0016ead210202400240200d450d00200141800d6a41206a2117200141f80a6a4101722118410021130340200141003a00980b20012802cc05417f6a2105201341016a211341002103024002400240024002400340200141003a00a8052005417f460d01200141f80a6a20036a20012802c80522062d00003a00002001200641016a3602c8052001200341016a22063a00980b200120053602cc052005417f6a21052006210320064120470d000b200141e00c6a41186a2205200141f80a6a41186a290300370300200141e00c6a41106a2203200141f80a6a41106a290300370300200141e00c6a41086a221a200141f80a6a41086a290300370300200120012903f80a3703e00c200641ff01714120490d01200141d0046a41086a2206201a290300370300200141d0046a41106a221a2003290300370300200141d0046a41186a22032005290300370300200120012903e00c3703d004200141f80a6a200141c8056a10990320012d00f80a4101460d01200141800d6a41186a2003290300370300200141800d6a41106a201a290300370300200141800d6a41086a2006290300370300200120012903d0043703800d2017201841c00110e9081a20014198096a200141800d6a41e00110e9081a200141b8076a20014198096a41e00110e9081a200141d8056a200141b8076a41e00110e9081a2002422088a722052002a7470d04200541016a22032005490d0d20054101742206200320032006491b22034104200341044b1bad42e0017e2202a721032002422088a745210620050d02200141003602800d0c030b200341ff0171450d00200141003a00980b0b2002a721052005450d06200541e0016c450d062009102e0c060b200141013602880d200120093602800d2001200541e0016c3602840d0b20014198096a20032006200141800d6a107d20012802a00921032001280298094101460d03200128029c092109200341e0016ead21020b2009200541e0016c6a200141d8056a41e00110e9081a200242ffffffff0f83200541016aad4220868421022013200d470d000b0b2009450d010c020b20030d060c050b41002109200141003602a00920014201370398092001410a3602bc072001200141b8056a3602b807200120014198096a3602d805200141940d6a4101360200200142013702840d200141909dc5003602800d2001200141b8076a3602900d200141d8056a419cebc000200141800d6a103d1a20012802980920012802a00910ef02200128029c09450d00200128029809102e0b200c450d00200a102e0b2002420020091b2208422088a7222141ffffff3f712021470d0241012123024020214105742205450d002005102c2223450d040b2009410120091b2124410021032001410036029805200120233602900520012005410576222736029405024002400240202720214f0d00200541047622032021200320214b1b22034104200341044b1b220341ffffff3f712003462106200341057421030240024020050d00200141003602800d0c010b200141880d6a4101360200200120053602840d200120233602800d0b20014198096a20032006200141800d6a107d200141a0096a280200210502402001280298094101460d002001200128029c09222336029005200120054105762227360294050c020b20050d060c050b2021450d010b202141e0016c220641a07e6a41e0016e21092023210520242103034020052003290000370000200541186a200341186a290000370000200541106a200341106a290000370000200541086a200341086a290000370000200541206a2105200341e0016a2103200641a07e6a22060d000b200941016a21030b2001200336029805200141c8046a22064200370300200141c0046a22094200370300200141b0046a41086a22054200370300200142003703b004200141800d6a41a081ca0041071081022005200141800d6a41086a2203290000370300200120012900800d3703b004200141800d6a41f09dc500410a108102200f41086a220a2003290000370000200f20012900800d370000200141b0046a20014190056a109a0302402012201241ff0171410247712220450d00200642003703002009420037030020054200370300200142003703b004200141800d6a41a081ca00410710810220052003290000370300200120012900800d3703b004200141800d6a41f8d2c1004112108102200a2003290000370000200f20012900800d370000200141800d6a200141b0046a109b0320012802800d220c450d00200141b0046a412010ff0120012902840d42ffffffff0383500d00200c102e0b200642003703002009420037030020054200370300200142003703b004200141800d6a41a081ca00410710810220052003290000370300200120012900800d3703b004200141800d6a41e4d1c100410c108102200a2003290000370000200f20012900800d3700002001200741016a22283602800d200141b0046a4120200141800d6a410410b201200141800d6a1094030240024020012903800d4202510d00200141900d6a28020041016a21050c010b410021050b200141800d6a2005109503200141206a20012802800d220620012802880d108e022001280224210320012802202105024020012802840d450d002006102e0b024020054101470d00024020032028460d00200320284f0d0141c3ebc600413010ef020b2028109c030b200141c8046a4200370300200141c0046a4200370300200141b0046a41086a22054200370300200142003703b004200141b8076a41a081ca0041071081022005200141b8076a41086a290000370300200120012900b8073703b00420014198096a41bfadc000410b108102200441086a20014198096a41086a2900003700002004200129009809370000200141800d6a200141b0046a4120109d03200741026a211b0240024020012802800d4101470d0020013502840d21020c010b201bad220242208620028421020b2001200242ffffffff0f83200741036aad422086843702840d200141013602800d200141b0046a41186a4200370300200141b0046a41106a4200370300200141b0046a41086a22054200370300200142003703b004200141b8076a41a081ca0041071081022005200141b8076a41086a290000370300200120012900b8073703b00420014198096a41bfadc000410b108102200441086a20014198096a41086a2900003700002004200129009809370000200141b0046a4120200141800d6a410472109e03200141d0046a41186a22064200370300200141d0046a41106a22074200370300200141d0046a41086a22054200370300200142003703d004200141800d6a4192fdc60041071081022005200141800d6a41086a2203290000370300200120012900800d3703d004200141800d6a4198b7c6004115108102200b41086a22092003290000370000200b20012900800d3700002001201b3602800d200141d0046a4120200141800d6a410410b201200642003703002007420037030020054200370300200142003703d004200141800d6a4192fdc600410710810220052003290000370300200120012900800d3703d004200141800d6a4194adc600410a10810220092003290000370000200b20012900800d370000200141186a200141d0046a4120108e020240024020012802184101460d00200141c00c6a201b109f030c010b200141800d6a200128021c109503200141106a20012802800d220620012802880d108e022001280214210320012802102105024020012802840d450d002006102e0b024020050d00418debc600413610ef02410021030b024002400240024010a00341ff01710e0401000302030b200141e8046a4200370300200141e0046a4200370300200141d0046a41086a22054200370300200142003703d004200141800d6a4192fdc60041071081022005200141800d6a41086a2203290000370300200120012900800d3703d004200141800d6a41b8b2c6004108108102200b41086a2003290000370000200b20012900800d370000200141d0046a412010ff010c010b4100201b20036b22052005201b4b1b4106490d010b200141c00c6a201b109f030c010b200141003602c00c0b024002400240024002400240024020012802c00c2226450d00200141e8046a4200370300200141e0046a4200370300200141d0046a41086a22054200370300200142003703d004200141800d6a4192fdc60041071081022005200141800d6a41086a2203290000370300200120012900800d3703d004200141800d6a4194adc600410a108102200b41086a2003290000370000200b20012900800d370000200141086a200141d0046a4120108e02200141c00c6a41086a2802002205ad42d0007e2202422088a70d092002a72203417f4c0d0920012802082106200128020c210720012802c40c21290240024020030d00410821250c010b2003102c2225450d0b0b024002400240200341d0006e222a20054f0d00202a41017422092005200920054b1b22094104200941044b1bad42d0007e2202422088a74541037421092002a7210a02400240200341cf004b0d00200141003602800d0c010b200141800d6a41086a4108360200200120253602800d2001202a41d0006c3602840d0b20014198096a200a2009200141800d6a107d200141a0096a280200210302402001280298094101460d00200128029c092125200341d0006e212a0c020b20030d0d0c0c0b20050d00410021090c010b2007410020061b21192005410574220941606a410576211f200141b8076a41206a210620252105202621030340200141d8056a41186a220a200341186a290000370300200141d8056a41106a220c200341106a290000370300200141d8056a41086a220d200341086a290000370300200120032900003703d805200141f80a6a2019200141d8056a10a103200141800d6a20012802f80a220420012802800b10a203200141e00c6a41186a2217200141800d6a41186a290300370300200141e00c6a41106a2218200141800d6a41106a290300370300200141e00c6a41086a221a200141800d6a41086a290300370300200120012903800d3703e00c20012802ac0d21130240024020012802a00d22070d004200210220014198096a41186a420037030020014198096a41106a42003703004108210720014198096a41086a420037030020014200370398090c010b20014198096a41086a201a29030037030020014198096a41106a201829030037030020014198096a41186a2017290300370300200120012903e00c3703980920012902a40d21020b024020012802fc0a450d002004102e0b200341206a21032006200129039809370300200141b8076a41086a2204200d290300370300200141b8076a41106a220d200c290300370300200141b8076a41186a220c200a290300370300200641186a20014198096a41186a290300370300200641106a20014198096a41106a290300370300200641086a20014198096a41086a290300370300200120012903d8053703b807200541386a200141b8076a41386a290300370300200541306a200141b8076a41306a290300370300200541286a200141b8076a41286a290300370300200541206a2006290300370300200541186a200c290300370300200541106a200d290300370300200541086a2004290300370300200520012903b807370300200541cc006a2013360200200541c4006a2002370200200541c0006a2007360200200541d0006a2105200941606a22090d000b201f41016a21090b0240202941ffffff3f71450d002026102e0b2025450d00200941ffffff3f712009470d0920094105742205417f4c0d090240024020050d00410121290c010b2005102c2229450d0b0b02400240024002402005410576221f20094f0d00200541047622032009200320094b1b22034104200341044b1b220341ffffff3f712003462106200341057421030240024020050d00200141003602800d0c010b200141880d6a4101360200200120053602840d200120293602800d0b20014198096a20032006200141800d6a107d200141a0096a28020021052001280298094101460d01200128029c0921292005410576211f0b20252025200941d0006c6a470d01410021060c020b20050d0c0c0b0b2025200941d0006c6a2107410021062029210520252103034020052003290000370000200541186a200341186a290000370000200541106a200341106a290000370000200541086a200341086a290000370000200641016a2106200541206a21052007200341d0006a2203470d000b0b200120093602a0092001202a36029c092001202536029809200141800d6a20014198096a10a30320012802800d4101470d0120012802880d210520012802840d21034188accb00413710ef022003200510ef020c020b200141b8076a4100201b417f6a22052005201b4b1b10a403200141800d6a20012802b807220520012802c00710a503200141f80a6a41086a2203200141800d6a41106a290300370300200141f80a6a41106a2206200141800d6a41186a290300370300200141f80a6a41186a2207200141a00d6a2903003703002001200141800d6a41086a2903003703f80a20012802800d4101470d0220012802840d210920014198096a41186a200729030037030020014198096a41106a200629030037030020014198096a41086a2003290300370300200120012903f80a37039809024020012802bc07450d002005102e0b2001418c0d6a200141a0096a290300370200200141940d6a200141a8096a2903003702002001419c0d6a200141b0096a290300370200200120093602800d20012001290398093702840d200141f80a6a201b10a40320012802800b210320012802f80a21054104102c2206450d09200142043702dc05200120063602d8054120102c2206450d09200142203702bc07200120063602b807200141b8076a200141800d6a41201074200141d8056a20012802b807220620012802c0071074024020012802bc07450d002006102e0b200120012802a00d3602b807200141d8056a200141b8076a410410742005200320012802d805220620012802e00510b201024020012802dc05450d002006102e0b20012802fc0a450d032005102e0c030b20014198096a200141800d6a41086a41800110e9081a200141d0076a200141900a6a290300370300200141c8076a200141880a6a290300370300200141b8076a41086a200141800a6a290300370300200120012903f8093703b807200120093602d807200141e00c6a201b10a40320012802e80c210320012802e00c21054104102c2207450d08200142043702fc0a200120073602f80a4120102c2207450d08200142203702dc05200120073602d805200141d8056a200141b8076a41201074200141f80a6a20012802d805220720012802e0051074024020012802dc05450d002007102e0b200120093602d805200141f80a6a200141d8056a410410742005200320012802f80a220720012802800b10b201024020012802fc0a450d002007102e0b024020012802e40c450d002005102e0b20014198096a10b8020b20294521222029450d022006ad422086201fad8421024101212a2029210b0c030b20012802bc07450d002005102e0b41002129410121220b200141e8046a4200370300200141e0046a4200370300200141d0046a41086a22054200370300200142003703d004200141800d6a41a081ca0041071081022005200141800d6a41086a2203290000370300200120012900800d3703d004200141800d6a41f09dc500410a108102200b41086a2003290000370000200b20012900800d370000200141800d6a200141d0046a10880320012902840d420020012802800d22051b21022005410120051b210b4100212a0b2002422088a722064105744105752203ad42e0017e220e422088a70d02200ea72205417f4c0d020240024020050d00410121250c010b2005102c2225450d040b0240024002400240200541e0016e222620034f0d00202641017422072003200720034b1b22034104200341044b1bad42e0017e220ea72103200e422088a745210702400240200541df014b0d00200141003602800d0c010b200141880d6a4101360200200120253602800d2001202641e0016c3602840d0b20014198096a20032007200141800d6a107d200141a0096a28020021052001280298094101460d01200128029c092125200541e0016e21260b20060d0141002118202a21040c020b20050d050c040b2024202141e0016c6a211b2006410574220741606a4105762114200141800d6a41206a2118200141f80a6a41a0016a2115200141f80a6a4180016a2111200141f80a6a41e0006a2110200141f80a6a41c0006a2112200141f80a6a41206a211920014198096a410172211a202a21042024210620252109200b2105034020062103200141e00c6a41186a220a200541186a290000370300200141e00c6a41106a220c200541106a290000370300200141e00c6a41086a220d200541086a290000370300200120052900003703e00c200141c00c6a200141e00c6a10a60320014198096a20012802c00c221720012802c80c10a70320012d0098092113200141b8076a201a41c00110e9081a41002106024020134101470d00200141d8056a200141b8076a41c00110e9081a410121060b024020012802c40c450d002017102e0b0240024020060d00200141f80a6a41186a4200370300200141f80a6a41106a4200370300200141f80a6a41086a4200370300200142003703f80a2019410041a00110eb081a0c010b200141f80a6a200141d8056a41c00110e9081a0b02400240200441ff0171450d00200321060c010b4100210402402003201b470d00200321060c010b200341e0016a21060240200341206a200141f80a6a412010ec080d00200341c0006a2019412010ec080d00200341e0006a2012412010ec080d0020034180016a2010412010ec080d00200341a0016a2011412010ec080d00200341c0016a2015412010ec08450d010b410121040b200541206a2105200141800d6a41186a200a290300370300200141800d6a41106a200c290300370300200141800d6a41086a200d290300370300200120012903e00c3703800d2018200141f80a6a41c00110e9081a2009200141800d6a41e00110e90841e0016a2109200741606a22070d000b201441016a21180b0240200242ffffff3f83500d00200b102e0b2018ad42e0017e2202422088a70d022002a72219417f4c0d020240024020190d00410121174100211b0c010b2019102c2217450d04201941e0016e211b201941e001490d002025201841e0016c6a211a200141c00e6a2103200141a00e6a2106200141800e6a2107200141e00d6a2109200141c00d6a210a200141a00d6a210c4100210d20252105201b21130340201a2005460d012013450d03200141800d6a41186a200541186a290000370300200141800d6a41106a200541106a290000370300200141800d6a41086a200541086a29000037030020052900002102200c2005290020370000200c41086a200541286a290000370000200c41106a200541306a290000370000200c41186a200541386a290000370000200a41186a200541d8006a290000370000200a41106a200541d0006a290000370000200a41086a200541c8006a290000370000200a2005290040370000200120023703800d200941186a200541f8006a290000370000200941106a200541f0006a290000370000200941086a200541e8006a29000037000020092005290060370000200741186a20054198016a290000370000200741106a20054190016a290000370000200741086a20054188016a2900003700002007200529008001370000200620052900a001370000200641086a200541a8016a290000370000200641106a200541b0016a290000370000200641186a200541b8016a290000370000200320052900c001370000200341086a200541c8016a290000370000200341186a200541d8016a290000370000200341106a200541d0016a2900003700002017200d6a200141800d6a41e00110e9081a200d41e0016a210d200541e0016a21052013417f6a22130d000b0b200141c8046a4200370300200141c0046a4200370300200141b0046a41086a22054200370300200142003703b004200141800d6a41a081ca0041071081022005200141800d6a41086a2203290000370300200120012900800d3703b004200141800d6a41dff9c000410a108102200f41086a2003290000370000200f20012900800d370000201841e0016c4104722205417f4c0d022005102c2203450d03200141003602880d200120053602840d200120033602800d2018200141800d6a107620172018200141800d6a109c01200141b0046a412020012802800d220520012802880d10b201024020012802840d450d002005102e0b0240201941e001490d00201b41e0016c450d002017102e0b200141c8046a4200370300200141c0046a4200370300200141b0046a41086a22054200370300200142003703b004200141800d6a41a081ca0041071081022005200141800d6a41086a2203290000370300200120012900800d3703b004200141800d6a4188d2c100410d108102200f41086a2003290000370000200f20012900800d370000200120043a00a805200141b0046a4120200141a8056a410110b201200120283602840d200141063a00800d200141800d6a10fe012020202420212025201810a80302402026450d00202641e0016c450d002025102e0b0240202a2022720d00201f41ffffff3f71450d002029102e0b02402027450d002023102e0b02402008a72205450d00200541e0016c450d002024102e0b200141800d6a10a90320012903880d21020b200010aa032108200141e00e6a2400427f200220087c220820082002541b0f0b201b201b4188decc00103c000b1038000b1036000bdd2107067f017e037f017e017f067e017f230041900e6b22002400200041a0036a2201420037030020004198036a2202420037030020004188036a41086a220342003703002000420037038803200041b00c6a41a8f8c60041041081022003200041b00c6a41086a2204290000370300200020002900b00c37038803200041b00c6a41978cc500410b10810220012004290000370300200220002900b00c370300200041a8096a20004188036a10a004024020002d00a8094102470d002001420037030020024200370300200342003703002000420037038803200041b00c6a41d9fcc600410610810220032004290000370300200020002900b00c37038803200041b00c6a41b4f4cb004106108102200241086a2004290000370000200220002900b00c370000200041a8096a20004188036a10a10420002802a8092203410420031b21050240024020002902ac09420020031b2206422088a7220741246c2203450d00200520036a2104200041a8096a41086a2108200521030340024020032d00004101470d00200341016a2800002101200341086a28020021092000200341106a2802003602cc07200020093602c8070240200141c28289aa04470d00200041a8096a200041c8076a10930220002903a809220a4203510d0020004188036a200841f00010e9081a200041c00c6a20004188036a41f00010e9081a200041306a200041c00c6a41f00010e9081a0c040b200041c00c6a41e8b1c40041f00010e9081a0b2004200341246a2203470d000b0b4203210a0b02402007450d00200741246c21042005210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a280200102e0c030b2003410c6a280200450d02200341086a280200102e0c020b2003410c6a280200450d01200341086a280200102e0c010b200341086a280200450d00200341046a280200102e0b200341246a21032004415c6a22040d000b0b02402006a72203450d00200341246c450d002005102e0b200041a0016a200041306a41f00010e9081a41002109410021010240200a4203510d002000200a3703900220004190026a41086a200041a0016a41f00010e908210b200041a0036a2201420037030020004198036a2205420037030020004188036a41086a220342003703002000420037038803200041b00c6a41a8f8c60041041081022003200041b00c6a41086a2204290000370300200020002900b00c37038803200041b00c6a41e38bc500410b108102200241086a22072004290000370000200220002900b00c370000200041206a20004188036a1085032000290398022106024002402000280220450d0020002903284200520d010b2001420037030020054200370300200342003703002000420037038803200041b00c6a41a8f8c600410410810220032004290000370300200020002900b00c37038803200041b00c6a41e38bc500410b10810220072004290000370000200220002900b00c370000200020063703a80920004188036a4120200041a8096a410810b2012001420037030020054200370300200342003703002000420037038803200041b00c6a41a8f8c600410410810220032004290000370300200020002900b00c37038803200041b00c6a41a58bc500410b10810220072004290000370000200220002900b00c370000200041a8096a20004188036a10a20420002802a809210720002902ac09210c2001420037030020054200370300200342003703002000420037038803200041b00c6a41a8f8c600410410810220032004290000370300200020002900b00c37038803200041b00c6a41c28cc500410a10810220012004290000370300200520002900b00c370300200041a8096a20004188036a10a30420002d00a80921042001200041c1096a2900003703002005200041b9096a2900003703002003200041b1096a290000370300200020002900a90937038803200c420020071b210d200c42808080807083420020071b210c2007410820071b21030240024020044101460d00200041d80c6a4200370300200041d00c6a4200370300200041c80c6a4200370300200042003703c00c0c010b200041c00c6a41186a20004188036a41186a290300370300200041c00c6a41106a20004188036a41106a290300370300200041c00c6a41086a20004188036a41086a29030037030020002000290388033703c00c0b200041c8076a41086a200041c00c6a41086a290300220e370300200041c8076a41106a200041c00c6a41106a290300220f370300200041c8076a41186a200041c00c6a41186a2903002210370300200020002903c00c22113703c807200041a8096a41086a200c200d42ffffffff0f8384370300200041a8096a41106a2011370300200041a8096a41186a200e370300200041c8096a200f370300200041a8096a41286a2010370300200020033602ac09200041003602a80920004188036a200041a8096a10a404200041cb0c6a20004188036a41086a28020036000020002000290388033700c30c20004194036a200041c70c6a290000370000200041c28289aa0436008903200041023a008803200020002900c00c37008d0320004188036a10a504200da72204450d00200441286c450d002003102e0b200041a0036a2205420037030020004188036a41106a2207420037030020004188036a41086a220342003703002000420037038803200041b00c6a41a8f8c60041041081022003200041b00c6a41086a2204290000370300200020002900b00c37038803200041b00c6a41c98bc500410b108102200241086a22082004290000370000200220002900b00c370000200041106a20004188036a108503200028021021012000290318210c2005420037030020074200370300200342003703002000420037038803200041b00c6a41a8f8c600410410810220032004290000370300200020002900b00c37038803200041b00c6a41a28cc500410810810220082004290000370000200220002900b00c370000200042002006200c42017c420120011b7d220c200c2006561b3e02a80920004188036a4120200041a8096a410410b2012005420037030020074200370300200342003703002000420037038803200041b00c6a41a8f8c600410410810220032004290000370300200020002900b00c37038803200041b00c6a41c98bc500410b10810220082004290000370000200220002900b00c370000200020063703a80920004188036a4120200041a8096a410810b20141002101200a4201510d0020004190026a41106a28020021012005420037030020074200370300200342003703002000420037038803200041b00c6a41a8f8c600410410810220032004290000370300200020002900b00c37038803200041b00c6a41a58bc500410b10810220082004290000370000200220002900b00c370000200041a8096a20004188036a10a20420002802a8092203410820031b210402400240200120002902ac09420020031b220c422088a74f0d00200041c8076a41186a2004200141286c6a220341186a290000370300200041c8076a41106a200341106a290000370300200041c8076a41086a200341086a290000370300200020032900003703c807200041a8096a200041c8076a10f40120002802a809210320004188036a200041a8096a41047241c40110e9081a20034101460d00200b410c6a210720004188066a200041c00c6a41046a20004188036a41046a41c00110e90841c00110e9081a200041c8076a20004188066a41c00110e9081a20004188036a41186a2203420037030020004188036a41106a2201420037030020004188036a41086a220542003703002000420037038803200041b00c6a41a8f8c60041041081022005200041b00c6a41086a2208290000370300200020002900b00c37038803200041b00c6a41c28cc500410a10810220032008290000370300200120002900b00c370300200041a8096a20004188036a10a30420002d00a80921082003200041c1096a2900003703002001200041b9096a2900003703002005200041b1096a290000370300200020002900a909370388030240024020084101460d00200041a0096a420037030020004198096a420037030020004190096a420037030020004200370388090c010b20004188096a41186a20004188036a41186a29030037030020004188096a41106a20004188036a41106a29030037030020004188096a41086a20004188036a41086a2903003703002000200029038803370388090b20004188036a41186a420037030020004188036a41106a420037030020004188036a41086a220342003703002000420037038803200041b00c6a41a8f8c60041041081022003200041b00c6a41086a2201290000370300200020002900b00c37038803200041b00c6a41fa8bc500410a108102200241086a2001290000370000200220002900b00c370000200020004188036a1085032000290308210d20002802002103200041c00c6a41dcddcc004104108101200041c00c6a41e0ddcc00410b2006108501200041c00c6a41ebddcc00410d200d420020031b108501200041c00c6a41f8ddcc00411020004188096a412010840120004188036a200041c00c6a41d00110e9081a200041a8096a2007200041c8076a20004188036a10f30120002802a8094101460d0020004188036a200041a8096a41086a41800310e9081a200041a8096a20004188036a41800310e9081a200041c00c6a41b7b7c0004109108101200041c00c6a41d4e2cc00410041c9ddcc004113108401200041c00c6a41c0b7c0004106200041c80a6a4120108401200041c00c6a41c6b7c0004107200041880c6a412010840120004188096a41186a420037030020004188096a41106a420037030020004188096a41086a42003703002000420037038809200041c00c6a41d4e2cc00410020004188096a4120108601410021030340200041c00c6a20036a41003a0000200341016a220341c801470d000b200041c8076a41086a20004188096a41086a290300370300200041c8076a41106a20004188096a41106a290300370300200041c8076a41186a20004188096a41186a29030037030020002000290388093703c807410121010c010b410021010b200ca72203450d00200341286c450d002004102e0b0240200a4200520d00200041c00c6a41186a200041c8076a41186a290300370300200041c00c6a41106a200041c8076a41106a290300370300200041c00c6a41086a200041c8076a41086a290300370300200020002903c8073703c00c200121090b200041b1096a2205200041c00c6a41086a290300370000200041b9096a2207200041c00c6a41106a290300370000200041c1096a2208200041c00c6a41186a290300370000200020093a00a809200020002903c00c3700a90920004188036a41186a2209420037030020004188036a41106a220b420037030020004188036a41086a220342003703002000420037038803200041b00c6a41a8f8c60041041081022003200041b00c6a41086a2204290000370300200020002900b00c37038803200041b00c6a41978cc500410b108102200241086a22122004290000370000200220002900b00c37000020004188036a200041a8096a10a6042005200041c8076a41086a2903003700002007200041c8076a41106a2903003700002008200041c8076a41186a290300370000200020013a00a809200020002903c8073700a90920094200370300200b4200370300200342003703002000420037038803200041b00c6a41a8f8c600410410810220032004290000370300200020002900b00c37038803200041b00c6a41848cc500411310810220122004290000370000200220002900b00c37000020004188036a200041a8096a10a6040b200041900e6a24000b8d0204017f017e017f017e230041d0006b220224002002412036020420022001360200200241086a2001412010ed0202400240200228020822010d00420021030c010b200228020c210402400240200241086a41086a2802004108490d0020012900002105420121030c010b20024100360220200242013703182002410a36022c200220023602282002200241186a360234200241cc006a41013602002002420137023c200241909dc5003602382002200241286a360248200241346a419cebc000200241386a103d1a2002280218200228022010ef020240200228021c450d002002280218102e0b420021030b2004450d002001102e0b2000200537030820002003370300200241d0006a24000b800201037f230041d0006b220124002001412036020420012000360200200141086a2000412010ed0202400240200128020822020d00410221000c010b200128020c210302400240200141106a280200450d0041002100024020022d00000e020200010b410121000c010b20014100360220200142013703182001410a36022c200120013602282001200141186a360234200141cc006a41013602002001420137023c200141909dc5003602382001200141286a360248200141346a419cebc000200141386a103d1a2001280218200128022010ef020240200128021c450d002001280218102e0b410221000b2003450d002002102e0b200141d0006a240020000ba70905077f017e037f037e027f23004190026b22012400200141206a22024200370300200141186a22034200370300200141086a41086a420037030020014200370308200141086a41bed8c8004108108102200141a8016a41e9d8c80041041081022002200141a8016a41086a290000370300200320012900a8013703002001412036022c2001200141086a360228200141306a200141086a412010ed020240024002400240024002400240200128023022040d00410021050c010b200128023421062001200141306a41086a280200360244200120043602402001200141c0006a10ab010240024020012802000d002001280204220720012802444105762202200220074b1b22024105742203417f4c0d070240024020020d00410121050c010b2003102c2205450d050b2002ad210802402007450d00410021090340200141003a00c8012001280244417f6a2102200941016a210941002103024002400240024003402002417f460d01200141a8016a20036a2001280240220a2d00003a00002001200a41016a3602402001200341016a220a3a00c801200120023602442002417f6a2102200a2103200a4120470d000b200141f0016a41186a2202200141a8016a41186a290300370300200141f0016a41106a2203200141a8016a41106a290300370300200141f0016a41086a220b200141a8016a41086a290300370300200120012903a8013703f001200a41ff01714120490d01200141e8006a41086a200b290300220c370300200141e8006a41106a2003290300220d370300200141e8006a41186a2002290300220e370300200141c8006a41186a220a200e370300200141c8006a41106a220b200d370300200141c8006a41086a220f200c370300200120012903f001220c370388012001200c3703682001200c3703482008422088220ca722022008a7470d03200241016a220320024f0d020c0d0b200341ff0171450d00200141003a00c8010b0240200842ffffff3f83500d002005102e0b0c040b20024101742210200320032010491b22034104200341044b1b220341ffffff3f712003462110200341057421030240024020020d00200141003602a8010c010b200141013602b001200120053602a8012001200c4205863e02ac010b200141f0016a20032010200141a8016a107d20012802f801210320012802f0014101460d0620012802f40121052003410576ad21080b200520024105746a22032001290348370000200341186a200a290300370000200341106a200b290300370000200341086a200f290300370000200842ffffffff0f83200241016aad42208684210820092007470d000b0b20050d010b41002105200141003602f801200142013703f0012001410a3602d4012001200141286a3602d0012001200141f0016a36028801200141bc016a4101360200200142013702ac01200141909dc5003602a8012001200141d0016a3602b80120014188016a419cebc000200141a8016a103d1a20012802f00120012802f80110ef0220012802f401450d0020012802f001102e0b2006450d002004102e0b20050d0220004100360208200042013702000c030b2003450d030b1036000b20002008370204200020053602000b20014190026a24000f0b1038000bd60201027f230041e0006b220224002002412036020c20022001360208200241106a2001412010ed0202400240200228021022010d00200041003602000c010b200228021421032002200241186a280200360224200220013602202002200241206a10ab0102400240024002402002280200450d00200241003602480c010b200241c8006a200241206a200228020410920120022802480d010b20024100360230200242013703282002410a36023c2002200241086a3602382002200241286a360244200241dc006a41013602002002420137024c200241909dc5003602482002200241386a360258200241c4006a419cebc000200241c8006a103d1a2002280228200228023010ef020240200228022c450d002002280228102e0b200041003602000c010b20002002290348370200200041086a200241c8006a41086a2802003602000b2003450d002001102e0b200241e0006a24000b0e002001ad4220862000ad8410220bb40201037f230041e0006b22022400200241086a4199fdc6004108108102200241186a418092c5004112108102024002404110102c2203450d002002421037023c20022003360238200241386a2001411010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241c8006a41086a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000bba0302047f017e230041e0006b220324002003200236020c20032001360208200341106a2001200210ed0202400240024002400240200328021022010d00200041003602000c010b200328021421022003200341186a280200360224200320013602202003200341206a10ab010240024020032802000d002003280224220420032802042205490d002005417f4c0d030240024020050d00410121060c010b200510322206450d05200328022421040b024020042005490d0020062003280220200510e9082104200328022422062005490d0620002005ad2207422086200784370204200020043602002003200620056b3602242003200328022020056a3602200c020b2006102e0b20034100360230200342013703282003410a36023c2003200341086a3602382003200341286a360244200341dc006a41013602002003420137024c200341909dc5003602482003200341386a360258200341c4006a419cebc000200341c8006a103d1a2003280228200328023010ef020240200328022c450d002003280228102e0b200041003602000b2002450d002001102e0b200341e0006a24000f0b1038000b1036000b2005200641b8b2c0001056000beb0201037f230041e0006b22032400200341086a4199fdc6004108108102200341186a41ac91c5004116108102024002404110102c2204450d002003421037023c20032004360238200341386a2001411010742003200328023822012003280240220410a301370348200341dc006a200120046a360200200320013602582003200341c8006a41086a3602542003200341c8006a360250200341286a200341d0006a107c0240200328023c450d002001102e0b200341d0006a2002280200200228020810a20120032802302202200328025822046a41206a2201417f4c0d010240024020010d00410121050c010b2001102c2205450d010b2000410036020820002001360204200020053602002000200341086a411010742000200341186a41101074200020032802282201200210742000200328025022022004107402402003280254450d002002102e0b0240200328022c450d002001102e0b200341e0006a24000f0b1036000b1038000bb10805057f017e037f037e027f230041f0016b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022040d00200041003602000c010b200328021421052003200341186a280200360224200320043602202003200341206a10ab010240024020032802000d00024002402003280204220620032802244105762201200120064b1b22014105742202417f4c0d000240024020010d00410121070c010b2002102c2207450d020b2001ad2108024002402006450d00410021090340200341003a00a8012003280224417f6a2101200941016a2109410021020240024002400240024003402001417f460d0120034188016a20026a2003280220220a2d00003a00002003200a41016a3602202003200241016a220a3a00a801200320013602242001417f6a2101200a2102200a4120470d000b200341d0016a41186a220120034188016a41186a290300370300200341d0016a41106a220220034188016a41106a290300370300200341d0016a41086a220b20034188016a41086a29030037030020032003290388013703d001200a41ff01714120490d01200341c8006a41086a200b290300220c370300200341c8006a41106a2002290300220d370300200341c8006a41186a2001290300220e370300200341286a41186a220a200e370300200341286a41106a220b200d370300200341286a41086a220f200c370300200320032903d001220c3703682003200c3703482003200c3703282008422088220ca722012008a7470d04200141016a22022001490d0820014101742210200220022010491b22024104200241044b1b220241ffffff3f7120024621102002410574210220010d0220034100360288010c030b200241ff0171450d00200341003a00a8010b200341c8006a41186a200341e8006a41186a290300370300200842ffffff3f83500d082007102e0c080b200341013602900120032007360288012003200c4205863e028c010b200341d0016a2002201020034188016a107d20032802d801210220032802d0014101460d0320032802d40121072002410576ad21080b200720014105746a22022003290328370000200241186a200a290300370000200241106a200b290300370000200241086a200f290300370000200842ffffffff0f83200141016aad42208684210820092006470d000b0b2007450d0320002008370204200020073602000c040b20020d010b1038000b1036000b200341003602d801200342013703d0012003410a3602b4012003200341086a3602b0012003200341d0016a3602682003419c016a41013602002003420137028c01200341909dc500360288012003200341b0016a36029801200341e8006a419cebc00020034188016a103d1a20032802d00120032802d80110ef02024020032802d401450d0020032802d001102e0b200041003602000b2005450d002004102e0b200341f0016a24000bb40201037f230041e0006b22022400200241086a4199fdc6004108108102200241186a419090c5004107108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241c8006a41086a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000b8b0101027f230041106b2203240020034100360208200342013703002002200310a10120022802502104200241d8006a28020022022003107602402002450d002002410574210203402003200441201074200441206a2104200241606a22020d000b0b2000200120032802002204200328020810b20102402003280204450d002004102e0b200341106a24000ba60201017f230041a0016b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822010d00200041003602400c010b200328020c21022003200341106a28020036027c20032001360278200341186a200341f8006a10e0040240024020032802580d00200341003602880120034201370380012003410a360294012003200336029001200320034180016a36029c012003412c6a41013602002003420137021c200341909dc500360218200320034190016a3602282003419c016a419cebc000200341186a103d1a20032802800120032802880110ef020240200328028401450d00200328028001102e0b200041003602400c010b2000200341186a41e00010e9081a0b2002450d002001102e0b200341a0016a24000be50101047f230041206b2203240002400240200228020822044105744104722205417f4c0d00200228020021022005102c2206450d0120034100360208200320053602042003200636020020042003107602402004450d002004410574210403404120102c2205450d032003422037021420032005360210200341106a2002412010742003200328021022052003280218107402402003280214450d002005102e0b200241206a2102200441606a22040d000b0b2000200120032802002202200328020810b20102402003280204450d002002102e0b200341206a24000f0b1038000b1036000bf63608077f017e097f017e067f067e077f027e230041c0036b22062400200641d8026a22074200370300200641d0026a22084200370300200641c0026a41086a22094200370300200642003703c002200641b0026a4192fdc60041071081022009200641b0026a41086a290000370300200620062900b0023703c00220064180036a41e0b2c6004113108102200720064180036a41086a22092900003703002008200629008003370300200641203602a4022006200641c0026a3602a00220064180036a200641c0026a412010ed020240024020062802800322070d004100210a0c010b200628028403210b0240024020092802004104490d004101210a2007280000220c418194ebdc03490d010b4100210a200641003602e801200642013703e0012006410a3602b4022006200641a0026a3602b0022006200641e0016a36029002200641ac036a41013602002006420137029c03200641909dc500360298032006200641b0026a3602a80320064190026a419cebc00020064198036a103d1a20062802e00120062802e80110ef0220062802e401450d0020062802e001102e0b200b450d002007102e0b200641c0026a1094030240024020062903c0024202520d0042c0f0f50b210d0c010b200641c0026a200641d0026a280200220e109503200641d8016a20062802c002220920062802c802108e0220062802dc01210b20062802d8012107024020062802c402450d002009102e0b02400240024020070d00418debc600413610ef024100200e41646a22072007200e4b1b210f428084afdf00210d200e21100c010b4100200e41646a22072007200e4b1b210f428084afdf00210d0240200b20054b0d00200e21100c010b200641c0026a10f10520062802c002221120062802c80241037422076a210903402007450d02200741786a21072009417c6a210b200941786a2109200b28020020054b0d000b201120076a2802002110024020062802c40241ffffffff0171450d002011102e0b42c0f4a4eb00210d0b200c4100200a1b2112200641c0026a41186a22134200370300200641c0026a41106a22144200370300200641c0026a41086a220c4200370300200642003703c002200641b0026a4192fdc6004107108102200c200641b0026a41086a2215290000370300200620062900b0023703c00220064180036a41e8b6c6004116108102200841086a220720064180036a41086a22162900003700002008200629008003370000200641d0016a200641c0026a4120108e0220062802d401210920062802d001210b2013420037030020144200370300200c4200370300200642003703c002200641b0026a4192fdc6004107108102200c2015290000370300200620062900b0023703c00220064180036a41e8b6c600411610810220072016290000370000200820062900800337000020062009200e200b4101461b36029803200641c0026a412020064198036a410410b2012013420037030020144200370300200c4200370300200642003703c002200641b0026a4192fdc6004107108102200c2015290000370300200620062900b0023703c00220064180036a418cabc600410d10810220072016290000370000200820062900800337000020064198036a200641c0026a108803200629029c03420020062802980322071b2217422088a7410574211820042002200220044b1b21192007410120071b211a20064198036a41106a210220064180026a41046a211b20064190026a41086a211c4100210802400240034020082019200820194b1b21040340024020082004470d00201742ffffff3f83500d06201a102e0c060b200841016a211d2001200841e0006c6a210520182107201a2109024003402007450d01200741606a210720092005412010ec08210b200941206a2109200b0d000b201d21080c010b0b200320084102746a2802002107200642003703880220064200370380022006420037039802200642003703900220064190016a2005290330221e200541386a290300221f428094ebdc03420010e608200641a0016a201e201f428094ebdc03420010e70820064180016a20062903a001200641a0016a41086a2903002007ad221f420010e808200641b0016a2005290320221e200541286a2903002220428094ebdc03420010e608200641c0016a201e2020428094ebdc03420010e708200641f0006a20062903c001200641c0016a41086a290300201f420010e808200629039001201f7e2220428094ebdc038021212020428094ebdc038221220240024002402006290370420020062903b001201f7e221e428094ebdc0380a7417f201e428080808080c0b2cd3b541b201e428094ebdc03824280cab5ee01566a2209ad7d85200641f0006a41086a29030042002009410047ad7d85844200520d00200642003703a802200642003703a002200642003703b802200642003703b00220064198036a200510ce050240024020062802a4030d00200642003703900320064280808080c000370388032006200f360284032006410036028003200520064180036a10d0050c010b20064180036a41106a2002290300370300201620064198036a41086a2903003703002006200629039803370380030b200c200629038003370200200c41086a2016290300370200200c41106a20064180036a41106a290300370200200641003a00ec02200620053602c4022006200f3602c002200620123602e8022006200641b0026a3602e4022006200641a0026a3602e00220064198036a200641c0026a201010f205024020062802a0034102460d0020062802980320062802c802470d002006200c200e108c0120062d00ec024100477222073a00ec0220064198036a2005108605200628029803220920062802a00310ff010240200628029c03450d002009102e0b20064198036a200510d105200628029803220920062802a00310ff010240200628029c03450d002009102e0b0240200510f30541ff017122094102460d002009410171450d00024010a00341ff0171417f6a0e03010001000b20064198036a41186a42003703002002420037030020064198036a41086a22094200370300200642003703980320064180036a4192fdc60041071081022009201629000037030020062006290080033703980320064180036a41b8b2c6004108108102200241086a2016290000370000200220062900800337000020064100360288032006420137038003200641013a00f00220064180036a200641f0026a4101107420064198036a4120200628028003220920062802880310b201200628028403450d002009102e0b2007450d00200641f0026a200c20062802c002108d01024020062802f0024101470d0020062802f402220720062802f80222054f0d0020062802c4022109034020064198036a41186a200941186a2900003703002002200941106a29000037030020064198036a41086a200941086a2900003703002006200929000037039803200620073602b80320064180036a20064198036a10cd05200628028003220b20062802880310ff01200741016a21070240200628028403450d00200b102e0b20052007470d000b0b20062802c402200c10d0050b20062802d80241ffffffff0371450d0120062802d402102e0c010b200629038001211e20064180016a41086a2903002123200641b0026a2010200510cc0520062802b0022109200620062802b802220b3602f402200620093602f00220064180036a2009200b10ed0202400240200628028003220b0d0041002104200a21240c010b20062802840321080240024020062802880322114104490d00200b2800002224418094ebdc034b0d00202421042011417c6a410f4b0d010b200641003602a00320064201370398032006410a3602a4022006200641f0026a3602a002200620064198036a3602bc03200641013602d402200642013702c402200641909dc5003602c0022006200641a0026a3602d002200641bc036a419cebc000200641c0026a103d1a20062802980320062802a00310ef020240200628029c03450d00200628029803102e0b41002104200a21240b2008450d00200b102e0b024020062802b402450d002009102e0b0240200720044d0d0020064180036a2010200510cc05200628028803210b20062802800321094110102c2208450d052006421037029c032006200836029803200620073602c00220064198036a200641c0026a4104107420062023201e2021a7417f2020428080808080c0b2cd3b541b20224280cab5ee01566aad7c2220201e54ad7c221e3703c802200620203703c00220064198036a200641c0026a411010742009200b200628029803220720062802a00310b2010240200628029c03450d002007102e0b0240200628028403450d002009102e0b20064198036a200510ce050240024020062802a4030d00200642003703900320064280808080c000370388032006200f360284032006410036028003200520064180036a10d0050c010b20064180036a41106a2002290300370300201620064198036a41086a2903003703002006200629039803370380030b200c200629038003370200200c41086a22252016290300370200200c41106a222620064180036a41106a2227290300370200200641003a00ec02200620053602c4022006200f3602c002200620123602e802200620064190026a3602e402200620064180026a3602e002200641e8006a200641c0026a20102020201e10f40502400240024020062802684101470d00200628026c20062802c802460d010b20062d00ec0221070c010b2006200c200e108c0120062d00ec024100477222073a00ec0220064198036a2005108605200628029803220920062802a00310ff010240200628029c03450d002009102e0b20064198036a200510d105200628029803220920062802a00310ff010240200628029c03450d002009102e0b200510f30541ff017122094102460d002009410171450d00024010a00341ff0171417f6a0e03010001000b20064198036a41186a42003703002002420037030020064198036a41086a22094200370300200642003703980320064180036a4192fdc60041071081022009201629000037030020062006290080033703980320064180036a41b8b2c6004108108102200241086a2016290000370000200220062900800337000020064100360288032006420137038003200641013a00b00220064180036a200641b0026a4101107420064198036a4120200628028003220920062802880310b201200628028403450d002009102e0b0240200741ff0171450d00200641b0026a200c20062802c002108d01024020062802b0024101470d0020062802b402220720062802b80222084f0d0020062802c4022109034020064198036a41186a200941186a2900003703002002200941106a29000037030020064198036a41086a200941086a2900003703002006200929000037039803200620073602b80320064180036a20064198036a10cd05200628028003220b20062802880310ff01200741016a21070240200628028403450d00200b102e0b20082007470d000b0b20062802c402200c10d0050b024020062802d80241ffffffff0371450d0020062802d402102e0b42002120200642003703a802200642003703a0024100211102400240200541c8006a220928020022070d004108212841002129420021210c010b200641003602c00220064198036a20074104200741044b1bad42307e221ea7201e422088a745410374200641c0026a107d20062802a003210702402006280298034101470d002007450d060c070b200628029c032128200741306e21290240200928020022070d0042002120420021210c010b200541c0006a280200220a200741306c6a212a2004ad2123410021110340200642003703b802200642003703b002200641c0006a200a290300221e200a41086a2903002220428094ebdc03420010e608200641306a201e2020428094ebdc03420010e708200641206a2006290330221e200641306a41086a29030022202023420010e808200641106a201e2020201f420010e808200641c0026a2010200a41106a220b10cb05200641d0006a20062802c002220920062802c80210f8024200200641106a41086a2903002006290310222020062903402221201f7e221e428094ebdc0380a7417f201e428080808080c0b2cd3b541b201e428094ebdc03824280cab5ee01566aad7c221e202054ad7c2220200641206a41086a29030020062903202222202120237e2221428094ebdc0380a7417f2021428080808080c0b2cd3b541b2021428094ebdc03824280cab5ee01566aad7c2221202254ad7c7d201e202154ad7d2222201e20217d2221201e56202220205620222020511b22071b21204200202120071b211e200641d0006a41106a29030021212006290358212220062802502107024020062802c402450d002009102e0b20064198036a2010200b10cb0520062802a0032108200628029803210920062022420020071b2222201e7c221e3703c00220062021420020071b20207c201e202254ad7c22203703c80220092008200641c0026a411010b2010240200628029c03450d002009102e0b20064198036a200b10ce050240024020062802a4030d00200642003703900320064280808080c000370388032006200f360284032006410036028003200b20064180036a10d0050c010b20272002290300370300201620064198036a41086a2903003703002006200629039803370380030b200c2006290380033702002025201629030037020020262027290300370200200641003a00ec022006200b3602c4022006200f3602c002200620123602e8022006200641b0026a3602e4022006200641a0026a3602e002200641086a200641c0026a2010201e202010f4050240024020062802084101470d00200628020c20062802c802470d002006200c200e108c0120062d00ec024100477222073a00ec020c010b20062d00ec0221070b0240200741ff0171450d00200641f0026a200c20062802c002108d01024020062802f0024101470d0020062802f402220720062802f80222044f0d0020062802c4022109034020064198036a41186a200941186a2900003703002002200941106a29000037030020064198036a41086a200941086a2900003703002006200929000037039803200620073602b80320064180036a20064198036a10cd05200628028003220820062802880310ff01200741016a21070240200628028403450d002008102e0b20042007470d000b0b20062802c402200c10d0050b024020062802d80241ffffffff0371450d0020062802d402102e0b200b41086a290000211e200b29000021202013200b41186a2900003703002014200b41106a290000370300200c201e370300200620203703c0022015290300211e20062903b0022120024020112029470d00202941016a22072029490d07202941017422092007200920074b1b22074104200741044b1bad42307e2221422088a74541037421072021a721090240024020290d0020064100360298030c010b200641083602a00320062028360298032006202941306c36029c030b20064180036a2009200720064198036a107d200628028803210702402006280280034101470d0020070d090c080b2006280284032128200741306e21290b200c2903002121201429030021222013290300212b20062903c002212c2028201141306c6a220720203703202007202c370300200741286a201e370300200741186a202b370300200741106a2022370300200741086a2021370300201141016a2111200a41306a220a202a470d000b200641a0026a41086a290300212120062903a00221200b200641e0016a41086a2207200541086a290300370300200641e0016a41106a2209200541106a290300370300200641e0016a41186a220b200541186a290300370300200620052903003703e00120280d020b2024210a0b200d42808c8d9e027c210d201d21080c010b20064180026a41086a2903002122200629038002211f201c2903002123200629039002212b200641c0026a200541d0006a10c80120062802c802210820062802c402210420062802c002210a20064198036a41186a2227200b2903003703002002200929030037030020064198036a41086a220b2007290300370300200620062903e00137039803200641b0026a4192fdc600410710810220064180036a41d0b3c60041101081022006200e36028002200620064180026a410410a301370390022006201b3602cc022006201c3602c402200620064180026a3602c802200620064190026a3602c002200641a0026a200641c0026a107c20062802a802220941206a2207417f4c0d010240024020070d00410121050c010b2007102c2205450d030b20064100360298022006200736029402200620053602900220064190026a200641b0026a4110107420064190026a20064180036a4110107420064190026a20062802a002220720091074024020062802a402450d002007102e0b200641c0026a20062802900220062802980210f5050240024020062802c00222050d00410021094200211e41082105410021070c010b20062902c402221e422088a72109201ea721070b2013202729030037030020142002290300370300200c200b29030037030020062006290398033703c0020240024020092007470d00201ea7201e422088a72209470d00200941016a22072009490d032009410174220b20072007200b491b22074104200741044b1bad42d8007e221e422088a7454103742107201ea7210b0240024020090d0020064100360280030c010b200641083602880320062005360280032006200941d8006c360284030b200641b0026a200b200720064180036a107d20062802b802210720062802b0024101460d0120062802b4022105200741d8006ead211e0b2011ad42c097e8b2017e200d7c212c2005200941d8006c220b6a2207201f20207c2220370310200720233703082007202b3703002007200a36022c20072028360220200741186a202220217c2020201f54ad7c370300200741346a2008360200200741306a2004360200200741286a2011360200200741246a2029360200200720062903c002370338200741c0006a200c290300370300200741c8006a2014290300370300200741d0006a20132903003703002006201e42ffffffff0f83200941016a2209ad422086843702c402200620053602c002200628029802210720062802900221080240024020050d002008200710ff010c010b201ea7210420062007360284032006200836028003200641c0026a20064180036a10b10102402009450d00200541306a2107200b41d8006a210903400240200741746a280200220b450d00200b41306c450d00200741706a280200102e0b0240200728020041ffffff3f71450d002007417c6a280200102e0b200741d8006a2107200941a87f6a22090d000b0b2004450d00200441d8006c450d002005102e0b202c42c097e8b2017c211e0240200628029402450d002008102e0b201e42c0b2cd3b7c210d201d21082024210a0c010b0b20070d010b1038000b1036000b024020062802c40241ffffffff0171450d002011102e0b42c0d1e123210d0b2000200d37030820004200370300200641c0036a24000b18002001ad4220862000ad842003ad4220862002ad8410000bbe0304037f017e027f017e230041f0006b22012400200141186a22024200370300200141106a22034200370300200141086a42003703002001420037030020014192fdc6004107108102200141d8006a41d0adc60041091081022002200141d8006a41086a290000370300200320012900583703002001412036022420012001360220200141286a2001412010ed0202400240200128022822020d00420221040c010b200128022c210502400240200141286a41086a28020022064104490d002002280000210320064104460d0042002104024020022d00040e020200010b2006417b6a4108490d0020022900052107420121040c010b20014100360240200142013703382001410a36024c2001200141206a3602482001200141386a360254200141ec006a41013602002001420137025c200141909dc5003602582001200141c8006a360268200141d4006a419cebc000200141d8006a103d1a2001280238200128024010ef020240200128023c450d002001280238102e0b420221040b2005450d002002102e0b0240024020044202520d00200042023703000c010b2000200737030820002004370300200041106a20033602000b200141f0006a24000b850201037f230041d0006b22022400200241086a4192fdc6004107108102200241186a4198aec6004115108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000b850201037f230041d0006b22022400200241086a4192fdc6004107108102200241186a4188b2c600410e108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000b850201037f230041d0006b22022400200241086a4192fdc6004107108102200241186a418cb1c6004113108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000ba00304067f027e017f027e230041d0006b22012400200141386a22024200370300200141206a41106a22034200370300200141206a41086a2204420037030020014200370320200141c0006a41f8fcc60041081081022004200141c0006a41086a220529000037030020012001290040370320200141c0006a41a8aac800410d1081022002200529000037030020032001290040370300200141086a200141206a412010f802024020012903104200200128020822061b220720002903007c22082007542209200141086a41106a290300420020061b220a200041086a2903007c2009ad7c220b200a54200b200a511b4101470d00427f210820002007427f853703002000200a427f85370308427f210b0b20024200370300200342003703002004420037030020014200370320200141c0006a41f8fcc60041081081022004200529000037030020012001290040370320200141c0006a41a8aac800410d108102200341086a2005290000370000200320012900403700002001200b37034820012008370340200141206a4120200141c0006a411010b201200141d0006a24000bcc1202067f017e230041f0056b2202240041002103200241003a00a8052001280204417f6a2104024002400240024002400240024002400240024002400240024003402004417f460d0120024188056a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00a8052004417f6a21042005210320054120470d000b200241b0056a41086a220320024188056a41086a290300370300200241b0056a41106a220620024188056a41106a290300370300200241b0056a41186a220720024188056a41186a29030037030020022002290388053703b005200541ff0171411f4d0d0120024188036a41086a20032903002208370300200241c8016a41186a2007290300370300200241c8016a41106a2006290300370300200241c8016a41086a2008370300200220022903b005220837038803200220083703c80141002103200241003a00a80503402004417f460d0320024188056a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00a8052004417f6a21042005210320054120470d000b200241b0056a41086a220320024188056a41086a290300370300200241b0056a41106a220620024188056a41106a290300370300200241b0056a41186a220720024188056a41186a29030037030020022002290388053703b005200541ff0171411f4d0d0320024188036a41086a20032903002208370300200241e8016a41186a2007290300370300200241e8016a41106a2006290300370300200241e8016a41086a2008370300200220022903b005220837038803200220083703e80141002103200241003a00a80503402004417f460d0520024188056a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00a8052004417f6a21042005210320054120470d000b200241b0056a41086a220320024188056a41086a290300370300200241b0056a41106a220620024188056a41106a290300370300200241b0056a41186a220720024188056a41186a29030037030020022002290388053703b005200541ff0171411f4d0d0520024188036a41086a2003290300220837030020024188026a41186a200729030037030020024188026a41106a200629030037030020024188026a41086a2008370300200220022903b005220837038803200220083703880241002103200241003a00a80503402004417f460d0720024188056a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00a8052004417f6a21042005210320054120470d000b200241b0056a41086a220320024188056a41086a290300370300200241b0056a41106a220620024188056a41106a290300370300200241b0056a41186a220720024188056a41186a29030037030020022002290388053703b005200541ff0171411f4d0d0720024188036a41086a20032903002208370300200241a8026a41186a2007290300370300200241a8026a41106a2006290300370300200241a8026a41086a2008370300200220022903b005220837038803200220083703a80241002103200241003a00a80503402004417f460d0920024188056a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00a8052004417f6a21042005210320054120470d000b200241b0056a41086a220320024188056a41086a290300370300200241b0056a41106a220620024188056a41106a290300370300200241b0056a41186a220720024188056a41186a29030037030020022002290388053703b005200541ff0171411f4d0d0920024188036a41086a20032903002208370300200241c8026a41186a2007290300370300200241c8026a41106a2006290300370300200241c8026a41086a2008370300200220022903b005220837038803200220083703c80241002103200241003a00a80503402004417f460d0b20024188056a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00a8052004417f6a21042005210320054120470d000b200241b0056a41086a220420024188056a41086a290300370300200241b0056a41106a220120024188056a41106a290300370300200241b0056a41186a220320024188056a41186a29030037030020022002290388053703b005200541ff0171411f4d0d0b20024188036a41086a20042903002208370300200241e8026a41186a22042003290300370300200241e8026a41106a22032001290300370300200241e8026a41086a22012008370300200220022903b005220837038803200220083703e802200241086a41186a200241c8016a41186a290300370300200241086a41106a200241c8016a41106a290300370300200241086a41086a200241c8016a41086a290300370300200220022903c801370308200241c0006a200241e8016a41186a290300370300200241386a200241e8016a41106a290300370300200241306a200241e8016a41086a290300370300200220022903e801370328200241e0006a20024188026a41186a290300370300200241d8006a20024188026a41106a290300370300200241d0006a20024188026a41086a290300370300200220022903880237034820024180016a200241a8026a41186a290300370300200241f8006a200241a8026a41106a290300370300200241f0006a200241a8026a41086a290300370300200220022903a802370368200241a0016a200241c8026a41186a29030037030020024198016a200241c8026a41106a29030037030020024190016a200241c8026a41086a290300370300200220022903c80237038801200241c0016a2004290300370300200241b8016a2003290300370300200241b0016a2001290300370300200220022903e8023703a801200041016a200241086a41c00110e9081a200041003a00000c0c0b200341ff0171450d00200241003a00a8050b200041013a00000c0a0b200341ff0171450d00200241003a00a8050b200041013a00000c080b200341ff0171450d00200241003a00a8050b200041013a00000c060b200341ff0171450d00200241003a00a8050b200041013a00000c040b200341ff0171450d00200241003a00a8050b200041013a00000c020b200341ff0171450d00200241003a00a8050b200041013a00000b200241f0056a24000bac0101047f230041106b2202240002400240200128020822034105744104722204417f4c0d00200128020021012004102c2205450d0120024100360208200220043602042002200536020020032002107602402003450d002003410574210303402002200141201074200141206a2101200341606a22030d000b0b2000412020022802002201200228020810b20102402002280204450d002001102e0b200241106a24000f0b1038000b1036000bb30201027f230041e0006b220224002002412036020c20022001360208200241106a2001412010ed0202400240200228021022010d00200041003602000c010b200228021421032002200241106a41086a28020036022420022001360220200241c8006a200241206a10e7010240024020022802480d0020024100360230200242013703282002410a36023c2002200241086a3602382002200241286a360244200241dc006a41013602002002420137024c200241909dc5003602482002200241386a360258200241c4006a419cebc000200241c8006a103d1a2002280228200228023010ef020240200228022c450d002002280228102e0b200041003602000c010b20002002290348370200200041086a200241c8006a41086a2802003602000b2003450d002001102e0b200241e0006a24000b961c03017f017e167f23004180026b22012400200141206a109403200129032021022001420037032020014100200128023041016a20024202511b2203360230200141b0016a22044200370300200141a8016a2205420037030020014198016a41086a220642003703002001420037039801200141f8006a4192fdc60041071081022006200141f8006a41086a22072900003703002001200129007837039801200141f8006a41d0adc6004109108102200420072900003703002005200129007837030020014100360280012001420137037820012003360258200141f8006a200141d8006a41041074200141003a0058200141f8006a200141d8006a4101107420014198016a41202001280278220420012802800110b2010240200128027c450d002004102e0b200141106a10f10502400240024002400240024002402001280218220420012802142208470d00200441016a22062004490d04200441017422072006200720064b1b22064104200641044b1b220641ffffffff01712006464102742107200641037421060240024020040d0020014100360298010c010b200141a0016a410436020020012001280210360298012001200441037436029c010b200141206a2006200720014198016a107d200141286a280200210620012802204101460d01200120012802243602102001200641037622083602140b2001280210220920044103746a22062000360204200620033602002001200441016a220a3602182003411d490d024100210b200a450d01200341646a2100200441ffffffff017141016a21064100210b2009210402400340200428020020004f0d01200441086a21042006200b41016a220b470d000b2006210b0b200a200b4f0d01200b200a41b4b3c000104d000b2006450d020c040b200141003602180240200b4103742207450d00200141f4016a41046a210c200141f8016a41086a210d20092100034020002802002106200141f8006a4192fdc6004107108102200141206a41fd9fc5004113108102200120063602f4012001200141f4016a410410a3013703f8012001200c3602a4012001200d36029c012001200141f4016a3602a0012001200141f8016a36029801200141d8006a20014198016a107c2001280260220e41206a2204417f4c0d030240024020040d004101210f0c010b2004102c220f450d060b200141003602a0012001200436029c012001200f3602980120014198016a200141f8006a4110107420014198016a200141206a4110107420014198016a20012802582204200e10740240200128025c450d002004102e0b200128029801220420012802a0011089030240200128029c01450d002004102e0b200141f8006a4192fdc6004107108102200141206a4190a0c5004113108102200120063602f4012001200141f4016a410410a3013703f8012001200c3602a4012001200d36029c012001200141f4016a3602a0012001200141f8016a36029801200141d8006a20014198016a107c2001280260220641206a2204417f4c0d030240024020040d004101210e0c010b2004102c220e450d060b200141003602a0012001200436029c012001200e3602980120014198016a200141f8006a4110107420014198016a200141206a4110107420014198016a20012802582204200610740240200128025c450d002004102e0b200128029801220420012802a0011089030240200128029c01450d002004102e0b200041086a2100200741786a22070d000b0b0240200a200b6b220a0d004100210a0c010b0240200b450d0020092009200b4103746a200a41037410ea081a0b2001200a3602182009280204210c200141b0016a22044200370300200141a8016a2207420037030020014198016a41086a220042003703002001420037039801200141f8006a41a081ca0041071081022000200141f8006a41086a2900003703002001200129007837039801200141206a41bfadc000410b1081022004200141206a41086a29000037030020072001290020370300200141206a20014198016a4120109d032001290224210241002104024020012802204101470d0002402002422088a7220d200c200c200d4b1b22062002a722044f0d00410121040c010b0240200620044d0d00034020014198016a200410a403200128029801220020012802a00110ff01200441016a21040240200128029c01450d002000102e0b20062004470d000b0b200c200d4921042002428080808070832006ad8421020b2001200237025c20012004360258024020040d00200141b0016a4200370300200141a8016a420037030020014198016a41086a220442003703002001420037039801200141f8006a41a081ca0041071081022004200141f8006a41086a2900003703002001200129007837039801200141206a41bfadc000410b108102200741086a200141206a41086a2900003700002007200129002037000020014198016a412010ff010c010b200141b0016a4200370300200141a8016a420037030020014198016a41086a220442003703002001420037039801200141f8006a41a081ca0041071081022004200141f8006a41086a2900003703002001200129007837039801200141206a41bfadc000410b108102200741086a200141206a41086a2900003700002007200129002037000020014198016a4120200141d8006a410472109e030b200141b0016a4200370300200141a8016a420037030020014198016a41086a220442003703002001420037039801200141f8006a4192fdc60041071081022004200141f8006a41086a22002900003703002001200129007837039801200141f8006a41a8b4c600410a108102200541086a200029000037000020052001290078370000200a4103744104722204417f4c0d002004102c2200450d02200141003602282001200436022420012000360220200a200141206a10760240200a450d002009200a4103746a210020092104034020012004280200360278200141206a200141f8006a410410742001200441046a280200360278200141206a200141f8006a41041074200441086a22042000470d000b0b20014198016a412020012802202204200128022810b20102402001280224450d002004102e0b0240200841ffffffff0171450d002009102e0b200141b0016a4200370300200141a8016a420037030020014198016a41086a220442003703002001420037039801200141f8006a4192fdc60041071081022004200141f8006a41086a22002900003703002001200129007837039801200141f8006a41e8b6c6004116108102200541086a200029000037000020052001290078370000200141086a20014198016a4120108e02200128020c2110024020012802084101460d00410021040c020b024020104100200341656a2204200420034b1b22114f0d0020014198016a41246a210020014198016a41286a210f201021120340200141206a201210f90520014198016a200128022022042001280228220610f5050240024020012802980122130d0042002102410821130c010b2004200610ff01200129029c0121020b02402001280224450d002004102e0b20132002422088a7220441d8006c6a21070240024020040d00201321040c010b201321040340200141f8006a41186a220b200441186a290300370300200141f8006a41106a220a200441106a290300370300200141f8006a41086a2203200441086a29030037030020012004290300370378200441206a280200210620014198016a41086a220c2004412c6a29020037030020014198016a41106a220d200441346a29020037030020014198016a41186a220e2004413c6a29020037030020014198016a41206a2209200441c4006a290200370300200f200441cc006a29020037030020014198016a41306a2208200441d4006a2802003602002001200441246a29020037039801024020060d00200441d8006a21040c020b200141d8006a41186a2214200b290300370300200141d8006a41106a220b200a290300370300200141d8006a41086a220a2003290300370300200141206a41086a2203200c290300370300200141206a41106a2215200d290300370300200141206a41186a2216200e290300370300200141206a41206a22172009290300370300200141206a41286a2209200f290300370300200141206a41306a22182008280200360200200120012903783703582001200129039801370320200e2014290300370300200d200b290300370300200c200a29030037030020002001290320370200200041086a2003290300370200200041106a2015290300370200200041186a2016290300370200200041206a2017290300370200200041286a2009290300370200200041306a20182802003602002001200129035837039801200120063602b80120014198016a10fa05200441d8006a22042007470d000b200721040b2002a7210c024020072004460d0003400240200441246a2802002206450d00200641306c450d00200441206a280200102e0b200441d8006a21060240200441306a28020041ffffff3f71450d002004412c6a280200102e0b2006210420072006470d000b0b201241016a21120240200c450d00200c41d8006c450d002013102e0b20122011470d000b0b20102011201020114b1b2110410121040c010b1038000b2001200436022020012010360224200141b0016a4200370300200141a8016a420037030020014198016a41086a220042003703002001420037039801200141f8006a4192fdc60041071081022000200141f8006a41086a22062900003703002001200129007837039801200141f8006a41e8b6c6004116108102200541086a2006290000370000200520012900783700000240024020040d0020014198016a412010ff010c010b2001201036027820014198016a4120200141f8006a410410b2010b20014180026a24000f0b1036000b8f0201027f230041d0006b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822010d00200041003602000c010b200328020c2102024002400240200341106a28020022044104490d002004417c714104470d010b4100210420034100360220200342013703182003410a36022c200320033602282003200341186a360234200341cc006a41013602002003420137023c200341909dc5003602382003200341286a360248200341346a419cebc000200341386a103d1a2003280218200328022010ef02200328021c450d012003280218102e0c010b20002001290000370204410121040b200020043602002002450d002001102e0b200341d0006a24000b7e01027f230041106b2203240002404108102c2204450d0020034208370204200320043602002003200228020036020c20032003410c6a410410742003200228020436020c20032003410c6a410410742000200120032802002202200328020810b20102402003280204450d002002102e0b200341106a24000f0b1036000bd67b070a7f027e127f027e0c7f097e057f230041f0056b2202240020024180046a22034200370300200241f8036a22044200370300200241e8036a41086a22054200370300200242003703e803200241d8016a4192fdc60041071081022005200241d8016a41086a2206290000370300200220022900d8013703e80320024198026a4194adc600410a108102200320024198026a41086a22072900003703002004200229009802370300200241c0016a200241e8036a4120108e0220022802c001210820022802c4012109200342003703002004420037030020054200370300200242003703e803200241d8016a4192fdc600410710810220052006290000370300200220022900d8013703e80320024198026a4194adc600410a108102200320072900003703002004200229009802370300410121052002200941016a410020081b220a36029802200241e8036a412020024198026a410410b201200241d8016a4192fdc600410710810220024198026a4198aec60041151081022002200a3602d0052002200241d0056a410410a3013703f802200241f4036a200241d0056a41046a3602002002200241f8026a41086a3602ec032002200241d0056a3602f0032002200241f8026a3602e803200241a8036a200241e8036a107c024020022802b003220641206a2203417f4c0d00024002402003450d002003102c2205450d010b200241003602f003200220033602ec03200220053602e803200241e8036a200241d8016a41101074200241e8036a20024198026a41101074200241e8036a20022802a803220320061074024020022802ac03450d002003102e0b20022802e803210320022802f003210520022001360298022003200520024198026a410410b201024020022802ec03450d002003102e0b200241e8036a41186a4200370300200241e8036a41106a4200370300200241e8036a41086a22034200370300200242003703e803200241d8016a4192fdc60041071081022003200241d8016a41086a290000370300200220022900d8013703e80320024198026a41e0a9c600410c108102200441086a20024198026a41086a2900003700002004200229009802370000200241b8016a200241e8036a4120108e020240200a20022802bc0141016a41d50020022802b8011b6b2205200a4b0d00200510f6050b200241f8026a41186a22054200370300200241f8026a41106a220b4200370300200241f8026a41086a22014200370300200242003703f802200241e8036a41a5fec600411a10810220012003290000370300200220022900e8033703f802200241e8036a4184c4c800410e10810220052003290000370300200b20022900e803370300200241e8036a200241f8026a10ab05024020022d00a40422034103460d00200241f8026a412010ff010b024002400240024002400240024020034103460d0020022802a0042105200229039804210c429896c78220210d0c010b200241e8036a4100200310e9054101210320022802e8034101460d01200241e8036a41106a2205280200210e200241f4036a2201280200210f200241e8036a41086a22032802002110200241e8036a4100200310ef0520022802e8034101460d02200528020021112001280200211220032802002113200241a0056a41186a22144200370300200241a0056a41106a22054200370300200241a0056a41086a22014200370300200242003703a005200241e8036a4192fdc600410710810220012003290000370300200220022900e8033703a005200241e8036a41b4aac600410e10810220142003290000370300200520022900e803370300200241b0016a200241a0056a4120108e0220022802b401211520022802b0012116200242003702dc030240200e450d002010200e41386c6a2117200241f8026a41086a2118200241a0056a41086a2119200241e8036a41086a211a410021072010210903402009290300210c2009290208210d201a200941106a290200370300200241e8036a41106a221b200941186a290200370300200241e8036a41186a221c200941206a2902003703002002200d3703e803024002402007450d0020022802d803211d0c010b41c003102c2207450d094100211d200741003b015e20074100360258200220073602dc03200241003602d8030b200941386a21090240024002400240024002400240024002400240024002400340200741e0006a211e20072f015e221f410574210841002101417f21054100210302400340024020082003470d00201f21050c020b200241e8036a200720036a41e0006a412010ec082206450d03200541016a2105200141086a2101200341206a21032006417f4a0d000b0b0240201d450d00201d417f6a211d200720054102746a41c0036a28020021070c010b0b200241c0056a41086a201a41086a290200220d3703002002201a29020022203703c00520022802ec03210820022802e803211d200229038004212120024198026a41086a2222200d37030020022020370398020240201f410a4b0d00200241d0056a41086a2206202229030037030020022002290398023703d005200541016a211b201f41016a210102402005201f4f221f0d00201e201b4105746a201e20054105746a20012005417f736a41057410ea081a0b201e20054105746a220320083600042003201d360000200320022903d005370008200341106a2006290300370000200320213700180240201f0d002007201b4103746a200720054103746a20012005417f736a41037410ea081a0b200720054103746a200c370300200720013b015e0c0b0b410021234104210302400240200541054f0d00200521010c010b4105210341052101024002402005417b6a0e020201000b200541796a210141012123410621030c010b41002101410121230b41c003102c221f450d14201f41003b015e201f4100360258201f20072f015e22242003417f736a22053b015e201e20034105746a2206280004212520062800002126200241d0056a41086a2227200641106a290000370300200220062900083703d0052005410c4f0d012024200341016a22286b2005470d02200720034103746a290300210d20062900182120201f41e0006a201e20284105746a200541057410e9081a201f200720284103746a200541037410e9082129200720033b015e201a2027290300370300200220022903d0053703e8032029200720231b22032f015e21052027202229030037030020022002290398023703d005200341e0006a2106200541016a211e0240200141016a222820054b22230d00200620284105746a200620014105746a201e2001417f736a41057410ea081a0b200620014105746a220520083600042005201d360000200520022903d005370008200541106a202729030037000020052021370018024020230d00200320284103746a200320014103746a201e2001417f736a41037410ea081a0b200320014103746a200c3703002003201e3b015e200241d8016a41086a2224201a290300220c370300200220022903e80322213703d801200241a8036a41086a2223200c370300200220213703a8030240024002402007280258221d0d00410021280c010b4100212820202121200d210c202921292025212a2026212b034020072f015c210720222023290300370300200220022903a80337039802201d2f015e221e410b490d024100210841042103024020074105490d0020072103024002402007417b6a0e020201000b200741796a210741012108410621030c010b4100210741012108410521030b41f003102c221f450d17201f41003b015e201f4100360258201f201d2f015e222c2003417f736a22053b015e201d41e0006a222d20034105746a22012800042125200128000021262027200141106a290000370300200220012900083703d0052005410c4f0d06202c200341016a22066b2005470d0720012900182120201d20034103746a290300210d201f41e0006a202d20064105746a200541057410e9081a201f201d20064103746a200541037410e9082105201d20033b015e201a2027290300370300200220022903d0053703e80320052f015e220141016a212c2001410c4f0d08201e20036b2203202c470d09202841016a2128200541c0036a201d20064102746a41c0036a200341027410e9081a4100210302400340200520034102746a41c0036a280200220620033b015c200620053602582003200320014922066a220320014b0d0120060d000b0b2024201a290300370300200220022903e8033703d8012005201d20081b22062f015e21012019200229039802370000201941086a20222903003700002002202a3602a4052002202b3602a005200220213703b805200641e0006a211e200141016a210802400240200741016a220320014b0d00201e20034105746a201e20074105746a221e2007417f7320086a222a41057410ea081a201e41186a2014290300370000201e41106a200241a0056a41106a290300370000201e41086a2019290300370000201e20022903a005370000200620034103746a200620074103746a202a41037410ea081a0c010b201e20074105746a221e20022903a005370000201e41186a2014290300370000201e41106a200241a0056a41106a290300370000201e41086a20192903003700000b200620074103746a200c370300200641c0036a211e0240200741026a222a200141026a22014f0d00201e202a4102746a201e20034102746a2003417f7320016a41027410ea081a0b201e20034102746a2029360200200620083b015e0240200320014f0d00200620074102746a41c4036a2103034020032802002201200741016a22073b015c20012006360258200341046a210320082007470d000b0b20232024290300370300200220022903d8013703a803201d210720202121201d2802582203211d200d210c200521292025212a2026212b20030d000b0b200241d8026a41086a2023290300220c370300200220022903a80322213703d80220182021370300201841086a200c370300200220253602fc02200220263602f802200220203703900320022802dc032205450d0820022802d803210141f003102c2203450d15200320053602c003200341003b015e20034100360258200541003b015c20052003360258200220033602dc032002200141016a3602d803201c200241f8026a41186a290300370300201b200241f8026a41106a290300370300201a2018290300370300200220022903f8023703e80320012028470d0920032f015e2205410b4f0d0a2003200541016a22063b015e200320054105746a220141e0006a20022903e803370000200141e8006a201a290300370000200141f0006a201b290300370000200141f8006a201c290300370000200320054103746a200d370300200341c0036a20064102746a201f360200201f20063b015c201f2003360258200220022802e00341016a3602e003200d1a20071a20281a201f1a20201a0c0c0b2019200229039802370000201941086a20222903003700002002202a3602a4052002202b3602a005200220213703b805201d41e0006a2103201e41016a210502402007201e4f0d00200320074105746a220141206a20012007417f7320056a41057410ea081a0b200320074105746a220320022903a005370000200341186a2014290300370000200341106a200241a0056a41106a290300370000200341086a2019290300370000200741016a2103201d20074103746a2101024002402007201e490d002001200c370300201d41c0036a2101201e41026a21060c010b201d20034103746a20012007417f7320056a41037410ea081a2001200c3703002007410274201d41c0036a22016a41086a200120034102746a2003417f73201e41026a22066a41027410ea081a0b2001200341027422076a2029360200201d20053b015e200320064f0d0a2007201d6a41c0036a210503402005280200220120033b015c2001201d360258200541046a21052006200341016a2203470d000c0b0b0b200720016a200c3703000c0a0b2005410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b2005410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b202c410c41f49cc700104d000b41f49bc7004128419c9cc7001039000b41e8aac700412b4194abc7001039000b41e899c700413041989ac7001039000b41a89ac700412041c89ac7001039000b200220022802e00341016a3602e0030b20092017460d0120022802dc0321070c000b0b200220113602b003200220123602ac03200220133602a8032002200e3602e0012002200f3602dc01200220103602d801200242003703e80320024198026a2015410020161b200241a8036a200241d8016a200241e8036a10fb020240024002402002280298024101470d00200229029c02220c422088a72101200241a4026a2802002107200ca721060c010b20024198026a41106a2222280200220f20024198026a41146a290200222e422088a72203412c6c6a212c20024198026a41086a2227290300212f200228029c0221120240024020030d00200f211d200f21090c010b200241e8036a410c6a211f200241e8036a410472211e20024198026a41186a212820024198026a41206a2125200f211d03402027201d2209410c6a2902003703002022200941146a222629020037030020282009411c6a22232902003703002025200941246a222429020037030020022009290204370398022009412c6a211d2009280200221b450d01201e200229039802370200201e41086a2027290300370200201e41106a2022290300370200201e41186a2028290300370200201e41206a20252903003702002002201b3602e80302400240200241d8036a201f10a20222030d00420021210c010b200329030021210b200241d0056a41086a2229201f41086a290200370300200241d0056a41106a222a201f41106a290200370300200241d0056a41186a222b201f41186a2902003703002002201f2902003703d00520022802ec0321190240024020022802f0032203450d00200341246c221c2101201b21030340200341206a2802002105200341086a290200210c200341106a290200210d20032902002120200241a0056a41186a2206200341186a290200370300200241a0056a41106a2207200d370300200241a0056a41086a2208200c370300200220203703a00502402005450d00200241d8016a41086a222d2008290300370300200241d8016a41106a22142007290300370300200241d8016a41186a220e2006290300370300200220022903a005220c3703f8022002200c3703d8012021428094ebdc0380210d2021428094ebdc038221204130102c221a450d0e200241a0016a200d42002005ad220c420010e808201a20022903d801370300201a41186a200e290300370300201a41106a2014290300370300201a41086a202d290300370300201a20022903a00122212020200c7e220c428094ebdc0380a7417f200c428080808080c0b2cd3b541b200c428094ebdc03824280cab5ee01566aad7c220c370320201a41286a200241a0016a41086a290300200c202154ad7c37030002400240024020014124470d00410121174101211c0c010b200341246a2110201b201c6a2201415c6a2111410121174101211c034020102103024002400340200341206a28020021052006200341186a2902003703002007200341106a2902003703002008200341086a290200370300200220032902003703a00502402005450d0020024190016a200d42002005ad220c420010e808200241f8026a41086a20082903002221370300200241f8026a41106a20072903002230370300200241f8026a41186a20062903002231370300200220022903a00522323703f802200e203137030020142030370300202d2021370300200220323703d8012020200c7e220c428094ebdc03802130200c428094ebdc03822131200229039001212120024190016a41086a2903002132201c2017470d03201741016a220520174f0d020c160b2001200341246a2203470d000c040b0b201741017422102005201020054b1b22054104200541044b1bad42307e2233422088a74541037421052033a721100240024020170d00200241003602a8030c010b200241083602b0032002201a3602a8032002201741306c3602ac030b200241a0056a20102005200241a8036a107d20022802a805210520022802a0054101460d0320022802a405211a200541306e21170b200341246a2110202d290300213320142903002134200e290300213520022903d8012136201a201c41306c6a220520212030a7417f200c428080808080c0b2cd3b541b20314280cab5ee01566aad7c220c37032020052036370300200541286a2032200c202154ad7c370300200541186a2035370300200541106a2034370300200541086a2033370300201c41016a211c20112003470d000b0b2019450d04201941246c450d04201b102e0c040b2005450d0f0c0e0b200341246a21032001415c6a22010d000b0b410021174108211a02402019450d00201941246c450d00201b102e0b4100211c0b200241d8016a41186a2203202b290300370300200241d8016a41106a2205202a290300370300200241d8016a41086a22012029290300370300200220022903d0053703d801200920173602042009201c3602082009201a360200200920022903d80137020c202620012903003702002023200529030037020020242003290300370200201d202c470d000b201d2109202c211d0b202f422088210c202c201d6b2203412c6d210502402003450d002005412c6c210303400240201d41046a2802002205450d00200541246c450d00201d280200102e0b201d412c6a211d200341546a22030d000b0b200ca72107202ea72108202fa7211d200f2009200f6b221f412c6d2209412c6c6a2106200f2103034020032006460d0202400240200241d8036a2003410c6a220310a20222050d004200210c0c010b2005290300210c0b20024188016a200341746a200c420010bf04200341206a21032002280288012201450d000b200228028c0121070240201f450d002009412c6c2105200f210303400240200341046a2802002206450d00200641306c450d002003280200102e0b2003412c6a2103200541546a22050d000b0b02402008450d002008412c6c450d00200f102e0b41032106201d450d00201d41306c450d002012102e0b200241d8036a10be022007ad2120410021030c050b200220123602f0032002201d3602ec03200220123602e80320022012200741306c6a3602f403200241d8016a200241e8036a10c201200241e8036a20022802d801220320022802e001200f200910b704410121060240024020022802e8034101470d00200241f4036a350200212020022902ec03210c0c010b20022802ec0321052002200241f0036a29030037029c022002200536029802200241e8036a10a90320022903f003210d200229039802210c20022903a0022120410021060b024020022802dc0141ffffff3f71450d002003102e0b0240201f450d002009412c6c2105200f210303400240200341046a2802002201450d00200141306c450d002003280200102e0b2003412c6a2103200541546a22050d000b0b02402008450d002008412c6c450d00200f102e0b200241d8036a10be0202402006450d00200c422088a72101200ca72106410021030c050b2020a72105410021030b200220033a00ed03200241013a00ec03200241173a00e803200241e8036a10fe0120024190036a420037030020024188036a4200370300200241f8026a41086a22034200370300200242003703f802200241e8036a41a5fec600411a1081022003200241e8036a41086a2201290000370300200220022900e8033703f802200241e8036a4180c3c8004105108102200b41086a2001290000370000200b20022900e80337000020024180016a200241f8026a4120108e0220022005ad3703d0012002200c3703c801200ca72126410021080c040b200241f0036a280200210120022802ec0321060c010b2003280200210120022802ec0321060240200e450d00200e41386c21052010412c6a210303400240200328020041ffffff3f71450d002003417c6a280200102e0b200341386a2103200541486a22050d000b0b41012103200f450d00200f41386c450d002010102e0b0b200241f4036a20203e020020022001ad4220862006ad843702ec03200220033602e803200241e8036a41086a2203290300210d20022903e803210c20024181063b01ec03200241173a00e803200241e8036a10fe0120024190036a420037030020024188036a4200370300200241f8026a41086a22054200370300200242003703f802200241e8036a41a5fec600411a10810220052003290000370300200220022900e8033703f802200241e8036a4180c3c8004105108102200b41086a2003290000370000200b20022900e803370000200241f8006a200241f8026a4120108e022002200d3703d0012002200c4220883e02cc012002200ca722263602c801410121080b20024190036a22014200370300200241f8026a41106a22064200370300200241f8026a41086a22034200370300200242003703f802200241e8036a41a5fec600411a1081022003200241e8036a41086a2205290000370300200220022900e8033703f802200241e8036a4180c3c8004105108102200b41086a22072005290000370000200b20022900e803370000200241f0006a200241f8026a4120108e02200228027021092002280274211d200142003703002006420037030020034200370300200242003703f802200241e8036a41a5fec600411a10810220032005290000370300200220022900e8033703f802200241e8036a4180c3c800410510810220072005290000370000200b20022900e8033700002002201d41016a410220091b3602e803200241f8026a4120200241e8036a410410b2014102200310ec04200142003703002006420037030020034200370300200242003703f802200241e8036a41a5fec600411a10810220032005290000370300200220022900e8033703f802200241e8036a41c8c4c800410810810220072005290000370000200b20022900e803370000200241f8026a412010ff01200142003703002006420037030020034200370300200242003703f802200241e8036a41a5fec600411a10810220032005290000370300200220022900e8033703f802200241e8036a41ccc5c800411010810220072005290000370000200b20022900e803370000200241f8026a412010ff01200142003703002006420037030020034200370300200242003703f802200241e8036a41a5fec600411a10810220032005290000370300200220022900e8033703f802200241e8036a4194c5c800410e10810220072005290000370000200b20022900e803370000200241f8026a412010ff010240024020080d002026450d0020022902cc012136200d410210f104200241b8056a22034200370300200241a0056a41106a22054200370300200241a0056a41086a22014200370300200242003703a005200241e8036a41f8fcc60041081081022001200241e8036a41086a2206290000370300200220022900e8033703a005200241e8036a41a8aac800410d10810220032006290000370300200520022900e803370300200241d8006a200241a0056a412010f8022036422088a7220641067422014106752203ad42d0007e220c422088a70d03200ca72205417f4c0d03200241d8006a41106a290300210c2002290360210d200228025821070240024020050d00410821180c010b2005102c2218450d030b0240024002400240200541d0006e223720034f0d00203741017422082003200820034b1b22084104200841044b1bad42d0007e2220422088a74541037421082020a7210902400240200541cf004b0d00200241003602e8030c010b200241e8036a41086a4108360200200220183602e8032002203741d0006c3602ec030b20024198026a20092008200241e8036a107d200241a0026a28020021052002280298024101460d01200228029c022118200541d0006e21370b20060d01410021172026211a0c020b2005450d050c040b202620016a2125200241c8006a200d200c427f420010e708200241c8006a41086a290300420020071b220c42002002290348420020071b220d420156200c420052200c501b22031b2130200d420120031b2131200641067441406a41067641016a2123200241e8036a41206a211b2018211e410021172026211a0240034020024198026a41286a2201201a220341286a29030037030020024198026a41206a2206200341206a29030037030020024198026a41186a2207200341186a29030037030020024198026a41106a2208200341106a29030037030020024198026a41086a2209200341086a2903003703002002200329030037039802200341c0006a211a200341306a2802002219450d01200341386a2802002105200341346a280200211c200241e8036a41286a2001290300370300201b2006290300370300200241e8036a41186a2007290300220c370300200241e8036a41106a2008290300220d370300200241e8036a41086a20092903002220370300200220022903980222213703e803200241a8036a41186a2222200c370300200241a8036a41106a2227200d370300200241a8036a41086a22282020370300200220213703a803200241d0056a41086a201b41086a2903003703002002201b2903003703d0052005ad42307e220c422088a70d06200ca72203417f4c0d060240024020030d004108211f0c010b2003102c221f450d060b200341306e21060240024020050d004200210d410021014200210c42002134420021330c010b200541306c21074200210d410021014200210c4200213442002133201921030340200341206a2903002120200341286a2903002121200241f8026a41186a200341186a2205290300370300200241f8026a41106a200341106a2208290300370300200241f8026a41086a200341086a2209290300370300200220032903003703f802200241186a202142002031420010e808200241286a203042002020420010e808200241386a202042002031420010e808200241d8016a41186a221d2005290000370300200241d8016a41106a220b2008290000370300200241d8016a41086a22082009290000370300200220032900003703d801427f200241386a41086a2903002220200229031820022903287c7c2232202142005220304200527120022903204200527220022903304200527220322020547222051b2120427f200229033820051b212102400240200241d8016a200241a8036a412010ec080d00427f203320207c203420217c22352034542205ad7c22322005203220335420322033511b22051b2133427f203520051b21340c010b200241a0056a41186a2209201d290300370300200241a0056a41106a221d200b290300370300200241a0056a41086a220b2008290300370300200220022903d8013703a005024020012006470d00200641016a22052006490d0a200641017422082005200820054b1b22054104200541044b1bad42307e2232422088a74541037421052032a721080240024020060d00200241003602d8020c010b200241083602e0022002201f3602d8022002200641306c3602dc020b200241c0056a20082005200241d8026a107d20022802c8052105024020022802c0054101470d002005450d0b0c0a0b20022802c405211f200541306e21060b201f200141306c6a2205202037030820052021370300200520022903a005370310200541186a200b290300370300200541206a201d290300370300200541286a2009290300370300200141016a21010b200341306a2103427f200c20207c200d20217c2220200d542205ad7c220d2005200d200c54200d200c511b22051b210c427f202020051b210d200741506a22070d000b0b0240201c450d00201c41306c450d002019102e0b200241d8016a41186a20222903002220370300200241d8016a41106a20272903002221370300200241d8016a41086a20282903002232370300200220022903a80322353703d801201e41386a2033370300201e41306a2034370300201e41286a200c370300201e200d370320201e41186a2020370300201e41106a2021370300201e41086a2032370300201e2035370300201e41c8006a2001360200201e41c4006a2006360200201e41c0006a201f360200201741016a2117201e41d0006a211e201a2025470d000b2025211a202321170b2025201a6b220141067521030b02402001450d0020034106742105201a41346a21030340024020032802002201450d00200141306c450d002003417c6a280200102e0b200341c0006a2103200541406a22050d000b0b0240203642ffffff1f83500d002026102e0b201741d0006c221d41d0006e213802400240201d0d00410121390c010b2038410574102c2239450d030b4100212b024020182018201d6a2209460d004100212b20392103201821050340200241a0056a41086a2201200541086a290300370300200241a0056a41106a2206200541106a290300370300200241a0056a41186a2207200541186a290300370300200220052903003703a005200241e8036a200541c0006a220510c501024020022802ec032208450d00200841306c450d0020022802e803102e0b200320022903a005370000200341186a2007290300370000200341106a2006290300370000200341086a2001290300370000202b41016a212b200341206a2103200541106a22052009470d000b0b4200213320024180046a4200370300200241e8036a41106a4200370300200241e8036a41086a22034200370300200242003703e803200241d8016a4192fdc60041071081022003200241d8016a41086a290000370300200220022900d8013703e80320024198026a41dcaac6004115108102200441086a20024198026a41086a2900003700002004200229009802370000200241106a200241e8036a4120108e02024002400240202b2002280214410020022802101b22034101200341014b1b490d002018201741d0006c6a210e024020170d002018212c420021320c020b200241a8036a41106a213a200241f8026a41106a213b2002419c036a210f200241e8036a41206a211442002133420021322018212c0340200241d8016a41386a2205202c220341386a290300370300200241d8016a41306a2201200341306a290300370300200241d8016a41286a2206200341286a290300370300200241d8016a41206a2207200341206a290300370300200241d8016a41186a2208200341186a290300370300200241d8016a41106a2209200341106a290300370300200241d8016a41086a221d200341086a2903003703002003290300210c200241c8016a41086a220b200341cc006a2802003602002002200c3703d8012002200341c4006a2902003703c801200341d0006a212c200341c0006a2802002203450d0220024198026a41386a200529030037030020024198026a41306a200129030037030020024198026a41286a200629030037030020024198026a41206a200729030037030020024198026a41186a221f200829030037030020024198026a41106a221e200929030037030020024198026a41086a221a201d290300370300200220022903d80137039802200241e8036a41386a2005290300370300200241e8036a41306a2001290300370300200241e8036a41286a200629030037030020142007290300370300200241e8036a41186a2008290300370300200241e8036a41106a2009290300370300200241e8036a41086a201d290300370300200220022903d8013703e803200241d8026a41186a201f290300370300200241d8026a41106a201e290300370300200241d8026a41086a201a29030037030020022002290398023703d802200241f8026a41186a2206201441186a290300370300200241f8026a41106a2207201441106a290300370300200241f8026a41086a2208201441086a290300223437030020022003360298032002201429030022353703f802200f20022903c801370200200f41086a200b280200360200200241d0056a200a200241d8026a10a10320022802d805210920022802d0052101200241003602b003200242013703a8032002200241f8026a3602a005200241a0056a200241a8036a10af012002203b3602a005200241a0056a200241a8036a10af01200228029803210320022802a0032205200241a8036a107602402005450d00200541306c21050340200241a8036a200341106a41201074200220033602a005200341306a2103200241a0056a200241a8036a10af01200541506a22050d000b0b2001200920022802a803220320022802b00310b201024020022802ac03450d002003102e0b024020022802d405450d002001102e0b200241d0056a41186a22112006290300370300200241d0056a41106a22122007290300370300200241d0056a41086a22132008290300370300200220022903f8023703d00520022802a4032115200228029c0321162002280298032127024020022802a0032226418102490d002026410176ad42307e220c422088a70d08200ca72210417f4c0d082010102c2223450d07202741506a2129202741f07e6a212d410021244104211a4100211f202621190340024002402019221d417f6a22010d0041012109410021190c010b02400240024002400240024002402027200141306c6a2203290300201d41306c222a20276a41a07f6a2205290300220d56200341086a2903002220200541086a290300220c562020200c511b0d00201d417e6a2108202d202a6a210341002119410021050340024020082005470d00201d21090c090b200d20032903002221582101200c200341086a2903002220512106200c2020582107200341506a2103200541016a21052021210d2020210c2001200720061b0d000b200541016a21092005417f73201d6a21010c010b202d202a6a210302400340024020014101470d00410021010c020b200d20032903002221562105200c200341086a2903002220512106200c2020562107200341506a21032001417f6a21012021210d2020210c2005200720061b0d000b0b201d2001490d01201d20264b0d02201d20016b22094101762206450d002029202a6a21032027200141306c6a21050340200241a8036a41186a2207200541186a2208290300370300200241a8036a41106a220b200541106a221e290300370300200241a8036a41086a221b200541086a221c290300370300200220052903003703a803200541206a2217290300210c200341286a2219290300210d200341086a22042903002120200341106a22222903002121200341186a22282903002130200329030021312017200341206a222529030037030020082030370300201e2021370300201c202037030020052031370300200541286a220829030021202008200d3703002022200b290300370300202820072903003703002004201b290300370300200320022903a803370300201920203703002025200c370300200341506a2103200541306a21052006417f6a22060d000b0b024020010d00200121190c060b0240200941094d0d00200121190c060b201d20264b0d03201d20016b21062027200141306c6a210b2029202a6a21220340201d2001417f6a2219490d050240201d20196b22094102490d002027200141306c6a22032903002027201941306c6a2208290300222058200341086a2205290300220d200841086a2201290300220c58200d200c511b0d00200241a0056a41186a221b200841286a2207290300370300200241a0056a41106a221c200841206a221e290300370300200241a0056a41086a2217200841186a2204290300370300200220082903103703a0052008200329030037030020012005290300370300200841106a200341106a2903003703002004200341186a290300370300201e200341206a2903003703002007200341286a29030037030041012105024020094103490d002006417f6a211e41002105200b210302400340200341306a2201290300202058200341386a2207290300220d200c58200d200c511b0d0120062005460d07200341286a200341d8006a290300370300200341206a200341d0006a290300370300200341186a200341c8006a290300370300200341106a200341c0006a290300370300200341086a20072903003703002003200129030037030020012103201e200541016a2205470d000b200541016a2105202221030c010b200541016a21050b200320203703002003200c3703082008200541306c6a220341286a201b290300370300200341206a201c290300370300200341186a2017290300370300200320022903a0053703100b2019450d06200641016a2106200b41506a210b201921012009410a4f0d060c000b0b2001201d41e4d1cc001057000b201d202641e4d1cc00104d000b200541016a200941d4d1cc00103c000b201d2001417f6a2219490d00201d202641f4d1cc00104d000b2019201d41f4d1cc001057000b0240201f2024470d00202441016a22032024490d0a202441017422052003200520034b1b22034104200341044b1b220341ffffffff01712003464102742105200341037421030240024020240d00200241003602a8030c010b200241043602b0032002201a3602a803200220244103743602ac030b200241a0056a20032005200241a8036a107d20022802a8052103024020022802a0054101470d002003450d0b0c0a0b20022802a405211a200341037621240b201a201f4103746a2203200936020420032019360200201f41016a2204211f024020044102490d0002400240024003400240024002400240201a2004221f417f6a22044103746a2203280200450d00201f410374201a6a220741746a2802002206200328020422054d0d00201f41024d0d08201a201f417d6a22034103746a2802042201200520066a4d0d01201f41034d0d08200741646a280200200120066a4b0d080c010b201f4103490d0120032802042105201a201f417d6a22034103746a28020421010b20012005490d010b201f417e6a21030b0240201f200341016a22224d0d00201f20034d0d02201a20034103746a221b2802042228201b2802006a2203201a20224103746a221c2802002217490d03200320264b0d04201b41046a21252027201741306c6a220b201c280204221e41306c22056a2106200341306c210102400240200320176b2208201e6b2203201e490d002023200b200510e908221d20056a210702400240201e4101480d002008201e4a0d010b200b2103201d21050c020b202720016a2109201d2105200b210303402003200620052006290300200529030056200641086a290300220c200541086a290300220d56200c200d511b22081b2201290300370300200341086a200141086a290300370300200341106a200141106a290300370300200341186a200141186a290300370300200341206a200141206a290300370300200341286a200141286a2903003703002005200541306a20081b2105200341306a2103200641306a200620081b220620094f0d02200720054b0d000c020b0b20232006200341306c220510e908221d20056a210702400240201e4101480d00200341014e0d010b20062103201d21050c010b202920016a21012006210303402001200341506a2206200741506a22082008290300200629030056200841086a290300220c200641086a290300220d56200c200d511b22091b2205290300370300200141086a200541086a290300370300200141106a200541106a290300370300200141186a200541186a290300370300200141206a200541206a290300370300200141286a200541286a2903003703002007200820091b21070240200b2006200320091b2203490d00201d21050c020b200141506a2101201d2105201d2007490d000b0b20032005200720056b220120014130706b10e9081a20252028201e6a360200201b2017360200201c201c41086a201f2022417f736a41037410ea081a4101211f200441014d0d050c010b0b2022201f4184d2cc00103c000b2003201f4194d2cc00103c000b2017200341a4d2cc001057000b2003202641a4d2cc00104d000b20190d000b0240202441ffffffff0171450d00201a102e0b20104130702103024020104130490d0020102003460d002023102e0b20264180022026418002491b21260b203220347c210c203320357c220d2033542206ad2120200241a8036a41186a2011290300370300200241a8036a41106a2012290300370300200241a8036a41086a2013290300370300200220022903d0053703a803200220153602d403200220263602d003200220163602cc03200220273602c803200241c0056a200a200241d8026a10f70520022802c805210720022802c0052101200241003602a805200242013703a0052002200241a8036a3602d803200241d8036a200241a0056a10af012002203a3602d803200241d8036a200241a0056a10af0120022802c803210320022802d0032205200241a0056a107602402005450d00200541306c21050340200241a0056a200341106a41201074200220033602d803200341306a2103200241d8036a200241a0056a10af01200541506a22050d000b0b200c20207c210c2001200720022802a005220320022802a80510b201024020022802a405450d002003102e0b200c2032512103200c2032542105024020022802c405450d002001102e0b2006200520031b2103024020022802cc032205450d00200541306c450d0020022802c803102e0b427f200c20031b2132427f200d20031b2133202c200e470d000c030b0b0240201d450d002039102e0b02402017450d00201741d0006c2105201841c4006a21030340024020032802002201450d00200141306c450d002003417c6a280200102e0b200341d0006a2103200541b07f6a22050d000b0b2037450d02203741d0006c450d022018102e0c020b200e202c460d000340202c220341d0006a212c0240200341c4006a2802002205450d00200541306c450d00200341c0006a280200102e0b200e202c470d000b0b02402037450d00203741d0006c450d002018102e0b20024198026a200a10960320022802a00221052002280298022103200220323703f003200220333703e80320032005200241e8036a411010b2010240200228029c02450d002003102e0b0240202b450d00202b4105742106203921030340200241e8036a2003108605200241086a20022802e803220720022802f0031087054100200228020820022d000c22054102461b210120054101712105024020022802ec03450d002007102e0b200220053a00dc01200220013602d80120024198026a200a200310f80520022802a00221072002280298022101200241003602f003200242013703e803200241d8016a200241e8036a109102200220053a00a803200241e8036a200241a8036a410110742001200720022802e803220520022802f00310b201024020022802ec03450d002005102e0b0240200228029c02450d002001102e0b200341206a2103200641606a22060d000b0b200241f0036a41043a0000200241043a00e803200241e8036a10fe012039450d002000202bad4220862038ad84370204200020393602000c010b200041003602000b200241f0056a24000f0b1036000b1038000b810301047f230041f0006b22002400200041186a22014200370300200041106a22024200370300200041086a42003703002000420037030020004192fdc6004107108102200041d8006a41b8b2c60041081081022001200041d8006a41086a290000370300200220002900583703002000412036022420002000360220200041286a2000412010ed0241042101024020002802282202450d00200028022c210302400240200041286a41086a280200450d004100210102400240024020022d00000e0404000102030b410121010c030b410221010c020b410321010c010b20004100360240200042013703382000410a36024c2000200041206a3602482000200041386a360254200041ec006a41013602002000420137025c200041909dc5003602582000200041c8006a360268200041d4006a419cebc000200041d8006a103d1a2000280238200028024010ef020240200028023c450d002000280238102e0b410421010b2003450d002002102e0b200041f0006a24004100200120014104461b0bae0301037f230041f0006b22032400200341086a4192fdc6004107108102200341186a41b29dc500410b108102200320013602382003200341386a410410a301370348200341ec006a2201200341386a41046a3602002003200341c8006a41086a3602642003200341386a3602682003200341c8006a360260200341286a200341e0006a107c024002404120102c2204450d002003422037024c20032004360248200341c8006a2002412010742003200328024822022003280250220410a3013703582001200220046a360200200320023602682003200341d8006a41086a3602642003200341d8006a360260200341386a200341e0006a107c0240200328024c450d002002102e0b20032802302201200328024022046a41206a2202417f4c0d010240024020020d00410121050c010b2002102c2205450d010b2000410036020820002002360204200020053602002000200341086a411010742000200341186a4110107420002003280228220220011074200020032802382201200410740240200328023c450d002001102e0b0240200328022c450d002002102e0b200341f0006a24000f0b1036000b1038000bfb0201017f230041f0006b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822010d00200041003602200c010b200328020c21022003200341086a41086a28020036024c20032001360248200341186a200341c8006a1085050240024020032802380d0020034100360258200342013703502003410a360264200320033602602003200341d0006a36026c2003412c6a41013602002003420137021c200341909dc5003602182003200341e0006a360228200341ec006a419cebc000200341186a103d1a2003280250200328025810ef0202402003280254450d002003280250102e0b200041003602200c010b20002003290318370300200041286a200341186a41286a290300370300200041206a200341186a41206a290300370300200041186a200341186a41186a290300370300200041106a200341186a41106a290300370300200041086a200341186a41086a2903003703000b2002450d002001102e0b200341f0006a24000b921c030a7f037e137f230041800a6b22022400200241d8006a10ab02200241b8016a41186a22034200370300200241b8016a41106a22044200370300200241b8016a41086a22054200370300200242003703b801200241e0066a41aad3c800410110b0012003200241e0066a41186a22062900003703002004200241e0066a41106a22072900003703002005200241e0066a41086a2208290000370300200220022900e0063703b801200241e0066a41aad3c800410110b001200241b8086a41186a22092006290000370300200241b8086a41106a220a2007290000370300200241b8086a41086a220b2008290000370300200220022900e0063703b80802400240024002404120102c2203450d002008200b2903003703002007200a29030037030020062009290300370300410041003502e8f54c200241a0056aad7c42adfed5e4d485fda8d8007e422189220c3e02e8f54c200241c8006a41e8f5cc00ad220d42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010e808200241286a200c42a4bb99fed1a0bbb02385420042adfed5e4d485fda8d800420010e808200241386a200d42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d800420010e808200241186a200c42c5ecb3fec9ecf7c2c30085420042adfed5e4d485fda8d800420010e808200241086a200c200d85420042adfed5e4d485fda8d800420010e8082002418c026a420037020020024194026a4200370200200220022903b8083703e0062002410436028802200241d8016a41d0006a41d081ca00360200200241d8016a41c8006a4108360200200241d8016a41c4006a20033602002002200241b8016a3602ac022002200241d8006a3602a402200241013a00b002200241c9026a2006290300370000200241c1026a2007290300370000200241b9026a2008290300370000200241b1026a20022903e006370000200241d3026a200241a2056a2d00003a0000200241d1026a20022f00a0053b0000200241d8016a41286a4200370300200241d8016a41246a41d0a1c000360200200241003602d402200241003602f8012002200241186a41086a290300200229031885200d7c200241086a41086a29030020022903088542cf829ebbefefde82147c220e423088893703f0012002200c200241386a41086a2903002002290338857c200e422088893703e8012002200241286a41086a290300200229032885200d7c200e421088893703e0012002200c200241c8006a41086a2903002002290348857c200e893703d8012001280200220f2001280208221041d0006c6a2111200241e0066a41306a2112200241e0066a41206a2113200241b8086a41246a2104200241f8026a41046a2105200241e0066a41046a2103200241e0066a410172211420012802042115200f2116410021170340201621012017211802400240034002400240024020112001470d00200241e0066a41386a200241a0056a41386a290300370300200241e0066a41306a200241a0056a41306a290300370300200241e0066a41286a200241a0056a41286a290300370300200241e0066a41206a200241a0056a41206a290300370300200241e0066a41186a200241a0056a41186a290300370300200241e0066a41106a200241a0056a41106a290300370300200241e0066a41086a200241a0056a41086a290300370300200220022903a0053703e006201121010c010b200241a0056a41386a200141386a2219290300370300200241a0056a41306a200141306a221a290300370300200241a0056a41286a200141286a221b290300370300200241a0056a41206a200141206a221c290300370300200241a0056a41186a200141186a2216290300370300200241a0056a41106a200141106a2217290300370300200241a0056a41086a200141086a221d290300370300200220012903003703a005200141c0006a280200211e200141c4006a280200211f200141c8006a290200210c200241e0066a41386a222020192903003703002012201a290300370300200241e0066a41286a2219201b2903003703002013201c29030037030020062016290300370300200720172903003703002008201d290300370300200220012903003703e006201e0d01200141d0006a21010b024020112001460d0003402001220341d0006a21010240200341c4006a2802002204450d00200441306c450d00200341c0006a280200102e0b20112001470d000b0b02402015450d00201541d0006c450d00200f102e0b200241d8016a109b08200241e0066a200241d8006a41e00010e9081a200241d8076a200241d0016a290300370300200241d0076a200241c8016a290300370300200241c8076a200241b8016a41086a290300370300200220022903b8013703c007200041086a200241e0066a41800110e9081a200041003602000c080b200241e0036a41386a221a2020290300370300200241e0036a41306a221b2012290300370300200241e0036a41286a221c2019290300370300200241e0036a41206a22192013290300370300200241e0036a41186a22162006290300370300200241e0036a41106a22172007290300370300200241e0036a41086a221d2008290300370300200220022903e0063703e003200341386a201a290300370200200341306a201b290300370200200341286a201c290300370200200341206a2019290300370200200341186a2016290300370200200341106a2017290300370200200341086a201d290300370200200320022903e003370200200241b8086a200241e0066a41c40010e9081a200241f8026a41086a200b290200370300200241f8026a41106a200a290200370300200241f8026a41186a2009290200370300200241f8026a41206a200241b8086a41206a280200360200200241d8026a41086a2219200441086a290200370300200241d8026a41106a221a200441106a290200370300200241d8026a41186a221b200441186a290200370300200220022902b8083703f802200220042902003703d802200241a0036a41186a221c200541186a290000370300200241a0036a41106a2216200541106a290000370300200241a0036a41086a2217200541086a290000370300200220052900003703a003200241c0036a41186a221d201b290300370300200241c0036a41106a2220201a290300370300200241c0036a41086a22212019290300370300200220022903d8023703c003200241a8086a200241a0036a10a603200241e0066a20022802a808221b20022802b00810a70320022d00e006211a200241b8086a201441c00110e9081a410021190240201a4101470d00200241a0056a200241b8086a41c00110e9081a410121190b024020022802ac08450d00201b102e0b024002402019450d00200241e0036a200241a0056a41c00110e9081a2006201c2903003703002007201629030037030020082017290300370300201320022903c003370300201341086a2021290300370300201341106a2020290300370300201341186a201d290300370300200220022903a0033703e0062002200c3703a8072002201f3602a4072002201e3602a007201841016a2117200141d0006a21164100211903402002200241e0036a20194198fac6006a221a28000010d1032002280204221e41046a221f417f4c0d022002280200211b02400240201f0d004101211c0c010b201f102c221c450d080b200241003602a8052002201f3602a4052002201c3602a005200241a0056a201a41041074201e200241a0056a1076200241a0056a201b201e107420022802a805211e20022802a005211f200220183602a808200241b8086a200241d8016a201f201e200241a8086a4104109c08024020022802a405450d00201f102e0b20022802bc08211f024020022802b8084101470d0002400240201f2d00000e0407070007010b201f41086a280200450d06201f41046a280200102e0c060b201f41286a280200450d05201f41246a280200102e0c050b0240201f450d0020022802c008450d00201f102e0b201941046a22194118460d050c000b0b0240201f450d00201f41306c450d00201e102e0b200141d0006a2101201841016a21180c010b0b1038000b201f102e200041086a411a360200200041f881ca00360204200041013602000c040b200220183602fc09200241003602a805200242013703a005200241a0056a200241e0066a41201074200220133602a808200241a8086a200241a0056a10af01200220123602a808200241a8086a200241a0056a10af0120022802a007211f20022802a8072218200241a0056a107602402018450d00201841306c21180340200241a0056a201f41106a412010742002201f3602a808201f41306a211f200241a8086a200241a0056a10af01201841506a22180d000b0b200241b8086a200241d8016a200241fc096a410420022802a005221f20022802a805109c08024020022802a405450d00201f102e0b024020022802b8084101470d000240024020022802bc0822032d00000e0405050005010b200341086a280200450d04200341046a280200102e0c040b200341286a280200450d03200341246a280200102e0c030b024020022802bc082201450d0020022802c008450d002001102e0b20022802a4072201450d00200141306c450d0020022802a007102e0c000b0b1036000b2003102e200041086a411a360200200041f881ca00360204200041013602000b201141b07f6a2103024020022802a4072204450d00200441306c450d0020022802a007102e0b024020032001460d00201041d0006c200f6a41b07f6a21040340024020014194016a2802002203450d00200341306c450d0020014190016a280200102e0b2004200141d0006a2201470d000b0b02402015450d00201541d0006c450d00200f102e0b200241d8016a109b08200241d8006a10b8020b200241800a6a24000b850201037f230041d0006b22022400200241086a41a081ca004107108102200241186a41a781ca004112108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000bdf0902087f047e230041b0016b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041003602000c010b200341186a280200210220032802142104200341003a0060024002402002450d00200320012d00003a0040200341013a0060024020024101460d00200320012d00013a0041200341023a006020024102460d00200320012d00023a0042200341033a006020024103460d00200320012d00033a0043200341043a006020024104460d00200320012d00043a0044200341053a006020024105460d00200320012d00053a0045200341063a006020024106460d00200320012d00063a0046200341073a006020024107460d00200320012d00073a0047200341083a006020024108460d00200320012d00083a0048200341093a006020024109460d00200320012d00093a00492003410a3a00602002410a460d00200320012d000a3a004a2003410b3a00602002410b460d00200320012d000b3a004b2003410c3a00602002410c460d00200320012d000c3a004c2003410d3a00602002410d460d00200320012d000d3a004d2003410e3a00602002410e460d00200320012d000e3a004e2003410f3a00602002410f460d00200320012d000f3a004f200341103a006020024110460d00200320012d00103a0050200341113a006020024111460d00200320012d00113a0051200341123a006020024112460d00200320012d00123a0052200341133a006020024113460d00200320012d00133a0053200341143a006020024114460d00200320012d00143a0054200341153a006020024115460d00200320012d00153a0055200341163a006020024116460d00200320012d00163a0056200341173a006020024117460d00200320012d00173a0057200341183a006020024118460d00200320012d00183a0058200341193a006020024119460d00200320012d00193a00592003411a3a00602002411a460d00200320012d001a3a005a2003411b3a00602002411b460d00200320012d001b3a005b2003411c3a00602002411c460d00200320012d001c3a005c2003411d3a00602002411d460d00200320012d001d3a005d2003411e3a00602002411e460d00200320012d001e3a005e2003411f3a00602002411f460d00200341206a41106a2205200341c0006a41106a2206290300370300200341206a41086a2207200341c0006a41086a2208290300370300200320012d001f3a005f200341206a41186a2209200341c0006a41186a220a290300370300200341203a006020032003290340220b3703682003200b3703202002417c714120460d0120082007290300220b37030020062005290300220c370300200a2009290300220d37030020032003290320220e370340200128002021022000411c6a200d370200200041146a200c3702002000410c6a200b3702002000200e370204200041246a2002360200410121020c020b200341003a00600b4100210220034100360270200342013703682003410a3602242003200341086a3602202003200341e8006a3602ac01200341d4006a410136020020034201370244200341909dc5003602402003200341206a360250200341ac016a419cebc000200341c0006a103d1a2003280268200328027010ef02200328026c450d002003280268102e0b200020023602002004450d002001102e0b200341b0016a24000bb40201037f230041e0006b22022400200241086a41a081ca004107108102200241186a41b4d3c1004108108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241c8006a41086a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000bcb0201027f230041c0036b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041003a00000c010b200328021421042003200341186a2802003602ac03200320013602a803200341e0016a200341a8036a109903410121020240024020032d00e0014101470d004100210220034100360228200342013703202003410a3602b4032003200341086a3602b0032003200341206a3602bc03200341f4016a4101360200200342013702e401200341909dc5003602e0012003200341b0036a3602f001200341bc036a419cebc000200341e0016a103d1a2003280220200328022810ef022003280224450d012003280220102e0c010b200341206a200341e0016a41017241c00110e9081a200041016a200341206a41c00110e9081a0b200020023a00002004450d002001102e0b200341c0036a24000b986905087f017e097f027e017f230041d0026b2205240002404108102c2206450d0020062001200241e0016c6a2207360204200620013602004108102c2208450d0020082003200441e0016c6a22093602042008200336020002400240024002400240024002402000450d00200541c0016a210a0c010b200541d8016a220b4200370300200541d0016a22044200370300200541c0016a41086a22024200370300200542003703c001200541a8026a41a0dac800410f1081022002200541a8026a41086a220c290000370300200520052900a8023703c001200541a8026a41a0eec8004107108102200b200c290000370300200420052900a802370300200541c0016a210a200541c0016a4120108f02450d010b200541a8026a200610a9070240024020052802a802450d00200541c0016a41106a200541a8026a41106a290300370300200541c0016a41086a200541a8026a41086a290300370300200541c0016a41186a200541a8026a41186a290300370300200541c0016a41206a200541a8026a41206a280200360200200541a0016a41086a200541cc016a290200370300200541a0016a41106a200541d4016a290200370300200541a0016a41186a200541dc016a290200370300200520052903a8023703c001200520052902c4013703a001200541c0016a200610aa07417f20052802c001220441016a220220022004491bad42287e220d422088a70d06200da72204417f4c0d062004102c220e450d07200e20052903a001370300200e4201370320200e41186a200541a0016a41186a220f290300370300200e41106a200541a0016a41106a2210290300370300200e41086a200541a0016a41086a2211290300370300200541a8026a200610a907200441286e2112024020052802a8020d00410121022006102e0c020b200541c0016a410472210b4128210c410221134101210202400340200541c0016a41206a200541a8026a41206a280200360200200541c0016a41186a2214200541a8026a41186a290300370300200541c0016a41106a2215200541a8026a41106a290300370300200541c0016a41086a2216200541a8026a41086a290300370300200520052903a8023703c0012011200b41086a2902003703002010200b41106a290200370300200f200b41186a2902003703002005200b2902003703a0012014200f2903003703002015201029030037030020162011290300370300200520052903a0013703c001024020022012470d00200541a8026a200610aa072002417f20052802a802220441016a221220122004491b6a22042002490d0920132004201320044b1b22044104200441044b1bad42287e220d422088a7454103742104200da721120240024020020d00200541003602a8020c010b200541083602b0022005200c3602ac022005200e3602a8020b20054180016a20122004200541a8026a107d20052802880121042005280280014101460d02200528028401210e200441286e21120b200e200c6a220420052903c001370300200441186a2014290300370300200441106a2015290300370300200441086a2016290300370300200441206a4201370300200541a8026a200610a907200c41286a210c201341026a2113200241016a210220052802a8020d000b2006102e0c020b2004450d060c070b2006102e4108210e41002102410021120b200541d8016a220b4200370300200541d0016a22044200370300200541c0016a41086a4200370300200542003703c001200541a8026a41a0dac800410f108102200a41086a200541a8026a41086a220c290000370000200a20052900a802370000200541a8026a41a0eec8004107108102200b200c290000370300200420052900a802370300200541a8026a200a4120109d0320052802a8024101460d01200520023602c801200520123602c4012005200e3602c001200541a0016a200541c0016a41004100200510ab070c020b200b42003703002004420037030020024200370300200542003703c001200541a8026a41a0dac800410f1081022002200c290000370300200520052900a8023703c001200541a8026a41e0eec800410c108102200441086a200c290000370000200420052900a802370000200541d0006a200541c0016a1085032005290358210d20052802502113200b42003703002004420037030020024200370300200542003703c001200541a8026a41a081ca0041071081022002200c290000370300200520052900a8023703c001200541e0006a41e4d1c100410c108102200b200541e0006a41086a29000037030020042005290060370300200541c8006a200541c0016a4120108e02200528024c21022005280248210b200541c0016a200d420020131b10ac0720052802c801210c20052802c0012104200520024100200b1b3602a8022004200c200541a8026a410410b201024020052802c401450d002004102e0b2008102e2006102e0c020b200a412010ff0120052902ac02210d200520023602c801200520123602c4012005200e3602c001200541a0016a200541c0016a200da74101200d422088a710ab070b20052d00a0012114200541d8016a220b4200370300200541d0016a220c4200370300200541c0016a41086a22134200370300200542003703c001200541a8026a41a0dac800410f108102200a41086a2215200541a8026a41086a2202290000370000200a20052900a802370000200541a8026a41e0eec800410c108102200441086a22162002290000370000200420052900a802370000200541386a200a1085032005290340420020052802381b210d024020144106470d00200b4200370300200c420037030020134200370300200542003703c001200541a8026a41a0dac800410f10810220152002290000370000200a20052900a802370000200541a8026a41e0eec800410c10810220162002290000370000200420052900a8023700002005200d42017c220d3703a802200a4120200541a8026a410810b2010b200b4200370300200c420037030020134200370300200542003703c001200541a8026a41a081ca00410710810220132002290000370300200520052900a8023703c001200541e0006a41e4d1c100410c108102200b200541e0006a41086a290000370300200c2005290060370300200541306a200541c0016a4120108e02200528023421022005280230210b200541c0016a200d10ac0720052802c801210c20052802c0012104200520024100200b1b3602a8022004200c200541a8026a410410b201024020052802c401450d002004102e0b2008102e0b4108102c2211450d0120112007360204201120013602004108102c2208450d012008200936020420082003360200200541a8026a201110ad070240024020052802a802450d00200541c0016a41106a200541a8026a41106a290300370300200541c0016a41086a200541a8026a41086a290300370300200541c0016a41186a200541a8026a41186a290300370300200541c0016a41206a200541a8026a41206a280200360200200541a0016a41086a200541cc016a290200370300200541a0016a41106a200541d4016a290200370300200541a0016a41186a200541dc016a290200370300200520052903a8023703c001200520052902c4013703a001200541c0016a201110aa07417f20052802c001220441016a220220022004491bad42287e220d422088a70d02200da72204417f4c0d022004102c2210450d03201020052903a00137030020104201370320201041186a200541a0016a41186a220e290300370300201041106a200541a0016a41106a2206290300370300201041086a200541a0016a41086a220f290300370300200541a8026a201110ad07200441286e2102024020052802a8020d004101210c2011102e0c020b200541c0016a410472210441c80021134101210c02400340200541c0016a41206a200541a8026a41206a280200360200200541c0016a41186a2214200541a8026a41186a290300370300200541c0016a41106a2215200541a8026a41106a290300370300200541c0016a41086a2216200541a8026a41086a290300370300200520052903a8023703c001200f200441086a2902003703002006200441106a290200370300200e200441186a290200370300200520042902003703a0012014200e290300370300201520062903003703002016200f290300370300200520052903a0013703c0010240200c2002470d00200541a8026a201110aa072002417f20052802a802220b41016a22122012200b491b6a220b2002490d0520024101742212200b2012200b4b1b220b4104200b41044b1bad42287e220d422088a745410374210b200da721120240024020020d00200541003602a8020c010b200541083602b002200520103602a8022005200241286c3602ac020b20054180016a2012200b200541a8026a107d20052802880121022005280280014101460d022005280284012110200241286e21020b201020136a221241606a220b20052903c0013703002016290300210d201529030021172014290300211820124201370300200b41186a2018370300200b41106a2017370300200b41086a200d370300200541a8026a201110ad07201341286a2113200c41016a210c20052802a8020d000b2011102e0c020b20020d030c020b2011102e410821104100210c410021020b200541a8026a200810ad070240024020052802a802450d00200541c0016a41106a200541a8026a41106a290300370300200541c0016a41086a200541a8026a41086a290300370300200541c0016a41186a200541a8026a41186a290300370300200541c0016a41206a200541a8026a41206a280200360200200541a0016a41086a200541cc016a290200370300200541a0016a41106a200541d4016a290200370300200541a0016a41186a200541dc016a290200370300200520052903a8023703c001200520052902c4013703a001200541c0016a200810aa07417f20052802c001220441016a220b200b2004491bad42287e220d422088a70d02200da72204417f4c0d022004102c220f450d03200f20052903a001370300200f4201370320200f41186a200541a0016a41186a2211290300370300200f41106a200541a0016a41106a2212290300370300200f41086a200541a0016a41086a220a290300370300200541a8026a200810ad07200441286e2114024020052802a8020d00410121152008102e0c020b200541c0016a410472210441c80021134101211502400340200541c0016a41206a200541a8026a41206a280200360200200541c0016a41186a2216200541a8026a41186a290300370300200541c0016a41106a220e200541a8026a41106a290300370300200541c0016a41086a2206200541a8026a41086a290300370300200520052903a8023703c001200a200441086a2902003703002012200441106a2902003703002011200441186a290200370300200520042902003703a00120162011290300370300200e20122903003703002006200a290300370300200520052903a0013703c001024020152014470d00200541a8026a200810aa072014417f20052802a802220b41016a22192019200b491b6a220b2014490d0520144101742219200b2019200b4b1b220b4104200b41044b1bad42287e220d422088a745410374210b200da721190240024020140d00200541003602a8020c010b200541083602b0022005200f3602a8022005201441286c3602ac020b20054180016a2019200b200541a8026a107d200528028801210b2005280280014101460d02200528028401210f200b41286e21140b200f20136a221941606a220b20052903c0013703002006290300210d200e29030021172016290300211820194201370300200b41186a2018370300200b41106a2017370300200b41086a200d370300200541a8026a200810ad07201341286a2113201541016a211520052802a8020d000b2008102e0c020b200b0d030c020b2008102e410021144108210f410021150b200541f8006a22134200370300200541f0006a220e4200370300200541e0006a41086a2204420037030020054200370360200541a8026a41a8f8c60041041081022004200541a8026a41086a220b290000370300200520052900a802370360200541a8026a41fa8bc500410a1081022013200b290000370300200e20052900a802370300200541206a200541e0006a10850302402005290328420020052802201b221742017c220d2017540d0020134200370300200e42003703002004420037030020054200370360200541a8026a41a8f8c60041041081022004200b290000370300200520052900a802370360200541a8026a41fa8bc500410a108102200e41086a2216200b290000370000200e20052900a8023700002005200d3703c001200541e0006a4120200541c0016a410810b20120134200370300200e42003703002004420037030020054200370360200541a8026a41a8f8c60041041081022004200b290000370300200520052900a802370360200541a8026a41a58bc500410b1081022016200b290000370000200e20052900a802370000200c41286c4104722204417f4c0d012004102c220b450d02200541003602c801200520043602c4012005200b3602c001200c200541c0016a10760240200c41286c2204450d00201020046a210b201021040340200541c0016a2004412010742005200441206a2903003703a802200541c0016a200541a8026a41081074200441286a2204200b470d000b0b200541e0006a412020052802c001220420052802c80110b201024020052802c401450d002004102e0b02402002450d00200241286c450d002010102e0b0240200d42017c2217200d540d00200541a0016a41186a22044200370300200541a0016a41106a22064200370300200541a0016a41086a22024200370300200542003703a001200541a8026a41a8f8c60041041081022002200541a8026a41086a220b290000370300200520052900a8023703a001200541a8026a41978bc500410e1081022004200b290000370300200620052900a802370300200541c0016a200541a0016a10a30420052d00c0012104200541e0006a41186a2202200541d9016a290000370300200541e0006a41106a220b200541d1016a290000370300200541e0006a41086a220c200541c9016a290000370300200520052900c1013703600240024020044101460d0020054180016a41186a420037030020054180016a41106a420037030020054180016a41086a420037030020054200370380010c010b20054180016a41186a200229030037030020054180016a41106a200b29030037030020054180016a41086a200c29030037030020052005290360370380010b200541e0006a41186a220b4200370300200541e0006a41106a220c4200370300200541e0006a41086a2202420037030020054200370360200541a8026a41a8f8c60041041081022002200541a8026a41086a2204290000370300200520052900a802370360200541a8026a41ee8bc500410c108102200e41086a22132004290000370000200e20052900a802370000200541186a200541e0006a4120108e02200528021c211620052802182110200b4200370300200c42003703002002420037030020054200370360200541a8026a41a8f8c600410410810220022004290000370300200520052900a802370360200541a8026a41ee8bc500410c10810220132004290000370000200e20052900a802370000200541003602c001200541e0006a4120200541c0016a410410b201200541a8026a41186a20054180016a41186a290300370300200541a8026a41106a20054180016a41106a290300370300200420054180016a41086a29030037030020052005290380013703a802417f2016410020101b221041016a220420042010491b410d744128722204417f4c0d022004102c220b450d0341002102200541003602f801200520043602f4012005200b3602f001200541f0016a200541a8026a41201074200520173703c001200541f0016a200541c0016a4108107441002104034020022010200220104b1b21160240034002402004450d00200b200c470d02201341ffffff3f71450d002004102e0b024020162002460d0020054188026a200210db06200541e0006a200528028802220b200528029002220c10b60502400240200528026022040d004200210d410121040c010b200b200c10ff012005290264210d0b0240200528028c02450d00200b102e0b200241016a21022004200d422088a74105746a210c200da721132004210b0c010b0b200541c0016a20052802f001220420052802f80110b001024020052802f401450d002004102e0b200541f8006a4200370300200541f0006a4200370300200541e0006a41086a2204420037030020054200370360200541a8026a41a8f8c60041041081022004200541a8026a41086a2202290000370300200520052900a802370360200541a8026a41978bc500410e108102200e41086a2002290000370000200e20052900a8023700004120102c2204450d05200542203702ac02200520043602a802200541a8026a200541c0016a41201074200541e0006a412020052802a802220420052802b00210b201024020052802ac02450d002004102e0b200541a0016a41186a20054180016a41186a290300370300200541a0016a41106a20054180016a41106a290300370300200541a0016a41086a20054180016a41086a29030037030020052005290380013703a001200541e0006a41186a4200370300200541e0006a41106a4200370300200541e0006a41086a2204420037030020054200370360200541a8026a41a8f8c60041041081022004200541a8026a41086a2202290000370300200520052900a802370360200541a8026a41c28cc500410a108102200e41086a2002290000370000200e20052900a8023700004120102c2204450d05200542203702c401200520043602c001200541c0016a200541a0016a41201074200541e0006a412020052802c001220420052802c80110b201024020052802c401450d002004102e0b200541f8006a4200370300200541f0006a4200370300200541e0006a41086a2204420037030020054200370360200541a8026a41a8f8c60041041081022004200541a8026a41086a2202290000370300200520052900a802370360200541a8026a41ba8bc500410f108102200e41086a2002290000370000200e20052900a802370000201541286c4104722204417f4c0d042004102c2202450d05200541003602c801200520043602c401200520023602c0012015200541c0016a10760240201541286c2204450d00200f20046a2102200f21040340200541c0016a2004412010742005200441206a2903003703a802200541c0016a200541a8026a41081074200441286a22042002470d000b0b200541e0006a412020052802c001220420052802c80110b201024020052802c401450d002004102e0b200541a0016a41186a220c4200370300200541a0016a41106a22134200370300200541a0016a41086a22044200370300200542003703a001200541a8026a41a8f8c60041041081022004200541a8026a41086a2202290000370300200520052900a8023703a001200541e0006a41b08bc500410a108102200641086a2216200541e0006a41086a220b29000037000020062005290060370000200541c0016a200541a0016a4120109d03200541c0016a41086a2212280200210a20052802c0012108200541e0006a41186a22104200370300200541e0006a41106a22114200370300200b420037030020054200370360200541a8026a41d9fcc6004106108102200b2002290000370300200520052900a802370360200541a8026a4180f4cb004106108102200e41086a2002290000370000200e20052900a802370000200541106a200541e0006a4120108e0220122005280214410020052802101b360200200541013602c0012005200a410020084101461b3602c401200c42003703002013420037030020044200370300200542003703a001200541a8026a41a8f8c600410410810220042002290000370300200520052900a8023703a001200541e0006a41b08bc500410a1081022016200b29000037000020062005290060370000200541a0016a4120200541c0016a410472109e03200c42003703002013420037030020044200370300200542003703a001200541a8026a41a8f8c600410410810220042002290000370300200520052900a8023703a001200541a8026a41978bc500410e10810220162002290000370000200620052900a802370000200541c0016a200541a0016a10a30420052d00c00121022010200541d9016a2900003703002011200541d1016a290000370300200b200541c9016a290000370300200520052900c1013703600240024020024101460d00200c42003703002013420037030020044200370300200542003703a0010c010b200c2010290300370300201320112903003703002004200b290300370300200520052903603703a0010b200541c0016a410c6a2015360200200541c0016a41086a2014360200200541c0016a41106a20052903a001370300200541c0016a41186a200541a0016a41086a290300370300200541e0016a200541a0016a41106a290300370300200541c0016a41286a200541a0016a41186a2903003703002005200f3602c401200541003602c001200541a8026a200541c0016a10a404200541eb006a200541a8026a41086a2204280200360000200520052903a802370063200541a8026a410c6a200541e7006a290000370000200541c28289aa043600a902200541023a00a802200520052900603700ad02200541a8026a10a50402402014450d00201441286c450d00200f102e0b200541e0006a41186a4200370300200541e0006a41106a4200370300200541e0006a41086a2202420037030020054200370360200541a8026a41a8f8c600410410810220022004290000370300200520052900a802370360200541a8026a41d48bc500410f108102200e41086a2004290000370000200e20052900a802370000200541c0016a200541e0006a10b005024020052d00d00122044103460d0020052903c001210d20052903c8012117200541f8006a4200370300200541f0006a4200370300200541e0006a41086a2202420037030020054200370360200541a8026a41a8f8c60041041081022002200541a8026a41086a220b290000370300200520052900a802370360200541a8026a418c8bc500410b108102200e41086a200b290000370000200e20052900a802370000200541e0006a200d2017200410c2050b200541e0006a41186a4200370300200541f0006a4200370300200541e0006a41086a2204420037030020054200370360200541a8026a41a8f8c60041041081022004200541a8026a41086a2202290000370300200520052900a802370360200541a8026a41aa8cc5004118108102200e41086a2002290000370000200e20052900a80237000020054120360284022005200541e0006a3602800220054188026a200541e0006a412010ed020240024020052802880222020d00410321040c010b200528028c02210b200520054188026a41086a28020036029c022005200236029802200541c0016a20054198026a1095020240024020052d00d00122044103470d00200541003602b002200542013703a8022005410a3602f401200520054180026a3602f0012005200541a8026a3602a402200541d4016a4101360200200542013702c401200541909dc5003602c0012005200541f0016a3602d001200541a4026a419cebc000200541c0016a103d1a20052802a80220052802b00210ef02024020052802ac02450d0020052802a802102e0b0c010b200520052800d1013602a8022005200541d4016a2800003600ab0220052903c801210d20052903c00121170b0240200b450d002002102e0b024020044103470d00410321040c010b200541e0006a412010ff010b200520052800ab0236008b02200520052802a80236028802024020044103460d00200541e0006a41186a4200370300200541e0006a41106a4200370300200541e0006a41086a220b420037030020054200370360200541a8026a41a8f8c6004104108102200b200541a8026a41086a2202290000370300200520052900a802370360200541a8026a41d48bc500410f108102200e41086a2002290000370000200e20052900a802370000200541e0006a2017200d200410c205200541c0016a41186a20043a0000200541c0016a41106a200d370300200541c0016a41086a2017370300200541dc016a200528008b0236000020052005280288023600d901200541023602c001200541a8026a200541c0016a10a404200541e0006a41036a220441086a2002280200360000200420052903a802370000200541b4026a200541e7006a290000370000200541c28289aa043600a902200541023a00a802200520052900603700ad02200541a8026a10a5040b4108102c2206450d0520062007360204200620013602004108102c2212450d052012200936020420122003360200200541c0016a41186a22044200370300200541c0016a41106a22114200370300200541c0016a41086a22024200370300200542003703c001200541a8026a41d9fcc60041061081022002200541a8026a41086a220b290000370300200520052900a8023703c001200541e0006a4180f4cb0041061081022004200541e0006a41086a221429000037030020112005290060370300200541086a200541c0016a4120108e022005280208210c200528020c2113200442003703002011420037030020024200370300200542003703c001200541a8026a41bed8c80041081081022002200b290000370300200520052900a8023703c001200541a8026a41dbdac800410e1081022004200b290000370300201120052900a8023703002005201341b0096a41b009200c1b3602a802200541c0016a4120200541a8026a410410b201200541a8026a200610ae070240024020052802a802450d002011200541a8026a41106a2903003703002002200b2903003703002004200541a8026a41186a290300370300200541c0016a41206a200541a8026a41206a2802003602002014200541cc016a290200370300200541e0006a41106a200541d4016a290200370300200541e0006a41186a200541dc016a290200370300200520052903a8023703c001200520052902c401370360200541c0016a200610aa07417f20052802c001220441016a220220022004491b220441ffffff3f712004470d0620044105742204417f4c0d062004102c220e450d07200541e0006a41086a290300210d200541e0006a41106a290300211720052903602118200e41186a200541e0006a41186a290300370000200e41106a2017370000200e41086a200d370000200e2018370000200541a8026a200610ae072004410576210b024020052802a8020d004101210c2006102e0c020b200541c0016a4104722104412021134101210c02400340200541c0016a41206a200541a8026a41206a280200360200200541c0016a41186a2214200541a8026a41186a290300370300200541c0016a41106a2215200541a8026a41106a290300370300200541c0016a41086a2216200541a8026a41086a290300370300200520052903a8023703c001200541a0016a41086a2202200441086a290000370300200541a0016a41106a220f200441106a290000370300200541a0016a41186a2210200441186a290000370300200520042900003703a001201420102903003703002015200f29030037030020162002290300370300200520052903a0013703c0010240200c200b470d00200541a8026a200610aa07200b417f20052802a802220241016a220f200f2002491b6a2202200b490d09200b410174220f2002200f20024b1b22024104200241044b1b220241ffffff3f71200246210f2002410574210202400240200b0d00200541003602a8020c010b200541013602b0022005200e3602a8022005200b4105743602ac020b20054180016a2002200f200541a8026a107d20052802880121022005280280014101460d02200528028401210e2002410576210b0b200e20136a220220052903c001370000200241186a2014290300370000200241106a2015290300370000200241086a2016290300370000200541a8026a200610ae07201341206a2113200c41016a210c20052802a8020d000b2006102e0c020b20020d070c060b2006102e4101210e4100210c4100210b0b200541d8016a4200370300200541d0016a4200370300200541c0016a41086a22044200370300200542003703c001200541a8026a41bed8c80041081081022004200541a8026a41086a2202290000370300200520052900a8023703c001200541a8026a41e9d8c8004104108102201141086a2002290000370000201120052900a802370000200c4105744104722204417f4c0d042004102c2202450d05200541003602b002200520043602ac02200520023602a802200c200541a8026a10760240200c450d00200c4105742102200e21040340200541a8026a200441201074200441206a2104200241606a22020d000b0b200541c0016a412020052802a802220420052802b00210b201024020052802ac02450d002004102e0b0240200b41ffffff3f71450d00200e102e0b2012102e4108102c2204450d0520042007360204200420013602004108102c2202450d0520022009360204200220033602002002102e2004102e4108102c2204450d0520042007360204200420013602004108102c2202450d0520022009360204200220033602002002102e2004102e4108102c220e450d05200e2007360204200e20013602004108102c2206450d052006200936020420062003360200024002402000450d00200541a8026a200e10af070240024020052802a802450d00200541c0016a41106a200541a8026a41106a290300370300200541c0016a41086a200541a8026a41086a290300370300200541c0016a41186a200541a8026a41186a290300370300200541c0016a41206a200541a8026a41206a280200360200200541e0006a41086a200541cc016a290200370300200541e0006a41106a200541d4016a290200370300200541e0006a41186a200541dc016a290200370300200520052903a8023703c001200520052902c401370360200541c0016a200e10aa07417f20052802c001220441016a220220022004491b220441ffffff3f712004470d0820044105742204417f4c0d082004102c220f450d09200541e0006a41086a290300210d200541e0006a41106a290300211720052903602118200f41186a200541e0006a41186a290300370000200f41106a2017370000200f41086a200d370000200f2018370000200541a8026a200e10af072004410576211202400240024020052802a8020d00410121040c010b200541c0016a41047221024120210c41022113410121040340200541c0016a41206a200541a8026a41206a280200360200200541c0016a41186a2214200541a8026a41186a290300370300200541c0016a41106a2215200541a8026a41106a290300370300200541c0016a41086a2216200541a8026a41086a290300370300200520052903a8023703c001200541a0016a41086a220b200241086a290000370300200541a0016a41106a2210200241106a290000370300200541a0016a41186a2211200241186a290000370300200520022900003703a00120142011290300370300201520102903003703002016200b290300370300200520052903a0013703c001024020042012470d00200541a8026a200e10aa072004417f20052802a802220b41016a22102010200b491b6a220b2004490d0c2013200b2013200b4b1b220b4104200b41044b1b220b41ffffff3f71200b462110200b410574210b0240024020040d00200541003602a8020c010b200541013602b0022005200c3602ac022005200f3602a8020b20054180016a200b2010200541a8026a107d200528028801210b2005280280014101460d03200528028401210f200b41057621120b200f200c6a220b20052903c001370000200b41186a2014290300370000200b41106a2015290300370000200b41086a2016290300370000200541a8026a200e10af07200c41206a210c201341026a2113200441016a210420052802a8020d000b0b200e102e200520043602c801200520123602c4012005200f3602c0010c020b200b0d090c080b41002112200541003602c801200542013703c001200e102e4101210f0b200541c0026a22044200370300200541b8026a220a4200370300200541a8026a41086a4200370300200542003703a802200541a8026a41b2fdc6004112108102200541e0006a41e9d8c80041041081022004200541e0006a41086a290000370300200a2005290060370300200541a8026a200541c0016a10c1050240201241ffffff3f71450d00200f102e0b200541a8026a200610af070240024020052802a802450d00200541c0016a41106a200541a8026a41106a290300370300200541c0016a41086a200541a8026a41086a290300370300200541c0016a41186a200541a8026a41186a290300370300200541c0016a41206a200541a8026a41206a280200360200200541e0006a41086a200541cc016a290200370300200541e0006a41106a200541d4016a290200370300200541e0006a41186a200541dc016a290200370300200520052903a8023703c001200520052902c401370360200541c0016a200610aa07417f20052802c001220441016a220220022004491b220441ffffff3f712004470d0820044105742204417f4c0d082004102c220e450d09200541e0006a41086a290300210d200541e0006a41106a290300211720052903602118200e41186a200541e0006a41186a290300370000200e41106a2017370000200e41086a200d370000200e2018370000200541a8026a200610af072004410576211102400240024020052802a8020d00410121040c010b200541c0016a41047221024120210c41022113410121040340200541c0016a41206a200541a8026a41206a280200360200200541c0016a41186a2214200541a8026a41186a290300370300200541c0016a41106a2215200541a8026a41106a290300370300200541c0016a41086a2216200541a8026a41086a290300370300200520052903a8023703c001200541a0016a41086a220b200241086a290000370300200541a0016a41106a220f200241106a290000370300200541a0016a41186a2210200241186a290000370300200520022900003703a001201420102903003703002015200f2903003703002016200b290300370300200520052903a0013703c001024020042011470d00200541a8026a200610aa072004417f20052802a802220b41016a220f200f200b491b6a220b2004490d0c2013200b2013200b4b1b220b4104200b41044b1b220b41ffffff3f71200b46210f200b410574210b0240024020040d00200541003602a8020c010b200541013602b0022005200c3602ac022005200e3602a8020b20054180016a200b200f200541a8026a107d200528028801210b2005280280014101460d03200528028401210e200b41057621110b200e200c6a220b20052903c001370000200b41186a2014290300370000200b41106a2015290300370000200b41086a2016290300370000200541a8026a200610af07200c41206a210c201341026a2113200441016a210420052802a8020d000b0b2006102e200520043602c801200520113602c4012005200e3602c0010c020b200b0d090c080b41002111200541003602c801200542013703c0012006102e4101210e0b200541c0026a4200370300200541b8026a4200370300200541a8026a41086a4200370300200542003703a802200541a8026a41b2fdc6004112108102200541e0006a41b4d3c1004108108102200a41086a200541e0006a41086a290000370000200a2005290060370000200541a8026a200541c0016a10c105201141ffffff3f71450d01200e102e0c010b2006102e200e102e0b200541d0026a24000f0b200541a0016a41186a200b41186a2216290000370300200541a0016a41106a200b41106a2211290000370300200541a0016a41086a200b41086a22122900003703002005200b2900003703a0012012290000210d20112900002117200b2900002118200541c0016a41186a22112016290000370300200541c0016a41106a22162017370300200541c0016a41086a2212200d370300200520183703c001200541e0006a41186a2011290300370300200541e0006a41106a2016290300370300200541e0006a41086a2012290300370300200520052903c001370360200541f0016a200541e0006a41201074200b41206a210b0c000b0b41bcb4c40041c9004198b5c400105d000b41bcb4c40041c9004188b5c400105d000b1038000b1036000b930501047f230041a0036b22012400200141106a4200370300200141186a4200370300200141206a4200370300200141286a4200370300200120012903c801370308200142c0b2cd3b37039803200142c0b2cd3b37039003200142c0b2cd3b370388034100210241012103034020014188036a2104024002400240200241ff01710e03010002010b20014190036a21040c010b20014198036a21040b200442c0b2cd3b370300024020034103460d00200341e99fc0006a2104200341016a210320042d000022024103470d010b0b20014188026a420037030020014180026a4201370300200141f8016a22034200370300200141f0016a22044201370300200141c8016a41186a4200370300200141c8016a41f8006a4200370300200141c8016a41f0006a4201370300200141c8016a41e8006a4200370300200141c8016a41e0006a420137030020014198026a420037030020014190026a200129039003370300200141d0026a4200370300200141c8026a200129038803370300200142003703d00120014280e497d0123703c80120012001290398033703d801200141f8026a200141286a290300370300200141f0026a200141086a41186a290300370300200141e8026a200141186a290300370300200141e0026a200141106a290300370300200141d8026a20012903083703002004420137030020034280b0def7d32b3703002001410036028003200141086a200141c8016a41c00110e9081a200141086a41f8006a428090cad2c60e370300200141086a41f0006a4201370300200141086a41e8006a4280c0a8ca9a3a370300200141086a41e0006a4201370300200141c8016a200141086a41b80110e9081a2001428180808080d0a5cc00370380032000200141c8016a107f200141a0036a24000bc88d0109017f027e047f047e057f017e117f037e287f230041d01a6b22012400200141d0176a10df0420012903d81721024200210320014190046a22044200370300200141f8036a41106a22054200370300200141f8036a41086a22064200370300200142003703f803200141d0176a4199fdc60041081081022006200141d0176a41086a2207290000370300200120012900d0173703f803200141d0176a41fc8ac500411010810220042007290000370300200520012900d017370300200141203602dc142001200141f8036a3602d814200141f0066a200141f8036a412010ed022002428094ebdc038242808c8d9e027e2208428094ebdc038021092008428094ebdc0382210a2002428094ebdc0380210b4100210c024002400240024020012802f006220d0d004100210e0c010b20012802f406210f2001200141f0066a41086a280200360294152001200d36029015200141c0006a20014190156a10ab010240024002402001280240450d000c010b20012802442210200128029415411c6e2204200420104b1bad421c7e2202422088a70d042002a72204417f4c0d040240024020040d004104210e0c010b2004102c220e450d040b2004411c6ead21110240024002400240024020100d000c010b200141d0176a41c4006a2106410021120340200141386a20014190156a10ab0120012802380d04200128023c221320012802941541e0006e2204200420134b1bad42e0007e2202422088a70d092002a72204417f4c0d090240024020040d00410821140c010b2004102c2214450d090b200441e0006e21150240024020130d00410021130c010b41002116410021054100210702400340200141d0176a20014190156a10e004200141c8006a41386a2204200141d0176a41386a290300370300200141c8006a41306a2217200141d0176a41306a290300370300200141c8006a41286a2218200141d0176a41286a290300370300200141c8006a41206a2219200141d0176a41206a290300370300200141c8006a41186a221a200141d0176a41186a290300370300200141c8006a41106a221b200141d0176a41106a290300370300200141c8006a41086a221c200141d0176a41086a290300370300200141a00f6a41086a221d200641086a290200370300200141a00f6a41106a221e200641106a290200370300200141a00f6a41186a221f200641186a280200360200200120012903d017370348200120062902003703a00f2001280290182220450d0120014198126a41386a2221200429030037030020014198126a41306a2222201729030037030020014198126a41286a2217201829030037030020014198126a41206a2218201929030037030020014198126a41186a2219201a29030037030020014198126a41106a221a201b29030037030020014198126a41086a221b201c290300370300200141e00c6a41086a221c201d290300370300200141e00c6a41106a221d201e290300370300200141e00c6a41186a221e201f2802003602002001200129034837039812200120012903a00f3703e00c024020072015470d002016200741016a2204201620044b1b22044104200441044b1bad42e0007e2202422088a74541037421042002a7211f0240024020070d00200141003602d0170c010b200141083602d817200120053602d417200120143602d0170b200141e8096a201f2004200141d0176a107d20012802f0092104024020012802e8094101470d0020040d0d0c0e0b20012802ec092114200441e0006e21150b201420056a2204200129039812370300200441106a201a290300370300200441086a201b2903003703002022290300210220212903002108201729030021232018290300212420192903002125200441c0006a2020360200200441186a2025370300200441206a2024370300200441286a2023370300200441386a2008370300200441306a2002370300200441c4006a20012903e00c370200200441cc006a201c290300370200200441d4006a201d290300370200200441dc006a201e280200360200201641026a2116200541e0006a21052013200741016a2207460d020c000b0b02402007450d00201441d4006a210403400240200441706a2802002206450d00200641306c450d002004416c6a280200102e0b0240200428020041ffffff3f71450d002004417c6a280200102e0b200441e0006a2104200541a07f6a22050d000b0b2015450d05201541e0006c450d050c040b2014450d04200141306a20014190156a10ab010240024020012802300d00200128023422262001280294154102762204200420264b1b22274102742204417f4c0d0b0240024020270d00410421280c010b2004102c2228450d0b0b0240024020260d00410021260c010b4100210541002107410021040240034020012802941522174104490d012001280290152218280000211620012017417c6a360294152001201841046a360290152016418094ebdc034b0d01024020042027470d002007200441016a2217200720174b1b22174104201741044b1b221741ffffffff03712017464102742118201741027421170240024020040d00200141003602d0170c010b200141043602d817200120053602d417200120283602d0170b200141c8006a20172018200141d0176a107d20012802502117024020012802484101470d002017450d100c0f0b200128024c2128201741027621270b202820056a2016360200200541046a2105200741026a21072026200441016a2204460d020c000b0b202741ffffffff0371450d012028102e0c010b2028450d00200128029415220441034b0d010240202741ffffffff0371450d002028102e0b02402013450d002014201341e0006c6a21062014210403400240200441c4006a2802002205450d00200541306c450d00200441c0006a280200102e0b200441e0006a21050240200441d4006a28020041ffffff3f71450d00200441d0006a280200102e0b2005210420062005470d000b0b2015450d06201541e0006c0d050c060b02402013450d002014201341e0006c6a21062014210403400240200441c4006a2802002205450d00200541306c450d00200441c0006a280200102e0b200441e0006a21050240200441d4006a28020041ffffff3f71450d00200441d0006a280200102e0b2005210420062005470d000b0b2015450d05201541e0006c0d040c050b2001280290152205280000212920012004417c6a360294152001200541046a3602901502402011422088a722042011a7470d00200441016a22052004490d0a20044101742207200520052007491b22054104200541044b1bad421c7e2202422088a74541027421052002a721070240024020040d00200141003602d0170c010b200141043602d8172001200e3602d01720012004411c6c3602d4170b200141c8006a20072005200141d0176a107d2001280250210520012802484101460d03200128024c210e2011428080808070832005411c6ead8421110b200e2004411c6c6a2204201536020420042014360200200441186a2029360200200441146a2026360200200441106a20273602002004410c6a2028360200200441086a201336020020114280808080107c21112026212a2027212b2028212c2013212d2015212e201241016a22122010470d000b0b200e0d040c030b2005450d060c050b2014102e0b02402011422088a72204450d00200e2004411c6c6a2116200e21070340024020072802082204450d00200441e0006c2105200728020041d4006a210403400240200441706a2802002206450d00200641306c450d002004416c6a280200102e0b0240200428020041ffffff3f71450d002004417c6a280200102e0b200441e0006a2104200541a07f6a22050d000b0b0240200741046a2802002204450d00200441e0006c450d002007280200102e0b2007411c6a21040240200741106a28020041ffffffff0371450d00200728020c102e0b2004210720042016470d000b0b02402011a72204450d002004411c6c450d00200e102e0b202e2115202d2113202c2128202b2127202a21260b4100210e20014100360250200142013703482001410a36029c122001200141d8146a360298122001200141c8006a3602a00f200141e4176a4101360200200142013702d417200141909dc5003602d017200120014198126a3602e017200141a00f6a419cebc000200141d0176a103d1a2001280248200128025010ef02200128024c450d002001280248102e0b200f450d00200d102e0b200e4104200e1b2114024020114200200e1b2208422088a72207450d00200b42808c8d9e027e2009200a4280cab5ee0156ad7c7c210242002103410021164100210c0240034002400240200c450d0020142104200c210603400240200320025a0d00200141206a200420166a220e2802002014200c411c6c6a2204280208200428020c200441146a2802002004280218109203200129032821230c030b2004200420166a2205290200370200200441186a200541186a280200360200200441106a200541106a290200370200200441086a200541086a2902003702002004411c6a2104200641016a22062007490d000c040b0b200c210403400240200320025a0d00200141106a2014200c411c6c6a220e280200200e280208200e28020c200e41146a280200200e280218109203200129031821230c020b200441016a22042007490d000b4100210c0c030b02402014200c411c6c6a22172802082204450d00200441e0006c2105200e28020041d4006a210403400240200441706a2802002206450d00200641306c450d002004416c6a280200102e0b0240200428020041ffffff3f71450d002004417c6a280200102e0b200441e0006a2104200541a07f6a22050d000b0b0240200e41046a2802002204450d00200441e0006c450d00200e280200102e0b200c41016a210c0240201741106a28020041ffffffff0371450d00201728020c102e0b200320237c21032016411c6a2116200c2106200c2007490d000b0b0240200c0d004100210c0c010b20142006200c6b411c6c6a20142006411c6c6a200720066b411c6c10ea081a0b200141e8176a22044200370300200141d0176a41106a22054200370300200141d0176a41086a22064200370300200142003703d017200141c8006a4199fdc60041081081022006200141c8006a41086a2216290000370300200120012900483703d017200141c8006a41fc8ac500411010810220042016290000370300200520012900483703002007200c6b2204411c6c41046a2205417f4c0d010240024020050d00410121060c010b2005102c2206450d010b200141003602502001200536024c200120063602482004200141c8006a107620142004200141c8006a10a001200141d0176a412020012802482205200128025010b2010240200128024c450d002005102e0b02402004450d0020142004411c6c6a2116201421070340024020072802082204450d00200441e0006c2105200728020041d4006a210403400240200441706a2802002206450d00200641306c450d002004416c6a280200102e0b0240200428020041ffffff3f71450d002004417c6a280200102e0b200441e0006a2104200541a07f6a22050d000b0b0240200741046a2802002204450d00200441e0006c450d002007280200102e0b2007411c6a21040240200741106a28020041ffffffff0371450d00200728020c102e0b2004210720042016470d000b0b02402008a72204450d002004411c6c450d002014102e0b20014198126a10e1044100210520012802981221164100210602400240024002400240024020012802a012220c450d00200c41c4006c2107200c410274417c6a41027641016a2114410021062016210402400340024020042d00004101460d00200441046a28020020004f0d020b200441c4006a2104200641016a2106200741bc7f6a22070d000b201421060b200c2006490d010b200141003602a012200c20066b210e2016200641c4006c220c6a210402400340200c2005460d01201620056a2107200541c4006a2214210520072d00004102470d000b201620146a21040b2016200641c4006c6a21070240034020072004460d0120042d00002105200441c4006a210420054102470d000b0b02400240200e0d004100210e0c010b02402006450d0020162016200641c4006c6a200e41c4006c10ea081a0b2001200e3602a0120b200128029c122106200141e8176a22054200370300200141e0176a22044200370300200141d0176a41086a22074200370300200142003703d017200141c8006a4190dac800410a1081022007200141c8006a41086a220c290000370300200120012900483703d017200141c8006a41d5dac80041061081022005200c29000037030020042001290048370300200e41c4006c41046a2205417f4c0d060240024020050d00410121070c010b2005102c2207450d060b200141003602502001200536024c20012007360248200e200141c8006a10762016200e200141c8006a109f01200141d0176a412020012802482205200128025010b2010240200128024c450d002005102e0b02402006450d00200641c4006c450d002016102e0b42002102200141d0176a41186a22074200370300200141d0176a41106a221642003703004108212a200141d0176a41086a22064200370300200142003703d017200141c8006a4190dac800410a1081022006200141c8006a41086a2205290000370300200120012900483703d017200141c8006a41d097c900410c108102200441086a200529000037000020042001290048370000200141003a0048200141d0176a4120200141c8006a410110b201200141c8006a10e204200141f8036a41186a220c200141c8006a41186a2214290300370300200141f8036a41106a220e200141c8006a41106a2217290300370300200141f8036a41086a22182005290300370300200120012903483703f8034124102c2204450d05200420012903f80337010020044114360220200441186a200c290300370100200441106a200e290300370100200441086a201829030037010020014281808080103702d417200120043602d017200141d0176a10e304200720142903003703002016201729030037030020062005290300370300200120012903483703d017200141d0176a10e404108403200141d0176a10df0420012903d8172108200141c8006a200010a704200141d0176a200128024822042001280250220510c5042008428094ebdc0382428090bcfd027e2223428094ebdc038021242023428094ebdc038221232008428094ebdc03802108024020012802d0172206450d002004200510ff0120012902d41721022006212a0b0240200128024c450d002004102e0b202a2002422088a7220441f8026c22056a21062002a7212b024020040d00202a21040c030b200541887d6a2119200141d0176a41046a2110200141c8006a41046a2121200141a00f6a41046a210d41002107200141c0036a41306a2116200141c0036a41286a210c200141c0036a41206a2114200141c0036a41186a210e200141c0036a41106a2117200141c0036a41086a2118202a210402400340200141f8036a200441bc0210e9081a200441bc026a28020021052016200441f0026a290300370300200c200441e8026a2903003703002014200441e0026a290300370300200e200441d8026a2903003703002017200441d0026a2903003703002018200441c8026a2903003703002001200441c0026a2903003703c00320054103460d03200d200141f8036a41bc0210e9082122200141c8006a200141a00f6a41c00210e9081a20014190156a202141bc0210e9081a200141d8146a41306a221b2016290300370300200141d8146a41286a221c200c290300370300200141d8146a41206a221d2014290300370300200141d8146a41186a221e200e290300370300200141d8146a41106a221f2017290300370300200141d8146a41086a22202018290300370300200120012903c0033703d814024002402005410247221a0d00200141e00c6a4194b4c00041c00210e9081a4100211b200141a80c6a41306a4100290388b740370300200141a80c6a41286a4100290380b740370300200141a80c6a41206a41002903f8b640370300200141a80c6a41186a41002903f0b640370300200141a80c6a41106a41002903e8b640370300200141a80c6a41086a41002903e0b640370300200141002903d8b6403703a80c0c010b201020014190156a41bc0210e9081a20014198126a200141d0176a41c00210e9081a200141e0116a41306a220f201b290300370300200141e0116a41286a221b201c290300370300200141e0116a41206a221c201d290300370300200141e0116a41186a221d201e290300370300200141e0116a41106a221e201f290300370300200141e0116a41086a221f2020290300370300200120012903d8143703e011200141e00c6a20014198126a41c00210e9081a200141a80c6a41306a200f290300370300200141a80c6a41286a201b290300370300200141a80c6a41206a201c290300370300200141a80c6a41186a201d290300370300200141a80c6a41106a201e290300370300200141a80c6a41086a201f290300370300200120012903e0113703a80c2007211b0b201a0d01200741016a2107201941887d6a2119200441f8026a22042006470d000b200621040c030b200141f0066a200141e00c6a41c00210e9081a200141b8066a41306a2216200141a80c6a41306a290300370300200141b8066a41286a220c200141a80c6a41286a290300370300200141b8066a41206a2214200141a80c6a41206a290300370300200141b8066a41186a220e200141a80c6a41186a290300370300200141b8066a41106a2217200141a80c6a41106a290300370300200141b8066a41086a2218200141a80c6a41086a290300370300200120012903a80c3703b806200141e8096a200141f0066a41c00210e9081a200141b0096a41306a221a2016290300370300200141b0096a41286a2216200c290300370300200141b0096a41206a220c2014290300370300200141b0096a41186a2214200e290300370300200141b0096a41106a220e2017290300370300200141b0096a41086a22172018290300370300200120012903b8063703b009418003102c2220450d052020201b360200202041046a200141e8096a41c00210e9081a202020053602c402202020012903b0093703c802202041d0026a2017290300370300202041d8026a200e290300370300202041e0026a2014290300370300202041e8026a200c290300370300202041f0026a2016290300370300202041f8026a201a29030037030020062105024002402019450d00200441f8026a2104200741016a2107200141a00f6a41046a210d200141a80c6a41306a2116200141a80c6a41286a210c200141a80c6a41206a2114200141a80c6a41186a210e200141a80c6a41106a2117200141a80c6a41086a211802400340200141f0066a200441bc0210e9081a200441bc026a28020021052016200441f0026a290300370300200c200441e8026a2903003703002014200441e0026a290300370300200e200441d8026a2903003703002017200441d0026a2903003703002018200441c8026a2903003703002001200441c0026a2903003703a80c20054103460d01200d200141f0066a41bc0210e9081a200141c8006a200141a00f6a41c00210e9081a20014190156a202141bc0210e9081a200141d8146a41306a221a2016290300370300200141d8146a41286a221b200c290300370300200141d8146a41206a221c2014290300370300200141d8146a41186a221d200e290300370300200141d8146a41106a221e2017290300370300200141d8146a41086a221f2018290300370300200120012903a80c3703d81402400240200541024722190d00200141e00c6a4194b4c00041c00210e9081a4100211a200141e0116a41306a4100290388b740370300200141e0116a41286a4100290380b740370300200141e0116a41206a41002903f8b640370300200141e0116a41186a41002903f0b640370300200141e0116a41106a41002903e8b640370300200141e0116a41086a41002903e0b640370300200141002903d8b6403703e0110c010b201020014190156a41bc0210e9081a20014198126a200141d0176a41c00210e9081a200141f8036a41306a220f201a290300370300200141f8036a41286a221a201b290300370300200141f8036a41206a221b201c290300370300200141f8036a41186a221c201d290300370300200141f8036a41106a221d201e290300370300200141f8036a41086a221e201f290300370300200120012903d8143703f803200141e00c6a20014198126a41c00210e9081a200141e0116a41306a200f290300370300200141e0116a41286a201a290300370300200141e0116a41206a201b290300370300200141e0116a41186a201c290300370300200141e0116a41106a201d290300370300200141e0116a41086a201e290300370300200120012903f8033703e0112007211a0b20190d03200741016a2107200441f8026a22042006470d000b200621050c010b200441f8026a21050b4101212f4101210d0c040b200141e8096a200141e00c6a41c00210e9081a200141b0096a41306a222c200141e0116a41306a221b290300370300200141b0096a41286a222d200141e0116a41286a221c290300370300200141b0096a41206a222e200141e0116a41206a221d290300370300200141b0096a41186a2212200141e0116a41186a221e290300370300200141b0096a41106a2230200141e0116a41106a221f290300370300200141b0096a41086a2231200141e0116a41086a220f290300370300200120012903e0113703b009200441f8026a2104200741016a21074101212f4101210d0340200141d0176a200141e8096a41c00210e9081a200141c8006a41306a220c202c290300370300200141c8006a41286a2214202d290300370300200141c8006a41206a220e202e290300370300200141c8006a41186a22172012290300370300200141c8006a41106a22182030290300370300200141c8006a41086a22192031290300370300200120012903b009370348024002400240200d202f470d00202f41016a2216202f490d0a202f41017422322016203220164b1b22164104201641044b1bad4280037e2202422088a74541037421162002a7213202400240202f0d0020014100360298120c010b200141083602a01220012020360298122001202f4180036c36029c120b200141a00f6a2032201620014198126a107d20012802a80f211620012802a00f4101460d0120012802a40f212020164180036e212f0b2020200d4180036c6a2216201a360200201641046a200141d0176a41c00210e9081a201641c4026a2005360200201641c8026a2001290348370300201641d0026a2019290300370300201641d8026a2018290300370300201641e0026a2017290300370300201641e8026a200e290300370300201641f0026a2014290300370300201641f8026a200c290300370300200d41016a210d20042006470d01200621050c060b2016450d080c070b024002400340200141f8036a200441bc0210e9081a200441bc026a2802002105200141c0036a41306a2216200441f0026a290300370300200141c0036a41286a220c200441e8026a290300370300200141c0036a41206a2214200441e0026a290300370300200141c0036a41186a220e200441d8026a290300370300200141c0036a41106a2217200441d0026a290300370300200141c0036a41086a2218200441c8026a2903003703002001200441c0026a2903003703c00320054103460d012022200141f8036a41bc0210e9081a200141c8006a200141a00f6a41c00210e9081a20014190156a202141bc0210e9081a200141d8146a41306a22192016290300370300200141d8146a41286a221a200c290300370300200141d8146a41206a220c2014290300370300200141d8146a41186a2214200e290300370300200141d8146a41106a220e2017290300370300200141d8146a41086a22172018290300370300200120012903c0033703d81402400240200541024722160d00200141e00c6a4194b4c00041c00210e9081a4100211a200141a80c6a41306a4100290388b740370300200141a80c6a41286a4100290380b740370300200141a80c6a41206a41002903f8b640370300200141a80c6a41186a41002903f0b640370300200141a80c6a41106a41002903e8b640370300200141a80c6a41086a41002903e0b640370300200141002903d8b6403703a80c0c010b201020014190156a41bc0210e9081a20014198126a200141d0176a41c00210e9081a201b2019290300370300201c201a290300370300201d200c290300370300201e2014290300370300201f200e290300370300200f2017290300370300200120012903d8143703e011200141e00c6a20014198126a41c00210e9081a200141a80c6a41306a201b290300370300200141a80c6a41286a201c290300370300200141a80c6a41206a201d290300370300200141a80c6a41186a201e290300370300200141a80c6a41106a201f290300370300200141a80c6a41086a200f290300370300200120012903e0113703a80c2007211a0b20160d02200741016a2107200441f8026a22042006470d000b200621050c060b200441f8026a21050c050b200141f0066a200141e00c6a41c00210e9081a200141b8066a41306a2216200141a80c6a41306a290300370300200141b8066a41286a220c200141a80c6a41286a290300370300200141b8066a41206a2214200141a80c6a41206a290300370300200141b8066a41186a220e200141a80c6a41186a290300370300200141b8066a41106a2217200141a80c6a41106a290300370300200141b8066a41086a2218200141a80c6a41086a290300370300200120012903a80c3703b806200141e8096a200141f0066a41c00210e9081a202c2016290300370300202d200c290300370300202e20142903003703002012200e2903003703002030201729030037030020312018290300370300200120012903b8063703b009200441f8026a2104200741016a21070c000b0b2006200c41b4b3c000104d000b200441f8026a21040b024020062004460d000340200441f8026a21050240200441bc026a2802004102460d000240200441b0026a2802002207450d00200441b4026a280200450d002007102e0b2004108b020b2005210420062005470d000b0b4100212f410821200240202b450d00202b41f8026c450d00202a102e0b4100210d0c010b024020062005460d000340200541f8026a21040240200541bc026a2802004102460d000240200541b0026a2802002207450d00200541b4026a280200450d002007102e0b2005108b020b2004210520062004470d000b0b0240202b450d00202b41f8026c450d00202a102e0b0240024002400240200d41144b0d00200d41014d0d042020200d417f6a22064180036c6a2114410021070340200d20062204417f6a2206490d030240200d20066b22174102490d00202020044180036c6a220441f8026a2d0000202020064180036c6a220541f8026a2d0000220c4f0d00200141d0176a200541f80210e9081a2001200541fc026a28000036004b2001200541f9026a2800003602482005200441800310e9081a024020174103490d002007417f6a210e41002105201421040340200441f8056a2d0000200c4f0d01200e2005460d05200420044180036a221641800310e9081a2016210420072005417f6a2205470d000b201621040b2004200141d0176a41f80210e908220441f8026a200c3a0000200441f9026a2001280248360000200441fc026a200128004b3600000b201441807d6a21142007417f6a210720060d000c050b0b200d410176ad4280037e2202422088a70d052002a7222c417f4c0d05202c102c220f450d04202041807d6a212a202041f8796a212b410421194100211041002117200d211d0340201d21144100211d4101210c02402014417f6a2204450d000240024002400240024002400240202020044180036c6a41f8026a2d000020144180036c220e20206a41f87c6a2d00002205490d002014417e6a2116202b200e6a21064100211d410021040340024020162004470d002014210c0c090b200441016a2104200541ff0171210720062d00002105200641807d6a2106200720054f0d000b200441016a210c2004417f7320146a21040c010b202b200e6a210602400340024020044101470d00410021040c020b2004417f6a2104200541ff0171210720062d00002105200641807d6a210620072005490d000b0b20142004490d012014200d4b0d02201420046b220c4101762207450d00202020044180036c6a2105202a200e6a21060340200141d0176a200541800310e9081a2005200641800310ea084180036a21052006200141d0176a41800310e90841807d6a21062007417f6a22070d000b0b024020040d002004211d0c060b0240200c41094d0d002004211d0c060b2014200d4b0d03200420146b2106202020044180036c6a210e034020142004417f6a221d490d0502402014201d6b220c4102490d00202020044180036c6a220441f8026a2d00002020201d4180036c6a220541f8026a2d000022164f0d00200141d0176a200541f80210e9081a2001200541fc026a28000036004b2001200541f9026a2800003602482005200441800310e9081a0240200c4103490d0041012105200e21040340200441f8056a2d000020164f0d01200620056a4101460d06200420044180036a220741800310e9081a200721042006200541016a22056a0d000b200721040b2004200141d0176a41f80210e908220441f8026a20163a0000200441f9026a2001280248360000200441fc026a200128004b3600000b201d450d06200e41807d6a210e2006417f6a2106201d2104200c410a4f0d060c000b0b2004201441e4d1cc001057000b2014200d41e4d1cc00104d000b2005200c41d4d1cc00103c000b20142004417f6a221d490d002014200d41f4d1cc00104d000b201d201441f4d1cc001057000b024020172010470d00201041016a22042010490d07201041017422052004200520044b1b22044104200441044b1b220441ffffffff01712004464102742105200441037421040240024020100d00200141003602d0170c010b200141043602d817200120193602d017200120104103743602d4170b200141c8006a20042005200141d0176a107d20012802502104024020012802484101470d002004450d080c070b200128024c2119200441037621100b201920174103746a2204200c3602042004201d360200201741016a221e21170240201e4102490d00024002400240034002400240024002402019201e2217417f6a221e4103746a2204280200450d00201741037420196a221641746a2802002207200428020422054d0d00201741024d0d0820192017417d6a22044103746a2802042206200520076a4d0d01201741034d0d08201641646a280200200620076a4b0d080c010b20174103490d012004280204210520192017417d6a22044103746a28020421060b20062005490d010b2017417e6a21040b02402017200441016a221f4d0d00201720044d0d02201920044103746a221a2802042221201a2802006a22042019201f4103746a221b280200221c490d032004200d4b0d04201a41046a21222020201c4180036c6a220e201b28020422184180036c22056a210720044180036c210c024002402004201c6b221620186b22042018490d00200f200e200510e908220420056a21060240024020184101480d00201620184a0d010b200e2105200421040c020b2020200c6a211420042104200e2105034020072004200741f8026a2d0000200441f8026a2d00004922161b210c200420044180036a20161b21042005200c41800310e9084180036a210520074180036a200720161b220720144f0d02200620044b0d000c020b0b200f200720044180036c220510e908221620056a21060240024020184101480d00200441014e0d010b20072105201621040c010b202a200c6a210c200721050340200c200541807d6a2207200641807d6a2214200641786a2d0000200541786a2d00004922041b41800310e908210c2006201420041b21060240200e2007200520041b2205490d00201621040c020b200c41807d6a210c2016210420162006490d000b0b20052004200620046b22062006418003706b10e9081a2022202120186a360200201a201c360200201b201b41086a2017201f417f736a41037410ea081a41012117201e41014d0d050c010b0b201f20174184d2cc00103c000b200420174194d2cc00103c000b201c200441a4d2cc001057000b2004200d41a4d2cc00104d000b201d450d030c000b0b410120056b201741d4d1cc00103c000b2006200d41c4d1cc001056000b0240201041ffffffff0171450d002019102e0b202c418003702104202c418003490d00202c2004460d00200f102e0b2020200d4180036c6a210c02400240200d0d0042002123202021050c010b2008428090bcfd027e202420234280cab5ee0156ad7c7c2124200141c8006a41b0026a2133200141d0176a41c0026a2105200141c8006a41c0026a2106200041016a2134200141ed176a2135200141f8036a4105722136200141c8006a41ca026a2137200141c8006a41cd026a2138200141a00f6a410572212d200141f8036a4103722139200141d0176a41ca026a213a200141d0176a41cd026a213b200141c8006a41046a213c42c0f4a4eb00210220014190156a41306a211c20014190156a41286a211d20014190156a41206a211e20014190156a41186a211f20014190156a41106a212120014190156a41086a2122200141890a6a223d41076a213e410021174200212320202104024003402004280200213f20014198126a200441046a41c00210e9081a200441c4026a2802002107201c200441f8026a290300370300201d200441f0026a290300370300201e200441e8026a290300370300201f200441e0026a2903003703002021200441d8026a2903003703002022200441d0026a2903003703002001200441c8026a29030037039015024020074102470d0020044180036a21050c030b200141c8006a20014198126a41c00210e9081a200141d0176a203c41bc0210e9081a2005200129039015370300200541086a220d2022290300370300200541106a220f2021290300370300200541186a2210201f290300370300200541206a222a201e290300370300200541286a222b201d290300370300200541306a222c201c2903003703002001200736028c1a200141a00f6a200141d0176a10970420012903a00f2108024002400240024020012d00981a0e03000102000b4102210e02400240024020012d00991a0e03000102000b4100210e0c010b200141f8036a41186a203a41186a290000370300200141f8036a41106a203a41106a290000370300200141f8036a41086a203a41086a2900003703002001203a29000022253703f8032025a721404101210e0b200141a00f6a41026a203941026a2d00003a0000200120392f00003b01a00f201b4180807c7120012f01960472211b20012d00fa03211820012801fe032119200128018204211a200128018604212e200128018a042112200128018e042130200128019204213141002132410121160c020b41022118024002400240024020012d009c1a0e03000103000b410021180c010b200141f8036a41026a203b41026a2d00003a00002001203b2f00003b01f803204141807e7120012d00bc1a7221414101211820012802b81a214220012802b41a214320012802b01a214420012802ac1a214520012802a81a21460b20012802a41a211a20012802a01a21190b200141a00f6a41026a200141f8036a41026a2d00003a0000200120012f01f8033b01a00f41012132410021162046212e204521122044213020432131204121472042211b0c010b4102213241022118024002400240024020012d009c1a0e03000103000b410021180c010b200141f8036a41026a203b41026a2d00003a00002001203b2f00003b01f803202941807e7120012d00bc1a7221294101211820012802b81a212620012802b41a212720012802b01a212820012802ac1a211320012802a81a21150b20012802a41a211a20012802a01a21190b200141a00f6a41026a200141f8036a41026a2d00003a0000200120012f01f8033b01a00f410021162015212e201321122028213020272131202921472026211b0b4110102c2207450d03200741f8f7c60036020c200741013602082007428180808010370200200141e8096a41026a2248200141a00f6a41026a2d00003a0000200120012f01a00f3b01e809024002402016200e41ff01714571450d00200721160c010b4110102c2216450d0420164190f8c60036020c20164101360208201642818080801037020020072007280200417f6a224936020020490d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22492049280200417f6a224936020020490d002007102e0b200141f8036a41026a224920482d000022073a0000200120012f01e80922483b01f803202d20483b0000202d41026a20073a0000200120183a00a40f200120403b01a20f2001200e3a00a10f200120323a00a00f200120163602c80f200120473602c40f2001201b3602c00f200120313602bc0f200120303602b80f200120123602b40f2001202e3602b00f2001201a3602ac0f200120193602a80f200141e8096a200141a00f6a10c10220012d00e8092116200128028c1a210720012802801a2118200141e00c6a200141d0176a41bc0210e9081a200141f0066a41306a2219202c290300370300200141f0066a41286a221a202b290300370300200141f0066a41206a222e202a290300370300200141f0066a41186a22122010290300370300200141f0066a41106a2230200f290300370300200141f0066a41086a2231200d290300370300200120052903003703f00620074102460d01427f427f427f200220087c220820082002541b2202427f200242c0b2cd3b7c220820082002541b20161b22024280c2d72f7c220820082002541b200220181b220242c0b2cd3b7c220820082002541b200220074101461b2102200141c8006a200141e00c6a41bc0210e9081a200641306a22162019290300370300200620012903f006370300200641086a22182031290300370300200641106a22192030290300370300200641186a22302012290300370300200641206a2212202e290300370300200641286a222e201a290300370300200120073602840302400240024020012d00b80341c000490d002017450d0020022024560d010b200141a00f6a200141c8006a10a804024002400240024020012d0090030e03000102000b4102214a02400240024020012d0091030e03000102000b4100214a0c010b200141f8036a41186a203741186a290000370300200141f8036a41106a203741106a290000370300200141f8036a41086a203741086a2900003703002001203729000022083703f8032008a7214b4101214a0b200141d0176a41026a203941026a2d00003a0000200120392f00003b01d017204c4180807c7120012f01960472214c20012d00fa03211820012801fe032119200128018204211a200128018604210f200128018a042110200128018e04212a200128019204212b4100212c410121160c020b41022118024002400240024020012d0094030e03000103000b410021180c010b2049203841026a2d00003a0000200120382f00003b01f803204141807e7120012d00b4037221414101211820012802b003214220012802ac03214320012802a803214420012802a403214520012802a00321460b200128029c03211a20012802980321190b200141d0176a41026a20492d00003a0000200120012f01f8033b01d0174101212c410021162046210f204521102044212a2043212b2041214d2042214c0c010b4102212c41022118024002400240024020012d0094030e03000103000b410021180c010b2049203841026a2d00003a0000200120382f00003b01f803202941807e7120012d00b4037221294101211820012802b003212620012802ac03212720012802a803212820012802a403211320012802a00321150b200128029c03211a20012802980321190b200141d0176a41026a200141f8036a41026a2d00003a0000200120012f01f8033b01d017410021162015210f201321102028212a2027212b2029214d2026214c0b200141d8146a41026a222e200141d0176a41026a2d00003a0000200120012f01d0173b01d8144110102c2207450d05200741f8f7c60036020c200741013602082007428180808010370200200741086a210d024002402016204a41ff01714571450d00200d2112200721160c010b4110102c2216450d0620164190f8c60036020c20164101360208201642818080801037020020072007280200417f6a2230360200201641086a211220300d002007280208200728020c2802001103000240200728020c280204450d00200d280200102e0b200741046a220d200d280200417f6a220d360200200d0d002007102e0b024002402016280208200141a00f6a201628020c28020c1101000d0020162016280200417f6a2207360200200141023a00880a200141003a00800a200142003703f009200142013703e809024020070d002012280200201628020c2802001103000240201628020c280204450d002016280208102e0b201641046a22072007280200417f6a220736020020070d002016102e0b200141a00f6a10dc020c010b200141d0176a200141a00f6a41b00210e9081a203620012f01d8143b0000203641026a202e2d00003a0000200120183a00fc032001204b3b01fa032001204a3a00f9032001202c3a00f803200120163602a0042001204d36029c042001204c360298042001202b360294042001202a360290042001201036028c042001200f360288042001201a360284042001201936028004200141e8096a200141d0176a200141f8036a10dd020b0240024020012802f80222160d00410021070c010b2001280280032214417f4c0d070240024020140d00410121070c010b2014102c2207450d070b20072016201410e9081a0b024002402001280284034101460d004101211820012802f802450d01200141d0176a203310a90420012802d017221620012802d81710ff0120012802d417450d012016102e0c010b200128028803211602400240200128028c0322184102490d00200141013602840320012018417f6a36028c030c010b20014100360284030b201620006a2116024020012802f802450d00200141d0176a201610a70420012802d817211920012802d0172118200141f8036a41046a41003a0000200141003602f803200141086a20182019200141f8036a4105410010ca04024002402001280208450d002001200128020c2219410520194105491b3602a40f2001200141f8036a3602a00f2001200141a00f6a10ab0120012802042119200128020045211a0c010b4100211a0b024020012802d417450d002018102e0b200141d0176a203310a90420012802d017221820012802d817201620194100201a1b10e50420012802d417450d002018102e0b200141d0176a200141c8006a41f80210e9081a2016200141d0176a10aa04410021180b2001203d2900003703d0172001203e2800003600d7170240024020012903e8094201510d00410621160c010b20012d00880a211920012903f0092108200120012800d7173600a70f200120012903d0173703a00f4106211620084202510d00200120012800a70f3600d717200120012903a00f3703d017201921160b200120012903d0173703f803200120012800d7173600ff03203520012903f803370000203541076a20012800ff03360000200120163a00ec17200120143602e817200120143602e417200120073602e0172001203f3602dc17200120003602d817200141023602d417200141013a00d017200141d0176a10fe0102402018450d00024020012802f8022207450d0020012802fc02450d002007102e0b200141c8006a108b020b200221230c010b200141a00f6a200141c8006a41bc0210e9081a200141e8096a41306a221a2016290300370300200141e8096a41286a2216202e290300370300200141e8096a41206a222e2012290300370300200141e8096a41186a22122030290300370300200141e8096a41106a22302019290300370300200141e8096a41086a22192018290300370300200120062903003703e80920074103460d00200141d0176a200141a00f6a41bc0210e9081a200520012903e809370300200d2019290300370300200f203029030037030020102012290300370300202a202e290300370300202b2016290300370300202c201a2903003703002001200736028c1a2034200141d0176a10aa040b2017417f6a211720044180036a2204200c470d000b200c21050c010b20044180036a21050b0240200c2005460d000340200522044180036a21050240200441b8026a2802002206450d00200441bc026a280200450d002006102e0b200441086a108b02200c2005470d000b0b0240202f450d00202f4180036c450d002020102e0b200141c8006a41186a22044200370300200141c8006a41106a22054200370300200141c8006a41086a2206420037030020014200370348200141d0176a41d9fcc60041061081022006200141d0176a41086a2207290000370300200120012900d017370348200141d0176a41a0f4cb00410a10810220042007290000370300200520012900d017370300200141d0176a200141c8006a4120108d0220012d00d0172107200141f8036a41186a2216200141e9176a290000370300200141f8036a41106a220c200141e1176a290000370300200141f8036a41086a2214200141d9176a290000370300200120012900d1173703f8030240024020074101460d00200442003703002005420037030020064200370300200142003703480c010b200420162903003703002005200c29030037030020062014290300370300200120012903f8033703480b200141d0176a41186a22054200370300200141d0176a41106a22074200370300200141d0176a41086a22064200370300200142003703d01720014198126a41f4c2cc004118108102200620014198126a41086a220429000037030020012001290098123703d01720014198126a41e4c3cc00410e108102200520042900003703002007200129009812370300200141a00f6a200141d0176a4120108d03024002400240024002400240024020012802a00f22040d002005200141c8006a41186a2903003703002007200141c8006a41106a2903003703002006200141c8006a41086a290300370300200120012903483703d0174100210641012104200141d0176a21160c010b20012802a40f2106200141a00f6a41086a280200220541d0004b0d03200141d0176a41186a200141c8006a41186a290300370300200141d0176a41106a200141c8006a41106a290300370300200141d0176a41086a200141c8006a41086a290300370300200120012903483703d017024020052006472214450d00200141d0176a21162006210c0c020b200141d0176a21162006210c20140d010b200641016a22052006490d062006410174220c2005200c20054b1b22054104200541044b1b220541ffffff3f71200546210c200541057421050240024020060d0020014100360298120c010b200141a0126a410136020020012004360298122001200641057436029c120b200141a00f6a2005200c20014198126a107d200141a80f6a280200210520012802a00f4101460d0120012802a40f21042005410576210c200621050b200420054105746a22062016290000370000200641186a201641186a290000370000200641106a201641106a290000370000200641086a201641086a290000370000200541016a21050c020b2005450d040c030b200141d0176a41186a220c200141c8006a41186a290300370300200141d0176a41106a2214200141c8006a41106a290300370300200141d0176a41086a220e200141c8006a41086a290300370300200120012903483703d01720052000417f6a41d1007022164d0d01200420164105746a221620012903d017370000201641186a200c290300370000201641106a2014290300370000201641086a200e2903003700002006210c0b200141a00f6a41086a20053602002001200c3602a40f200120043602a00f0240024020040d00200141d0176a41186a4200370300200141e0176a4200370300200141d0176a41086a22044200370300200142003703d01720014198126a41f4c2cc004118108102200420014198126a41086a220529000037030020012001290098123703d01720014198126a41e4c3cc00410e108102200741086a20052900003700002007200129009812370000200141d0176a412010ff010c010b200141d0176a41186a4200370300200141e0176a4200370300200141d0176a41086a22054200370300200142003703d01720014198126a41f4c2cc004118108102200520014198126a41086a220629000037030020012001290098123703d01720014198126a41e4c3cc00410e108102200741086a20062900003700002007200129009812370000200141d0176a200141a00f6a10e6042004450d00200c41ffffff3f71450d002004102e0b200141d01a6a2400427f2003427f20234290f796027c220220022023541b7c220220022003541b0f0b2016200541b4cccc00103c000b1036000b1038000bf50101047f230041306b22022400200241b6d1cc004106108102200241106a41bcd1cc004107108102024002404114102c2203450d002002421437022420022003360220200241206a20014114107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bdf0b04027f027e037f077e230041a0026b22032400200341e0006a200110e202200341c8006a20032802602204200328026810f802200341d8006a2903002105200329035021062003280248210702402003280264450d002004102e0b0240024002402007450d00200341f8006a22044200370300200341e0006a41106a22074200370300200341e0006a41086a2208420037030020034200370360200341e0016a41b6d1cc0041061081022008200341e0016a41086a2209290000370300200320032900e001370360200341e0016a41e9f9c000410510810220042009290000370300200720032900e001370300200341306a200341e0006a412010f80220032903384200200328023022081b220a20067d220b200a56200341306a41106a290300420020081b220c20057d200a200654ad7d220a200c56200a200c511b0d01200341e0016a200110ad03200341e0006a20032802e001220820032802e80110ae03200341e0006a41206a290300210d2004290300210e2007290300210f20034188016a2802002104200329036821102003290360210c024020032802e401450d002008102e0b02400240200c4201520d00200341e0016a200210af03024020032903e0014201520d00200341f8006a22014200370300200341f0006a22074200370300200341e0006a41086a420037030020034200370360200341e0006a41d9fcc600410610810220034190026a4180f4cb004106108102200120034190026a41086a2900003703002007200329009002370300200341086a200341e0006a4120108e0220034190026a200210c802200341e0006a200328029002220120032802980210c9020240200328029402450d002001102e0b2000410610b0030c050b200341106a20022006200510fd012003200341186a290300370368200320032903103703602003200341e0006a3602e001200341e0016a10ce022010200f84500d01200341e0006a200210b103200328026022092003280268108f02210802402003280264450d002009102e0b024020080d00200341e0006a41186a2208200d3703002003200e3703702003201037036020032004360280012003200f3703682002200341e0006a10b2032008200241186a290000370300200341e0006a41106a200241106a290000370300200341e0006a41086a200241086a29000037030020032002290000370360200341e0016a200341e0006a10b3030c020b200341e8006a411736020020034194a4c700360264200341013a006220034183323b016041eef9c0004137200341e0006a41a8fac00041b8fac000103e000b200341206a20022006200510fd012003200341286a290300370368200320032903203703602003200341e0006a3602e001200341e0016a10ce020b200341f8006a4200370300200341e0006a41106a4200370300200341e0006a41086a2204420037030020034200370360200341e0016a41b6d1cc0041061081022004200341e0016a41086a2208290000370300200320032900e001370360200341e0016a41e9f9c0004105108102200741086a2008290000370000200720032900e0013700002003200a3703e8012003200b3703e001200341e0006a4120200341e0016a411010b201200341e0006a200110e20220032802602207200328026810ff0102402003280264450d002007102e0b200341e0006a200110ad0320032802602207200328026810ff0102402003280264450d002007102e0b200341e0006a200110ab0320032802602207200328026810ff0102402003280264450d002007102e0b200341e0006a41106a2005370300200341e0006a41086a2006370300200341e0006a41186a200229000037030020034180016a200241086a29000037030020034188016a200241106a29000037030020034190016a200241186a29000037030020034198016a2001290000370300200341a0016a200141086a290000370300200341a8016a200141106a2800003602002003410f3a0060200341e0006a10fe01200041063a00000c020b2000410210b0030c010b2000410410b0030b200341a0026a24000bf50101047f230041306b22022400200241b6d1cc004106108102200241106a41bcdbc8004107108102024002404114102c2203450d002002421437022420022003360220200241206a20014114107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bd80202027f017e230041d0006b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822010d00200042003703000c010b200328020c2102024002400240200341106a28020022044110490d0020044170714110460d002004417c714120470d010b20034100360220200342013703182003410a36022c200320033602282003200341186a360234200341cc006a41013602002003420137023c200341909dc5003602382003200341286a360248200341346a419cebc000200341386a103d1a2003280218200328022010ef020240200328021c450d002003280218102e0b420021050c010b200041186a200129001037030020002001290000370308200041286a2001280020360200200041206a200141186a290000370300200041106a200141086a290000370300420121050b200020053703002002450d002001102e0b200341d0006a24000b940304027f017e027f047e230041e0006b220224002002200110b1032002280200210120022002280208220336021420022001360210200241186a2001200310ed0202400240200228021822030d00420021040c010b200228021c2105024002400240200241206a28020022064110490d0020064170714110460d002006417c714120470d010b20024100360230200242013703282002410a36023c2002200241106a3602382002200241286a360244200241dc006a41013602002002420137024c200241909dc5003602482002200241386a360258200241c4006a419cebc000200241c8006a103d1a2002280228200228023010ef020240200228022c450d002002280228102e0b420021040c010b200341186a2900002107200341086a2900002108200329001021092003290000210a20032800202106420121040b2005450d002003102e0b200041206a2007370300200041186a2009370300200041106a20083703002000200a370308200041286a20063602002000200437030002402002280204450d002001102e0b200241e0006a24000b860201047f230041c0006b2202240041c4f6c000210341132104410521050240024002400240024002400240200141ff01710e0700010203040506000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a41d0c1cc001044000b41c0f5c000210341182104410021050c040b41e0f5c000210341102104410121050c030b41f8f5c000210341102104410221050c020b4190f6c0002103410c2104410321050c010b41acf6c000210341102104410421050b20004183303b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000bac0201037f230041e0006b22022400200241bcdbc8004107108102200241106a41bcdbc8004107108102024002404120102c2203450d002002422037023420022003360230200241306a200141201074200241c0006a200228023022012002280238220310d803200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c0006a360250200241206a200241d0006a107c02402002280234450d002001102e0b2002280228220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b20004100360208200020013602042000200436020020002002411010742000200241106a411010742000200228022022012003107402402002280224450d002001102e0b200241e0006a24000f0b1036000b1038000be40104017f027e017f027e230041306b22022400200141186a2903002103200141086a29030021042001280220210520012903102106200129030021072002200010b103200228020821002002280200210120024100360218200242013703102002200437032820022007370320200241106a200241206a411010742002200337032820022006370320200241106a200241206a4110107420022005360220200241106a200241206a410410742001200020022802102205200228021810b20102402002280214450d002005102e0b02402002280204450d002001102e0b200241306a24000bc00807027f017e017f027e017f027e067f230041c0016b22022400200241c0006a200110af03024002400240024020022903404201520d00200241d0006a22032903002104200241d8006a22052903002106200241c0006a41206a2903002107200241e8006a2802002108200229034821092005420037030020034200370300200241c0006a41086a420037030020024200370340200241c0006a41d9fcc6004106108102200241306a4180f4cb0041061081022005200241306a41086a29000037030020032002290030370300200241286a200241c0006a4120108e02200241086a200742004100200228022c410020022802281b220320086b2205200520034b1bad220a420010e808200241186a200a42002006420010e80802402002290310420052200241186a41086a290300220720022903087c2206200754720d0020092002290318220756200420065620042006511b0d020b200242f6cacda397cddbb320370330200241c0006a200110d4062002280248210b2002410036024802400240200b0d004100210c2002280240210d0c010b2002280240220d41106a210e4100210f4100210c410021080240034002400240200c450d00200d20084105746a2103200d2008200f6a4105746a21050340200341106a22102900002002290330510d0220052003290300370300200541186a200341186a290300370300200541106a2010290300370300200541086a200341086a290300370300200541206a2105200341206a2103200b200841016a22084b0d000c040b0b200e20084105746a2103034020032900002002290330510d01200341206a2103200b200841016a22084b0d000b4100210c0c030b200f417f6a210f200c41016a210c200b200841016a22084b0d000b0b0240200c0d004100210c0c010b200d2008200c6b4105746a200d20084105746a200b20086b41057410ea081a0b2002200b200c6b22033602482001200d200310d5060240200228024441ffffff3f71450d00200d102e0b200241c0006a200110b10320022802402203200228024810ff0102402002280244450d002003102e0b200241c0006a41086a41013a0000200241c9006a2001290000370000200241d1006a200141086a290000370000200241e1006a200141186a290000370000200241103a0040200241d9006a200141106a290000370000200241c0006a10fe010c020b2000410110d6060c020b42f6cacda397cddbb32020014200200920077d220a200a200956200420067d2009200754ad7d220620045620062004511b22031b22044200200620031b22064106108506200241f8006a2006370300200241f0006a2004370300200241c0006a41086a41003a0000200241c9006a2001290000370000200241d1006a200141086a290000370000200241e1006a200141186a290000370000200241103a0040200241d9006a200141106a290000370000200241c0006a10fe010b200041063a00000b200241c0016a24000b13002000410a360204200041c4ffc0003602000b340020004190fec60036020420004100360200200041146a4102360200200041106a4188b2c100360200200041086a42053702000b130020004106360204200041d8b6c1003602000b4201027f230041106b2202240002404104102c22030d001036000b20004204370204200020033602002002412036020c20002002410c6a41041074200241106a24000b4201027f230041106b2202240002404102102c22030d001036000b2000420237020420002003360200200241203b010e20002002410e6a41021074200241106a24000b4a01027f230041106b2202240002404110102c22030d001036000b20004210370204200020033602002002420037030820024280cdad9d013703002000200241101074200241106a24000b4b01027f230041106b2202240002404110102c22030d001036000b2000421037020420002003360200200242003703082002428088caade9053703002000200241101074200241106a24000be22505027f017e027f017e037f230041b0046b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802000e1c0102030405060708090a0b0c0d0e0f101112131415161718191a1b00010b200241086a200141386a10ca0120024180026a41286a200141306a29030037030020024180026a41206a200141286a29030037030020024180026a41186a200141206a29030037030020024180026a41106a200141186a29030037030020024180026a41086a200141106a2903003703002002200141086a29030037038002200141f8016a280200210320024180026a41306a200241086a41c00110e9081a20014180026a2903002104200241086a20024180026a41f00110e9081a200041086a200241086a41f00110e9081a20004180026a2004370300200041f8016a20033602002000411b3602000c1b0b20024180026a200141086a10cb0120004100360200200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c1a0b20024180026a200141046a10cc0120004101360200200041246a200241a0026a2802003602002000411c6a20024198026a290300370200200041146a20024190026a2903003702002000410c6a20024188026a29030037020020002002290380023702040c190b20024180026a200141086a10cd01200041086a20024180026a41a00210e9081a200041023602000c180b20004103360200200041086a200141086a2903003703000c170b41042103200141046a210502400240024002400240024002400240024020012d0004417f6a0e050102030405000b41e2a0cc00412841e89bc4001039000b200141086a2802002105410121030c040b41022103200241086a41026a200541036a2d00003a000020024180026a41086a200141146a29020037030020024190026a2001411c6a29020037030020024198026a200141246a2d00003a0000200220052f00013b010820022001410c6a29020037038002200141086a2802002105200141286a28020021010c040b200141086a2802002105410321030c020b2002410a6a200541036a2d00003a000020024180026a41086a200141146a29020037030020024190026a2001411c6a29020037030020024198026a200141246a2d00003a0000200220052f00013b010820022001410c6a2902003703800220012d00254100472106200141086a2802002105200141286a28020021010c030b200141086a2802002105410521030b0b0b200020033a0004200020022f01083b0005200020063a0025200020022f01fc013b0126200041086a20053602002000410c6a200229038002370200200041286a2001360200200041076a2002410a6a2d00003a0000200041146a20024180026a41086a2903003702002000411c6a20024190026a290300370200200041246a20024198026a2d00003a0000200041043602000c160b20024180026a200141086a10ce01200041086a20024180026a41e00010e9081a200041053602000c150b20024180026a200141046a10cf01200041063602002000410c6a20024188026a28020036020020002002290380023702040c140b20024180026a200141086a10d001200041086a20024180026a41d80010e9081a200041073602000c130b10d101000b02400240200128020422050d00410021030c010b20024180026a41186a200141286a29000037030020024180026a41106a200141206a29000037030020024188026a200141186a29000037030020024180026a41286a200141386a29000037030020024180026a41306a200141c0006a29000037030020024180026a41386a200141c8006a29000037030020024180026a41c8006a200141d8006a29000037030020024180026a41d0006a200141e0006a29000037030020024180026a41d8006a200141e8006a2900003703002002200141106a290000370380022002200141306a2900003703a0022002200141d0006a2900003703c00220024180026a41f8006a20014188016a29000037030020024180026a41f0006a20014180016a29000037030020024180026a41e8006a200141f8006a29000037030020024180026a4198016a200141a8016a29000037030020024180026a4190016a200141a0016a29000037030020024180026a4188016a20014198016a29000037030020024180026a41b8016a200141c8016a29000037030020024180026a41b0016a200141c0016a29000037030020024180026a41a8016a200141b8016a2900003703002002200141f0006a2900003703e002200220014190016a290000370380032002200141b0016a2900003703a0032001410c6a2802002201417f4c0d130240024020010d00410121030c010b2001102c2203450d150b20032005200110e9081a200241086a20024180026a41c00110e9081a0b200020033602042000410c6a2001360200200041086a2001360200200041106a200241086a41c00110e9081a200041093602000c110b20024180026a200141086a10d201200041086a20024180026a41980210e9081a2000410a3602000c100b20024180026a200141046a10d301200041046a20024180026a41e80010e9081a2000410b3602000c0f0b10d401000b20024180026a200141086a10d5012000410d360200200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0d0b20024180026a200141086a10d6012000410e360200200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0c0b20024180026a200141086a10d6012000410f360200200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0b0b20024180026a200141086a10d70120004110360200200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0a0b200141046a2103410721050240024002400240024002400240024020012d0004417f6a0e0701020304050607000b41e2a0cc00412841a4c3cb001039000b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410121050c050b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410221050c040b20024180026a41186a200341196a29000037030020024180026a41106a200341116a29000037030020024180026a41086a200341096a290000370300200241086a41086a200341296a290000370300200241086a41106a200341316a290000370300200241086a41186a200341396a29000037030020022003290001370380022002200341216a290000370308410321050c030b200241086a200141086a10c8012002418b026a200241086a41086a2802003600002002200229030837008302410421050c020b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410521050c010b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410621050b200020053a0004200020022903800237000520002002290308370025200020022f00fc013b00452000410d6a20024180026a41086a290300370000200041156a20024180026a41106a2903003700002000411d6a20024180026a41186a2903003700002000412d6a200241086a41086a290300370000200041356a200241086a41106a2903003700002000413d6a200241086a41186a290300370000200041c7006a200241fe016a2d00003a0000200041113602000c090b024002400240024002400240200141086a280200417f6a0e03010203000b41e2a0cc0041284184ccc2001039000b200141386a2903002104200141306a29030021074101210841012109024002400240024002402001410c6a2d00000e050104020300010b4104210920024180026a41046a200141206a2d00003a000020022001411c6a2800003602800220012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a28020021050c030b20024188026a200141246a29000037030020024180026a41106a2001412c6a2d00003a000020022001411c6a2900003703800220012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a2802002105410021090c020b200141186a2802002203417f4c0d0f200141106a28020021010240024020030d00410121050c010b2003102c2205450d110b20052001200310e9081a410221092003210a0c010b20024188026a200141246a29000037030020024180026a41106a2001412c6a2d00003a000020022001411c6a2900003703800220012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a2802002105410321090b200241086a41106a20024180026a41106a2d00003a0000200241086a41086a20024180026a41086a290300370300200241046a41026a200241fc016a41026a2d00003a00002002200229038002370308200220022f00fc013b01040c030b2001410c6a28020022094108762106410221080c010b2001410c6a28020022094108762106410321080b0b200020022f01043b002d20004112360200200041386a2004370300200041306a2007370300200041186a200a360200200041146a2003360200200041106a2005360200200041086a20083602002000411c6a20022903083702002000410c6a2006410874200941ff017172360200200041246a200241086a41086a2903003702002000412c6a200241086a41106a2d00003a00002000412f6a200241066a2d00003a00000c080b20024180026a200141086a10d801200041086a20024180026a41f00010e9081a200041133602000c070b20024180026a200141086a10d901200041086a20024180026a41f80010e9081a200041143602000c060b024002400240024020012f0104417f6a0e03010200010b20024180026a200141086a10c90120022902840221042002280280022103410321010c020b20024180026a200141086a10c90120022902840221042002280280022103410121010c010b20012f0106210541b002102c2203450d0820024180026a200141086a28020010da01200320024180026a41b00210e9081a410221010b200020013b0104200041153602002000410c6a2004370200200041086a2003360200200041066a20053b01000c050b20024180026a200141086a10db01200041086a20024180026a41a80210e9081a200041163602000c040b20024180026a200141046a10dc01200041046a20024180026a41c80010e9081a200041173602000c030b20024180026a200141086a10dd01200041086a20024180026a41c80010e9081a200041183602000c020b20024180026a200141086a10de0120004119360200200041c0006a20024180026a41386a290300370300200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c010b20024180026a200141086a10df012000411a360200200041c0006a20024180026a41386a290300370300200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000b200241b0046a24000f0b1038000b1036000bec3703057f047e047f230041900c6b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020060e0a0102030405060708090a0b0b2000410b3a00000c130b41002104200241003a0080040240024002400340200128020022032802042205450d01200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a290300220737030020024190016a41086a2203200241e0036a41086a29030037030020024190016a41106a2204200241e0036a41106a29030037030020024190016a41186a22052007370300200220022903e00337039001200241f0006a41186a2005290300370300200241f0006a41106a2004290300370300200241f0006a41086a20032903003703002002200229039001370370200128020022032802042204450d12200328020022052d0000210620032004417f6a3602042003200541016a3602004107210320060e020201120b0240200441ff0171450d00200241003a0080040b2000410b3a00000c140b200128020022032802042204450d10200328020022052d0000210620032004417f6a3602042003200541016a360200410021030240024002400240024020060e0705040001150203150b410221030c040b410321030c030b410521030c020b410621030c010b410121030b2001200128020441016a22043602040240200420012802084b0d00200241e0036a200110950120022802e0032104200241b0016a200241e0036a41047241ac0210e9081a2004411c460d00200241e0036a200241b0016a41ac0210e9081a41b002102c2205450d1220052004360200200541046a200241e0036a41ac0210e9081a200241d0006a41186a200241f0006a41186a2903002207370300200241d0006a41106a200241f0006a41106a2903002208370300200241d0006a41086a200241f0006a41086a290300220937030020012001280204417f6a36020420022002290370220a370350200041013a00002000200a370001200041096a2009370000200041116a2008370000200041196a2007370000200041246a2005360200200041216a20033a0000200041286a2002290230370200200041306a200241306a41086a290200370200200041386a200241306a41106a290200370200200041c0006a200241306a41186a2902003702000c130b2000410b3a00000c120b41002104200241003a0080040240024002400240024002400240024002400340200128020022032802042205450d01200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a290300220737030020024190016a41086a2203200241e0036a41086a29030037030020024190016a41106a2204200241e0036a41106a29030037030020024190016a41186a22052007370300200220022903e00337039001200241f0006a41186a2005290300370300200241f0006a41106a2004290300370300200241f0006a41086a20032903003703002002200229039001370370200128020022032802042204450d07200328020022052d0000210620032004417f6a3602042003200541016a3602004100210320060e0706050102070304070b0240200441ff0171450d00200241003a0080040b2000410b3a00000c190b410221030c040b410321030c030b410521030c020b410621030c010b410121030b2001280200220128020422044104490d0120012802002205280000210620012004417c6a3602042001200541046a360200200241d0006a41086a200241f0006a41086a2903002207370300200241d0006a41106a200241f0006a41106a2903002208370300200241d0006a41186a200241f0006a41186a290300220937030020022002290370220a370350200041023a00002000200a370001200041096a2007370000200041116a2008370000200041196a2009370000200041246a2006360200200041216a20033a0000200041286a2002290230370200200041306a200241306a41086a290200370200200041386a200241306a41106a290200370200200041c0006a200241306a41186a2902003702000c130b2000410b3a00000c120b2000410b3a00000c110b41002104200241003a0080040240024002400240024002400240024002400340200128020022032802042205450d01200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a290300220737030020024190016a41086a2203200241e0036a41086a29030037030020024190016a41106a2204200241e0036a41106a29030037030020024190016a41186a22052007370300200220022903e00337039001200241f0006a41186a2005290300370300200241f0006a41106a2004290300370300200241f0006a41086a20032903003703002002200229039001370370200128020022032802042204450d07200328020022052d0000210620032004417f6a3602042003200541016a3602004100210320060e0706050102070304070b0240200441ff0171450d00200241003a0080040b2000410b3a00000c180b410221030c040b410321030c030b410521030c020b410621030c010b410121030b2001280200220128020422044104490d0120012802002205280000210620012004417c6a3602042001200541046a360200200241d0006a41086a200241f0006a41086a2903002207370300200241d0006a41106a200241f0006a41106a2903002208370300200241d0006a41186a200241f0006a41186a290300220937030020022002290370220a370350200041033a00002000200a370001200041096a2007370000200041116a2008370000200041196a2009370000200041246a2006360200200041216a20033a0000200041286a2002290230370200200041306a200241306a41086a290200370200200041386a200241306a41106a290200370200200041c0006a200241306a41186a2902003702000c120b2000410b3a00000c110b2000410b3a00000c100b200041043a00000c0f0b200128020022032802042204450d0c200328020022052d0000210620032004417f6a3602042003200541016a3602004100210402400240024002400240024020060e0705000102120304120b410121040c040b410221040c030b410321040c020b410521040c010b410621040b024002402001280200220328020422054104490d0020032802002206280000210b20032005417c6a3602042003200641046a3602002001280200220128020422034102490d01200128020022052f0000210620012003417e6a3602042001200541026a360200200041046a200b360200200041026a20063b0100200020043a0001200041053a0000200041086a20022902e003370200200041106a200241e0036a41086a290200370200200041186a200241e0036a41106a290200370200200041206a200241e0036a41186a290200370200200041286a200241e0036a41206a290200370200200041306a200241e0036a41286a290200370200200041386a200241e0036a41306a290200370200200041c0006a200241e0036a41386a2902003702000c100b2000410b3a00000c0f0b2000410b3a00000c0e0b41002104200241003a008004024002400240024002400240024002400240024002400340200128020022032802042205450d01200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a290300220737030020024190016a41086a2203200241e0036a41086a29030037030020024190016a41106a2204200241e0036a41106a29030037030020024190016a41186a22052007370300200220022903e00337039001200241f0006a41186a2005290300370300200241f0006a41106a2004290300370300200241f0006a41086a20032903003703002002200229039001370370200128020022032802042204450d07200328020022052d0000210620032004417f6a3602042003200541016a3602004100210420060e0706050102070304070b0240200441ff0171450d00200241003a0080040b2000410b3a00000c170b410221040c040b410321040c030b410521040c020b410621040c010b410121040b2001280200220328020422054102490d01200328020022062f0000210b20032005417e6a3602042003200641026a360200200241086a200110ad0120022802080d02200228020c21032002200110ad0120022802000d0320022802042101200241d0006a41186a200241f0006a41186a2903002207370300200241d0006a41106a200241f0006a41106a2903002208370300200241d0006a41086a200241f0006a41086a290300220937030020022002290370220a370350200041063a00002000200a370001200041096a2009370000200041116a2008370000200041196a2007370000200041286a2001360200200041246a2003360200200041226a200b3b0100200041216a20043a00002000412c6a2002290230370200200041346a200241306a41086a2902003702002000413c6a200241306a41106a290200370200200041c4006a200241306a41186a2802003602000c110b2000410b3a00000c100b2000410b3a00000c0f0b2000410b3a00000c0e0b2000410b3a00000c0d0b41002104200241003a008004024002400340200128020022032802042205450d01200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a290300220737030020024190016a41086a2203200241e0036a41086a29030037030020024190016a41106a2204200241e0036a41106a29030037030020024190016a41186a22052007370300200220022903e00337039001200241f0006a41186a2005290300370300200241f0006a41106a2004290300370300200241f0006a41086a2003290300370300200220022903900137037041002104200241003a0080040340200128020022032802042205450d02200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a2903002207370300200241306a41086a2201200241e0036a41086a290300370300200241306a41106a2203200241e0036a41106a290300370300200241306a41186a22042007370300200220022903e003370330200241d0006a41186a2205200241f0006a41186a290300370300200241d0006a41106a2206200241f0006a41106a290300370300200241d0006a41086a220b200241f0006a41086a29030037030020022002290370370350200041073a000020002002290350370001200041096a200b290300370000200041116a2006290300370000200041196a2005290300370000200041216a2002290330370000200041296a2001290300370000200041316a2003290300370000200041396a2004290300370000200041c1006a2002280010360000200041c4006a200241136a2800003600000c0e0b0240200441ff0171450d00200241003a0080040b2000410b3a00000c0d0b0240200441ff0171450d00200241003a0080040b2000410b3a00000c0c0b41002104200241003a008004024002400340200128020022032802042205450d01200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a290300220737030020024190016a41086a2203200241e0036a41086a29030037030020024190016a41106a2204200241e0036a41106a29030037030020024190016a41186a22052007370300200220022903e00337039001200241f0006a41186a2005290300370300200241f0006a41106a2004290300370300200241f0006a41086a2003290300370300200220022903900137037041002104200241003a0080040340200128020022032802042205450d02200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a2903002207370300200241306a41086a2201200241e0036a41086a290300370300200241306a41106a2203200241e0036a41106a290300370300200241306a41186a22042007370300200220022903e003370330200241d0006a41186a2205200241f0006a41186a290300370300200241d0006a41106a2206200241f0006a41106a290300370300200241d0006a41086a220b200241f0006a41086a29030037030020022002290370370350200041083a000020002002290350370001200041096a200b290300370000200041116a2006290300370000200041196a2005290300370000200041216a2002290330370000200041296a2001290300370000200041316a2003290300370000200041396a2004290300370000200041c1006a2002280010360000200041c4006a200241136a2800003600000c0d0b0240200441ff0171450d00200241003a0080040b2000410b3a00000c0c0b0240200441ff0171450d00200241003a0080040b2000410b3a00000c0b0b41002104200241003a008004024002400340200128020022032802042205450d01200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a290300220737030020024190016a41086a2203200241e0036a41086a29030037030020024190016a41106a2204200241e0036a41106a29030037030020024190016a41186a22052007370300200220022903e00337039001200241f0006a41186a2005290300370300200241f0006a41106a2004290300370300200241f0006a41086a2003290300370300200220022903900137037041002104200241003a0080040340200128020022032802042205450d02200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a2903002207370300200241306a41086a2201200241e0036a41086a290300370300200241306a41106a2203200241e0036a41106a290300370300200241306a41186a22042007370300200220022903e003370330200241d0006a41186a2205200241f0006a41186a290300370300200241d0006a41106a2206200241f0006a41106a290300370300200241d0006a41086a220b200241f0006a41086a29030037030020022002290370370350200041093a000020002002290350370001200041096a200b290300370000200041116a2006290300370000200041196a2005290300370000200041216a2002290330370000200041296a2001290300370000200041316a2003290300370000200041396a2004290300370000200041c1006a2002280010360000200041c4006a200241136a2800003600000c0c0b0240200441ff0171450d00200241003a0080040b2000410b3a00000c0b0b0240200441ff0171450d00200241003a0080040b2000410b3a00000c0a0b41002104200241003a00800402400340200128020022032802042205450d01200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a290300220737030020024190016a41086a2203200241e0036a41086a29030037030020024190016a41106a2204200241e0036a41106a29030037030020024190016a41186a22052007370300200220022903e00337039001200241d0006a41186a2005290300370300200241d0006a41106a2004290300370300200241d0006a41086a2003290300370300200220022903900137035041002104200241003a0080040340200128020022032802042205450d03200241e0036a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a0080042003210420034120470d000b200241b0016a41186a200241e0036a41186a290300220737030020024190016a41086a2203200241e0036a41086a29030037030020024190016a41106a2204200241e0036a41106a29030037030020024190016a41186a22052007370300200220022903e00337039001200241f0006a41186a2005290300370300200241f0006a41106a2004290300370300200241f0006a41086a20032903003703002002200229039001370370200128020022032802042204450d05200328020022052d0000210620032004417f6a3602042003200541016a3602004107210320060e020403050b0240200441ff0171450d00200241003a0080040b2000410b3a00000c090b2000410b3a00000c080b0240200441ff0171450d00200241003a0080040b2000410b3a00000c070b200128020022032802042204450d01200328020022052d0000210620032004417f6a3602042003200541016a360200410021030240024002400240024020060e0705040001060203060b410221030c040b410321030c030b410521030c020b410621030c010b410121030b2001200128020441016a2204360204200420012802084b0d01200241e0036a200110950120022802e0032104200241b0016a200241e0036a41047241ac0210e9081a2004411c460d01200241e0036a200241b0016a41ac0210e9081a41b002102c2205450d0420052004360200200541046a200241e0036a41ac0210e9081a200241306a41086a2204200241d0006a41086a290300370300200241306a41106a2206200241d0006a41106a290300370300200241306a41186a220b200241d0006a41186a290300370300200241106a41086a220c200241f0006a41086a290300370300200241106a41106a220d200241f0006a41106a290300370300200241106a41186a220e200241f0006a41186a29030037030020012001280204417f6a36020420022002290350370330200220022903703703102000410a3a000020002002290330370001200041096a2004290300370000200041116a2006290300370000200041196a200b290300370000200041216a2002290310370000200041296a200c290300370000200041316a200d290300370000200041396a200e290300370000200041c4006a2005360200200041c1006a20033a00000c050b2000410b3a00000c040b2000410b3a00000c030b2000410b3a00000c020b2000410b3a00000c010b1036000b200241900c6a24000bad2a03067f047e027f230041e0066b22022400024002400240024002400240024002400240024002400240024002400240024002400240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a36020020050e0a0102030405060708090b0a0b2000410b3a00000c100b200241d0036a200110930120022d00d0034101460d0a20024198016a200241e9036a29000037030020024190016a200241e1036a29000037030020024188016a200241d9036a290000370300200220022900d10337038001024020012802042203450d00200128020022042d0000210520012003417f6a22073602042001200441016a360200410721060240024020050e020100020b2007450d0120042d0001210520012003417e6a3602042001200441026a360200410021060240024002400240024020050e0705040001060203060b410221060c040b410321060c030b410521060c020b410621060c010b410121060b200241d0036a200110980120022802d0032101200241a0016a200241d0036a41047241ac0210e9081a024002402001411c460d00200241d0036a200241a0016a41ac0210e9081a41b002102c22030d010c130b2000410b3a00000c110b20032001360200200341046a200241d0036a41ac0210e9081a200241e0006a41186a20024180016a41186a2903002208370300200241e0006a41106a20024180016a41106a2903002209370300200241e0006a41086a20024180016a41086a290300220a3703002002200229038001220b370360200041013a00002000200b370001200041096a200a370000200041116a2009370000200041196a2008370000200041246a2003360200200041216a20063a0000200041286a2002290240370200200041306a200241c0006a41086a290200370200200041386a200241c0006a41106a290200370200200041c0006a200241c0006a41186a2902003702000c100b2000410b3a00000c0f0b200241d0036a200110930102400240024020022d00d0034101460d00200241b8016a200241e9036a290000370300200241b0016a200241e1036a290000370300200241a8016a200241d9036a290000370300200220022900d1033703a00120012802042203450d0d200128020022042d0000210620012003417f6a22073602042001200441016a36020041002105024002400240024020060e0706050001110203110b410221050c050b410321050c040b410521050c030b410621050c020b2000410b3a00000c100b410121050b024020074104490d002004280001210620012003417b6a3602042001200441056a36020020024180016a41086a200241a0016a41086a290300220837030020024180016a41106a200241a0016a41106a290300220937030020024180016a41186a200241a0016a41186a290300220a370300200220022903a001220b37038001200041023a00002000200b370001200041096a2008370000200041116a2009370000200041196a200a370000200041246a2006360200200041216a20053a0000200041286a2002290260370200200041306a200241e0006a41086a290200370200200041386a200241e0006a41106a290200370200200041c0006a200241e0006a41186a2902003702000c0f0b2000410b3a00000c0e0b200241d0036a200110930102400240024020022d00d0034101460d00200241b8016a200241e9036a290000370300200241b0016a200241e1036a290000370300200241a8016a200241d9036a290000370300200220022900d1033703a00120012802042203450d0d200128020022042d0000210620012003417f6a22073602042001200441016a36020041002105024002400240024020060e0706050001110203110b410221050c050b410321050c040b410521050c030b410621050c020b2000410b3a00000c0f0b410121050b024020074104490d002004280001210620012003417b6a3602042001200441056a36020020024180016a41086a200241a0016a41086a290300220837030020024180016a41106a200241a0016a41106a290300220937030020024180016a41186a200241a0016a41186a290300220a370300200220022903a001220b37038001200041033a00002000200b370001200041096a2008370000200041116a2009370000200041196a200a370000200041246a2006360200200041216a20053a0000200041286a2002290260370200200041306a200241e0006a41086a290200370200200041386a200241e0006a41106a290200370200200041c0006a200241e0006a41186a2902003702000c0e0b2000410b3a00000c0d0b200041043a00000c0c0b0240024002402006450d0020042d0001210620012003417e6a22073602042001200441026a3602004100210502400240024002400240024020060e0705000102060304060b410121050c040b410221050c030b410321050c020b410521050c010b410621050b20074104490d012004280002210720012003417a6a22063602042001200441066a36020020064102490d0220042f000621062001200341786a3602042001200441086a360200200041046a2007360200200041026a20063b0100200020053a0001200041053a0000200041086a20022902d003370200200041106a200241d0036a41086a290200370200200041186a200241d0036a41106a290200370200200041206a200241d0036a41186a290200370200200041286a200241d0036a41206a290200370200200041306a200241d0036a41286a290200370200200041386a200241d0036a41306a290200370200200041c0006a200241d0036a41386a2902003702000c0e0b2000410b3a00000c0d0b2000410b3a00000c0c0b2000410b3a00000c0b0b200241d0036a2001109301024002400240024002400240024020022d00d0034101460d00200241b8016a200241e9036a290000370300200241b0016a200241e1036a290000370300200241a8016a200241d9036a290000370300200220022900d1033703a00120012802042203450d03200128020022042d0000210520012003417f6a22063602042001200441016a36020041002107024002400240024020050e0706050001070203070b410221070c050b410321070c040b410521070c030b410621070c020b2000410b3a00000c100b410121070b20064102490d0120042f0001210520012003417d6a3602042001200441036a360200200241106a200110ab0120022802100d0220022802142103200241086a200110ab0120022802080d03200228020c210120024180016a41186a200241a0016a41186a290300220837030020024180016a41106a200241a0016a41106a290300220937030020024180016a41086a200241a0016a41086a290300220a370300200220022903a001220b37038001200041063a00002000200b370001200041096a200a370000200041116a2009370000200041196a2008370000200041286a2001360200200041246a2003360200200041226a20053b0100200041216a20073a00002000412c6a2002290260370200200041346a200241e0006a41086a2902003702002000413c6a200241e0006a41106a290200370200200041c4006a200241e0006a41186a2802003602000c0e0b2000410b3a00000c0d0b2000410b3a00000c0c0b2000410b3a00000c0b0b2000410b3a00000c0a0b200241d0036a2001109301024020022d00d0034101460d00200241f8006a200241e9036a290000370300200241f0006a200241e1036a290000370300200241e8006a200241d9036a290000370300200220022900d10337036041002104200241003a00f0032001280204417f6a21030240024003402003417f460d01200241d0036a20046a200128020022052d00003a0000200120033602042001200541016a3602002002200441016a22053a00f0032003417f6a21032005210420054120470d000b200241a0016a41086a2201200241d0036a41086a290300370300200241a0016a41106a2203200241d0036a41106a290300370300200241a0016a41186a2204200241d0036a41186a290300370300200220022903d0033703a001200541ff0171411f4d0d01200241206a41086a22052001290300370300200241206a41106a22012003290300370300200241206a41186a22032004290300370300200241c0006a41086a2204200241e0006a41086a290300370300200241c0006a41106a2206200241e0006a41106a290300370300200241c0006a41186a2207200241e0006a41186a290300370300200220022903a00137032020022002290360370340200041073a000020002002290340370001200041096a2004290300370000200041116a2006290300370000200041196a2007290300370000200041216a2002290320370000200041296a2005290300370000200041316a2001290300370000200041396a2003290300370000200041c1006a2002280019360000200041c4006a2002411c6a2800003600000c0c0b200441ff0171450d00200241003a00f0030b2000410b3a00000c0a0b2000410b3a00000c090b200241d0036a2001109301024020022d00d0034101460d00200241f8006a200241e9036a290000370300200241f0006a200241e1036a290000370300200241e8006a200241d9036a290000370300200220022900d10337036041002104200241003a00f0032001280204417f6a21030240024003402003417f460d01200241d0036a20046a200128020022052d00003a0000200120033602042001200541016a3602002002200441016a22053a00f0032003417f6a21032005210420054120470d000b200241a0016a41086a2201200241d0036a41086a290300370300200241a0016a41106a2203200241d0036a41106a290300370300200241a0016a41186a2204200241d0036a41186a290300370300200220022903d0033703a001200541ff0171411f4d0d01200241206a41086a22052001290300370300200241206a41106a22012003290300370300200241206a41186a22032004290300370300200241c0006a41086a2204200241e0006a41086a290300370300200241c0006a41106a2206200241e0006a41106a290300370300200241c0006a41186a2207200241e0006a41186a290300370300200220022903a00137032020022002290360370340200041083a000020002002290340370001200041096a2004290300370000200041116a2006290300370000200041196a2007290300370000200041216a2002290320370000200041296a2005290300370000200041316a2001290300370000200041396a2003290300370000200041c1006a2002280019360000200041c4006a2002411c6a2800003600000c0b0b200441ff0171450d00200241003a00f0030b2000410b3a00000c090b2000410b3a00000c080b200241d0036a2001109301024020022d00d0034101460d00200241f8006a200241e9036a290000370300200241f0006a200241e1036a290000370300200241e8006a200241d9036a290000370300200220022900d10337036041002104200241003a00f0032001280204417f6a21030240024003402003417f460d01200241d0036a20046a200128020022052d00003a0000200120033602042001200541016a3602002002200441016a22053a00f0032003417f6a21032005210420054120470d000b200241a0016a41086a2201200241d0036a41086a290300370300200241a0016a41106a2203200241d0036a41106a290300370300200241a0016a41186a2204200241d0036a41186a290300370300200220022903d0033703a001200541ff0171411f4d0d01200241206a41086a22052001290300370300200241206a41106a22012003290300370300200241206a41186a22032004290300370300200241c0006a41086a2204200241e0006a41086a290300370300200241c0006a41106a2206200241e0006a41106a290300370300200241c0006a41186a2207200241e0006a41186a290300370300200220022903a00137032020022002290360370340200041093a000020002002290340370001200041096a2004290300370000200041116a2006290300370000200041196a2007290300370000200041216a2002290320370000200041296a2005290300370000200041316a2001290300370000200041396a2003290300370000200041c1006a2002280019360000200041c4006a2002411c6a2800003600000c0a0b200441ff0171450d00200241003a00f0030b2000410b3a00000c080b2000410b3a00000c070b2000410b3a00000c060b200241d0036a200110930120022d00d0034101460d03200241e0006a41186a200241e9036a2203290000370300200241e0006a41106a200241e1036a2204290000370300200241e0006a41086a200241d9036a2205290000370300200220022900d103370360200241d0036a2001109301024002400240024020022d00d0034101460d0020024180016a41186a200329000037030020024180016a41106a200429000037030020024180016a41086a2005290000370300200220022900d1033703800120012802042203450d03200128020022042d0000210520012003417f6a22073602042001200441016a36020041072106024020050e020300040b2007450d0320042d0001210520012003417e6a3602042001200441026a36020041002106024002400240024020050e0706050001070203070b410221060c050b410321060c040b410521060c030b410621060c020b2000410b3a00000c080b410121060b200241d0036a200110980120022802d0032101200241a0016a200241d0036a41047241ac0210e9081a2001411c460d05200241d0036a200241a0016a41ac0210e9081a41b002102c2203450d0720032001360200200341046a200241d0036a41ac0210e9081a200241c0006a41086a2201200241e0006a41086a290300370300200241c0006a41106a2204200241e0006a41106a290300370300200241c0006a41186a2205200241e0006a41186a290300370300200241206a41086a220720024180016a41086a290300370300200241206a41106a220c20024180016a41106a290300370300200241206a41186a220d20024180016a41186a2903003703002002200229036037034020022002290380013703202000410a3a000020002002290340370001200041096a2001290300370000200041116a2004290300370000200041196a2005290300370000200041216a2002290320370000200041296a2007290300370000200041316a200c290300370000200041396a200d290300370000200041c4006a2003360200200041c1006a20063a00000c060b2000410b3a00000c050b2000410b3a00000c040b2000410b3a00000c030b2000410b3a00000c020b2000410b3a00000c010b2000410b3a00000b200241e0066a24000f0b1036000baf0101017f230041106b22042400200420003703082003200441086a410810740240024002400240200141ff01710e03000102030b200441003a00072003200441076a410110740c020b200441013a00072003200441076a410110740c010b200441023a00072003200441076a410110740b02400240200241ff01714101460d00200441003a00072003200441076a410110740c010b200441013a00072003200441076a410110740b200441106a24000b13002000410236020420004188c4c1003602000b3400200041a081ca0036020420004100360200200041146a4107360200200041106a41d0ccc100360200200041086a42073702000b2f01017f02404104102c22020d001036000b2000420437020420002002360200410020001076410141002000109c010bf70201047f230041e0006b22022400200241086a41a081ca004107108102200241186a41e4d3c100410810810202400240200141086a280200220341046a2204417f4c0d000240024020040d00410121050c010b2004102c2205450d020b200241003602402002200436023c20022005360238200241386a200141041074200128020421012003200241386a1076200241386a2001200310742002200228023822012002280240220410a301370348200241dc006a200120046a360200200220013602582002200241d0006a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220441206a2201417f4c0d000240024020010d00410121030c010b2001102c2203450d020b2000410036020820002001360204200020033602002000200241086a411010742000200241186a41101074200020022802282201200410740240200228022c450d002001102e0b200241e0006a24000f0b1038000b1036000b960203047f017e027f230041306b22012400200141186a22024200370300200141106a22034200370300200141086a4200370300200142003703002001418ef9c0004110108102200141206a41c7c3cb0041071081022002200141206a41086a29000037030020032001290020370300200141206a200110f10220012802202203410820031b2104410021020240024002402001290224420020031b2205422088a722030e020201000b4100210203402003410176220620026a210720072002200420074106746a41206a2000412010ec084101481b2102200320066b220341014b0d000b0b200420024106746a41206a2000412010ec084521020b0240200542ffffff1f83500d002004102e0b200141306a240020020b130020004105360204200041acd8c1003602000b3400200041b6d1cc0036020420004100360200200041146a4105360200200041106a41b8f0c100360200200041086a42063702000b130020004101360204200041f4f7c1003602000b3101017f02404125102c22020d001036000b2000422537020420002002360200412120001076200041b8fcc600412110740b13002000410636020420004194fcc1003602000b34002000418ef9c00036020420004100360200200041146a4105360200200041106a41c09ec200360200200041086a42103702000b5401017f230041106b2202240020004100360208200042013702004100200010762002420037030820024200370300200020024110107420024200370308200242003703002000200241101074200241106a24000b2901017f230041106b2202240020024100360208200242083703002000200210b401200241106a24000b130020004107360204200041a0a9c2003602000b4b01027f230041106b22022400200242f0d0c9abc6add9b1f40037030802404108102c22030d001036000b20004208370204200020033602002000200241086a41081074200241106a24000b4201027f230041106b2202240002404104102c22030d001036000b20004204370204200020033602002002410d36020c20002002410c6a41041074200241106a24000b4b01027f230041106b2202240002404110102c22030d001036000b20004210370204200020033602002002420037030820024280e0cdb8eb053703002000200241101074200241106a24000ba30302057f017e230041b0016b220224002002200141206a41e7e485f30610d103200228020421032002280200210441002105200241003a0068024002400240034020032005460d01200241c8006a20056a200420056a2d00003a00002002200541016a22063a00682006210520064120470d000b200241f0006a41086a2205200241c8006a41086a290300370300200241f0006a41106a2203200241c8006a41106a290300370300200241f0006a41186a2204200241c8006a41186a29030037030020022002290348370370200641ff0171411f4d0d01200241286a41186a20042903002207370300200241086a41086a2005290300370300200241086a41106a2003290300370300200241086a41186a2007370300200220022903703703080c020b200541ff0171450d00200241003a00680b200241106a4200370300200241186a4200370300200241206a4200370300200242003703080b20002001360200200020022903083700042000410c6a200241106a290300370000200041146a200241186a2903003700002000411c6a200241206a290300370000200241b0016a24000bc00101027f4100210341d4e2cc0021040240024002400240024002400240200241e6e485f3064a0d00200241f0c2c98b06460d03200241e2c289ab06460d01200241e1ea91cb06470d06200141a0016a21040c050b200241e9dabdf306460d01200241e1e69df306460d03200241e7e485f306470d0541202103200121040c050b41202103200141206a21040c040b200141c0006a21040c020b200141e0006a21040c010b20014180016a21040b412021030b20002003360204200020043602000ba30302057f017e230041b0016b220224002002200141206a41e9dabdf30610d103200228020421032002280200210441002105200241003a0068024002400240034020032005460d01200241c8006a20056a200420056a2d00003a00002002200541016a22063a00682006210520064120470d000b200241f0006a41086a2205200241c8006a41086a290300370300200241f0006a41106a2203200241c8006a41106a290300370300200241f0006a41186a2204200241c8006a41186a29030037030020022002290348370370200641ff0171411f4d0d01200241286a41186a20042903002207370300200241086a41086a2005290300370300200241086a41106a2003290300370300200241086a41186a2007370300200220022903703703080c020b200541ff0171450d00200241003a00680b200241106a4200370300200241186a4200370300200241206a4200370300200242003703080b20002001360200200020022903083700042000410c6a200241106a290300370000200041146a200241186a2903003700002000411c6a200241206a290300370000200241b0016a24000b130020004105360204200041c8b9c2003602000b130020004108360204200041c8bcc2003602000b13002000411136020420004180c2c2003602000b870201037f230041d0006b22022400200241086a41bad7c7004108108102200241186a41dbafc9004109108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241386a41086a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000bac0201037f230041e0006b2202240020024188fec6004108108102200241106a41e7ccc2004107108102024002404120102c2203450d002002422037023420022003360230200241306a200141201074200241c0006a200228023022012002280238220310d803200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c0006a360250200241206a200241d0006a107c02402002280234450d002001102e0b2002280228220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b20004100360208200020013602042000200436020020002002411010742000200241106a411010742000200228022022012003107402402002280224450d002001102e0b200241e0006a24000f0b1036000b1038000b2c0020002002ad4220862001ad84100f2201290000370000200041086a200141086a2900003700002001102e0b1300200041053602042000419ccdc2003602000b3400200041f1fcc60036020420004100360200200041146a4101360200200041106a41b4e4c200360200200041086a42073702000b130020004101360204200041f4e5c2003602000b4b01027f230041106b2202240002404110102c22030d001036000b20004210370204200020033602002002420037030820024280d0dbc3f4023703002000200241101074200241106a24000b13002000410f360204200041c4ebc2003602000b340020004188fec60036020420004100360200200041146a4104360200200041106a41f0aac300360200200041086a42083702000b2f01017f02404104102c22020d001036000b2000420437020420002002360200410020001076410841002000109a010b4c01027f230041106b2202240002404114102c22030d001036000b200042143702042000200336020020024200370308200242003703002000200241101074410020001076200241106a24000b7001027f230041d0006b22022400200241063a002802404101102c2203450d002000420137020420002003360200200241003a004f2000200241cf006a41011074024020022d00284101470d00200241306a280200450d002002412c6a280200102e0b200241d0006a24000f0b1036000b840101027f230041d0026b22022400200241ac026a41023a000002404101102c2203450d002000420137020420002003360200200241003a00cf022000200241cf026a41011074024020022d00ac024102460d0002402002411c6a28020041ffffff3f71450d002002280218102e0b200241246a10e3030b200241d0026a24000f0b1036000b930301027f024020002802082201450d0020002802002202200141c8006c6a21010340024020022d00004101470d00200241086a280200450d00200241046a280200102e0b0240200241246a2d00004101470d002002412c6a280200450d00200241286a280200102e0b200241c8006a22022001470d000b0b0240200041046a2802002202450d00200241c8006c450d002000280200102e0b024020002d000c4101470d00200041146a280200450d00200041106a280200102e0b024020002d00304101470d00200041386a280200450d00200041346a280200102e0b024020002d00544101470d00200041dc006a280200450d00200041d8006a280200102e0b024020002d00784101470d0020004180016a280200450d00200041fc006a280200102e0b024020002d009c014101470d00200041a4016a280200450d00200041a0016a280200102e0b024020002d00c0014101470d00200041c8016a280200450d00200041c4016a280200102e0b024020002d00e4014101470d00200041ec016a280200450d00200041e8016a280200102e0b0b130020004106360204200041d0b4c3003602000b4201027f230041106b2202240002404104102c22030d001036000b20004204370204200020033602002002411436020c20002002410c6a41041074200241106a24000b4b01027f230041106b2202240002404110102c22030d001036000b20004210370204200020033602002002420037030820024280f19384eb053703002000200241101074200241106a24000b4a01027f230041106b2202240002404110102c22030d001036000b200042103702042000200336020020024200370308200242809adbba023703002000200241101074200241106a24000b4b01027f230041106b2202240002404110102c22030d001036000b20004210370204200020033602002002420037030820024280fad5d5f2053703002000200241101074200241106a24000bfc0302037f017e230041106b2202240020002802102103200041186a280200220420011076024020044105742204450d00200320046a21040340200220032802003602002001200241041074200341086a200110ea03200341206a22032004470d000b0b200029030021052002200041086a2903003703082002200537030020012002411010742000411c6a200110b7012002200041286a108a012001200228020022032002280208107402402002280204450d002003102e0b2002200041cc006a108a012001200228020022032002280208107402402002280204450d002003102e0b2002200041f0006a108a012001200228020022032002280208107402402002280204450d002003102e0b200220004194016a108a012001200228020022032002280208107402402002280204450d002003102e0b2002200041b8016a108a012001200228020022032002280208107402402002280204450d002003102e0b02400240200041a4026a2d00004101460d00200241003a000020012002410110740c010b200241013a000020012002410110742001200041a5026a411410740b2002200041dc016a108a012001200228020022032002280208107402402002280204450d002003102e0b200220004180026a108a012001200228020022032002280208107402402002280204450d002003102e0b200241106a24000bd50102017f017e230041106b220224000240024002400240024002400240024020002802000e0700010203040506070b200241003a000020012002410110740c060b200241013a00002001200241011074200029030821032002200041106a2903003703082002200337030020012002411010740c050b200241023a000020012002410110740c040b200241033a000020012002410110740c030b200241043a000020012002410110740c020b200241053a000020012002410110740c010b200241063a000020012002410110740b200241106a24000baa0b010a7f230041e0006b22022400200241003a00380240024002400240024002400240024002400240024020012802002203280204220420044100472205490d00200241386a20032802002206200510e9081a2003200420056b3602042003200620056a360200024020040d0041002107200241056a2103200241086a21042002411c6a21050c0a0b41002107200241056a2103200241086a21042002411c6a210520022d003822080e260901010101010101010101010101010101010101010101010101010101010101010102030405010b200041063a00000c090b02402008417f6a220641ff01714121490d00200041063a00000c090b0240024020060d00410121090c010b200610322209450d060b20092001280200220128020020012802042208200620082006491b220a10e908210b20012802042207200a490d0620012007200a6b36020420012001280200200a6a360200410121070240200820064f0d00200b200a6a22014100200b20066a20016b10eb081a0b2006210a0c070b200241386a200110a60141022107200241346a41026a220120022d003b3a0000200241206a41086a2208200241d0006a290300370300200241206a41106a220b200241d8006a2d00003a0000200220022f00393b01342002200241386a41106a29030037032020022d00384101460d03200241386a41086a2802002106200241c4006a280200210a200228023c21092002411c6a41026a20012d00003a0000200241086a41086a2008290300370300200241086a41106a200b2d00003a0000200220022f01343b011c200220022903203703080c060b200241386a200110a601200241346a41026a220120022d003b3a0000200241206a41086a2207200241d0006a290300370300200241206a41106a2208200241d8006a2d00003a0000200220022f00393b01342002200241386a41106a290300370320024020022d00384101460d00200241386a41086a2802002106200241c4006a280200210a200228023c21092002411c6a41026a20012d00003a0000200241086a41086a2007290300370300200241086a41106a20082d00003a0000200220022f01343b011c20022002290320370308410321070c060b200041063a00000c060b200241386a200110a601200241346a41026a220120022d003b3a0000200241206a41086a2207200241d0006a290300370300200241206a41106a2208200241d8006a2d00003a0000200220022f00393b01342002200241386a41106a290300370320024020022d00384101460d00200241386a41086a2802002106200241c4006a280200210a200228023c21092002411c6a41026a20012d00003a0000200241086a41086a2007290300370300200241086a41106a20082d00003a0000200220022f01343b011c20022002290320370308410421070c050b200041063a00000c050b200241386a200110a601200241346a41026a220120022d003b3a0000200241206a41086a2207200241d0006a290300370300200241206a41106a2208200241d8006a2d00003a0000200220022f00393b01342002200241386a41106a290300370320024020022d00384101460d00200241386a41086a2802002106200241c4006a280200210a200228023c21092002411c6a41026a20012d00003a0000200241086a41086a2007290300370300200241086a41106a20082d00003a0000200220022f01343b011c20022002290320370308410521070c040b200041063a00000c040b200041063a00000c030b1036000b200a200741b8b2c0001056000b200020073a0000200020052f00003b00012000410c6a200a360000200041086a2006360000200041046a2009360000200041106a2004290000370000200041216a20032f00003b0000200041036a200541026a2d00003a0000200041186a200441086a290000370000200041206a200441106a2d00003a0000200041236a200341026a2d00003a00000b200241e0006a24000bbe1503097f027e027f23004190016b2202240002400240024002400240024002400240024002400240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a3602004100210720050e260601010101010101010101010101010101010101010101010101010101010101010102030405010b200041063a00000c0a0b02402005417f6a41ff01714121490d00200041063a00000c0a0b024002402005417f6a22080d00410121090c010b200810322209450d07200128020421060b20062008490d0520092001280200200810e9081a200128020422042008490d072001200420086b3602042001200128020020086a360200410121072008210a0c040b41002108200241003a00582003417f6a21092003417e6a210302400240034020092008460d01200241386a20086a200420086a220541016a2d00003a0000200120033602042001200541026a3602002002200841016a22053a00582003417f6a21032005210820054120470d000b200241f4006a41026a220420022d003a22013a00002002418c016a41026a220320013a0000200241f8006a41086a2207200241cf006a290000220b370300200241f8006a41106a2206200241d7006a2d000022013a0000200220022f013822083b0174200220083b018c0120022002290047220c370378200228003b2109200228003f210a20022800432108200241e0006a41106a220d20013a0000200241e0006a41086a220e200b3703002002200c37036041012101200541ff01714120490d01200320042d00003a00002007200e2903003703002006200d2d00003a0000200220022f01743b018c0120022002290360370378410021010c010b0240200841ff0171450d00200241003a00580b410121010b41022107200241346a41026a22042002418c016a41026a2d00003a0000200241206a41086a2203200241f8006a41086a290300370300200241206a41106a2205200241f8006a41106a2d00003a0000200220022f018c013b013420022002290378370320024020010d002002411c6a41026a20042d00003a0000200241086a41086a2003290300370300200241086a41106a20052d00003a0000200220022f01343b011c200220022903203703080c040b200041063a00000c080b41002108200241003a00582003417f6a21092003417e6a210302400240034020092008460d01200241386a20086a200420086a220541016a2d00003a0000200120033602042001200541026a3602002002200841016a22053a00582003417f6a21032005210820054120470d000b200241f4006a41026a220420022d003a22013a00002002418c016a41026a220320013a0000200241f8006a41086a2207200241cf006a290000220b370300200241f8006a41106a2206200241d7006a2d000022013a0000200220022f013822083b0174200220083b018c0120022002290047220c370378200228003b2109200228003f210a20022800432108200241e0006a41106a220d20013a0000200241e0006a41086a220e200b3703002002200c37036041012101200541ff01714120490d01200320042d00003a00002007200e2903003703002006200d2d00003a0000200220022f01743b018c0120022002290360370378410021010c010b0240200841ff0171450d00200241003a00580b410121010b200241346a41026a22042002418c016a41026a2d00003a0000200241206a41086a2203200241f8006a41086a290300370300200241206a41106a2205200241f8006a41106a2d00003a0000200220022f018c013b013420022002290378370320024020010d002002411c6a41026a20042d00003a0000200241086a41086a2003290300370300200241086a41106a20052d00003a0000200220022f01343b011c20022002290320370308410321070c030b200041063a00000c070b41002108200241003a00582003417f6a21092003417e6a210302400240034020092008460d01200241386a20086a200420086a220541016a2d00003a0000200120033602042001200541026a3602002002200841016a22053a00582003417f6a21032005210820054120470d000b200241f4006a41026a220420022d003a22013a00002002418c016a41026a220320013a0000200241f8006a41086a2207200241cf006a290000220b370300200241f8006a41106a2206200241d7006a2d000022013a0000200220022f013822083b0174200220083b018c0120022002290047220c370378200228003b2109200228003f210a20022800432108200241e0006a41106a220d20013a0000200241e0006a41086a220e200b3703002002200c37036041012101200541ff01714120490d01200320042d00003a00002007200e2903003703002006200d2d00003a0000200220022f01743b018c0120022002290360370378410021010c010b0240200841ff0171450d00200241003a00580b410121010b200241346a41026a22042002418c016a41026a2d00003a0000200241206a41086a2203200241f8006a41086a290300370300200241206a41106a2205200241f8006a41106a2d00003a0000200220022f018c013b013420022002290378370320024020010d002002411c6a41026a20042d00003a0000200241086a41086a2003290300370300200241086a41106a20052d00003a0000200220022f01343b011c20022002290320370308410421070c020b200041063a00000c060b41002108200241003a00582003417f6a21092003417e6a210302400240034020092008460d01200241386a20086a200420086a220541016a2d00003a0000200120033602042001200541026a3602002002200841016a22053a00582003417f6a21032005210820054120470d000b200241f4006a41026a220420022d003a22013a00002002418c016a41026a220320013a0000200241f8006a41086a2207200241cf006a290000220b370300200241f8006a41106a2206200241d7006a2d000022013a0000200220022f013822083b0174200220083b018c0120022002290047220c370378200228003b2109200228003f210a20022800432108200241e0006a41106a220d20013a0000200241e0006a41086a220e200b3703002002200c37036041012101200541ff01714120490d01200320042d00003a00002007200e2903003703002006200d2d00003a0000200220022f01743b018c0120022002290360370378410021010c010b0240200841ff0171450d00200241003a00580b410121010b200241346a41026a22042002418c016a41026a2d00003a0000200241206a41086a2203200241f8006a41086a290300370300200241206a41106a2205200241f8006a41106a2d00003a0000200220022f018c013b01342002200229037837032020010d042002411c6a41026a20042d00003a0000200241086a41086a2003290300370300200241086a41106a20052d00003a0000200220022f01343b011c20022002290320370308410521070b200020073a0000200020022f011c3b00012000410c6a2008360000200041086a200a360000200041046a2009360000200041106a2002290308370000200041216a20022f00053b0000200041036a2002411c6a41026a2d00003a0000200041186a200241086a41086a290300370000200041206a200241086a41106a2d00003a0000200041236a200241056a41026a2d00003a00000c040b200041063a00002009102e0c030b1036000b2008200441b8b2c0001056000b200041063a00000b20024190016a24000bd61405067f017e027f017e017f23004190016b22022400024002400240024002400240024002400240024002400240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a3602004100210720060e260601010101010101010101010101010101010101010101010101010101010101010102030405010b200041063a00000c0a0b02402006417f6a41ff01714121490d00200041063a00000c0a0b024002402006417f6a22030d00410121040c010b200310322204450d070b200128020022012802042003490d0520042001280200200310e9081a200128020422052003490d072001200520036b3602042001200128020020036a36020041012107200321050c040b41002104200241003a0058024002400340200128020022032802042205450d01200241386a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00582003210420034120470d000b200241f4006a41026a220120022d003a22033a00002002418c016a41026a220620033a0000200241f8006a41086a2207200241cf006a2900002208370300200241f8006a41106a2209200241d7006a2d0000220a3a0000200220022f013822033b0174200220033b018c0120022002290047220b370378200228003b2104200228003f210520022800432103200241e0006a41106a220c200a3a0000200241e0006a41086a220a20083703002002200b370360200620012d00003a0000200220022f01743b018c012009200c2d00003a00002007200a29030037030020022002290360370378410021010c010b0240200441ff0171450d00200241003a00580b410121010b41022107200241346a41026a22062002418c016a41026a2d00003a0000200241206a41086a2209200241f8006a41086a290300370300200241206a41106a220a200241f8006a41106a2d00003a0000200220022f018c013b013420022002290378370320024020010d002002411c6a41026a20062d00003a0000200241086a41086a2009290300370300200241086a41106a200a2d00003a0000200220022f01343b011c200220022903203703080c040b200041063a00000c080b41002104200241003a0058024002400340200128020022032802042205450d01200241386a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00582003210420034120470d000b200241f4006a41026a220120022d003a22033a00002002418c016a41026a220620033a0000200241f8006a41086a2207200241cf006a2900002208370300200241f8006a41106a2209200241d7006a2d0000220a3a0000200220022f013822033b0174200220033b018c0120022002290047220b370378200228003b2104200228003f210520022800432103200241e0006a41106a220c200a3a0000200241e0006a41086a220a20083703002002200b370360200620012d00003a0000200220022f01743b018c012009200c2d00003a00002007200a29030037030020022002290360370378410021010c010b0240200441ff0171450d00200241003a00580b410121010b200241346a41026a22062002418c016a41026a2d00003a0000200241206a41086a2207200241f8006a41086a290300370300200241206a41106a2209200241f8006a41106a2d00003a0000200220022f018c013b013420022002290378370320024020010d002002411c6a41026a20062d00003a0000200241086a41086a2007290300370300200241086a41106a20092d00003a0000200220022f01343b011c20022002290320370308410321070c030b200041063a00000c070b41002104200241003a0058024002400340200128020022032802042205450d01200241386a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00582003210420034120470d000b200241f4006a41026a220120022d003a22033a00002002418c016a41026a220620033a0000200241f8006a41086a2207200241cf006a2900002208370300200241f8006a41106a2209200241d7006a2d0000220a3a0000200220022f013822033b0174200220033b018c0120022002290047220b370378200228003b2104200228003f210520022800432103200241e0006a41106a220c200a3a0000200241e0006a41086a220a20083703002002200b370360200620012d00003a0000200220022f01743b018c012009200c2d00003a00002007200a29030037030020022002290360370378410021010c010b0240200441ff0171450d00200241003a00580b410121010b200241346a41026a22062002418c016a41026a2d00003a0000200241206a41086a2207200241f8006a41086a290300370300200241206a41106a2209200241f8006a41106a2d00003a0000200220022f018c013b013420022002290378370320024020010d002002411c6a41026a20062d00003a0000200241086a41086a2007290300370300200241086a41106a20092d00003a0000200220022f01343b011c20022002290320370308410421070c020b200041063a00000c060b41002104200241003a0058024002400340200128020022032802042205450d01200241386a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00582003210420034120470d000b200241f4006a41026a220120022d003a22033a00002002418c016a41026a220620033a0000200241f8006a41086a2207200241cf006a2900002208370300200241f8006a41106a2209200241d7006a2d0000220a3a0000200220022f013822033b0174200220033b018c0120022002290047220b370378200228003b2104200228003f210520022800432103200241e0006a41106a220c200a3a0000200241e0006a41086a220a20083703002002200b370360200620012d00003a0000200220022f01743b018c012009200c2d00003a00002007200a29030037030020022002290360370378410021010c010b0240200441ff0171450d00200241003a00580b410121010b200241346a41026a22062002418c016a41026a2d00003a0000200241206a41086a2207200241f8006a41086a290300370300200241206a41106a2209200241f8006a41106a2d00003a0000200220022f018c013b01342002200229037837032020010d042002411c6a41026a20062d00003a0000200241086a41086a2007290300370300200241086a41106a20092d00003a0000200220022f01343b011c20022002290320370308410521070b200020073a0000200020022f011c3b00012000410c6a2003360000200041086a2005360000200041046a2004360000200041106a2002290308370000200041216a20022f00053b0000200041036a2002411c6a41026a2d00003a0000200041186a200241086a41086a290300370000200041206a200241086a41106a2d00003a0000200041236a200241056a41026a2d00003a00000c040b200041063a00002004102e0c030b1036000b2003200541b8b2c0001056000b200041063a00000b20024190016a24000b13002000410436020420004180ccc3003602000b340020004195fec60036020420004100360200200041146a4102360200200041106a41c4f2c300360200200041086a42083702000b130020004103360204200041b4f5c3003602000b4301027f230041106b2202240002404102102c22030d001036000b2000420237020420002003360200200241e4003b010e20002002410e6a41021074200241106a24000b4a01027f230041106b2202240002404110102c22030d001036000b20004210370204200020033602002002420037030820024280a0cb98013703002000200241101074200241106a24000b4b01027f230041106b2202240002404110102c22030d001036000b200042103702042000200336020020024200370308200242809886abec053703002000200241101074200241106a24000b130020004103360204200041ecffc3003602000b3400200041bad7c70036020420004100360200200041146a4103360200200041106a41c489c400360200200041086a42083702000b2e01017f02404104102c22020d001036000b200042043702042000200236020041002000107620004104410010740b130020004105360204200041d88dc4003602000b4b01027f230041106b22022400200242f0f2bda1a7ee9cb9f90037030802404108102c22030d001036000b20004208370204200020033602002000200241086a41081074200241106a24000b4401027f230041106b2202240002404104102c22030d001036000b200042043702042000200336020020024190ce0036020c20002002410c6a41041074200241106a24000b4401027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241808c1536020c20002002410c6a41041074200241106a24000b4401027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241d0860336020c20002002410c6a41041074200241106a24000b130020004110360204200041989cc4003602000b13002000410e360204200041e4a3c4003602000b130020004102360204200041e4adc4003602000bff0101037f230041d0006b22022400200241f1fcc6004107108102200241106a418ce5c20041081081022002200136022c200241306a2002412c6a410410d803200241cc006a2002412c6a41046a3602002002200241c0006a36024420022002412c6a3602482002200241306a360240200241206a200241c0006a107c024002402002280228220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b20004100360208200020013602042000200436020020002002411010742000200241106a411010742000200228022022012003107402402002280224450d002001102e0b200241d0006a24000f0b1038000b1036000be4810203097f097e187f230041e0116b220324000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d00000e100001020f0e0d0c0b0a09080706050403000b200341940f6a4101360200200342013702840f2003419cc3cb003602800f200341043602c40c20034194c3cb003602c00c2003200341c00c6a3602900f200341800f6a41f89bc4001044000b41022104200341f0046a41026a200141036a2d00003a0000200341c00c6a41086a2205200141146a290000370300200341c00c6a410d6a2206200141196a290000370000200320012f00013b01f00420032001410c6a2900003703c00c200141086a2800002107200141046a280000210820022802282101024002400240024020022d00000e0400010203020b20022d0001210220012001280200417f6a2209360200024020090d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22092009280200417f6a220936020020090d002001102e0b200241ff0171450d024110102c2202450d1a200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1a20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220536020020050d012002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22052005280200417f6a220536020020050d012002102e0c010b200241046a2d00002109200241086a280200210a2002410c6a280200210b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200941ff01710d00200a410174200b4b0d020b4110102c2202450d19200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1920014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220536020020050d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22052005280200417f6a220536020020050d002002102e0b20012001280200417f6a220236020020020d192001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d192001102e0c1a0b20034190056a108104200341e8016a41086a2005290300370300200341e8016a410d6a2006290000370000200320032f01f0043b0184022003200341f2046a2d00003a008602200320032903c00c3703e8010240200328029805220241134b0d00200341800f6a41086a2204200341e8016a41086a290300370300200341800f6a410d6a2205200341e8016a410d6a290000370000200320032f0184023b01a00c200320032d0086023a00a20c200320032903e8013703800f02400240024002402002200328029405470d00200241016a22012002490d13200241017422062001200620014b1b22014104200141044b1b220141ffffff1f712001464103742106200141067421010240024020020d00200341003602f0090c010b200341f0096a41086a410836020020032003280290053602f009200320024106743602f4090b200341c0076a20012006200341f0096a107d200341c8076a280200210120032802c0074101460d01200320032802c4073602900520032001410676360294050b20032802900520024106746a2201420037030820014201370300200141106a4200370300200141186a4200370300200141206a20032f01a00c3b0100200141226a20032d00a20c3a0000200141276a2007360000200141236a20083600002001412b6a20032903800f370000200141336a2004290300370000200141386a20052900003700002003200241016a220136029805200341f0096a41086a20013602002003200329039005220c3703f009200ca722040d0120034188026a41186a2204420037030020034188026a41106a2205420037030020034188026a41086a220642003703002003420037038802200341800f6a4188fec60041081081022006200341800f6a41086a2207290000370300200320032900800f37038802200341800f6a41b0afc300410a10810220042007290000370300200520032900800f37030020034188026a412010ff010c020b2001450d110c1a0b20034188026a41186a2205420037030020034188026a41106a2206420037030020034188026a41086a220742003703002003420037038802200341800f6a4188fec60041081081022007200341800f6a41086a2208290000370300200320032900800f37038802200341800f6a41b0afc300410a10810220052008290000370300200620032900800f37030020034188026a200341f0096a10820420032802f40941ffffff1f71450d002004102e0b2003418c0f6a2002360200200341880f6a41063a0000200341123a00800f200341800f6a10fe01200320032800c8023602c0112003200341cb026a2800003600c311200041186a41003a0000200041106a2001ad42b0ae157e42c896efc5007c37030020004201370308200020032802c0113600192000411c6a20032800c311360000200042003703000c1b0b200341800f6a410d108304200341880f6a280200210120032802840f210220032802800f210420032802940541ffffff1f71450d19200328029005102e0c190b200341f0096a200141046a41a00210e9081a200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a200241106a290200370300200341800f6a41086a200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c10220034188026a41086a2201200341c90c6a29000037030020034188026a41106a2202200341d10c6a29000037030020034188026a41186a2204200341d90c6a290000370300200320032900c10c3703880220032d00c00c4101460d11200341c0076a41186a2004290300370300200341c0076a41106a2002290300370300200341c0076a41086a200129030037030020032003290388023703c007024020032802f809220141e4004d0d00200341800f6a410c10830420032f00810f20032d00830f41107472210120032902840f210c20032d00800f21020c130b200341106a2001ad220d420042809adbba02420010e808200341c0116a200341c0076a108404200341800f6a20032802c011220120032802c81110850420034190056a200341800f6a41a40210e9081a200341f0046a41086a2202200341ad116a290000370300200341f0046a41106a2204200341b5116a290000370300200341f0046a41176a2205200341bc116a280000360000200320032900a5113703f004200341106a41086a290300210e2003290310210f20032d00a41122064102460d13200341c8026a20034190056a41a40210e9081a200341a8026a41176a2005280000360000200341a8026a41106a2004290300370300200341a8026a41086a2002290300370300200320032903f0043703a802024020032802c411450d002001102e0b200341800f6a200341c8026a41a40210e9081a200341800f6a41a4026a20063a0000200341a5116a20032903a802370000200341ad116a200341a8026a41086a290300370000200341b5116a200341a8026a41106a290300370000200341bc116a200341bf026a280000360000200341800f6a41186a22012802002106410021072001410036020002402006450d0020032802900f220841086a210a41002109410021074100210402400340024002402007450d00200820044105746a21012008200420096a4105746a210203400240200141086a2205280200417f6a0e06000303030300030b20022001290300370300200241186a200141186a290300370300200241106a200141106a290300370300200241086a2005290300370300200241206a2102200141206a21012006200441016a22044b0d000c040b0b200a20044105746a2101034002402001280200417f6a0e06000202020200020b200141206a21012006200441016a22044b0d000b410021070c030b2009417f6a2109200741016a21072006200441016a22044b0d000b0b024020070d00410021070c010b2008200420076b4105746a200820044105746a200620046b41057410ea081a0b2003200620076b3602980f2003419c0f6a220110e3032001200341f0096a41a00210e9081a200341c00c6a200341800f6a41c00210e9081a200341c00c6a41086a290300211020032903c00c21110c140b200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a200241106a290200370300200341800f6a41086a200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c102200341c0076a41086a2201200341c90c6a290000370300200341c0076a41106a2202200341d10c6a290000370300200341c0076a41186a2204200341d90c6a290000370300200320032900c10c3703c00702400240024002400240024020032d00c00c4101460d0020034190056a41186a200429030037030020034190056a41106a200229030037030020034190056a41086a2001290300370300200320032903c00737039005200341c0076a20034190056a10d703200341800f6a20032802c007220120032802c8072204108604024020032d00a00f220541064622020d002001200410ff010b20034188026a41086a200341800f6a41086a29030037030020034188026a41106a200341800f6a41106a29030037030020034188026a41186a2204200341800f6a41186a290300370300200341bc076a41026a2206200341a30f6a2d00003a0000200341a00c6a41086a2207200341b40f6a290200370300200341a00c6a41106a2208200341bc0f6a290200370300200320032903800f37038802200320032f00a10f3b01bc072003200341ac0f6a2902003703a00c024020020d00200341a80f6a2802002109200341a40f6a280200210a200341b8016a41086a20034188026a41136a290000370300200341b8016a410d6a22022004290000370000200341b8076a41026a20062d00003a0000200341f0046a41106a2008290300370300200341f0046a41086a2007290300370300200320032d008a023a00ea01200320032f0188023b01e80120032003290093023703b801200320032f01bc073b01b807200320032903a00c3703f004200328008b022104200328008f022106024020032802c407450d002001102e0b200341c00c6a410d6a22012002290000370000200341c00c6a41086a2202200341b8016a41086a290300370300200341b4016a220720032d00ea013a0000200341f0096a41086a22082002290300370300200341f0096a410d6a22022001290000370000200320032f01e8013b01d201200320032903b8013703f009200320032801d0013602b001200320063600c707200320043600c307200320072d00003a00c207200320032f01b2013b01c007200341c0076a41136a2008290300370000200341c0076a41186a2002290000370000200320032903f0093700cb0741012108024020054101470d002009450d00200a102e0b200341e8016a41086a200341a3056a290000370300200341f5016a220120034190056a41186a290000370000200320032f0190053b018402200320032d0092053a0086022003200329009b053703e80120032800930521022003280097052104200341c8026a200341c0076a108704200341800f6a20032802c80220032802d0021088044100210720032802900f22050d024200210e410021064200210c4200210f0c030b024020032802c407450d002001102e0b200341c0116a410f10830420032d00c0114106460d0320032902c411210c0c040b200341023a00c0110c030b20032902940f220c42ffffffff0f83210e200c422088a72106200341880f6a290300210f2003419c0f6a280200210a20032903800f210c200521080b200341cb0c6a2004360000200341cf0c6a20032903e801370000200341d70c6a200341e8016a41086a290300370000200341dc0c6a2001290000370000200320032f0184023b01c40c200320032d0086023a00c60c200320023600c70c2003200341c0076a3602c00c200341c00c6a410472210502402006450d0041002109410021074100210402400340024002402007450d00200820044105746a21012008200420096a4105746a2102034020012005412010ec08450d0220022001290000370000200241186a200141186a290000370000200241106a200141106a290000370000200241086a200141086a290000370000200241206a2102200141206a21012006200441016a22044b0d000c040b0b200820044105746a2101034020012005412010ec08450d01200141206a21012006200441016a22044b0d000b410021070c030b2009417f6a2109200741016a21072006200441016a22044b0d000b0b024020070d00410021070c010b2008200420076b4105746a200820044105746a200620046b41057410ea081a0b200341800f6a20032802c00c2005200c4280f19384eb05200c4280f19384eb05544100200f501b22011b2210200f420020011b2211410010890420032802c00c2101200341f0096a41186a200541186a290000220d370300200341f0096a41106a200541106a2900002212370300200341f0096a41086a200541086a29000022133703002003200529000022143703f009200341d80f6a2011370300200341d00f6a2010370300200341800f6a41086a41093a0000200341800f6a41096a2014370000200341910f6a2013370000200341990f6a2012370000200341a10f6a200d370000200341a90f6a2001290000370000200341b10f6a200141086a290000370000200341b90f6a200141106a290000370000200341c10f6a200141186a290000370000200341123a00800f200341800f6a10fe01200341940f6a200620076bad422086200e843702002003200f20117d200c201054ad7d3703880f2003200c20107d3703800f2003200a36029c0f200320083602900f20032802c802220120032802d002200341800f6a108a040240200e42ffffff3f83500d002008102e0b024020032802cc02450d002001102e0b200341063a00c0110b4200210c20004200370308200020032800800f360019200041186a41003a00002000411c6a200341830f6a2800003600000c010b20032802c01121012000200c370024200041206a2001360000200041186a41003a0000200042003703084201210c0b2000200c3703000c180b200341e4016a41026a200141076a2d00003a0000200341a8026a41086a200141186a290200370300200341a8026a41106a200141206a2902003703002003200141056a2f00003b01e4012003200141106a2902003703a802200141046a2d00002104200141086a28020021052001410c6a2802002101200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a200241106a290200370300200341800f6a41086a200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c102200341c0076a41086a2202200341c90c6a290000370300200341c0076a41106a2206200341d10c6a290000370300200341c0076a41186a2207200341d90c6a290000370300200320032900c10c3703c007024002400240024020032d00c00c4101460d00200341c0116a41186a2007290300370300200341c0116a41106a2006290300370300200341c0116a41086a2002290300370300200320032903c0073703c011200341800f6a200341c0116a10840420032802800f220620032802880f108f022102024020032802840f450d002006102e0b024020020d00200341d8016a41061083040c020b200341f0096a41026a2206200341e4016a41026a2d00003a0000200341800f6a41086a2202200341a8026a41086a290300370300200341800f6a41106a2207200341a8026a41106a290300370300200320032f01e4013b01f009200320032903a8023703800f02400240024020040e03020100010b2001450d002005102e0b200320032903c00c3703b801200341013a00d8010c030b200341c00c6a410d6a2204200341800f6a410d6a290000370000200341c00c6a41086a22082002290300370300200341b8016a41086a22092008290300370300200341b8016a410d6a22082004290000370000200320032f01f0093b01e801200320032903800f3703b801200320062d00003a00ea01200320032d00ea013a00ca02200320032f01e8013b01c802200320013600cf02200320053600cb02200341c8026a41186a2008290000370000200341c8026a41136a2009290300370000200320032903b8013700d302200341c0076a200341c8026a10d703200341800f6a20032802c007220120032802c80710860420034188026a41086a200229030037030020034188026a41106a200729030037030020034188026a41186a2202200341800f6a41186a290300370300200341bc076a41026a200341a30f6a2d00003a0000200341a00c6a41086a200341b40f6a290200370300200341a00c6a41106a200341bc0f6a290200370300200320032903800f37038802200320032f00a10f3b01bc072003200341ac0f6a2902003703a00c0240024020032d00a00f22044106460d00200341a80f6a2802002109200341a40f6a280200210a200341e8016a41086a220520034188026a41136a290000370300200341e8016a410d6a2002290000370000200341b8076a41026a200341bc076a41026a2d00003a0000200341f0046a41106a200341a00c6a41106a290300370300200341f0046a41086a200341a00c6a41086a290300370300200320032d008a023a008602200320032f0188023b01840220032003290093023703e801200320032f01bc073b01b807200320032903a00c3703f004200328008b022102200328008f022106024020032802c407450d002001102e0b200341c00c6a410d6a2201200341e8016a410d6a290000370000200341c00c6a41086a22072005290300370300200341b4016a220520032d0086023a0000200341f0096a41086a22082007290300370300200341f0096a410d6a22072001290000370000200320032f0184023b01d201200320032903e8013703f009200320032801d0013602b00120032006360097052003200236009305200320052d00003a009205200320032f01b2013b019005200341a3056a2008290300370000200341a8056a2007290000370000200320032903f00937009b05024020044101470d002009450d00200a102e0b20034190056a200341c0116a412010ec08450d01200341d8016a41101083040c040b024020032802c407450d002001102e0b200341d8016a410f1083040c030b200341800f6a200341c8026a10d70320032802800f220120032802880f10ff01024020032802840f450d002001102e0b200341c0076a41186a200341c8026a41186a290300220c370300200341c0076a41106a200341c8026a41106a2903002210370300200341c0076a41086a200341c8026a41086a290300220f370300200341c0076a41286a200341c0116a41086a2903002211370300200341c0076a41306a200341c0116a41106a290300220e370300200341c0076a41386a200341c0116a41186a290300220d370300200320032903c80222123703c007200320032903c01122133703e007200341f0096a41386a2201200d370300200341f0096a41306a2202200e370300200341f0096a41286a22042011370300200341f0096a41206a22082013370300200341f0096a41186a220a200c370300200341f0096a41106a220b2010370300200341f0096a41086a2215200f370300200320123703f009200341a00c6a20034190056a108704200341800f6a20032802a00c220920032802a80c2216108804410021060240024020032802900f22070d004200211141012107410021054200210c420021100c010b20032902940f220c42ffffffff0f832111200c422088a72105200341800f6a41086a29030021102003419c0f6a280200211720032903800f210c0b200341c00c6a41386a2001290300370300200341c00c6a41306a2002290300370300200341c00c6a41286a2004290300370300200341c00c6a41206a2008290300370300200341c00c6a41186a200a290300370300200341c00c6a41106a200b290300370300200341c00c6a41086a2015290300370300200320032903f0093703c00c02402005450d0041002108410021064100210402400340024002402006450d00200720044105746a21012007200420086a4105746a210203402001200341c00c6a412010ec08450d0220022001290000370000200241186a200141186a290000370000200241106a200141106a290000370000200241086a200141086a290000370000200241206a2102200141206a21012005200441016a22044b0d000c040b0b200720044105746a210103402001200341c00c6a412010ec08450d01200141206a21012005200441016a22044b0d000b410021060c030b2008417f6a2108200641016a21062005200441016a22044b0d000b0b024020060d00410021060c010b2007200420066b4105746a200720044105746a200520046b41057410ea081a0b20034190016a200341e00c6a200c4280f19384eb05200c4280f19384eb055441002010501b22011b220f2010420020011b220e10fb01200341d80f6a200e370300200341d00f6a200f370300200341800f6a41086a41083a0000200341890f6a20032903c00c370000200341910f6a200341c00c6a41086a290300370000200341990f6a200341d00c6a290300370000200341a10f6a200341d80c6a290300370000200341a90f6a20032903e00c370000200341b10f6a200341e80c6a290300370000200341b90f6a200341f00c6a290300370000200341c10f6a200341f80c6a290300370000200341123a00800f200341800f6a10fe01200341940f6a200520066bad42208620118437020020032010200e7d200c200f54ad7d3703880f2003200c200f7d3703800f2003201736029c0f200320073602900f20092016200341800f6a108a040240201142ffffff3f83500d002007102e0b024020032802a40c450d002009102e0b200341063a00d8010c030b200341023a00d8010b20044102470d002001450d002005102e0b20032d00d8014106460d0020032802d8012101200020032902dc01370024200041206a2001360000200041186a41003a000020004200370308200042013703000c180b20004200370308200020032800a001360019200041186a41003a00002000411c6a200341a3016a280000360000200042003703000c170b200341a0016a41026a2209200141076a2d00003a0000200341c8026a41086a220a200141186a290200370300200341c8026a41106a220b200141206a2902003703002003200141056a2f00003b01a0012003200141106a2902003703c802200141046a2d00002104200141086a28020021072001410c6a2802002106200341d8016a41026a2001412b6a2d00003a000020034190056a41086a2001413c6a29020037030020034190056a41106a200141c4006a2902003703002003200141296a2f00003b01d8012003200141346a29020037039005200141286a2d000021052001412c6a2802002108200141306a2802002101200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a2215200241106a290200370300200341800f6a41086a2216200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c102200341c0076a41086a2202200341c90c6a290000370300200341c0076a41106a2217200341d10c6a290000370300200341c0076a41186a2218200341d90c6a290000370300200320032900c10c3703c0070240024002400240024020032d00c00c4101460d00200341f0096a41186a2018290300370300200341f0096a41106a2017290300370300200341f0096a41086a2002290300370300200320032903c0073703f009200341a00c6a41026a20092d00003a0000200320032f01a0013b01a00c2016200a2903003703002015200b290300370300200320032903c8023703800f0240024020040e03030100010b2006450d002007102e0b200320032903c0073703b801200341013a00c0110c020b200341023a00c0110240200541ff01714101470d002001450d002008102e0b20044102470d022006450d022007102e0c020b200341c0076a410d6a2202200341800f6a410d6a290000370000200341c0076a41086a2204200341800f6a41086a290300370300200341b8016a41086a22092004290300370300200341b8016a410d6a22042002290000370000200320032f01a00c3b01e801200320032903800f3703b8012003200341a20c6a2d00003a00ea01200320032d00ea013a00c20c200320032f01e8013b01c00c200320063600c70c200320073600c30c200341d80c6a2004290000370000200341d30c6a2009290300370000200320032903b8013700cb0c200341800f6a200341f0096a10840420032802800f220420032802880f108f022102024020032802840f450d002004102e0b024020020d00200341c0116a41061083040c010b200341c0076a200341c00c6a10d703200341800f6a20032802c007220420032802c80710860420034188026a41086a200341800f6a41086a29030037030020034188026a41106a200341800f6a41106a29030037030020034188026a41186a2206200341800f6a41186a290300370300200341bc076a41026a2207200341a30f6a2d00003a0000200341a00c6a41086a2209200341b40f6a290200370300200341a00c6a41106a220a200341bc0f6a290200370300200320032903800f37038802200320032f00a10f3b01bc072003200341ac0f6a2902003703a00c0240024020032d00a00f22024106460d00200341a80f6a280200210b200341a40f6a2802002115200341e8016a41086a20034188026a41136a290000370300200341f5016a22162006290000370000200341b8076a41026a20072d00003a0000200341f0046a41106a200a290300370300200341f0046a41086a2009290300370300200320032d008a023a008602200320032f0188023b01840220032003290093023703e801200320032f01bc073b01b807200320032903a00c3703f004200328008b022106200328008f022107024020032802c407450d002004102e0b200341a10f6a20032f01b8073b0000200341800f6a41136a200341e8016a41086a290300370000200341980f6a2016290000370000200341a30f6a200341ba076a2d00003a0000200320032d0086023a00820f200320032f0184023b01800f200320073600870f200320063600830f200320032903e80137008b0f200320023a00a00f200341a80f6a200b360200200341a40f6a2015360200200341ac0f6a20032903f004370200200341b40f6a200341f0046a41086a290300370200200341bc0f6a20034180056a290300370200200341800f6a200341f0096a412010ec082104024020024101470d00200b450d002015102e0b20040d01200341a10f6a20032f01d8013b0000200341a80f6a2001360200200341a40f6a2008360200200341ac0f6a200329039005370200200341800f6a41186a200341f0096a41186a290300370300200341800f6a41106a200341f0096a41106a290300370300200341800f6a41086a200341f0096a41086a290300370300200341a30f6a200341da016a2d00003a0000200341b40f6a20034190056a41086a290300370200200341bc0f6a20034190056a41106a290300370200200320032903f0093703800f200320053a00a00f200341c0076a200341c00c6a10d70320032802c007220120032802c807200341800f6a108b04024020032802c407450d002001102e0b024020032d00a00f4101470d0020032802a80f450d0020032802a40f102e0b200341063a00c0110c040b20032802c407450d002004102e0b200341c0116a41101083040b200541ff01714101470d002001450d002008102e0b20032d00c0114106460d0020032802c0112101200020032902c411370024200041206a2001360000200041186a41003a000020004200370308200042013703000c170b20004200370308200020032800a802360019200041186a41003a00002000411c6a200341ab026a280000360000200042003703000c160b200341b0016a41026a2209200141076a2d00003a0000200341c0116a41086a220a200141186a290200370300200341c0116a41106a220b200141206a2902003703002003200141056a2f00003b01b0012003200141106a2902003703c011200141046a2d00002105200141086a28020021072001410c6a2802002106200341d0016a41026a2001412b6a2d00003a0000200341c8026a41086a2001413c6a290200370300200341c8026a41106a200141c4006a2902003703002003200141296a2f00003b01d0012003200141346a2902003703c802200141286a2d000021042001412c6a2802002108200141306a2802002101200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a2215200241106a290200370300200341800f6a41086a2216200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c102200341c0076a41086a2202200341c90c6a290000370300200341c0076a41106a2217200341d10c6a290000370300200341c0076a41186a2218200341d90c6a290000370300200320032900c10c3703c007024002400240024020032d00c00c4101460d0020034190056a41186a201829030037030020034190056a41106a201729030037030020034190056a41086a2002290300370300200320032903c00737039005200341c0076a41026a20092d00003a0000200320032f01b0013b01c0072016200a2903003703002015200b290300370300200320032903c0113703800f0240024020050e03030100010b2006450d002007102e0b200320032903c00c3703b801200341013a00d8010c020b200341023a00d8010240200441ff01714101470d002001450d002008102e0b20054102470d022006450d022007102e0c020b200341c00c6a410d6a2202200341800f6a410d6a290000370000200341c00c6a41086a2205200341800f6a41086a290300370300200341b8016a41086a22092005290300370300200341b8016a410d6a22052002290000370000200320032f01c0073b01e801200320032903800f3703b8012003200341c2076a2d00003a00ea01200320032d00ea013a00f209200320032f01e8013b01f009200320063600f709200320073600f309200341880a6a2005290000370000200341830a6a2009290300370000200320032903b8013700fb09200341800f6a20034190056a10840420032802800f220520032802880f108f022102024020032802840f450d002005102e0b024020020d00200341d8016a41061083040c010b200341800f6a200341f0096a10d70320032802800f220520032802880f108f022102024020032802840f450d002005102e0b02402002450d00200341d8016a410e1083040c010b200341b8016a41026a220b200341d0016a41026a2d00003a0000200341e8016a41086a2215200341fb096a220241086a290000370300200341e8016a410d6a22162002410d6a290000370000200320032f01d0013b01b801200320032f01f0093b018402200320032d00f2093a008602200320022900003703e801200341c0076a41086a2217200341c8026a41086a290300370300200341c0076a41106a2218200341c8026a41106a290300370300200320032903c8023703c007200341a8026a20034190056a108704200341800f6a20032802a802220a20032802b00222191088040240024020032802900f22020d004200210c410021094101210241002105420021100c010b20032902940f220c422088a72105200ca72109200341800f6a41086a29030021102003419c0f6a280200211a20032903800f210c0b200341cc0c6a2001360200200341c00c6a41086a2008360200200341c00c6a41106a20032903c007370300200341d80c6a2017290300370300200341e00c6a2018290300370300200341ea0c6a20032d0086023a0000200320043a00c40c200320032f01b8013b00c50c2003200b2d00003a00c70c200320032f0184023b01e80c200320034190056a3602c00c200341ef0c6a2006360000200341eb0c6a2007360000200341f30c6a20032903e801370000200341fb0c6a2015290300370000200341800d6a201629000037000002400240024002400240200541e400490d00200341f0046a41011083040c010b200341800f6a20034190056a4280f19384eb05420010c302024020032d00800f22064106470d00200341800f6a41186a20034190056a41186a290300370300200341800f6a41106a20034190056a41106a290300370300200341800f6a41086a20034190056a41086a290300370300200341800f6a41286a200341c00c6a410472220141086a290200370300200341b00f6a200141106a290200370300200341b80f6a200141186a290200370300200341c00f6a200141206a28020036020020032003290390053703800f200320012902003703a00f200341a00c6a200341c00c6a41286a10d70320032802a00c220120032802a80c200341800f6a108b04024020032802a40c450d002001102e0b200341e80c6a2101024020032d00a00f4101470d00200341a80f6a280200450d00200341a40f6a280200102e0b20034188026a41186a2206200141186a220729020037030020034188026a41106a2208200141106a220b29020037030020034188026a41086a2215200141086a22162902003703002003200129020037038802024020052009470d00200941016a22042009490d11200941017422172004201720044b1b22044104200441044b1b220441ffffff3f712004462117200441057421040240024020090d00200341003602800f0c010b200341880f6a4101360200200320023602800f200320094105743602840f0b200341a00c6a20042017200341800f6a107d200341a80c6a2802002104024020032802a00c4101470d0020040d1b0c120b20032802a40c2102200441057621090b200220054105746a2204200329038802370000200441186a2006290300370000200441106a2008290300370000200441086a201529030037000020032802c00c2104200341d80f6a4200370300200341d00f6a4280f19384eb05370300200341800f6a41086a41073a0000200341890f6a2001290000370000200341910f6a2016290000370000200341990f6a200b290000370000200341a10f6a2007290000370000200341a90f6a2004290000370000200341b10f6a200441086a290000370000200341b90f6a200441106a290000370000200341c10f6a200441186a290000370000200341123a00800f200341800f6a10fe01200341063a00f004427f2010200c4280f19384eb057c220f200c542201ad7c221120012011201054200f200c5a1b22011b2110427f200f20011b210c200541016a21050c020b20032d00830f210720032f00810f210b200320032902840f3702f404200320063a00f0042003200b20074110747222063b00f104200320064110763a00f3040b0240200441ff01714101470d002001450d002008102e0b20032d00f0044106470d010b200341940f6a2005ad4220862009ad843702002003200c3703800f2003201a36029c0f200320023602900f200320103703880f0240024020020d00200a201910ff010c010b200a2019200341800f6a108a042002450d00200941ffffff3f71450d002002102e0b200341d8016a41086a200341f0046a41086a280200360200200320032903f0043703d8010c010b200341d8016a41086a200341f0046a41086a280200360200200320032903f0043703d801200941ffffff3f71450d002002102e0b20032802ac02450d01200a102e0c010b200441ff01714101470d002001450d002008102e0b024020032d00d8014106460d0020032802d8012101200020032902dc01370024200041206a2001360000200041186a41003a000020004200370308200042013703000c160b20004200370308200020032800a001360019200041186a41003a00002000411c6a200341a3016a280000360000200042003703000c150b200341b0016a41026a2207200141076a2d00003a0000200341a00c6a41086a2208200141186a290200370300200341a00c6a41106a2209200141206a2902003703002003200141056a2f00003b01b0012003200141106a2902003703a00c2001410c6a2802002104200141086a2802002106200141046a2d0000210520022802282101024002400240024002400240024020022d00000e0400010203020b20022d0001210220012001280200417f6a220a3602000240200a0d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a220a200a280200417f6a220a360200200a0d002001102e0b200241ff0171450d024110102c2202450d17200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1720014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d012002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d012002102e0c010b200241046a2d0000210a200241086a280200210b2002410c6a280200211520012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200a41ff01710d00200b41017420154b0d020b4110102c2202450d16200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1620014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b4102210120054102470d012004450d012006102e0c010b200341f0096a41026a20072d00003a0000200341800f6a41086a2008290300370300200341800f6a41106a2009290300370300200320032f01b0013b01f009200320032903a00c3703800f4101210102400240024020050e03000201020b200341c0076a41026a200341f0096a41026a2d00003a0000200341c00c6a41086a200341800f6a41086a290300370300200341c00c6a410d6a200341800f6a410d6a290000370000200320032f01f0093b01c007200320032903800f3703c00c410021010c010b2004450d002006102e0b2003419b026a200341c00c6a41086a29030037000020034188026a41186a2202200341cd0c6a290000370000200320032f01c0073b0188022003200436008f022003200636008b02200320032903c00c370093022003200341c2076a2d00003a008a02024020010d00200341c0116a41186a2002290300370300200341c0116a41106a20034188026a41106a290300370300200341c0116a41086a20034188026a41086a29030037030020032003290388023703c011200341c00c6a200341c0116a108704200341800f6a20032802c00c220220032802c80c22041088040240024020032802900f22010d00410121050c010b2002200410ff01200121050b20032903800f211020032902940f210c200341880f6a2903002111024020032802c40c450d002002102e0b200341b8016a200341c0116a108404200341800f6a20032802b801220220032802c0012206108504024020032d00a411220741024622040d002002200610ff010b200c420020011b210f20034190056a200341800f6a41a40210e9081a200341f0046a41176a2206200341bc116a280000360000200341f0046a41106a2208200341b5116a290000370300200341f0046a41086a2209200341ad116a290000370300200320032900a5113703f004024020040d00200341c8026a20034190056a41a40210e9081a200341a8026a41176a2006280000360000200341a8026a41106a2008290300370300200341a8026a41086a2009290300370300200320032903f0043703a802024020032802bc01450d002002102e0b2010420020011b210e2011420020011b210d200341f0096a41066a200341c8026a41a40210e9081a200341c0076a200341f0096a41aa0210e9081a20034188026a41176a2201200341a8026a41176a28000036000020034188026a41106a2202200341a8026a41106a29030037030020034188026a41086a2204200341a8026a41086a290300370300200320032903a80237038802200341c00c6a200341c0076a41066a41a40210e9081a200341c00c6a41a4026a20073a0000200341e50e6a200329038802370000200341ed0e6a2004290300370000200341f50e6a2002290300370000200341fc0e6a2001280000360000200341c00c6a41086a290300211220032903c00c211120032802d00c210602400240200341d80c6a280200220741057422020d004200210c420021100c010b200641106a21014200210c420021100340200141086a2903004200200141786a29030042015122041b20107c2001290300420020041b2210200c7c220c201054ad7c2110200141206a2101200241606a22020d000b0b2012200d7c2011200e7c220e201154ad7c20107c200e200c7c220d200e54ad7c210e0240200f4220882212a72201450d0020014105742102200521010340200341800f6a200110d70320032802800f220420032802880f10ff01024020032802840f450d002004102e0b200141206a2101200241606a22020d000b0b200341f0006a200341c0116a200d200e10cb022003290370210c2003200341f0006a41086a29030022103703880f2003200c3703800f200c2010844200520d032003200341800f6a3602f009200341f0096a10cc020c040b024020032802bc01450d002002102e0b200341800f6a4103108304200320032900810f3703e8012003200341880f6a2800003600ef0120032d00800f2101200f42ffffff3f83500d012005102e0c010b410121010b200320032800a0013602d001200320032903e8013703d801200320032800ef013600df012003200341a3016a2800003600d301200041186a41003a000020004200370308200020032802d0013600192000411c6a20032800d301360000200041206a20013a0000200020032903d801370021200041286a20032800df01360000200042013703000c160b200342f0f2bda1a7ee9cb9f9003703f009200341800f6a200341f0096a10cd02200341e0006a200341800f6a200c201010fd01200341800a6a200341e0006a41086a290300221320107d20032903602211200c54ad7d201020137d200c201154ad7d2011200c56201320105620132010511b22011b37030020032011200c7d200c20117d20011b3703f80920032001ad3703f009200341f0096a41086a21020240024020010d00200320023602c007200341c0076a10cc020c010b200320023602c007200341c0076a10ce020b200341980f6a2010370300200341900f6a200c370300200341880f6a41063a00002003410e3a00800f200341800f6a10fe010b200341b80f6a200e370300200341b00f6a200d370300200341800f6a41086a41023a0000200341890f6a20032903c011370000200341910f6a200341c0116a41086a290300370000200341990f6a200341d0116a290300370000200341a10f6a200341d8116a290300370000200341123a00800f200341800f6a10fe012007ad42e0d4037e201242f0fb8d017e7c200341e40c6a35020042e8077e7c20124280c2d72f7e7c210c200341dc0c6a21010240200341d40c6a28020041ffffff3f71450d002006102e0b200c4288babcd6017c210c200110e3030240200f42ffffff3f83500d002005102e0b200320032800a0013602d0012003200341a3016a2800003600d301200041186a41003a0000200041106a200c37030020004201370308200020032802d0013600192000411c6a20032800d301360000200042003703000c140b200141c0006a2903002110200141386a290300210f200141306a290300210c200141046a280200211741022104200341bc076a41026a22072001410b6a2d00003a0000200341b8016a41086a22082001411c6a290200370300200341b8016a41106a2209200141246a2902003703002003200141096a2f00003b01bc072003200141146a2902003703b801200141086a2d000021052001410c6a2802002106200141106a2802002101200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a220a200241106a290200370300200341800f6a41086a220b200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c102200341e8016a41086a2215200341c00c6a41146a290200370300200341f5016a2216200341d90c6a290000370000200320032f00c10c3b018402200320032d00c30c3a0086022003200341c00c6a410c6a2902003703e80141012102024002400240024002400240024002400240024020032d00c00c4101460d00200341c00c6a41086a280200210420032802c40c2118200341a00c6a41136a2015290300370000200341a00c6a41186a2016290000370000200320032d0086023a00a20c200320032f0184023b01a00c200320043600a70c200320183600a30c200320032903e8013700ab0c200341f0096a41026a20072d00003a0000200320032f01bc073b01f009200b2008290300370300200a2009290300370300200320032903b8013703800f02400240024020050e03000201020b200341c0076a41026a200341f0096a41026a2d00003a0000200341c00c6a41086a200341800f6a41086a290300370300200341c00c6a410d6a200341800f6a410d6a290000370000200320032f01f0093b01c007200320032903800f3703c00c410021020c010b2001450d002006102e0b20034188026a41136a200341c00c6a41086a29030037000020034188026a41186a2204200341cd0c6a290000370000200320032f01c0073b0188022003200136008f022003200636008b02200320032903c00c370093022003200341c2076a2d00003a008a0220020d02200341c0116a41186a2004290300370300200341c0116a41106a20034188026a41106a290300370300200341c0116a41086a20034188026a41086a29030037030020032003290388023703c011200c4201520d01200341800f6a4109108304200320032900810f3703d8012003200341880f6a2800003600df0120032d00800f21040c030b20054102470d022001450d022006102e0c020b200341c00c6a10810420032802c00c210102400240024020032802c80c20174d0d00200120174106746a22022903004201520d00200241206a200341a00c6a412010ec080d00024020032802c40c41ffffff1f71450d002001102e0b200341e8016a200341c0116a108404200341800f6a20032802e801220120032802f00110850420034190056a200341800f6a41a40210e9081a200341f0046a41086a2202200341ad116a290000370300200341f0046a41106a2204200341b5116a290000370300200341f0046a41176a2205200341bc116a280000360000200320032900a5113703f004024020032d00a41122064102460d00200341c8026a20034190056a41a40210e9081a200341a8026a41176a2005280000360000200341a8026a41106a2004290300370300200341a8026a41086a2002290300370300200320032903f0043703a802024020032802ec01450d002001102e0b200341f0096a41066a200341c8026a41a40210e9081a200341c0076a200341f0096a41aa0210e9081a20034188026a41176a2201200341a8026a41176a28000036000020034188026a41106a2202200341a8026a41106a29030037030020034188026a41086a2204200341a8026a41086a290300370300200320032903a80237038802200341c00c6a200341c0076a41066a41a40210e9081a200341c00c6a41a4026a20063a0000200341e50e6a200329038802370000200341ed0e6a2004290300370000200341f50e6a2002290300370000200341fc0e6a20012800003600004100210120032802d00c2106200341c00c6a41186a28020022070e020803020b024020032802ec01450d002001102e0b200341800f6a410b108304200320032900810f3703d8012003200341880f6a2800003600df0120032d00800f21040c040b200341800f6a410a108304200320032900810f3703d8012003200341880f6a2800003600df0120032d00800f210420032802c40c41ffffff1f71450d032001102e0c030b4100210120072102034020012002410176220420016a2205200620054105746a28020020174b1b2101200220046b220241014b0d000c040b0b4100210120062102200628020022042017470d030c060b410121040b200320032800d0013602b001200320032903d8013703a001200320032800df013600a7012003200341d3016a2800003600b301200041186a41003a000020004200370308200020032802b0013600192000411c6a20032800b301360000200041206a20043a0000200020032903a001370021200041286a20032800a701360000200042013703000c190b200620014105746a220228020022042017460d020b200120042017496a21010b200341800f6a41186a2010370300200341800f6a41106a200f3703002003200c3703880f200320173602800f200341c00c6a41106a2001200341800f6a10ba0120032802d80c21070c020b200720014b0d00200120074180afc400103c000b200620014105746a220141086a2104024020012903084201520d00200341800f6a200341c0116a200341a00c6a200141106a290300200141186a29030041001089040b2004200c37030020022017360200200141186a2010370300200141106a200f3703000b200341e40c6a350200210c200341800f6a200341c00c6a41c00210e9081a200341c0076a200341c0116a10840420032802c807210220032802c0072101200341003602f809200342013703f009200341800f6a200341f0096a10e9032001200220032802f009220420032802f80910b201024020032802f409450d002004102e0b024020032802c407450d002001102e0b0240200341940f6a28020041ffffff3f71450d0020032802900f102e0b200341800f6a411c6a10e303200341800f6a41086a41053a0000200341890f6a20032903c011370000200341910f6a200341c0116a41086a290300370000200341990f6a200341c0116a41106a290300370000200341a10f6a200341c0116a41186a290300370000200341ac0f6a2017360200200341123a00800f200341800f6a10fe01200320032800d0013602b0012003200341d3016a2800003600b301200041186a41003a0000200041106a2007ad42c08b117e200c42e8fcd6007e7c42a8d793d9007c37030020004201370308200020032802b0013600192000411c6a20032800b301360000200042003703000c130b200141086a290300210c200141046a2802002104200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a200241106a290200370300200341800f6a41086a200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c102200341e8016a41086a2201200341d40c6a290200370300200341f5016a2202200341d90c6a290000370000200320032f00c10c3b018402200320032d00c30c3a0086022003200341cc0c6a2902003703e8010240024020032d00c00c4101460d00200341c00c6a41086a280200210520032802c40c2106200341830a6a2001290300370000200341f0096a41186a2002290000370000200320032d0086023a00f209200320032f0184023b01f009200320053600f709200320063600f309200320032903e8013700fb09200341c0076a1081040240024020032802c807220120044d0d0020032802c007220520044106746a22022903004201520d00200241206a200341f0096a412010ec080d00200520044106746a200c370318410021020c010b200341800f6a410a108304024020032d00800f22024106470d00410021020c010b20032902840f210c20032f00810f20032d00830f411074724108742002722101410121020b200341c00c6a41086a200341c0076a41086a280200360200200320032903c00722103703c00c024002402010a722040d00200341a0026a2204420037030020034198026a2205420037030020034188026a41086a220642003703002003420037038802200341800f6a4188fec60041081081022006200341800f6a41086a2207290000370300200320032900800f37038802200341800f6a41b0afc300410a10810220042007290000370300200520032900800f37030020034188026a412010ff010c010b200341a0026a2205420037030020034198026a2206420037030020034188026a41086a220742003703002003420037038802200341800f6a4188fec60041081081022007200341800f6a41086a2208290000370300200320032900800f37038802200341800f6a41b0afc300410a10810220052008290000370300200620032900800f37030020034188026a200341c00c6a10820420032802c40c41ffffff1f71450d002004102e0b20020d0120032003280090053602c802200320034193056a2800003600cb02200041186a41003a0000200041106a2001ad42f0f5127e4290ddb83f7c37030020004201370308200020032802c8023600192000411c6a20032800cb02360000200042003703000c140b410221010b20032003280090053602c802200320034193056a2800003600cb02200041186a41003a000020004200370308200020032802c8023600192000411c6a20032800cb02360000200041246a200c370200200041206a2001360200200042013703000c120b200141246a280200210541022104200341a00c6a41026a2206200141036a2d00003a0000200341c0076a41086a2207200141146a290000370300200341c0076a410d6a2208200141196a290000370000200320012f00013b01a00c20032001410c6a2900003703c007200141046a2800002109200141086a280000210a200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a200241106a290200370300200341800f6a41086a200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c102200341b8016a41086a2201200341c00c6a41146a290200370300200341b8016a410d6a2202200341c00c6a41196a290000370000200320032f00c10c3b01e801200320032d00c30c3a00ea012003200341c00c6a410c6a2902003703b8010240024020032d00c00c4101460d00200341c00c6a41086a280200210420032802c40c210b200341830a6a2001290300370000200341f0096a41186a2002290000370000200320032d00ea013a00f209200320032f01e8013b01f009200320043600f7092003200b3600f309200320032903b8013700fb0920034190056a108104200341e8016a41086a2007290300370300200341e8016a410d6a2008290000370000200320032f01a00c3b018402200320062d00003a008602200320032903c0073703e80102400240200328029805220420054d0d0020032802900520054106746a22012903004201520d002003419b026a200341e8016a41086a29030037000020034188026a41186a2202200341f5016a290000370000200320032d0086023a008a02200320032f0184023b0188022003200a36008f022003200936008b02200320032903e80137009302200141206a2201200341f0096a412010ec080d002001200329038802370200200141186a2002290300370200200141106a20034188026a41106a290300370200200141086a20034188026a41086a290300370200410021010c010b200341800f6a410a108304024020032d00800f22014106470d00410021010c010b20032902840f210c20032f00810f20032d00830f411074724108742001722104410121010b200341c00c6a41086a20034190056a41086a280200360200200320032903900522103703c00c024002402010a722020d00200341a0026a2202420037030020034198026a2205420037030020034188026a41086a220642003703002003420037038802200341800f6a4188fec60041081081022006200341800f6a41086a2207290000370300200320032900800f37038802200341800f6a41b0afc300410a10810220022007290000370300200520032900800f37030020034188026a412010ff010c010b200341a0026a2205420037030020034198026a2206420037030020034188026a41086a220742003703002003420037038802200341800f6a4188fec60041081081022007200341800f6a41086a2208290000370300200320032900800f37038802200341800f6a41b0afc300410a10810220052008290000370300200620032900800f37030020034188026a200341c00c6a10820420032802c40c41ffffff1f71450d002002102e0b20010d01200320032800c8023602c0112003200341cb026a2800003600c311200041186a41003a0000200041106a2004ad42f89c137e42a8adef3f7c37030020004201370308200020032802c0113600192000411c6a20032800c311360000200042003703000c130b0b200320032800c8023602c0112003200341cb026a2800003600c311200041186a41003a000020004200370308200020032802c0113600192000411c6a20032800c311360000200041246a200c370200200041206a2004360200200042013703000c110b200141106a290300210c200141086a2903002110200141046a2802002104200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a200241106a290200370300200341800f6a41086a200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c102200341e8016a41086a2201200341d40c6a290200370300200341f5016a2202200341d90c6a290000370000200320032f00c10c3b018402200320032d00c30c3a0086022003200341cc0c6a2902003703e8010240024020032d00c00c4101460d00200341c00c6a41086a280200210520032802c40c2106200341830a6a2001290300370000200341f0096a41186a2002290000370000200320032d0086023a00f209200320032f0184023b01f009200320053600f709200320063600f309200320032903e8013700fb09200341c0076a1081040240024020032802c807220120044d0d0020032802c00720044106746a22022903004201520d00200241206a200341f0096a412010ec080d00200241086a220220103703002002200c370308410021020c010b200341800f6a410a108304024020032d00800f22024106470d00410021020c010b20032902840f210c20032f00810f20032d00830f411074724108742002722101410121020b200341c00c6a41086a200341c0076a41086a280200360200200320032903c00722103703c00c024002402010a722040d00200341a0026a2204420037030020034198026a2205420037030020034188026a41086a220642003703002003420037038802200341800f6a4188fec60041081081022006200341800f6a41086a2207290000370300200320032900800f37038802200341800f6a41b0afc300410a10810220042007290000370300200520032900800f37030020034188026a412010ff010c010b200341a0026a2205420037030020034198026a2206420037030020034188026a41086a220742003703002003420037038802200341800f6a4188fec60041081081022007200341800f6a41086a2208290000370300200320032900800f37038802200341800f6a41b0afc300410a10810220052008290000370300200620032900800f37030020034188026a200341c00c6a10820420032802c40c41ffffff1f71450d002004102e0b20020d0120032003280090053602c802200320034193056a2800003600cb02200041186a41003a0000200041106a2001ad42a0e6127e42e0efb73f7c37030020004201370308200020032802c8023600192000411c6a20032800cb02360000200042003703000c120b410221010b20032003280090053602c802200320034193056a2800003600cb02200041186a41003a000020004200370308200020032802c8023600192000411c6a20032800cb02360000200041246a200c370200200041206a2001360200200042013703000c100b200141046a2802002106200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a200241106a290200370300200341800f6a41086a200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c10220034188026a41086a2201200341c90c6a29000037030020034188026a41106a2202200341d10c6a29000037030020034188026a41186a2204200341d90c6a290000370300200320032900c10c3703880202400240024002400240024002400240024020032d00c00c4101460d00200341c0116a41186a2004290300370300200341c0116a41106a2002290300370300200341c0116a41086a200129030037030020032003290388023703c011200341a00c6a200341c0116a108404200341800f6a20032802a00c220120032802a80c10850420034190056a200341800f6a41a40210e9081a200341f0046a41086a200341ad116a290000370300200341f0046a41106a200341b5116a290000370300200341f0046a41176a2202200341bc116a280000360000200320032900a5113703f004024020032d00a41122044102460d00200341c8026a20034190056a41a40210e9081a200341a8026a41176a2002280000360000200341a8026a41106a2202200341f0046a41106a290300370300200341a8026a41086a2205200341f0046a41086a290300370300200320032903f0043703a802024020032802a40c450d002001102e0b200341f0096a41066a200341c8026a41a40210e9081a200341c0076a200341f0096a41aa0210e9081a20034188026a41176a2201200341a8026a41176a28000036000020034188026a41106a2207200229030037030020034188026a41086a22022005290300370300200320032903a80237038802200341c00c6a200341c0076a41066a41a40210e9081a200341c00c6a41a4026a20043a0000200341e50e6a200329038802370000200341ed0e6a2002290300370000200341f50e6a2007290300370000200341fc0e6a200128000036000020032802d00c2107200341d80c6a28020022080e020403020b024020032802a40c450d002001102e0b200341800f6a4106108304200320032900810f3703b8012003200341880f6a2800003600bf0120032d00800f21010c070b410221010c060b4100210120082102034020012002410176220420016a2205200720054105746a28020020064b1b2101200220046b220241014b0d000b200720014105746a2802002006470d01200820014d0d020c030b4100210120072802002006460d020b200341800f6a4102108304200320032900810f3703b8012003200341880f6a2800003600bf010c020b200120081046000b200720014105746a220241186a2903002110200241106a290300210f2002290308210c2002200241206a20082001417f736a41057410ea081a20032008417f6a22013602d80c200c4201510d02200341800f6a4108108304200320032900810f3703b8012003200341800f6a41086a2800003600bf010b20032d00800f21010240200341d40c6a28020041ffffff3f71450d002007102e0b200341dc0c6a10e3030b200320032800d8013602a001200320032903b8013703e801200320032800bf013600ef012003200341db016a2800003600a301200041186a41003a000020004200370308200020032802a0013600192000411c6a20032800a301360000200041206a20013a0000200020032903e801370021200041286a20032800ef01360000200042013703000c100b200341d0006a200341c0116a200f201010fb01200341e40c6a350200210c200341800f6a200341c00c6a41c00210e9081a200341c0076a200341c0116a10840420032802c807210420032802c0072102200341003602f809200342013703f009200341800f6a200341f0096a10e9032002200420032802f009220520032802f80910b201024020032802f409450d002005102e0b024020032802c407450d002002102e0b0240200341940f6a28020041ffffff3f71450d0020032802900f102e0b200341800f6a411c6a10e303200341800f6a41086a41043a0000200341890f6a20032903c011370000200341910f6a200341c0116a41086a290300370000200341990f6a200341c0116a41106a290300370000200341a10f6a200341c0116a41186a290300370000200341ac0f6a2006360200200341123a00800f200341800f6a10fe01200320032800d8013602a0012003200341db016a2800003600a301200041186a41003a0000200041106a2001ad4288800d7e200c42c0b6d6007e7c42e8dfb4d4007c37030020004201370308200020032802a0013600192000411c6a20032800a301360000200042003703000c0f0b200141106a290300210c200141086a2903002110200141046a2802002101200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a200241106a290200370300200341800f6a41086a200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c10220034188026a41086a2202200341c90c6a29000037030020034188026a41106a2204200341d10c6a29000037030020034188026a41186a2205200341d90c6a290000370300200320032900c10c37038802024002400240024002400240024002400240024002400240024020032d00c00c4101460d00200341c0116a41186a2005290300370300200341c0116a41106a2004290300370300200341c0116a41086a200229030037030020032003290388023703c011200341b8016a10810420032802b801210420032802c00120014d0d01200420014106746a22022903004201520d0102402002290308201056200241106a2903002210200c562010200c511b450d00200341800f6a410510830420032f00810f20032d00830f4110747221010c0b0b200341a00c6a200341c0116a108404200341800f6a20032802a00c220520032802a80c10850420034190056a200341800f6a41a40210e9081a200341f0046a41086a200341ad116a290000370300200341f0046a41106a200341b5116a290000370300200341f0046a41176a2206200341bc116a280000360000200320032900a5113703f00402400240024020032d00a41122074102460d00200241086a2109200341c8026a20034190056a41a40210e9081a200341a8026a41176a2006280000360000200341a8026a41106a2202200341f0046a41106a290300370300200341a8026a41086a2206200341f0046a41086a290300370300200320032903f0043703a802024020032802a40c450d002005102e0b200341f0096a41066a200341c8026a41a40210e9081a200341c0076a200341f0096a41aa0210e9081a20034188026a41176a2205200341a8026a41176a28000036000020034188026a41106a2208200229030037030020034188026a41086a22022006290300370300200320032903a80237038802200341c00c6a200341c0076a41066a41a40210e9081a200341c00c6a41a4026a20073a0000200341e50e6a200329038802370000200341ed0e6a2002290300370000200341f50e6a2008290300370000200341fc0e6a2005280000360000200941086a290300210c200929030021104100210220032802d00c2108200341c00c6a41186a280200220a0e020702010b024020032802a40c450d002005102e0b200341800f6a410610830420032f00810f20032d00830f4110747221010c0c0b41002102200a2105034020022005410176220620026a2207200820074105746a28020020014b1b2102200520066b220541014b0d000c040b0b4100210220082106200828020022052001470d030c060b410221020c0b0b200341800f6a410410830420032f00810f20032d00830f4110747221010c080b200820024105746a220628020022052001460d020b200220052001496a21020b200341800f6a41186a200c370300200341900f6a2010370300200342013703880f200320013602800f200341c00c6a41106a2002200341800f6a10ba010c020b200a20024b0d002002200a41f0aec400103c000b02400240200820024105746a2202280208417f6a0e06000101010100010b200341800f6a410710830420032f00810f20032d00830f41107472210120032902840f210c20032d00800f21020c020b200241086a420137030020062001360200200241186a200c370300200241106a20103703000b200341800f6a200341c0116a2009290300200941086a29030010c30220032d00800f22024106460d0120032f00810f20032d00830f41107472210120032902840f210c0b0240200341d40c6a28020041ffffff3f71450d0020032802d00c102e0b200341dc0c6a10e3030c020b200341e40c6a350200210c20033502d80c2110200341800f6a200341c00c6a41c00210e9081a200341c0076a200341c0116a10840420032802c807210520032802c0072102200341003602f809200342013703f009200341800f6a200341f0096a10e9032002200520032802f009220620032802f80910b201024020032802f409450d002006102e0b024020032802c407450d002002102e0b0240200341940f6a28020041ffffff3f71450d0020032802900f102e0b200341800f6a411c6a10e303200341800f6a41086a41033a0000200341890f6a20032903c011370000200341910f6a200341c0116a41086a290300370000200341990f6a200341c0116a41106a290300370000200341a10f6a200341c0116a41186a290300370000200341ac0f6a2001360200200341123a00800f201042e0a4137e200c4290c3d7007e7c42c8a3e7e2007c210c200341800f6a10fe01024020032802bc0141ffffff1f71450d002004102e0b200320032800e8013602d8012003200341e8016a41036a2800003600db01200041186a41003a0000200041106a200c37030020004201370308200020032802d8013600192000411c6a20032800db01360000200042003703000c110b20032902840f210c20032d00800f21020b20032802bc0141ffffff1f71450d002004102e0b200320032800e8013602d8012003200341eb016a2800003600db01200041236a20014110763a0000200020013b0021200041186a41003a000020004200370308200020032802d8013600192000411c6a20032800db013600002000200c370024200041206a20023a0000200042013703000c0e0b200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a200241106a290200370300200341800f6a41086a200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c10220034188026a41086a2201200341c90c6a29000037030020034188026a41106a2202200341d10c6a29000037030020034188026a41186a2204200341d90c6a290000370300200320032900c10c37038802410121050240024020032d00c00c4101460d00200341c0116a41186a2004290300370300200341c0116a41106a2002290300370300200341c0116a41086a200129030037030020032003290388023703c011200341c00c6a200341c0116a108704200341800f6a20032802c00c220220032802c80c2204108804024020032802900f2201450d002002200410ff01200121050b20032903800f211020032902940f210c200341880f6a2903002111024020032802c40c450d002002102e0b200341a00c6a200341c0116a108404200341800f6a20032802a00c220220032802a80c2206108504024020032d00a411220741024622040d002002200610ff010b200c420020011b210f20034190056a200341800f6a41a40210e9081a200341f0046a41176a2206200341bc116a280000360000200341f0046a41106a2208200341b5116a290000370300200341f0046a41086a2209200341ad116a290000370300200320032900a5113703f004024020040d00200341c8026a20034190056a41a40210e9081a200341a8026a41176a2006280000360000200341a8026a41106a2008290300370300200341a8026a41086a2009290300370300200320032903f0043703a802024020032802a40c450d002002102e0b2010420020011b210e2011420020011b210d200341f0096a41066a200341c8026a41a40210e9081a200341c0076a200341f0096a41aa0210e9081a20034188026a41176a2201200341a8026a41176a28000036000020034188026a41106a2202200341a8026a41106a29030037030020034188026a41086a2204200341a8026a41086a290300370300200320032903a80237038802200341c00c6a200341c0076a41066a41a40210e9081a200341c00c6a41a4026a20073a0000200341e50e6a200329038802370000200341ed0e6a2004290300370000200341f50e6a2002290300370000200341fc0e6a2001280000360000200341c00c6a41086a290300211220032903c00c211120032802d00c210602400240200341d80c6a280200220741057422020d004200210c420021100c010b200641106a21014200210c420021100340200141086a2903004200200141786a29030042015122041b20107c2001290300420020041b2210200c7c220c201054ad7c2110200141206a2101200241606a22020d000b0b2012200d7c2011200e7c220e201154ad7c20107c200e200c7c220c200e54ad7c21100240200f4220882211a72201450d0020014105742102200521010340200341800f6a200110d70320032802800f220420032802880f10ff01024020032802840f450d002004102e0b200141206a2101200241606a22020d000b0b200341c0006a200341c0116a200c201010fb01200341b80f6a2010370300200341b00f6a200c370300200341800f6a41086a41013a0000200341890f6a20032903c011370000200341910f6a200341c0116a41086a290300370000200341990f6a200341d0116a290300370000200341a10f6a200341d8116a290300370000200341123a00800f200341800f6a10fe012007ad42a084097e201142b0ba8e017e7c200341e40c6a35020042d8ac2d7e7c20114280c2d72f7e7c210c200341dc0c6a21010240200341d40c6a28020041ffffff3f71450d002006102e0b200c42d0faca90017c210c200110e3030240200f42ffffff3f83500d002005102e0b200320032800d8013602a0012003200341db016a2800003600a301200041186a41003a0000200041106a200c37030020004201370308200020032802a0013600192000411c6a20032800a301360000200042003703000c100b024020032802a40c450d002002102e0b200341800f6a4103108304200320032900810f3703b8012003200341880f6a2800003600bf0120032d00800f2101200f42ffffff3f83500d012005102e0c010b410221010b200320032800d8013602a001200320032903b8013703e801200320032800bf013600ef012003200341db016a2800003600a301200041186a41003a000020004200370308200020032802a0013600192000411c6a20032800a301360000200041206a20013a0000200020032903e801370021200041286a20032800ef01360000200042013703000c0d0b2001410c6a2802002107200141086a2802002108200141046a280200211b200341800f6a41286a200241286a280200360200200341800f6a41206a200241206a290200370300200341800f6a41186a200241186a290200370300200341800f6a41106a200241106a290200370300200341800f6a41086a200241086a290200370300200320022902003703800f200341c00c6a200341800f6a10c102200341b8016a41086a2201200341d40c6a290200370300200341c5016a2202200341d90c6a290000370000200320032f00c10c3b01e801200320032d00c30c3a00ea012003200341c00c6a410c6a2902003703b801024020032d00c00c4101460d00200341c00c6a41086a280200210420032802c40c2105200341d3076a2001290300370000200341c0076a41186a2002290000370000200320032d00ea013a00c207200320032f01e8013b01c007200320043600c707200320053600c307200320032903b8013700cb07200341800f6a200341c0076a10840420032802800f220220032802880f108f022101024020032802840f450d002002102e0b024020010d00200341800f6a410210830420032f00810f20032d00830f4110747221040c040b0240200741e500490d00200341800f6a410110830420032f00810f20032d00830f4110747221040c040b200341c00c6a200341c0076a108704200341800f6a20032802c00c220120032802c80c108804200341800f6a41086a290300210f20032802900f211c20032903800f211020032902940f210c024020032802c40c450d002001102e0b200c4200201c1b210d201c4101201c1b211d200341306a2007ad42004280f19384eb05420010e808200341306a41086a29030021112003290330210e0240200741c4006c2205450d00200341ac0f6a2101200341a10f6a2104200341800f6a410b6a210a20034188026a410b6a210b201b21020340200341c00c6a200210d703200341800f6a20032802c00c220920032802c80c10860420034188026a41086a200341800f6a41086a29030037030020034188026a41106a200341800f6a41106a29030037030020034188026a41186a200341800f6a41186a290300370300200341bc076a41026a2215200441026a22162d00003a0000200341a00c6a41086a2217200141086a2218290000370300200341a00c6a41106a2219200141106a221a290000370300200320032903800f37038802200320042f00003b01bc07200320012900003703a00c0240024020032d00a00f22064106460d0020032802a80f211e20032802a40f211f200341e8016a41086a2220200b41086a290000370300200341e8016a410d6a2221200b410d6a290000370000200341b8076a41026a222220152d00003a0000200341f0046a41106a22152019290300370300200341f0046a41086a22192017290300370300200320032d008a023a008602200320032f0188023b018402200320032f01bc073b01b807200320032903a00c3703f0042003200b2900003703e801200328008b022117200328008f022123024020032802c40c450d002009102e0b200a20032903e801370000200420032f01b8073b0000200a41086a2020290300370000200a410d6a2021290000370000201620222d00003a0000200320032d0086023a00820f200320032f0184023b01800f200320233600870f200320173600830f200320063a00a00f200120032903f00437000020182019290300370000201a20152903003700002003201e3602a80f2003201f3602a40f200341800f6a200341c0076a412010ec082109024020064101470d00201e450d00201f102e0b2009450d01200341800f6a410e10830420032f00810f20032d00830f41107472210420032902840f210c20032d00800f21050c060b20032802c40c450d002009102e0b200241c4006a2102200541bc7f6a22050d000b0b0240024020104200201c1b2210200e5a200f4200201c1b220c20115a200c20115122011b0d00200341800f6a200341c0076a200e20107d2011200c7d200e201054ad7d10c30220032d00800f22054106460d0120032f00810f20032d00830f41107472210420032902840f210c0c040b2010200e58200c20115820011b0d00200341206a200341c0076a2010200e7d200c20117d2010200e54ad7d10fb010b0240200d4220882212a72201450d0020014105742102201d21010340200341800f6a200110d70320032802800f220420032802880f10ff01024020032802840f450d002004102e0b200141206a2101200241606a22020d000b0b200741c4006c220441c4006d220141ffffff3f712001470d0120014105742202417f4c0d010240024020020d00410121240c010b2002102c2224450d0b0b02400240024002402002410576222520014f0d00200241047622052001200520014b1b22054104200541044b1b220541ffffff3f712005462106200541057421050240024020020d00200341003602800f0c010b200341880f6a4101360200200320023602840f200320243602800f0b200341c00c6a20052006200341800f6a107d200341c80c6a280200210220032802c00c4101460d0120032802c40c2124200241057621250b201b20046a2226201b470d0141002106201b21050c020b20020d0c0c030b2007410274417c6a41027641016a2127200341800f6a41216a210441002106200341c00c6a411f6a2107201b21012024210202400340200141186a290200210c200141176a2d00002109200141166a2d0000210a200141146a2f0100210b200141136a2d00002115200141126a2d00002116200141106a2f010021172001410f6a2d000021182001410e6a2d000021192001410c6a2f0100211a2001410b6a2d0000211e2001410a6a2d0000211f200141086a2f01002120200141076a2d00002121200141066a2d00002122200141046a2f01002123200141036a2d0000211c200141026a2d00002128200141206a2d0000210520012f010021292007200141c0006a280000360000200341c00c6a41186a222a200141396a290000370300200341c00c6a41106a222b200141316a290000370300200341c00c6a41086a222c200141296a2900003703002003200141216a2900003703c00c024020054106470d00200141c4006a21050c020b2003200c3703880a200320093a00870a2003200a3a00860a2003200b3b01840a200320153a00830a200320163a00820a200320173b01800a200320183a00ff09200320193a00fe092003201a3b01fc092003201e3a00fb092003201f3a00fa09200320203b01f809200320213a00f709200320223a00f609200320233b01f4092003201c3a00f309200320283a00f209200320293b01f009200341800f6a41186a200341c0076a41186a290300370300200341800f6a41106a200341c0076a41106a290300370300200341800f6a41086a200341c0076a41086a290300370300200420032903c00c370000200441086a202c290300370000200441106a202b290300370000200441186a202a2903003700002004411f6a2007280000360000200320032903c0073703800f200320053a00a00f20034190056a200341f0096a10d7032003280290052205200328029805200341800f6a108b040240200328029405450d002005102e0b024020032d00a00f4101470d0020032802a80f450d0020032802a40f102e0b200341f0096a41086a290300210c200341f0096a41106a290300211020032903f009210f200241186a200341f0096a41186a290300370000200241106a2010370000200241086a200c3700002002200f370000200641016a2106200241206a2102200141c4006a22012026470d000b20262105202721060b202620056b220441c4006d21010b02402004450d00200141c4006c2102200541286a210103400240200141786a2d00004101470d002001280200450d002001417c6a280200102e0b200141c4006a2101200241bc7f6a22020d000b0b02402008450d00200841c4006c450d00201b102e0b0240024020060d00200341800f6a200341c0076a10870420032802800f220120032802880f10ff01024020032802840f450d002001102e0b201242e0aa8e017e20124280c2d72f7e7c4290cf9fb8017c210c2025450d012024102e0c010b200341f0096a200341c0076a10870420064105744114722201417f4c0d0220032802f809210520032802f00921042001102c2202450d0b200341003602c80c200320013602c40c200320023602c00c200320113703880f2003200e3703800f200341c00c6a200341800f6a411010742006200341c00c6a107620064105742102202421010340200341c00c6a200141201074200141206a2101200241606a22020d000b2004200520032802c00c220120032802c80c10b201024020032802c40c450d002001102e0b024020032802f409450d002004102e0b02402025450d002024102e0b201242e0aa8e017e20124280c2d72f7e7c2006ad220c42b8fea8037e200c42c0f0f50b7e7c200c4280c2d72f7e7c7c4290cf9fb8017c210c0b0240200d42ffffff3f83500d00201d102e0b200320032800c8023602c0112003200341cb026a2800003600c311200041186a41003a0000200041106a200c37030020004201370308200020032802c0113600192000411c6a20032800c311360000200042003703000c0d0b410221050c030b1038000b200d42ffffff3f83500d01201d102e0c010b20032902840f210c20032d00800f21050b02402007450d00200741c4006c2102201b41286a210103400240200141786a2d00004101470d002001280200450d002001417c6a280200102e0b200141c4006a2101200241bc7f6a22020d000b0b02402008450d00200841c4006c450d00201b102e0b200320032800c8023602c0112003200341cb026a2800003600c311200041236a20044110763a0000200020043b0021200041186a41003a000020004200370308200020032802c0113600192000411c6a20032800c3113600002000200c370024200041206a20053a0000200042013703000c080b410221020b200341f0096a10e3030c020b024020032802c411450d002001102e0b200341d80c6a410036020042002111200342003703c80c200342003703c00c200342083703d00c200341dc0c6a200341f0096a41a00210e9081a420021100b2003200f4280fad5d5f2057c220c3703c00c2003200e200c200f54ad7c220f3703c80c0240200c201158200f201058200f20105122011b0d00200341800f6a200341c0076a200c20117d200f20107d200c201154ad7d10c30220032d00800f22024106460d0020032d00830f411074210120032f00810f210420032902840f210c0240200341d40c6a28020041ffffff3f71450d0020032802d00c102e0b20042001722101200341dc0c6a10e3030c010b02402011200c582010200f5820011b0d002003200341c0076a2011200c7d2010200f7d2011200c54ad7d10fb010b200341d80c6a350200210c200341800f6a200341c00c6a41c00210e9081a200341c8026a200341c0076a10840420032802d002210220032802c802210120034100360298052003420137039005200341800f6a20034190056a10e90320012002200328029005220420032802980510b2010240200328029405450d002004102e0b024020032802cc02450d002001102e0b0240200341940f6a28020041ffffff3f71450d0020032802900f102e0b200341800f6a411c6a10e303200341800f6a41086a41003a0000200341890f6a20032903c007370000200341910f6a200341c0076a41086a290300370000200341990f6a200341c0076a41106a290300370000200341a10f6a200341c0076a41186a290300370000200341123a00800f200341800f6a10fe01200320032800a00c3602b8012003200341a30c6a2800003600bb01200041186a41003a0000200041106a200c4288f70f7e200d4280aec4007e7c4280e7a9d6007c37030020004201370308200020032802b8013600192000411c6a20032800bb01360000200042003703000c040b200320032800a00c3602b8012003200341a30c6a2800003600bb01200041236a20014110763a0000200020013b0021200041186a41003a000020004200370308200020032802b8013600192000411c6a20032800bb013600002000200c370024200041206a20023a0000200042013703000c030b1036000b0b200320032800c8023602c0112003200341cb026a2800003600c311200041186a41003a000020004200370308200020032802c0113600192000411c6a20032800c311360000200041286a2001360200200041246a2002360200200041206a2004360200200042013703000b200341e0116a24000bca0a06067f017e037f017e047f067e230041f0016b22012400200141206a22024200370300200141186a22034200370300200141086a41086a420037030020014200370308200141086a4188fec6004108108102200141c8016a41b0afc300410a1081022002200141c8016a41086a290000370300200320012900c8013703002001412036022c2001200141086a360228200141306a200141086a412010ed02024002400240200128023022040d00410021030c010b200128023421052001200141306a41086a280200360244200120043602402001200141c0006a10ab010240024020012802000d00024002402001280204220620012802444106762202200220064b1b22024106742203417f4c0d000240024020020d00410821030c010b2003102c2203450d060b2002ad2107024002402006450d00200141c8016a4101722108034020012802442202450d04200128024022092d0000210a20012002417f6a3602442001200941016a3602404200210b02400240200a0e020100060b200141c8016a200141c0006a10930120012d00c8014101460d05200141a8016a41186a220c200841186a290000370300200141a8016a41106a220d200841106a290000370300200141a8016a41086a220e200841086a290000370300200120082900003703a801200128024422024110490d0520012001280240220941106a220a3602402001200241706a220f360244200f4108490d05200941086a2900002110200929000021112001200241686a3602442001200a41086a360240200a290000220b4280025a0d0520014188016a41186a200c29030037030020014188016a41106a200d29030037030020014188016a41086a200e290300370300200120012903a80137038801200b42ff018321124201210b0b200141e8006a41186a20014188016a41186a2903002213370300200141e8006a41106a20014188016a41106a2903002214370300200141e8006a41086a20014188016a41086a2903002215370300200141c8006a41086a22092015370300200141c8006a41106a220a2014370300200141c8006a41186a220f20133703002001200129038801221337036820012013370348024020074220882213a722022007a7470d00200241016a220c2002490d042002410174220d200c200c200d491b220c4104200c41044b1b220c41ffffff1f71200c46410374210d200c410674210c0240024020020d00200141003602c8010c010b200141083602d001200120033602c801200120134206863e02cc010b200141a8016a200c200d200141c8016a107d20012802b001210c20012802a8014101460d0320012802ac012103200742808080807083200c410676ad8421070b200320024106746a220220113703082002200b370300200241106a2010370300200241186a2012370300200241206a2001290348370300200241286a2009290300370300200241306a200a290300370300200241386a200f29030037030020074280808080107c21072006417f6a22060d000b0b2003450d030c040b200c0d050b1038000b0240200742ffffff1f83500d002003102e0b0b41002103200141003602b001200142013703a8012001410a36028c012001200141286a360288012001200141a8016a360268200141dc016a4101360200200142013702cc01200141909dc5003602c801200120014188016a3602d801200141e8006a419cebc000200141c8016a103d1a20012802a80120012802b00110ef0220012802ac01450d0020012802a801102e0b2005450d002004102e0b0240024020030d0020004100360208200042083702000c010b20002007370204200020033602000b200141f0016a24000f0b1036000b8b0101047f230041106b2202240002400240200128020822034106744104722204417f4c0d00200128020021012004102c2205450d01200241003602082002200436020420022005360200200320021076200120032002109a012000412020022802002201200228020810b20102402002280204450d002001102e0b200241106a24000f0b1038000b1036000bd80301047f230041c0006b2202240041bbebc2002103410f21044108210502400240024002400240024002400240024002400240024002400240024002400240200141ff01710e11000102030405060708090a0b0c0d0e0f10000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a4198a6cc001044000b41a9ebc200210341122105410021040c0e0b418be7c400210341012104410821050c0d0b41a1ebc200210341022104410821050c0c0b4197ebc2002103410a2105410321040c0b0b418debc2002103410a2105410421040c0a0b4183ebc2002103410a2105410521040c090b41f4eac2002103410f2105410621040c080b41e6eac2002103410e2105410721040c070b41d6eac200210341102105410821040c060b41caeac2002103410c2105410921040c050b41bdeac2002103410d2105410a21040c040b41b0eac2002103410d2105410b21040c030b419feac200210341112105410c21040c020b41faa0c5002103410e2105410d21040c010b4199eac200210341062105410e21040b20004183383b0100200041086a2005360200200041046a2003360200200041026a20043a0000200241c0006a24000bb40201037f230041e0006b22022400200241086a4188fec6004108108102200241186a41d0adc300410a108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241c8006a41086a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000baa37050e7f027e017f027e247f230041f0086b220324002003200236021c20032001360218200341206a2001200210ed0202400240200328022022040d00200041023a00a4020c010b200328022421052003200341206a41086a2802003602bc02200320043602b8022003200341b8026a3602e805200341106a200341e8056a10d8040240024020032802100d004108210602400240200328021422074180012007418001491b2208450d002008410574102c2206450d010b024002400240024002400240024020070d00410021070c010b20034198086a41106a210920034198086a41046a210a20034198086a41086a210b4100210c4100210d4100210e0340200341003602980820034198086a20032802b802220f20032802bc022201410420014104491b220210e9081a2003200120026b22013602bc022003200f20026a220f3602b802024020034198086a20026a2210200a460d0020104100410420026b10eb081a0b2003350298082111200341003a0098070240200120014100472202490d0020034198076a200f200210e9081a2003200120026b22103602bc022003200f20026a22023602b80202400240024020010d00420021120c010b4200211202400240024002400240024020032d0098070e0707000102030405080b20034198086a2010411020104110491b22016a41004100411020016b22132001410f4b1b10eb08210f20034198086a2002200110e9081a2003201020016b3602bc022003200220016a3602b8020240200f2009460d00200f4100201310eb081a0b200b29030021142003290398082115420121120c060b420221120c040b420321120c030b420421120c020b420521120c010b420621120b0b0240200e2008470d00200d200e41016a2201200d20014b1b22014104200141044b1b220141ffffff3f7120014641037421022001410574210102400240200e0d0020034100360298080c010b200341083602a0082003200c36029c0820032006360298080b200341f0076a2001200220034198086a107d20032802f8072101024020032802f0074101470d002001450d050c0a0b20032802f4072106200141057621080b2006200c6a22012011370300200141186a2014370300200141106a2015370300200141086a2012370300200c41206a210c200d41026a210d2007200e41016a220e460d020c010b0b410221010240200841ffffff3f710d000c090b2006102e0c080b2006450d06200341a0086a220e4200370300200342003703980820034198086a20032802b802220c20032802bc022202411020024110491b220110e9081a2003200220016b3602bc022003200c20016a3602b802024020014110460d0020034198086a20016a4100411020016b10eb081a0b200e29030021152003290398082112200341086a200341e8056a10d80420032802080d0302400240200328020c220c4138200c4138491b22020d004104210e0c010b200241c8006c102c220e450d060b0240200c0d004100210c0c020b200341f0076a410c6a2116200341f0076a4101722117410021104100210d0340200341f0076a200341e8056a10eb0302400240024020032d00f007220f4106460d00200341c8056a41026a2209201741026a2d00003a0000200341d8076a41086a220b201641086a290200370300200341d8076a41106a2213201641106a290200370300200320172f00003b01c805200320162902003703d80720032802f407210a20032802f807210120034198086a200341e8056a10eb0320032d0098084106470d01200f4101470d002001450d00200a102e0b4106210f0c010b200341a8056a41026a20092d00003a0000200341c0076a41086a200b290300370300200341c0076a41106a201329030037030020034198076a41086a20034198086a41086a29030037030020034198076a41106a20034198086a41106a29030037030020034198076a41186a20034198086a41186a29030037030020034198076a41206a20034198086a41206a280200360200200320032f01c8053b01a805200320032903d8073703c007200320032903980837039807200a2118200121190b20034188056a41026a2201200341a8056a41026a2d00003a000020034180076a41086a220a200341c0076a41086a29030037030020034180076a41106a2209200341c0076a41106a290300370300200341d8066a41086a220b20034198076a41086a290300370300200341d8066a41106a221320034198076a41106a290300370300200341d8066a41186a221a20034198076a41186a290300370300200341d8066a41206a221b20034198076a41206a280200360200200320032f01a8053b018805200320032903c0073703800720032003290398073703d8060240200f4106460d00200341e8046a41026a221c20012d00003a0000200341c0066a41086a221d200a290300370300200341c0066a41106a220a200929030037030020034198066a41086a2209200b29030037030020034198066a41106a220b201329030037030020034198066a41186a2213201a29030037030020034198066a41206a221a201b280200360200200320032f0188053b01e80420032003290380073703c006200320032903d806370398060240200d2002470d00200241016a22012002490d032002410174221b2001201b20014b1b22014104200141044b1bad42c8007e2214422088a74541027421012014a7211b0240024020020d0020034100360298080c010b200341043602a0082003200e360298082003200241c8006c36029c080b200341f0076a201b200120034198086a107d20032802f8072101024020032802f0074101470d0020010d090c040b20032802f407210e200141c8006e21020b200e20106a2201200f3a0000200141086a2019360000200141046a2018360000200141036a201c2d00003a0000200141016a20032f01e8043b00002001410c6a20032903c006370000200141146a201d2903003700002001411c6a200a290300370000200141346a200b2903003700002001412c6a20092903003700002001413c6a2013290300370000200141246a200329039806370000200141c4006a201a280200360000201041c8006a2110200c200d41016a220d460d030c010b0b0240200d450d00200e20106a210c200e21010340024020012d00004101470d00200141086a280200450d00200141046a280200102e0b0240200141246a2d00004101470d002001412c6a280200450d00200141286a280200102e0b200c200141c8006a2201470d000b0b2002450d03200241c8006c0d020c030b1038000b200e450d0120034198086a200341e8056a10eb03024020032d00980822104106460d00200341ec056a41026a20032d009b083a000020034180076a41086a200341ac086a220129020037030020034180076a41106a200341b4086a220f290200370300200320032f0099083b01ec052003200341a4086a220d2902003703800720034198086a41086a2213280200210a200328029c08210920034198086a200341e8056a10eb03024020032d009808220b4106460d00200341f0056a41026a20032d009b083a0000200341c0076a41086a2001290200370300200341c0076a41106a200f290200370300200320032f0099083b01f0052003200d2902003703c00720132802002113200328029c08211a20034198086a200341e8056a10eb03024020032d009808221b4106460d00200341f4056a41026a20032d009b083a0000200341d8076a41086a200341ac086a2201290200370300200341d8076a41106a200341b4086a220f290200370300200320032f0099083b01f4052003200341a4086a220d2902003703d80720034198086a41086a2218280200211c200328029c08211d20034198086a200341e8056a10eb03024020032d00980822164106460d00200341f8056a41026a20032d009b083a000020034198066a41086a200129020037030020034198066a41106a200f290200370300200320032f0099083b01f8052003200d2902003703980620182802002118200328029c08211920034198086a200341e8056a10eb03024020032d00980822174106460d00200341fe056a20032d009b083a0000200341d8066a41086a200341ac086a290200370300200341e8066a200341b4086a290200370300200320032f0099083b01fc052003200341a4086a2902003703d80620034198086a41086a280200211e200328029c08211f200341003a009808024020032802e805222028020422012001410047220d490d0020034198086a20202802002221200d10e9081a20202001200d6b220f36020420202021200d6a22213602000240024020010d00410021010c010b41002101024020032d0098080e020100020b200341003a00ac084100212202400340200341003a009807200f200f4100472201490d01202241016a210d20034198076a2021200110e9081a2020200f20016b22233602042020202120016a22213602000240200f0d00200341003a0098070b20034198086a20226a20032d0098073a00002003200d3a00ac082023210f200d2122200d4114470d000b200341f0076a41086a20034198086a41086a290300370300200341f0076a41106a20034198086a41106a28020036020020032003290398083703f007410121010c010b202241ff0171450d01200341003a00ac080c010b20034180066a41106a200341f0076a41106a28020036020020034180066a41086a200341f0076a41086a290300370300200320032903f0073703800620034198086a200341e8056a10eb0320032d00980822204106460d0020034194066a41026a220f20032d009b083a000020034198076a41086a200341ac086a29020037030020034198076a41106a200341b4086a290200370300200320032f0099083b0194062003200341a4086a2902003703980720034198086a41086a2802002121200328029c08212220034198086a200341e8056a10eb0320032d0098084106470d0820204101470d002021450d002022102e0b20174101470d00201e450d00201f102e0b20164101470d002018450d002019102e0b201b4101470d00201c450d00201d102e0b200b4101470d002013450d00201a102e0b20104101470d00200a450d002009102e0b0240200c450d00200e200c41c8006c6a210c200e21010340024020012d00004101470d00200141086a280200450d00200141046a280200102e0b0240200141246a2d00004101470d002001412c6a280200450d00200141286a280200102e0b200141c8006a2201200c470d000b0b2002450d01200241c8006c450d010b200e102e0b200841ffffff3f71450d022006102e410221010c030b200341f0076a41206a20034198086a41206a280200360200200341f0076a41186a20034198086a41186a290300370300200341f0076a41106a20034198086a41106a220d290300370300200341f0076a41086a20034198086a41086a2223290300370300200341e4056a41026a200341ec056a41026a2d00003a0000200341c0066a41086a20034180076a41086a290300370300200341c0066a41106a20034180076a41106a29030037030020032003290398083703f007200320032f01ec053b01e40520032003290380073703c006200341e0056a41026a200341f0056a41026a2d00003a0000200320032f01f0053b01e005200341c8056a41106a200341c0076a41106a290300370300200341c8056a41086a200341c0076a41086a290300370300200320032903c0073703c805200341c4056a41026a200341f4056a41026a2d00003a0000200320032f01f4053b01c405200341a8056a41106a200341d8076a41106a290300370300200341a8056a41086a200341d8076a41086a290300370300200320032903d8073703a805200341a4056a41026a200341f8056a41026a2d00003a0000200320032f01f8053b01a40520034188056a41106a20034198066a41106a29030037030020034188056a41086a20034198066a41086a29030037030020032003290398063703880520034184056a41026a200341fc056a41026a2d00003a0000200320032f01fc053b018405200341e8046a41106a200341d8066a41106a290300370300200341e8046a41086a200341d8066a41086a290300370300200320032903d8063703e804200d20034180066a41106a280200360200202320034180066a41086a290300370300200320032903800637039808200341e4046a41026a200f2d00003a0000200320032f0194063b01e404200341c8046a41106a20034198076a41106a290300370300200341c8046a41086a20034198076a41086a29030037030020032003290398073703c8040c020b1036000b410221010b200341c4046a41026a200341e4056a41026a2d00003a0000200341a8046a41086a200341c0066a41086a290300370300200341a8046a41106a2223200341c0066a41106a290300370300200341a4046a41026a200341e0056a41026a2d00003a000020034188046a41086a200341c8056a41086a29030037030020034188046a41106a2224200341c8056a41106a290300370300200320032f01e4053b01c404200320032903c0063703a804200320032f01e0053b01a404200320032903c8053703880420034184046a41026a200341c4056a41026a2d00003a0000200341e8036a41086a200341a8056a41086a290300370300200341e8036a41106a2225200341a8056a41106a290300370300200341e4036a41026a200341a4056a41026a2d00003a0000200341c8036a41086a20034188056a41086a290300370300200341c8036a41106a222620034188056a41106a290300370300200320032f01c4053b018404200320032903a8053703e803200320032f01a4053b01e40320032003290388053703c803200341c4036a41026a20034184056a41026a2d00003a0000200341a8036a41106a2227200341e8046a41106a290300370300200341a8036a41086a200341e8046a41086a290300370300200341a4036a41026a200341e4046a41026a2d00003a000020034188036a41106a2228200341c8046a41106a29030037030020034188036a41086a200341c8046a41086a290300370300200320032f0184053b01c403200320032903e8043703a803200320032f01e4043b01a403200320032903c80437038803200341e0026a41206a2229200341f0076a41206a280200360200200341e0026a41186a222a200341f0076a41186a290300370300200341e0026a41106a222b200341f0076a41106a290300370300200341e0026a41086a200341f0076a41086a290300370300200320032903f0073703e002200341c0026a41176a20034198086a41176a220f280000360000200341c0026a41106a20034198086a41106a220d290300370300200341c0026a41086a20034198086a41086a29030037030020032003290398083703c0020240024020014102470d00200341003602f807200342013703f0072003410a36029c072003200341186a360298072003200341f0076a3602d806200341ac086a41013602002003420137029c08200341909dc50036029808200320034198076a3602a808200341d8066a419cebc00020034198086a103d1a20032802f00720032802f80710ef0220032802f407450d0120032802f007102e0c010b200341b4026a41026a222c200341c4046a41026a2d00003a000020034198026a41086a222d200341a8046a41086a29030037030020034198026a41106a222e202329030037030020034194026a41026a2223200341a4046a41026a2d00003a0000200341f8016a41086a222f20034188046a41086a290300370300200341f8016a41106a22302024290300370300200320032f01c4043b01b402200320032903a80437039802200320032f01a4043b01940220032003290388043703f801200341f4016a41026a222420034184046a41026a2d00003a0000200341d8016a41086a2231200341e8036a41086a290300370300200341d8016a41106a22322025290300370300200341d4016a41026a2225200341e4036a41026a2d00003a0000200341b8016a41086a2233200341c8036a41086a290300370300200341b8016a41106a22342026290300370300200320032f0184043b01f401200320032903e8033703d801200320032f01e4033b01d401200320032903c8033703b801200341b4016a41026a2226200341c4036a41026a2d00003a000020034198016a41106a2235202729030037030020034198016a41086a2227200341a8036a41086a29030037030020034194016a41026a2236200341a4036a41026a2d00003a0000200341f8006a41106a22372028290300370300200341f8006a41086a222820034188036a41086a290300370300200320032f01c4033b01b401200320032903a80337039801200320032f01a4033b0194012003200329038803370378200341d0006a41206a22382029280200360200200341d0006a41186a2229202a290300370300200341d0006a41106a222a202b290300370300200341d0006a41086a222b200341e0026a41086a290300370300200320032903e002370350200341306a410f6a200341c0026a410f6a290000370000200341306a41086a2239200341c0026a41086a290300370300200320032903c0023703302000201537030820002012370300200020103a00282000200c360224200020023602202000200e36021c2000200736021820002008360214200020063602102000200a3602302000200936022c200020032f01b4023b00292000412b6a202c2d00003a000020002003290398023702342000413c6a202d290300370200200041c4006a202e2903003702002000200b3a004c200041cf006a20232d00003a0000200020032f0194023b004d200020133602542000201a360250200041e8006a2030290300370200200041e0006a202f290300370200200020032903f8013702582000201b3a0070200041f3006a20242d00003a0000200020032f01f4013b00712000201c3602782000201d3602742000418c016a203229030037020020004184016a2031290300370200200020032903d80137027c200020163a00940120004197016a20252d00003a0000200020032f01d4013b0095012000201836029c012000201936029801200041b0016a2034290300370200200041a8016a2033290300370200200020032903b8013702a001200020173a00b801200041bb016a20262d00003a0000200020032f01b4013b00b9012000201e3602c0012000201f3602bc01200041d4016a2035290300370200200041cc016a202729030037020020002003290398013702c401200020203a00dc01200041df016a20362d00003a0000200020032f0194013b00dd01200020213602e401200020223602e001200041f8016a2037290300370200200041f0016a2028290300370200200020032903783702e801200041a0026a203828020036020020004198026a202929030037020020004190026a202a29030037020020004188026a202b2903003702002000200329035037028002200f200341306a41176a280000360000200d200341306a41106a29030037030020034198086a41086a220220392903003703002003200329033037039808200041bc026a200f280000360000200041b5026a200d290300370000200041ad026a200229030037000020002003290398083700a5020b200020013a00a4022005450d002004102e0b200341f0086a24000bbd07010a7f23004180026b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022040d00200041063a00200c010b200328021421052003200341186a280200220636029401200320043602900141002101200341003a00d801024002400240034020062001460d01200341b8016a20016a200420016a22022d00003a00002003200241016a360290012003200141016a22023a00d8012002210120024120470d000b2003200620026b36029401200341206a41186a2201200341b8016a41186a290300370300200341206a41106a2206200341b8016a41106a290300370300200341206a41086a2207200341b8016a41086a290300370300200320032903b801370320200241ff01714120490d0120034198016a41086a200729030037030020034198016a41106a200629030037030020034198016a41186a20012903003703002003200329032037039801200341b8016a20034190016a10ec0320032d00b80122014106460d01200341f0006a41186a220220034198016a41186a290300370300200341f0006a41106a220620034198016a41106a290300370300200341f0006a41086a220720034198016a41086a290300370300200341c8006a41086a2208200341c1016a290000370300200341c8006a41106a2209200341c9016a290000370300200341c8006a41186a220a200341d1016a290000370300200341c8006a411f6a220b200341d8016a2800003600002003200329039801370370200320032900b901370348200341206a411f6a220c200b280000360000200341206a41186a220b200a290300370300200341206a41106a220a2009290300370300200341206a41086a22092008290300370300200041186a2002290300370200200041106a2006290300370200200041086a20072903003702002000200329037037020020032003290348370320200041c0006a200c280000360000200041396a200b290300370000200041316a200a290300370000200041296a2009290300370000200020032903203700210c020b2003410036029401200141ff0171450d00200341003a00d8010b20034100360250200342013703482003410a3602242003200341086a3602202003200341c8006a3602e001200341cc016a4101360200200342013702bc01200341909dc5003602b8012003200341206a3602c801200341e0016a419cebc000200341b8016a103d1a2003280248200328025010ef020240200328024c450d002003280248102e0b410621010b200020013a00202005450d002004102e0b20034180026a24000bb40201037f230041e0006b22022400200241086a4188fec6004108108102200241186a41d0aec3004106108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241c8006a41086a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000b8e0302027f037e230041e0006b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041003602100c010b200328021421042003200341106a41086a2802002202360224200320013602200240024020024110490d002003200241706a3602242003200141106a360220200141086a2900002105200129000021062003200341206a10ab0102402003280200450d00200341003602480c010b200341c8006a200341206a200328020410920120032802482202450d00200329024c2107200020053703082000200637030020002007370214200020023602100c010b20034100360230200342013703282003410a36023c2003200341086a3602382003200341286a360244200341dc006a41013602002003420137024c200341909dc5003602482003200341386a360258200341c4006a419cebc000200341c8006a103d1a2003280228200328023010ef020240200328022c450d002003280228102e0b200041003602100b2004450d002001102e0b200341e0006a24000ba43809017f0a7e027f077e017f017e037f037e047f230041f0056b22062400200620043703202006200337031820062001360214200620053a002f0240024020032004844200520d0020004100360200200041106a4200370300200041086a42003703000c010b024002400240024002400240024002400240024020012002412010ec080d002005450d01200641d0016a200110c802200641f0046a20062802d001220220062802d80110c90220064190056a290300420020062903f00442015122011b210720064188056a290300420020011b2108024020062802d401450d002002102e0b20004100360200200041106a4200200420077d2003200854ad7d2207200320087d2208200356200720045620072004511b22011b370300200041086a4200200820011b3703000c0a0b2006200236028c01200641d0016a200210c802200641f0046a20062802d001220520062802d80110c902200641f0046a41386a2903002109200641f0046a41306a2903002107200641f0046a41286a290300210a200641f0046a41206a290300210b200641f0046a41186a290300210c200641f0046a41106a2903002103200641b0056a290300210d20062903f804210420062903f0042108200641c8036a41086a200641c0056a2903003703002006200641b8056a2903003703c8030240024020084201510d004200210d20064190016a41386a420037030020064190016a41306a420037030020064190016a41286a4200370300200641b0016a420037030020064190016a41186a420037030020064190016a41106a420037030020064190016a41086a420037030020064200370390014200210b4200210a420021074200210942002104420021034200210c4200210e4200210f42002108420021100c010b200641b0016a200a37030020064190016a41286a200737030020064190016a41106a200c37030020064190016a41306a20093703002006200b3703a80120062004370390012006200d3703c8012006200337039801200a210e2007210f20042108200321100b024020062802d401450d002005102e0b0240024020082010844200520d00200e20062903a00184200f200641a8016a29030084844200520d0020062903c001200641c8016a2903008450450d0042002108410021110c010b42012108410121110b0240024020084201510d0042002104200641c0036a4200370300200641b8036a4200370300200641b0036a4200370300200641a8036a4200370300200641a0036a420037030020064198036a420037030020064190036a42003703002006420037038803420021030c010b200641a8036a200a370300200641b0036a2007370300200641b8036a200937030020064198036a200c3703002006200b3703a0032006200d3703c003200620043703880320062003370390030b024020084201510d00200641a0046a41206a200641b8036a290300370300200641a0046a41186a200641b0036a290300370300200641b0046a20064188036a41206a290300370300200641a8046a20064188036a41186a29030037030020062006290398033703a00441838a1c211241b4a4c7002101410b21050c070b200620013602dc03200641a0046a200110c802200641f0046a20062802a004220520062802a80410c902200641f0046a41386a2903002113200641f0046a41306a290300210f200641f0046a41286a2903002114200641f0046a41206a2903002104200641f0046a41186a290300210c200641f0046a41106a2903002103200641b0056a290300211520062903f804211020062903f004210e200641c8036a41086a200641c0056a2903003703002006200641b8056a2903003703c80302400240200e4201510d0042002115200641e0036a41386a4200370300200641e0036a41306a4200370300200641e0036a41286a4200370300200641e0036a41206a4200370300200641e0036a41186a4200370300200641e0036a41106a4200370300200641e0036a41086a4200370300200642003703e00342002104420021144200210f4200211342002110420021034200210c42002116420021174200210e420021180c010b200641e0036a41206a2014370300200641e0036a41286a200f370300200641e0036a41106a200c370300200641e0036a41306a2013370300200620043703f803200620103703e0032006201537039804200620033703e80320142116200f21172010210e200321180b024020062802a404450d002005102e0b02400240200e2018844200520d00201620062903f003842017200641f8036a29030084844200520d0020062903900420064198046a2903008450450d0042002117410021120c010b42012117410121120b024020174201510d00420021044200210c42002115420021144200210f4200211342002110420021030b200641186a41086a290300220e2004200c20062903182218562004200e562004200e511b22051b21162018200c20051b210e02400240024020062d002f4101470d002006290398032218200e7c22192018542205200641a0036a221a290300221820167c2005ad7c221b201854201b2018511b450d010c060b2006290388032218200e7c2219201854220520064188036a41086a290300221820167c2005ad7c221b201854201b2018511b0d0520062019370388032006201b370390030c010b201a201b37030020062019370398030b20064198056a221c200f370300200641a0056a221d201337030020064188056a200420167d200c200e54ad7d220f37030020062014370390052006200c200e7d221437038005200620103703f004200620033703f80442002104200e422088a72105200ea7211a02400240427f201020147c220c200c201054221e2003200f7c201ead7c220c200354200c2003511b221e1b221842ffc7afa02556427f200c201e1b22134200522013501b0d0020102014842003200f8484220450211e4200210c2004420052ad21040c010b201d290300211f201c290300212020064190056a290300212120064180056a290300211b200629038805211920062903f804211420062903f004210e4201210c4101211e0b200641c8046a2013370300200641c0046a221c2018370300200641b0046a2003370300200620103703a804200620163703d804200620053602d4042006201a3602d004200620043703b80420062017420152ad220f3703a0040240024002402012200c420152720d00200620013602f0042001200641f0046a10bd060c010b024020124101732205200c420151720d00200620013602f0042001200641f0046a10be0641ff017122054103460d01024020050e03030200030b41002105410421120240201e0d002006201c3602f004200641f0046a10cc020b410021010c070b200c4201522005710d030b200641e0046a200110c802200641f0046a20062802e004221220062802e804221a10c90220062903f0042103200641c8036a41086a2205200641c0056a2903003703002006200641b8056a2903003703c8030240024020034201510d00200641e8026a41086a4200370300200642003703e8020c010b200641e8026a41086a2005290300370300200620062903c8033703e8020b200641b8056a20062903e802370300200641c0056a200641e8026a41086a290300370300200642013703f004200641f0046a41386a201f4200200c42015122051b370300200641a0056a2020420020051b370300200641f0046a41286a2021420020051b37030020064190056a2019420020051b37030020064188056a201b420020051b370300200641f0046a41106a2014420020051b370300200641b0056a2015420020051b3703002006200e420020051b3703f8042012201a200641f0046a41086a10c805024020062802e404450d002012102e0b200641a0046a41106a2903002103200641a0046a41286a2903002113200641a0046a41386a290300210c20062903a804211020062903c004211820062903d004210e20062903a004210f20062903b80421040c030b200641c8046a2903002113200641b0046a2903002103200641d8046a290300210c20062903c004211820062903a804211020062903d004210e20062903b804210420062903a004210f0c020b200620012003200410fb0120062903002103200041106a200641086a290300370300200041086a2003370300200041003602000c080b200641d8046a290300210c20062903d004210e0b0240200f4201520d00200641a8056a2003370300200641a0056a2010370300200641f0046a41086a41003a0000200641f9046a200129000037000020064181056a200141086a29000037000020064189056a200141106a29000037000020064191056a200141186a290000370000200641033a00f004200641f0046a10fe010b02400240200450450d00420021150c010b200641f0046a41086a20062802dc03220141086a290000370300200641f0046a41106a200141106a290000370300200641f0046a41186a200141186a290000370300200620012900003703f004420121150b200641e0036a41186a200641f0046a41186a290300370300200641e0036a41106a200641f0046a41106a290300370300200641e0036a41086a200641f0046a41086a290300370300200620062903f0043703e0034100211a0c020b41808008210141800a2105410321120b20014180800c71200541800e7172201272211241a984ca00ad4280808080800184210e4101211a4200210c0b20064188036a41086a2903002103200641c0036a29030021212006290388032104200641a0046a41206a221e20064188036a41306a290300370300200641a0046a41186a221c20064188036a41286a290300370300200641b0046a221d20064188036a41206a290300370300200641a0046a41086a222220064188036a41186a29030037030020062006290398033703a004200e422088a72105200ea72101201a450d010b2005ad4220862001ad8421084200210f410121010c010b200641f0046a41186a20222903002207370300200641f0046a41206a201d290300370300200641f0046a41286a201c290300370300200641f0046a41306a201e290300370300200620062903a004220a37038005200620043703f004200620033703f804420021104201210f2008420152211a02400240427f2004200a7c22082008200454221e200320077c201ead7c220820035420082003511b221e1b221442ffc7afa02556427f2008201e1b220e420052200e501b0d004200210f2004200a84200320078484420052ad21100c010b200641a0056a290300210920064198056a290300210720064190056a290300210a20064180056a2903002119200629038805210b20062903f804211b20062903f00421170b201aad2108200641e8026a41086a200641e0036a41086a290300370300200641e8026a41106a200641e0036a41106a290300370300200641e8026a41186a200641e0036a41186a290300370300200620062903e0033703e8022005ad4220862001ad842116410021012021210d0b200641c8026a41086a2205200641e8026a41086a290300370300200641c8026a41106a221a200641e8026a41106a290300370300200641c8026a41186a221e200641e8026a41186a290300370300200620062903e8023703c8020240024002400240024020010d0020064188026a200c370300200641f8016a200e370300200641f0016a22012014370300200641d0016a41106a2003370300200641c0026a2013370300200641b8026a221c201837030020064190026a201537030020064198026a20062903c802370300200641a0026a2005290300370300200641a8026a201a290300370300200641b0026a201e2903003703002006201637038002200620043703d801200620103703e801200620083703d001024002402011200f420152720d00200620023602f0042002200641f0046a10bd060c010b024020114101732205200f420151720d00200620023602f0042002200641f0046a10be0641ff017122054103460d010240024020050e03010300010b02402010500d00200620013602f004200641f0046a10cc020b20064190026a220510d20441012101410421122005290300500d052006201c3602f004200641f0046a10cc020c050b20064190046a200641c0026a29030037030020064188046a200641b8026a29030037030020064180046a200641b0026a290300370300200641f8036a200641a8026a290300370300200641f0036a200641a0026a290300370300200641e8036a20064198026a290300370300200620064190026a2903003703e003410021010c040b200f4201522005710d020b20064188036a200210c802200641f0046a2006280288032205200628029003221210c90220062903f0042103200641c8036a41086a2201200641c0056a2903003703002006200641b8056a2903003703c8030240024020034201510d00200641a0046a41086a4200370300200642003703a0040c010b200641a0046a41086a2001290300370300200620062903c8033703a0040b200641f0046a41c8006a20062903a004370300200641f0046a41d0006a200641a0046a41086a2211290300370300200642013703f004200641f0046a41386a20094200200f42015122011b370300200641f0046a41306a2007420020011b370300200641f0046a41286a200a420020011b370300200641f0046a41206a200b420020011b370300200641f0046a41186a2019420020011b370300200641f0046a41106a201b420020011b370300200641f0046a41c0006a200d420020011b37030020062017420020011b3703f80420052012200641f0046a41086a10c8050240200628028c03450d002005102e0b200641e0036a41086a2201200641d0016a41c8006a290300370300200641e0036a41106a2205200641d0016a41d0006a290300370300200641e0036a41186a2212200641a8026a290300370300200641e0036a41206a221a200641b0026a290300370300200641e0036a41286a221e200641b8026a290300370300200641e0036a41306a221c200641c0026a2903003703002006200641d0016a41c0006a2903003703e003200641d0016a41106a2903002103200641d0016a41286a290300210e200641d0016a41386a290300210c20062903d801210420062903f0012114200629038002210820062903d001210720062903e8012110200641a0046a41306a201c290300370300200641a0046a41286a201e290300370300200641a0046a41206a201a290300370300200641a0046a41186a2012290300370300200641a0046a41106a200529030037030020112001290300370300200620062903e0033703a004200641a0046a21010c030b410121010c010b20064190046a200641c0026a29030037030020064188046a200641b8026a29030037030020064180046a200641b0026a290300370300200641f8036a200641a8026a290300370300200641f0036a200641a0026a290300370300200641e8036a20064198026a290300370300200620064190026a2903003703e003410021010b200641a0046a41306a200641e0036a41306a290300370300200641a0046a41286a200641e0036a41286a290300370300200641a0046a41206a200641e0036a41206a290300370300200641a0046a41186a200641e0036a41186a290300370300200641a0046a41106a200641e0036a41106a290300370300200641a0046a41086a200641e0036a41086a290300370300200620062903e0033703a00402402001450d00410121010c020b200641a0046a210120082107201621080b200641d0016a41306a200141306a290300370300200641d0016a41286a200141286a290300370300200641d0016a41206a200141206a290300370300200641d0016a41186a200141186a290300370300200641d0016a41106a200141106a290300370300200641d0016a41086a200141086a290300370300200620012903003703d001024020074201520d00200628028c012101200641a8056a2003370300200641f0046a41306a2004370300200641f0046a41086a41003a0000200641f9046a200129000037000020064181056a200141086a29000037000020064189056a200141106a29000037000020064191056a200141186a290000370000200641033a00f004200641f0046a10fe010b02400240201050450d00420021030c010b20064188036a41086a200628028c01220141086a29000037030020064188036a41106a200141106a29000037030020064188036a41186a200141186a2900003703002006200129000037038803420121030b20064190016a41186a20064188036a41186a29030037030020064190016a41106a20064188036a41106a29030037030020064190016a41086a20064188036a41086a290300370300200641f0046a41086a200641d0016a41086a290300370300200641f0046a41106a200641d0016a41106a290300370300200641f0046a41186a200641d0016a41186a290300370300200641f0046a41206a200641d0016a41206a290300370300200641f0046a41286a200641d0016a41286a290300370300200641f0046a41306a200641d0016a41306a290300370300200620062903880337039001200620062903d0013703f004410021010b200641d0006a41086a2205200641f0046a41086a2211290300370300200641d0006a41106a221a200641f0046a41106a290300370300200641d0006a41186a221e200641f0046a41186a290300370300200641d0006a41206a221c200641f0046a41206a290300370300200641d0006a41286a221d200641f0046a41286a290300370300200641d0006a41306a2222200641f0046a41306a290300370300200641306a41086a222320064190016a41086a290300370300200641306a41106a222420064190016a41106a290300370300200641306a41186a222520064190016a41186a290300370300200620062903f0043703502006200629039001370330024020010d00200641a0046a41306a2022290300370300200641a0046a41286a201d290300370300200641a0046a41206a201c290300370300200641a0046a41186a201e290300370300200641a0046a41106a201a290300370300200641a0046a41086a2005290300370300200620062903503703a004200641d0016a41306a200e370300200641d0016a41286a22122014370300200641d0016a41106a2023290300370300200641d0016a41186a2024290300370300200641d0016a41206a2025290300370300200620033703d001200620062903303703d80120062d002f2105200641e0036a41186a2006280214220141186a2900002203370300200641e0036a41106a200141106a2900002204370300200641e0036a41086a200141086a290000220737030020062001290000220a3703e003200641c8056a200c370300200641c0056a2008370300201141073a0000200641f9046a200a37000020064181056a200737000020064189056a200437000020064191056a2003370000200641b9056a20053a000020064199056a2002290000370000200641a1056a200241086a290000370000200641a9056a200241106a290000370000200641b1056a200241186a290000370000200641033a00f004200641f0046a10fe01200041086a2006290318220320087d37030020004100360200200041106a200641186a41086a290300200c7d2003200854ad7d370300200641d0016a10d204024020062903d001500d00200620123602f004200641f0046a10cc020b200641a0046a10d20420062903a004500d012006200641c8046a3602f004200641f0046a10cc020c010b2000201236020420004101360200200041086a20083702000b200641f0056a24000bda0102037f017e230041206b2203240002400240200241186a2802004105744114722204417f4c0d002004102c2205450d01200341003602082003200436020420032005360200200229030021062003200241086a290300370318200320063703102003200341106a4110107420022802102104200228021822022003107602402002450d002002410574210203402003200441201074200441206a2104200241606a22020d000b0b2000200120032802002204200328020810b20102402003280204450d002004102e0b200341206a24000f0b1038000b1036000b7801017f230041206b2203240020034100360208200342013703002003200241201074200341106a200241206a108a012003200328021022022003280218107402402003280214450d002002102e0b2000200120032802002202200328020810b20102402003280204450d002002102e0b200341206a24000b832501047f024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002802000e1b00010218180304051806070818090a0b0c0d0e0f10111213141516170b0240024002400240024002400240200041086a2802000e0a1e1e001e01021e030405060b200041106a280200450d1d2000410c6a280200102e0f0b200041106a280200450d1c2000410c6a280200102e0f0b200041106a280200450d1b2000410c6a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141186c210103400240200241046a280200450d002002280200102e0b0240200241106a280200450d002002410c6a280200102e0b200241186a2102200141686a22010d000b0b200041106a2802002202450d1a200241186c450d1a200028020c102e0f0b0240200041146a2802002201450d002000410c6a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041106a2802002202450d192002410c6c450d19200028020c102e0f0b200041106a280200450d182000410c6a280200102e0f0b200041106a280200450d172000410c6a280200102e0f0b0240024002400240024020002d00040e061b001b010203040b200041186a2202280200108c042002280200102e0f0b02402000410c6a280200450d00200041086a280200102e0b200041246a2202280200108c042002280200102e0f0b2000410c6a280200450d18200041086a280200102e0f0b200041186a2202280200108c042002280200102e0f0b02402000410c6a280200450d00200041086a280200102e0b200041246a2202280200108c042002280200102e0f0b02400240200041086a280200417f6a0e020001170b2000412c6a220110e1010240200041306a2802002202450d00200241246c450d002001280200102e0b2000419c016a220110e1010240200041a0016a2802002202450d00200241246c450d002001280200102e0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d162002410c6c450d162000280210102e0f0b2000412c6a220110e1010240200041306a2802002202450d00200241246c450d002001280200102e0b2000419c016a220110e1010240200041a0016a2802002202450d00200241246c450d002001280200102e0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d152002410c6c450d152000280210102e0f0b0240024002400240200041086a2802000e0418000102030b2000410c6a2d00004102470d17200041146a280200450d17200041106a280200102e0f0b2000410c6a2d00004102470d16200041146a280200450d16200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004102470d15200041386a280200450d15200041346a280200102e0f0b2000410c6a2d00004102470d14200041146a280200450d14200041106a280200102e0f0b02402000410c6a2802002201450d0020002802042202200141f0006c6a21030340024020022204410c6a2802002201450d0020042802042102200141246c210103400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200441f0006a21020240200441086a2802002201450d00200141246c450d002004280204102e0b20022003470d000b0b200041086a2802002202450d13200241f0006c450d132000280204102e0f0b024002400240024002400240200041086a2d00000e171800181818180118180218181818180318180418181818050b2000412c6a2d00004102470d17200041346a280200450d17200041306a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141246c21010340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200041106a2802002202450d16200241246c450d16200028020c102e0f0b2000410c6a2d00004102470d15200041146a280200450d15200041106a280200102e0f0b200041106a28020041ffffff3f71450d142000410c6a280200102e0f0b200041146a28020041ffffffff0371450d13200041106a280200102e0f0b0240200041146a2802002201450d002000410c6a2802002102200141246c21010340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b200041106a2802002202450d12200241246c450d12200028020c102e0f0b20002802042202450d11200041086a280200450d112002102e0f0b02400240200041086a280200417f6a0e020001120b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d112002410c6c450d112000280210102e0f0b0240200041186a2802002201450d00200041106a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041146a2802002202450d102002410c6c450d102000280210102e0f0b02402000410c6a280200450d00200041086a280200102e0b02402000411c6a2802002201450d00200041146a28020021022001410c6c210103400240200241046a280200450d002002280200102e0b2002410c6a2102200141746a22010d000b0b200041186a2802002202450d0f2002410c6c450d0f2000280214102e0f0b0240024002400240200041086a2d000041716a0e0400010203120b200041106a280200450d112000410c6a280200102e0f0b200041106a280200450d102000410c6a280200102e0f0b200041106a280200450d0f2000410c6a280200102e0f0b200041106a280200450d0e2000410c6a280200102e0f0b024002400240200041086a2d0000417f6a0e03000102100b200041306a28020041ffffff3f71450d0f2000412c6a280200102e0f0b2000410c6a2202280200108c042002280200102e0f0b200041106a2202280200108c042002280200102e0f0b024002400240200041086a2d0000417f6a0e030001020f0b200041306a28020041ffffff3f71450d0e2000412c6a280200102e0f0b2000410c6a2202280200108c042002280200102e0f0b200041106a2202280200108c042002280200102e0f0b02400240200041086a2d0000417f6a0e05000d0d0d010d0b200041106a28020041ffffff3f71450d0c2000410c6a280200102e0f0b2000410c6a2d00004102470d0b200041146a280200450d0b200041106a280200102e0f0b20002d00044104470d0a2000410c6a28020041ffffff3f71450d0a200041086a280200102e0f0b200041086a2802004101470d092000410c6a2d00004102470d09200041146a280200450d09200041106a280200102e0f0b02400240200041086a2d0000417d6a0e0200010a0b200041f0006a280200450d09200041ec006a280200102e0f0b200041106a280200450d082000410c6a280200102e0f0b024002400240200041086a2802000e040a0a0001020b2000410c6a2d00004102470d09200041146a280200450d09200041106a280200102e0f0b2000410c6a2d00004102470d08200041146a280200450d08200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004102470d07200041386a280200450d07200041346a280200102e0f0b02400240024020002f01040e03090001020b0240200041106a2802002201450d00200041086a2802002102200141b0026c210103402002109601200241b0026a2102200141d07d6a22010d000b0b2000410c6a2802002202450d08200241b0026c450d082000280208102e0f0b200041086a2202280200108c042002280200102e0f0b0240200041106a2802002201450d00200041086a2802002102200141b0026c210103402002109601200241b0026a2102200141d07d6a22010d000b0b2000410c6a2802002202450d06200241b0026c450d062000280208102e0f0b0240024002400240024002400240200041086a2d0000417e6a0e0d00010c0c0c0c0c0c02030405060c0b2000410c6a10e3030f0b0240200041146a2802002202450d00200241c4006c21012000410c6a28020041286a210203400240200241786a2d00004101470d002002280200450d002002417c6a280200102e0b200241c4006a2102200141bc7f6a22010d000b0b200041106a2802002202450d0a200241c4006c450d0a200028020c102e0f0b200041106a2d00004102470d09200041186a280200450d09200041146a280200102e0f0b2000410c6a2d00004102470d08200041146a280200450d08200041106a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004101470d07200041386a280200450d07200041346a280200102e0f0b02402000410c6a2d00004102470d00200041146a280200450d00200041106a280200102e0b200041306a2d00004101470d06200041386a280200450d06200041346a280200102e0f0b2000410c6a2d00004102470d05200041146a280200450d05200041106a280200102e0f0b20002d00042202417e6a4108490d040240024020020e020600010b200041286a2202280200108c042002280200102e0f0b200041c8006a2202280200108c042002280200102e0f0b0240024002400240200041086a2d00000e0407000102030b0240200041106a28020041ffffff3f71450d002000410c6a280200102e0b200041186a2202280200108c042002280200102e0f0b0240200041106a28020041ffffff3f71450d002000410c6a280200102e0b200041286a280200450d05200041246a280200102e0f0b200041306a28020041ffffff3f71450d042000412c6a280200102e0f0b200041306a28020041ffffff3f71450d032000412c6a280200102e0f0b0240024002400240200041086a2802000e09060006010606020606030b200041106a280200450d052000410c6a280200102e0f0b200041106a2d00004102470d04200041186a280200450d04200041146a280200102e0f0b200041106a2d00004102470d03200041186a280200450d03200041146a280200102e0f0b200041146a280200450d02200041106a280200102e0f0b02400240200041086a2d0000417f6a0e03000301030b200041306a280200450d022000412c6a280200102e0c020b200041306a280200450d012000412c6a280200102e0f0b02402000413c6a28020041ffffffff0171450d00200041386a280200102e0b0240200041c8006a2802002202450d002002410c6c450d00200041c4006a280200102e0b0240200041d4006a28020041ffffffff0071450d00200041d0006a280200102e0b0240200041e0006a2802002202450d00200241146c450d00200041dc006a280200102e0b0240200041ec006a2802002202450d00200241186c450d00200041e8006a280200102e0b0240200041f8006a2802002202450d002002411c6c450d00200041f4006a280200102e0b024020004184016a28020041ffffff3f71450d0020004180016a280200102e0b024020004190016a2802002202450d00200241246c450d002000418c016a280200102e0b02402000419c016a2802002202450d00200241286c450d0020004198016a280200102e0b0240200041a8016a2802002202450d002002412c6c450d00200041a4016a280200102e0b0240200041b4016a2802002202450d00200241306c450d00200041b0016a280200102e0b0240200041c0016a2802002202450d00200241346c450d00200041bc016a280200102e0b0240200041cc016a2802002202450d00200241386c450d00200041c8016a280200102e0b0240200041d8016a2802002202450d002002413c6c450d00200041d4016a280200102e0b0240200041e4016a28020041ffffff1f71450d00200041e0016a280200102e0b200041f0016a2802002202450d00200241c4006c450d00200041ec016a280200102e0f0b0b830501077f230041c0006b220324002001280204210420012802002105024002400240200128020822060d00410021070c010b200641057421084100210941002107200521010240034002402009450d0020092001412010ec084100480d0020034106108e04200041013602002000410c6a200341086a280200360200200020032903003702040c020b024020012002412010ec08220941004a0d00024020090d0020034107108e04200041013602002000410c6a200341086a280200360200200020032903003702040c030b200741016a21070b20012109200141206a2101200841606a2208450d020c000b0b200441ffffff3f71450d012005102e0c010b200341186a200241186a290000370300200341106a200241106a290000370300200341086a200241086a290000370300200320022900003703000240024020062007490d000240024020062004470d00200441016a22012004490d03200441017422092001200920014b1b22014104200141044b1b220141ffffff3f712001462109200141057421010240024020040d00200341003602300c010b200341386a410136020020032005360230200320044105743602340b200341206a20012009200341306a107d200341286a280200210120032802204101460d0120032802242105200141057621040b200520074105746a220141206a2001200620076b41057410ea081a200141186a200341186a290300370000200141106a200341106a290300370000200141086a200341086a290300370000200120032903003700002000410c6a200641016a360200200041086a200436020020002005360204200041003602000c030b2001450d011036000b200720061045000b1038000b200341c0006a24000bae0301047f230041c0006b2202240041f0cbc3002103410d2104410d2105024002400240024002400240024002400240024002400240024002400240200141ff01710e0f000102030405060708090a0b0c0d0e000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a4180a7cc001044000b41e0cbc300210341102105410021040c0c0b41d1cbc3002103410f2105410121040c0b0b41c0cbc300210341112105410221040c0a0b41afcbc300210341112105410321040c090b419dcbc300210341122105410421040c080b4188cbc300210341152105410521040c070b41f5cac300210341132105410621040c060b418be7c400210341082105410721040c050b41feccc200210341082104410821050c040b41eacac3002103410b2105410921040c030b41dccac3002103410e2105410a21040c020b41c9cac300210341132105410b21040c010b41bacac3002103410f2105410c21040b200041833c3b0100200041086a2005360200200041046a2003360200200041026a20043a0000200241c0006a24000b9d3e07077f017e027f037e017f027e067f230041b00d6b220924004101210a02400240200241ffff037141014b0d00200941d00a6a4101108e042009418f026a200941d00a6a41086a2802002202360000200920092903d00a37008702200041186a41003a0000200042003703082000200929008002370019200041216a20094180026a41086a290000370000200041286a200236000020004201370300410121020c010b02400240200341086a280200220b0d00200941d00a6a4104108e042009418f026a200941d00a6a41086a280200220a360000200920092903d00a37008702200041186a41003a0000200042003703082000200929008002370019200041216a20094180026a41086a290000370000200041286a200a360000200042013703000c010b0240200b41e400490d00200941d00a6a4105108e042009418f026a200941d00a6a41086a280200220a360000200920092903d00a37008702200041186a41003a0000200042003703082000200929008002370019200041216a20094180026a41086a290000370000200041286a200a360000200042013703000c010b20094198076a41086a200341086a280200360200200920032902003703980720094180026a41186a200141186a29000037030020094180026a41106a200141106a29000037030020094180026a41086a220c200141086a2900003703002009200129000037038002200941d00a6a20094198076a20094180026a108d044101210a200941d00a6a41086a280200210d200941dc0a6a280200210e20092802d40a210f024002400240024002400240024002400240024002400240024002400240024020092802d00a4101460d00200c200e360200200920023b018c022009200f36028402200941b1c5cb003602800220094198076a20094180026a109004200941203602d40a200920094198076a3602d00a20094180026a200941d00a6a1093010240024020092d0080024101470d00200941d0006a4200370300200941c8006a4200370300200941c0006a4200370300200942003703380c010b200941d0006a20094199026a290000370300200941c8006a20094191026a290000370300200941c0006a20094189026a29000037030020092009290081023703380b4101210a0240024020072d00004101470d0020094198026a200741196a29000037030020094190026a200741116a29000037030020094188026a200741096a29000037030020092007290001370380024200211041002111410021120c010b20072d0001210e20094180026a200741046a2802002211200741086a29020022134220882210a710b0014100210a200e41004721120b200941d8006a41186a20094180026a41186a2903002214370300200941d8006a41106a20094180026a41106a220e2903002215370300200941d8006a41086a20094180026a41086a221629030022173703002009200929038002221837035820094198076a41186a201437030020094198076a41106a220c201537030020094198076a41086a221920173703002009201837039807200941b8046a200941386a20094198076a10910420094180026a20092802b804221a20092802c00410920420192016290300370300200c200e290300370300200941d00a6a41086a2216200941a8026a290300370300200941d00a6a41106a221b200941b0026a290300370300200941d00a6a41186a221c200941b8026a290300370300200941d00a6a41206a221d200941c0026a290300370300200920092903800237039807200920094180026a41206a2903003703d00a200928029c02211e0240200928029802220e450d00200941a0016a41106a200c290300370300200941a0016a41086a2019290300370300200941f8006a41086a2016290300370300200941f8006a41106a201b290300370300200941f8006a41186a201c290300370300200941f8006a41206a201d29030037030020092009290398073703a001200920092903d00a3703780b024020092802bc04450d00201a102e0b02400240200e0d004101210520044101470d01200941d00a6a410c108e042009418f026a200941d00a6a41086a2802002202360000200920092903d00a37008702200041186a41003a0000200042003703082000200929008002370019200041216a20094180026a41086a290000370000200041286a2002360000200042013703000c100b200941d4016a201e360200200941b8016a41206a2009290378370300200941b8016a41106a200941a0016a41106a290300370300200941b8016a41086a200941a0016a41086a290300370300200941b8016a41286a200941f8006a41086a290300370300200941e8016a200941f8006a41106a290300370300200941f0016a200941f8006a41186a290300370300200941f8016a200941f8006a41206a290300370300200920092903a0013703b8012009200e3602d0010240024020044101470d00024020092802c8012005470d00200941cc016a2802002006460d020b200941d00a6a410b108e042009418f026a200941d00a6a41086a2802002202360000200920092903d00a3700870241002105200041186a41003a0000200042003703082000200929008002370019200041216a20094180026a41086a290000370000200041286a20023600002000420137030020092802d40141ffffff3f71450d1120092802d001102e0c110b200941d00a6a410a108e042009418f026a200941d00a6a41086a2802002202360000200920092903d00a3700870241002105200041186a41003a0000200042003703082000200929008002370019200041216a20094180026a41086a290000370000200041286a20023600002000420137030020092802d40141ffffff3f71450d1020092802d001102e0c100b4101211b410021044100210c024020092802d801221a0e020605000b41002104201a210c0340200c410176221620046a211920192004200e20194105746a2001412010ec084101481b2104200c20166b220c41014b0d000c050b0b200941186a2002ad42ffff038342004280a0cb9801420010e808200941186a41086a2903002009290318221442809886abec057c2208201454ad7c21140240024002400240024002402011450d002013a7210220120d012002450d002011102e0b20094180026a20012008201410c30220092009290081023703d00a200920094180026a41086a2800003600d70a20092d00800222024106470d044100211d0c010b20094180026a41186a200141186a29000037030020094180026a41106a200141106a29000037030020094180026a41086a200141086a2900003703002009200129000037038002200920134220883e02d80a200920023602d40a200920113602d00a20094198076a20094180026a200941d8006a200941d00a6a2008201410930420092009290099073703b804200920094198076a41086a2800003600bf0420092d00980722024106470d014101211d0b200941b8046a41186a220a200941d8006a41186a290300370300200941b8046a41106a2202200941d8006a41106a290300370300200941b8046a41086a2204200941d8006a41086a290300370300200920092903583703b80420094180026a41186a2207420037030020094180026a41106a2205420037030020094180026a41086a4200370300200942003703800220094180026a41d9fcc6004106108102200941d00a6a4180f4cb0041061081022007200941d00a6a41086a2203290000370300200520092900d00a370300200941106a20094180026a4120108e022009280214210520092802102106200941086a41fcc6cb004110108e02200928020c210c20092802082119200941d00a6a41186a2211200141186a2216290000370300200941d00a6a41106a221a200141106a221b2900003703002003200141086a221c290000370300200920012900003703d00a4120102c2207450d0820072001290000370000200741186a2016290000370000200741106a201b290000370000200741086a201c29000037000020094180026a41146a200c410020191b360200200941ac026a2003290300370200200941b4026a201a290300370200200941bc026a20112903003702002009200837038002200920092903d00a3702a402200920143703880220092005410020061b360290022009419c026a428180808010370200200920073602980220094198076a41186a200a29030037030020094198076a41106a200229030037030020094198076a41086a2004290300370300200920092903b80437039807200941d00a6a200941386a20094198076a10910420092802d00a220320092802d80a20094180026a109404024020092802d40a450d002003102e0b2007102e200941a5026a2009290338370000200941ad026a200941386a41086a290300370000200941b5026a200941386a41106a290300370000200941bd026a200941386a41186a2903003700002009418d026a200141086a29000037000020094195026a200141106a2900003700002009419d026a200141186a290000370000200941003a008402200941143a0080022009200129000037008502200941dd026a200941d8006a41186a290300370000200941d5026a200941d8006a41106a290300370000200941cd026a200941d8006a41086a290300370000200941c5026a200929035837000020094180026a10fe01200bad2108201d0d01200842a08a077e201042e8077e7c42e0ff9fe1007c21080c050b20004200370308200020092903b80437002120004201370300200041206a20023a0000200041186a41003a0000200041286a20092800bf043600000c030b200842d8a1077e201042b8177e7c428093e49f017c21080c030b20004200370308200020092903d00a37002120004201370300200041206a20023a0000200041186a41003a0000200041286a20092800d70a3600000c010b2000200d3600242000420037030820004201370300200041286a200e360000200041206a200f36000041002102200041186a41003a00000c100b410121050c0d0b200042013703082000420037030041002107200041186a41003a0000200041106a20083703000c0a0b0240200e20044105746a2001412010ec08220c0d002004210c4100211b0c010b2004200c411f766a210c0b02400240024002400240201a41ffff0371200241ffff0371220249201b712204201a6a41ffff03712002490d000240024020110d0020094198076a200941d8006a109504200941d00a6a200928029807220220092802a007109604024020092802d00a2219450d0020092902d40a21140240200928029c07450d002002102e0b20092014422088a722163602bc04200920193602b804200941d00a6a200941b8046a109801024020092802d00a2202411c460d0020094198076a200941d00a6a41047241ac0210e9081a20094180026a41047220094198076a41ac0210e9081a200920163602b0040b20092002360280022014a7450d022019102e20092802800221020c020b0240200928029c07450d002002102e0b2009411c360280020c040b20092013422088a722193602bc04200920113602b804200941d00a6a200941b8046a109801024020092802d00a2202411c460d0020094198076a200941d00a6a41047241ac0210e9081a20094180026a41047220094198076a41ac0210e9081a200920193602b0040b20092002360280020b2002411c460d01200941b8046a20094180026a41b00210e9081a20093502b0042114200941d00a6a200941b8046a109704024020092903d00a2008580d0020094198076a410d108e04200941df0a6a20094198076a41086a280200220236000020092009290398073700d70a41002105200041186a41003a000020004200370308200020092900d00a370019200041216a200941d00a6a41086a290000370000200041286a200236000020004201370300200941b8046a108c0420092802d40141ffffff3f71450d0f20092802d001102e0c0f0b20094198076a41186a200941d8006a41186a29030037030020094198076a41106a200941d8006a41106a29030037030020094198076a41086a200941d8006a41086a2903003703002009200929035837039807200941d00a6a200941386a20094198076a10910420092802d00a220720092802d80a10ff01024020092802d40a450d002007102e0b200941d8006a109804200941286a200941dc016a20092903b801200941b8016a41086a29030010fb0120094198076a200941b8046a41b00210e9081a200941c8096a41186a200941386a41186a290300370300200941c8096a41106a200941386a41106a290300370300200941c8096a41086a200941386a41086a290300370300200920092903383703c8094110102c2203450d05200341f8f7c60036020c2003410136020820034281808080103702004110102c2207450d0520074190f8c60036020c20074101360208200742818080801037020020032003280200417f6a220a3602000240200a0d002003280208200328020c2802001103000240200328020c280204450d002003280208102e0b200341046a220a200a280200417f6a220a360200200a0d002003102e0b02400240200728020820094198076a200728020c28020c1101000d004102210320094188076a41023a000020094180076a41003a000020072007280200417f6a220a36020042002108200942003703f006200942013703e8060240200a0d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a220a200a280200417f6a220a360200200a0d002007102e0b20094198076a10dc02410121070c010b200941d00a6a20094198076a41b00210e9081a2009418a0d6a200941d0096a290300370100200941920d6a200941d8096a2903003701002009419a0d6a200941e0096a290300370100200941800d6a41206a200941e6096a29010037010020094180023b01800d200920092903c8093701820d200920073602a80d200941e8066a200941d00a6a200941800d6a10dd0220092903e8064201512107200941e8066a41206a2d0000210320092903f00621080b200941800d6a41186a200141186a290000370300200941800d6a41106a200141106a290000370300200941800d6a41086a200141086a290000370300200920012900003703800d20094198076a41186a200941386a41186a29030037030020094198076a41106a200941386a41106a29030037030020094198076a41086a200941386a41086a2903003703002009200929033837039807200941d00a6a41186a200941d8006a41186a290300370300200941d00a6a41106a200941d8006a41106a290300370300200941d00a6a41086a200941d8006a41086a290300370300200920092903583703d00a200920094190076a2800003600cf0920092009290089073703c8090240024020070d00410621070c010b200920092800cf093600c70a200920092903c8093703c00a4106210720084202510d00200920092800c70a3600b70a200920092903c00a3703b00a200321070b200941c8096a41086a2203200941800d6a41086a290300370300200941c8096a41106a220a200941800d6a41106a290300370300200941c8096a41186a2202200941800d6a41186a290300370300200941900a6a41086a220120094198076a41086a290300370300200941900a6a41106a220420094198076a41106a290300370300200941900a6a41186a220c20094198076a41186a290300370300200941f0096a41186a2219200941d00a6a41186a290300370300200941f0096a41106a2216200941d00a6a41106a290300370300200941f0096a41086a221a200941d00a6a41086a290300370300200920092903800d3703c80920092009290398073703900a200920092903d00a3703f009200920092800b70a3600c70a200920092903b00a3703c00a200941dd0a6a2003290300370000200941e50a6a200a290300370000200941ed0a6a2002290300370000200941143a00d00a200920092903c8093700d50a200941023a00d40a200941f50a6a20092903900a370000200941fd0a6a2001290300370000200941850b6a20042903003700002009418d0b6a200c290300370000200941ad0b6a2019290300370000200941a50b6a20162903003700002009419d0b6a201a290300370000200941950b6a20092903f009370000200941b70b6a20094198076a41026a2d00003a0000200941b50b6a20092f0098073b0000200941c00b6a20073a0000200941bc0b6a2006360200200941b80b6a2005360200200941c80b6a20092800c70a360000200941c10b6a20092903c00a370000200941d00a6a10fe010240024020092802f0060d00420021080c010b427f200bad42d886107e20144288277e7c42c0c995d6017c2208200941e8066a41106a2903007c221420142008541b2114420121080b20002008370308200020092800d00a36001920004200370300200041186a41003a0000200041106a20143703002000411c6a200941d30a6a280000360000024020092802d40141ffffff3f71450d0020092802d001102e0b410121072011450d0d2013a7450d0d2011102e0c0d0b2009411c360280020b2011450d00024020120d002013a7450d012011102e0c010b200941d00a6a41186a200141186a290000370300200941d00a6a41106a200141106a290000370300200941d00a6a41086a200141086a290000370300200920012900003703d00a2009201337029c072009201136029807200941b8046a200941d00a6a200941d8006a20094198076a42004200109304200920092900b9043703e8062009200941b8046a41086a2800003600ef06024020092d00b80422024106460d0020004200370308200020092903e80637002120004201370300200041206a20023a0000200041186a41003a0000200041286a20092800ef063600000c020b410121024101210720040d020c040b4100210220040d0120094198076a4102108e04200941df0a6a20094198076a41086a280200220236000020092009290398073700d70a200041186a41003a000020004200370308200020092900d00a370019200041216a200941d00a6a41086a290000370000200041286a2002360000200042013703000b0240200928028002411c460d0020094180026a108c040b024020092802d40141ffffff3f71450d0020092802d001102e0b410021050c0b0b200941d00a6a41186a200141186a290000370300200941d00a6a41106a200141106a290000370300200941d00a6a41086a200141086a290000370300200920012900003703d00a20092802d8012207200c490d0302400240200720092802d401470d00200741016a22032007490d062007410174220a2003200a20034b1b22034104200341044b1b220341ffffff3f71200346210a200341057421030240024020070d0020094100360298070c010b200941a0076a4101360200200920092802d001360298072009200741057436029c070b200941b8046a2003200a20094198076a107d200941c0046a280200210320092802b8044101460d01200920092802bc043602d001200920034105763602d4010b20092802d001200c4105746a220341206a20032007200c6b41057410ea081a200341186a200941d00a6a41186a290300370000200341106a200941d00a6a41106a290300370000200341086a200941d00a6a41086a290300370000200320092903d00a3700002009200741016a3602d801200941d00a6a200941b8016a41c80010e9081a20094198076a41186a200941d8006a41186a29030037030020094198076a41106a200941d8006a41106a29030037030020094198076a41086a200941d8006a41086a2903003703002009200929035837039807200941b8046a200941386a20094198076a10910420092802b804220720092802c004200941d00a6a109404024020092802bc04450d002007102e0b0240200941ec0a6a28020041ffffff3f71450d0020092802e80a102e0b200941f50a6a2009290338370000200941dd0a6a200141086a290000370000200941e50a6a200141106a290000370000200941ed0a6a200141186a290000370000200941fd0a6a200941386a41086a290300370000200941850b6a200941386a41106a2903003700002009418d0b6a200941386a41186a290300370000200941013a00d40a200941143a00d00a200920012900003700d50a200941b80b6a2005360200200941bc0b6a2006360200200941ad0b6a200941d8006a41186a290300370000200941a50b6a200941d8006a41106a2903003700002009419d0b6a200941d8006a41086a290300370000200941950b6a2009290358370000200941d00a6a10fe014100210720020d02200bad42c0a6087e201042e8077e7c42b090bbca007c2108410021070c030b2003450d040b1036000b200bad42f093097e201042b8177e7c42d086c192017c21080b2000420137030820004200370300200041186a41003a0000200041106a2008370300200928028002411c470d0220070d030c040b200c20071045000b1038000b20094180026a108c042007450d010b20092802d40141ffffff3f71450d0020092802d001102e0b410121070b0240200d41ffffff3f71450d00200f102e0b02402007200e45720d00201e41ffffff3f71450d00200e102e0b200941b00d6a24000f0b2011450d002013a7450d002011102e0b0240200d41ffffff3f71450d00200f102e0b02400240200e450d0020054101730d00201e41ffffff3f710d010b410021020c020b200e102e410021020c010b4101210a410121020b024020072d00000d00200a450d00200741086a280200450d00200741046a280200102e0b02402002450d00200341046a28020041ffffff3f71450d002003280200102e0b200941b00d6a24000bcd0101047f230041106b2202240002400240200141086a28020022034105744116722204417f4c0d002004102c2205450d0120024100360208200220043602042002200536020020022001280200411010742001280204210420032002107602402003450d002003410574210303402002200441201074200441206a2104200341606a22030d000b0b200220012f010c3b010e20022002410e6a41021074200020022802002204200228020810b00102402002280204450d002004102e0b200241106a24000f0b1038000b1036000bd40301037f230041f0006b2203240020034195fec6004108108102200341106a41f4f3c3004109108102024002404120102c2204450d002003422037025420032004360250200341d0006a2001412010742003200328025022012003280258220410a301370340200341ec006a200120046a360200200320013602682003200341c0006a41086a3602642003200341c0006a360260200341206a200341e0006a107c02402003280254450d002001102e0b4120102c2201450d002003422037024420032001360240200341c0006a200241201074200341d0006a200328024022012003280248220210d803200341ec006a200120026a360200200320013602682003200341e0006a3602642003200341d0006a360260200341306a200341e0006a107c02402003280244450d002001102e0b20032802282202200328023822046a41206a2201417f4c0d010240024020010d00410121050c010b2001102c2205450d010b20004100360208200020013602042000200536020020002003411010742000200341106a41101074200020032802202201200210742000200328023022022004107402402003280234450d002002102e0b02402003280224450d002001102e0b200341f0006a24000f0b1036000b1038000bc00502057f077e23004190016b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041003602180c010b200328021421042003200341186a2802002202360244200320013602400240024020024104490d00200128000021052003200141046a36024020032002417c6a220636024420064104490d002003200141086a360240200128000421072003200241786a220636024420064110490d002003200241686a3602442003200141186a360240200141106a290000210820012900082109200341e8006a200341c0006a10930120032d00684101460d00200341c8006a41186a20034181016a290000370300200341d8006a200341f9006a290000370300200341d0006a200341f1006a290000370300200320032900693703482003200341c0006a10ab0102402003280200450d00200341003602680c010b200341e8006a200341c0006a200328020410920120032802682202450d00200341206a41086a200341c8006a41086a290300220a370300200341206a41106a200341c8006a41106a290300220b370300200341206a41186a200341c8006a41186a290300220c37030020032003290348220d370320200329026c210e20002008370308200020093703002000200e37021c200020023602182000200736021420002005360210200041246a200d3702002000412c6a200a370200200041346a200b3702002000413c6a200c3702000c010b20034100360250200342013703482003410a3602242003200341086a3602202003200341c8006a36028c01200341fc006a41013602002003420137026c200341909dc5003602682003200341206a3602782003418c016a419cebc000200341e8006a103d1a2003280248200328025010ef020240200328024c450d002003280248102e0b200041003602180b2004450d002001102e0b20034190016a24000bc70603037f027e017f23004180016b22062400200641106a2002109504200628021022072006280218108f02210802402006280214450d002007102e0b024002400240024002402008450d002000410e108e040c010b2006200341086a2208280200411f6a410576ad42004280a0cb9801420010e808200641106a2001200420062903007c220942809886abec057c220a2005200641086a2903007c2009200454ad7c200a200954ad7c220410c302200620062900113703702006200641106a41086a2207280000360077024020062d0010220b4106470d00200641c8006a200437030020072008280200360200200641246a200141086a2900003702002006412c6a200141106a290000370200200641346a200141186a2900003702002006200a370340200620032902003703102006200129000037021c200641d0006a4195fec6004108108102200641f0006a41ccf4c30041051081024120102c2203450d032006422037026420062003360260200641e0006a20024120107420062802682203417f4c0d04200628026021010240024020030d00410121020c010b2003102c2202450d040b20022001200310e908210202402006280264450d002001102e0b200341206a2201417f4c0d042001102c2208450d03200641003602682006200136026420062008360260200641e0006a200641d0006a41101074200641e0006a200641f0006a41101074200641e0006a20022003107402402003450d002002102e0b2006280218220141146a2203417f4c0d0420062802602102200628026821080240024020030d00410121070c010b2003102c2207450d040b200641003602582006200336025420062007360250200628021021032001200641d0006a1076200641d0006a200320011074200641d0006a2006411c6a41201074200620043703782006200a370370200641d0006a200641f0006a411010742002200820062802502201200628025810b20102402006280254450d002001102e0b02402006280264450d002002102e0b02402006280214450d002003102e0b200041063a00000c020b2000200b3a000020002006290370370001200041086a20062800773600000b200341046a280200450d002003280200102e0b20064180016a24000f0b1036000b1038000be50103017f017e017f230041206b220324002003410036020820034201370300200320022802103602102003200341106a410410742003200241146a2802003602102003200341106a41041074200229030021042003200241086a290300370318200320043703102003200341106a411010742003200241246a4120107420022802182105200241206a28020022022003107602402002450d002002410574210203402003200541201074200541206a2105200241606a22020d000b0b2000200120032802002205200328020810b20102402003280204450d002005102e0b200341206a24000bf50101047f230041306b2202240020024195fec6004108108102200241106a41ccf4c3004105108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bee0502087f057e23004190016b220324002003200236020c20032001360208200341106a2001200210ed0202400240024002400240200328021022010d00200041003602000c010b200328021421022003200341186a280200360244200320013602402003200341c0006a10ab0102400240024020032802000d002003280244220420032802042205490d002005417f4c0d040240024020050d00410121060c010b200510322206450d06200328024421040b024020042005490d0020062003280240200510e9082107200328024422042005490d072003200420056b3602442003200328024020056a360240200341e8006a200341c0006a109301024020032d00684101470d0020050d010c020b200341c8006a41186a220420034181016a290000370300200341c8006a41106a2208200341f9006a290000370300200341c8006a41086a2209200341f1006a290000370300200320032900693703482003280244220a410f4b0d022005450d010b2006102e0b20034100360250200342013703482003410a3602242003200341086a3602202003200341c8006a36028c01200341fc006a41013602002003420137026c200341909dc5003602682003200341206a3602782003418c016a419cebc000200341e8006a103d1a2003280248200328025010ef020240200328024c450d002003280248102e0b200041003602000c010b200341206a41086a2009290300220b370300200341206a41106a2008290300220c370300200341206a41186a2206200429030037030020032003290348220d3703202003200a41706a36024420032003280240220441106a360240200441086a290000210e2004290000210f200041086a20053602002000200536020420002007360200200041386a200e370300200041306a200f3703002000410c6a200d370200200041146a200b3702002000411c6a200c370200200041246a20062903003702000b2002450d002001102e0b20034190016a24000f0b1038000b1036000b2005200441b8b2c0001056000bd34804017f027e107f037e230041d0016b2202240002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802000e1c0102030405060708090a0b0c0d0e0f101112131415161718191a1b00010b20014184026a350200210320014180026a3502002104200141f4016a2802002105200141e8016a2802002106200141dc016a2802002107200141d0016a2802002108200141c4016a2802002109200141b8016a280200210a200141ac016a280200210b200141a0016a280200210c20014194016a280200210d20014188016a280200210e200141fc006a280200210f200141f0006a2802002110200141e4006a2802002111200141d8006a2802002112200141cc006a2802002113200141c0006a2802002114200241086a200141386a109706200342889b047e200442f0aefa017e7c417f2005417f2006417f2007417f2008417f2009417f200a417f200b417f200c417f200d417f200e417f200f417f2010417f2011417f2012417f201420136a220120012014491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491b22016a221420142001491bad42e8aede067e7c200235021042a0ede0017e7c4280e59af7007c21030240200228020c41808080807872418080808078460d002002280208102e0b200041003b0108200020033703000c1b0b02400240024002400240024002400240024002400240200141086a2802000e0b000102030405060708090a000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194cccc003602c0012002200241c0016a360218200241086a41ecc5cc001044000b2001410c6a3502002103200241086a10a90320022903102104200041003b0108200020032004428094ebdc03807e20032004428094ebdc03827e2203428094ebdc038042ffffffff0f2003428080808080c0b2cd3b541b2003428094ebdc03824280cab5ee0156ad7c42ffffffff0f837c3703000c230b200041003b0108200042b0f7d0003703000c220b200041013b0108200042a8afc8303703000c210b200241086a10a90320022903102103200041013b0108200020033703000c200b200241086a10a90320022903102103200041013b0108200020033703000c1f0b200041013b0108200042e8f084f0003703000c1e0b200041013b01082000200141146a3502004290a7fa2f7e3703000c1d0b200041013b01082000200141146a3502004280f4f02f7e3703000c1c0b200041013b01082000417f200141186a280200220141016a221420142001491bad42f8f88b307e3703000c1b0b200041003b01082000200141146a35020042e8077e3703000c1a0b024002400240024002400240024020012d00040e0700010203040506000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41ecb0c4001044000b200041003b0108200042d8c4c7c8003703000c1e0b200041003b010820004290cf93bc013703000c1d0b200041003b0108200042f8a8ee87013703000c1c0b200041003b010820004288b68eca013703000c1b0b200041003b0108200042d8c4c7c8003703000c1a0b200041003b0108200042f8a8ee87013703000c190b0240024002400240200141086a2802000e0400010203000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194cccc003602c0012002200241c0016a360218200241086a4190afc4001044000b200041003b010820002001411c6a280200220141e400200141e4004b1bad4298d70a7e4280a9f3bbb0027c3703000c1a0b200041003b010820002001411c6a280200220141e400200141e4004b1bad4298d70a7e4280a9f3bbb0027c3703000c190b200041003b010820004280c2d72f3703000c180b200041023b0108200042a0bebbd8003703000c170b02400240024002400240024020012d00040e06000102030405000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41e89bc4001044000b200041003b0108200042a887a2cf003703000c1a0b200041003b0108200042c8f8978f013703000c190b200041003b0108200042e8e398cf003703000c180b200041003b010820004280c6928b013703000c170b200041003b0108200042b8a8b4ce003703000c160b02400240024002400240200141086a2802000e050001020304000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194cccc003602c0012002200241c0016a360218200241086a4194a7c7001044000b200041003b0108200042e8dae8df003703000c180b200041003b0108200042f085f7cc003703000c170b200041003b0108200042988ef29a013703000c160b200041003b0108200042d0e0dad6003703000c150b200041023b0108200042003703000c140b024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200141086a2d00000e18000102030405060708090a0b0c0d0e0f1011121314151617000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41f4ebc6001044000b200041003b0108200042f0a8939e023703000c290b200041003b0108200042c8c6ce9e013703000c280b200041003b0108200042b8f4cad7013703000c270b200041003b010820002001410c6a350200220342f8ef9e017e20034280c2d72f7e7c4290fb86ed037c3703000c260b200041003b010820004280e5a9f2003703000c250b200041003b01082000200141146a350200220342f094d6027e200342c0f0f50b7e7c4280d0d98e017c3703000c240b200041003b010820004298e7fcf1003703000c230b200041003b0108200042f0dba8c1003703000c220b200041003b010820004280f7b6bf013703000c210b200041003b0108200042c8b6d0303703000c200b200041003b0108200042c8b6d0303703000c1f0b200041003b0108200042c8b6d0303703000c1e0b200041003b0108200042808fe5303703000c1d0b200041003b0108200042d0a1e4303703000c1c0b200041003b01082000200141146a35020042b891027e428086e8307c3703000c1b0b200041003b010820002001412c6a350200220342c0db9d017e20034280c2d72f7e7c42c0abb4c9037c3703000c1a0b200041003b0108200042a0bde0303703000c190b200041003b01082000200141186a35020042a8edc0107e42d8c8e8c0167c3703000c180b200041003b0108200042c88dfff4d5033703000c170b200041003b0108200042f8b3dac4013703000c160b200041003b01082000200141106a35020022034298bfe50e7e20034280cee4cd027e7c4280e9c9d6017c3703000c150b200041003b010820002001412c6a350200220342b08a9e017e20034280c2d72f7e7c428091a2cb037c3703000c140b200041003b01082000200141146a350200220342b0b2cf087e200342c0f0f50b7e7c20034280c2d72f7e7c42b0fbf2107c3703000c130b108405000b200041003b0108200042b08ee2d00342b0a1bafa0220012802041b3703000c110b0240024002400240200141086a2802000e0400010203000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41c499c9001044000b200041003b010820002001411c6a280200220141e400200141e4004b1bad4298d70a7e42c0c6cbccb0027c3703000c120b200041003b010820002001411c6a280200220141e400200141e4004b1bad4298d70a7e42c0c6cbccb0027c3703000c110b200041003b0108200042c0cf8e313703000c100b200041003b01082000200141286a35020042d0e50d7e2001411c6a35020042e092197e7c42c0b7828b017c3703000c0f0b109f04000b02400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200141086a2d00000e1a000102030405060708090a0b0c0d0e0f10111213141516171819000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41c0accb001044000b200041003b0108200042a8cad6cf013703000c250b200041003b01082000200141106a35020042a0f80c7e42f89f9fcf007c3703000c240b200041003b010820004288dbaed7013703000c230b200041013b0108200042d0ed9c85013703000c220b200041003b010820004280ac9cd3003703000c210b200041003b010820004288dc82313703000c200b200041003b010820004280b582313703000c1f0b200041003b0108200042b0d0b5b4013703000c1e0b200041003b0108200042d89afd8e013703000c1d0b200041003b01082000429080ef373703000c1c0b200041013b0108200042f899c995013703000c1b0b200041003b01082000429887abd1333703000c1a0b200041003b010820004290fbc2c9323703000c190b200041003b0108200042d09be6303703000c180b200041003b01082000200141146a35020042a01f7e42f0ae87d1007c3703000c170b200041013b01082000200141146a35020042a01f7e42f0ae87d1007c3703000c160b200041003b01082000200141146a35020042b8177e4298d7a9c9007c3703000c150b200041013b01082000200141146a35020042b8177e4298d7a9c9007c3703000c140b200041003b010820002001412c6a35020042b8177e42c0cae5da007c3703000c130b200041003b0108200042b880d9d1013703000c120b200041003b01082000428881b08d013703000c110b200041003b010820004298c3b48d013703000c100b200241086a10a90320022903102103200041003b0108200020033703000c0f0b200041013b0108200042c88892a5033703000c0e0b200041003b010820004290848df0013703000c0d0b0240024002400240024002400240200141086a2d00000e0700010203040506000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41b8afc9001044000b200041013b01082000200141346a35020042b882077e200141386a35020042c0b5e5097e7c42a0c0b291397c3703000c110b200141106a3502002103200241086a2001410c6a28020010970420022903082104200041013b01082000427f2004200342a01f7e42d8878f1c7c22037c220420042003541b3703000c100b200141146a2802002114024002402001410c6a28020041014b0d00200241086a200141106a280200109704427f2014ad42a01f7e42f8f3e32f7c220320022903087c220420042003541b21030c010b2014ad4288277e4280d997a0027c21030b200041013b0108200020033703000c0f0b200041013b0108200042a0949fe6003703000c0e0b200041013b01082000427f200141306a35020042b8177e42e090bd8a027c2203200141386a2903007c220420042003541b3703000c0d0b200041003b010820004290d591bc013703000c0c0b0240024002400240024002400240200141086a2d00000e0700010203040506000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41b8afc9001044000b200041013b01082000200141346a35020042b882077e200141386a35020042c0b5e5097e7c42a0c0b291397c3703000c100b200141106a3502002103200241086a2001410c6a28020010970420022903082104200041013b01082000427f2004200342a01f7e42d8878f1c7c22037c220420042003541b3703000c0f0b200141146a2802002114024002402001410c6a28020041014b0d00200241086a200141106a280200109704427f2014ad42a01f7e42f8f3e32f7c220320022903087c220420042003541b21030c010b2014ad4288277e4280d997a0027c21030b200041013b0108200020033703000c0e0b200041013b0108200042a0949fe6003703000c0d0b200041013b01082000427f200141306a35020042b8177e42e090bd8a027c2203200141386a2903007c220420042003541b3703000c0c0b200041003b010820004290d591bc013703000c0b0b0240024002400240024002400240200141086a2d00000e0700010203040506000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a4188f3c0001044000b200041003b01082000200141146a35020022034288f1117e42d0ef9dbc017c2204200342c8ac137e42c0da8abc017c221520042015561b2204200342c082147e4290faffaf017c220320042003561b3703000c0f0b200041003b0108200042f8a1f095013703000c0e0b200041003b010820002001410c6a35020042e08f1a7e42f0e2efee007c3703000c0d0b4288e3e7d40021030240024002402001410c6a2802000e03010200010b200141106a35020042e0b30e7e42c089ecd1007c21030c010b42f0f7f0920221030b200041003b0108200020033703000c0c0b42e0fca3da022103024020012d00090d00200241086a10a903200229031021030b200041003b0108200020033703000c0b0b200041003b010820002001410c6a350200220342a0838b377e200342c0d1e1237e7c20034280c6868f017e7c4280c2d72f7c3703000c0a0b0240024002400240024002400240024020012d00040e080001020304050607000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41a4c3cb001044000b200041003b010820004280e1eb173703000c0f0b200041003b010820004280e1eb173703000c0e0b200041003b010820004280e1eb173703000c0d0b200041003b010820004280e1eb173703000c0c0b200041003b010820004280e1eb173703000c0b0b200041003b010820004280e1eb173703000c0a0b200041003b010820004280e1eb173703000c090b0240024002400240200141086a2802000e0400010203000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a4184ccc2001044000b200041003b0108200042c88b98ff003703000c0a0b200041013b0108200042f8b59f92013703000c090b200041013b0108200042c0b4c6cb003703000c080b024002400240024002400240200141086a2d00000e06000102030405000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41e0f3c0001044000b200041003b0108200042e8b0efff043703000c0b0b200041003b0108200042b8e5dbd3013703000c0a0b200041003b0108200042b895a182053703000c090b20004180023b0108200042a8a0c4a7043703000c080b200041003b0108200042e0ecad90033703000c070b02400240024002400240200141086a2802000e050001020304000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194cccc003602c0012002200241c0016a360218200241086a41aca7c7001044000b200041003b0108200042f0ee8291013703000c090b200041003b0108200042a8aac0cc013703000c080b200041003b010820004288b0b6e7013703000c070b200041003b010820004280c2eca2023703000c060b024002400240024002400240024020012f01040e0400010203000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194cccc003602c0012002200241c0016a360218200241086a41fcc5cc001044000b200141106a280200220741ffffffff00712007470d0b41082106200141086a2802002114024020074104742201450d002001102c2206450d030b02400240024002402001410476220820074f0d00200141037622052007200520074b1b22054104200541044b1b220541ffffffff00712005464103742108200541047421050240024020010d00200241003602080c010b200241086a41086a41083602002002200136020c200220063602080b200241c0016a20052008200241086a107d200241c8016a280200210120022802c0014101460d0120022802c4012106200141047621080b20142014200741b0026c6a470d0142002103200621050c020b20010d040c0d0b200741b0026c2105200741047441706a4104762109200621010340200241086a2014109704200141086a200241086a41086a29030037030020012002290308370300200141106a2101201441b0026a2114200541d07d6a22050d000b2006200941016a41047422146a2105420021034100210141000d000340427f2003200620016a2903007c220420042003541b21032014200141106a2201470d000b0b427f2007ad4288b0fa007e20037c42c8b8fa067c220420042003541b21032005200622146b210141012107024003402001450d01200141706a2101201441086a2105201441106a211420052d00004101460d000b410021070b02402008450d002006102e0b200041003a0009200020073a0008200020033703000c0a0b200241086a200141086a2802001097042002290308210320022d00102101200041003a0009200020013a00082000427f200342d0ceae3d7c220420042003541b3703000c090b200141106a280200220741ffffffff00712007470d0941082106200141086a2802002114024020074104742201450d002001102c2206450d010b024002402001410476220820074f0d00200141037622052007200520074b1b22054104200541044b1b220541ffffffff00712005464103742108200541047421050240024020010d00200241003602080c010b200241086a41086a41083602002002200136020c200220063602080b200241c0016a20052008200241086a107d200241c8016a280200210120022802c0014101460d0120022802c4012106200141047621080b20142014200741b0026c6a470d0242002103200621050c030b2001450d090b1036000b200741b0026c2105200741047441706a4104762109200621010340200241086a2014109704200141086a200241086a41086a29030037030020012002290308370300200141106a2101201441b0026a2114200541d07d6a22050d000b2006200941016a41047422146a2105420021034100210141000d000340427f2003200620016a2903007c220420042003541b21032014200141106a2201470d000b0b427f2007ad42e88dfb007e20037c42e0b8a1077c220420042003541b21032005200622146b210141012107024003402001450d01200141706a2101201441086a2105201441106a211420052d00004101460d000b410021070b02402008450d002006102e0b200041003a0009200020073a0008200020033703000c050b0240024002400240024002400240024002400240024002400240024002400240200141086a2d00000e10000102030405060708090a0b0c0d0e0f000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41f89bc4001044000b200041003b010820004288b69ac9003703000c120b200041003b0108200042a0ac9c8e013703000c110b200041003b01082000200141146a350200220342b8fea8037e200342c0f0f50b7e7c20034280c2d72f7e7c4290cae8c7277c3703000c100b200041003b0108200042f0d98bc5273703000c0f0b200041003b010820004288bb99aa013703000c0e0b200041003b010820004288abfb99013703000c0d0b200041003b0108200042e0ecafc2003703000c0c0b200041003b010820004288f0efc2003703000c0b0b200041003b0108200042d092b3c2003703000c0a0b200041003b0108200042c8fee29f013703000c090b200041003b0108200042e891b0e6273703000c080b200041003b0108200042e099e6a8013703000c070b200041003b0108200042889e8ad1003703000c060b200041003b010820004288ee8ea8013703000c050b200041003b0108200042e8dcfb90013703000c040b0240024002400240024002400240024002400240024020012d00040e0b000102030405060708090a000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194cccc003602c0012002200241c0016a360218200241086a4198f3c0001044000b200241086a200141286a2802001097042002290308210320022d00102101200041003a0009200020013a00082000427f200342f0f6e0d5007c220420042003541b3703000c0c0b200041003b0108200042f097e5d0003703000c0b0b200041003b0108200042a0fe91d1003703000c0a0b200041003b010820004298b0a4cf003703000c090b200041003b0108200042e0cedfdf003703000c080b200041003b0108200042b0b19ed0003703000c070b200041003b0108200042c0ff90a8013703000c060b200041003b0108200042a0a68f93013703000c050b200041003b0108200042c8e69193013703000c040b200241086a200141c8006a2802001097042002290308210320022d00102101200041003a0009200020013a00082000427f200342b0c1a4e5017c220420042003541b3703000c030b02400240024002400240200141086a2d00000e050001020304000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41889cc4001044000b200241086a200141186a2802002201109704200241003602c801200242013703c0012001200241c0016a10900220023502c8012103024020022802c401450d0020022802c001102e0b2002290308210420022d00102101200041003a0009200020013a00082000427f427f2004200342e8077e42b0b182067c22037c220420042003541b220342c0b2cd3b7c220420042003541b3703000c050b200041003b01082000427f200141146a350200220342a08a077e2001412c6a350200220442e8077e22157c42e0ff9fe1007c2216200342d8a1077e200442b8177e7c428093e49f017c221720162017561b2216200342c0a6087e20157c42b090bbca007c221520162015561b2215200342d886107e20044288277e7c42c0c995d6017c220320152003561b2203200141306a2903007c220420042003541b3703000c040b200041003b01082000427f200141346a350200220342a08a077e42f8c287e1007c2204200342f096087e42b8f9a5ca007c221520042015561b220420034298c5107e4288b6fef8017c220320042003561b2203200141c8006a2903007c220420042003541b3703000c030b200041003b01082000200141346a35020042f8c0077e42b8dfe7a6017c3703000c020b0240024002400240024002400240024002400240200141086a2802000e0a00010203040506070809000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41e0ecc0001044000b200041003b01082000200141146a35020042e8077e42a0a080ec017c3703000c090b200041003b0108200042c0bcd7fc003703000c080b200041003b0108200042c8e4e73f3703000c070b200041003b0108200042b08ddb93013703000c060b200041003b010820004298c6bf89013703000c050b200041003b0108200042d8cac8c7003703000c040b200041003b0108200042b897cedd023703000c030b200041003b01082000428887a88c023703000c020b200041003b0108200042c89596c7003703000c010b0240024002400240024002400240200141086a2d00000e0700010203040506000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602c40120024194c3cb003602c0012002200241c0016a360218200241086a41d4cec8001044000b200041003b01082000200141346a35020042d00f7e42a096ca8f017c3703000c050b200041003b0108200042a0cfe181013703000c040b200041003b01082000200141346a35020042d00f7e42a0899387017c3703000c030b200041003b0108200042c0c1f7d5003703000c020b200041003b010820004288fbb8de013703000c010b200041003b010820004280e4c4f7003703000b200241d0016a24000f0b1038000baa0303067f027e017f230041b0016b22012400200141386a2000109504200141c8006a2001280238220220012802402203109604024020012802482200450d002002200310ff010b20014188016a41086a2203200141c8006a41106a29030037030020014188016a41106a2204200141c8006a41186a29030037030020014188016a41186a2205200141c8006a41206a29030037030020014188016a41206a2206200141f0006a2802003602002001200141c8006a41086a290300370388010240024020000d00200128023c450d012002102e0c010b20014180016a2903002107200141f8006a2903002108200128024c2109200141106a41206a2006280200360200200141106a41186a2005290300370300200141106a41106a2004290300370300200141106a41086a200329030037030020012001290388013703100240200128023c450d002002102e0b200141e0006a2001412c6a290200370300200141d8006a200141246a290200370300200141d0006a2001411c6a290200370300200120012902143703482001200141c8006a2008200710fb012009450d002000102e0b200141b0016a24000bc64b0a017f017e047f017e017f037e087f017e147f027e230041d0076b22042400200441c0006a20024180026a290000370300200441386a200241f8016a290000370300200441286a41086a200241f0016a290000370300200420022900e80137032820022903002105200441e8016a200241880210e9081a200420044180056a3602f403200420044180056a3602f003200441d0056a200441e8016a41086a2206109a04200441f8036a200441e0026a2207109a0402400240024002400240200441d0056a200441f8036a412010ec08450d00200441fc016a2802002208450d00200441f4016a2802002102200841246c21080340024020022d00004101470d00200241016a28000041c28289aa04470d002004200241106a2802003602d4052004200241086a2802003602d005200441f8036a200441d0056a10930220042903f8034203510d00200441ec026a2802002208450d022004280288042109200429038004210a200441e4026a2802002102200841246c2108024002400240024002400340024020022d00004101470d00200241016a28000041c28289aa04470d002004200241106a2802003602d4052004200241086a2802003602d005200441f8036a200441d0056a10930220042903f8034203510d0020042903e801200a520d09200a200429038004520d092009200428028804470d09200441f8036a200641f00010e9081a2004200441d0036a22023602e804200441f8036a2002109b04450d0a200441f8036a200741f00010e9081a200420023602e804200441f8036a2002109b04450d0b2003280210210b20032802002107200441e8016a41186a22024200370300200441e8016a41106a22084200370300200441e8016a41086a22064200370300200442003703e801200441f8036a41a8f8c60041041081022006200441f8036a41086a2209290000370300200420042900f8033703e801200441f8036a41e38bc500410b10810220022009290000370300200820042900f803370300200441186a200441e8016a10850302402007420020052004290320420020042802181b7d220a200a2005561b220a42e01280a7417f200a428080808080ac02541b460d00200441e8016a4102109c0420004201370300200041286a200441e8016a41206a290300370300200041206a2002290300370300200041186a2008290300370300200041106a2006290300370300200020042903e8013703080c0d0b2004418c056a200441286a41086a29030037020020044194056a200441286a41106a2903003702002004419c056a200441286a41186a290300370200200441e2c289ab0636028005200420042903283702840520044198016a41106a200341106a28020036020020044198016a41086a200341086a2902003703002004200329020037039801200441d0056a20044180056a20044198016a109d04200428029006450d02200441e8016a41066a200441d0056a41d00010e9081a200441f8036a200441e8016a41d60010e9081a200441c8006a200441f8036a41066a41d00010e9081a20044198016a200441c8006a41d00010e9081a4101210841002103024020012d00004101470d00200441e8016a41186a2202200141196a290000370300200441e8016a41106a2203200141116a290000370300200441e8016a41086a2206200141096a290000370300200420012900013703e8014120102c2208450d06200820042903e801370000200841186a2002290300370000200841106a2003290300370000200841086a2006290300370000410121030b200420053703f803200441f8036a41086a20044198016a41d00010e90821022004200b3602d404200420073602d00441d000102c2206450d05200441e8016a41086a2207200241086a290300370300200441e8016a41106a2201200241106a290300370300200441e8016a41186a2209200241186a290300370300200420022903003703e801200441f8036a41286a290300210a200441a8046a290300210c200441f8036a41386a290300210d200441b8046a290300210e200441d0056a200441f8036a41c8006a10c501200641386a200e3703002006200d370330200641286a200c3703002006200a370320200641186a2009290300370300200641106a2001290300370300200641086a2007290300370300200620042903e801370300200620042903d005370340200641c8006a200441d0056a41086a280200360200200420033602f804200420033602f404200420083602f0044108102c2202450d05200442083702e406200420023602e006200420053703e8014108210f200441e0066a200441e8016a41081074200441e8016a419997c500108a03200441d0056a20042802e801220820042802f001108b0320042902d405420020042802d00522021b210a2002410120021b2109024020042802ec01450d002008102e0b2004200a4220883e02c407200420093602c007200441106a200441c0076a10ab01410021104100211120042802100d042004280214221220042802c40741286e2202200220124b1bad42287e220c422088a70d06200ca72202417f4c0d060240024020020d00410821130c010b2002102c2213450d060b200241286e2114024020120d00410021120c040b41002115034002400240024020042802c40722084108490d00201541016a211620042802c0072207290000210c2004200841786a22013602c4072004200741086a3602c00741002102200441003a008802200841776a21080240034020012002460d01200441e8016a20026a200720026a220341086a2d00003a00002004200341096a3602c0072004200241016a22033a008802200420083602c4072008417f6a21082003210220034120470d000b200441d0056a41186a2202200441e8016a41186a290300370300200441d0056a41106a2208200441e8016a41106a290300370300200441d0056a41086a2207200441e8016a41086a290300370300200420042903e8013703d005200341ff01714120490d01200441c0066a41086a2007290300220d370300200441c0066a41106a2008290300220e370300200441c0066a41186a20022903002217370300200441a0066a41186a22082017370300200441a0066a41106a2203200e370300200441a0066a41086a2207200d370300200420042903d005220d370380072004200d3703c0062004200d3703a00620152014470d03201441016a220220144f0d020c0b0b200241ff0171450d00200441003a0088020b410021104108210f02402014450d00201441286c450d002013102e0b410021110c070b201441017422012002200120024b1b22024104200241044b1bad42287e220d422088a7454103742102200da721010240024020140d00200441003602e8010c010b200441083602f001200420133602e8012004201441286c3602ec010b200441d0056a20012002200441e8016a107d20042802d8052102024020042802d0054101470d002002450d090c080b20042802d4052113200241286e21140b2013201541286c6a2202200c370300200220042903a006370308200241106a2007290300370300200241186a2003290300370300200241206a20082903003703002016211520162012460d040c000b0b200241246a21022008415c6a22080d000c080b0b200441e8016a4102109c0420004201370300200041286a200441e8016a41206a290300370300200041206a200441e8016a41186a290300370300200041186a200441e8016a41106a290300370300200041106a200441f0016a290300370300200020042903e8013703080c0a0b2012410020131b21112014410020131b21102013410820131b210f0b200441e8016a419997c500200441e0066a108c03200441d0056a20042802e801220820042802f001108d0320042902d405420020042802d00522021b210c024020042802ec01450d002008102e0b200c422088210d20042802e806211820042802e406211920042802e006211a0240200aa7450d002009102e0b2002410120021b211b200da7211c200ca7211d200441e8016a41086a2202200641086a290300370300200441e8016a41106a2208200641106a290300370300200441e8016a41186a2203200641186a290300370300200441e8016a41206a2207200641206a290300370300200441e8016a41286a2201200641286a290300370300200441e8016a41306a2209200641306a290300370300200441e8016a41386a2214200641386a290300370300200441d0056a41086a2212200641cc006a280200360200200420062903003703e801200420062902443703d00502400240200628024022130d00410021070c010b20044180076a41386a2215201429030037030020044180076a41306a2214200929030037030020044180076a41286a2209200129030037030020044180076a41206a2201200729030037030020044180076a41186a2207200329030037030020044180076a41106a2203200829030037030020044180076a41086a22082002290300370300200441c0076a41086a22022012280200360200200420042903e80137038007200420042903d0053703c00720044180056a41386a201529030037030020044180056a41306a201429030037030020044180056a41286a200929030037030020044180056a41206a200129030037030020044180056a41186a200729030037030020044180056a41106a200329030037030020044180056a41086a2008290300370300200420042903800737038005200420133602c005200441c4056a220820042903c007370200200841086a20022802003602004108102c2202450d01200442083702ec01200420023602e801200420053703d005200441e8016a200441d0056a41081074200441f4016a220241086a41002900a19745370000200241002900999745370000200420044180056a36028402200441c0066a200441e8016a10ae01024020042802ec01450d0020042802e801102e0b200441e8016a200441c0066a108e0320042802e801220820042802f001108f022102024020042802ec01450d002008102e0b02400240024020020d00200441d0056a20044180056a41d00010e9081a200441a0066a200441f0046a10c801200441e8016a200441d0056a41d00010e9081a200441e8016a41d0006a220241086a200441a0066a41086a280200360200200220042903a006370200200441d0056a200441c0066a108e0320042802d005220220042802d805200441e8016a108f03024020042802d405450d002002102e0b024020042802ac022202450d00200241306c450d0020042802a802102e0b024020042802bc0241ffffff3f71450d0020042802b802102e0b200441d0056a41186a2201200441c0066a41186a290300370300200441d0056a41106a2209200441c0066a41106a290300370300200441d0056a41086a2214200441c0066a41086a290300370300200420042903c0063703d00541002102024020110e020302000b4100210220112108034020022008410176220320026a2207200f200741286c6a2903002005561b2102200820036b220841014b0d000c020b0b4100210720042802c4052202450d02200241306c450d0220042802c005102e0c020b200f200241286c6a290300220a2005510d002002200a2005546a21020b200441e8016a41186a2001290300370300200441e8016a41106a2009290300370300200441e8016a41086a2014290300370300200420042903d0053703e8010240024020112002490d00024020112010470d00201041016a22082010490d05201041017422032008200320084b1b22084104200841044b1bad42287e220a422088a7454103742108200aa721030240024020100d00200441003602a0060c010b200441083602a8062004200f3602a0062004201041286c3602a4060b200441e0066a20032008200441a0066a107d20042802e806210820042802e0064101460d0220042802e406210f200841286e21100b200f200241286c6a220841286a2008201120026b41286c10ea081a20082005370300200841206a200441e8016a41186a2203290300370300200841186a200441e8016a41106a2201290300370300200841106a200441e8016a41086a2209290300370300200820042903e8013703082003200441d0056a41186a2903003703002001200441d0056a41106a2903003703002009200441d0056a41086a290300370300200420042903d0053703e8010240201c201d470d00201d41016a2202201d490d05201d41017422082002200820024b1b22024104200241044b1b220241ffffff3f7120024621082002410574210202400240201d0d00200441003602a0060c010b200441013602a8062004201b3602a0062004201d4105743602a4060b200441e0066a20022008200441a0066a107d20042802e8062102024020042802e0064101470d002002450d060c050b20042802e406211b2002410576211d0b41012107201141016a2111201b201c4105746a220220042903e801370000200241186a2003290300370000200241106a2001290300370000200241086a2009290300370000201c41016a211c0c020b200220111045000b2008450d020c010b200641d0006a220220026b220841d0006d210302402008450d00200341d0006c2108200241c4006a21020340024020022802002203450d00200341306c450d002002417c6a280200102e0b200241d0006a2102200841b07f6a22080d000b0b2006102e0240024002402007450d00024002400240201c450d00201c4105742106200441ac026a2102201b21080340200441c0076a2008108e03200441e8016a20042802c007220720042802c807109003200441d0056a41086a2201200441e8016a41086a290300370300200441d0056a41106a2209200441e8016a41106a290300370300200441d0056a41186a2214200441e8016a41186a290300370300200441d0056a41206a2212200441e8016a41206a290300370300200441d0056a41286a2213200441e8016a41286a290300370300200441d0056a41306a2215200441e8016a41306a290300370300200441d0056a41386a2216200441e8016a41386a290300370300200441c0066a41086a221e200241086a290200370300200441c0066a41106a221f200241106a290200370300200441c0066a41186a2220200241186a280200360200200420042903e8013703d005200420022902003703c006024020042802a8022203450d0020044180056a41386a201629030037030020044180056a41306a201529030037030020044180056a41286a201329030037030020044180056a41206a201229030037030020044180056a41186a201429030037030020044180056a41106a200929030037030020044180056a41086a2001290300370300200441a0066a41086a201e290300370300200441a0066a41106a201f290300370300200441a0066a41186a2020280200360200200420042903d00537038005200420042903c0063703a0060b024020042802c407450d002007102e0b20030d02200841206a2108200641606a22060d000b0b4200210a410821070c010b20044180076a41386a220220044180056a41386a29030037030020044180076a41306a220120044180056a41306a29030037030020044180076a41286a220920044180056a41286a29030037030020044180076a41206a221420044180056a41206a29030037030020044180076a41186a221220044180056a41186a29030037030020044180076a41106a221320044180056a41106a29030037030020044180076a41086a221520044180056a41086a290300370300200441e0066a41086a2216200441a0066a41086a290300370300200441e0066a41106a221e200441a0066a41106a290300370300200441e0066a41186a221f200441a0066a41186a280200360200200420042903800537038007200420042903a0063703e00641e000102c2207450d04200720042903800737030020072003360240200720042903e006370244200741386a2002290300370300200741306a2001290300370300200741286a2009290300370300200741206a2014290300370300200741186a2012290300370300200741106a2013290300370300200741086a2015290300370300200741cc006a2016290300370200200741d4006a201e290300370200200741dc006a201f280200360200024020064120470d00428180808010210a0c010b200841206a2112201b201c4105746a222141606a2122200441e8016a41c4006a2102428180808010210a0340201221080340200441c0076a2008108e03200441e8016a20042802c007221420042802c807109003200441d0056a41086a2206200441e8016a41086a2223290300370300200441d0056a41106a2201200441e8016a41106a2224290300370300200441d0056a41186a2209200441e8016a41186a2225290300370300200441d0056a41206a2212200441e8016a41206a2226290300370300200441d0056a41286a2213200441e8016a41286a2227290300370300200441d0056a41306a2215200441e8016a41306a2228290300370300200441d0056a41386a2216200441e8016a41386a2229290300370300200441c0066a41086a221e200241086a290200370300200441c0066a41106a221f200241106a290200370300200441c0066a41186a2220200241186a280200360200200420042903e8013703d005200420022902003703c006024020042802a8022203450d0020044180056a41386a201629030037030020044180056a41306a201529030037030020044180056a41286a201329030037030020044180056a41206a201229030037030020044180056a41186a200929030037030020044180056a41106a200129030037030020044180056a41086a2006290300370300200441a0066a41086a201e290300370300200441a0066a41106a201f290300370300200441a0066a41186a2020280200360200200420042903d00537038005200420042903c0063703a0060b024020042802c407450d002014102e0b024020030d002021200841206a2208470d010c030b0b20044180076a41386a221420044180056a41386a29030037030020044180076a41306a221220044180056a41306a29030037030020044180076a41286a221320044180056a41286a29030037030020044180076a41206a221520044180056a41206a29030037030020044180076a41186a221620044180056a41186a29030037030020044180076a41106a221e20044180056a41106a29030037030020044180076a41086a221f20044180056a41086a290300370300200441e0066a41086a2220200441a0066a41086a290300370300200441e0066a41106a222a200441a0066a41106a290300370300200441e0066a41186a222b200441a0066a41186a280200360200200420042903800537038007200420042903a0063703e0062023201f2903003703002024201e290300370300202520162903003703002026201529030037030020272013290300370300202820122903003703002029201429030037030020042004290380073703e801200620202903003703002001202a2903003703002009202b280200360200200420042903e0063703d00502400240200a422088a72214200aa7460d00200a210c0c010b201441016a22122014490d0720144101742213201220122013491b22124104201241044b1bad42e0007e220c422088a7454103742112200ca721130240024020140d0020044100360280050c010b200441083602880520042007360280052004201441e0006c360284050b200441c0066a2013201220044180056a107d20042802c806211220042802c0064101460d0420042802c4062107201241e0006ead210c0b200841206a21122007201441e0006c6a221420042903e801370300201441106a2024290300370300201441086a20232903003703002028290300210d2029290300210e202729030021172026290300212c2025290300212d201441c0006a2003360200201441186a202d370300201441206a202c370300201441286a2017370300201441386a200e370300201441306a200d370300201441c4006a20042903d005370200201441cc006a2006290300370200201441d4006a2001290300370200201441dc006a2009280200360200200c42ffffffff0f83200a4280808080107c4280808080708384210a20222008470d000b0b20044188026a201136020020044184026a2010360200200441fc016a201c360200200441f8016a201d3602002004200f360280022004201b3602f401200420183602f001200420193602ec012004201a3602e801201141286c4104722202417f4c0d042002102c2208450d03200441003602880520042002360284052004200836028005201120044180056a107602402011450d00200f201141286c6a2103200f21020340200420022903003703d00520044180056a200441d0056a410810744120102c2208450d05200442203702d405200420083602d005200441d0056a200241086a22024120107420044180056a20042802d005220820042802d8051074024020042802d405450d002008102e0b200241206a22022003470d000b0b200441d0056a419997c500108a0320042802d005220220042802d80520044180056a10c502024020042802d405450d002002102e0b0240200428028405450d00200428028005102e0b200441d0056a419997c500200441e8016a108c0320042802d005220220042802d805200441f4016a109103024020042802d405450d002002102e0b02402019450d00201a102e0b0240201d41ffffff3f71450d00201b102e0b2010450d02201041286c450d02200f102e0c020b02402019450d00201a102e0b0240201d41ffffff3f71450d00201b102e0b4100210702402010450d00201041286c450d00200f102e0b0c010b2012450d020c010b024020042802f40441ffffff3f71450d0020042802f004102e0b024020070d000240200441c4046a2802002202450d00200241306c450d0020042802c004102e0b200441e8016a4103109c0420004201370300200041286a200441e8016a41206a290300370300200041206a200441e8016a41186a290300370300200041186a200441e8016a41106a290300370300200041106a200441f0016a290300370300200020042903e8013703080c090b024002400240200b4101200b41014b1b2202418094ebdc036e2002418094ebdc03704100476a22084101200841014b1b220820024b0d002002200a422088a7220641036c220320022003491b20086ead428094ebdc037e200220086ead80a7109e042103200641ffffffff03712006470d0420064102742202417f4c0d040240024020020d00410421010c010b2002102c2201450d040b02402002410276220920064f0d00200241017622082006200820064b1b22084104200841044b1b220841ffffffff03712008464102742109200841027421080240024020020d00200441003602e8010c010b200441f0016a4104360200200420023602ec01200420013602e8010b200441d0056a20082009200441e8016a107d200441d8056a2802002102024020042802d0054101460d0020042802d4052101200241027621090c030b2002450d050c040b20060d01410021020c020b41d0d8c800411941bcd7cc001039000b2006210820012102034020022003360200200241046a21022008417f6a22080d000b200621020b2004200720062001200220042802d0041092034108102c2202450d0020044208370284052004200236028005200420053703e80120044180056a200441e8016a4108107420044194056a41002900a1974537020020044100290099974537028c05200441eb056a20044180056a41186a280200360000200441e3056a20044180056a41106a290300370000200441db056a20042903880537000020042004290380053700d305200441f1016a200441d0056a41086a290000370000200441f9016a200441d0056a41106a290000370000200441e8016a41186a200441e7056a29000037000020044188026a41013a0000200441053a00e801200420042900d0053700e901200441e8016a10fe0102402009450d002001102e0b02402006450d00200641e0006c2108200741d4006a210203400240200241706a2802002203450d00200341306c450d002002416c6a280200102e0b0240200228020041ffffff3f71450d002002417c6a280200102e0b200241e0006a2102200841a07f6a22080d000b0b0240200aa72202450d00200241e0006c450d002007102e0b0240200441c4046a2802002202450d00200241306c450d0020042802c004102e0b2000420037030820004200370300200041186a41013a0000200441d0076a24000f0b1036000b1038000b200241246a21022008415c6a22080d000b0b0240200441fc016a2802002208450d00200441e8016a410c6a2802002102200841246c210803400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022008415c6a22080d000b0b200441f8016a2802002202450d00200241246c450d0020042802f401102e0b0240200441ec026a2802002208450d00200441e4026a2802002102200841246c210803400240024002400240024020022d00000e050400010204030b2002410c6a280200450d03200241086a280200102e0c030b2002410c6a280200450d02200241086a280200102e0c020b2002410c6a280200450d01200241086a280200102e0c010b200241086a280200450d00200241046a280200102e0b200241246a21022008415c6a22080d000b0b200441e8026a2802002202450d00200241246c450d0020042802e402102e0b200441e8016a4101109c0420004201370300200041286a200441e8016a41206a290300370300200041206a200441e8016a41186a290300370300200041186a200441e8016a41106a290300370300200041106a200441f0016a290300370300200020042903e8013703080b2003280204210002402003410c6a2802002202450d002002410c6c21082000210203400240200241046a280200450d002002280200102e0b2002410c6a2102200841746a22080d000b0b200341086a2802002202450d002002410c6c450d002000102e0b200441d0076a24000bfb0201037f230041206b22022400200241003602082002420137030002404120102c2203450d002002422037021420022003360210200241106a200141106a412010742002200228021022032002280218107402402002280214450d002003102e0b200120021091024120102c2203450d002002422037021420022003360210200241106a200141306a412010742002200228021022032002280218107402402002280214450d002003102e0b4120102c2203450d002002422037021420022003360210200241106a200141d0006a412010742002200228021022032002280218107402402002280214450d002003102e0b200128020421032001410c6a2802002201200210760240200141246c2201450d000340200241106a200310ef042002200228021022042002280218107402402002280214450d002004102e0b200341246a21032001415c6a22010d000b0b200020022802002203200228020810b00102402002280204450d002003102e0b200241206a24000f0b1036000bc90a03047f037e057f230041c0026b220224000240024002402000410c6a28020022030d00200241f8016a411f6a200241d0016a411f6a280000360000200241f8016a41186a200241d0016a41186a290300370300200241f8016a41106a200241d0016a41106a290300370300200241f8016a41086a200241d0016a41086a290300370300200220022903d0013703f8010c010b20002003417f6a220336020c200241d0016a411f6a22042000280204200341246c6a220341206a280000360000200241d0016a41186a2205200341196a290000370300200241d0016a41086a200341096a2900002206370300200241d0016a41106a200341116a29000022073703002002200329000122083703d00120032d00002103200241f8016a411f6a22092004280000360000200241f8016a41186a22042005290300370300200241f8016a41106a22052007370300200241f8016a41086a220a2006370300200220083703f80120034106460d00200241a8016a411f6a220b2009280000360000200241a8016a41186a22092004290300370300200241a8016a41106a20052903002206370300200241a8016a41086a200a290300220737030020024180016a41096a200737000020024180016a41116a200637000020024180016a41196a200929030037000020024180016a41206a200b280000360000200220022903f80122063703a8012002200637008101200220033a00800102400240024020034103470d0020024180016a41017228000041c28289aa04470d01200220024180016a41106a2802003602d401200220024180016a41086a2802003602d001200241f8016a200241d0016a10a701410121030240024020022d00f8014101470d00410021030c010b200241f8006a200241b1026a290000370300200241f0006a200241a9026a290000370300200241e8006a200241a1026a290000370300200241e0006a20024199026a290000370300200241d8006a20024191026a290000370300200241c0006a41106a20024189026a290000370300200241c0006a41086a20024181026a290000370300200220022900f9013703400b200241f8016a41386a2204200241c0006a41386a290300370300200241f8016a41306a2205200241c0006a41306a290300370300200241f8016a41286a2209200241c0006a41286a290300370300200241f8016a41206a220a200241c0006a41206a290300370300200241f8016a41186a220b200241c0006a41186a290300370300200241f8016a41106a220c200241c0006a41106a290300370300200241f8016a41086a220d200241c0006a41086a290300370300200220022903403703f8012003450d01200241386a2004290300370300200241306a2005290300370300200241286a2009290300370300200241206a200a290300370300200241186a200b290300370300200241106a200c290300370300200241086a200d290300370300200220022903f80137030002402002418c016a280200450d0020024188016a280200102e0b200241f8016a2000109a042002200241f8016a4120200110fa04450d03200041046a220410e10141012103200041086a2802002200450d04200041246c450d042004280200102e0c040b0240024020030e050400010304030b2002418c016a280200450d0320024188016a280200102e0c030b2002418c016a280200450d0220024188016a280200102e0c020b2002418c016a280200450d0120024188016a280200102e0c010b20024188016a280200450d00200228028401102e0b200041046a220410e10141002103200041086a2802002200450d00200041246c450d002004280200102e0b200241c0026a240020030bd50101047f230041c0006b220224004116210341baddc8002104410221050240024002400240200141ff01710e0400010203000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602242002418883ca003602202002200241206a360218200241086a4190b7c4001044000b4118210341dfdcc8002104410021050c010b4118210341f7dcc8002104410121050b20004183043b0118200041003a001020004200370300200041206a20033602002000411c6a20043602002000411a6a20053a0000200241c0006a24000baa1404077f047e017f057e230041e0036b2203240020012800002104200341106a41186a2001411c6a290000370300200341106a41106a200141146a290000370300200341106a41086a2001410c6a2900003703002003200129000437031020022802002105200341b0036a41186a22064200370300200341b0036a41106a22014200370300200341b0036a41086a22074200370300200342003703b003200341d0006a41a081ca0041071081022007200341d0006a41086a2208290000370300200320032900503703b003200341d0006a41e4d1c100410c1081022006200829000037030020012003290050370300200341086a200341b0036a4120108e0241002109024002402005200328020c410020032802081b470d0020084120360200200320043602502003200341106a360254200341d0026a200341d0006a10c203200341d0006a20032802d002220520032802d80210f4022007200341d9006a2900003703002001200341e1006a2900003703002006200341e9006a290000370300200320032900513703b003024020032d00504101470d00200341306a41186a200341b0036a41186a290300370300200341306a41106a200341b0036a41106a290300370300200341306a41086a200341b0036a41086a290300370300200320032903b003370330410121090b024020032802d402450d002005102e0b2002410c6a2802002106200241086a280200210520022802042107024020090d002000410036024002402006450d002006410c6c21002007210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b2005450d022005410c6c450d022007102e0c020b20022802102104200341d0016a41186a2202200341306a41186a290300220a370300200341d0016a41106a2208200341306a41106a290300220b370300200341d0016a41086a2209200341306a41086a290300220c37030020032003290330220d3703d001200341d0006a41186a200a370300200341d0006a41106a200b370300200341d0006a41086a200c3703002003200d370350200341d0026a200341d0006a10bf01200341f0016a41186a220e2002290300370300200341f0016a41106a22022008290300370300200341f0016a41086a2009290300370300200320032903d0013703f001024020032802f00222080d002000410036024002402006450d002006410c6c21002007210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b2005450d022005410c6c450d022007102e0c020b20034190026a41186a200e29030037030020034190026a41106a200229030037030020034190026a41086a200341f0016a41086a290300370300200320032903f00137039002200341b0026a41186a200341d0026a41186a290300370300200341b0026a41106a200341d0026a41106a290300370300200341b0026a41086a200341d0026a41086a290300370300200320032903d0023703b002200341f8026a290300210a20032802f4022102200341b0036a41186a4200370300200341b0036a41106a4200370300200341b0036a41086a22094200370300200342003703b003200341d0006a41a081ca0041071081022009200341d0006a41086a220e290000370300200320032900503703b003200341d0006a41f09dc500410a108102200141086a200e29000037000020012003290050370000200341d0036a200341b0036a1088030240024020032802d00322090d00410021010c010b20032902d403220b422088a72101200b42ffffff3f83500d002009102e0b0240024020042001460d002000410036024002402002450d00200241306c450d002008102e0b02402006450d002006410c6c21002007210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b2005450d032005410c6c0d010c030b2000200329039002220b370300200041206a20032903b002220c370300200341d0006a41186a20034190026a41186a290300220d370300200341d0006a41106a20034190026a41106a290300220f370300200341d0006a41086a20034190026a41086a2903002210370300200341d0006a41286a200341b0026a41086a2903002211370300200341d0006a41306a200341b0026a41106a2903002212370300200341d0006a41386a200341b0026a41186a2903002213370300200041086a2010370300200041106a200f370300200041186a200d370300200041286a2011370300200041306a2012370300200041386a20133703002003200b3703502003200c370370200041c8006a200a370300200020023602442000200836024002402006450d002006410c6c21002007210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b2005450d022005410c6c450d020b2007102e0c010b200341d0006a2005109908200341d0026a41086a200341d0006a410c6a290200370300200341d0026a41106a200341d0006a41146a290200370300200341d0026a41186a200341d0006a411c6a290200370300200320032902543703d0020240024020032802504101470d00200341b0036a41086a2205200341d0026a41086a290300220a370300200341b0036a41106a2206200341d0026a41106a290300220b370300200341b0036a41186a2207200341d0026a41186a290300220c370300200320032903d002220d3703b003200341f4006a2802002101200341b0026a41186a2208200c370300200341b0026a41106a2209200b370300200341b0026a41086a220e200a3703002003200d3703b002024020012002280210460d00200041003602400c020b20072008290300370300200620092903003703002005200e290300370300200320032903b0023703b0032002410c6a280200210720022802042108200341d0026a10ab0202402007450d0020082007410c6c6a210541002802cca140210641002902c4a140210a20082101034020034190026a41086a20063602002003200a37039002200341d0006a200341d0026a20034190026a2001280200200141086a28020010b0022001410c6a22012005470d000b0b200341d0006a200341d0026a41e00010e9081a200341c8016a200341c8036a290300370300200341c0016a200341c0036a290300370300200341b8016a200341b0036a41086a290300370300200320032903b0033703b0012000200341d0006a2004200341106a109a08200341d0006a10b80202402007450d002007410c6c21002008210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b200241086a2802002201450d022001410c6c450d022008102e0c020b200041003602400b2002280204210502402002410c6a2802002201450d002001410c6c21002005210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b200241086a2802002201450d002001410c6c450d002005102e0b200341e0036a24000b2e01017e2000ad220120017e220142808090bbbad6adf00d200142808090bbbad6adf00d541b428094ebdc0380a70b4d01017f230041206b22002400200041146a4101360200200042013702042000419cc3cb003602002000410436021c20004194c3cb003602182000200041186a360210200041f4afc4001044000bfa0a02047f047e230041b0016b220224002002412036020c20022001360208200241106a2001412010ed0202400240200228021022010d00200041023a00000c010b2002280214210302400240200241186a2802002204450d004100210502400240024020012d00000e020100030b200241003a006020044101460d0220012d00012105200241013a0060200220053a004020044102460d0120012d00022105200241023a0060200220053a004120044103460d0120012d00032105200241033a0060200220053a004220044104460d0120012d00042105200241043a0060200220053a004320044105460d0120012d00052105200241053a0060200220053a004420044106460d0120012d00062105200241063a0060200220053a004520044107460d0120012d00072105200241073a0060200220053a004620044108460d0120012d00082105200241083a0060200220053a004720044109460d0120012d00092105200241093a0060200220053a00482004410a460d0120012d000a21052002410a3a0060200220053a00492004410b460d0120012d000b21052002410b3a0060200220053a004a2004410c460d0120012d000c21052002410c3a0060200220053a004b2004410d460d0120012d000d21052002410d3a0060200220053a004c2004410e460d0120012d000e21052002410e3a0060200220053a004d2004410f460d0120012d000f21052002410f3a0060200220053a004e20044110460d0120012d00102105200241103a0060200220053a004f20044111460d0120012d00112105200241113a0060200220053a005020044112460d0120012d00122105200241123a0060200220053a005120044113460d0120012d00132105200241133a0060200220053a005220044114460d0120012d00142105200241143a0060200220053a005320044115460d0120012d00152105200241153a0060200220053a005420044116460d0120012d00162105200241163a0060200220053a005520044117460d0120012d00172105200241173a0060200220053a005620044118460d0120012d00182105200241183a0060200220053a005720044119460d0120012d00192105200241193a0060200220053a00582004411a460d0120012d001a21052002411a3a0060200220053a00592004411b460d0120012d001b21052002411b3a0060200220053a005a2004411c460d0120012d001c21052002411c3a0060200220053a005b2004411d460d0120012d001d21052002411d3a0060200220053a005c2004411e460d0120012d001e21052002411e3a0060200220053a005d2004411f460d0120012d001f21052002411f3a0060200220053a005e20044120460d01200241206a41106a200241c0006a41106a290300370300200241206a41086a200241c0006a41086a290300370300200220012d00203a005f200241206a41186a200241c0006a41186a290300370300200241203a006020022002290340220637036820022006370320410121050b200241c0006a41186a200241206a41186a2903002206370300200241c0006a41106a200241206a41106a2903002207370300200241c0006a41086a200241206a41086a2903002208370300200220022903202209370340200020053a000020002009370001200041096a2008370000200041116a2007370000200041196a20063700000c020b200241003a00600b20024100360270200242013703682002410a3602242002200241086a3602202002200241e8006a3602ac01200241d4006a410136020020024201370244200241909dc5003602402002200241206a360250200241ac016a419cebc000200241c0006a103d1a2002280268200228027010ef020240200228026c450d002002280268102e0b200041023a00000b2003450d002001102e0b200241b0016a24000bb30201027f230041e0006b220224002002412036020c20022001360208200241106a2001412010ed0202400240200228021022010d00200041003602000c010b200228021421032002200241106a41086a28020036022420022001360220200241c8006a200241206a10b5050240024020022802480d0020024100360230200242013703282002410a36023c2002200241086a3602382002200241286a360244200241dc006a41013602002002420137024c200241909dc5003602482002200241386a360258200241c4006a419cebc000200241c8006a103d1a2002280228200228023010ef020240200228022c450d002002280228102e0b200041003602000c010b20002002290348370200200041086a200241c8006a41086a2802003602000b2003450d002001102e0b200241e0006a24000ba50904047f017e087f047e23004190026b220224002002412036020c20022001360208200241106a2001412010ed0202400240200228021022030d00200041003602000c010b200228021421042002200241186a280200360224200220033602202002200241206a10ab010240024020022802000d000240024020022802042205200228022441286e2201200120054b1bad42287e2206422088a70d002006a72201417f4c0d000240024020010d00410821070c010b2001102c2207450d020b200141286ead2106024002402005450d00410021080340200241003a00c801200841016a210820022802242109417f210a4100210102400240024002400240034020092001460d01200241a8016a20016a2002280220220b2d00003a000020022009200a6a3602242002200b41016a3602202002200141016a220c3a00c801200a417f6a210a200c2101200c4120470d000b200241f0016a41186a2201200241a8016a41186a290300370300200241f0016a41106a220a200241a8016a41106a290300370300200241f0016a41086a220d200241a8016a41086a290300370300200220022903a8013703f001200c41ff01714120490d0120024188016a41086a220e200d29030037030020024188016a41106a220d200a29030037030020024188016a41186a220a2001290300370300200220022903f001370388012009200c6b22014108490d01200241c8006a41086a200e290300220f370300200241c8006a41106a200d2903002210370300200241c8006a41186a200a2903002211370300200241286a41086a220c200f370300200241286a41106a22092010370300200241286a41186a220d2011370300200b290001210f2002200b41096a3602202002200141786a36022420022002290388012210370348200220103703282006422088a722012006a7470d04200141016a220a2001490d082001410174220b200a200a200b491b220a4104200a41044b1bad42287e2206422088a745410374210a2006a7210b20010d02200241003602a8010c030b200141ff0171450d00200241003a00c8010b2006a72201450d08200141286c450d082007102e0c080b200241083602b001200220073602a8012002200141286c3602ac010b200241f0016a200b200a200241a8016a107d20022802f801210a20022802f0014101460d0320022802f4012107200a41286ead21060b2007200141286c6a220a2002290328370300200c290300211020092903002111200d2903002112200a200f370320200a41186a2012370300200a41106a2011370300200a41086a2010370300200642ffffffff0f83200141016aad42208684210620082005470d000b0b2007450d0320002006370204200020073602000c040b200a0d010b1038000b1036000b200241003602f801200242013703f0012002410a3602d4012002200241086a3602d0012002200241f0016a36028801200241bc016a4101360200200242013702ac01200241909dc5003602a8012002200241d0016a3602b80120024188016a419cebc000200241a8016a103d1a20022802f00120022802f80110ef02024020022802f401450d0020022802f001102e0b200041003602000b2004450d002003102e0b20024190026a24000b9d0902057f017e230041b0016b220224002002412036020c20022001360208200241106a2001412010ed0202400240200228021022010d00200041003a00000c010b200241186a280200210320022802142104200241003a0060024002402003450d00200220012d00003a0040200241013a0060024020034101460d00200220012d00013a0041200241023a006020034102460d00200220012d00023a0042200241033a006020034103460d00200220012d00033a0043200241043a006020034104460d00200220012d00043a0044200241053a006020034105460d00200220012d00053a0045200241063a006020034106460d00200220012d00063a0046200241073a006020034107460d00200220012d00073a0047200241083a006020034108460d00200220012d00083a0048200241093a006020034109460d00200220012d00093a00492002410a3a00602003410a460d00200220012d000a3a004a2002410b3a00602003410b460d00200220012d000b3a004b2002410c3a00602003410c460d00200220012d000c3a004c2002410d3a00602003410d460d00200220012d000d3a004d2002410e3a00602003410e460d00200220012d000e3a004e2002410f3a00602003410f460d00200220012d000f3a004f200241103a006020034110460d00200220012d00103a0050200241113a006020034111460d00200220012d00113a0051200241123a006020034112460d00200220012d00123a0052200241133a006020034113460d00200220012d00133a0053200241143a006020034114460d00200220012d00143a0054200241153a006020034115460d00200220012d00153a0055200241163a006020034116460d00200220012d00163a0056200241173a006020034117460d00200220012d00173a0057200241183a006020034118460d00200220012d00183a0058200241193a006020034119460d00200220012d00193a00592002411a3a00602003411a460d00200220012d001a3a005a2002411b3a00602003411b460d00200220012d001b3a005b2002411c3a00602003411c460d00200220012d001c3a005c2002411d3a00602003411d460d00200220012d001d3a005d2002411e3a00602003411e460d00200220012d001e3a005e2002411f3a00602003411f460d00200241206a41106a2203200241c0006a41106a290300370300200241206a41086a2205200241c0006a41086a290300370300200220012d001f3a005f200241206a41186a2206200241c0006a41186a290300370300200241203a006020022002290340220737036820022007370320200041196a2006290300370000200041116a2003290300370000200041096a200529030037000020002002290320370001410121030c020b200241003a00600b20024100360270200242013703682002410a3602242002200241086a3602202002200241e8006a3602ac01200241d4006a410136020020024201370244200241909dc5003602402002200241206a360250200241ac016a419cebc000200241c0006a103d1a2002280268200228027010ef020240200228026c450d002002280268102e0b410021030b200020033a00002004450d002001102e0b200241b0016a24000bf50101037f230041206b220224002000410036020820004201370200024002400240024020012802000e03000102030b200241013a000f20002002410f6a41011074200128020421032001410c6a2802002204200010760240200441286c2204450d00200320046a2104034020002003412010742002200341206a2903003703102000200241106a41081074200341286a22032004470d000b0b2000200141106a412010740c020b200241023a000f20002002410f6a410110742002200128020436021c20002002411c6a410410740c010b200241033a000f20002002410f6a41011074200141086a20001096020b200241206a24000b850301047f230041f0006b22012400200141086a41206a200041206a280200360200200141086a41186a200041186a290200370300200141086a41106a200041106a290200370300200141086a41086a2202200041086a29020037030020012000290200370308200141306a41186a22004200370300200141306a41106a22034200370300200141306a41086a420037030020014200370330200141306a41d9fcc6004106108102200141e0006a41b4f4cb0041061081022000200141e0006a41086a220429000037030020032001290060370300200141d0006a200141086a10ef042004200141d0006a41086a28020036020020012001290350370360200141306a4120200141e0006a10c7020240024002400240024020012d00080e050400010204030b200141146a280200450d03200141106a280200102e0c030b200141146a280200450d02200141106a280200102e0c020b200141146a280200450d01200141106a280200102e0c010b2002280200450d00200128020c102e0b200141f0006a24000ba50101047f230041106b2202240002404121410120012d000041014622031b2204102c2205450d002002410036020820022004360204200220053602000240024020030d00200241003a000f20022002410f6a410110740c010b200241013a000f20022002410f6a410110742002200141016a412010740b2000412020022802002201200228020810b20102402002280204450d002001102e0b200241106a24000f0b1036000b850201037f230041d0006b22022400200241086a41dffcc6004109108102200241186a41d3b1c4004106108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000be22505027f017e027f017e037f230041b0046b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802000e1c0102030405060708090a0b0c0d0e0f101112131415161718191a1b00010b200241086a200141386a10ca0120024180026a41286a200141306a29030037030020024180026a41206a200141286a29030037030020024180026a41186a200141206a29030037030020024180026a41106a200141186a29030037030020024180026a41086a200141106a2903003703002002200141086a29030037038002200141f8016a280200210320024180026a41306a200241086a41c00110e9081a20014180026a2903002104200241086a20024180026a41f00110e9081a200041086a200241086a41f00110e9081a20004180026a2004370300200041f8016a20033602002000411b3602000c1b0b20024180026a200141086a10cb0120004100360200200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c1a0b20024180026a200141046a10cc0120004101360200200041246a200241a0026a2802003602002000411c6a20024198026a290300370200200041146a20024190026a2903003702002000410c6a20024188026a29030037020020002002290380023702040c190b20024180026a200141086a10cd01200041086a20024180026a41a00210e9081a200041023602000c180b20004103360200200041086a200141086a2903003703000c170b41042103200141046a210502400240024002400240024002400240024020012d0004417f6a0e050102030405000b41e2a0cc00412841e89bc4001039000b200141086a2802002105410121030c040b41022103200241086a41026a200541036a2d00003a000020024180026a41086a200141146a29020037030020024190026a2001411c6a29020037030020024198026a200141246a2d00003a0000200220052f00013b010820022001410c6a29020037038002200141086a2802002105200141286a28020021010c040b200141086a2802002105410321030c020b2002410a6a200541036a2d00003a000020024180026a41086a200141146a29020037030020024190026a2001411c6a29020037030020024198026a200141246a2d00003a0000200220052f00013b010820022001410c6a2902003703800220012d00254100472106200141086a2802002105200141286a28020021010c030b200141086a2802002105410521030b0b0b200020033a0004200020022f01083b0005200020063a0025200020022f01fc013b0126200041086a20053602002000410c6a200229038002370200200041286a2001360200200041076a2002410a6a2d00003a0000200041146a20024180026a41086a2903003702002000411c6a20024190026a290300370200200041246a20024198026a2d00003a0000200041043602000c160b20024180026a200141086a10ce01200041086a20024180026a41e00010e9081a200041053602000c150b20024180026a200141046a10cf01200041063602002000410c6a20024188026a28020036020020002002290380023702040c140b20024180026a200141086a10d001200041086a20024180026a41d80010e9081a200041073602000c130b10d101000b02400240200128020422050d00410021030c010b20024180026a41186a200141286a29000037030020024180026a41106a200141206a29000037030020024188026a200141186a29000037030020024180026a41286a200141386a29000037030020024180026a41306a200141c0006a29000037030020024180026a41386a200141c8006a29000037030020024180026a41c8006a200141d8006a29000037030020024180026a41d0006a200141e0006a29000037030020024180026a41d8006a200141e8006a2900003703002002200141106a290000370380022002200141306a2900003703a0022002200141d0006a2900003703c00220024180026a41f8006a20014188016a29000037030020024180026a41f0006a20014180016a29000037030020024180026a41e8006a200141f8006a29000037030020024180026a4198016a200141a8016a29000037030020024180026a4190016a200141a0016a29000037030020024180026a4188016a20014198016a29000037030020024180026a41b8016a200141c8016a29000037030020024180026a41b0016a200141c0016a29000037030020024180026a41a8016a200141b8016a2900003703002002200141f0006a2900003703e002200220014190016a290000370380032002200141b0016a2900003703a0032001410c6a2802002201417f4c0d130240024020010d00410121030c010b2001102c2203450d150b20032005200110e9081a200241086a20024180026a41c00110e9081a0b200020033602042000410c6a2001360200200041086a2001360200200041106a200241086a41c00110e9081a200041093602000c110b20024180026a200141086a10d201200041086a20024180026a41980210e9081a2000410a3602000c100b20024180026a200141046a10d301200041046a20024180026a41e80010e9081a2000410b3602000c0f0b10d401000b20024180026a200141086a10d5012000410d360200200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0d0b20024180026a200141086a10d6012000410e360200200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0c0b20024180026a200141086a10d6012000410f360200200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0b0b20024180026a200141086a10d70120004110360200200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0a0b200141046a2103410721050240024002400240024002400240024020012d0004417f6a0e0701020304050607000b41e2a0cc00412841a4c3cb001039000b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410121050c050b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410221050c040b20024180026a41186a200341196a29000037030020024180026a41106a200341116a29000037030020024180026a41086a200341096a290000370300200241086a41086a200341296a290000370300200241086a41106a200341316a290000370300200241086a41186a200341396a29000037030020022003290001370380022002200341216a290000370308410321050c030b200241086a200141086a10c8012002418b026a200241086a41086a2802003600002002200229030837008302410421050c020b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410521050c010b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410621050b200020053a0004200020022903800237000520002002290308370025200020022f00fc013b00452000410d6a20024180026a41086a290300370000200041156a20024180026a41106a2903003700002000411d6a20024180026a41186a2903003700002000412d6a200241086a41086a290300370000200041356a200241086a41106a2903003700002000413d6a200241086a41186a290300370000200041c7006a200241fe016a2d00003a0000200041113602000c090b024002400240024002400240200141086a280200417f6a0e03010203000b41e2a0cc0041284184ccc2001039000b200141386a2903002104200141306a29030021074101210841012109024002400240024002402001410c6a2d00000e050104020300010b4104210920024180026a41046a200141206a2d00003a000020022001411c6a2800003602800220012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a28020021050c030b20024188026a200141246a29000037030020024180026a41106a2001412c6a2d00003a000020022001411c6a2900003703800220012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a2802002105410021090c020b200141186a2802002203417f4c0d0f200141106a28020021010240024020030d00410121050c010b2003102c2205450d110b20052001200310e9081a410221092003210a0c010b20024188026a200141246a29000037030020024180026a41106a2001412c6a2d00003a000020022001411c6a2900003703800220012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a2802002105410321090b200241086a41106a20024180026a41106a2d00003a0000200241086a41086a20024180026a41086a290300370300200241046a41026a200241fc016a41026a2d00003a00002002200229038002370308200220022f00fc013b01040c030b2001410c6a28020022094108762106410221080c010b2001410c6a28020022094108762106410321080b0b200020022f01043b002d20004112360200200041386a2004370300200041306a2007370300200041186a200a360200200041146a2003360200200041106a2005360200200041086a20083602002000411c6a20022903083702002000410c6a2006410874200941ff017172360200200041246a200241086a41086a2903003702002000412c6a200241086a41106a2d00003a00002000412f6a200241066a2d00003a00000c080b20024180026a200141086a10d801200041086a20024180026a41f00010e9081a200041133602000c070b20024180026a200141086a10d901200041086a20024180026a41f80010e9081a200041143602000c060b024002400240024020012f0104417f6a0e03010200010b20024180026a200141086a10c90120022902840221042002280280022103410321010c020b20024180026a200141086a10c90120022902840221042002280280022103410121010c010b20012f0106210541b002102c2203450d0820024180026a200141086a28020010da01200320024180026a41b00210e9081a410221010b200020013b0104200041153602002000410c6a2004370200200041086a2003360200200041066a20053b01000c050b20024180026a200141086a10db01200041086a20024180026a41a80210e9081a200041163602000c040b20024180026a200141046a10dc01200041046a20024180026a41c80010e9081a200041173602000c030b20024180026a200141086a10dd01200041086a20024180026a41c80010e9081a200041183602000c020b20024180026a200141086a10de0120004119360200200041c0006a20024180026a41386a290300370300200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c010b20024180026a200141086a10df012000411a360200200041c0006a20024180026a41386a290300370300200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000b200241b0046a24000f0b1038000b1036000bbc0101037f230041306b22022400200241dffcc6004109108102200241106a41e5b0c4004106108102200241206a2001280200200128020810a201024002402002280228220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b20004100360208200020013602042000200436020020002002411010742000200241106a411010742000200228022022012003107402402002280224450d002001102e0b200241306a24000f0b1038000b1036000bfa0101037f230041306b220224002002200010a704200228020821032002280200210002404101102c2204450d0020024201370214200220043602100240024020012802bc024102470d00200241003a0020200241106a200241206a410110740c010b200241013a0020200241106a200241206a410110742001200241106a10ab040b200241206a41086a200241106a41086a2802003602002002200229031037032020002003200241206a10c70202402002280204450d002000102e0b024020012802bc024102460d00024020012802b0022200450d00200141b4026a280200450d002000102e0b2001108b020b200241306a24000f0b1036000bb20501037f230041106b220224000240024020002802b00222030d00200241003a000c20012002410c6a410110742002410c6a21030c010b200241013a000c20012002410c6a41011074200041b8026a28020022042001107620012003200410742002410c6a21030b200220002d00f0023a000c2001200341011074200020011090020240024020002802bc024101460d00200241003a000c20012003410110740c010b200241013a000c20012003410110742002200041c0026a28020036020c20012002410c6a410410742002200041c4026a28020036020c20012002410c6a410410740b0240024002400240024020002d00c8020e0400010203000b200241003a000c2001200341011074024002400240200041c9026a2d00000e03000102060b200241003a000c20012003410110740c050b200241013a000c20012003410110742001200041ca026a412010740c040b200241023a000c20012003410110740c030b2002410f3a000c2001200341011074024002400240200041cc026a2d00000e03000102050b200241003a000c20012003410110742002200041d0026a28020036020c20012002410c6a410410742002200041d4026a28020036020c20012002410c6a410410740c040b200241013a000c20012003410110742001200041cd026a412010740c030b200241023a000c20012003410110740c020b200241103a000c2001200341011074024002400240200041cc026a2d00000e03000102040b200241003a000c20012003410110742002200041d0026a28020036020c20012002410c6a410410742002200041d4026a28020036020c20012002410c6a410410740c030b200241013a000c20012003410110742001200041cd026a412010740c020b200241023a000c20012003410110740c010b200241033a000c2001200341011074200110b6040b200241106a24000b130020004103360204200041a0b7c4003602000b3400200041a8f8c60036020420004100360200200041146a4110360200200041106a41a8bec400360200200041086a42043702000b130020004102360204200041f4e0c4003602000b4301027f230041106b2202240002404108102c22030d001036000b2000420837020420002003360200200242f02e3703082000200241086a41081074200241106a24000b4301027f230041106b2202240002404108102c22030d001036000b2000420837020420002003360200200242e0123703082000200241086a41081074200241106a24000ba10402067f027e230041206b2102024002400240024002400240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a36020020050e020102030b200041023a00000f0b2006450d0420042d0001210520012003417e6a22073602042001200441026a360200410021060240024002400240024002400240200541ff00710e07060001020304050b0b410121060c050b410221060c040b410321060c030b410421060c020b410521060c010b410621060b024020074110490d00200041003a0000200041086a2004290002370300200041026a20063a0000200020054107763a0001200041036a200228001b360000200041186a2002290308370300200041106a2004410a6a29000037030020012003416e6a3602042001200441126a360200200041076a2002411f6a2d00003a0000200041206a200241086a41086a2903003703000f0b200041023a00000f0b20064110490d01200441096a29000021082004290001210920012003416f6a22053602042001200441116a36020020054110490d02200041013a000020002002280008360001200041186a2004290011370300200041106a2008370300200041086a2009370300200041206a200441196a29000037030020012003415f6a3602042001200441216a360200200041046a2002410b6a2800003600000f0b200041023a00000f0b200041023a00000f0b200041023a00000f0b200041023a00000ba20202037f017e230041106b220224000240024020002d00004101460d00200241003a0000200120024101107420002d00012103410621040240024002400240024002400240200041026a2d00000e0700010203040506000b410021040c050b410121040c040b410221040c030b410321040c020b410421040c010b410521040b20022004200341ff0171410047410774723a00002001200241011074200029030821052002200041106a2903003703082002200537030020012002411010740c010b200241013a00002001200241011074200029030821052002200041106a290300370308200220053703002001200241101074200041186a29030021052002200041206a2903003703082002200537030020012002411010740b200241106a24000b130020004106360204200041b8e7c4003602000b3400200041dffcc60036020420004100360200200041146a4103360200200041106a41f0f7c400360200200041086a42093702000b3401017f230041106b220224002000410036020820004201370200200241003a000f20002002410f6a41011074200241106a24000b4601027f230041106b220124002001410036020820014201370300200110b6042000200128020022022001280208107402402001280204450d002002102e0b200141106a24000bef43050e7f037e1c7f047e0a7f230041f0026b220524000240024002400240024002400240024002400240024002400240024002400240024020020d0041002106410021070c010b200120024105746a2108200541b0026a41186a2109200541386a41186a210a200541b0026a41086a210b410021064100210703402009200141186a290000370300200541b0026a41106a220c200141106a290000370300200b200141086a290000370300200520012900003703b002024020070d0041c805102c2207450d0e4100210d200741003b01e602200741003602e0020b200141206a21012007210e200d210f024002400340200e41e8026a2110200e2f01e6022111410021020240034020112002460d01200541b0026a2010412010ec082212450d03200241016a2102201041206a21102012417f4a0d000b2002417f6a21110b0240200f450d00200f417f6a210f200e20114102746a41c8056a280200210e0c010b0b200541206a41086a200b41086a2902002213370300200541206a41106a200b41106a29020022143703002005200b290200221537032020052802b402210f20052802b0022116200541c0016a41106a22172014370300200541c0016a41086a22182013370300200520153703c00102400240200e2f01e6022202410a4b0d0020054198026a41106a2219201729030037030020054198026a41086a221a2018290300370300200520052903c00137039802200e41e8026a2110200241016a21120240201141016a221b20024b221c0d002010201b4105746a201020114105746a20122011417f736a41057410ea081a0b20102011410574220c6a2202200f360004200220163600002002200529039802370008200241106a201a290300370000200241186a20192903003700000240201c0d00200e201b4105746a200e200c6a20122011417f736a41057410ea081a0b200e200c6a22024200370308200242003703002002410036021820024208370310200e20123b01e6020c010b4100211a4104210202400240201141054f0d00201121120c010b4105210241052112024002402011417b6a0e020201000b201141796a21124101211a410621020c010b410021124101211a0b41c805102c2219450d10201941003b01e602201941003602e0022019200e2f01e602221b2002417f736a22113b01e602200e41e8026a221c2002410574221d6a2210280004211e2010280000211f20054198026a41106a2220201041186a29000037030020054198026a41086a2221201041106a2900003703002005201029000837039802200a200e201d6a221041186a290300370300200541386a41106a2222201041106a290300370300200541386a41086a2223201041086a290300370300200520102903003703382011410c4f0d0e201b200241016a22106b2011470d0d201941e8026a201c201041057422106a2011410574221110e9081a2019200e20106a201110e908211d20092005290338370300200941086a22242023290300370300200941106a22252022290300370300200941186a2226200a290300370300200e20023b01e602200c20202903002213370300200541e0016a41086a22272021290300370300200541e0016a41106a22282013370300200541e0016a41186a22292009290300370300200541e0016a41206a222a200541b0026a41206a222b290300370300200541e0016a41286a222c200541b0026a41286a222d290300370300200541e0016a41306a222e200541b0026a41306a222f29030037030020052005290398023703e001201d200e201a1b22022f01e60221102020201729030037030020212018290300370300200520052903c00137039802200241e8026a2111201041016a211a0240201241016a221c20104b22300d002011201c4105746a201120124105746a201a2012417f736a41057410ea081a0b20112012410574221b6a2210200f360004201020163600002010200529039802370008201041106a2021290300370000201041186a2020290300370000024020300d002002201c4105746a2002201b6a201a2012417f736a41057410ea081a0b2002201b6a22104200370308201042003703004100213120104100360218201042083703102002201a3b01e602200541f0006a41086a221a20272903002213370300200541f0006a41106a221b20282903002214370300200541f0006a41186a221c20292903002215370300200541f0006a41206a202a2903002232370300200541f0006a41286a202c2903002233370300200541f0006a41306a202e2903002234370300200520052903e0012235370370200541386a41306a22362034370300200541386a41286a22372033370300200541386a41206a22382032370300200a201537030020222014370300202320133703002005203537033802400240200e2802e0022216450d0041002131201d2139201e213a201f213b0340200e2f01e402210e200541a8016a41106a22302022290300370300200541a8016a41086a223c2023290300370300200520052903383703a801200541c0016a41186a221d200a41186a2903003703002017200a41106a2903003703002018200a41086a2903003703002005200a2903003703c0014101450d0f20162f01e602223d410b490d024100210f410421020240200e4105490d00200e210202400240200e417b6a0e020201000b200e41796a210e4101210f410621020c010b4100210e4101210f410521020b41f805102c2219450d13201941003b01e602201941003602e002201920162f01e602223e2002417f736a22123b01e602201641e8026a223f200241057422116a2210280004211e2010280000211f2020201041186a2900003703002021201041106a2900003703002005201029000837039802201c201620116a221041186a290300370300201b201041106a290300370300201a201041086a290300370300200520102903003703702012410c4f0d0e203e200241016a22116b2012470d0d201941e8026a203f201141057422106a2012410574221210e9081a2019201620106a201210e9082110201620023b01e602200b2021290300370300200c2020290300370300200920052903703703002024201a2903003703002025201b2903003703002026201c29030037030020052005290398023703b00220102f01e602221241016a213e2012410c4f0d0c203d20026b2202203e470d0b203141016a2131201041c8056a201620114102746a41c8056a200241027410e9081a4100210202400340201020024102746a41c8056a280200221120023b01e402201120103602e0022002200220124922116a220220124b0d0120110d000b0b202e202f290300370300202c202d290300370300202a202b290300370300202920092903003703002028200c2903003703002027200b290300370300200520052903b0023703e001201c201d290300370300201b2017290300370300201a2018290300370300200520052903c00137037020102016200f1b22112f01e602211d200c2030290300370300200b203c290300370300200520052903a8013703b002201141e8026a2112201d41016a210f0240200e41016a2202201d4b223c0d00201220024105746a2012200e4105746a200e417f73200f6a41057410ea081a0b2012200e41057422306a2212203a3600042012203b360000201241186a200c290300370000201241106a200b290300370000201220052903b0023700082009201c290300370300200c201b290300370300200b201a290300370300200520052903703703b0020240203c0d00201120024105746a201120306a200e417f73200f6a41057410ea081a0b201120306a221220052903b002370300201241186a2009290300370300201241106a200c290300370300201241086a200b290300370300201141c8056a21120240200e41026a2230201d41026a221d4f0d00201220304102746a201220024102746a2002417f73201d6a41027410ea081a0b201220024102746a20393602002011200f3b01e60202402002201d4f0d002011200e4102746a41cc056a2102034020022802002212200e41016a220e3b01e402201220113602e002200241046a2102200f200e470d000b0b2023202729030037030020222028290300370300200a20292903003703002038202a2903003703002037202c2903003703002036202e290300370300200520052903e0013703382016210e20162802e0022202211620102139201e213a201f213b20020d000b0b202e20362903002213370300202c20372903002214370300202a203829030022153703002029200a29030022323703002028202229030022333703002027202329030022343703002005200529033822353703e001202f2013370300202d2014370300202b201537030020092032370300200c2033370300200b2034370300200520353703b0022007450d0841f805102c2202450d11200220073602c805200241003b01e602200241003602e002200741003b01e402200720023602e0022022200c2903003703002023200b290300370300200520052903b002370338201c2026290300370300201b2025290300370300201a202429030037030020052009290300370370200d2031470d0720022f01e6022210410b4f0d06200d41016a210d2002201041016a22123b01e602200220104105746a22102005290370370300201041ec026a201e360000201041e8026a201f360000201041f0026a2005290338370000201041f8026a202329030037000020104180036a2022290300370000201041086a201a290300370300201041106a201b290300370300201041186a201c290300370300200220124102746a41c8056a2019360200201920123b01e402201920023602e002200221070c010b201c201d290300370300201b2017290300370300201a2018290300370300200520052903c00137037020162f01e6022112200c2030290300370300200b203c290300370300200520052903a8013703b002200e41016a2102201641e8026a2110201241016a21110240200e20124f220f0d00201020024105746a2010200e4105746a200e417f7320116a41057410ea081a0b2010200e41057422196a2210203a3600042010203b360000201041186a200c290300370000201041106a200b290300370000201020052903b0023700082009201c290300370300200c201b290300370300200b201a290300370300200520052903703703b0020240200f0d00201620024105746a201620196a200e417f7320116a41057410ea081a0b201620196a221020052903b002370300201041186a2009290300370300201041106a200c290300370300201041086a200b290300370300201641c8056a2110201241026a21120240200f0d00200e41027420106a41086a201020024102746a2002417f7320126a41027410ea081a0b201020024102746a2039360200201620113b01e602200220124f0d0020162002417f6a22024102746a41cc056a2110034020102802002212200241016a22023b01e402201220163602e002201041046a211020112002470d000b0b2005410036028001200641016a21060c010b200541003602c802200542083703c002200542003703b802200542003703b002200e20024105746a220229031021132002420837031020022903082114200242003703082002290300211520024200370300200241186a22022903002132200220052903c802370300200541f0006a41186a2032370300200520133703800120052014370378200520153703702013a72202450d002005280284012210450d00201041306c450d002002102e0b20012008470d000b0b02402004450d0020032004412c6c6a211903400240200328020841306c2202450d002003280200220e20026a21092003410c6a2116024003402007450d01200e41306a210b20072101200d210f02400340200141e8026a211020012f01e60221114100210202400240034020112002460d01200e2010412010ec082212450d02200241016a2102201041206a21102012417f4a0d000b2002417f6a21110b200f450d02200f417f6a210f200120114102746a41c8056a28020021010c010b0b200120024105746a2202427f20022903002213200e2903207c221420142013542210200241086a22122903002213200e41286a22112903007c2010ad7c221420135420142013511b22101b3703002012427f201420101b37030020162900002113200541b0026a41086a2201201641086a290000370300200541b0026a41106a220f201641106a290000370300200541b0026a41186a220c201641186a290000370300200520133703b00220112903002113200e2903202114200241186a2110200241106a2111024020022802182212200241146a280200470d0020112012410110b804201028020021120b2011280200201241306c6a220220052903b00237030020022014370320200241186a200c290300370300200241106a200f290300370300200241086a2001290300370300200241286a20133703002010201028020041016a360200200b210e200b2009460d030c010b0b0240200d450d00034020072802c8052107200d417f6a220d0d000b0b02402006450d0041002110200541c0026a2101200541b8026a210f03402006417f6a210641012102024002400340201020072f01e602490d01024020072802e00222120d002007102e410021070c030b20072f01e40221102007102e2002417f6a2102201221070c000b0b2001200720104105746a22124180036a290000370300200f201241f8026a2900003703002005201241f0026a2900003703b002201041016a2110201228021421112012280210210e20024101460d00200720104102746a41c8056a280200210702402002450d000340200241016a221020024f211220072802c80521072010210220120d000b0b410021100b200e450d0202402011450d00201141306c450d00200e102e0b20060d000b0b034020072802e00221022007102e2002210720020d000b0b20004104360204410121020c110b2003412c6a22032019470d000b0b024020070d0041002102410021060c0b0b200721020340200d450d0b200d417f6a210d200720072f01e6024102746a41c8056a280200210720022802c80521020c000b0b41a89ac700412041c89ac7001039000b41e899c700413041989ac7001039000b41e8aac700412b4194abc7001039000b41f49bc7004128419c9cc7001039000b203e410c41f49cc700104d000b41f49bc7004128419c9cc7001039000b2012410b41e49bc700104d000b41ac9cc700413541e49cc7001039000b41f49bc7004128419c9cc7001039000b2011410b41e49bc700104d000b0240024002400240024002402006450d002002450d032006417f6a210741002110024002400340201020022f01e602490d01024020022802e00222120d002002102e410021020c030b20022f01e40221102002102e200d41016a210d201221020c000b0b200541f0006a41186a2201200220104105746a22114180036a290000370300200541f0006a41106a220f201141f8026a290000370300200541f0006a41086a2216201141f0026a2900003703002005201141e8026a2900003703702011280210210e200541c0016a41086a220b2011411c6a280200360200200520112902143703c001201041016a2112201141086a2903002114201129030021130240200d450d00200220124102746a41c8056a28020021020240200d4101460d0041012110034020022802c8052102200d201041016a2210470d000b0b410021120b200541bc026a2016290300370200200541c4026a200f290300370200200541b0026a411c6a200129030037020020054198026a41086a200b280200360200200520052903703702b402200541e0016a41086a200541b0026a41086a290200370300200541e0016a41106a200541b0026a41106a290200370300200541e0016a41186a200541b0026a41186a290200370300200541e0016a41206a200541b0026a41206a280200360200200520052903c00137039802200520052902b0023703e0010b200541b0026a41106a200541e0016a41106a290300370300200541b0026a41086a200541e0016a41086a290300370300200541b0026a41186a200541e0016a41186a290300370300200541b0026a41206a200541e0016a41206a280200360200200541a8016a41086a20054198026a41086a280200360200200541386a41086a200541bc026a290200370300200541386a41106a200541c4026a290200370300200541386a41186a200541cc026a290200370300200520052903e0013703b00220052005290398023703a801200520052902b402370338200e450d01417f200741016a221020102007491b221041ffffff1f712010470d0420104106742210417f4c0d042010102c220f450d06200f2013370320200f2005290338370300200f200e360230200f20052903a801370234200f41286a2014370300200f41186a200541386a41186a290300370300200f41106a200541386a41106a290300370300200f41086a200541386a41086a290300370300200f413c6a200541a8016a41086a2802003602002010410676210d024020070d004101210e0c080b2007417f6a210741012111024002400340201220022f01e602490d01024020022802e00222100d002002102e410021020c030b20022f01e40221122002102e2011417f6a2111201021020c000b0b200541f0006a41186a2201200220124105746a220e4180036a290000370300200541f0006a41106a2216200e41f8026a290000370300200541f0006a41086a220c200e41f0026a2900003703002005200e41e8026a290000370370200e280210210b200541386a41086a2209200e411c6a2802003602002005200e290214370338201241016a2110200e41086a2903002134200e2903002133024020114101460d00200220104102746a41c8056a280200210202402011450d000340201141016a221020114f211220022802c80521022010211120120d000b0b410021100b200541bc026a200c290300370200200541c4026a2016290300370200200541b0026a411c6a200129030037020020054198026a41086a2009280200360200200520052903703702b402200541e0016a41086a200541b0026a41086a290200370300200541e0016a41106a200541b0026a41106a290200370300200541e0016a41186a200541b0026a41186a290200370300200541e0016a41206a200541b0026a41206a2802003602002005200529033837039802200520052902b0023703e0010b200541b0026a41106a220c200541e0016a41106a2208290300370300200541b0026a41086a2209200541e0016a41086a2206290300370300200541b0026a41186a2219200541e0016a41186a2222290300370300200541b0026a41206a2220200541e0016a41206a2223280200360200200541206a41086a220a20054198026a41086a2230280200360200200541c0016a41086a221a200541bc026a290200370300200541c0016a41106a221b200541c4026a290200370300200541c0016a41186a221c200541b0026a411c6a290200370300200520052903e0013703b0022005200529039802370320200520052902b4023703c00102400240200b0d004101210e0c010b200541f0006a41046a2101200541b0026a41046a211d4101210e03402009201a290300370300200c201b2903003703002019201c290300370300200541386a41086a2216200a280200360200200520052903c0013703b00220052005290320370338024002400240200d200e470d00200d200e6b417f200741016a221220122007491b22124f0d00200e20126a2212200e490d09200d41017422112012201120124b1b22124104201241044b1b221241ffffff1f7120124641037421112012410674211202400240200d0d00200541003602e0010c010b200541083602e8012005200f3602e0012005200d4106743602e4010b200541f0006a20122011200541e0016a107d2005280278211220052802704101460d012005280274210f2012410676210d0b200c2903002113201929030021142009290300211520052903b0022132200f200e4106746a2212200b36023020122032370300201241086a201537030020122033370320201241286a2034370300201241186a2014370300201241106a2013370300201220052903383702342012413c6a2016280200360200200e41016a210e2007450d0b2007417f6a2107410121120c010b2012450d070c090b024002400340201020022f01e602490d01024020022802e0022211450d0020022f01e40221102002102e2012417f6a2112201121020c010b0b2002102e410021020c010b200541386a41186a2217200220104105746a22114180036a290000370300200541386a41106a2218201141f8026a2900003703002016201141f0026a2900003703002005201141e8026a2900003703382011280210210b20302011411c6a2802003602002005201129021437039802201041016a2110201141086a290300213420112903002133024020124101460d00200220104102746a41c8056a280200210202402012450d000340201241016a221020124f211120022802c80521022010211220110d000b0b410021100b201d2005290338370000201d41086a2016290300370000201d41106a2018290300370000201d41186a2017290300370000200541a8016a41086a2030280200360200200620092902003703002008200c290200370300202220192902003703002023202028020036020020052005290398023703a801200520052902b0023703e0010b200541f0006a41206a2023280200360200200541f0006a41186a2022290300370300200541f0006a41106a2008290300370300200541f0006a41086a2006290300370300200a200541a8016a41086a280200360200200520052903e001370370200520052903a801370320201a200141086a290200370300201b200141106a290200370300201c200141186a290200370300200520012902003703c001200b0d000b0b2007450d0703402007417f6a210741012112024002400340201020022f01e602490d01024020022802e00222110d002002102e410021020c030b20022f01e40221102002102e2012417f6a2112201121020c000b0b201041016a2111200220104105746a2210280214210120102802102116024020124101470d00201121100c010b200220114102746a41c8056a280200210202402012450d0041002110034020022802c805210220122010417f6a2210470d000b0b410021100b2016450d0902402001450d00200141306c450d002016102e0b2007450d080c000b0b20020d010c040b2007450d00200541c0026a210f200541b8026a210d03402007417f6a210741012110024002400340201220022f01e602490d01024020022802e0022211450d0020022f01e40221122002102e2010417f6a2110201121020c010b0b2002102e410021020c010b200f200220124105746a22114180036a290000370300200d201141f8026a2900003703002005201141f0026a2900003703b002201241016a21122011280214210e2011280210210120104101460d00200220124102746a41c8056a280200210202402010450d000340201041016a221220104f211120022802c80521022012211020110d000b0b410021120b2001450d040240200e450d00200e41306c450d002001102e0b20070d000b0b034020022802e00221102002102e2010210220100d000c030b0b41e8aac700412b41f8b7c0001039000b1038000b4108210f4100210e4100210d0c020b1036000b034020022802e00221102002102e2010210220100d000b0b2000200f3602042000410c6a200e360200200041086a200d360200410021020b20002002360200200541f0026a24000be30102027f017e230041206b22032400024002400240200041046a280200220420016b20024f0d00200120026a22022001490d02200441017422012002200120024b1b22014104200141044b1bad42307e2205422088a74541037421012005a721020240024020040d00200341003602100c010b200341106a41086a41083602002003200441306c360214200320002802003602100b200320022001200341106a107d200341086a280200210120032802004101460d0120002003280204360200200041046a200141306e3602000b200341206a24000f0b2001450d001036000b1038000be71e080a7f017e017f017e017f027e0e7f017e230041d0046b220324002003420037020c02400240024002400240024002402001280208220441ffffffff03712004470d0020044102742205417f4c0d0020012802042106200128020021070240024020050d00410421010c010b2005102c2201450d070b41002108200341003602202003200136021820032005410276220936021c024002400240200920044f0d00200541017622092004200920044b1b22094104200941044b1b220941ffffffff0371200946410274210a200941027421090240024020050d00200341003602e8030c010b200341f0036a4104360200200320053602ec03200320013602e8030b20034180036a2009200a200341e8036a107d20034188036a280200210502402003280280034101460d00200320032802840322013602182003200541027636021c200328022021080c020b2005450d030c090b2004450d010b2004410574210b200120084102746a210a200341e8036a41046a210c20034180036a41c4006a210141002109200721050340200341c8016a41186a200541186a2204290000220d370300200341c8016a41106a200541106a220e290000220f370300200341c8016a41086a200541086a221029000022113703002003200529000022123703c801200341a8026a41186a22132004290000370300200341a8026a41106a2204200e290000370300200341a8026a41086a220e2010290000370300200320052900003703a802200341e8036a41186a200d370300200341e8036a41106a200f370300200341e8036a41086a2011370300200320123703e803200341086a200341e8036a200910a402200141186a2013290300370200200141106a2004290300370200200141086a200e290300370200200120032903a80237020020034180036a410041c40010eb081a200c20034180036a41e40010e9081a41f800102c2204450d08200541206a21052004410036020820044281808080103703002004410c6a200341e8036a41e80010e9081a200441003a0074200420032f00f8013b0075200441f7006a200341f8016a41026a2d00003a0000200a2004360200200941016a2109200a41046a210a200b41606a220b0d000b200820096a21080b200320083602200240200641ffffff3f71450d002007102e0b2002280208210420022802042107200228020021022003413c6a200341186a360200200320023602302003200736022c2003200236022820032002200441386c220a6a22143602342003200341086a360238200221012004450d04200341e8036a41346a2106200341286a41106a210820034180036a412c6a2109200221010340200341d8026a41086a220b2001220441086a290300370300200341d8026a41106a220e200441106a290300370300200341d8026a41186a2210200441186a290300370300200341d8026a41206a2213200441206a290300370300200320042903003703d8022003200441386a2201360230200441286a2802002105200341c0006a41086a220c200441346a28020036020020032004412c6a2902003703402005450d0420034180036a41206a201329030037030020034180036a41186a201029030037030020034180036a41106a200e29030037030020034180036a41086a200b29030037030020092003290340370200200941086a200c280200360200200320032903d80237038003200320053602a803200341e8036a200820034180036a10ba04024020032802980422050d00200a41486a220a0d010c050b0b200341a8026a41286a2204200341e8036a41286a290300370300200341a8026a41206a2201200341e8036a41206a290300370300200341a8026a41186a2209200341e8036a41186a290300370300200341a8026a41106a220a200341e8036a41106a290300370300200341a8026a41086a220b200341e8036a41086a290300370300200341d0006a41086a220e200641086a290200370300200341d0006a41106a2210200641106a290200370300200341d0006a41186a2213200641186a290200370300200341d0006a41206a220c200641206a290200370300200341d0006a41286a2208200641286a280200360200200320032903e8033703a80220032006290200370350200341f8016a41086a2202200e290300370300200341f8016a41106a220e2010290300370300200341f8016a41186a22102013290300370300200341f8016a41206a2213200c290300370300200341f8016a41286a220c2008280200360200200341c8016a41086a2208200b290300370300200341c8016a41106a220b200a290300370300200341c8016a41186a220a2009290300370300200341c8016a41206a22072001290300370300200341c8016a41286a22012004290300370300200320032903503703f801200320032903a8023703c80120034198016a41286a2204200c28020036020020034198016a41206a220c201329030037030020034198016a41186a2213201029030037030020034198016a41106a2210200e29030037030020034198016a41086a220e2002290300370300200320032903f8013703980141e000102c2209450d06200920032903c801370300200920053602302009200329039801370234200941286a2001290300370300200941206a2007290300370300200941186a200a290300370300200941106a200b290300370300200941086a20082903003703002009413c6a200e290300370200200941c4006a2010290300370200200941cc006a2013290300370200200941d4006a200c290300370200200941dc006a200428020036020020034180016a41086a200341286a41086a290300220d37030020034180016a41106a2202200341286a41106a29030037030020032003290328370380010240200da72201200328028c012208470d0041012107410121060c030b20034180036a412c6a210a200341e8036a41346a211541012107410121060340200341d8026a41186a220b2001220441186a290300370300200341d8026a41206a220e200441206a2903003703002003200441386a220136028801200341d8026a41086a2210200441086a290300370300200341d8026a41106a2213200441106a290300370300200320042903003703d802200441286a2802002105200341c0006a41086a220c200441346a28020036020020032004412c6a2902003703402005450d0220034180036a41206a2214200e29030037030020034180036a41186a220e200b29030037030020034180036a41106a220b201329030037030020034180036a41086a22132010290300370300200a2003290340370200200a41086a200c280200360200200320032903d80237038003200320053602a803200341e8036a200220034180036a10ba04024020032802980422050d0020082001470d010c030b200341a8026a41286a2204200341e8036a41286a2201290300370300200341a8026a41206a2216200341e8036a41206a2210290300370300200341a8026a41186a2217200341e8036a41186a220c290300370300200341a8026a41106a2218200341e8036a41106a2208290300370300200341a8026a41086a2219200341e8036a41086a221a290300370300200341d0006a41086a221b201541086a290200370300200341d0006a41106a221c201541106a290200370300200341d0006a41186a221d201541186a290200370300200341d0006a41206a221e201541206a290200370300200341d0006a41286a221f201541286a280200360200200320032903e8033703a80220032015290200370350200341f8016a41086a2220201b290300370300200341f8016a41106a221b201c290300370300200341f8016a41186a221c201d290300370300200341f8016a41206a221d201e290300370300200341f8016a41286a221e201f280200360200200341c8016a41086a221f2019290300370300200341c8016a41106a22192018290300370300200341c8016a41186a22182017290300370300200341c8016a41206a22172016290300370300200341c8016a41286a22162004290300370300200320032903503703f801200320032903a8023703c80120034198016a41286a2204201e28020036020020034198016a41206a221e201d29030037030020034198016a41186a221d201c29030037030020034198016a41106a221c201b29030037030020034198016a41086a221b2020290300370300200320032903f80137039801201a201f29030037030020082019290300370300200c20182903003703002010201729030037030020012016290300370300200320032903c8013703e8032013201b290300370300200b201c290300370300200e201d2903003703002014201e29030037030020034180036a41286a221620042802003602002003200329039801370380030240024020062007470d00200741016a22042007490d03200741017422172004201720044b1b22044104200441044b1bad42e0007e220d422088a7454103742104200da721170240024020070d00200341003602a8020c010b200341083602b002200320093602a8022003200741e0006c3602ac020b200341f8016a20172004200341a8026a107d200328028002210420032802f8014101460d0120032802fc012109200441e0006e21070b2009200641e0006c6a220420032903e8033703002001290300210d201a290300210f20082903002111200c29030021122010290300212120042005360230200441206a2021370300200441186a2012370300200441106a2011370300200441086a200f370300200441286a200d370300200441346a2003290380033702002004413c6a2013290300370200200441c4006a200b290300370200200441cc006a200e290300370200200441d4006a2014290300370200200441dc006a2016280200360200200641016a21062003280288012201200328028c012208470d010c040b0b20040d060b1038000b200441386a21010b200820016b220441386d210502402004450d00200541386c21052001412c6a210403400240200428020041ffffff3f71450d002004417c6a280200102e0b200441386a2104200541486a22050d000b0b2003280284012204450d02200441386c450d02200328028001102e0c020b200441386a21010b201420016b220441386d210502402004450d00200541386c21052001412c6a210403400240200428020041ffffff3f71450d002004417c6a280200102e0b200441386a2104200541486a22050d000b0b410821094100210602402007450d00200741386c450d002002102e0b410021070b200020032903183702002000200936020c200041146a2006360200200041106a2007360200200041086a200341186a41086a280200360200200341086a10bc02200341d0046a24000f0b1036000ba10b05047f027e0b7f037e017f230041f0016b220324002002412c6a2802002104200241306a28020021052002280228210620022903002107200341186a200241206a290000370300200341106a200241186a290000370300200341086a200241106a2900003703002003200229000837030002400240024002400240024002402005ad42d8007e2208422088a70d002008a72202417f4c0d000240024020020d00410821090c010b2002102c2209450d020b200241d8006e210a024020050d004100210b0c070b200620054105746a210c20034188016a41046a210d4100210b2006210e0340200341206a41086a220f200e41086a290000370300200341206a41106a2210200e41106a290000370300200341206a41186a2211200e41186a2900003703002003200e290000370320200b41d8006c2102200e41206a210e2009210502400240024003402002450d01200241a87f6a2102200541346a2112200541d8006a21052012200341206a412010ec080d000c020b0b2001280200200341206a10a0022202450d00200128020422052802082213200228020022124d0d05200528020020124102746a28020022122802080d062012417f3602082012427f2012290330220820077c221420142008542205201241386a221329030022152005ad7c2216201554201420085a1b22051b3703302013427f201620051b370300200341e0006a41186a22132011290300370300200341e0006a41106a22112010290300370300200341e0006a41086a2210200f2903003703002003200329032037036020012802042205280208220f200228020022024d0d07200528020020024102746a280200220f28020041016a220241014d0d08200f2002360200200d410041e40010eb081a41f800102c2205450d042005410036020820054281808080103703002005410c6a20034188016a41e80010e9081a200541003a0074200520032f0085013b0075200541f7006a20034185016a41026a2d00003a0000200341c0006a41086a22172010290300370300200341c0006a41106a22102011290300370300200341c0006a41186a22112013290300370300200320032903603703400240200b200a470d00200b41016a2202200b490d04200b41017422132002201320024b1b22024104200241044b1bad42d8007e2208422088a74541037421022008a7211302400240200b0d0020034100360288010c010b200341083602900120032009360288012003200b41d8006c36028c010b200341e0006a2013200220034188016a107d2003280268210220032802604101460d0220032802642109200241d8006e210a0b2009200b41d8006c6a220242003703002002200f360230200241186a4200370300200241106a4200370300200241086a4200370300200241206a4200370300200241286a4200370300200220032903403702342002413c6a2017290300370200200241c4006a2010290300370200200241cc006a201129030037020020052005280200417f6a2202360200024020020d00200541046a22022002280200417f6a220236020020020d002005102e0b200b41016a210b2012201228020841016a3602080b200e200c460d080c010b0b20020d010b1038000b1036000b20122013418884c500103c000b4194dacc00411020034188016a41e4ffc400419884c500103e000b2002200f41a884c500103c000b00000b0240200441ffffff3f71450d002006102e0b02400240200b0d0020004100360230200a450d01200a41d8006c450d012009102e0c010b200042013703202000420037031020004200370308200020073703002000200a36023420002009360230200041286a4200370300200041186a4200370300200041386a200b3602002000413c6a2003290300370000200041c4006a200341086a290300370000200041cc006a200341106a290300370000200041d4006a200341186a2903003700000b200341f0016a24000bf60805077f027e047f037e027f230041306b2202240002400240024002400240024002400240200141386a2802002203450d002001280230220441d8006a21052004200341d8006c22066a21070340200541586a2802002203280208220441016a41004c0d04200541486a22082903002109200841086a290300210a20032004360208200341f4006a2d00004101460d02200541d8006a2105200641a87f6a22060d000b0b4100210620024100360220200242083703184108210b0c010b024002404110102c220b450d00200b2009370300200b200a3703084101210641012108034020052007460d02200541306a2802002203280208220441016a41004c0d05200541286a2903002109200541206a290300210a20032004360208200541d8006a22042105200341f4006a2d00004101470d000240024020082006470d00200641016a22052006490d08200641017422032005200320054b1b22054104200541044b1b220541ffffffff00712005464103742103200541047421050240024020060d00200241003602080c010b200241083602102002200b3602082002200641047436020c0b200241186a20052003200241086a107d2002280220210520022802184101460d01200228021c210b200541047621060b200b20084104746a220520093703082005200a370300200841016a2108200421050c010b0b2005450d050b1036000b200220083602202002200636021c2002200b3602180b200241086a200241186a2001290300200141086a29030010bc040240024020022802084101470d00200241086a41086a2802002105200228020c21030c010b20012802302204200128023841d8006c6a2108200228020c220c200241146a2802004104746a210d200241086a41086a280200210e200c210702400340200820042205460d01200541306a2802002203280208220441016a41004c0d0620032004360208200541d8006a2104200341f4006a2d0000450d002007200d460d01200541d8006a220441586a28020022052802080d07200741086a29030021092007290300210a2005417f360208200542002005290340220f200441486a220129030022107d22112011200f56200541c8006a22032903002211200141086a22122903007d200f201054ad7d220f201156200f2011511b22131b37034020034200200f20131b370300201220093703002001200a3703002005200528020841016a3602082005427f200a2005290340220f7c220a200a200f54220120092003290300220a7c2001ad7c2209200a542009200a511b22011b3703402003427f200920011b370300200741106a21070c000b0b410021030240200e41ffffffff0071450d00200c102e0b0b0240200641ffffffff0071450d00200b102e0b2000200536020420002003360200200241306a24000f0b41bcd9cc004118200241286a41c4ffc40041e883c500103e000b41bcd9cc004118200241286a41c4ffc40041e883c500103e000b1038000b41bcd9cc004118200241286a41c4ffc40041d4ffc400103e000b4194dacc004110200241286a41e4ffc40041f4ffc400103e000bdb3609057f027e017f027e037f067e0e7f017e077f230041e0006b22042400200128020022052001280208220641047422076a210842002109410021014200210a02400240024002400340024020072001470d0020060d02200042808080808001370200200041086a42003702000c030b200a200520016a220b41086a2903007c2009200b2903007c220c200954220bad7c220d200a51210e200d200a54210f200141106a2101200c2109200d210a200b200f200e1b4101470d000b200041b4d2cc0036020420004101360200200041086a411e3602000c010b0240200220092009200254200a200354200a200351220b1b22101b220d2009200220101b220c7d22112003200a20101b200a200320101b7d200d200c54ad7d2212844200520d00200641ffffffff00712006470d0320064104742201417f4c0d032001102c220b450d02200b2005200641047410e90821052000410c6a2006360200200041086a200141047636020020002005360204200041003602000c010b200441286a201120122006ad2213420010e708200441186a201120122013420010e608201342187e220d422088a70d02200da72201417f4c0d02200441186a41086a2903002114200441286a41086a29030021152004290318210c200429032821162001102c2217450d0102400240024002400240024002400240024002400240024002400240024002400240024002400240200141186e221820064f0d00200441386a41086a41083602002004201841186c36023c20042017360238200441d0006a201841017422012006200120064b1b22014104200141044b1bad42187e220da7200d422088a745410374200441386a107d200441d0006a41086a280200210120042802504101460d0120042802542117200141186e21180b20052008460d042006410474210b410021192017210103402005290300210a200141106a200541086a290300370300200141086a200a37030020012019360200200141186a2101201941016a2119200541106a2105200b41706a220b0d000b201941144b0d01201941014d0d0620172019417f6a220b41186c6a21084100210e03402019200b2201417f6a220b490d0402402019200b6b221a4102490d002017200141186c6a220141086a220f2903002017200b41186c6a220541086a2207290300220d5a200141106a221b2903002209200541106a221c290300220a5a2009200a511b0d002005280200211d200520012903003703002007200f290300370300201c201b2903003703000240201a4103490d00200e417f6a211b41002105200821010340200141206a220f290300200d5a200141286a22072903002209200a5a2009200a511b0d01201b2005460d06200141106a2007290300370300200141086a200f2903003703002001200141186a220f290300370300200f2101200e2005417f6a2205470d000b200f21010b2001200d3703082001201d360200200141106a200a3703000b200841686a2108200e417f6a210e200b0d000c070b0b20010d130c140b2019410176ad42187e220a422088a70d13200aa7221e417f4c0d13201e102c221f450d12201741686a2120201741406a212141042122410021234100211c20192124034020242108410021244101210702402008417f6a220e450d0002400240024002400240024002402017200e41186c6a220141086a290300200841186c221b20176a41586a2205290300220954200141106a290300220d200541086a290300220a54200d200a511b0d002008417e6a21072021201b6a210141002124410021050340024020072005470d00200821070c090b2009200129030022255a210b200a200141086a290300220d51210e200a200d5a210f200141686a2101200541016a210520252109200d210a200b200f200e1b0d000b200541016a21072005417f7320086a210e0c010b2021201b6a2101024003400240200e4101470d004100210e0c020b200920012903002225542105200a200141086a290300220d51210b200a200d54210f200141686a2101200e417f6a210e20252109200d210a2005200f200b1b0d000b0b2008200e490d01200820194b0d022008200e6b2207410176220b450d002017200e41186c6a21012020201b6a21050340200441386a41106a220f200141106a221b290300370300200441386a41086a221a200141086a221d29030037030020042001290300370338200541106a2226290300210a200541086a2227290300210920012005290300370300201d2009370300201b200a3703002026200f2903003703002027201a29030037030020052004290338370300200141186a2101200541686a2105200b417f6a220b0d000b0b0240200e0d00200e21240c060b0240200741094d0d00200e21240c060b200820194b0d03200e20086b210b2017200e41186c6a211b03402008200e417f6a2224490d050240200820246b22074102490d002017200e41186c6a220141086a220e2903002017202441186c6a220541086a220f290300220d5a200141106a221a2903002209200541106a221d290300220a5a2009200a511b0d002005280200212620052001290300370300200f200e290300370300201d201a290300370300024020074103490d0041012105201b21010340200141206a220e290300200d5a200141286a220f2903002209200a5a2009200a511b0d01200b20056a4101460d06200141106a200f290300370300200141086a200e2903003703002001200141186a220e290300370300200e2101200b200541016a22056a0d000b200e21010b2001200d37030820012026360200200141106a200a3703000b2024450d06201b41686a211b200b417f6a210b2024210e2007410a4f0d060c000b0b200e200841e4d1cc001057000b2008201941e4d1cc00104d000b2005200741d4d1cc00103c000b2008200e417f6a2224490d002008201941f4d1cc00104d000b2024200841f4d1cc001057000b02400240024002400240201c2023460d00201c21010c010b202341016a22012023490d18202341017422052001200520014b1b22014104200141044b1b220141ffffffff01712001464102742105200141037421010240024020230d00200441003602380c010b20044104360240200420223602382004202341037436023c0b200441d0006a20012005200441386a107d2004280258210520042802504101460d012004280254212220232101200541037621230b202220014103746a2201200736020420012024360200201c41016a2228211c202841024f0d010c020b2005450d160c150b0240024002400340024002400240024020222028221c417f6a22284103746a2201280200450d00201c41037420226a220f41746a280200220e200128020422054d0d00201c41024d0d082022201c417d6a22014103746a280204220b2005200e6a4d0d01201c41034d0d08200f41646a280200200b200e6a4b0d080c010b201c4103490d01200128020421052022201c417d6a22014103746a280204210b0b200b2005490d010b201c417e6a21010b0240201c200141016a22294d0d00201c20014d0d02202220014103746a2226280204222a20262802006a2201202220294103746a2227280200222b490d03200120194b0d04202641046a212c2017202b41186c6a221a2027280204221d41186c22056a210b200141186c210f024002402001202b6b2207201d6b2201201d490d00201f201a200510e908221b20056a210e02400240201d4101480d002007201d4a0d010b201a2101201b21050c020b2017200f6a2108201b2105201a210103402001200b2005200b41086a290300200541086a29030054200b41106a290300220a200541106a290300220954200a2009511b220f1b2207290300370300200141086a200741086a290300370300200141106a200741106a2903003703002005200541186a200f1b2105200141186a2101200b41186a200b200f1b220b20084f0d02200e20054b0d000c020b0b201f200b200141186c220510e908220720056a210e02400240201d4101480d00200141014e0d010b200b2101200721050c010b2020200f6a210f200b21010340200f200141686a2208200e41686a221b200e41706a2205290300200141706a220b29030054200541086a290300220a200b41086a290300220954200a2009511b22051b220b290300370300200f41086a200b41086a290300370300200f41106a200b41106a290300370300200e201b20051b210e0240201a2008200120051b2201490d00200721050c020b200f41686a210f200721052007200e490d000b0b20012005200e20056b220b200b4118706b10e9081a202c202a201d6a3602002026202b3602002027202741086a201c2029417f736a41037410ea081a4101211c202841014d0d050c010b0b2029201c4184d2cc00103c000b2001201c4194d2cc00103c000b202b200141a4d2cc001057000b2001201941a4d2cc00104d000b2024450d040c000b0b410120056b201a41d4d1cc00103c000b200b201941c4d1cc001056000b0240200920025a200a20035a200b1b0d004101210f410021190c030b41d2d2cc00413f4194d3cc00105d000b0240202341ffffffff0171450d002022102e0b201e4118702101201e4118490d00201e2001460d00201f102e0b2019411549210f20100d002006417f6a210b201741106a290300212520172903082102201120135441002012501b450d01200c2109200b21010c020b200441086a200220032013420010e70841002101200441086a41086a290300210d200429030821030240201120135441002012501b0d00410021012006210b0340201920014d0d0a2017200141186c6a2205290308220a20167c2209200a54220e200541106a290300222520157c200ead7c220a202554200a2025511b4101460d09200541086a220520093703002005200a37030802402009200354200a200d54200a200d511b0d00200141016a20067021010b200b417f6a220b0d000b0b200c201484500d020340201920014d0d072017200141186c6a2205290308222542017c220a202554220b200541106a2903002216200bad7c2209201654200a20255a1b4101460d06200541086a2205200a370300200520093703080240200a2003542009200d542009200d511b0d00200141016a20067021010b200c427f7c220a200c542105200a210c200a20142005ad7c427f7c22148450450d000c030b0b200b21010340201920014d0d042017200141186c6a220542002005290308220a20167d22032003200a56200541106a220e290300220920157d200a201654ad7d220d200956200d2009511b22051b200320051b2203370308200e4200200d20051b200d20051b220d3703002001200b2001417f6a220e200e20014b1b2003200256200d202556200d2025511b1b21012014201520097d2016200a54ad7d420020051b7c200c2016200a7d420020051b7c2209200c54ad7c21142009210c2006417f6a22060d000b0b2009201484500d002009210c0340201920014d0d02024002402017200141186c6a2205290308220a427f7c2216200a56200541106a2903002203200a50ad7d220d200356200a4200521b4101470d00200b2001417f6a2205200520014b1b21010c010b200541086a220520163703002005200d3703082001200b2001417f6a2205200520014b1b2016200256200d202556200d2025511b1b210120142009427f7c220c200954ad7c427f7c2114200c21090b200c2014844200520d000b0b024002400240200f450d00201941014d0d0a20172019417f6a220e41186c6a21084100210f03402019200e2201417f6a220e490d0302402019200e6b221a4102490d002017200141186c6a22012802002017200e41186c6a220528020022074f0d00200520012903003703002005290308210a200541086a200141086a290300370300200541106a220529030021092005200141106a2903003703000240201a4103490d00200f417f6a211b41002105200821010340200141186a220b28020020074f0d01201b2005460d05200141106a200141286a290300370300200141086a200141206a2903003703002001200b290300370300200b2101200f2005417f6a2205470d000b200b21010b2001200a37030820012007360200200141106a20093703000b200841686a2108200f417f6a210f200e0d000c0b0b0b2019410176ad42187e220a422088a70d0c200aa72210417f4c0d0c2010102c221f450d0b201741686a2123201741b87f6a212041042122410021064100211c20192124034020242108410021244101210702402008417f6a220b450d0002400240024002400240024002402017200b41186c6a280200200841186c221b20176a41506a2802002201490d002008417e6a21072020201b6a210b41002124410021050340024020072005470d00200821070c090b200541016a21052001200b280200220e4f210f200b41686a210b200e2101200f0d000b200541016a21072005417f7320086a210b0c010b2020201b6a2105024003400240200b4101470d004100210b0c020b200b417f6a210b20012005280200220e49210f200541686a2105200e2101200f0d000b0b2008200b490d01200820194b0d022008200b6b2207410176220e450d002017200b41186c6a21012023201b6a21050340200441386a41106a220f200141106a221b290300370300200441386a41086a221a200141086a221d29030037030020042001290300370338200541106a2226290300210a200541086a2227290300210920012005290300370300201d2009370300201b200a3703002026200f2903003703002027201a29030037030020052004290338370300200141186a2101200541686a2105200e417f6a220e0d000b0b0240200b0d00200b21240c060b0240200741094d0d00200b21240c060b200820194b0d03200b20086b210e2017200b41186c6a211b03402008200b417f6a2224490d050240200820246b22074102490d002017200b41186c6a22012802002017202441186c6a2205280200220f4f0d00200520012903003703002005290308210a200541086a200141086a290300370300200541106a220529030021092005200141106a290300370300024020074103490d0041012105201b21010340200141186a220b280200200f4f0d01200e20056a4101460d06200141106a200141286a290300370300200141086a200141206a2903003703002001200b290300370300200b2101200e200541016a22056a0d000b200b21010b2001200a3703082001200f360200200141106a20093703000b2024450d06201b41686a211b200e417f6a210e2024210b2007410a4f0d060c000b0b200b200841e4d1cc001057000b2008201941e4d1cc00104d000b2005200741d4d1cc00103c000b2008200b417f6a2224490d002008201941f4d1cc00104d000b2024200841f4d1cc001057000b02400240024002400240201c2006460d00201c21010c010b200641016a22012006490d11200641017422052001200520014b1b22014104200141044b1b220141ffffffff01712001464102742105200141037421010240024020060d00200441003602380c010b20044104360240200420223602382004200641037436023c0b200441d0006a20012005200441386a107d2004280258210520042802504101460d012004280254212220062101200541037621060b202220014103746a2201200736020420012024360200201c41016a2228211c202841024f0d010c020b2005450d0f0c0e0b0240024002400340024002400240024020222028221c417f6a22284103746a2201280200450d00201c41037420226a220f41746a280200220e200128020422054d0d00201c41024d0d082022201c417d6a22014103746a280204220b2005200e6a4d0d01201c41034d0d08200f41646a280200200b200e6a4b0d080c010b201c4103490d01200128020421052022201c417d6a22014103746a280204210b0b200b2005490d010b201c417e6a21010b0240201c200141016a22294d0d00201c20014d0d02202220014103746a2226280204222a20262802006a2201202220294103746a2227280200222b490d03200120194b0d04202641046a212c2017202b41186c6a221a2027280204221d41186c22056a210b200141186c210f024002402001202b6b2207201d6b2201201d490d00201f201a200510e908221b20056a210e02400240201d4101480d002007201d4a0d010b201a2101201b21050c020b2017200f6a2108201b2105201a210103402001200b2005200b280200200528020049220f1b2207290300370300200141106a200741106a290300370300200141086a200741086a2903003703002005200541186a200f1b2105200141186a2101200b41186a200b200f1b220b20084f0d02200e20054b0d000c020b0b201f200b200141186c220510e908221b20056a210e02400240201d4101480d00200141014e0d010b200b2101201b21050c010b2023200f6a210f200b21010340200f200141686a2205200e41686a220b200b28020020052802004922071b2208290300370300200f41106a200841106a290300370300200f41086a200841086a290300370300200e200b20071b210e0240201a2005200120071b2201490d00201b21050c020b200f41686a210f201b2105201b200e490d000b0b20012005200e20056b220b200b4118706b10e9081a202c202a201d6a3602002026202b3602002027202741086a201c2029417f736a41037410ea081a4101211c202841014d0d050c010b0b2029201c4184d2cc00103c000b2001201c4194d2cc00103c000b202b200141a4d2cc001057000b2001201941a4d2cc00104d000b2024450d090c000b0b410120056b201a41d4d1cc00103c000b200e201941c4d1cc001056000b20012019419cd4cc00103c000b20012019418cd4cc00103c000b41b4d3cc00412641fcd3cc00105d000b2001201941ecd3cc00103c000b41b4d3cc00412641dcd3cc00105d000b2001201941a4d3cc00103c000b0240200641ffffffff0171450d002022102e0b2010411870210120104118490d0020102001460d00201f102e0b201941186c41186d220141ffffffff00712001470d0220014104742205417f4c0d020240024020050d004108210e0c010b2005102c220e450d020b02400240024002402005410476220f20014f0d002005410376220b2001200b20014b1b22014104200141044b1b220141ffffffff0071200146410374210b200141047421010240024020050d00200441003602380c010b200441386a41086a41083602002004200536023c2004200e3602380b200441d0006a2001200b200441386a107d200441d8006a280200210120042802504101460d012004280254210e2001410476210f0b20190d01410021010c020b2001450d040c030b201741086a2101201941186c220b41686a41186e2107200e210503402001290300210a2005200141086a2903003703082005200a370300200141186a2101200541106a2105200b41686a220b0d000b200741016a21010b02402018450d00201841186c450d002017102e0b2000200e360204200041003602002000410c6a2001360200200041086a200f3602000b200441e0006a24000f0b1036000b1038000bb50b020d7f047e23004190026b220424002004200337036820042002370360200128020021052001280204210602400240024002400240024020012802082207450d002005200741226c22086a2109200441d0006a2002200342ffff03420010e608200441c0006a2002200342ffff03420010e708200441c0006a41086a2903002102200429034021032004280250210a200521070340200741206a2f0100210b200441f0016a41186a200741186a290000370300200441f0016a41106a200741106a290000370300200441f0016a41086a200741086a290000370300200420072900003703f001200b0d02200741226a21072008415e6a22080d000b0b20004100360208200042083702002006450d01200641226c450d012005102e0c010b200441306a20032002200bad420010e80820044190016a41086a200441f0016a41086a2903002202370300200441f0006a41186a220c200441f0016a41186a290300370300200441f0006a41106a220d200441f0016a41106a290300370300200441f0006a41086a220e2002370300200420042903f00122023703900120042002370370200a200b6c220b41ffff036e210a200b41ffff0370210f20042903302102200441306a41086a29030021034130102c2210450d0220102002200a417f200b4180807c491b200f41ffff014b6aad42ffff03837c221137032020102004290370370300201041286a20032011200254ad7c370300201041186a200c290300370300201041106a200d290300370300201041086a200e2903003703002004200936027c2004200741226a220736027820042006360274200420053602702004200441e0006a360280010240024020084122470d004101210d4101210c0c010b4101210d4101210c03402004200741226a220b360278200741206a2f01002108200441f0016a41186a2205200741186a290000370300200441f0016a41106a2206200741106a290000370300200441f0016a41086a220a200741086a290000370300200420072900003703f001024020080d00200b21072009200b470d010c020b200441206a20042802800122072903002202200741086a290300220342ffff03420010e608200441106a2002200342ffff03420010e70820042004290310200441106a41086a2903002008ad420010e80820044190016a41086a2207200a29030037030020044190016a41106a220b200629030037030020044190016a41186a22092005290300370300200420042903f00122023703b0012004200237039001200520092903003703002006200b290300370300200a200729030037030020042004290390013703f001200428022020086c220b41ffff036e2108200b41ffff0370210920042903002102200441086a29030021030240200c200d470d00200d41016a2207200d490d06200d410174220e2007200e20074b1b22074104200741044b1bad42307e2211422088a74541037421072011a7210e02400240200d0d00200441003602d0010c010b200441083602d801200420103602d0012004200d41306c3602d4010b200441b0016a200e2007200441d0016a107d20042802b801210720042802b0014101460d0420042802b4012110200741306e210d0b2010200c41306c6a220720042903f0013703002006290300211120052903002112200a2903002113200720022008417f200b4180807c491b200941ffff014b6aad42ffff03837c2214370320200741086a2013370300200741286a20032014200254ad7c370300200741186a2012370300200741106a2011370300200c41016a210c20042802782207200428027c2209470d000b0b024020042802742207450d00200741226c450d002004280270102e0b2000200c3602082000200d360204200020103602000b2000200129020c37020c200041246a200141246a2902003702002000411c6a2001411c6a290200370200200041146a200141146a29020037020020044190026a24000f0b2007450d010b1036000b1038000b9e3203187f017e0f7f230041206b2202240002402001280208220320036a22042003490d002001280200210502400240024020040d00410221060c010b2004102c2206450d010b02400240024002402004410176220720034f0d0020042003200420034b1b22084104200841044b1b220820086a220920084f41017421080240024020040d00200241003602100c010b200241186a410236020020022004360214200220063602100b200220092008200241106a107d200241086a280200210420022802004101460d0120022802042106200441017621070b20052005200341226c6a470d01410021040c020b20040d020c030b200541206a2104200341226c2205415e6a41226e2108200621030340200320042f01003b0100200441226a2104200341026a21032005415e6a22050d000b200841016a21040b4101450d0120044102742203417f4c0d010240024020030d004104210a0c010b2003102c220a450d010b0240024002402003410276220b20044f0d00200341017622052004200520044b1b22054104200541044b1b41027421050240024020030d00200241003602100c010b200241186a4104360200200220033602142002200a3602100b200220054104200241106a107d200241086a2802002103024020022802004101460d002002280204210a2003410276210b0c020b2003450d040c030b20040d004100210c0c010b20044101742205417e6a4101762108200a2104200621030340200420032f0100360200200441046a2104200341026a21032005417e6a22050d000b200841016a210c0b200a200c41027422046a21094100210d200a2103024002400240024002400340024020040d000240200c0d004100210e4104210f4100210c0c050b024041ffff03200d200d41ffff034922041b200d41ffff0320041b6b22100d00200c41ffffffff0371200c470d09200c4102742204417f4c0d092004102c220f450d08200f200a200c41027410e9081a2004410276210e0c050b2010200c7021112010200c6e21122009200a6b2204410276220341ffffffff01712003470d0820044101742204417f4c0d080240024020040d00410421130c010b2004102c2213450d080b02400240024002402004410376221420034f0d00200441027622052003200520034b1b22034104200341044b1b220341ffffffff01712003464102742105200341037421030240024020040d00200241003602100c010b200241186a410436020020022004360214200220133602100b200220032005200241106a107d200241086a280200210420022802004101460d0120022802042113200441037621140b200c4102742208417c6a221541027621164100210320132104200a21050340200441046a200528020036020020042003360200200441086a2104200341016a2103200541046a21052008417c6a22080d000b201641016a21170240201541cf004b0d002015450d07201320164103746a2118201741037420136a41786a210e41002108201621050340201720052204417f6a2205490d040240201720056b22194102490d00201320044103746a220441046a280200201320054103746a220341046a2802004f0d002003290200211a20032004290200370200024020194103490d00201a422088a7210f2008417f6a211b41002103200e210403402004410c6a280200200f4f0d01201b2003460d062004200441086a22092902003702002009210420082003417f6a2203470d000b201821040b2004201a3702000b2008417f6a2108200e41786a210e20050d000c080b0b2017410176220441ffffffff01712004470d0b2004410374221c417f4c0d0b201c102c221d450d0a201341786a211e2013416c6a211f4104212041002121410021192017212203402022210f41002122410121090240200f417f6a2204450d000240024002400240024002400240201320044103746a41046a280200200f410374221820136a41746a2802002203490d00200f417e6a210e201f20186a2105410021224100210403400240200e2004470d00200f21090c090b200441016a21042003200528020022084f2109200541786a21052008210320090d000b200441016a21092004417f73200f6a21040c010b201f20186a210502400340024020044101470d00410021040c020b2004417f6a2104200320052802002208492109200541786a21052008210320090d000b0b200f2004490d01200f20174b0d02200f20046b22094101762208450d00201320044103746a2103201e20186a210503402003290200211a200320052902003702002005201a370200200341086a2103200541786a21052008417f6a22080d000b0b024020040d00200421220c060b0240200941094d0d00200421220c060b200f20174b0d03200f20046b2105201320044103746a211b201e20186a21230340200f2004417f6a2222490d050240200f20226b22094102490d00201320044103746a220441046a280200201320224103746a220341046a2802004f0d002003290200211a20032004290200370200024020094103490d00201a422088a7210e2005417f6a211841002103201b210403402004410c6a280200200e4f0d0120052003460d062004200441086a2208290200370200200821042018200341016a2203470d000b202321040b2004201a3702000b2022450d06200541016a2105201b41786a211b202221042009410a4f0d060c000b0b2004200f41e4d1cc001057000b200f201741e4d1cc00104d000b200341016a200941d4d1cc00103c000b200f2004417f6a2222490d00200f201741f4d1cc00104d000b2022200f41f4d1cc001057000b0240024002400240024020192021460d00201921040c010b202141016a22042021490d10202141017422032004200320044b1b22044104200441044b1b220441ffffffff01712004464102742103200441037421040240024020210d00200241003602100c010b2002410436021820022020360210200220214103743602140b200220042003200241106a107d2002280208210320022802004101460d012002280204212020212104200341037621210b202020044103746a2204200936020420042022360200201941016a22242119202441024f0d010c020b2003450d0e0c0d0b02400240024003400240024002400240202020242219417f6a22244103746a2204280200450d00201941037420206a220941746a2802002208200428020422034d0d00201941024d0d0820202019417d6a22044103746a2802042205200320086a4d0d01201941034d0d08200941646a280200200520086a4b0d080c010b20194103490d012004280204210320202019417d6a22044103746a28020421050b20052003490d010b2019417e6a21040b02402019200441016a22254d0d00201920044d0d02202020044103746a2223280204222620232802006a2204202020254103746a22272802002228490d03200420174b0d04202341046a2129201320284103746a221b2027280204221841037422036a21082004410374210902400240200420286b220f20186b22042018490d00201d201b200310e908220420036a21050240024020184101480d00200f20184a0d010b201b2103200421040c020b201320096a210f20042104201b21030340200320082004200841046a280200200441046a2802004922091b2902003702002004200441086a20091b2104200341086a2103200841086a200820091b2208200f4f0d02200520044b0d000c020b0b201d20082004410374220310e908220f20036a21050240024020184101480d00200441014e0d010b20082103200f21040c010b201e20096a21092008210303402009200341786a2208200541786a220e2005417c6a2802002003417c6a2802004922041b2902003702002005200e20041b21050240201b2008200320041b2203490d00200f21040c020b200941786a2109200f2104200f2005490d000b0b20032004200520046b41787110e9081a2029202620186a360200202320283602002027202741086a20192025417f736a41037410ea081a41012119202441014d0d050c010b0b202520194184d2cc00103c000b200420194194d2cc00103c000b2028200441a4d2cc001057000b2004201741a4d2cc00104d000b2022450d060c000b0b2004450d0a0c090b410120036b201941d4d1cc00103c000b2005201741c4d1cc001056000b2004417c6a2104200d20032802006a2205200d492108200341046a21032005210d2008450d000b0240200b450d00200a102e0b411e210e41b4d2cc0021040c030b0240202141ffffffff0171450d002020102e0b201c450d00201d102e0b0240024002400240024002400240024002400240200d41feff034b0d0041ffff03200c6e2109410021040240200c20104b0d0041002104200c2105034020162004490d09201320044103746a2208280204220f20126a2203200f490d08200841046a2003360200024020032009490d00200441016a200c7021040b2005417f6a22050d000b0b2011450d01034020162004490d06201320044103746a2205280204220841016a22032008490d05200541046a2003360200024020032009490d00200441016a200c7021040b2011417f6a22110d000c020b0b200c417f6a21092013280204210e02400240200c20104d0d00200921040c010b20092104034020162004490d04201320044103746a220341002003280204220320126b2205200520034b22081b200520081b2205360204200420092004417f6a220f200f20044b1b2005200e4b1b21042011201220036b410020081b6a2111200c417f6a220c0d000b0b2011450d00034020162004490d0202400240201320044103746a22082802042203417f6a220520034d0d0020092004417f6a2203200320044b1b21040c010b200841046a2005360200200420092004417f6a2203200320044b1b2005200e4b1b21042011417f6a21110b20110d000b0b024002400240201541cf004b0d002015450d0a201320164103746a2119201741037420136a41786a210f410021080340201720162204417f6a2216490d030240201720166b221b4102490d00201320044103746a2204280200201320164103746a22032802004f0d002003290200211a200320042902003702000240201b4103490d00201aa721092008417f6a210e41002103200f21040340200441086a220528020020094f0d01200e2003460d05200420052902003702002005210420082003417f6a2203470d000b201921040b2004201a3702000b2008417f6a2108200f41786a210f20160d000c0b0b0b2017410176220441ffffffff01712004470d0e2004410374220c417f4c0d0e200c102c2229450d0d201341786a211d201341686a21114104212041002116410021192017212203402022210f41002122410121090240200f417f6a2204450d000240024002400240024002400240201320044103746a280200200f410374221820136a41706a2802002203490d00200f417e6a210e201120186a2105410021224100210403400240200e2004470d00200f21090c090b200441016a21042003200528020022084f2109200541786a21052008210320090d000b200441016a21092004417f73200f6a21040c010b201120186a210502400340024020044101470d00410021040c020b2004417f6a2104200320052802002208492109200541786a21052008210320090d000b0b200f2004490d01200f20174b0d02200f20046b22094101762208450d00201320044103746a2103201d20186a210503402003290200211a200320052902003702002005201a370200200341086a2103200541786a21052008417f6a22080d000b0b024020040d00200421220c060b0240200941094d0d00200421220c060b200f20174b0d03200f20046b2108201320044103746a211b201d20186a21230340200f2004417f6a2222490d050240200f20226b22094102490d00201320044103746a2204280200201320224103746a22032802004f0d002003290200211a20032004290200370200024020094103490d00201aa7210e2008417f6a211841002103201b21040340200441086a2205280200200e4f0d0120082003460d0620042005290200370200200521042018200341016a2203470d000b202321040b2004201a3702000b2022450d06200841016a2108201b41786a211b202221042009410a4f0d060c000b0b2004200f41e4d1cc001057000b200f201741e4d1cc00104d000b200341016a200941d4d1cc00103c000b200f2004417f6a2222490d00200f201741f4d1cc00104d000b2022200f41f4d1cc001057000b0240024002400240024020192016460d00201921040c010b201641016a22042016490d13201641017422032004200320044b1b22044104200441044b1b220441ffffffff01712004464102742103200441037421040240024020160d00200241003602100c010b2002410436021820022020360210200220164103743602140b200220042003200241106a107d2002280208210320022802004101460d012002280204212020162104200341037621160b202020044103746a2204200936020420042022360200201941016a22242119202441024f0d010c020b2003450d110c100b02400240024003400240024002400240202020242219417f6a22244103746a2204280200450d00201941037420206a220941746a2802002208200428020422034d0d00201941024d0d0820202019417d6a22044103746a2802042205200320086a4d0d01201941034d0d08200941646a280200200520086a4b0d080c010b20194103490d012004280204210320202019417d6a22044103746a28020421050b20052003490d010b2019417e6a21040b02402019200441016a220d4d0d00201920044d0d02202020044103746a2223280204222520232802006a22042020200d4103746a22272802002228490d03200420174b0d04202341046a2126201320284103746a221b2027280204221841037422036a21052004410374210902400240200420286b220f20186b22042018490d002029201b200310e908220420036a21080240024020184101480d00200f20184a0d010b201b2103200421040c020b201320096a210f20042104201b21030340200320052004200528020020042802004922091b2902003702002004200441086a20091b2104200341086a2103200541086a200520091b2205200f4f0d02200820044b0d000c020b0b202920052004410374220310e908220e20036a21080240024020184101480d00200441014e0d010b20052103200e21040c010b201d20096a210f200521030340200f200341786a2204200841786a2205200528020020042802004922091b2902003702002008200520091b21080240201b2004200320091b2203490d00200e21040c020b200f41786a210f200e2104200e2008490d000b0b20032004200820046b41787110e9081a2026202520186a360200202320283602002027202741086a2019200d417f736a41037410ea081a41012119202441014d0d050c010b0b200d20194184d2cc00103c000b200420194194d2cc00103c000b2028200441a4d2cc001057000b2004201741a4d2cc00104d000b2022450d090c000b0b410120036b201b41d4d1cc00103c000b2016201741c4d1cc001056000b20042017419cd4cc00103c000b20042017418cd4cc00103c000b41b4d3cc00412641fcd3cc00105d000b2004201741ecd3cc00103c000b41b4d3cc00412641dcd3cc00105d000b2004201741a4d3cc00103c000b0240201641ffffffff0171450d002020102e0b200c450d002029102e0b2017410374410375220441ffffffff03712004470d0420044102742203417f4c0d040240024020030d004104210f0c010b2003102c220f450d040b02402003410276220e20044f0d00200341017622052004200520044b1b22044104200441044b1b220441ffffffff03712004464102742105200441027421040240024020030d00200241003602100c010b200241186a4104360200200220033602142002200f3602100b200220042005200241106a107d200241086a280200210420022802004101460d032002280204210f2004410276210e0b2017410374220541786a4103762108200f2104201321030340200420033502043e0200200441046a2104200341086a2103200541786a22050d000b200841016a210c2014450d002013102e0b200c4102742205410275220320036a22042003490d032004417f4c0d030240024020040d004102211b0c010b2004102c221b450d030b02400240024002402004410176221920034f0d0020042003200420034b1b22034104200341044b1b220320036a220820034f41017421030240024020040d00200241003602100c010b200241186a4102360200200220043602142002201b3602100b200220082003200241106a107d200241086a280200210420022802004101460d012002280204211b200441017621190b200f20056a2209200f470d01410021050c020b2004450d050c040b41002105201b2104200f21030340200420032802002208417f200841808004491b3b0100200541016a2105200441026a21042009200341046a2203470d000b0b0240200e450d00200f102e0b0240200b450d00200a102e0b02402005410174410175220420012802082203200320044b1b2205450d00200128020041206a2104201b21030340200420032f01003b0100200341026a2103200441226a21042005417f6a22050d000b0b410021042019450d00201b102e0b02402007450d002006102e0b2000200e36020420002004360200200241206a24000f0b2004450d010b1036000b1038000be80402087f017e230041306b2204240002400240024002402001280208220541ffffffff00712005470d0020054104742206417f4c0d00200128020021070240024020060d00410821080c010b2006102c2208450d040b41002109200441003602182004200836021020042006410476220a36021402400240200a20054f0d002006410376220a2005200a20054b1b220a4104200a41044b1b220a41ffffffff0071200a46410374210b200a410474210a0240024020060d00200441003602000c010b200441086a410836020020042006360204200420083602000b200441206a200a200b2004107d200441286a280200210620042802204101460d0120042004280224220836021020042006410476220a3602140b024020072007200541306c6a460d00200741206a2106200541306c220741506a41306e21092008210503402006290300210c2005200641086a2903003703082005200c370300200641306a2106200541106a2105200741506a22070d000b200941016a21090b200420093602182004200441106a2002200310bc0420042802004101470d02200441086a2802002106200428020421050c030b20060d030b1038000b200441086a280200210b2004280204210902402004410c6a280200220620012802082205200520064b1b2207450d00200128020041206a21062009210503402005290300210c2006200541086a2903003703082006200c370300200541106a2105200641306a21062007417f6a22070d000b0b410021050240200b41ffffffff0071450d002009102e0b0b0240200a450d002008102e0b2000200636020420002005360200200441306a24000f0b1036000bee2e0a057f027e077f027e037f027e057f027e127f057e23004180016b2204240002402001450d0041002105034020002802082206450d0120002802002207200641e0006c6a2108420021094200210a0340024002402007280238220b450d00200b41d8006c210c2007280230220d210602400240024002400240024002400240024002400340200641306a280200220e280208220f41016a41004c0d01200641d8006a2110200e200f3602080240200e41f4006a2d00000d0020102106200c41a87f6a220c450d0c0c010b0b4104102c2211450d09201120063602000240200c41d800470d0042002112420021132011102e0c0c0b200d200b41d8006c6a220f41a87f6a210b4101211441012115024002400240024003402010210602400340200641306a280200220e280208220c41016a41004c0d08200e200c3602080240200e41f4006a2d00000d00200f200641d8006a2206470d010c020b0b024020152014470d00201441016a220e2014490d0f2014410174220c200e200c200e4b1b220e4104200e41044b1b220e41ffffffff0371200e46410274210c200e410274210e0240024020140d00200441003602680c010b20044104360270200420113602682004201441027436026c0b200441d8006a200e200c200441e8006a107d2004280260210e20042802584101460d03200428025c2111200e41027621140b200641d8006a2110201120154102746a2006360200201541016a2115200b2006470d010b0b420021124200211320154102490d0320112015410274220b6a2116200b0d0142002117420021180c020b200e450d0b0c0c0b4200211742002118201121060340427f20182006280200220e41286a2903007c2017200e41206a2903007c2213201754220ead7c2217200e201720185420172018511b220e1b2118427f2013200e1b21172016200641046a2206470d000b0b201541ffffffff00712015470d0920154104742206417f4c0d090240024020060d00410821190c010b2006102c2219450d0b0b0240024002402006410476221a20154f0d002006410376220e2015200e20154b1b220e4104200e41044b1b220e41ffffffff0071200e46410374210c200e410474210e0240024020060d00200441003602680c010b200441083602702004200636026c200420193602680b200441d8006a200e200c200441e8006a107d2004280260210620042802584101460d01200428025c21192006410476211a0b4108211b2011201646221c450d014100211d0c090b20060d0b0c0a0b41002110201921062011210c0340200c28020041306a280200220e280208220f41016a41004c0d04200e200f360208200e29034021132006200e41c8006a29030037030820062013370300201041016a2110200641106a21062016200c41046a220c470d000b4100211d201c0d07201121060240034002402006280200220e290320200e41286a29030084500d00200e280230220e280208220c41016a41004a0d0241bcd9cc004118200441f8006a41c4ffc40041f883c500103e000b200641046a2106200b417c6a220b450d090c000b0b200e200c360208200e41c8006a2903002113200e290340211e4110102c221b450d0a200641046a2106201b201e370300201b20133703084101211d4100210f4101210b0240034020162006460d012006280200210e200641046a220c2106200e290320200e41286a29030084500d00200e2802302206280208220e41016a41004c0d062006200e360208200641c8006a29030021132006290340211e02400240200b201d470d00201d41016a2206201d490d0d201d410174220e2006200e20064b1b22064104200641044b1b220641ffffffff0071200646410374210e2006410474210602400240201d0d00200441003602680c010b200441083602702004201b3602682004201d41047436026c0b200441d8006a2006200e200441e8006a107d2004280260210620042802584101460d01200428025c211b2006410476211d0b201b200b4104746a220620133703082006201e370300200f41106a210f200b41016a210b200c21060c010b0b20060d0b0c0a0b200b450d07200b410474450d0502400240200b4101470d00201b210e0c010b201b41106a2106201b210e0340200e2006200e290300200629030056200e41086a2903002213200641086a290300221e562013201e511b1b210e200641106a2106200f41706a220f0d000b0b2010410474220c450d060240024020104101470d002019210c0c010b201941106a2106200c41706a21102019210c03402006200c200c290300200629030056200c41086a2903002213200641086a290300221e562013201e511b1b210c200641106a2106201041706a22100d000b0b427f4200200e2903002213200c29030022127d221e201e201356200e41086a290300221e200c41086a2903007d2013201254ad7d2213201e562013201e511b22061b221f42002007290300221e20177d22122012201e56200741086a290300221220187d201e201754ad7d221820125620182012511b220e1b7c22172017201f54220c4200201320061b221742002018200e1b7c200cad7c221820175420182017511b22061b2212200254427f201820061b221320035420132003511b450d080240201d41ffffffff0071450d00201b102e0b201a450d002019102e0b201441ffffffff0371450d0b2011102e0c0b0b41bcd9cc004118200441f8006a41c4ffc40041d883c500103e000b41bcd9cc004118200441f8006a41c4ffc40041d883c500103e000b41bcd9cc004118200441f8006a41f09cc50041809dc500103e000b41bcd9cc004118200441f8006a41c4ffc40041f883c500103e000b41e580c5004130419881c500105d000b41a881c500413241dc81c500105d000b200741086a2903002113200729030021120b024002400240024002400240201c0d002011210e0340200e28020028023022062802080d022006417f3602082006420020062903402218200e280200220c290320221e7d22172017201856200641c8006a22102903002217200c41286a2903007d2018201e54ad7d221820175620182017511b220c1b370340201042002018200c1b370300200e280200220c4200370320200c41286a42003703002006200628020841016a3602082016200e41046a220e470d000b0b0240201541144b0d00201541014d0d052015417e6a21064102210e201120154102746a41786a210c034020152006490d03200c200e10c104200c417c6a210c200e41016a210e2006417f6a2206417f470d000c060b0b2015410176220641ffffffff03712006470d0520064102742220417f4c0d052020102c2221450d062011417c6a2122201141746a2123410021244104212541002126201521270340024002402027220b417f6a22270d004101210c410021270c010b024002400240024002400240024002400240024002400240201120274102746a28020041306a2802002206280208220e41016a41004c0d002006200e3602082011200b417e6a220d4102746a28020041306a280200220e280208220c41016a41004c0d01200641c8006a290300211820062903402117200e200c3602082017200e290340542018200e41c8006a29030022175420182017511b0d042023200b4102746a2106410021274100211003400240200d2010470d00200b210c0c0e0b200641046a28020041306a280200220e280208220c41016a41004c0d03200e200c360208200628020041306a280200220c280208220f41016a41004c0d04200e41c8006a2903002118200e2903402117200c200f3602082006417c6a2106201041016a21102017200c2903405a2018200c41c8006a29030022175a20182017511b0d000b201041016a210c2010417f73200b6a21270c050b41bcd9cc004118200441f8006a41c4f8c90041ccf9c900103e000b41bcd9cc004118200441f8006a41c4f8c90041ccf9c900103e000b41bcd9cc004118200441f8006a41c4f8c90041ccf9c900103e000b41bcd9cc004118200441f8006a41c4f8c90041ccf9c900103e000b2023200b410274220f6a210602400340024020274101470d00410021270c020b200641046a28020041306a280200220e280208220c41016a41004c0d03200e200c360208200628020041306a280200220c280208221041016a41004c0d04200e41c8006a2903002118200e2903402117200c20103602082006417c6a21062027417f6a21272017200c290340542018200c41c8006a29030022175420182017511b0d000b0b200b2027490d03200b20154b0d04200b20276b220c4101762210450d00201120274102746a21062022200f6a210e03402006280200210f2006200e280200360200200e200f360200200641046a2106200e417c6a210e2010417f6a22100d000b0b2027450d06200c41094b0d06200b20154b0d04200b20276b210c2027417f6a2106202220274102746a210e0340200b2006490d0b200e200c41016a220c10c1042006417f6a221020064f0d06200e417c6a210e20102106200c410a490d000c060b0b41bcd9cc004118200441f8006a41c4f8c90041ccf9c900103e000b41bcd9cc004118200441f8006a41c4f8c90041ccf9c900103e000b2027200b41e4d1cc001057000b200b201541e4d1cc00104d000b200b2027417f6a2206490d05200b201541f4d1cc00104d000b201041016a21270b0240024002400240024020262024460d00202621060c010b202441016a22062024490d0a2024410174220e2006200e20064b1b22064104200641044b1b220641ffffffff0171200646410274210e200641037421060240024020240d00200441003602680c010b20044104360270200420253602682004202441037436026c0b200441d8006a2006200e200441e8006a107d2004280260210e20042802584101460d01200428025c212520242106200e41037621240b202520064103746a2206200c36020420062027360200202641016a22282126202841024f0d010c020b200e0d090c080b024002400240024002400240024003400240024002400240202520282226417f6a22284103746a2206280200450d00202641037420256a220f41746a28020022102006280204220e4d0d00202641024d0d0c20252026417d6a22064103746a280204220c200e20106a4d0d01202641034d0d0c200f41646a280200200c20106a4b0d0c0c010b20264103490d012006280204210e20252026417d6a22064103746a280204210c0b200c200e490d010b2026417e6a21060b02402026200641016a22294d0d00202620064d0d02202520064103746a222a280204222b202a2802006a2206202520294103746a222c280200222d490d03200620154b0d042011202d4102746a222e202c280204222f410274220e6a210c2006410274210f024002402006202d6b220b202f6b2206202f490d002021202e200e10e9082206200e6a211002400240202f4101480d00200b202f4a0d010b202e210e200621060c020b2011200f6a213020062106202e210e0340200c28020041306a280200220f280208220b41016a41004c0d08200f200b360208200628020041306a280200220b280208220d41016a41004c0d09200f41c8006a2903002118200f2903402117200b200d360208200e200c20062017200b290340542018200b41c8006a29030022175420182017511b220f1b2802003602002006200641046a200f1b2106200e41046a210e200c41046a200c200f1b220c20304f0d02201020064b0d000c020b0b2021200c2006410274220e10e9082230200e6a211002400240202f4101480d00200641014e0d010b200c210e203021060c010b2022200f6a210f200c210e03402010417c6a220b28020041306a2802002206280208220c41016a41004c0d092006200c360208200e417c6a220d28020041306a280200220c280208223141016a41004c0d0a200641c8006a290300211820062903402117200c2031360208200f200d200b2017200c290340542018200c41c8006a29030022175420182017511b22061b2802003602002010200b20061b21100240202e200d200e20061b220e490d00203021060c020b200f417c6a210f2030210620302010490d000b0b200e2006201020066b417c7110e9081a202a41046a202b202f6a360200202a202d360200202c202c41086a20262029417f736a41037410ea081a41012126202841014d0d090c010b0b202920264184d2cc00103c000b200620264194d2cc00103c000b202d200641a4d2cc001057000b2006201541a4d2cc00104d000b41bcd9cc004118200441f8006a41c4f8c90041ccf9c900103e000b41bcd9cc004118200441f8006a41c4f8c90041ccf9c900103e000b41bcd9cc004118200441f8006a41c4f8c90041ccf9c900103e000b41bcd9cc004118200441f8006a41c4f8c90041ccf9c900103e000b2027450d040c000b0b4194dacc004110200441f8006a41e4ffc40041ec81c500103e000b2006201541c4d1cc001056000b2006200b41f4d1cc001057000b0240202441ffffffff0171450d002025102e0b2020450d002021102e0b2015417f6a210f02400240024002400240024002400240201c450d0042002118420021170c010b420021184100210e420021172011210c0340200c2802002802302206280208221041016a41004c0d0220062010360208200441386a200641c8006a29030022324200200ead2233420010e808200441c8006a2006290340223442002033420010e80802404200427f20042903482004290340420052200441c8006a41086a290300221e20042903387c221f201e547222061b221e20187d22352035201e56427f201f20061b221f20177d201e201854ad7d221e201f56201e201f511b22061b2007290300584200201e20061b221e200741086a290300221f58201e201f511b0d0042002033427f7c221e201e203356200e45200e1b1ba7210f0c020b200e41016a210e427f201720327c201820347c221e2018542206ad7c22182006201820175420182017511b22061b2117427f201e20061b21182016200c41046a220c470d000b0b2015200f4d0d012011200f4102746a2802002802302206280208220e41016a41004c0d022006200e360208200441186a200641c8006a29030022354200200f41016a220fad2233420010e808200441286a2006290340223242002033420010e8084200427f200741086a290300221e20177c2007290300221720187c221f2017542206ad7c221820062018201e542018201e511b22061b2218427f200441286a41086a290300221720042903187c221e2004290320420052201e20175472220e1b7d427f201f20061b2217427f2004290328200e1b221f54ad7d221e2017201f7d221f201756201e201856201e2018511b22061b21344200201f20061b21362015410274210c201121100340200c450d0620102802002206450d062006280230220e280208220b41016a41004c0d04200e200b360208200441086a203620342033420010e70820064200427f2004290308221820327c22172017201854220b200441086a41086a290300221820357c200bad7c221720185420172018511b220b1b2218200e290340221e7d221f201f201856427f2017200b1b2217200e41c8006a2903007d2018201e54ad7d221820175620182017511b220e1b2217370320200641286a42002018200e1b221e370300200628023022062802080d05201041046a2110200641003602082006427f2006290340221820177c22172017201854220e200641c8006a220b2903002218201e7c200ead7c221720185420172018511b220e1b370340200b427f2017200e1b370300200c417c6a210c200f417f6a220f0d000c060b0b41bcd9cc004118200441f8006a41c4ffc40041fc81c500103e000b418c82c500418a01419883c500105d000b41bcd9cc004118200441f8006a41c4ffc40041a883c500103e000b41bcd9cc004118200441f8006a41c4ffc40041b883c500103e000b4194dacc004110200441f8006a41e4ffc40041c883c500103e000b0240201441ffffffff0371450d002011102e0b2004200710bb040240201d41ffffffff0071450d00201b102e0b201a450d032019102e0c030b1038000b1036000b42002112420021130b2013200a20122009562013200a562013200a511b22061b210a2012200920061b2109200741e0006a22072008470d000b200541016a220520014f0d012009200258200a200358200a2003511b450d000b0b20044180016a24000bf00303047f027e037f230041106b2202240002400240024002400240024020014102490d00200028020441306a2802002203280208220441016a41004c0d0220032004360208200028020041306a2802002204280208220541016a41004c0d03200341c8006a29030021062003290340210720042005360208200720042903405a2006200441c8006a29030022075a20062007511b0d00200028020021082000200028020436020002400240200141034f0d00200041046a21040c010b200041046a21052001417f6a21090340200541046a220428020041306a2802002200280208220341016a41004c0d0620002003360208200841306a2802002203280208220a41016a41004c0d07200041c8006a2903002106200029034021072003200a3602080240200720032903405a2006200341c8006a29030022075a20062007511b450d00200521040c020b2009450d0320052004280200360200200421052009417f6a22094101470d000b0b200420083602000b200241106a24000f0b2001200141d4d1cc00103c000b41bcd9cc004118200241086a41c4f8c90041ccf9c900103e000b41bcd9cc004118200241086a41c4f8c90041ccf9c900103e000b41bcd9cc004118200241086a41c4f8c90041ccf9c900103e000b41bcd9cc004118200241086a41c4f8c90041ccf9c900103e000bf70302037f017e230041106b2202240020004100360208200042013702000240024020012d00004101460d00200241003a00002000200241011074200141046a28020021032001410c6a2802002204200010760240200441306c2204450d00200320046a21040340200220032802003602002000200241041074200341086a200010b204200341306a22032004470d000b0b200129031021052002200141186a290300370308200220053703002000200241101074200141206a29030021052002200141286a2903003703082002200537030020002002411010742002200141c0006a2802003602002000200241041074200129033021052002200141386a2903003703082002200537030020002002411010740c010b200241013a00002000200241011074200141286a29030021052002200141306a2903003703082002200537030020002002411010742000200141016a41201074200141216a2d000020001073200141386a29030021052002200141c0006a290300370308200220053703002000200241101074200141c8006a29030021052002200141d0006a2903003703082002200537030020002002411010742002200141e8006a2802003602002000200241041074200141d8006a29030021052002200141e0006a2903003703082002200537030020002002411010740b200241106a24000bb20b04057f017e037f017e230041c0046b2203240020034180026a41086a200241086a2802003602002003200229020037038002200341086a20034180026a10c404200341186a20032802082003280210109d03200341286a41206a2204200141206a290200370300200341286a41186a2205200141186a290200370300200341286a41106a2206200141106a290200370300200341286a41086a2207200141086a290200370300200328021821022003410036021820032001290200370328024002400240024020024101470d00200329021c2108200341e0006a41206a22022004290300370300200341e0006a41186a22092005290300370300200341e0006a41106a22052006290300370300200341e0006a41086a220a20072903003703002003200329032837036020034188016a2008a7220b10a70420034180026a2003280288012206200328029001220410c504200329028402210c2003280280022101200341a0016a41206a2002290300370300200341a0016a41186a2009290300370300200341a0016a41106a2005290300370300200341a0016a41086a200a290300370300200320032903603703a0012001410820011b2105024002400240200c420020011b220c422088a722022008422088a722074d0d0020034180026a41206a200341a0016a41206a29030037030020034180026a41186a200341a0016a41186a29030037030020034180026a41106a200341a0016a41106a29030037030020034180026a41086a200341a0016a41086a290300370300200320032903a00122083703800220032005200741f8026c6a22013602a80202402008a741ff01714103460d0020012802bc024102460d0020034180026a2005200741f8026c6a41c8026a10c6040d020b200141bc026a2104024020012802bc024102460d0002402005200741f8026c6a22062802b0022209450d00200641b4026a280200450d002009102e0b2001108b020b200120034180026a41bc0210e9081a200441023602002005200741f8026c6a220141f0026a200341f8016a290300370300200141e8026a200341f0016a290300370300200141e0026a200341e8016a290300370300200141d8026a200341e0016a290300370300200141d0026a200341d8016a290300370300200141c8026a200341d0016a290300370300200120032903c8013703c002200328028801210620032802900121040b20032005360280022003200c370284022006200420034180026a10c704200ca7210902402002450d00200241f8026c21022005210103400240200141bc026a2802004102460d000240200141b0026a2802002204450d00200141b4026a280200450d002004102e0b20011096010b200141f8026a2101200241887d6a22020d000b0b02402009450d00200941f8026c450d002005102e0b20032003290095013703c80120032003419c016a2800003600cf0141062101410121020c010b20032003290095013703c80120032003419c016a2800003600cf01200241f8026c21022005210103400240200141bc026a2802004102460d000240200141b0026a2802002204450d00200141b4026a280200450d002004102e0b20011096010b200141f8026a2101200241887d6a22020d000b4102210141002102200ca72204450d00200441f8026c450d002005102e0b0240200328028c01450d002006102e0b200320032903c801370350200320032800cf01360057024020020d00200020013a000020002003290350370001200041086a20032800573600000c020b2003418c026a200736020020034188026a200b3602002003410136028402200341013a00800220034180026a10fe01200041063a00000c020b2000410210c80420002d000021010b200141ff01714106470d010b2003280210210120032802082102024020032802184101460d002002200110ff010c010b20022001200341186a410472109e030b0240200328020c450d002003280208102e0b200341c0046a24000bd00101057f230041306b22022400200241dffcc6004109108102200241106a41e5b0c4004106108102200241206a20012802002203200128020810a201024002402002280228220441206a2205417f4c0d000240024020050d00410121060c010b2005102c2206450d020b20004100360208200020053602042000200636020020002002411010742000200241106a411010742000200228022022052004107402402002280224450d002005102e0b0240200141046a280200450d002003102e0b200241306a24000f0b1038000b1036000bb91f09047f017e0c7f027e047f037e167f017e087f230041a00e6b220324002003200236021c20032001360218200341206a2001200210ed020240024002400240200328022022040d00200041003602000c010b200328022421052003200341286a28020036023420032004360230200341106a200341306a10ab010240024020032802100d000240024020032802142206200328023441f8026e2201200120064b1bad42f8027e2207422088a70d002007a72201417f4c0d000240024020010d00410821080c010b2001102c2208450d060b200141f8026ead2107024002402006450d00200341870b6a2109200341c80d6a41126a210a200341f50d6a210b200341e00d6a410372210c200341e00d6a41126a210d200341900e6a41086a210e200341f80a6a410472220f41076a211003400240024020032802342201450d00200328023022112d0000211220032001417f6a22133602342003201141016a360230410321020240024020120e020001030b410221020c020b024002400240024002402013450d0020112d0001210220032001417e6a22013602342003201141026a22123602304100211102400240024020020e020100030b200341086a200341306a10ab0120032802080d0220032802342201200328020c2202490d022002417f4c0d0c0240024020020d00410121110c010b200210322211450d12200328023421010b20012002490d0120112003280230200210e9081a200328023422012002490d122002ad221442208620148421152003200120026b22013602342003200328023020026a22123602300b2015a7211302402001450d0020122d0000211620032001417f6a3602342003201241016a360230200341f80a6a200341306a10980120032802f80a411c460d00200341c8086a200341f80a6a41b00210e9081a024020032802342201450d00200328023022122d0000211720032001417f6a22183602342003201241016a2219360230410021020240024020170e020100020b20184104490d01201235000121142003201241056a36023020032001417b6a220236023420024104490d012012350005211a2003200141776a22183602342003201241096a2219360230201a422086201484211b410121020b2018450d0020192d0000210120032018417f6a22123602342003201941016a360230024002400240024020010e110004040304040404040404040404040102040b2012450d0320192d0001210120032018417e6a3602342003201941026a3602304100211741002118024020010e03090008040b200341f80a6a200341306a10930120032d00f80a4101460d03200341f80d6a41086a200941086a2900002214370300200341f80d6a41106a200941106a2f000022013b01002003200f290000221a3703900e20032009290000221c3703f80d200320102800003600970e20032d00fb0a211d20032f00f90a211e20032d00920e211f20032800930e212020032800970e2121200341e00d6a41106a20013b0100200341e00d6a41086a20143703002003201c3703e00d201aa72122410121180c080b2012450d0220192d0001210120032018417e6a2217360234410221122003201941026a36023002400240024020010e03000102050b20174104490d04201928000221172003201941066a36023020032018417a6a220136023420014104490d04200341e00d6a41086a200341f80a6a41086a290200370300200341e00d6a41106a200341f80a6a41106a290200370300200320032902f80a3703e00d201928000621232003201841766a36023420032019410a6a36023041002112201721240c010b200341f80a6a200341306a10930120032d00f80a4101460d03200341f80d6a41086a2201200941086a290000370300200341f80d6a41106a2212200941106a2f00003b01002003200f29000022143703900e200320092900003703f80d200320102800003600970e20032d00fb0a212520032f00f90a212620032802940e21232003200e41026a2d00003a00e20d2003200e2f01003b01e00d200c20032903f80d370000200c41086a2001290300370000200c41106a20122f01003b0000200b20032f009d0e3b0000200b41026a2003419d0e6a41026a2d00003a00002014a72124410121120b200341c80d6a41106a200341e00d6a41106a2903002214370300200341c80d6a41086a200341e00d6a41086a290300221a370300200341b00d6a41086a201a370300200341b00d6a41106a20143d0100200320032903e00d22143703c80d200341a80d6a41046a200a41046a2f01003b0100200320143703b00d2003200a2801003602a80d410121170c080b2012450d0120192d0001210120032018417e6a2227360234410221172003201941026a3602304102211202400240024020010e03000102040b20274104490d03201928000221272003201941066a36023020032018417a6a220136023420014104490d03200341e00d6a41086a200341f80a6a41086a290200370300200341e00d6a41106a200341f80a6a41106a290200370300200320032902f80a3703e00d201928000621232003201841766a36023420032019410a6a36023041002112202721240c010b200341f80a6a200341306a10930120032d00f80a4101460d02200341f80d6a41086a2201200941086a290000370300200341f80d6a41106a2212200941106a2f00003b01002003200f29000022143703900e200320092900003703f80d200320102800003600970e20032d00fb0a212520032f00f90a212620032802940e21232003200e41026a2d00003a00e20d2003200e2f01003b01e00d200c20032903f80d370000200c41086a2001290300370000200c41106a20122f01003b0000200b20032f009d0e3b0000200b41026a2003419d0e6a41026a2d00003a00002014a72124410121120b200341b00d6a41106a200341e00d6a41106a2f01003b0100200341b00d6a41086a200341e00d6a41086a290300370300200341a80d6a41046a200d41046a2f01003b0100200320032903e00d3703b00d2003200d2801003602a80d0c070b2012450d0020032018417e6a3602342003201941026a3602300b200341c8086a108b020b2011450d012013450d010b2011102e0b41022102410121010c030b410221180b200341b00d6a41106a200341e00d6a41106a2f01003b0100200341b00d6a41086a200341e00d6a41086a290300370300200341a80d6a41046a200341c80d6a41046a2f01003b0100200320032903e00d3703b00d200320032801c80d3602a80d20222126201d21122020212420212123201f21250b2015422088a72128200341e00d6a41106a200341b00d6a41106a2f01003b0100200341e00d6a41086a200341b00d6a41086a290300370300200341f80d6a41046a200341a80d6a41046a2f01003b0100200320032903b00d3703e00d200320032802a80d3602f80d200341f80a6a200341c8086a41b00210e9081a200320032800c1083602c80d2003200341c1086a41036a2800003600cb0d41002101201821292017212a201b211c2012212b2013212c2011212d2016212e0b20034190066a200341f80a6a41b00210e9081a200341f8056a41106a2211200341e00d6a41106a2f01003b0100200341f8056a41086a2212200341e00d6a41086a290300370300200341f0056a41046a2213200341f80d6a41046a2f01003b0100200320032903e00d3703f805200320032802f80d3602f005200320032802c80d3602e805200320032800cb0d3600eb0520010d00200341f80a6a20034190066a41b00210e9081a200341c8086a41106a20112f01003b0100200341c8086a41086a2012290300370300200341c80d6a41046a20132f01003b0100200320032903f8053703c808200320032802f0053602c80d200320032802e8053602e00d200320032800eb053600e30d201e212f2026213020292131202a2132201c2133202b2134202421352023213620282137202c2138202d2139202e213a2025213b0c010b410321020b200341b8036a200341f80a6a41b00210e9081a200341a0036a41106a2201200341c8086a41106a2f01003b0100200341a0036a41086a2211200341c8086a41086a29030037030020034198036a41046a2212200341c80d6a41046a2f01003b0100200320032903c8083703a003200320032802c80d36029803200320032802e00d36029003200320032800e30d3600930320024103460d04200341e0006a200341b8036a41b00210e9081a200341c8006a41106a221320012f01003b0100200341c8006a41086a22162011290300370300200341c0006a41046a221120122f01003b0100200320032903a00337034820032003280298033602402003200328029003360238200320032800930336003b02402007422088a722012007a7470d00200141016a22122001490d0420014101742218201220122018491b22124104201241044b1bad42f8027e2214422088a74541037421122014a721180240024020010d00200341003602f80a0c010b200341083602800b200320083602f80a2003200141f8026c3602fc0a0b200341c8086a20182012200341f80a6a107d20032802d008211220032802c8084101460d0320032802cc082108200742808080807083201241f8026ead8421070b2008200141f8026c6a200341e0006a41b00210e908220141d4026a2036360000200141d0026a2035360000200141cf026a203b3a0000200141cd026a20303b0000200141cc026a20343a0000200141ca026a202f3b0000200141c9026a20313a0000200141c8026a20323a0000200120333703c002200120023602bc02200120373602b802200120383602b402200120393602b00220132f010021022016290300211420112f010021112003290348211a20032802402112200141f0026a203a3a0000200141ea026a2012360000200141ee026a20113b0000200141d8026a201a370000200141e0026a2014370000200141e8026a20023b0000200141f1026a2003280238360000200141f4026a200328003b36000020074280808080107c21072006417f6a22060d000b0b2008450d0320002007370204200020083602000c040b20120d050b1038000b02402007422088a72201450d00200141f8026c21022008210103400240200141bc026a2802004102460d000240200141b0026a2802002206450d00200141b4026a280200450d002006102e0b20011096010b200141f8026a2101200241887d6a22020d000b0b2007a72201450d00200141f8026c450d002008102e0b200341003602d008200342013703c8082003410a360294062003200341186a360290062003200341c8086a3602b8032003418c0b6a4101360200200342013702fc0a200341909dc5003602f80a200320034190066a3602880b200341b8036a419cebc000200341f80a6a103d1a20032802c80820032802d00810ef02024020032802cc08450d0020032802c808102e0b200041003602000b2005450d002004102e0b200341a00e6a24000f0b1036000b2002200141b8b2c0001056000ba50201027f41012102024020002d0000220320012d0000470d0002400240024020030e03000102000b4101210220002d0001220320012d0001470d024100210220034101470d02200041026a200141026a412010ec084100470f0b200041046a2d00002203200141046a2d0000470d01410021020240024020030e03010003010b200041056a200141056a412010ec084100470f0b41012102200041086a280200200141086a280200470d012000410c6a2802002001410c6a280200470f0b200041046a2d00002203200141046a2d0000470d00410021020240024020030e03010002010b200041056a200141056a412010ec084100470f0b41012102200041086a280200200141086a280200470d002000410c6a2802002001410c6a2802004721020b20020be80101047f230041106b22032400024002402002280208220441f8026c4104722205417f4c0d00200228020021022005102c2206450d012003410036020820032005360204200320063602002004200310760240200441f8026c2204450d00034002400240200241bc026a2802004102470d00200341003a000f20032003410f6a410110740c010b200341013a000f20032003410f6a410110742002200310ab040b200241f8026a2102200441887d6a22040d000b0b200020012003280200200328020810b20102402003280204450d002003280200102e0b200341106a24000f0b1038000b1036000bdc0101047f230041c0006b2202240041a3e7c4002103411221044103210502400240024002400240200141ff01710e050001020304000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602242002418883ca003602202002200241206a360218200241086a41e4e6c4001044000b4193e7c400210341102104410021050c020b418be7c400210341082104410121050c010b41f4e6c400210341172104410221050b20004183023b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000bb80701057f230041b0036b220a2400200a41206a200110a904200a280220220b200a280228108f02210c0240200a280224450d00200b102e0b02400240024002400240200c0d00200a41386a220c4200370300200a41306a220b4200370300200a41206a41086a4200370300200a4200370320200a41206a41d9fcc6004106108102200a4198036a4180f4cb004106108102200c200a4198036a41086a290000370300200b200a29009803370300200a41186a200a41206a4120108e024100210d0240417f417f200a28021c4100200a2802181b220c20036a220b200b200c491b220b41016a220e200e200b491b200320021b2203200c4d0d00024020044101470d002005410047200641014b71210d2006417f6a21020b2001280208220c417f4c0d042001280200210b02400240200c0d00410121040c010b200c102c2204450d060b2004200b200c10e9082104200a41206a200941b00210e9081a200a41e4026a2002360200200a41e0026a2005360200200a41d8026a200c360200200a41d4026a200c360200200a41f0026a200841086a290200370300200a41f8026a200841106a290200370300200a4180036a200841186a290200370300200a4188036a200841206a290200370300200a200d3602dc02200a20043602d002200a20073a009003200a20082902003703e8022003200a41206a10aa04200a41206a200310a704200a280228210c200a280220210841002109200a41ac036a41003a0000200a41003602a803200a41106a2008200c200a41a8036a4105410010ca0402400240200a280210450d00200a200a2802142209410520094105491b36029c03200a200a41a8036a36029803200a41086a200a4198036a10ab01200a28020c417f6a210c200a2802084521090c010b0b0240200a280224450d002008102e0b200a200c410020091b220836029c03200a200336029803200a41206a200110a904200a2802202209200a280228200a4198036a109e030240200a280224450d002009102e0b200a412c6a2008360200200a41206a41086a2003360200200a4100360224200a41013a0020200a41206a10fe01200041086a20083602002000200336020420004100360200200141046a280200450d03200b102e0c030b20004281808080b0a08001370200200041086a41f4e6c400ad4280808080f002843702000c010b200041003a000620004183023b0104200041013602002000410c6a4110360200200041086a4193e7c4003602000b2009108b02200141046a280200450d002001280200102e0b200a41b0036a24000f0b1038000b1036000b940102017f017e230041106b2206240002402002ad4220862001ad842004ad4220862003ad84200510272207422088a72203450d0041002105024002402007a722022d00000e020100020b2003417f6a4104490d0120022800012101410121050b2002102e2000200136020420002005360200200641106a24000f0b41cae0cc00412e200641086a41f8e0cc004188e1cc00103e000b8f0101027f230041e0046b22012400200141b0026a200010980120012802b0022102200141046a200141b0026a41047241ac0210e9081a0240024002402002411c460d00200141b0026a200141046a41ac0210e9081a41b002102c2200450d0220002002360200200041046a200141b0026a41ac0210e9081a0c010b410021000b200141e0046a240020000f0b1036000bb00101037f230041e0046b220124002000200028020441016a22023602044100210302400240200220002802084b0d00200141b0026a200010950120012802b0022102200141046a200141b0026a41047241ac0210e9081a2002411c460d00200141b0026a200141046a41ac0210e9081a41b002102c2203450d0120032002360200200341046a200141b0026a41ac0210e9081a20002000280204417f6a3602040b200141e0046a240020030f0b1036000b5a01017f024020002802002201450d0020012001280200417f6a360200200028020022012802000d002001410c6a10cd04200028020041046a22012001280200417f6a3602002000280200220041046a2802000d002000102e0b0b950102027f027e230041106b2201240002404101102c2202450d00200142013702042001200236020002400240200028020022020d00200141003a000f20012001410f6a410110740c010b200141013a000f20012001410f6a41011074200041086a28020022002001107620012002200010740b2001350208210320013502002104200141106a240020042003422086840f0b1036000b810302037f027e230041206b22012400200141003602102001420137030820012000290300370318200141086a200141186a4108107420012000290308370318200141086a200141186a4108107420012000290310370318200141086a200141186a4108107420002802302102200041386a2802002203200141086a10760240200341286c2203450d00200220036a21030340200141086a2002412010742001200241206a290300370318200141086a200141186a41081074200241286a22022003470d000b0b200141086a2000413c6a4120107420012000290318370318200141086a200141186a410810742001200041206a290300370318200141086a200141186a410810740240024002400240200041286a2d00000e03000102030b200141003a0018200141086a200141186a410110740c020b200141013a0018200141086a200141186a410110740c010b200141023a0018200141086a200141186a410110740b2001350210210420013502082105200141206a240020052004422086840bce0202057f017e230041b0016b22022400200241003a006820012802002103200128020421044100210502400340200241003a0028200241286a20032004410047220610e9081a024020040d00200241003a00280b20042006490d01200241c8006a20056a20022d00283a00002001200420066b22043602042001200320066a22033602002002200541016a22063a00682006210520064120470d000b200241286a41186a200241c8006a41186a2903002207370300200241086a41086a2204200241c8006a41086a290300370300200241086a41106a2206200241c8006a41106a290300370300200241086a41186a2203200737030020022002290348370308200041196a2003290300370000200041116a2006290300370000200041096a200429030037000020002002290308370001200041003a0000200241b0016a24000f0b2006200441cce9cc001056000bbb010002400240024002402002450d0020014100480d01024002400240200328020022020d0020010d01410121020c020b0240200328020422030d0020010d01410121020c020b200220032001103022020d010c040b2001102c2202450d030b20002002360204410021020c030b2000200136020420004101360200200041086a41003602000f0b20004101360200200041086a41003602000f0b2000200136020441012101410121020b20002002360200200041086a20013602000b8c0202017f067e23004190016b220124002000290300210220004200370300024020024201520d00200041286a2903002102200041186a29030021032000290310210420002903082105200041206a2903002106200141c8006a200041306a2903002207370300200141106a41306a2002370300200141296a2003370000200141216a2004370000200141196a2005370000200141316a2006370000200141186a41013a0000200141033a0010200141106a10fe012001200737031820012002370310024020022007844200520d002001200141106a36020c2001410c6a10cc020c010b20012007370318200120023703102001200141106a36020c2001410c6a10cc020b20014190016a24000b130020004104360204200041b884c5003602000b130020004103360204200041ec86c5003602000ba56d031a7f2d7e037f230022032104200341a0056b41607122032400024002400240024002400240024002400240024002400240024002400240024002400240024020012d00000e0700010203040506000b200341ac016a41013602002003420137029c012003419cc3cb0036029801200341043602a40420034194c3cb003602a0042003200341a0046a3602a80120034198016a41ecb0c4001044000b200141146a2802002105200141046a280200210620012d0001210741022108200341206a41026a200241246a2d00003a00002003200241226a2f01003b0120200141106a28020021092001410c6a280200210a200141086a280200210b200241206a2f0100210c2002411c6a280200210d200241186a280200210e200241146a280200210f200241106a28020021102002410c6a2802002111200241086a2802002112200241066a2f00002113200241056a2d00002114200241046a2d00002115200241026a2f010021162002280228210120022d0001211702400240024002400240024020022d000022180e03000102000b20174521194101211a201521080c040b410221080240024020150e03000104000b410021080c030b20034180016a41026a200341206a41026a2d00003a0000200320032f01203b0180010c010b0240024020150e03000103000b410021080c020b20034180016a41026a200341206a41026a2d00003a0000200320032f01203b0180010b410121080b4100211a0b2001280200221b41016a221c41014d0d052001201c36020020012102024002400240201a450d002001201b36020020194101710d014110102c221c450d09201c41f8f7c60036020c201c4101360208201c4281808080103702004110102c2202450d0920024190f8c60036020c200241013602082002428180808010370200201c201c280200417f6a2208360200024020080d00201c280208201c28020c2802001103000240201c28020c280204450d00201c280208102e0b201c41046a22082008280200417f6a220836020020080d00201c102e0b2002280200211c0b2002201c417f6a221c3602000240201c0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a221c201c280200417f6a221c360200201c0d002002102e0b2005108b022005102e20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b410221020c010b41022102200341386a41026a200341206a41026a2d00003a0000200320032f01203b0138024002400240024020180e03000102000b4102210202400240024020170e03000102000b410021020c010b41012102201521080b200341c0046a200c3b0100200341bc046a200d360200200341b8046a200e360200200341b4046a200f360200200341b0046a2010360200200341ac046a2011360200200341a8046a2012360200200320133b01a604200320143a00a504200320083a00a404200320163b01a204200320023a00a104200341003a00a0040c020b4102210202400240024020150e03000102000b410021020c010b20034180016a41026a200341386a41026a2d00003a0000200320032f01383b018001410121020b200341c0046a200c3b0100200341bc046a200d360200200341b8046a200e360200200341b4046a200f360200200341b0046a2010360200200341ac046a2011360200200341a8046a2012360200200341c2046a200328018001360100200341c6046a20034184016a2f01003b0100200320133b01a604200320143a00a504200320023a00a404200341013a00a0040c010b02400240024020150e03000102000b410021020c010b20034180016a41026a200341386a41026a2d00003a0000200320032f01383b018001410121020b200341c0046a200c3b0100200341bc046a200d360200200341b8046a200e360200200341b4046a200f360200200341b0046a2010360200200341ac046a2011360200200341a8046a2012360200200341c2046a200328018001360100200341c6046a20034184016a2f01003b0100200320133b01a604200320143a00a504200320023a00a404200341023a00a0040b20034198016a200541b00210e9081a20034180016a41002006200b200a20092007200341a0046a20034198016a10d604200341f0006a41026a221c20032d0087013a0000200320032f0085013b017002402003280280014101460d0020012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b2005102e0c120b20034188016a290300211d20032d0084012102200341086a41026a201c2d00003a0000200320032f01703b010820012001280200417f6a221c3602000240201c0d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a221c201c280200417f6a221c360200201c0d002001102e0b2005102e200241ff01714106460d110b20034198046a41026a200341086a41026a2d000022013a0000200320032f010822053b019804200041206a20023a0000200041186a41003a000020004200370308200020053b0021200041236a20013a00002000201d37002420004201370300200424000f0b200141086a280200211b200141046a280200210c4102211c200341106a41026a200241246a2d00003a00002003200241226a2f01003b0110200241206a2f0100210e2002411c6a280200210f200241186a2802002110200241146a2802002111200241106a28020021122002410c6a2802002113200241086a2802002114200241066a2f00002106200241056a2d00002107200241046a2d00002108200241026a2f010021092002280228210520022d0001211702400240024002400240024020022d0000220d0e03000102000b201745211a410121152008211c0c040b4102211c0240024020080e03000104000b4100211c0c030b20034180016a41026a200341106a41026a2d00003a0000200320032f01103b0180010c010b0240024020080e03000103000b4100211c0c020b20034180016a41026a200341106a41026a2d00003a0000200320032f01103b0180010b4101211c0b410021150b2005280200221941016a220141014d0d042005200136020020052102024002402015450d0020052019360200201a4101710d014110102c2203450d07200341f8f7c60036020c2003410136020820034281808080103702004110102c2202450d0720024190f8c60036020c20024101360208200242818080801037020020032003280200417f6a2201360200024020010d002003280208200328020c2802001103000240200328020c280204450d002003280208102e0b200341046a22012001280200417f6a220136020020010d002003102e0b200228020021010b20022001417f6a2203360200024020030d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22032003280200417f6a220336020020030d002002102e0b20052005280200417f6a22033602004102210820030d0e2005280208200528020c2802001103000240200528020c280204450d002005280208102e0b200541046a22032003280200417f6a220336020020030d0e2005102e0c0f0b41022102200341146a41026a200341106a41026a2d00003a0000200320032f01103b011402400240024002400240200d0e03000102000b4100210a4102210d0240024020170e03000105000b4100210d4100210a0c040b4101210d2008211c0c030b4102211c02400240024020080e03000102000b4100211c0c010b20034180016a41026a200341146a41026a2d00003a0000200320032f01143b0180014101211c0b200341186a41046a20034180016a41046a2f01003b010020032003280180013602184101210a0c010b02400240024020080e03000102000b410021020c010b20034180016a41026a200341146a41026a2d00003a0000200320032f01143b018001410121020b200341186a41046a20034180016a41046a2f01003b010020032003280180013602184102210a2002211c0b0b200341e8006a41046a2201200341186a41046a2f01003b010020032003280218360268200341f0006a200c10a70420034198016a2003280270221a2003280278221910c504200329029c01211d2003280298012102200341dc036a4102360200200341003602980120034198046a41046a220820012f01003b010020032003280268360298042002410820021b21150240024002400240201b201d420020021b221d422088a72201490d0020034180016a41086a20034188046a29030037030020034180016a41106a20034190046a290300370300200320034180046a29030037038001200341f8036a290300211e200341f0036a290300211f200341e8036a2903002120200341e0036a2903002121200341d8036a2903002122200341d0036a2903002123200341c8036a2903002124200341c0036a2903002125200341b8036a2903002126200341b0036a2903002127200341a8036a2903002128200341a0036a290300212920034198036a290300212a20034190036a290300212b20034188036a290300212c20034180036a290300212d200341f8026a290300212e200341f0026a290300212f200341e8026a2903002130200341e0026a2903002131200341d8026a2903002132200341d0026a2903002133200341c8026a2903002134200341c0026a2903002135200341b8026a2903002136200341b0026a2903002137200341a8026a2903002138200341a0026a290300213920034198026a290300213a20034190026a290300213b20034188026a290300213c20034180026a290300213d200341f8016a290300213e200341f0016a290300213f200341e8016a2903002140200341e0016a2903002141200341d8016a2903002142200341d0016a2903002143200341c8016a2903002144200341c0016a2903002145200341b8016a2903002146200341b0016a290300214720034198016a41106a290300214820032903a0012149200328029c0121080c010b200341c2046a200328029804360100200341c0046a200e3b0100200341bc046a200f360200200341a0046a41186a2010360200200341b4046a2011360200200341a0046a41106a2012360200200341ac046a2013360200200341a0046a41086a2014360200200341c6046a20082f01003b0100200320063b01a604200320073a00a5042003201c3a00a404200320093b01a2042003200d3a00a1042003200a3a00a00420032015201b41f8026c6a22023602c804024020022802bc024102460d00200341a0046a200241c8026a10c6040d020b41022108200341023602bc0420022903a0022125200241186a290300214620022903102147200229030821482002290300214920032903b004211e20032903a804212320032903b804211f200220032903a0043703a002200241b8026a221c2903002122201c201f370300200241a8026a221c2903002124201c2023370300200241b0026a221c2903002123201c201e370300200229038002212920022903e001212d20022903c001213120022903a001213520022903800121392002290360213d200229034021412002290320214520022903c002212120024198026a290300212620024190026a290300212720024188026a2903002128200241f8016a290300212a200241f0016a290300212b200241e8016a290300212c200241d8016a290300212e200241d0016a290300212f200241c8016a2903002130200241b8016a2903002132200241b0016a2903002133200241a8016a290300213420024198016a290300213620024190016a290300213720024188016a2903002138200241f8006a290300213a200241f0006a290300213b200241e8006a290300213c200241d8006a290300213e200241d0006a290300213f200241c8006a2903002140200241386a2903002142200241306a2903002143200241286a2903002144200241d8026a290300211e200241d0026a290300211f200241c8026a290300212020034188016a200241e8026a29030037030020034180016a41106a200241f0026a2903003703002003200241e0026a290300370380012003280298010d0020032802dc034102460d0020034198016a41086a21020240200341d0036a280200221c450d00200341d4036a280200450d00201c102e0b2002108b020b20032015360298012003201d37029c01201a201920034198016a10c704201da7211902402001450d00200141f8026c21012015210203400240200241bc026a2802004102460d000240200241b0026a280200221c450d00200241b4026a280200450d00201c102e0b20021096010b200241f8026a2102200141887d6a22010d000b0b02402019450d00201941f8026c450d002015102e0b200341d0006a41086a20034180016a41086a290300370300200341d0006a41106a20034180016a41106a2903003703002003200329038001370350410021020c010b200341d0006a41086a20034180016a41086a290300370300200341d0006a41106a20034180016a41106a2903003703002003200329038001370350200141f8026c21012015210203400240200241bc026a2802004102460d000240200241b0026a280200221c450d00200241b4026a280200450d00201c102e0b20021096010b200241f8026a2102200141887d6a22010d000b41012102410221080240201da72201450d00200141f8026c450d002015102e0b0b02402003280274450d00201a102e0b200341386a41086a2201200341d0006a41086a290300370300200341386a41106a221c200341d0006a41106a290300370300200320032903503703380240024020020d00200341206a41106a201c290300370300200341206a41086a2001290300370300200320032903383703200240202242808080807083428080808020854200520d0041082103418be7c400210241012115410321084101211c0c020b200341e0036a2020370300200341d8036a2021370300200341c0036a2024370300200341b8036a2025370300200341a0036a202837030020034198036a202937030020034180036a202c370300200341f8026a202d370300200341e0026a2030370300200341d8026a2031370300200341c0026a2034370300200341b8026a2035370300200341a0026a203837030020034198026a203937030020034180026a203c370300200341f8016a203d370300200341e0016a2040370300200341d8016a2041370300200341c0016a2044370300200341b8016a2045370300200341f8036a2003290320370300200341e8036a201f370300200341c8036a2023370300200341a8036a202737030020034188036a202b370300200341e8026a202f370300200341c8026a2033370300200341a8026a203737030020034188026a203b370300200341e8016a203f370300200341c8016a204337030020034180046a200341206a41086a29030037030020034188046a200341306a290300370300200341f0036a201e370300200341d0036a22022022370300200341b0036a202637030020034190036a202a370300200341f0026a202e370300200341d0026a2032370300200341b0026a203637030020034190026a203a370300200341f0016a203e370300200341d0016a2042370300200341b0016a20463703002003204937039801200320483703a001200320473703a8010240202342ffffffff0f83500d00200341a0046a41086a2002280200360200200320032903c8033703a00420034180016a200341a0046a10c404200328028001220220032802880110ff01200328028401450d002002102e0b200341ac046a201b360200200341a0046a41086a200c360200200341013602a404200341013a00a004200341a0046a10fe0120034198016a108b020c0e0b200841ff01714106460d0d200841187621012008411076211c200841087621152049422088a721032049a721020b20052005280200417f6a221a360200201a0d0e2005280208200528020c2802001103000240200528020c280204450d002005280208102e0b200541046a221a201a280200417f6a221a360200201a0d0e2005102e0c0e0b200141206a2802002105200141106a280200210920012d0001210a41022108200341086a41026a200241246a2d00003a00002003200241226a2f01003b01082001411c6a280200210b200141186a2802002118200141146a28020021162001410c6a280200214a200141086a280200211a200141046a280200211b200241206a2f0100210e2002411c6a280200210f200241186a2802002110200241146a2802002111200241106a28020021122002410c6a2802002113200241086a2802002114200241066a2f00002106200241056a2d00002107200241046a2d00002115200241026a2f0100214b2002280228210120022d0001210d02400240024002400240024020022d0000224c0e03000102000b200d45211741012119201521080c040b410221080240024020150e03000104000b410021080c030b20034180016a41026a200341086a41026a2d00003a0000200320032f01083b0180010c010b0240024020150e03000103000b410021080c020b20034180016a41026a200341086a41026a2d00003a0000200320032f01083b0180010b410121080b410021190b2001280200220c41016a221c41014d0d032001201c360200200121020240024002402019450d002001200c36020020174101710d014110102c221c450d07201c41f8f7c60036020c201c4101360208201c4281808080103702004110102c2202450d0720024190f8c60036020c200241013602082002428180808010370200201c201c280200417f6a2208360200024020080d00201c280208201c28020c2802001103000240201c28020c280204450d00201c280208102e0b201c41046a22082008280200417f6a220836020020080d00201c102e0b2002280200211c0b2002201c417f6a221c3602000240201c0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a221c201c280200417f6a221c360200201c0d002002102e0b2005108b022005102e0240201a450d00201b102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b410221020c010b41022102200341206a41026a200341086a41026a2d00003a0000200320032f01083b01202003204a3602582003201a3602542003201b3602500240024002400240204c0e03000102000b41022102024002400240200d0e03000102000b410021020c010b41012102201521080b200341c0046a200e3b0100200341bc046a200f360200200341b8046a2010360200200341b4046a2011360200200341b0046a2012360200200341ac046a2013360200200341a8046a2014360200200320063b01a604200320073a00a504200320083a00a4042003204b3b01a204200320023a00a104200341003a00a0040c020b4102210202400240024020150e03000102000b410021020c010b20034180016a41026a200341206a41026a2d00003a0000200320032f01203b018001410121020b200341c0046a200e3b0100200341bc046a200f360200200341b8046a2010360200200341b4046a2011360200200341b0046a2012360200200341ac046a2013360200200341a8046a2014360200200341c2046a200328018001360100200341c6046a20034184016a2f01003b0100200320063b01a604200320073a00a504200320023a00a404200341013a00a0040c010b02400240024020150e03000102000b410021020c010b20034180016a41026a200341206a41026a2d00003a0000200320032f01203b018001410121020b200341c0046a200e3b0100200341bc046a200f360200200341b8046a2010360200200341b4046a2011360200200341b0046a2012360200200341ac046a2013360200200341a8046a2014360200200341c2046a200328018001360100200341c6046a20034184016a2f01003b0100200320063b01a604200320073a00a504200320023a00a404200341023a00a0040b20034198016a200541b00210e9081a20034180016a200341d0006a4100200920162018200b200a200341a0046a20034198016a10c904200341f0006a41026a221c20032d0087013a0000200320032f0085013b017002402003280280014101460d0020012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b2005102e0c0c0b20034188016a290300211d20032d008401210220034198046a41026a201c2d00003a0000200320032f01703b01980420012001280200417f6a221c3602000240201c0d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a221c201c280200417f6a221c360200201c0d002001102e0b2005102e200241ff01714106460d0b0b200341e8006a41026a20034198046a41026a2d000022013a0000200320032f01980422053b0168200041206a20023a0000200041186a41003a000020004200370308200020053b0021200041236a20013a00002000201d37002420004201370300200424000f0b4102211c200341206a41026a200241246a2d00003a00002003200241226a2f01003b01202001410c6a2802002107200141086a2802002115200141046a2802002119200241206a2f0100210d2002411c6a280200210e200241186a280200210f200241146a2802002110200241106a28020021112002410c6a2802002112200241086a2802002113200241066a2f00002114200241056a2d00002106200241046a2d00002108200241026a2f0100210a2002280228210120022d0001210c02400240024002400240024020022d000022090e03000102000b200c45211b4101211a2008211c0c040b4102211c0240024020080e03000104000b4100211c0c030b20034180016a41026a200341206a41026a2d00003a0000200320032f01203b0180010c010b0240024020080e03000103000b4100211c0c020b20034180016a41026a200341206a41026a2d00003a0000200320032f01203b0180010b4101211c0b4100211a0b2001280200221741016a220541014d0d02200120053602002001210202400240201a450d0020012017360200201b4101710d014110102c2203450d05200341f8f7c60036020c2003410136020820034281808080103702004110102c2202450d0520024190f8c60036020c20024101360208200242818080801037020020032003280200417f6a2205360200024020050d002003280208200328020c2802001103000240200328020c280204450d002003280208102e0b200341046a22052005280200417f6a220536020020050d002003102e0b200228020021050b20022005417f6a2203360200024020030d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22032003280200417f6a220336020020030d002002102e0b02402015450d002019102e0b20012001280200417f6a22033602004102210220030d082001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22032003280200417f6a220336020020030d082001102e0c090b41022102200341386a41026a200341206a41026a2d00003a0000200320032f01203b0138024002400240024020090e03000102000b41022102024002400240200c0e03000102000b410021020c010b410121022008211c0b200341b8016a200d3b0100200341b4016a200e360200200341b0016a200f360200200341ac016a2010360200200341a8016a2011360200200341a4016a2012360200200341a0016a2013360200200320143b019e01200320063a009d012003201c3a009c012003200a3b019a01200320023a009901200341003a0098010c020b4102210202400240024020080e03000102000b410021020c010b20034180016a41026a200341386a41026a2d00003a0000200320032f01383b018001410121020b200341b8016a200d3b0100200341b4016a200e360200200341b0016a200f360200200341ac016a2010360200200341a8016a2011360200200341a4016a2012360200200341a0016a2013360200200341ba016a200328018001360100200341be016a20034184016a2f01003b0100200320143b019e01200320063a009d01200320023a009c01200341013a0098010c010b02400240024020080e03000102000b410021020c010b20034180016a41026a200341386a41026a2d00003a0000200320032f01383b018001410121020b200341b8016a200d3b0100200341b4016a200e360200200341b0016a200f360200200341ac016a2010360200200341a8016a2011360200200341a4016a2012360200200341a0016a2013360200200341ba016a200328018001360100200341be016a20034184016a2f01003b0100200320143b019e01200320063a009d01200320023a009c01200341023a0098010b200320073602a804200320153602a404200320193602a00420034180016a20034198016a200341a0046a10c30420034188016a280200210520032d008101211a20032d008201211520032d0083012108200328028401211c20032d008001210220012001280200417f6a2219360200024020024106470d00024020190d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200041186a41003a000020004200370308200020032800503600192000411c6a200341d3006a28000036000020004200370300200424000f0b20190d082001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22032003280200417f6a220336020020030d082001102e0c080b200141146a2802002105200141046a280200210620012d0001210741022108200341206a41026a200241246a2d00003a00002003200241226a2f01003b0120200141106a28020021092001410c6a280200210a200141086a280200210b200241206a2f0100210c2002411c6a280200210d200241186a280200210e200241146a280200210f200241106a28020021102002410c6a2802002111200241086a2802002112200241066a2f00002113200241056a2d00002114200241046a2d00002115200241026a2f010021162002280228210120022d0001211702400240024002400240024020022d000022180e03000102000b20174521194101211a201521080c040b410221080240024020150e03000104000b410021080c030b20034180016a41026a200341206a41026a2d00003a0000200320032f01203b0180010c010b0240024020150e03000103000b410021080c020b20034180016a41026a200341206a41026a2d00003a0000200320032f01203b0180010b410121080b4100211a0b2001280200221b41016a221c41014d0d012001201c36020020012102024002400240201a450d002001201b36020020194101710d014110102c221c450d05201c41f8f7c60036020c201c4101360208201c4281808080103702004110102c2202450d0520024190f8c60036020c200241013602082002428180808010370200201c201c280200417f6a2208360200024020080d00201c280208201c28020c2802001103000240201c28020c280204450d00201c280208102e0b201c41046a22082008280200417f6a220836020020080d00201c102e0b2002280200211c0b2002201c417f6a221c3602000240201c0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a221c201c280200417f6a221c360200201c0d002002102e0b2005108b022005102e20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b410221020c010b41022102200341386a41026a200341206a41026a2d00003a0000200320032f01203b0138024002400240024020180e03000102000b4102210202400240024020170e03000102000b410021020c010b41012102201521080b200341c0046a200c3b0100200341bc046a200d360200200341b8046a200e360200200341b4046a200f360200200341b0046a2010360200200341ac046a2011360200200341a8046a2012360200200320133b01a604200320143a00a504200320083a00a404200320163b01a204200320023a00a104200341003a00a0040c020b4102210202400240024020150e03000102000b410021020c010b20034180016a41026a200341386a41026a2d00003a0000200320032f01383b018001410121020b200341c0046a200c3b0100200341bc046a200d360200200341b8046a200e360200200341b4046a200f360200200341b0046a2010360200200341ac046a2011360200200341a8046a2012360200200341c2046a200328018001360100200341c6046a20034184016a2f01003b0100200320133b01a604200320143a00a504200320023a00a404200341013a00a0040c010b02400240024020150e03000102000b410021020c010b20034180016a41026a200341386a41026a2d00003a0000200320032f01383b018001410121020b200341c0046a200c3b0100200341bc046a200d360200200341b8046a200e360200200341b4046a200f360200200341b0046a2010360200200341ac046a2011360200200341a8046a2012360200200341c2046a200328018001360100200341c6046a20034184016a2f01003b0100200320133b01a604200320143a00a504200320023a00a404200341023a00a0040b20034198016a200541b00210e9081a20034180016a41012006200b200a20092007200341a0046a20034198016a10d604200341f0006a41026a221c20032d0087013a0000200320032f0085013b017002402003280280014101460d0020012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b2005102e0c070b20034188016a290300211d20032d0084012102200341086a41026a201c2d00003a0000200320032f01703b010820012001280200417f6a221c3602000240201c0d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a221c201c280200417f6a221c360200201c0d002001102e0b2005102e200241ff01714106460d060b20034198046a41026a200341086a41026a2d000022013a0000200320032f010822053b019804200041206a20023a0000200041186a41003a000020004200370308200020053b0021200041236a20013a00002000201d37002420004201370300200424000f0b200141206a2802002105200141106a280200210920012d0001210a41022108200341206a41026a200241246a2d00003a00002003200241226a2f01003b01202001411c6a280200210b200141186a2802002118200141146a28020021162001410c6a280200214a200141086a280200211a200141046a280200211b200241206a2f0100210e2002411c6a280200210f200241186a2802002110200241146a2802002111200241106a28020021122002410c6a2802002113200241086a2802002114200241066a2f00002106200241056a2d00002107200241046a2d00002115200241026a2f0100214b2002280228210120022d0001210d02400240024002400240024020022d0000224c0e03000102000b200d45211741012119201521080c040b410221080240024020150e03000104000b410021080c030b20034180016a41026a200341206a41026a2d00003a0000200320032f01203b0180010c010b0240024020150e03000103000b410021080c020b20034180016a41026a200341206a41026a2d00003a0000200320032f01203b0180010b410121080b410021190b2001280200220c41016a221c41014d0d002001201c360200200121020240024002402019450d002001200c36020020174101710d014110102c221c450d04201c41f8f7c60036020c201c4101360208201c4281808080103702004110102c2202450d0420024190f8c60036020c200241013602082002428180808010370200201c201c280200417f6a2208360200024020080d00201c280208201c28020c2802001103000240201c28020c280204450d00201c280208102e0b201c41046a22082008280200417f6a220836020020080d00201c102e0b2002280200211c0b2002201c417f6a221c3602000240201c0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a221c201c280200417f6a221c360200201c0d002002102e0b2005108b022005102e0240201a450d00201b102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b410221020c010b41022102200341386a41026a200341206a41026a2d00003a0000200320032f01203b01382003204a3602582003201a3602542003201b3602500240024002400240204c0e03000102000b41022102024002400240200d0e03000102000b410021020c010b41012102201521080b200341c0046a200e3b0100200341bc046a200f360200200341b8046a2010360200200341b4046a2011360200200341b0046a2012360200200341ac046a2013360200200341a8046a2014360200200320063b01a604200320073a00a504200320083a00a4042003204b3b01a204200320023a00a104200341003a00a0040c020b4102210202400240024020150e03000102000b410021020c010b20034180016a41026a200341386a41026a2d00003a0000200320032f01383b018001410121020b200341c0046a200e3b0100200341bc046a200f360200200341b8046a2010360200200341b4046a2011360200200341b0046a2012360200200341ac046a2013360200200341a8046a2014360200200341c2046a200328018001360100200341c6046a20034184016a2f01003b0100200320063b01a604200320073a00a504200320023a00a404200341013a00a0040c010b02400240024020150e03000102000b410021020c010b20034180016a41026a200341386a41026a2d00003a0000200320032f01383b018001410121020b200341c0046a200e3b0100200341bc046a200f360200200341b8046a2010360200200341b4046a2011360200200341b0046a2012360200200341ac046a2013360200200341a8046a2014360200200341c2046a200328018001360100200341c6046a20034184016a2f01003b0100200320063b01a604200320073a00a504200320023a00a404200341023a00a0040b20034198016a200541b00210e9081a20034180016a200341d0006a4101200920162018200b200a200341a0046a20034198016a10c904200341f0006a41026a221c20032d0087013a0000200320032f0085013b017002402003280280014101460d0020012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b2005102e0c040b20034188016a290300211d20032d0084012102200341086a41026a201c2d00003a0000200320032f01703b010820012001280200417f6a221c3602000240201c0d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a221c201c280200417f6a221c360200201c0d002001102e0b2005102e200241ff01714106460d030b20034198016a41026a200341086a41026a2d000022013a0000200320032f010822053b019801200041206a20023a0000200041186a41003a000020004200370308200020053b0021200041236a20013a00002000201d3700244201211d0c030b00000b1036000b4200211d200042003703082000200328009801360019200041186a41003a00002000411c6a2003419b016a2800003600000b2000201d370300200424000f0b2000420037030820002003280050360019200041186a41003a00002000411c6a200341d3006a28000036000020004200370300200424000f0b0b2000201c360024200020083a0023200020153a00222000201a3a002120004200370308200041286a2005360000200041206a20023a0000200041186a41003a000020004201370300200424000f0b2000420037030820002003280038360019200041186a41003a00002000411c6a2003413b6a28000036000020004200370300200424000f0b20052005280200417f6a2202360200024020020d002005280208200528020c2802001103000240200528020c280204450d002005280208102e0b200541046a22022002280200417f6a220236020020020d002005102e0b200041186a41003a000020004200370308200020032800083600192000411c6a2003410b6a28000036000020004200370300200424000f0b0b20002002360024200020013a00232000201c3a0022200020153a002120004200370308200041286a2003360000200041206a20083a0000200041186a41003a000020004201370300200424000f0b2000420037030820002003280050360019200041186a41003a00002000411c6a200341d3006a28000036000020004200370300200424000b9f0501057f230041b0036b22092400200941386a220a4200370300200941306a220b4200370300200941206a41086a420037030020094200370320200941206a41d9fcc600410610810220094198036a4180f4cb004106108102200a20094198036a41086a290000370300200b200929009803370300200941186a200941206a4120108e024100210c02400240417f417f200928021c410020092802181b220a20026a220b200b200a491b220b41016a220d200d200b491b200220011b2202200a4d0d00024020034101470d002004410047200541014b71210c2005417f6a210a0b200941206a200841b00210e9081a200941e4026a200a36020020094190036a20063a0000200941e8026a2007290200370300200941f0026a200741086a290200370300200941f8026a200741106a29020037030020094180036a200741186a29020037030020094188036a200741206a290200370300200920043602e0022009200c3602dc0241002107200941003602d0022002200941206a10aa04200941206a200210a704200928022821082009280220210a200941ac036a41003a0000200941003602a803200941106a200a2008200941a8036a4105410010ca04024002402009280210450d00200920092802142207410520074105491b36029c032009200941a8036a36029803200941086a20094198036a10ab01200928020c417f6a210820092802084521070c010b0b02402009280224450d00200a102e0b2009412c6a2008410020071b2207360200200941206a41086a200236020020094100360224200941013a0020200941206a10fe01200041086a200736020020002002360204200041003602000c010b20004281808080b0a08001370200200041086a41f4e6c400ad4280808080f002843702002008108b020b200941b0036a24000b880301077f410121020240024002400240024002402001280208220341016a2204200128020422054d0d000c010b200320054f0d012001280200220620036a2d00002107200120043602080240200741037122084103460d0002400240024020080e03000102000b20074102762108410021020c030b0240200341026a220320054d0d000c030b200120033602082004417f460d04200620046a2d0000410874200772220141ffff0371418002490d02200141fcff03714102762108410021020c020b200341046a220320054b0d01200120033602082004417d4f0d04200620046a22012f0000200141026a2d000041107472410874200772220141808004492102200141027621080c010b0240200741034d0d000c010b200341056a220320054b0d00200120033602082004417c4f0d04200620046a28000022084180808080044921020b20002008360204200020023602000f0b200320054188eccc00103c000b417f20034198ebcc001057000b200420034198ebcc001057000b200420034198ebcc001057000bdf0401057f230041106b22022400200241003a0005024002400240024002400240024020012802002203280204220420044100472205490d00200241056a20032802002206200510e9081a2003200420056b3602042003200620056a360200024020040d00410021040c060b024020022d0005220441037122034103460d000240024020030e03080001080b200241003b0106200220043a00064101210420012802002201280204220320034100472205490d04200241066a41017220012802002204200510e90821062001200320056b3602042001200420056a360200024020030d00200620056a41003a00000b20022f0106220441ff014d0d0220044102762103410021040c080b20024100360208200220043a0008200241086a4101722001280200220428020020042802042203410320034103491b220310e9082101200428020422052003490d042004200520036b3602042004200428020020036a360200024020034103732204450d00200120036a4100200410eb081a0b2002280208220341808004492104200341027621030c070b200441034d0d010b410121040c050b2002410036020c2002410c6a2001280200220328020020032802042204410420044104491b220410e9081a200328020422052004490d022003200520046b3602042003200328020020046a360200024020044104460d002002410c6a20046a4100410420046b10eb081a0b200228020c22034180808080044921040c040b0c030b2003200541b8b2c0001056000b2004200541b8b2c0001056000b20044102762103410021040b2000200336020420002004360200200241106a24000bb40404057f017e027f017e0240024020012802042202450d00200128020022032d0000210420012002417f6a22053602042001200341016a360200024002400240200441037122064103460d000240024020060e03030001030b41012106024020050d000c060b20032d0001210520012002417e6a3602042001200341026a3602002005410874200472220141ffff0371418002490d05200141fcff0371410276ad21070c030b410121060240200541034f0d000c050b200341036a2d0000210520032f0001210820012002417c6a3602042001200341046a3602002008200541107472410874200472220141808004490d042001410276ad21070c020b024002400240200441027622090e050002020201020b20054104490d042003350001210720012002417b6a3602042001200341056a36020020074280808080045421060c050b20054108490d03200329000121072001200241776a3602042001200341096a3602002007428080808080808080015421060c040b200441134b0d02200941046a21082002417e6a2102200341026a2103410021044200210741012106034002402002417f470d000c050b2003417f6a310000210a20012002360204200120033602002002417f6a2102200341016a2103200a2004410374413871ad862007842107200441016a22052104200541ff01712008490d000b2007427f412820094103746b413871ad885821060c030b2004410276ad21070b410021060c010b410121060b2000200737030820002006ad3703000be70404047f017e037f017e02400240200128020022022802042203450d00200228020022042d0000210520022003417f6a3602042002200441016a3602000240200541037122024103460d0002400240024020020e03000102000b2005410276ad2106410021020c040b200128020022012802042202450d02200128020022032d0000210420012002417f6a360204410121022001200341016a3602002004410874200572220141ffff0371418002490d03200141fcff0371410276ad2106410021020c030b41012102024020012802002201280204220341034f0d000c030b2001280200220441026a2d0000210720042f000021082001200441036a36020020012003417d6a3602042008200741107472410874200572220141808004490d022001410276ad2106410021020c020b024002400240200541027622090e050002020201020b2001280200220228020422014104490d0220022802002205350000210620022001417c6a3602042002200541046a36020020064280808080045421020c030b2001280200220228020422014108490d012002280200220529000021062002200141786a3602042002200541086a3602002006428080808080808080015421020c020b200541134b0d00200941046a2108410021034200210641012102034002402001280200220528020422040d000c030b20052802002207310000210a20052004417f6a3602042005200741016a360200200a2003410374413871ad862006842106200341016a22052103200541ff01712008490d000b2006427f412820094103746b413871ad885821020c010b410121020b2000200637030820002002ad3703000be10506067f017e027f017e017f017e230041206b220224000240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a360200024002400240200541037122074103460d0002400240024020070e03000102000b2005410276ad21080c040b410121072006450d0220042d0001210620012003417e6a3602042001200441026a3602002006410874200572220141ffff0371418002490d02200141fcff0371410276ad21080c030b4101210720064103490d01200441036a2d0000210620042f0001210920012003417c6a3602042001200441046a3602002009200641107472410874200572220141808004490d012001410276ad21080c020b02400240024002402005410276220a0e0d00030303010303030303030302030b20064104490d052004350001210820012003417b6a3602042001200441056a36020020084280808080045421074200210b0c060b20064108490d04200429000121082001200341776a3602042001200441096a3602002008428080808080808080015421074200210b0c050b20064110490d03200441096a290000210b2004290001210820012003416f6a3602042001200441116a360200200b428080808080808080015421070c040b200541334b0d02200a41046a21092003417e6a2103200441026a21044100210541012107200241186a210c420021084200210b03402003417f460d012004417f6a310000210d2001200336020420012004360200200241106a200d4200200541037441f8007110ed082003417f6a2103200441016a2104200c290300200b84210b20022903102008842108200541016a22062105200641ff01712009490d000b2002427f427f41e800200a4103746b41f8007110e4082008200229030058200b200241086a290300220d58200b200d511b21070c030b0c020b4200210b410021070c010b410121070b20002008370308200041106a200b37030020002007ad370300200241206a24000bd60203017f017e027f230041206b220224000240024002400240024002402000290300220342c000540d00200342808001540d012003428080808004540d024108200379a741037622046b41044f0d0341c087c500413641f887c5001039000b20022003a74102743a00082001200241086a410110740c030b20022003a74102744101723b01082001200241086a410210740c020b20022003a74102744102723602082001200241086a410410740c010b2002411320044102746b3a00082001200241086a41011074200220002903002203370300200441786a21000340200220033c00082001200241086a4101107420034208882103200041016a22042000492105200421002005450d000b20022003370300200350450d010b200241206a24000f0b2002411c6a4100360200200241186a41d4e2cc003602002002420137020c2002418888c5003602082002200241086a10dd04000b6c01017f230041206b220224002002419088c50036020420022000360200200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241c4cec800200241046a41c4cec800200241086a419888c5001058000b6c01017f230041206b22022400200241d889c50036020420022000360200200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241b4cec800200241046a41b4cec800200241086a41e889c5001058000b930501047f230041a0036b22012400200141106a4200370300200141186a4200370300200141206a4200370300200141286a4200370300200120012903c801370308200142c0b2cd3b37039803200142c0b2cd3b37039003200142c0b2cd3b370388034100210241012103034020014188036a2104024002400240200241ff01710e03010002010b20014190036a21040c010b20014198036a21040b200442c0b2cd3b370300024020034103460d00200341e99fc0006a2104200341016a210320042d000022024103470d010b0b20014188026a420037030020014180026a4201370300200141f8016a22034200370300200141f0016a22044201370300200141c8016a41186a4200370300200141c8016a41f8006a4200370300200141c8016a41f0006a4201370300200141c8016a41e8006a4200370300200141c8016a41e0006a420137030020014198026a420037030020014190026a200129039003370300200141d0026a4200370300200141c8026a200129038803370300200142003703d00120014280e497d0123703c80120012001290398033703d801200141f8026a200141286a290300370300200141f0026a200141086a41186a290300370300200141e8026a200141186a290300370300200141e0026a200141106a290300370300200141d8026a20012903083703002004420137030020034280b0def7d32b3703002001410036028003200141086a200141c8016a41c00110e9081a200141086a41f8006a428090cad2c60e370300200141086a41f0006a4201370300200141086a41e8006a4280c0a8ca9a3a370300200141086a41e0006a4201370300200141c8016a200141086a41b80110e9081a2001428180808080d0a5cc00370380032000200141c8016a107f200141a0036a24000b800903097f017e027f23004190036b2202240041002103200241003a00a0022001280204417f6a2104024002400240024003402004417f460d0120024180026a20036a200128020022052d00003a0000200120043602042001200541016a3602002002200341016a22053a00a0022004417f6a21042005210320054120470d000b200241d0026a41086a220420024180026a41086a290300370300200241d0026a41106a220320024180026a41106a290300370300200241d0026a41186a220620024180026a41186a29030037030020022002290380023703d002200541ff0171411f4b0d010c020b200341ff0171450d01200241003a00a0020c010b200241e0016a41086a2004290300370300200241e0016a41106a2003290300370300200241e0016a41186a2006290300370300200220022903d0023703e00120024180026a200110850520022802a0022204450d00200241a0016a41186a2203200241e0016a41186a290300370300200241a0016a41106a2205200241e0016a41106a290300370300200241a0016a41086a2206200241e0016a41086a290300370300200241a0016a41286a220720024180026a41086a290300370300200241a0016a41306a220820024180026a41106a290300370300200241a0016a41386a220920024180026a41186a290300370300200220022903e0013703a00120022002290380023703c001200241a4026a280200210a20024180026a41286a290300210b200241e0006a41086a220c2006290300370300200241e0006a41106a22062005290300370300200241e0006a41186a22052003290300370300200241e0006a41206a220320022903c001370300200241e0006a41286a220d2007290300370300200241e0006a41306a22072008290300370300200241e0006a41386a22082009290300370300200220022903a0013703602004450d00200241206a41386a2008290300370300200241206a41306a2007290300370300200241206a41286a200d290300370300200241206a41206a2003290300370300200241206a41186a2005290300370300200241206a41106a2006290300370300200241206a41086a200c29030037030020022002290360370320200241086a200110ab010240024002402002280208450d00200241003602a0010c010b200241a0016a2001200228020c10920120022802a0010d010b20004100360240200a450d02200a41306c450d022004102e0c020b200241106a41086a2201200241a0016a41086a280200360200200220022903a001370310200041386a200241206a41386a290300370300200041306a200241206a41306a290300370300200041286a200241206a41286a290300370300200041206a200241206a41206a290300370300200041186a200241206a41186a290300370300200041106a200241206a41106a290300370300200041086a200241206a41086a29030037030020002002290320370300200041c8006a200b3703002000200a36024420002004360240200041d0006a2002290310370300200041d8006a20012802003602000c010b200041003602400b20024190036a24000bc01509077f017e097f017e017f017e027f017e047f230041c0036b22012400200141286a22024200370300200141206a22034200370300200141106a41086a420037030020014200370310200141106a4190dac800410a10810220014198036a41d5dac8004106108102200220014198036a41086a2900003703002003200129009803370300200141203602342001200141106a360230200141386a200141106a412010ed02024002400240200128023822040d00410021050c010b200128023c21062001200141386a41086a28020036024c20012004360248200141086a200141c8006a10ab010240024020012802080d0002400240200128020c2207200128024c41c4006e2202200220074b1bad42c4007e2208422088a70d002008a72202417f4c0d000240024020020d00410421050c010b2002102c2205450d060b200241c4006ead2108024002402007450d0020014198036a410172210920014198036a410772210a4100210b03400240024002400240200128024c2203450d002001280248220c2d0000210220012003417f6a220d36024c2001200c41016a3602480240024020020e020001020b200d4104490d012001418c026a41026a200141f0026a41026a2d00003a0000200141f0016a41086a200141b0026a41086a290200370300200141f0016a41106a200141b0026a41106a290200370300200141f0016a41186a200141b0026a41186a2d00003a0000200141d0016a41086a20014198036a41086a290100370300200141d0016a41106a20014198036a41106a290100370300200141d0016a41186a20014198036a41186a290100370300200120012f00f0023b018c02200120012902b0023703f00120012001290198033703d001200c280001210e20012003417b6a36024c2001200c41056a36024841002102410021030c040b41002102200141003a00b8032003417e6a210302400340200d2002460d0120014198036a20026a200c20026a220f41016a2d00003a00002001200f41026a3602482001200241016a220f3a00b8032001200336024c2003417f6a2103200f2102200f4120460d030c000b0b200241ff0171450d02200141003a00b8030c020b200141cc016a41026a2001418c026a41026a2d00003a0000200141b0016a41086a200141f0016a41086a290300370300200141b0016a41106a200141f0016a41106a290300370300200141b0016a41186a200141f0016a41186a2d00003a000020014190016a41086a200141d0016a41086a29030037030020014190016a41106a200141d0016a41106a29030037030020014190016a41186a200141d0016a41186a290300370300200120012f018c023b01cc01200120012903f0013703b001200120012903d001370390010c070b20014190036a41026a221020012d009a0322023a000020014194036a41026a20023a0000200141b0026a41086a2211200a41086a2900002212370300200141b0026a41106a2213200a41106a2900002214370300200141b0026a41186a2215200a41186a2d000022023a0000200120012f01980322163b019003200120163b0194032001200a29000022173703b002200128009b032118200141f0026a41186a221620023a0000200141f0026a41106a22022014370300200141f0026a41086a22192012370300200120173703f002200f41ff0171411f4d0d00200141ec026a41026a20102d000022103a0000200141d0026a41086a20192903002212370300200141d0026a41106a20022903002214370300200141d0026a41186a20162d000022023a0000200141ac026a41026a221920103a0000200120012f01900322163b01ec02200120012903f00222173703d002200120163b01ac0220014190026a41186a221620023a000020014190026a41106a2210201437030020014190026a41086a221a20123703002001201737039002200d200f460d00200c200f6a220241016a2d0000210f2001200336024c2001200241026a360248410021024100210c02400240200f0e020100020b20014198036a200141c8006a10930120012d0098034101460d012015200941186a2900003703002013200941106a2900003703002011200941086a290000370300200120092900003703b0024101210c0b200141d0016a41186a2015290300370300200141d0016a41106a2013290300370300200141d0016a41086a20112903003703002001418c026a41026a20192d00003a0000200141f0016a41086a201a290300370300200141f0016a41106a2010290300370300200141f0016a41186a20162d00003a0000200120012903b0023703d001200120012f01ac023b018c0220012001290390023703f00141012103200c211b2018210e0c010b41022103410121020b200141cc016a41026a220f2001418c026a41026a2d00003a0000200141b0016a41086a220c200141f0016a41086a290300370300200141b0016a41106a220d200141f0016a41106a290300370300200141b0016a41186a2216200141f0016a41186a2d00003a000020014190016a41086a2210200141d0016a41086a29030037030020014190016a41106a2219200141d0016a41106a29030037030020014190016a41186a2211200141d0016a41186a290300370300200120012f018c023b01cc01200120012903f0013703b001200120012903d0013703900120020d042001418c016a41026a2213200f2d00003a0000200141f0006a41086a220f200c290300370300200141f0006a41106a220c200d290300370300200141f0006a41186a220d20162d00003a0000200141d0006a41086a22162010290300370300200141d0006a41106a22102019290300370300200141d0006a41186a22192011290300370300200120012f01cc013b018c01200120012903b001370370200120012903900137035002402008422088a722022008a7470d00200241016a22112002490d0420024101742215201120112015491b22114104201141044b1bad42c4007e2212422088a74541027421112012a721150240024020020d0020014100360298030c010b200141043602a00320012005360298032001200241c4006c36029c030b200141b0026a2015201120014198036a107d20012802b802211120012802b0024101460d0320012802b4022105200842808080807083201141c4006ead8421080b2005200241c4006c6a220220033a00002002200e360004200241036a20132d00003a0000200220012f018c013b0001200d2d00002103200c2903002112200f2903002114200129037021172002201b3a002120022017370008200241106a2014370000200241186a2012370000200241206a20033a00002002413a6a2019290300370000200241326a20102903003700002002412a6a20162903003700002002200129035037002220084280808080107c2108200b41016a220b2007470d000b0b2005450d030c040b20110d050b1038000b2008a721022002450d00200241c4006c450d002005102e0b41002105200141003602b802200142013703b0022001410a3602d4012001200141306a3602d0012001200141b0026a36029001200141ac036a41013602002001420137029c03200141909dc500360298032001200141d0016a3602a80320014190016a419cebc00020014198036a103d1a20012802b00220012802b80210ef0220012802b402450d0020012802b002102e0b2006450d002004102e0b0240024020050d0020004100360208200042043702000c010b20002008370204200020053602000b200141c0036a24000f0b1036000bdc0b04067f017e037f017e230041d0016b22012400200141386a41186a22024200370300200141386a41106a22034200370300200141386a41086a2204420037030020014200370338200141286a4190dac800410a1081022004200141286a41086a220529000037030020012001290028370338200141286a419adac80041061081022002200529000037030020032001290028370300200141d8006a200141386a412010f40220012d005821052002200141f1006a2900003703002003200141e9006a2900003703002004200141e1006a290000370300200120012900593703380240024020054101470d0020002001290338370000200041186a2002290300370000200041106a2003290300370000200041086a20042903003700000c010b200141d8006a41186a22024200370300200141d8006a41106a22064200370300200141d8006a41086a2203420037030020014200370358200141386a41d9fcc60041061081022003200429000037030020012001290038370358200141386a41b4f4cb0041061081022002200429000037030020062001290038370300200141386a200141d8006a10a10420012802382204410420041b210302400240200129023c420020041b2207422088a7220541246c2204450d00200320046a2202415c6a2108200321040340024020042d00004101460d002002200441246a2204470d010c020b200441016a2800002109200441086a280200210a2001200441106a28020036023c2001200a36023802400240200941c28289aa04470d00200141d8006a200141386a10930220012903584203510d03200141d8006a41106a22042802002102200141d8006a41186a420037030020044200370300200141d8006a41086a2204420037030020014200370358200141386a41a081ca0041071081022004200141386a41086a220929000037030020012001290038370358200141386a41f09dc500410a108102200641086a200929000037000020062001290038370000200141386a200141d8006a1088034101210620012802382204410120041b210902402002200129023c420020041b220b422088a74f0d00200141086a41186a200920024105746a220441186a290000370300200141086a41106a200441106a290000370300200141086a41086a200441086a29000037030020012004290000370308410021060b0240200b42ffffff3f83500d002009102e0b20060d03200141d8006a41186a200141086a41186a290300370300200141d8006a41106a200141086a41106a290300370300200141d8006a41086a200141086a41086a29030037030020012001290308370358200141386a41186a22044200370300200141386a41106a22024200370300200141386a41086a2206420037030020014200370338200141286a4190dac800410a1081022006200141286a41086a220929000037030020012001290028370338200141286a419adac800410610810220042009290000370300200220012900283703004120102c2204450d012001422037022c20012004360228200141286a200141d8006a41201074200141386a412020012802282204200128023010b2010240200128022c450d002004102e0b20002001290358370000200041186a200141d8006a41186a290300370000200041106a200141d8006a41106a290300370000200041086a200141d8006a41086a2903003700000c040b20082004462109200441246a21042009450d010c020b0b1036000b20004200370000200041186a4200370000200041106a4200370000200041086a42003700000b02402005450d00200541246c21022003210403400240024002400240024020042d00000e050400010204030b2004410c6a280200450d03200441086a280200102e0c030b2004410c6a280200450d02200441086a280200102e0c020b2004410c6a280200450d01200441086a280200102e0c010b200441086a280200450d00200441046a280200102e0b200441246a21042002415c6a22020d000b0b2007a72204450d00200441246c450d002003102e0b200141d0016a24000ba70702117f047e23004190016b22012400200110940302400240024020012903004202510d00200028020821022000280204210320002802002104200141186a200141106a28020010a105200141d8006a2001280218200128022010a205200141386a41086a2200200141e4006a2902003703002001200129025c3703380240024020012802584101460d00200141286a41086a4200370300200141003602280c010b200141286a41086a2000290300370300200120012903383703280b02402002450d002004200241246c6a2105200141d8006a41106a2106200141286a410472210720042108034020082802202109200141d8006a41186a220a200841186a2900003703002006200841106a290000370300200141d8006a41086a220b200841086a29000037030020012008290000370358024002402001280230220c450d00200128022c210d0c010b419403102c220c450d054100210d200c4100360200200c41003b01322001200c3602302001410036022c0b200841246a2108024002400340200c2f0132220e410574210f41002100417c2110417f2102024003400240200f2000470d00200e21020c020b200141d8006a200c20006a41346a412010ec082211450d03200241016a21022010417c6a2110200041206a21002011417f4a0d000b0b0240200d450d00200d417f6a210d200c20024102746a4194036a280200210c0c010b0b200141386a41186a200a2903002212370300200141386a41106a20062903002213370300200141386a41086a200b290300221437030020012001290358221537033820062015370200200641086a2014370200200641106a2013370200200641186a201237020020012007360264200120023602602001200c36025c20014100360258200141d8006a410010a30521000c010b200c20106b21000b2000200028020020096a3602002001200128022820096a36022820082005470d000b0b02402003450d00200341246c450d002004102e0b200141e4006a200141286a41086a29030037020020012001290328221237025c2001410136025820012802182100200128022021022001410036024020014201370338200120123e028c01200141386a2001418c016a41041074200141d8006a41086a2210200141386a10f2012000200220012802382211200128024010b2010240200128023c450d002011102e0b201010bc02200128021c450d012000102e0c010b200041046a2802002202450d00200241246c450d002000280200102e0b20014190016a24000f0b1036000be70501067f230041a0016b22012400200141d8006a41186a22024200370300200141d8006a41106a22034200370300200141d8006a41086a2204420037030020014200370358200141d8006a41a081ca00410710810220014190016a41e4d1c100410c108102200220014190016a41086a2900003703002003200129009001370300200141106a200141d8006a4120108e0220012802142105200128021021062002200041186a2900003703002003200041106a2900003703002004200041086a29000037030020012000290000370358200141186a41bed8c8004108108102200141286a41edd8c800410e10810220012005410020061b3602482001200141c8006a410410a30137037820014190016a410c6a2202200141c8006a41046a3602002001200141f8006a41086a360294012001200141c8006a360298012001200141f8006a36029001200141386a20014190016a107c024002404120102c2200450d002001422037027c20012000360278200141f8006a200141d8006a41201074200120012802782200200128028001220310a301370388012002200020036a3602002001200036029801200120014188016a41086a36029401200120014188016a36029001200141c8006a20014190016a107c0240200128027c450d002000102e0b20012802402202200128025022036a41206a2200417f4c0d010240024020000d00410121040c010b2000102c2204450d010b20014100360298012001200036029401200120043602900120014190016a200141186a4110107420014190016a200141286a4110107420014190016a200128023822002002107420014190016a20012802482202200310740240200128024c450d002002102e0b0240200128023c450d002000102e0b200141086a20012802900122002001280298012202108e022001200128020c41016a410120012802081b36025820002002200141d8006a410410b2010240200128029401450d002000102e0b200141a0016a24000f0b1036000b1038000b7801027f230041106b2204240002404108102c2205450d0020044208370204200420053602002004200236020c20042004410c6a410410742004200336020c20042004410c6a410410742000200120042802002202200428020810b20102402004280204450d002002102e0b200441106a24000f0b1036000be50101047f230041206b2202240002400240200128020822034105744104722204417f4c0d00200128020021012004102c2205450d0120024100360208200220043602042002200536020020032002107602402003450d002003410574210303404120102c2204450d032002422037021420022004360210200241106a2001412010742002200228021022042002280218107402402002280214450d002004102e0b200141206a2101200341606a22030d000b0b2000412020022802002201200228020810b20102402002280204450d002001102e0b200241206a24000f0b1038000b1036000bb80404017f017e017f047e230041c0036b2207240042002108024020050d00200741186a2001ad420042c0843d420010e80820074188026a10a903200741c0006a2007290390022208200220082002541b10e804200741c0006a41086a290300210820072903402102200741a0026a2201420037030020074188026a41106a2205420037030020074188026a41086a22094200370300200742003703880220074188026a4180fdc6004112108102200741d0006a41dc98c50041111081022001200741d0006a41086a29000037030020052007290050370300200741286a20074188026a10e90420074188026a200729033042808090bbbad6adf00d200728022822011b200741286a41106a290300420020011b2002200842808090bbbad6adf00d420010ea04200741186a41086a29030021022007290318210a024002402007280288024101470d00427f210b427f210c0c010b2005290300210c2009290300210b0b200741d0006a10a9030240024002400240200641ff01710e03010200010b200741d0016a21050c020b200741e0006a21050c010b20074198016a21050b2005290300210820074188026a10a903200741086a200729039002220d2008200d2008541b10e804200741106a29030021082007290308210d200041306a200c370300200041286a200b370300200041206a2002370300200041186a200a370300200041106a20083703002000200d370308420121080b2000200337033820002008370300200041c0006a2004370300200741c0036a24000bdd0706017f017e047f037e037f067e230041c0026b22022400420021034280c2d72f42004280f985d40442001082052104200241e0016a22054200370300200241d0016a41086a4200370300200241ec016a22064180023b0100200241e8016a22072004360200200242003703d00141012104200241013602b802024002404100450d0042012108420021090c010b0240024002404101450d004200210a0c010b200241c8016a210b4101210c420021080340200241b0016a200842002001420010e808200241c0016a200142002001420010e808200820022903b801220184200184420052200b290300220120022903b001220a200a7c7c220a200154720d0220022903c0012101200c410271210d200c4101762204210c200a2108200d450d000b0b0240200441024f0d0020012108200a21090c020b200241a0016a41086a210d20012108200a2109034020024190016a200a42002001420010e808200241a0016a200142002001420010e808200a200229039801220184200184420052200d2903002201200229039001220a200a7c7c220a200154720d0120022903a001210102402004410271450d00200241e0006a200942002001420010e808200241f0006a200a42002008420010e80820024180016a200842002001420010e8082009420052200a4200527120022903684200527220022903784200527220024180016a41086a2903002208200229036020022903707c7c2209200854720d0220022903800121080b200441034b210c20044101762104200a210a200c0d000c020b0b427f2108427f21090b200241d0006a20082009428094ebdc03420010e608200241306a2005290300220a42002008420010e808200241206a2009420020022903d8012201420010e808200241c0006a200142002008420010e8080240024020062d0000450d00420021010c010b2002290338210e2002290328210f2002290320211020022903302111200241c0006a41086a2903002101200728020021042002290350210320022903402112200241106a20082009428094ebdc03420010e70820022002290310200241106a41086a2903002004ad2208420010e808427f200241086a29030020022903002213200320087e2208428094ebdc0380a7417f2008428080808080c0b2cd3b541b2008428094ebdc03824280cab5ee01566aad7c2208201354ad7c2203427f2001201120107c7c2210200a420052200942005271200e42005272200f4200527220102001547222041b7c2008427f201220041b7c220a2008542204ad7c22012004200120035420012003511b22041b2101427f200a20041b21030b2000200337030020002001370308200241c0026a24000ba10204017f017e017f027e230041d0006b220224002002412036020420022001360200200241086a2001412010ed0202400240200228020822010d00420021030c010b200228020c210402400240200241086a41086a2802004110490d00200141086a290000210520012900002106420121030c010b20024100360220200242013703182002410a36022c200220023602282002200241186a360234200241cc006a41013602002002420137023c200241909dc5003602382002200241286a360248200241346a419cebc000200241386a103d1a2002280218200228022010ef020240200228021c450d002002280218102e0b420021030b2004450d002001102e0b2000200637030820002003370300200041106a2005370300200241d0006a24000bcd3607017f017e017f027e017f017e1b7f230041e0026b220724000240024002402001200284500d0020032004844200520d010b20004100360200200041106a4200370300200041086a42003703000c010b42012108200741f0006a200320012003200156200420025620042002511b22091b220a2004200220091b220b20054201200542015620064200522006501b220c1b220d20064200200c1b220510e6082002200420091b21022001200320091b21040240024002402007290370200741f0006a41086a29030084500d00200741e0006a20042002200d200510e6082007290360200741e0006a41086a29030084500d01200d21080c020b200741c0006a200a200b200d200510e708200741c0006a41086a290300210b420021052007290340210a0c010b200741d0006a20042002200d200510e708200741d8006a29030021024200210542012108200729035021040b200741106a200b42002004420010e808200741206a20024200200a420010e808200741306a200a42002004420010e8080240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200b420052200242005271200729031842005272200729032842005272200741306a41086a2903002201200729031020072903207c7c2203200154724101470d004110102c2209450d192009200a3e020c2009200a4220883e02082009200b3e02042009200b4220883e020020074284808080c00037028401200720093602800120074180016a10bb074110102c2209450d19200920043e020c200920044220883e0208200920023e0204200920024220883e020020074284808080c00037029401200720093602900120074190016a10bb074110102c2209450d1920092008a7220e36020c200920084220883e0208200920053e0204200920054220883e020020074284808080c0003702a401200720093602a001200741a0016a10bb07200741f0016a41086a20074190016a41086a28020036020020072007290390013703f00120074180026a41086a20074180016a41086a280200360200200720072903800137038002200741b0016a20074180026a200741f0016a10bc07024020072802f40141ffffffff0371450d0020072802f001102e0b200741b0016a10bb0720072802b801210920072802b401210f20072802b001211020072802a80122110e020501020b2007200729033020032008200510e70820004100360200200041106a200741086a290300370300200041086a20072903003703000c1b0b20094101200941014b1b221141ffffffff03712011470d162011410274220c417f4c0d1602400240200c0d00410421120c010b200c10322212450d180b200720113602d802200720123602d0022007200c4102763602d4022009450d182012201141027420094102746b6a210c410020096b2109200e4101200e41014b1bad2102420021042010210e03402011201120096a22124d0d02200c2004422086200e3502008422042002803e02002009417f460d19200e41046a210e200c41046a210c200941016a2109200420028221040c000b0b20072802a00122132802000d010c020b2012201141ecd8cc00103c000b2009450d032010280200450d00200920114d0d00200720113602bc01200920116b221441016a22154101201541014b1b221641ffffffff03712016470d1320164102742217417f4c0d1320170d01410421180c020b410021180240200f41ffffffff03710d000c070b2010102e0c060b201710322218450d120b20114101201141014b1b221941ffffffff03712019470d102019410274221a417f4c0d10201a1032221b450d11410121124102210c024002400240201328020067221c0e020201000b4102210c201c210e410121120340200c4101200e4101711b20126c2112200e41034b211d200c200c6c210c200e410176210e201d0d000b0b200c20126c21120b200720093602f8012007200f3602f401200720103602f0014104102c2209450d11200920123602002007428180808010370284022007200936028002200741c0016a200741f0016a20074180026a10bc072009102e201141ffffffff03712011470d1020114102742209417f4c0d104104210c02402009450d002009102c220c450d120b2007200c3602f001200720094102763602f401200c2013201141027410e9081a200720113602f8014104102c2209450d11200920123602002007428180808010370284022007200936028002200741d0016a200741f0016a20074180026a10bc072009102e201520072802bc016a220920072802c801220c4d0d032009200c6b220941ffffffff03712009470d1020094102742211417f4c0d100240024020110d004104210c0c010b2011102c220c450d120b02402011410276220e20094f0d002011410176220e2009200e20094b1b220e4104200e41044b1b220e41ffffffff0371200e464102742112200e410274210e0240024020110d0020074100360280020c010b20074188026a410436020020072011360284022007200c360280020b200741f0016a200e201220074180026a107d200741f8016a280200210e024020072802f0014101460d0020072802f401210c200e410276210e0c030b200e450d110c120b20090d01410021090c020b4100410041fcd8cc00103c000b200c4100200941027410eb081a0b20072802c001211002400240200e20096b20072802c8012211490d00200920116a21120c010b200920116a22122009490d0e200e410174220f2012200f20124b1b220f4104200f41044b1b220f41ffffffff0371200f46410274211d200f410274210f02400240200e0d0020074100360280020c010b20074188026a41043602002007200c360280022007200e410274360284020b200741f0016a200f201d20074180026a107d200741f8016a280200210e024020072802f0014101460d0020072802f401210c200e410276210e0c010b200e0d0f0c0e0b200c20094102746a2010201141027410e9081a024020072802c40141ffffffff0371450d0020072802c001102e0b200720123602c8012007200e3602c4012007200c3602c0010b2017410276211e201a410276211f200741d0016a10bb0703402007201422203602dc01024020072802c801220920072802bc01220c20206a220e417f736a22112009490d002011200941ccd7cc00103c000b024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020092009200e6b220e4d0d0020072802d80122092009200c6b220c4d0d0120072802d001200c4102746a35020022024200510d02202020204100476b211420072802c001220920114102746a35020021042009200e4102746a3502002101200741003602e0012007200120044220868422042002803703e801200720042002823703f801200741003602f0012007200741dc016a360294022007200741c0016a360290022007200741bc016a36028c022007200741d0016a360288022007200741f0016a360284022007200741e0016a3602800220074180026a10d7081a034020072802f001220941016a41004c0d04200720093602f001024020072903f80142ffffffff0f560d0020074180026a10d7080d010b0b20072903e80121024100210c02400240024020072802bc01221220072802dc01220e6a22092012490d00201241016a220c20124f0d00410421102007410436029802410021130c010b200c41ffffffff0371200c470d2b200c4102742211417f4c0d2b0240024020110d00410421100c010b2011102c2210450d2d0b2007201036029802201141027621134100210c2009200e490d0b201241016a220c20124f0d010b41002111410021124100210c034020072802c801220f2009417f736a221d200f4f0d06200e20094f210f2009200e2009496b210920072802c001201d4102746a280200211d02400240200c2013470d00200c417f41004100417f2009200e6b221341016a221720172013491b200f1b2009200e491b221341016a221720172013491b6a2213200c490d2d20122013201220134b1b22134104201341044b1b221341ffffffff037120134641027421172013410274211302400240200c0d00200741003602d0020c010b200741043602d802200720113602d402200720103602d0020b200741c0026a20132017200741d0026a107d20072802c802211320072802c0024101460d01200720072802c402221036029802201341027621130b201020116a201d360200201141046a2111201241026a2112200c41016a210c2009200e49200f72450d010c0c0b0b20130d2b0c2a0b02402013200c4f0d002011410176220f200c200f200c4b1b220c4104200c41044b1b220c41ffffffff0371200c46410274210f200c410274210c0240024020110d00200741003602d0020c010b200741043602d802200720113602d402200720103602d0020b200741c0026a200c200f200741d0026a107d20072802c802210c20072802c0024101460d07200720072802c402221036029802200c41027621130b200e20094f0d072009417f73210c0340200c20072802c801220f6a2211200c4f0d06201020072802c00120114102746a280200360200200c41016a210c201041046a2110200e2009417f6a2209490d000b2012210c0c080b200e200941ccd7cc00103c000b200c200941ccd7cc00103c000b4190d9cc00411941acd9cc001039000b41bcd9cc004118200741d0026a41d4d9cc0041e4d9cc00103e000b201d200f41ccd7cc00103c000b2011200f41ccd7cc00103c000b200c0d230c220b4100210c20120d010b20072802c8012209200e417f736a220e20094f0d01201020072802c001200e4102746a280200360200200c41016a210c0b20072802d801220e41ffffffff0371200e470d1f200e4102742209417f4c0d1f20072802d00121120240024020090d00410421110c010b2009102c2211450d210b200720113602c002200720094102763602c40220112012200910e9081a2007200e3602c8024108102c2209450d2020092002a72221360204200920024220883e020020074282808080203702d402200720093602d002200741a0026a200741c0026a200741d0026a10bc072009102e200c20072802a8022222200c20224b1b220f4101200f41014b1b221041ffffffff03712010470d1f20104102742223417f4c0d1f20072802980221240240024020230d00410421250c010b202310322225450d210b02400240200f0d004100211d0c010b2010417f6a210e2022417f6a222620224b2117200c417f6a2227200c4b2115202520236a417c6a2111410021124200210420072802a0022128034041002109024020150d0041002109200c202720126b221d4d0d0041002109201d20274b0d002024201d4102746a28020021090b2009ad210241002109024020170d002022202620126b221d4d0d00201d20264b0d002028201d4102746a28020021090b0240024020022009ad22067d22032002560d00200320047d22012003560d00420021044100211d0c010b20024280808080108420047d20067d2101420121044101211d0b2010200e4d0d03201120013e02002011417c6a2111200e417f6a210e200f201241016a2212470d000b0b0240201341ffffffff0371450d002024102e0b20072802bc01220e20072802dc01220c6a2213200e490d06200c20134f0d04200c417f732109034020102010200c6a20096a22114d0d03200920072802c80122126a220c20094f0d0420072802c001200c4102746a202520114102746a2802003602002009417f6a210920072802dc01210c200e417f6a220e0d000c060b0b200e200941ccd7cc00103c000b200e201041ecd8cc00103c000b200f4101200f41014b1b200c6a20096a201041ccd7cc00103c000b200c201241ecd8cc00103c000b200e0d010b200c2013417f7322096a220c20106a220e200c4f0d0120072802c801220c20096a2209200c4f0d0220072802c00120094102746a2025200e4102746a28020036020020072802dc01210c0b2016200c417f736a220920164f0d02201820094102746a2021360200201d450d0a201620072802dc01417f736a220920164f0d03201820094102746a22092009280200417f6a3602004100210c02400240024020072802bc01221220072802dc01220e6a22092012490d00201241016a220c20124f0d0041042110200741043602bc02410021130c010b200c41ffffffff0371200c470d1a200c410274220c417f4c0d1a02400240200c0d00410421100c010b200c102c2210450d1c0b200720103602bc02200c410276211302402009200e4f0d004100210c0c0c0b201241016a221120124f0d010b41002111410021124100210c034020072802c801220f2009417f736a221d200f4f0d06200e20094f210f2009200e2009496b210920072802c001201d4102746a280200211d02400240200c2013470d00200c417f41004100417f2009200e6b221341016a221720172013491b200f1b2009200e491b221341016a221720172013491b6a2213200c490d1c20122013201220134b1b22134104201341044b1b221341ffffffff037120134641027421172013410274211302400240200c0d00200741003602d0020c010b200741043602d802200720113602d402200720103602d0020b200741c0026a20132017200741d0026a107d20072802c802211320072802c0024101460d01200720072802c40222103602bc02201341027621130b201020116a201d360200201141046a2111201241026a2112200c41016a210c2009200e49200f72450d010c0c0b0b20130d1a0c190b0240201320114f0d00200c410176220f2011200f20114b1b22114104201141044b1b221141ffffffff0371201146410274210f2011410274211102400240200c0d00200741003602d0020c010b200741043602d8022007200c3602d402200720103602d0020b200741c0026a2011200f200741d0026a107d20072802c802210c20072802c0024101460d07200720072802c40222103602bc02200c41027621130b200e20094f0d072009417f73210c0340200c20072802c801220f6a2211200c4f0d06201020072802c00120114102746a280200360200200c41016a210c201041046a2110200e2009417f6a2209490d000b2012210c0c080b200e201041ccd7cc00103c000b2009200c41ecd8cc00103c000b2009201641ecd8cc00103c000b2009201641ccd7cc00103c000b201d200f41ccd7cc00103c000b2011200f41ccd7cc00103c000b200c0d120c110b4100210c20120d010b20072802c8012209200e417f736a220e20094f0d04201020072802c001200e4102746a280200360200200c41016a210c20072802bc0221100b2007200c3602b802200720133602b402200720103602b00220072802d801220c41ffffffff0371200c470d0e200c4102742209417f4c0d0e20072802d00121110240024020090d004104210e0c010b2009102c220e450d100b2007200e3602d002200720094102763602d402200e2011200910e9081a2007200c3602d802200741c0026a200741d0026a200741b0026a10d608024020072802bc01220920072802dc01220f6a220c2009490d0002400240200f200c4f0d00200c417f73210920072802c002211d20072802c802210e200f21110340200e200e20116a20096a22114d0d08200920072802c80122176a221220094f0d0920072802c00120124102746a201d20114102746a280200360200200941016a210920072802dc012111200f200c417f6a220c490d000c020b0b20090d0120072802c802210e200f21110b200e2011200f417f7322096a6a220c200e4f0d0720072802c801220e20096a2209200e4f0d0820072802c00120094102746a20072802c002200c4102746a2802003602000b024020072802c40241ffffffff0371450d0020072802c002102e0b201341ffffffff0371450d002010102e0b02402023450d002025102e0b024020072802a40241ffffffff0371450d0020072802a002102e0b20200d000b02400240201c450d00024020072802bc0122094101460d00410020096b2110201c411f71210f4100201c6b411f71211d2019410274201b6a417c6a210c417f21090340200920072802c80122116a220e20094f0d0c2011200e417f6a22124d0d0d2019201920096a22114d0d0e200c20072802c001221120124102746a280200201d742011200e4102746a280200200f7672360200200c417c6a210c20102009417f6a2209470d000b20072802bc0121090b20072802c801220c200c20096b220e4d0d082019201920096b22094d0d09201b20094102746a20072802c001200e4102746a280200201c411f717636020041012109201b210e0c010b4100210920072802c801211920072802c401211f20072802c001210e201a450d00201b102e0b024020072802d40141ffffffff0371450d0020072802d001102e0b2009450d0020072802c40141ffffffff0371450d0020072802c001102e0b4104102c2209450d0c200941003602004104102c220c450d0c200c41003602000240024020180d00410121194101211f410121164101211e0c010b2009102e200c102e200e210c201821090b200720163602e8012007201e3602e401200720093602e001200720193602f8012007201f3602f4012007200c3602f00120074180026a200741f0016a10d5082007280280024101460d0a024020074180026a41086a29030020084201882005423f86845820074180026a41106a2903002202200542018822045820022004511b0d00200741f0016a41086a200741e0016a41086a280200360200200720072903e0013703f0014110102c2209450d0d20094280808080103702082009420037020020074284808080c00037028402200720093602800220074180026a10bb07200741e0016a200741f0016a20074180026a10d60820072802840241ffffffff0371450d00200728028002102e0b200741d0026a41086a200741e0016a41086a280200360200200720072903e0013703d0020c0e0b200e200941ccd7cc00103c000b2011200e41ccd7cc00103c000b2012201741ecd8cc00103c000b200c200e41ccd7cc00103c000b2009200e41ecd8cc00103c000b200e200c41ccd7cc00103c000b2009201941ecd8cc00103c000b200e201141ccd7cc00103c000b200e417f6a201141ccd7cc00103c000b2011201941ecd8cc00103c000b20072007290284023703f00141f8dbcc00412f200741f0016a41a8dccc0041b8dccc00103e000b1038000b1036000b200f41ffffffff0371450d002010102e0b200741d0026a10bb07200741f0016a41086a200741d0026a41086a280200360200200720072903d0023703f00120074180026a200741f0016a10d50841012109024002402007280280024101470d00200041c8dccc00360204200041086a41193602000c010b200041106a20074180026a41106a290300370300200041086a20074180026a41086a290300370300410021090b2000200936020020072802a40141ffffffff0371450d0020072802a001102e0b200741e0026a24000ba40201037f230041c0006b22022400200241206a22034200370300200241186a22044200370300200241086a41086a420037030020024200370308200241086a41d9fcc6004106108102200241286a41e8f7cb00410e1081022003200241286a41086a290000370300200420022900283703004100210320024100360230200242013703280240024002400240024020000e03000102040b200241003a003c200241286a2002413c6a410110742002200136023c200241286a2002413c6a410410740c020b200241013a003c200241286a2002413c6a410110740c010b200241023a003c200241286a2002413c6a410110740b200228022c21030b200241086a412020022802282200200228023010b20102402003450d002000102e0b200241c0006a24000bc30201037f230041c0006b22022400200241206a22034200370300200241186a22044200370300200241086a41086a420037030020024200370308200241086a41a5fec600411a108102200241286a41c8c3c800410c1081022003200241286a41086a29000037030020042002290028370300200241003602302002420137032802400240024002402000417e6a22034102200341ff01714102491b41ff01710e03000102030b200241003a003c200241286a2002413c6a410110740c020b200241013a003c200241286a2002413c6a410110740c010b200241023a003c200241286a2002413c6a41011074200220003a003c200241286a2002413c6a410110742002200136023c200241286a2002413c6a410410740b200241086a412020022802282200200228023010b2010240200228022c450d002000102e0b200241c0006a24000bdf0203027f027e017f230041c0006b2201240020002d001021022000290308210320002903002104200141086a41186a22004200370300200141186a22054200370300200141086a41086a420037030020014200370308200141086a41a8f8c6004104108102200141286a41aa8cc50041181081022000200141286a41086a290000370300200520012900283703002001410036023020014201370328200141013a0038200141286a200141386a4101107420012004370338200141286a200141386a4108107420012003370338200141286a200141386a41081074024002400240024020020e03000102030b200141003a0038200141286a200141386a410110740c020b200141013a0038200141286a200141386a410110740c010b200141023a0038200141286a200141386a410110740b200141086a412020012802282200200128023010b2010240200128022c450d002000102e0b200141c0006a24000bc10201047f230041c0006b22012400200141186a22024200370300200141106a22034200370300200141086a420037030020014200370300200141d9fcc6004106108102200141206a41b4f4cb0041061081022002200141206a41086a29000037030020032001290020370300024002402000280208220341246c41046a2202417f4c0d00200028020021000240024020020d00410121040c010b2002102c2204450d020b2001410036023820012002360234200120043602302003200141306a10760240200341246c2202450d000340200141206a200010ef04200141306a200128022022032001280228107402402001280224450d002003102e0b200041246a21002002415c6a22020d000b0b2001412020012802302200200128023810b20102402001280234450d002000102e0b200141c0006a24000f0b1038000b1036000bbe0401027f230041106b220224000240024002400240024002400240024020012d00000e06010402030500010b2000410036020820004201370200200241003a00002000200241011074200141046a28020021032001410c6a28020022012000107620002003200110740c050b2000410036020820004201370200200241023a000020002002410110744120102c2203450d0520024220370204200220033602002002200141016a41201074200020022802002201200228020810742002280204450d042001102e0c040b2000410036020820004201370200200241043a000020002002410110742000200141016a41041074200141086a2802002103200141106a28020022012000107620002003200110740c030b2000410036020820004201370200200241053a000020002002410110742000200141016a41041074200141086a2802002103200141106a28020022012000107620002003200110740c020b2000410036020820004201370200200241063a000020002002410110742000200141016a41041074200141086a2802002103200141106a28020022012000107620002003200110740c010b2000410036020820004201370200200241073a00002000200241011074200241003a000020002002410110740240200141046a2802004101460d00200241003a000020002002410110740c010b200241013a000020002002410110742002200141086a280200360200200020024104107420022001410c6a28020036020020002002410410740b200241106a24000f0b1036000bbd0101037f230041306b22012400200141186a22024200370300200141106a22034200370300200141086a420037030020014200370300200141d9fcc6004106108102200141206a41a0f4cb00410a1081022002200141206a41086a2900003703002003200129002037030002404120102c2202450d002001422037022420012002360220200141206a2000412010742001412020012802202200200128022810b20102402001280224450d002000102e0b200141306a24000f0b1036000bd50302087f017e230041f0006b22022400200241c0006a41186a22034200370300200241c0006a41106a22044200370300200241c0006a41086a2205420037030020024200370340200241e0006a41d9fcc60041061081022005200241e0006a41086a220629000037030020022002290060370340200241e0006a41d4f2cb00410b1081022003200629000037030020042002290060370300200241206a200241c0006a10f204200220022903284200200229032042015122071b3703182002200241206a41106a2208290300420020071b3703102002200241206a41186a2209290300420020071b370308200241086a2107024002400240200141ff01710e03010002010b200241106a21070c010b200241186a21070b2007427f2007290300220a20007c22002000200a541b3703002009200229030837030020082002290310370300200220022903183703282002420137032020034200370300200442003703002005420037030020024200370340200241e0006a41d9fcc60041061081022005200629000037030020022002290060370340200241e0006a41d4f2cb00410b108102200441086a200629000037000020042002290060370000200241c0006a200241206a41086a10f304200241f0006a24000bbb0202037f017e230041d0006b220224002002412036020420022001360200200241086a2001412010ed0202400240200228020822010d00200042003703000c010b200228020c2103024002400240200241086a41086a28020022044108490d00200441787141786a0e09000101010101010100010b20024100360220200242013703182002410a36022c200220023602282002200241186a360234200241cc006a41013602002002420137023c200241909dc5003602382002200241286a360248200241346a419cebc000200241386a103d1a2002280218200228022010ef020240200228021c450d002002280218102e0b420021050c010b200041186a2001290010370300200041106a200129000837030020002001290000370308420121050b200020053703002003450d002001102e0b200241d0006a24000b8c0101017f230041206b22022400200241003602102002420137030820022001290300370318200241086a200241186a4108107420022001290308370318200241086a200241186a4108107420022001290310370318200241086a200241186a410810742000412020022802082201200228021010b2010240200228020c450d002001102e0b200241206a24000bb80301067f230041f0006b22012400200141186a22024200370300200141106a22034200370300200141086a420037030020014200370300200141a5fec600411a108102200141d8006a41c8c3c800410c1081022002200141d8006a41086a290000370300200320012900583703002001412036022420012001360220200141286a2001412010ed0202400240200128022822040d00410421020c010b200128022c2105024002400240200141286a41086a2802002206450d00410221020240024020042d00000e03040001020b410321020c020b20064101460d00410021020240024020042d00010e020100020b410121020b2006417e6a4104490d00200428000221030c020b20014100360240200142013703382001410a36024c2001200141206a3602482001200141386a360254200141ec006a41013602002001420137025c200141909dc5003602582001200141c8006a360268200141d4006a419cebc000200141d8006a103d1a2001280238200128024010ef020240200128023c450d002001280238102e0b410421020b0b2005450d002004102e0b2000200336020420004102200220024104461b3a0000200141f0006a24000bc50d04077f017e097f037e230041c0026b22012400200141306a22024200370300200141286a22034200370300200141186a41086a420037030020014200370318200141186a41a5fec600411a108102200141d8016a41c8c4c80041081081022002200141d8016a41086a290000370300200320012900d8013703002001412036023c2001200141186a360238200141c0006a200141186a412010ed0202400240200128024022040d00410021050c010b200128024421062001200141c0006a41086a28020036025420012004360250200141106a200141d0006a10ab010240024020012802100d000240024020012802142207200128025441386e2202200220074b1bad42387e2208422088a70d002008a72202417f4c0d0002400240024020020d00410821050c010b2002102c2205450d010b200241386e21090240024020070d00410021070c010b4100210a4100210b0340200141003a00f801200b220c41016a210b2001280254210d417f210341002102024002400340200d2002460d01200141d8016a20026a2001280250220e2d00003a00002001200d20036a3602542001200e41016a3602502001200241016a220f3a00f8012003417f6a2103200f2102200f4120470d000b200141a0026a41186a2202200141d8016a41186a290300370300200141a0026a41106a2203200141d8016a41106a290300370300200141a0026a41086a2210200141d8016a41086a290300370300200120012903d8013703a002200f41ff01714120490d06200141b8016a41086a22112010290300370300200141b8016a41106a22102003290300370300200141b8016a41186a22032002290300370300200120012903a0023703b801200d200f6b22024108490d06200e29000121122001200e41096a3602502001200241786a360254200141086a200141d0006a10ab012001280208450d01200141003602d8010c060b200241ff0171450d05200141003a00f8010c050b200141d8016a200141d0006a200128020c10920120012802d801220f450d0420014198016a41186a2003290300220837030020014198016a41106a20102903002213370300200141f8006a41086a20112903002214370300200141f8006a41106a2013370300200141f8006a41186a2008370300200141d8006a41186a22032008370300200141d8006a41106a220d2013370300200141d8006a41086a220e2014370300200120012903b80122083703782001200837035820012902dc0121080240200c2009470d00200941016a22022009490d04200941017422102002201020024b1b22024104200241044b1bad42387e2213422088a74541037421022013a721100240024020090d00200141003602d8010c010b200141083602e001200120053602d8012001200941386c3602dc010b200141a0026a20102002200141d8016a107d20012802a8022102024020012802a0024101470d0020020d040c050b20012802a4022105200241386e21090b2005200c41386c6a2202201237030020022001290358370308200241106a200e290300370300200241186a200d290300370300200241206a20032903003703002002412c6a20083702002002200f360228200a41386a210a200b2007470d000b0b2005450d032001200141d0006a10ab010240024002402001280200450d00200141003602d8010c010b200141d8016a200141d0006a200128020410920120012802d8010d010b02402007450d002005200741386c6a210f200521020340200241386a210302402002412c6a28020041ffffff3f71450d00200241286a280200102e0b20032102200f2003470d000b0b024020090d00410021090c050b200941386c450d042005102e0c040b200141a0026a41086a200141d8016a41086a280200360200200120012903d8013703a0020c040b1036000b1038000b200141f8006a41186a20014198016a41186a2903003703000240200c450d002005412c6a210203400240200228020041ffffff3f71450d002002417c6a280200102e0b200241386a2102200a41486a220a0d000b0b2009450d00200941386c21022002450d002005102e0b41002105200141003602a802200142013703a0022001410a360284022001200141386a360280022001200141a0026a3602b801200141ec016a4101360200200142013702dc01200141909dc5003602d801200120014180026a3602e801200141b8016a419cebc000200141d8016a103d1a20012802a00220012802a80210ef0220012802a402450d0020012802a002102e0b2006450d002004102e0b200041086a200736020020002009360204200020053602002000410c6a20012903a002370200200041146a200141a0026a41086a280200360200200141c0026a24000b340020004199fdc60036020420004100360200200041146a4104360200200041106a41b08dc500360200200041086a42083702000b2e01017f02404104102c22020d001036000b200042043702042000200236020041002000107620004101410010740b2f01017f02404104102c22020d001036000b200042043702042000200236020041002000107641044100200010a0010b950101027f230041f0006b22022400200241c8006a410036020002404101102c2203450d002000420137020420002003360200200241003a006f2000200241ef006a41011074024020022802482200450d000240200241cc006a2802002203450d00200341306c450d002000102e0b200241dc006a28020041ffffff3f71450d002002280258102e0b200241f0006a24000f0b1036000b150020002002ad4220862001ad842003100a4101460bb60201067f024002402001280200220228020422030d00410121030c010b200228020022042d0000210520022003417f6a360204410121032002200441016a3602000240200541037122024103470d000c010b024002400240024020020e03000102000b200541027621020c020b02402001280200220228020422010d000c030b200228020022032d0000210420022001417f6a3602042002200341016a360200200441087420057241ffff03712202418002492103200241027621020c020b024020012802002202280204220141034f0d000c020b2002280200220441026a2d0000210620042f000021072002200441036a36020020022001417d6a360204200720064110747241087420057222014180807c6a41ffff0b4b0d01200141027621020b410021030b200020023b0102200020033b01000b950201067f02400240200128020422020d00410121030c010b200128020022042d0000210520012002417f6a2206360204410121032001200441016a3602000240200541037122074103470d000c010b024002400240024020070e03000102000b200541027621010c020b024020060d000c030b20042d0001210320012002417e6a3602042001200441026a360200200341087420057241ffff03712201418002492103200141027621010c020b0240200641034f0d000c020b200441036a2d0000210720042f0001210620012002417c6a3602042001200441046a360200200620074110747241087420057222024180807c6a41ffff0b4b0d01200241027621010b410021030b200020013b0102200020033b01000be10101027f230041106b2202240002400240024020002f0100220341c000490d00200341808001490d012002200341027441027236020020012002410410740c020b200220034102743a00052001200241056a410110740c010b200220034102744101723b01062001200241066a410210740b02400240024020002f0102220041c000490d00200041808001490d01200220004102744102723602082001200241086a410410740c020b200220004102743a00052001200241056a410110740c010b200220004102744101723b010e20012002410e6a410210740b200241106a24000b340020004180fdc60036020420004100360200200041146a4102360200200041106a41ac97c500360200200041086a42123702000b4e01027f230041106b2202240002404110102c22030d001036000b200042103702042000200336020020024200370308200242808090bbbad6adf00d3703002000200241101074200241106a24000b1300200041023602042000419899c5003602000bc60202057f017e230041f0006b220224004280c2d72f42004280f985d40442001082052103200241106a22044200370300200241086a42003703002002411c6a22054180023b0100200241186a22062003360200200242003703002002410136026802404118102c2203450d0020032002290308370300200320022d001d3a00152003200429030037030820032006280200360210200320052d00004100473a00140240200228026822044105490d00200441186c450d002002280204102e0b411c102c2204450d002000421c37020420002004360200410120001076200329030021072002200341086a290300370308200220073703002000200241101074200220032802103602002000200241041074200220032d00143a00002000200241011074200220032d00153a000020002002410110742003102e200241f0006a24000f0b1036000bb10302027f037e230041d0006b22042400200441386a20024201200242015620034200522003501b22051b22022003420020051b2203428094ebdc03420010e708200441286a20022003428094ebdc03420010e608200441186a20022003200429033822062004290328200441286a41086a29030084420052ad7c220742012007420156200441386a41086a2903002007200654ad7c22074200522007501b22051b22062007420020051b220810e70802400240024020042903182207428080808010544100200441186a41086a290300501b450d00200441086a200220002002200054200320015420032001511b22051b2003200120051b2006200810e70820042903082203428080808010544100200441086a41086a290300501b450d012007a70d0241d0d8c800411941bcd7cc001039000b2004411136024c2004419cd5cc0036024841add5cc0041de00200441c8006a41bcdcc80041bcd7cc00103e000b2004411136024c2004419cd5cc0036024841add5cc0041de00200441c8006a41bcdcc80041bcd7cc00103e000b200441d0006a2400200342ffffffff0f83428094ebdc037e200742ffffffff0f8380a70b4801027f230041106b2202240002404110102c22030d001036000b200042103702042000200336020020024200370308200242c0843d3703002000200241101074200241106a24000b4d01017f230041206b22002400200041146a4101360200200042013702042000419cc3cb003602002000410436021c20004194c3cb003602182000200041186a360210200041889cc5001044000b840707017f047e027f017e047f057e037f23004180026b22022400200241c0006a200110db040240024002402002290340a70d00200241c0006a41106a290300210320022903482104200241286a200110db0402402002290328a70d00200241286a41106a290300210520022903302106200241206a200110ab01024020022802200d000240024020022802242207200128020441306e2208200820074b1bad42307e2209422088a70d002009a72208417f4c0d000240024020080d004108210a0c010b2008102c220a450d060b200841306ead2109024002402007450d00200241d8016a410172210b0340200241d8016a200110930120022d00d8014101460d04200241b8016a41186a2208200b41186a290000370300200241b8016a41106a220c200b41106a290000370300200241b8016a41086a220d200b41086a2900003703002002200b2900003703b801200241086a200110db042002290308a70d04200241086a41106a290300210e2002290310210f200241f8006a41086a200d2903002210370300200241f8006a41106a200c2903002211370300200241f8006a41186a20082903002212370300200241d8006a41086a220d2010370300200241d8006a41106a22132011370300200241d8006a41186a22142012370300200220022903b80122103703782002201037035802402009422088a7220c2009a7470d00200c41016a2208200c490d04200c4101742215200820082015491b22084104200841044b1bad42307e2209422088a74541037421082009a7211502400240200c0d00200241003602d8010c010b200241083602e0012002200a3602d8012002200c41306c3602dc010b200241b8016a20152008200241d8016a107d20022802c001210820022802b8014101460d0320022802bc01210a200841306ead21090b200a200c41306c6a2208200e3703082008200f37030020082002290358370310200841186a200d290300370300200841206a2013290300370300200841286a2014290300370300200942ffffffff0f83200c41016aad4220868421092007417f6a22070d000b0b200a450d0320002004370300200020093702242000200a3602202000200637031020002003370308200041186a20053703000c070b20080d050b1038000b2009a72201450d00200141306c450d00200a102e0b200041003602200c030b200041003602200c020b200041003602200c010b1036000b20024180026a24000bb10201037f230041e0006b22022400200241086a4192fdc6004107108102200241186a41f09dc500410a108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000b830301057f230041e0006b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022040d00410221010c010b200328021421052003200341186a280200360224200320043602202003200341206a10ab010240024020032802000d00200328020421012003418094ebdc0336024c2003200136024820032802242206450d00200341c8006a2001418094ebdc034b4102746a2802002102200328022022012d0000210720032006417f6a3602242003200141016a36022041002101024020070e020200010b410121010c010b20034100360230200342013703282003410a36023c2003200341086a3602382003200341286a360244200341dc006a41013602002003420137024c200341909dc5003602482003200341386a360258200341c4006a419cebc000200341c8006a103d1a2003280228200328023010ef020240200328022c450d002003280228102e0b410221010b2005450d002004102e0b200020013a000420002002360200200341e0006a24000b801301267f23004190046b220424000240024002402001280200220520012802044f0d00200441f7026a2106200441a4016a2107200441ac036a2108200441f0026a4101722109200441d1036a220a41036a210b03402001200541016a360200200441e0016a2005108905200441f0026a20042802e001220c20042802e801108a05200441d8036a41086a220d200941086a290000370300200441d8036a41106a220e200941106a290000370300200441d8036a41186a220f200941186a290000370300200441d8036a41206a2210200941206a290000370300200441d8036a41286a2211200941286a290000370300200441d8036a412f6a22122009412f6a29000037000020044188026a41086a2213200841086a29000037030020044188026a41106a2214200841106a29000037030020044188026a41186a2215200841186a29000037030020044188026a41206a2216200841206a280000360200200420092900003703d803200420082900003703880220042802a803211720042d00f00221182004200a2800003602782004200b28000036007b41022119024020184102460d0020042d00d003211a200441a0016a412f6a2012290000370000200441a0016a41286a2011290300370300200441a0016a41206a2010290300370300200441a0016a41186a200f290300370300200441a0016a41106a200e290300370300200441a0016a41086a200d290300370300200441c8026a41086a2013290300370300200441c8026a41106a2014290300370300200441c8026a41186a2015290300370300200441c8026a41206a2016280200360200200420042903d8033703a00120042004290388023703c8022004200428007b3600c302200420042802783602c002201821192017211b0b024020042802e401450d00200c102e0b200d200441a0016a41086a221c290300370300200e200441a0016a41106a221d290300370300200f200441a0016a41186a221e2903003703002010200441a0016a41206a221f2903003703002011200441a0016a41286a22202903003703002012200441a0016a412f6a290000370000200441f8006a41086a2221200441c8026a41086a2218290300370300200441f8006a41106a2222200441c8026a41106a220c290300370300200441f8006a41186a2223200441c8026a41186a2217290300370300200441f8006a41206a2224200441c8026a41206a2225280200360200200420042903a0013703d803200420042903c802370378200420042800c302360073200420042802c002360270200441f0026a41086a2226200d290300370300200441f0026a41106a2227200e290300370300200441f0026a41186a220e200f290300370300200441f0026a41206a220f2010290300370300200441f0026a41286a22102011290300370300200441f0026a412f6a2012290000370000200420042903d8033703f00220182021290300370300200c20222903003703002017202329030037030020252024280200360200200420042903783703c802200420042800733600c302200420042802703602c00202400240024020194102460d002019410171450d010b4103210d0c010b20072006290000370000200741286a200641286a290000370000200741206a200641206a290000370000200741186a200641186a290000370000200741106a200641106a290000370000200741086a200641086a290000370000200441e0016a41086a22112018290300370300200441e0016a41106a2212200c290300370300200441e0016a41186a22192017290300370300200441e0016a41206a22182025280200360200200420042903c8023703e0012013201c2902003703002014201d2902003703002015201e2902003703002016201f29020037030020044188026a41286a220c202029020037030020044188026a41306a2217200441a0016a41306a280200360200200420042800c3023600db01200420042802c0023602d801200420042902a001370388024103210d201a41ff01714103460d002026201329030037030020272014290300370300200e2015290300370300200f20162903003703002010200c290300370300200441f0026a41306a220d2017280200360200201c2011290300370300201d2012290300370300201e2019290300370300201f201828020036020020042004290388023703f002200420042903e0013703a001200420042800db013600cb02200420042802d8013602c8020240201b2003280200280200470d00200441386a41306a200d280200360200200441386a41286a2010290300370300200441386a41206a200f290300370300200441386a41186a200e290300370300200441386a41106a2027290300370300200441386a41086a2026290300370300200441106a41086a201c290300370300200441106a41106a201d290300370300200441106a41186a201e290300370300200441106a41206a201f280200360200200420042903f002370338200420042903a001370310200420042800cb0236000b200420042802c80236020820052128201b2129201a210d0c010b41002128200441386a41306a41002802b49e45360200200441386a41286a41002902ac9e45370300200441386a41206a41002902a49e45370300200441386a41186a410029029c9e45370300200441386a41106a41002902949e45370300200441386a41086a410029028c9e45370300200441106a41086a41002902c49e45370300200441106a41106a41002902cc9e45370300200441106a41186a41002902d49e45370300200441106a41206a41002802dc9e45360200200441002902849e45370338200441002902bc9e45370310200441002800e49e4536000b200441002800e19e453602084103210d410021290b200d41ff01714103470d02200128020022052001280204490d000b0b200041033a00600c010b2000202836020020002004290338370204200020293602382000200429031037023c2000410c6a200441386a41086a290300370200200041146a200441386a41106a2903003702002000411c6a200441386a41186a290300370200200041246a200441386a41206a2903003702002000412c6a200441e0006a290300370200200041346a200441e8006a280200360200200041c4006a200441106a41086a290300370200200041cc006a200441106a41106a290300370200200041d4006a200441106a41186a290300370200200041dc006a200441106a41206a2802003602002004200428000b360003200420042802083602002000200d3a006020002004280200360061200041e4006a20042800033600000b20044190046a24000b850201037f230041d0006b22022400200241086a41de80ca004109108102200241186a41e780ca004110108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000bfc0f05057f017e027f057e037f230041d0016b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822010d00200041023a00000c010b200328020c210202400240200341106a2802002204450d002004417f6a21050240024002400240024020012d00000e020001050b20054104490d0420012800012106200341003a00880120044105460d0420012d00052105200341013a008801200320053a006820044106470d010c030b2005450d03410021050240024020012d00010e020100050b410121050b2004417e6a4104490d03200341206a41086a200341e8006a41086a290300370300200341206a41106a200341e8006a41106a290300370300200341206a41186a200341e8006a41186a290300370300200320032903683703202003200328009001360218200320034193016a28000036001b20012800022107410121040c010b20012d00062105200341023a008801200320053a006920044107460d0120012d00072105200341033a008801200320053a006a20044108460d0120012d00082105200341043a008801200320053a006b20044109460d0120012d00092105200341053a008801200320053a006c2004410a460d0120012d000a2105200341063a008801200320053a006d2004410b460d0120012d000b2105200341073a008801200320053a006e2004410c460d0120012d000c2105200341083a008801200320053a006f2004410d460d0120012d000d2105200341093a008801200320053a00702004410e460d0120012d000e21052003410a3a008801200320053a00712004410f460d0120012d000f21052003410b3a008801200320053a007220044110460d0120012d001021052003410c3a008801200320053a007320044111460d0120012d001121052003410d3a008801200320053a007420044112460d0120012d001221052003410e3a008801200320053a007520044113460d0120012d001321052003410f3a008801200320053a007620044114460d0120012d00142105200341103a008801200320053a007720044115460d0120012d00152105200341113a008801200320053a007820044116460d0120012d00162105200341123a008801200320053a007920044117460d0120012d00172105200341133a008801200320053a007a20044118460d0120012d00182105200341143a008801200320053a007b20044119460d0120012d00192105200341153a008801200320053a007c2004411a460d0120012d001a2105200341163a008801200320053a007d2004411b460d0120012d001b2105200341173a008801200320053a007e2004411c460d0120012d001c2105200341183a008801200320053a007f2004411d460d0120012d001d2105200341193a008801200320053a0080012004411e460d0120012d001e21052003411a3a008801200320053a0081012004411f460d0120012d001f21052003411b3a008801200320053a00820120044120460d0120012d002021052003411c3a008801200320053a00830120044121460d012003411d3a008801200320012d00213a00840120044122460d012003411e3a008801200320012d00223a00850120044123460d012003411f3a008801200320012d00233a00860120044124460d01200341c8006a41106a200341e8006a41106a290300370300200341c8006a41086a200341e8006a41086a290300370300200320012d00243a008701200341c8006a41186a200341e8006a41186a290300370300200341203a008801200320032903682208370390012003200837034820044125460d024100210902400240024020012d00250e03020100050b410221090c010b410121090b2004415a6a4104490d02200441566a4110490d02200441466a4110490d02200441b67f6a410f4d0d022001280026210a200341206a41086a200341c8006a41086a290300370300200341206a41106a200341c8006a41106a290300370300200341206a41186a200341c8006a41186a29030037030020032003290348370320200320032800413602182003200341c4006a28000036001b200141d2006a2900002108200141c2006a290000210b200141326a290000210c200129004a210d200129003a210e200129002a210f410021040b200341e8006a41186a2210200341206a41186a290300370300200341e8006a41106a2211200341206a41106a290300370300200341e8006a41086a2212200341206a41086a2903003703002003200329032037036820032003280218360290012003200328001b36009301200041306a2008370000200041286a200d370000200041206a200b370000200041186a200e370000200041106a200c370000200041086a200f3700002000413c6a200a360000200041386a2006360000200041046a2007360000200020053a0001200041e0006a20093a0000200041c0006a2003290368370000200041c8006a2012290300370000200041d0006a2011290300370000200041d8006a2010290300370000200041e1006a200328029001360000200041e4006a2003280093013600000c020b200341003a0088010b200341003602980120034201370390012003410a36024c20032003360248200320034190016a360220200341fc006a41013602002003420137026c200341909dc5003602682003200341c8006a360278200341206a419cebc000200341e8006a103d1a20032802900120032802980110ef020240200328029401450d00200328029001102e0b410221040b200020043a00002002450d002001102e0b200341d0016a24000b130020002002ad4220862001ad84102610da080bbe0303057f017e037f230041306b22022400200241086a200128020c200141146a280200108b050240024020022802082203450d00200141086a2104200141106a2105024003400240024020042802002206200229020c2207422088a722084b0d0020012802002003200610ec08450d010b2007a7450d032003102e0c030b02402005280200450d00200128020c102e0b2001200336020c20052007370200200241086a2003200810ed020240024020022802082203450d0020022802102109200228020c2108024020012d001c450d00200128020c200128021410ff010b2001280214220a20042802002206490d03200241086a200128020c20066a200a20066b20032009200128021811050020022d002c4102470d012008450d002003102e0b200241086a200128020c2001280214108b05200228020822030d010c030b0b20002002290308370200200041206a200241086a41206a290300370200200041186a200241086a41186a290300370200200041106a200241086a41106a290300370200200041086a200241086a41086a2903003702002008450d022003102e0c020b2006200a41e89ec5001056000b200041023a00240b200241306a24000be30303057f017e037f230041c0006b22022400200241086a200128020c200141146a280200108b050240024020022802082203450d00200141086a2104200141106a2105024003400240024020042802002206200229020c2207422088a722084b0d0020012802002003200610ec08450d010b2007a7450d032003102e0c030b02402005280200450d00200128020c102e0b2001200336020c20052007370200200241086a2003200810ed020240024020022802082203450d0020022802102109200228020c2108024020012d001c450d00200128020c200128021410ff010b2001280214220a20042802002206490d03200241086a200128020c20066a200a20066b20032009200128021811050020022802340d012008450d002003102e0b200241086a200128020c2001280214108b05200228020822030d010c030b0b20002002290308370200200041306a200241086a41306a290300370200200041286a200241086a41286a290300370200200041206a200241086a41206a290300370200200041186a200241086a41186a290300370200200041106a200241086a41106a290300370200200041086a200241086a41086a2903003702002008450d022003102e0c020b2006200a41e89ec5001056000b2000410036022c0b200241c0006a24000bbe0301017f230041106b220224000240024020002d00004101460d00200241003a000f20012002410f6a41011074024002400240024002400240024002400240024020002d00010e0a000102030405060708090b0b200241003a000f20012002410f6a410110740c0a0b200241013a000f20012002410f6a410110740c090b200241023a000f20012002410f6a410110740c080b200241033a000f20012002410f6a410110740c070b200241043a000f20012002410f6a410110740c060b200241053a000f20012002410f6a410110740c050b200241063a000f20012002410f6a410110740c040b200241073a000f20012002410f6a410110742002200041026a2d00003a000f20012002410f6a410110740c030b200241083a000f20012002410f6a410110740c020b200241093a000f20012002410f6a410110740c010b200241013a000f20012002410f6a4101107402400240024020002d00010e03000102030b200241003a000f20012002410f6a410110740c020b200241013a000f20012002410f6a410110740c010b200241023a000f20012002410f6a410110742002200041026a2d00003a000f20012002410f6a410110740b200241106a24000b9c0101037f230041206b2202240020024100360208200242013703002001280200210302404120102c2204450d002002422037021420022004360210200241106a2003412010742002200228021022032002280218107402402002280214450d002003102e0b2002200128020441201074200020022802002201200228020810b00102402002280204450d002001102e0b200241206a24000f0b1036000baa0a01067f230041c0006b22022400024041ca03102c2203450d0020002003360200200041046a220442ca03370200200341003b000041022105200041086a4102360200024002400240200128020022032903684202520d00410221010240024020042802004102470d00200242828080801037021420022000280200360210200241306a41084101200241106a107d200241306a41086a280200210120022802304101460d0120002002280234360200200041046a2001360200200041086a28020021010b200028020020016a41043a0000200041086a2201200128020041016a3602000c020b2001450d020c030b02400240024002400240024020042802004102470d00200242828080801037021420022000280200360210200241306a41084101200241106a107d200241306a41086a280200210120022802304101460d0120002002280234360200200041046a2001360200200041086a28020021050b200341e8006a2101200028020020056a4184013a0000200041086a2204200428020041016a3602002003200010f50120032d00240e03010203040b20010d060c050b200241003a00102000200241106a410110742000200341256a41c00010740c020b200241013a00102000200241106a410110742000200341256a41c00010740c010b200241023a00102000200241106a410110742000200341256a41c10010740b200120001091050b20034198016a2000109002200041086a220128020021034104102c2204450d01200242043702042002200436020041012003417e6a220320034101461b410020031b2002107602402001280200220141014d0d00200241286a2002280200220320022802086a220436020020022000360220200041086a4100360200200241023602102002411c6a2000280200220541026a22063602002002200336022420022001417e6a220136021420022006360218200241246a21060240024020010d002000200610ee010c010b41002101034020032004460d012002200341016a360224200520016a20032d00003a00002000200028020841016a360208024020014101460d00200141016a210120022802242103200228022821040c010b0b0240200228022820022802246b2203450d00200241106a200310920520022802202200280208220320022802102201460d00200120036b2104200028020020036a21030340200228022422012002280228460d022002200141016a360224200320012d00003a00002000200028020841016a360208200341016a21032004417f6a22040d000b0b200228022820022802246b2203417f4c0d020240024020030d00410121010c010b2003102c2201450d040b200241003602382002200336023420022001360230200241306a200610ee012002280234210620022802302107024020022802382203450d00200241106a200310920520022802202204280208220120022802102200460d00200020016b2105200428020020016a21012007210003402003450d01200120002d00003a00002004200428020841016a3602082003417f6a2103200041016a2100200141016a21012005417f6a22050d000b0b2006450d002007102e0b02402002280218200228021c2203460d00200220033602180b024020022802142203450d000240200228021022042002280220220541086a22002802002201460d002005280200220520016a200520046a200310ea081a200228021421030b2000200320016a3602000b02402002280204450d002002280200102e0b200241c0006a24000f0b4102200141b4b3c000104d000b1038000b1036000baa0103017f027e017f230041106b220224000240024020002903004201520d002002200041106a290300200041086a2903002203420c882204420120044201561b80a741047420037aa7417f6a22054101200541014b1b2205410f2005410f491b723b01082001200241086a410210740c010b200241003a000b20012002410b6a410110740b200041286a20011091022002200041186a36020c2002410c6a200110af01200241106a24000b950201067f230041206b22022400024002402000280210220341046a280200220420002802042205200028020022066a22076b2001490d00200328020021040c010b0240200720016a22062007490d00200441017422052006200520064b1b22064108200641084b1b21060240024020040d00200241003602100c010b200241106a41086a410136020020022004360214200220032802003602100b200220064101200241106a107d200241086a2802002106024020022802004101460d00200320022802042204360200200341046a200636020020002802042105200028020021060c020b2006450d001036000b1038000b2004200620016a22016a200420066a200510ea081a20002001360200200241206a24000b5401027f230041106b2202240002404108102c22030d001036000b2000420837020420002003360200200241003602082000200241086a410410742002410036020c20002002410c6a41041074200241106a24000b4f01027f230041106b2202240002404114102c22030d001036000b200042143702042000200336020041044100200010950520024200370308200242003703002000200241101074200241106a24000ba40101027f230041106b22032400200120021076024002402001450d00200141c4006c210103402002200041046a412010744120102c2204450d0220034220370204200320043602002003200041246a412010742002200328020022042003280208107402402003280204450d002004102e0b200320002802003602002002200341041074200041c4006a2100200141bc7f6a22010d000b0b200341106a24000f0b1036000b5d01027f230041206b22022400200241186a4200370300200241106a4200370300200241086a42003703002002420037030002404120102c22030d001036000b20004220370204200020033602002000200241201074200241206a24000b2f01017f02404104102c22020d001036000b2000420437020420002002360200410020001076410841002000109e010b4f01027f230041106b2202240002404114102c22030d001036000b200042143702042000200336020041044100200010d80220024200370308200242003703002000200241101074200241106a24000b5801017f230041106b220224002000410036020820004201370200200242003703082000200241086a41081074200242003703082000200241086a41081074200242003703082000200241086a41081074200241106a24000b7a01017f230041106b22022400200041003602082000420137020020024200370308200242003703002000200241101074200242003703082002420037030020002002411010742002420037030820024200370300200020024110107420024200370308200242003703002000200241101074200241106a24000b8f0101027f230041306b220224002000410036020820004201370200200241186a4200370300200241106a4200370300200241086a42003703002002420037030002404120102c2203450d002002422037022420022003360220200241206a2002412010742000200228022022032002280228107402402002280224450d002003102e0b200241306a24000f0b1036000b4201027f230041106b2202240002404104102c22030d001036000b20004204370204200020033602002002410136020c20002002410c6a41041074200241106a24000bb60101017f230041106b22022400200041003602082000420137020020024100360200200020024104107420024100360200200020024104107420024100360200200020024104107420024100360200200020024104107420024200370308200242003703002000200241101074200242003703082002420037030020002002411010742002420037030820024200370300200020024110107420024200370308200242003703002000200241101074200241106a24000b2901017f230041106b2202240020024100360208200242043703002000200210b501200241106a24000ba40b02087f067e230041b0036b2203240020034190036a41186a2204420037030020034190036a41106a2205420037030020034190036a41086a22064200370300200342003703900341062107200341d8016a41d9fcc60041061081022006200341d8016a41086a2208290000370300200320032900d80137039003200341d8016a4188f3cb00411010810220042008290000370300200520032900d801370300200341086a20034190036a4120108e02410021090240417f200328020c410020032802081b220a20026a22022002200a491b220a418080c002418080f001200141ff017122021b4b0d00200341106a10a9032004420037030020054200370300200642003703002003420037039003200341d8016a41d9fcc600410610810220062008290000370300200320032900d80137039003200341d8016a41d4f2cb00410b108102200541086a2008290000370000200520032900d801370000200341d8016a20034190036a10f204200341d8016a41186a290300210b200341d8016a41106a290300210c20032903e001210d20032903d801210e200341d8016a200341106a41b80110e9081a2003200d4200200e42015122061b370390032003200c420020061b3703d0012003200b420020061b3703c801024002400240024020020e03010200010b427f2000200341d8026a22062903007c220b200b2000541b210b0c020b427f200020032903e8017c220b200b2000541b210b200341e8016a21060c010b427f2000200341a0026a22062903007c220b200b2000541b210b0b02400240024002402006290318220c4201510d0020062903284201510d00200341c8016a2108024002400240200141ff01710e03010002010b200341d0016a21080c010b20034190036a21080b2008427f2008290300220d200b7c220b200b200d541b3703000c010b200341c8016a2108024002400240200141ff01710e03010002010b200341d0016a21080c010b20034190036a21080b2008290300220d200b7c220b200d540d012008200b3703000b200341c8016a2108024002400240200141ff01710e03000102000b20034190036a21080c010b200341d0016a21080b2008290300210e0240200c4201520d00200e200641206a290300560d010b0240427f427f200329039003220b20032903d001220c7c220d200d200b541b220f20032903c801220d7c22102010200f541b20032903e001580d0020062903284201520d00200e200641306a290300560d010b41002106410021070c010b41062107410121060b20060d00200341d8016a10a9030240024002400240200141ff01710e03010200010b200341d8026a21010c020b200341e8016a21010c010b200341a0026a21010b024020012903084201520d0041062107200141106a2903002000540d010b200341a8036a2208420037030020034190036a41106a2207420037030020034190036a41086a220142003703002003420037039003200341d8016a41d9fcc60041061081022001200341d8016a41086a2206290000370300200320032900d80137039003200341d8016a4188f3cb004110108102200541086a22042006290000370000200520032900d8013700002003200a3602d80120034190036a4120200341d8016a410410b2012008420037030020074200370300200142003703002003420037039003200341d8016a41d9fcc600410610810220012006290000370300200320032900d80137039003200341d8016a41d4f2cb00410b10810220042006290000370000200520032900d801370000200341003602e001200342013703d8012003200b370310200341d8016a200341106a410810742003200c370310200341d8016a200341106a410810742003200d370310200341d8016a200341106a4108107420034190036a412020032802d801220520032802e00110b201024020032802dc01450d002005102e0b410221090b200341b0036a240020074108742009720bee0302037f017e230041d0016b22042400200441206a22054200370300200441086a41106a22064200370300200441086a41086a420037030020044200370308200441086a41d9fcc6004106108102200441c0016a4188f3cb0041101081022005200441c0016a41086a290000370300200620042900c0013703002004200441086a4120108e0202400240417f2004280204410020042802001b220520036a220320032005491b418080c002418080f001200241ff017122031b4b0d00200441086a10a903024002400240024020030e03010200010b20044188016a21030c020b200441186a21030c010b200441d0006a21030b0240024020032903084201520d00200341106a2903002001540d010b42002107024002400240200241ff01710e03000102000b200121070c010b427f200142ffffffffffffffffbf7f7c220720072001541b21070b200041003a0000200041306a41013a0000200041286a4200370200200041206a4280808080c000370300200041186a4204370300200041106a427f370300200041086a2007370300200041316a2004280008360000200041346a2004410b6a2800003600000c020b200041800c3b0001200041013a0000200041036a41003a00000c010b200041800c3b0001200041013a0000200041036a41003a00000b200441d0016a24000b850201037f230041d0006b22022400200241086a4192fdc6004107108102200241186a41ed9fc5004110108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000b8c0a03107f047e037f23004180026b220324002003200236021420032001360210200341186a2001200210ed0202400240200328021822040d00200041003602000c010b200328021c21052003200341206a280200220136022c200320043602280240024020014104490d002004280000210620032001417c6a36022c2003200441046a360228200341086a200341286a10ab0120032802080d00200328020c210720034200370244024002402007450d00200341d0016a41106a2108410021090340200341003a00f001200941016a2109200328022c210a417f21024100210102400240024002400340200a2001460d01200341d0016a20016a2003280228220b2d00003a00002003200a20026a36022c2003200b41016a3602282003200141016a220c3a00f0012002417f6a2102200c2101200c4120470d000b200341b0016a41186a220d200341d0016a41186a220e290300370300200341b0016a41106a220f2008290300370300200341b0016a41086a2210200341d0016a41086a2211290300370300200320032903d0013703b001200c41ff01714120490d01200341f0006a41086a22012010290300370300200341f0006a41106a2202200f290300370300200341f0006a41186a2212200d290300370300200320032903b001370370200a200c6b220c4104490d01200341d0006a41086a20012903002213370300200341d0006a41106a20022903002214370300200341d0006a41186a20122903002215370300200320032903702216370350200b28000121172003200b41056a3602282003200c417c6a36022c200e20153703002008201437030020112013370300200320163703d0012003280244220b450d02200328024021180c030b200141ff0171450d00200341003a00f0010b200341d0016a41086a200341c0006a41086a280200360200200320032903403703d001200341d0016a10bc020c050b419403102c220b450d0341002118200b4100360200200b41003b01322003200b360244200341003602400b024002400340200b2f013222194105742112410021014104210c417f210202400340024020122001470d00201921020c020b200341d0016a200b20016a41346a412010ec08220a450d03200241016a2102200c41046a210c200141206a2101200a417f4a0d000b0b02402018450d002018417f6a2118200b20024102746a4194036a280200210b0c010b0b200d200e2903002213370300200f20082903002214370300201020112903002215370300200320032903d00122163703b00120082016370200200841086a2015370200200841106a2014370200200841186a2013370200200320023602d8012003200b3602d401200341003602d0012003200341c0006a3602dc01200341d0016a201710a3051a0c010b200b200c6a20173602000b20092007470d000b0b200341b0016a41086a200341c0006a41086a28020022013602002003200329034022133703b0012000200636020420004101360200200041086a2013370200200041106a20013602000c020b1036000b200341003602b801200342013703b0012003410a360294012003200341106a360290012003200341b0016a360270200341e4016a4101360200200342013702d401200341909dc5003602d001200320034190016a3602e001200341f0006a419cebc000200341d0016a103d1a20032802b00120032802b80110ef02024020032802b401450d0020032802b001102e0b200041003602000b2005450d002004102e0b20034180026a24000bc51a07147f017e027f017e027f017e087f230041a0016b2202240020002802102103200028020821042000280200210520002802042106200241c0006a41186a22072000412c6a280000360200200241c0006a41106a2208200041246a290000370300200241c0006a41086a22092000411c6a2900003703002002200041146a29000037034002400240024020062f0132220a410a4b0d0020024180016a41186a200728020036020020024180016a41106a200829030037030020024180016a41086a20092903003703002002200229034037038001200641346a2107200a41016a21080240200441016a2209200a4b22050d00200720094105746a200720044105746a20082004417f736a41057410ea081a0b200720044105746a220a2003360000200a200229038001370004200a410c6a20024188016a290300370000200a41146a20024190016a290300370000200a411c6a20024198016a280200360000200641046a210a024020050d00200a20094102746a200a20044102746a20082004417f736a41027410ea081a0b200a20044102746a220b2001360200200620083b01320c010b4105210a4100210c02400240200441054f0d004104210a200421070c010b41052107024002402004417b6a0e020201000b200441796a21074101210c4106210a0c010b410021074101210c0b02400240024002400240024002400240024002400240419403102c2204450d00200441003b013220044100360200200420062f0132220d200a417f736a22083b013220024188016a200641346a220e200a4105746a2209410c6a29000037030020024190016a200941146a29000037030020024198016a2009411c6a28000036020020022009290004370380012008410c4f0d01200d200a41016a220f6b2008470d02200641046a220d200a4102746a280200211020092800002111200441346a200e200f4105746a200841057410e9081a200441046a200d200f4102746a200841027410e9081a2006200a3b0132200241e0006a41086a20024180016a41086a2209290300370300200241e0006a41106a20024180016a41106a220f290300370300200241e0006a41186a20024180016a41186a220d280200360200200220022903800137036020042006200c1b22082f0132210a200d200241c0006a41186a280200360200200f200241c0006a41106a2903003703002009200241c0006a41086a2903003703002002200229034037038001200841346a210c200a41016a210e0240200741016a2212200a4b22130d00200c20124105746a200c20074105746a200e2007417f736a41057410ea081a0b200c20074105746a220a2003360000200a200229038001370004200a410c6a2009290300370000200a41146a200f290300370000200a411c6a200d280200360000200841046a210a024020130d00200a20124102746a200a20074102746a200e2007417f736a41027410ea081a0b200a20074102746a220b2001360200200241206a41086a2214200241e0006a41086a22152903002216370300200241206a41106a2217200241e0006a41106a22182903002219370300200241206a41186a221a200241e0006a41186a221b280200220a3602002008200e3b013220022002290360221c370320200241186a220e200a360200200241106a22122019370300200241086a221320163703002002201c370300024002400240200628020022010d00410021050c010b2010211d4100210a2004211e2011211f034020062f01302108200241c0006a41186a2220200e280200360200200241c0006a41106a22212012290300370300200241c0006a41086a22222013290300370300200220022903003703402005200a470d0620012f0132220c410b490d024100210941042106024020084105490d0020082106024002402008417b6a0e020201000b200841796a210841012109410621060c010b4100210841012109410521060b41c403102c2204450d03200441003b013220044100360200200420012f013222102006417f736a220a3b0132200141346a222320064105746a2207280000211120024180016a41186a22032007411c6a28000036020020024180016a41106a220f200741146a29000037030020024180016a41086a220d2007410c6a2900003703002002200729000437038001200a410c4f0d072010200641016a22076b200a470d08200141046a222420064102746a2802002110200441346a202320074105746a200a41057410e9081a200441046a2024200741027422076a200a41027410e9081a200120063b01322015200d2903003703002018200f290300370300201b2003280200360200200220022903800137036020042f0132220a41016a2123200a410c4f0d09200c20066b22062023470d0a200541016a210520044194036a200120076a4194036a200641027410e9081a4100210602400340200420064102746a4194036a280200220720063b01302007200436020020062006200a4922076a2206200a4b0d0120070d000b0b201a201b2802003602002017201829030037030020142015290300370300200220022903603703202004200120091b22072f0132210c20032020280200360200200f2021290300370300200d20222903003703002002200229034037038001200741346a210a200c41016a21090240200841016a2206200c4b22200d00200a20064105746a200a20084105746a2008417f7320096a41057410ea081a0b200a20084105746a220a201f360000200a200229038001370004200a410c6a200d290300370000200a41146a200f290300370000200a411c6a2003280200360000200741046a210a024020200d00200a20064102746a200a20084102746a2008417f7320096a41027410ea081a0b200a2008410274220f6a201d36020020074194036a210a0240200841026a220d200c41026a22034f0d00200a200d4102746a200a20064102746a2006417f7320036a41027410ea081a0b200a20064102746a201e360200200720093b01320240200620034f0d002007200f6a4198036a210603402006280200220a200841016a22083b0130200a2007360200200641046a210620092008470d000b0b2013201429030037030020122017290300370300200e201a28020036020020022002290320370300200121062001280200220721012010211d2005210a2004211e2011211f20070d000b0b200241c0006a41186a200e2802002206360200200241c0006a41106a20122903002216370300200241c0006a41086a2013290300221937030020022002290300221c370340201b200636020020182016370300201520193703002002201c370360200028020c220a2802042207450d09200a280200210841c403102c2206450d012006200736029403200641003b013220064100360200200741003b013020072006360200200a2006360204200a200841016a36020020024180016a41186a200241e0006a41186a28020036020020024180016a41106a200241e0006a41106a29030037030020024180016a41086a200241e0006a41086a290300370300200220022903603703800120082005470d0a20062f01322208410b4f0d0b200620084105746a220741346a2011360000200741386a200229038001370000200741c0006a20024188016a290300370000200741c8006a20024190016a290300370000200741d0006a20024198016a2802003600002006200841016a22073b0132200620074102746a4194036a2004360200200620084102746a41046a2010360200200420073b013020042006360200200a200a28020841016a3602080c0d0b20012f0132210a20024180016a41186a2205200241c0006a41186a28020036020020024180016a41106a2203200241c0006a41106a29030037030020024180016a41086a220f200241c0006a41086a2903003703002002200229034037038001200841016a2106200141346a2104200a41016a210902402008200a4f22070d00200420064105746a200420084105746a2008417f7320096a41057410ea081a0b200420084105746a2204201f36000020042002290380013700042004410c6a200f290300370000200441146a20032903003700002004411c6a2005280200360000200141046a2104024020070d00200420064102746a200420084102746a2008417f7320096a41027410ea081a0b2004200841027422056a201d36020020014194036a2104200a41026a2108024020070d00200520046a41086a200420064102746a2006417f7320086a41027410ea081a0b200420064102746a201e360200200120093b0132200620084f0d0b200a41016a210720012006417f6a22064102746a4198036a210403402004280200220a200641016a22063b0130200a2001360200200441046a210420072006470d000c0c0b0b1036000b2008410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b41ac9cc700413541e49cc7001039000b200a410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b2023410c41f49cc700104d000b41f49bc7004128419c9cc7001039000b41e8aac700412b4194abc7001039000b41e899c700413041989ac7001039000b41a89ac700412041c89ac7001039000b200028020c2206200628020841016a3602080b200241a0016a2400200b0bf60d04067f017e057f027e230041800d6b2202240010a505200141086a28020021032001410c6a280200210420012802042105200241a00a6a2001280200220610a6052005200441b0026c6a2107200241a00a6a10a7052101024002400240024002400240024020040d0042002108200521010c010b20024180056a41047221090240024020010d00200241e9026a210a420021084100210b20052101024003402001280200210c200241c0076a200141046a220d41ac0210e9081a200241a00a6a200d41ac0210e9081a200c411c460d0120024180056a200241a00a6a41ac0210e9081a200241d0026a20024180056a41ac0210e9081a200241246a200241d0026a41ac0210e9081a2002200c360280052009200241246a41ac0210e9081a200241b0076a20024180056a109704200241a00a6a20024180056a41b00210e9081a200241c0076a200610a605200241d0026a200241a00a6a200241c0076a10dd020240024020022903d8024201510d0020022903b007210e0c010b20022903b007220e20022903e002220f200f200e561b210e0b200241a00a6a41086a200a41086a290000370300200241a00a6a410f6a200a410f6a2900003700002002200a2900003703a00a427f2008200e7c220e200e2008541b2108024020022903d0024201510d00200b41016a210b200141b0026a22012007470d010c040b0b200141b0026a21010c050b200141b0026a21010c060b200241e9026a210c4100210b200521014200210803402001280200210a200241c0076a200141046a220d41ac0210e9081a200241a00a6a200d41ac0210e9081a200a411c460d0520024180056a200241a00a6a41ac0210e9081a200241d0026a20024180056a41ac0210e9081a200241246a200241d0026a41ac0210e9081a2002200a360280052009200241246a41ac0210e9081a200241b0076a20024180056a109704200241c0076a20024180056a41b00210e9081a200241f0096a200610a6050240024020022802980a220a280208200241c0076a200a28020c28020c1101000d00200a200a280200417f6a220d360200200241023a00f002200241003a00e802200242003703d802200242013703d0020240200d0d00200a280208200a28020c2802001103000240200a28020c280204450d00200a280208102e0b200a41046a220d200d280200417f6a220d360200200d0d00200a102e0b200241c0076a10dc0220022903b007210e0c010b200241a00a6a200241c0076a41b00210e9081a200241d00c6a41286a200241f0096a41286a280200360200200241d00c6a41206a200241f0096a41206a290300370300200241d00c6a41186a200241f0096a41186a290300370300200241d00c6a41106a200241f0096a41106a290300370300200241d00c6a41086a200241f0096a41086a290300370300200220022903f0093703d00c200241d0026a200241a00a6a200241d00c6a10dd02024020022903d8024201510d0020022903b007210e0c010b20022903b007220e20022903e002220f200f200e561b210e0b200241a00a6a41086a200c41086a290000370300200241a00a6a410f6a200c410f6a2900003700002002200c2900003703a00a427f2008200e7c220e200e2008541b210820022903d0024201510d03200b41016a210b200141b0026a22012007470d000b0b200721010b200241a00a6a200241c0076a41ac0210e9081a0c030b200141b0026a21010b200241086a410f6a200241a00a6a410f6a290000370000200241086a41086a200241a00a6a41086a290300370300200220022903a00a370308200b41016aad42e88dfb007e20087c2108024020072001460d0003402001108b022007200141b0026a2201470d000b0b200842e0b8a1077c210802402003450d00200341b0026c450d002005102e0b200241c0076a410f6a2201200241086a410f6a290000370000200241c0076a41086a2207200241086a41086a290300370300200220022903083703c00710a805200041186a41003a0000200041106a20083703002000420137030820004201370300200020022903c007370019200041216a2007290300370000200041286a20012900003700000c020b200141b0026a21010b024020072001460d0003402001108b022007200141b0026a2201470d000b0b02402003450d00200341b0026c450d002005102e0b200241a00a6a41086a41063a0000200241113a00a00a200241a00a6a10fe01200241c0076a41086a2201200241086a41086a290300370300200241c0076a410f6a2207200241086a410f6a290000370000200220022903083703c00710a905200041186a41003a0000200041106a2004ad42e88dfb007e20087c42e0b8a1077c3703002000420137030820004200370300200020022903c007370019200041216a2001290300370000200041286a20072900003700000b200241800d6a24000b0400102b0ba10701087f230041c0006b21020240024002400240024020012d00000e03000102000b4102210302400240024020012d00010e03000102000b410021030c010b2002413c6a41026a200141076a2d00003a0000200241206a41086a200141186a290000370300200241206a41106a200141206a2f00003b01002002200141056a2f00003b013c2002200141106a2900003703202001410c6a2800002104200141086a2800002105200141046a2d00002106200141026a2f00002107410121030b2002411c6a41026a2002413c6a41026a2d00003a0000200241086a200241206a41086a290300370300200241106a200241206a41106a2f01003b0100200220022f013c3b011c20022002290320370300410021080c030b41022106024002400240200141046a2d00000e03000102000b2001410c6a2802002104200141086a2802002105410021060c010b2002413e6a200141076a2d00003a0000200241206a41086a200141186a2900003703002002412d6a2001411d6a2900003700002002200141056a2f00003b013c2002200141106a2900003703202001410c6a2800002104200141086a2800002105410121060b2002411c6a41026a2002413c6a41026a2d00003a0000200241086a200241206a41086a290300370300200241106a200241206a41106a290300370300200220022f013c3b011c20022002290320370300410121080c010b4102210841022106024002400240200141046a2d00000e03000102000b2001410c6a2802002104200141086a2802002105410021060c010b2002413e6a200141076a2d00003a0000200241206a41086a200141186a2900003703002002412d6a2001411d6a2900003700002002200141056a2f00003b013c2002200141106a2900003703202001410c6a2800002104200141086a2800002105410121060b2002411c6a41026a2002413c6a41026a2d00003a0000200241086a200241206a41086a290300370300200241106a200241206a41106a290300370300200220022f013c3b011c200220022903203703000b0b02402001280228220128020041016a220941014b0d0000000b200020033a0001200020083a000020002001360228200041046a20063a0000200041026a20073b010020012009360200200041056a20022f011c3b00002000410c6a2004360200200041086a2005360200200041106a2002290300370200200041076a2002411c6a41026a2d00003a0000200041186a200241086a290300370200200041206a200241106a2903003702000bcc0101037f200028022822012001280200417f6a220236020020002d0001210302400240024020002d00000d004100210020020d022001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a22023602002002450d010c020b4101210020020d012001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d010b2001102e0b200341ff01714100472000720b040010280b040010230bce0902037f017e230041b0016b220224002002412036020c20022001360208200241106a2001412010ed0202400240200228021022010d00200041033a00200c010b200241186a280200210320022802142104200241003a0060024002402003450d00200220012d00003a0040200241013a0060024020034101460d00200220012d00013a0041200241023a006020034102460d00200220012d00023a0042200241033a006020034103460d00200220012d00033a0043200241043a006020034104460d00200220012d00043a0044200241053a006020034105460d00200220012d00053a0045200241063a006020034106460d00200220012d00063a0046200241073a006020034107460d00200220012d00073a0047200241083a006020034108460d00200220012d00083a0048200241093a006020034109460d00200220012d00093a00492002410a3a00602003410a460d00200220012d000a3a004a2002410b3a00602003410b460d00200220012d000b3a004b2002410c3a00602003410c460d00200220012d000c3a004c2002410d3a00602003410d460d00200220012d000d3a004d2002410e3a00602003410e460d00200220012d000e3a004e2002410f3a00602003410f460d00200220012d000f3a004f200241103a006020034110460d00200220012d00103a0050200241113a006020034111460d00200220012d00113a0051200241123a006020034112460d00200220012d00123a0052200241133a006020034113460d00200220012d00133a0053200241143a006020034114460d00200220012d00143a0054200241153a006020034115460d00200220012d00153a0055200241163a006020034116460d00200220012d00163a0056200241173a006020034117460d00200220012d00173a0057200241183a006020034118460d00200220012d00183a0058200241193a006020034119460d00200220012d00193a00592002411a3a00602003411a460d00200220012d001a3a005a2002411b3a00602003411b460d00200220012d001b3a005b2002411c3a00602003411c460d00200220012d001c3a005c2002411d3a00602003411d460d00200220012d001d3a005d2002411e3a00602003411e460d00200220012d001e3a005e2002411f3a00602003411f460d00200241206a41106a200241c0006a41106a290300370300200241206a41086a200241c0006a41086a290300370300200220012d001f3a005f200241206a41186a200241c0006a41186a290300370300200241203a00602002200229034022053703682002200537032020034120460d014100210302400240024020012d00200e03020001040b410121030c010b410221030b20002002290320370000200041186a200241206a41186a290300370000200041106a200241206a41106a290300370000200041086a200241206a41086a2903003700000c020b200241003a00600b20024100360270200242013703682002410a3602242002200241086a3602202002200241e8006a3602ac01200241d4006a410136020020024201370244200241909dc5003602402002200241206a360250200241ac016a419cebc000200241c0006a103d1a2002280268200228027010ef020240200228026c450d002002280268102e0b410321030b200020033a00202004450d002001102e0b200241b0016a24000be30d020f7f077e230041c0026b220224002002412036021420022001360210200241186a2001412010ed020240024002400240200228021822030d00200041033a003c0c010b200228021c21042002200241206a28020036022c20022003360228200241086a200241286a10ab01024002400240024020022802080d00200228020c2205200228022c4106762201200120054b1b22064106742201417f4c0d060240024020060d00410821070c010b2001102c2207450d060b02400240024020050d00410021050c010b41002108410021090340200241003a0088012009220a41016a2109200228022c210b417f210c41002101024002400240024002400340200b2001460d01200241e8006a20016a2002280228220d2d00003a00002002200b200c6a36022c2002200d41016a3602282002200141016a220e3a008801200c417f6a210c200e2101200e4120470d000b200241386a41186a2201200241e8006a41186a290300370300200241386a41106a220c200241e8006a41106a290300370300200241386a41086a220f200241e8006a41086a29030037030020022002290368370338200e41ff01714120490d0120024180026a41086a2210200f29030037030020024180026a41106a220f200c29030037030020024180026a41186a220c20012903003703002002200229033837038002200b200e6b22014110490d012002200d41116a3602282002200141706a36022c200d41096a2900002111200d2900012112200241e8006a200241286a10e9012002280268220e450d01200241c0016a41086a20102903002213370300200241c0016a41106a200f2903002214370300200241c0016a41186a200c2903002215370300200241a0016a41086a22012013370300200241a0016a41106a220c2014370300200241a0016a41186a220b2015370300200220022903800222133703c001200220133703a001200229026c2113200a2006470d04200641016a220d2006490d0e2006410174220f200d200f200d4b1b220d4104200d41044b1b220d41ffffff1f71200d46410374210f200d410674210d20060d02200241003602680c030b200141ff0171450d00200241003a0088010b0240200a450d00200741346a2101034002402001280200220c450d00200c41306c450d002001417c6a280200102e0b200141c0006a2101200841406a22080d000b0b200641ffffff1f710d050c060b20024108360270200220073602682002200641067436026c0b200241386a200d200f200241e8006a107d2002280240210d024020022802384101470d00200d0d0a0c0b0b200228023c2107200d41067621060b20012903002114200c2903002115200b290300211620022903a00121172007200a4106746a2201201237032020012017370300200120133702342001200e360230200141286a2011370300200141186a2016370300200141106a2015370300200141086a2014370300200841c0006a210820092005470d000b0b2007450d01200241e8006a200241286a10a401024020022903684201510d00200241386a41286a20024198016a290300370300200241386a41206a200241e8006a41286a290300370300200241386a41186a200241e8006a41206a290300370300200241386a41106a200241e8006a41186a290300370300200241c0006a200241e8006a41106a29030037030020022002290370370338200228022c2201450d002002280228220c2d0000210e20022001417f6a36022c2002200c41016a360228410021010240200e0e03050400010b410221010c040b02402005450d00200720054106746a210b2007210103402001220c41c0006a21010240200c41346a280200220e450d00200e41306c450d00200c41306a280200102e0b200b2001470d000b0b200641ffffff1f71450d010b2007102e0b20024100360240200242013703382002410a3602a4022002200241106a3602a0022002200241386a36028002200241fc006a41013602002002420137026c200241909dc5003602682002200241a0026a36027820024180026a419cebc000200241e8006a103d1a2002280238200228024010ef020240200228023c450d002002280238102e0b410321010c020b410121010b20002002290338370300200041286a200241386a41286a290300370300200041206a200241386a41206a290300370300200041186a200241386a41186a290300370300200041106a200241386a41106a290300370300200041086a200241386a41086a290300370300200241e8006a41026a220c200241356a41026a2d00003a0000200220022f00353b0168200020053602382000200636023420002007360230200020022f01683b003d2000413f6a200c2d00003a00000b200020013a003c2004450d002003102e0b200241c0026a24000f0b1036000b1038000b990805067f017e037f037e027f230041f0016b220224002002412036020c20022001360208200241106a2001412010ed0202400240200228021022030d00200041003602000c010b200228021421042002200241186a280200360224200220033602202002200241206a10ab010240024020022802000d00024002402002280204220520022802244105762201200120054b1b22014105742206417f4c0d000240024020010d00410121070c010b2006102c2207450d020b2001ad2108024002402005450d00410021090340200241003a00a8012002280224417f6a2101200941016a2109410021060240024002400240024003402001417f460d0120024188016a20066a2002280220220a2d00003a00002002200a41016a3602202002200641016a220a3a00a801200220013602242001417f6a2101200a2106200a4120470d000b200241d0016a41186a220120024188016a41186a290300370300200241d0016a41106a220620024188016a41106a290300370300200241d0016a41086a220b20024188016a41086a29030037030020022002290388013703d001200a41ff01714120490d01200241c8006a41086a200b290300220c370300200241c8006a41106a2006290300220d370300200241c8006a41186a2001290300220e370300200241286a41186a220a200e370300200241286a41106a220b200d370300200241286a41086a220f200c370300200220022903d001220c3703682002200c3703482002200c3703282008422088220ca722012008a7470d04200141016a22062001490d0820014101742210200620062010491b22064104200641044b1b220641ffffff3f7120064621102006410574210620010d0220024100360288010c030b200641ff0171450d00200241003a00a8010b200842ffffff3f83500d082007102e0c080b200241013602900120022007360288012002200c4205863e028c010b200241d0016a2006201020024188016a107d20022802d801210620022802d0014101460d0320022802d40121072006410576ad21080b200720014105746a22062002290328370000200641186a200a290300370000200641106a200b290300370000200641086a200f290300370000200842ffffffff0f83200141016aad42208684210820092005470d000b0b2007450d0320002008370204200020073602000c040b20060d010b1038000b1036000b200241003602d801200242013703d0012002410a3602b4012002200241086a3602b0012002200241d0016a3602682002419c016a41013602002002420137028c01200241909dc500360288012002200241b0016a36029801200241e8006a419cebc00020024188016a103d1a20022802d00120022802d80110ef02024020022802d401450d0020022802d001102e0b200041003602000b2004450d002003102e0b200241f0016a24000bf30a06087f027e027f027e017f017e230041a0016b220324002003200236021420032001360210200341186a2001200210ed0202400240024002400240200328021822010d00200041023a00000c010b200328021c21042003200341206a280200220236024c20032001360248024002402002450d0020012d0000210520032002417f6a220636024c2003200141016a3602480240024002400240024020050e020001050b20064104490d04200341c4006a41026a200341d8006a41026a2d00003a0000200341286a41086a200341f8006a41086a290300370300200341286a41106a200341f8006a41106a290300370300200341286a41186a200341f8006a41186a280200360200200320032f00583b0144200320032903783703282001280001210720032002417b6a36024c2003200141056a360248410021020c010b200341086a200341c8006a10ab0120032802080d03200328024c2202200328020c2205490d032005417f4c0d060240024020050d00410121060c010b200510322206450d08200328024c21020b20022005490d0220062003280248200510e9081a200328024c22022005490d082003200220056b36024c2003200328024820056a360248200341f8006a200341c8006a10930120032d00784101460d012003419e016a20032d007b3a0000200341d8006a41086a200341f8006a41106a290300370300200341d8006a41106a200341f8006a41186a290300370300200341d8006a41186a20034198016a2d00003a0000200320032f00793b019c012003200341f8006a41086a290300370358200328024c22024110490d01200328027c210720032003280248220841106a22093602482003200241706a220a36024c200a4104490d01200841086a290000210b2008290000210c20032002416c6a220836024c2003200941046a3602482008450d012009280000210d20032002416b6a220e36024c2003200941056a3602484100210a0240024020092d00040e020100030b200e4104490d022003200241676a36024c2003200941096a360248200928000521084101210a0b200341c4006a41026a2003419c016a41026a2d00003a0000200341286a41086a200341d8006a41086a290300370300200341286a41106a200341d8006a41106a290300370300200341286a41186a200341d8006a41186a2d00003a0000200341c3006a200341d5006a41026a2d00003a0000200320032f019c013b014420032003290358370328200320032f00553b0041410121020b200341d8006a41026a200341c4006a41026a2d000022093a0000200341f8006a41086a200341286a41086a290300220f370300200341f8006a41106a200341286a41106a2903002210370300200341f8006a41186a200341286a41186a280200220e360200200320032f014422113b0158200320032903282212370378200041036a20093a0000200020113b0001200041046a2007360000200041c8006a200b370000200041c0006a200c370000200041086a2012370000200041106a200f370000200041186a2010370000200041206a200e360000200041386a2008360000200041346a200a360000200041306a200d3600002000412c6a2005360000200041286a2005360000200041246a20063600000c030b2005450d010b2006102e0b20034100360230200342013703282003410a36025c2003200341106a3602582003200341286a36029c012003418c016a41013602002003420137027c200341909dc5003602782003200341d8006a360288012003419c016a419cebc000200341f8006a103d1a2003280228200328023010ef020240200328022c450d002003280228102e0b410221020b200020023a00002004450d002001102e0b200341a0016a24000f0b1038000b1036000b2005200241b8b2c0001056000bbf0302057f017e230041e0006b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041003602000c010b200328021421022003200341186a280200360224200320013602202003200341206a10ab0102400240024002402003280200450d00200341003602480c010b200341c8006a200341206a200328020410920120032802482204450d00200328024c210520032802242206410f4b0d01200541ffffff3f71450d002004102e0b20034100360230200342013703282003410a36023c2003200341086a3602382003200341286a360244200341dc006a41013602002003420137024c200341909dc5003602482003200341386a360258200341c4006a419cebc000200341c8006a103d1a2003280228200328023010ef020240200328022c450d002003280228102e0b200041003602000c010b2003200641706a36022420032003280220220641106a360220200341c8006a41086a280200210720062900002108200041186a200641086a290000370300200041106a2008370300200041086a200736020020002005360204200020043602000b2002450d002001102e0b200341e0006a24000bc20201027f23004190056b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822010d002000411c3602000c010b200328020c21022003200341106a2802003602fc04200320013602f804200341c8026a200341f8046a1098010240024020032802c8022204411c470d0020034100360220200342013703182003410a3602840520032003360280052003200341186a36028c05200341dc026a4101360200200342013702cc02200341909dc5003602c802200320034180056a3602d8022003418c056a419cebc000200341c8026a103d1a2003280218200328022010ef02200328021c450d012003280218102e0c010b200341186a200341c8026a41047241ac0210e9081a200041046a200341186a41ac0210e9081a0b200020043602002002450d002001102e0b20034190056a24000bf90202037f027e230041d0006b220224002002412036020420022001360200200241086a2001412010ed0202400240200228020822010d00200041033a00100c010b200228020c21030240024002400240200241086a41086a28020022044108490d0020044178714108460d0020044110460d00200129000021052001290008210641002104024020012d00100e03030200010b410221040c020b20024100360220200242013703182002410a36022c200220023602282002200241186a360234200241cc006a41013602002002420137023c200241909dc5003602382002200241286a360248200241346a419cebc000200241386a103d1a2002280218200228022010ef020240200228021c450d002002280218102e0b410321040c020b410121040b2002200228003836021820022002413b6a28000036001b200020063703082000200537030020002002280218360011200041146a200228001b3600000b200020043a00102003450d002001102e0b200241d0006a24000b901308057f017e057f027e017f017e037f047e23004180026b220324002003200236020c20032001360208200341106a2001200210ed020240024002400240200328021022020d00200041023a00000c010b200328021421042003200341186a280200220536025420032002360250024002402005450d0020022d0000210120032005417f6a22063602542003200241016a3602500240024002400240024020010e020001050b2003200341d0006a10ab0120032802000d0420032802042207200328025441306e2201200120074b1bad42307e2208422088a70d082008a72201417f4c0d080240024020010d00410821090c010b2001102c2209450d080b200141306e210a0240024020070d00410021070c010b200341d8016a41017221064100210b41002105034002400240200328025422014104490d002003280250220c350000210820032001417c6a3602542003200c41046a360250200341d8016a200341d0006a10b10420032d00d801220c4102470d010b20034188016a411f6a200341b0016a411f6a29000037000020034188016a41186a200341b0016a41186a290300370300200a450d07200a41306c0d060c070b200341b0016a411f6a22012006411f6a290000370000200341b0016a41186a220d200641186a29000037030020034188016a41086a200641086a290000220e37030020034188016a41106a200641106a290000220f37030020034188016a41186a2210200d29030037030020034188016a411f6a220d200129000037000020032006290000221137038801200341e0006a411f6a2212200d290000370000200341e0006a41186a220d2010290300370300200341e0006a41106a2210200f370300200341e0006a41086a2213200e3703002003201137036002402005200a470d00200a41016a2201200a490d0b200a41017422142001201420014b1b22014104200141044b1bad42307e220e422088a7454103742101200ea7211402400240200a0d00200341003602d8010c010b200341083602e001200320093602d8012003200a41306c3602dc010b200341b0016a20142001200341d8016a107d20032802b8012101024020032802b0014101470d0020010d0b0c0c0b20032802b4012109200141306e210a0b2009200b6a22012008370300200141086a200c3a0000200141096a2003290360370000200141116a2013290300370000200141196a2010290300370000200141216a200d290300370000200141286a2012290000370000200b41306a210b2007200541016a2205470d000b0b2009450d04200328025422014110490d0220032003280250220641106a3602502003200141706a220b360254200b4110490d02200641086a290000210f200629000021112003200641206a220b3602502003200141606a220536025420054104490d02200641186a29000021082006290010210e2003200b41046a36025020032001415c6a220636025420064110490d02200b2800002106200341386a200b410c6a290000370300200341cc006a41026a200341dc006a41026a2d00003a00002003200e370320200320032f005c3b014c200320063602402003200b2900043703302003200837032820032001414c6a3602542003200b41146a360250410021010c010b20064110490d0320032005416f6a220a3602542003200241116a360250200241096a29000021082002290001210e41002101200341003a00f801416e2106024002400240024002400240024002400340200a2001460d01200341d8016a20016a200220016a220b41116a2d00003a00002003200520066a3602542003200b41126a3602502003200141016a220b3a00f8012006417f6a2106200b2101200b4120470d000b20034188016a41026a220120032d00da013a0000200320032f01d8013b018801200b41ff01714120490d0b200341ef016a290000210f20032900e701211120032d00f701210c20032800e301210720032800df01210a20032800db012109200341dc006a41026a20012d00003a0000200320032f0188013b015c2005416f6a200b460d0b2002200b6a220141116a2d0000210d2003200520066a22063602542003200141126a36025041002110200d0e07070102030405060b0b200141ff0171450d0a200341003a00f8010c0a0b410121100c050b410221100c040b410321100c030b410421100c020b410521100c010b410621100b20064110490d032003200141226a220d36025020032005200b6b220b415e6a220636025420064110490d032001411a6a2900002115200141126a29000021162003200141326a22053602502003200b414e6a220636025420064104490d032001412a6a2900002117200d2900002118200528000021062003200141366a220d3602502003200b414a6a220536025420054110490d03200341cc006a41026a200341dc006a41026a2d00003a0000200341c0006a2015370300200341206a41106a2008370300200320032f015c3b014c2003200b41ba7f6a3602542003200141c6006a360250200320163703382003200e370328200320103a00212003200c3a0020200320032801b0013601222003200341b4016a2f01003b01262001413e6a290000210e200d2900002108410121010b200341b0016a41026a200341cc006a41026a2d0000220b3a0000200341d8016a41086a2205200341206a41086a290300370300200341d8016a41106a220c200341206a41106a290300370300200341d8016a41186a220d200341206a41186a290300370300200341d8016a41206a2210200341206a41206a290300370300200320032f014c22123b01b001200320032903203703d801200041186a200f370000200041106a2011370000200041036a200b3a0000200020123b00012000410c6a2007360000200041086a200a360000200041046a2009360000200041e8006a2006360000200041e0006a200e370000200041d8006a2008370000200041d0006a2017370000200041c8006a2018370000200041206a20032903d801370000200041286a2005290300370000200041306a200c290300370000200041386a200d290300370000200041c0006a20102903003700000c030b200a450d01200a41306c450d010b2009102e0b20034100360228200342013703202003410a3602b4012003200341086a3602b0012003200341206a36028801200341ec016a4101360200200342013702dc01200341909dc5003602d8012003200341b0016a3602e80120034188016a419cebc000200341d8016a103d1a2003280220200328022810ef0202402003280224450d002003280220102e0b410221010b200020013a00002004450d002002102e0b20034180026a24000f0b1036000b1038000b8a0b02027f067e230041d0016b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041023a00300c010b200341186a280200210220032802142104200341003a008801024002402002450d00200320012d00003a0068200341013a008801024020024101460d00200320012d00013a0069200341023a00880120024102460d00200320012d00023a006a200341033a00880120024103460d00200320012d00033a006b200341043a00880120024104460d00200320012d00043a006c200341053a00880120024105460d00200320012d00053a006d200341063a00880120024106460d00200320012d00063a006e200341073a00880120024107460d00200320012d00073a006f200341083a00880120024108460d00200320012d00083a0070200341093a00880120024109460d00200320012d00093a00712003410a3a0088012002410a460d00200320012d000a3a00722003410b3a0088012002410b460d00200320012d000b3a00732003410c3a0088012002410c460d00200320012d000c3a00742003410d3a0088012002410d460d00200320012d000d3a00752003410e3a0088012002410e460d00200320012d000e3a00762003410f3a0088012002410f460d00200320012d000f3a0077200341103a00880120024110460d00200320012d00103a0078200341113a00880120024111460d00200320012d00113a0079200341123a00880120024112460d00200320012d00123a007a200341133a00880120024113460d00200320012d00133a007b200341143a00880120024114460d00200320012d00143a007c200341153a00880120024115460d00200320012d00153a007d200341163a00880120024116460d00200320012d00163a007e200341173a00880120024117460d00200320012d00173a007f200341183a00880120024118460d00200320012d00183a008001200341193a00880120024119460d00200320012d00193a0081012003411a3a0088012002411a460d00200320012d001a3a0082012003411b3a0088012002411b460d00200320012d001b3a0083012003411c3a0088012002411c460d00200320012d001c3a0084012003411d3a0088012002411d460d00200320012d001d3a0085012003411e3a0088012002411e460d00200320012d001e3a0086012003411f3a0088012002411f460d00200341c8006a41106a200341e8006a41106a290300370300200341c8006a41086a200341e8006a41086a290300370300200320012d001f3a008701200341c8006a41186a200341e8006a41186a290300370300200341203a0088012003200329036822053703900120032005370348200241606a22024110490d0120024110460d01200141286a290000210520012900202106410021020240024020012d00300e020100030b410121020b200341206a41186a200341c8006a41186a2903002207370300200341206a41106a200341c8006a41106a2903002208370300200341206a41086a200341c8006a41086a290300220937030020032003290348220a370320200320032800413602682003200341c4006a28000036006b20002005370308200020063703002000200a370310200041186a2009370300200041206a2008370300200041286a2007370300200041346a200328006b360000200020032802683600310c020b200341003a0088010b200341003602980120034201370390012003410a36024c2003200341086a360248200320034190016a360220200341fc006a41013602002003420137026c200341909dc5003602682003200341c8006a360278200341206a419cebc000200341e8006a103d1a20032802900120032802980110ef020240200328029401450d00200328029001102e0b410221020b200020023a00302004450d002001102e0b200341d0016a24000bf80403047f017e067f230041f0006b220324002003200236021c20032001360218200341206a2001200210ed0202400240200328022022010d00200041003602080c010b200328022421042003200341286a2802002202360234200320013602300240024020024104490d00200128000021052003200141046a36023020032002417c6a220636023420064104490d00200128000421062003200241786a3602342003200141086a360230200341106a200341306a10ab0102402003280210450d00200341003602580c010b200341d8006a200341306a200328021410920120032802582202450d00200329025c2107200341086a200341306a10ab01024002402003280208450d00200341003602580c010b200341d8006a200341306a200328020c10920120032802582208450d00200328025c210902402003280234220a4104490d00200341e0006a280200210b2003280230220c280000210d2003200a417c6a3602342003200c41046a3602302002450d022000200737020c200020023602082000200636020420002005360200200041206a200d3602002000411c6a200b360200200041186a2009360200200041146a20083602000c030b200941ffffff3f71450d002008102e0b200742ffffff3f83500d002002102e0b20034100360240200342013703382003410a36024c2003200341186a3602482003200341386a360254200341ec006a41013602002003420137025c200341909dc5003602582003200341c8006a360268200341d4006a419cebc000200341d8006a103d1a2003280238200328024010ef020240200328023c450d002003280238102e0b200041003602080b2004450d002001102e0b200341f0006a24000ba40c03057f027e0c7f230041f0016b220324002003200236020420032001360200200341086a2001200210ed0202400240200328020822040d00200041023602100c010b200328020c21052003200341106a280200220636025c2003200436025841002101200341003a00a8012006417f6a21020240024002400240024002400240034020062001460d0120034188016a20016a200420016a22072d00003a00002003200741016a3602582003200141016a22073a00a8012003200236025c2002417f6a21022007210120074120470d000b200341d0016a41186a220120034188016a41186a290300370300200341d0016a41106a220220034188016a41106a290300370300200341d0016a41086a220620034188016a41086a29030037030020032003290388013703d001200741ff01714120490d03200341e8006a41086a2006290300370300200341e8006a41106a2002290300370300200341e8006a41186a2001290300370300200320032903d00137036820034188016a200341d8006a10930120032d0088014101460d03200341b0016a41186a200341a1016a2201290000370300200341b0016a41106a20034199016a2202290000370300200341b0016a41086a20034191016a220729000037030020032003290089013703b00120034188016a200341d8006a10930120032d0088014101460d03200341d0016a41186a2001290000370300200341d0016a41106a2002290000370300200341d0016a41086a200729000037030020032003290089013703d001200328025c22024110490d032003200241706a220636025c20032003280258220141106a22073602582006450d03200141086a29000021082001290000210920032002416f6a220636025c2003200741016a3602584100210120072d00000e020201030b200141ff0171450d02200341003a00a8010c020b20064104490d0120032002416b6a36025c2003200741056a3602582007280001210a410121010b20034188016a200341d8006a10e9012003280288012207450d00200328028c0121020240200328025c2206450d0020034190016a280200210b2003280258220c2d0000210d20032006417f6a36025c2003200c41016a36025841002106200d0e020302000b2002450d00200241306c450d002007102e0b200341003602d801200342013703d0012003410a3602b401200320033602b0012003200341d0016a3602682003419c016a41013602002003420137028c01200341909dc500360288012003200341b0016a36029801200341e8006a419cebc00020034188016a103d1a20032802d00120032802d80110ef02024020032802d401450d0020032802d001102e0b410221010c020b410121060b20034188016a41186a220c200341e8006a41186a29030037030020034188016a41106a220d200341e8006a41106a29030037030020034188016a41086a220e200341e8006a41086a290300370300200341386a41086a220f200341b0016a41086a290300370300200341386a41106a2210200341b0016a41106a290300370300200341386a41186a2211200341b0016a41186a290300370300200341186a41086a2212200341d0016a41086a290300370300200341186a41106a2213200341d0016a41106a290300370300200341186a41186a2214200341d0016a41186a2903003703002003200329036837038801200320032903b001370338200320032903d001370318200341146a41026a2215200341e5006a41026a2d00003a0000200320032f00653b01142000200837030820002009370300200041206a200b3602002000411c6a2002360200200041186a20073602002000200a360214200041246a2003290388013702002000412c6a200e290300370200200041346a200d2903003702002000413c6a200c290300370200200041c4006a2003290338370200200041cc006a200f290300370200200041d4006a2010290300370200200041dc006a2011290300370200200041fc006a2014290300370200200041f4006a2013290300370200200041ec006a2012290300370200200041e4006a200329031837020020004184016a20063a000020004187016a20152d00003a0000200020032f01143b0085010b200020013602102005450d002004102e0b200341f0016a24000bfc0d05037f017e097f027e057f230041c0016b22022400200241086a200110ab0102400240024020022802080d00200228020c2203200128020441246e2204200420034b1bad42247e2205422088a70d022005a72204417f4c0d0202400240024020040d00410421060c010b2004102c2206450d010b200441246ead2105024002402003450d002002413d6a21072002418b016a220841056a21094100210a03400240024002402001280204220b450d002001280200220c2d000021042001200b417f6a220d3602042001200c41016a3602000240024002400240024002400240024002400240024020040e08000b010b030402050b0b2002200110ab0120022802000d0a2001280204220b20022802042204490d0a2004417f4c0d130240024020040d004101210e0c010b20041032220e450d112001280204210b0b200b2004490d06200e2001280200200410e908210b2001280204220c20044f0d052004200c41b8b2c0001056000b41002104200241003a009801200b417e6a210b02400340200d2004460d01200241f8006a20046a200c20046a220e41016a2d00003a00002001200b3602042001200e41026a3602002002200441016a220e3a009801200b417f6a210b200e2104200e4120460d090c000b0b200441ff0171450d09200241003a0098010c090b200241f8006a200110aa01200228027c220c450d0820022f017820022d007a41107472210b20022d007b210e200229038001220f428080808070832110200fa7210d410121110c070b200241f8006a200110aa01200228027c220c450d0720022f017820022d007a41107472210b20022d007b210e200229038001220f428080808070832110200fa7210d410221110c060b200241f8006a200110aa01200228027c220c450d0620022f017820022d007a41107472210b20022d007b210e200229038001220f428080808070832110200fa7210d410321110c050b200d450d05200c2d000121042001200b417e6a3602042001200c41026a36020020040d05200241b0016a200110fe0520022802b001220e4102460d05200241306a41086a200241f8006a41086a2902003703002002200229027837033020022802b801210d20022802b401210c4104211142002110410021120c020b2001200c20046b3602042001200128020020046a360200200b450d04200241306a41086a200241f8006a41086a29020037030020022002290278370330200b41087621122004ad220f422086200f84220f422088a7210d200fa7210c41052111420021100c010b200e102e0c030b0c010b200220082900003703b001200220092900003700b501200220022903b0013703a001200220022900b5013700a501200e41ff0171411f4d0d0120022f017820022d007a41107472210b200228007b210e200228007f210c200229008301210f200220022900a50137006d200220022903a0013703682002200229006d37005d20022002290368370358200220022903583703482002200229005d37004d2002200229004d37003520022002290348370330200720022f00453b0000200741026a200241c5006a41026a2d00003a0000200f428080808070832110200e4108762112200fa7210d410021110b200241206a41086a200241306a41086a290300220f370300200241106a41086a2213200f37030020022002290330220f3703202002200f3703102005422088220fa722042005a7470d02200441016a221420044f0d010c090b02402005422088a72201450d00200141246c21042006210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012004415c6a22040d000b0b2005a72201450d06200141246c450d062006102e0c060b20044101742215201420142015491b22144104201441044b1bad42247e220f422088a7454102742114200fa721150240024020040d00200241003602780c010b2002410436028001200220063602782002200441246c36027c0b200241306a20152014200241f8006a107d2002280238211420022802304101460d03200228023421062005422088220fa72104201441246ead21050b2006200441246c6a22042010200dad8437000c2004200c36000820042012410874200e41ff0171723600042004200b3b0001200420113a0000200441036a200b4110763a0000200420022903103700142004411c6a2013290300370000200f422086200542ffffffff0f83844280808080107c2105200a41016a220a2003470d000b0b2006450d0220002005370204200020063602000c030b2014450d030b1036000b200041003602000b200241c0016a24000f0b1038000bd00905057f017e047f017e017f230041f0016b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022040d00200041003602000c010b200328021421052003200341186a280200360224200320043602202003200341206a10ab010240024020032802000d00024002402003280204220620032802244105762201200120064b1b22014105742202417f4c0d000240024020010d00410121070c010b2002102c2207450d020b2001ad2108024002402006450d00410021090340200341003a00a8012003280224417f6a2101200941016a2109410021020240024002400240024003402001417f460d0120034188016a20026a2003280220220a2d00003a00002003200a41016a3602202003200241016a220a3a00a801200320013602242001417f6a2101200a2102200a4120470d000b200341b0016a41086a220220034188016a41086a290300370300200341b0016a41106a220b20034188016a41106a290300370300200341b0016a41186a220c20034188016a41186a29030037030020032003290388013703b001410121010240200a41ff01714120490d00200341e8006a41186a200c290300370300200341e8006a41106a200b290300370300200341e8006a41086a2002290300370300200320032903b001370368410021010b200341c8006a41086a2202200341e8006a41086a290300370300200341c8006a41106a220a200341e8006a41106a290300370300200341c8006a41186a220b200341e8006a41186a2903003703002003200329036837034820010d01200341286a41186a220c200b290300370300200341286a41106a220b200a290300370300200341286a41086a220a2002290300370300200320032903483703282008422088220da722012008a7470d04200141016a22022001490d082001410174220e20022002200e491b22024104200241044b1b220241ffffff3f71200246210e2002410574210220010d0220034100360288010c030b0240200241ff0171450d00200341003a00a8010b200341c8006a41086a200341e8006a41086a290300370300200341c8006a41106a200341e8006a41106a290300370300200341c8006a41186a200341e8006a41186a290300370300200320032903683703480b200842ffffff3f83500d082007102e0c080b200341013602900120032007360288012003200d4205863e028c010b200341b0016a2002200e20034188016a107d20032802b801210220032802b0014101460d0320032802b40121072002410576ad21080b200720014105746a22022003290328370000200241186a200c290300370000200241106a200b290300370000200241086a200a290300370000200842ffffffff0f83200141016aad42208684210820092006470d000b0b2007450d0320002008370204200020073602000c040b20020d010b1038000b1036000b200341003602b801200342013703b0012003410a36026c2003200341086a3602682003200341b0016a3602482003419c016a41013602002003420137028c01200341909dc500360288012003200341e8006a36029801200341c8006a419cebc00020034188016a103d1a20032802b00120032802b80110ef02024020032802b401450d0020032802b001102e0b200041003602000b2005450d002004102e0b200341f0016a24000bf40201037f230041e0006b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041003602040c010b200328021421042003200341186a2802002202360224200320013602200240024020024104490d002001280000210520032002417c6a3602242003200141046a3602202003200341206a10ab0102402003280200450d00200341003602480c010b200341c8006a200341206a200328020410920120032802482202450d002000200329024c37020820002002360204200020053602000c010b20034100360230200342013703282003410a36023c2003200341086a3602382003200341286a360244200341dc006a41013602002003420137024c200341909dc5003602482003200341386a360258200341c4006a419cebc000200341c8006a103d1a2003280228200328023010ef020240200328022c450d002003280228102e0b200041003602040b2004450d002001102e0b200341e0006a24000bf90604027f027e077f017e230041b0016b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200042003703000c010b200328021421022003200341106a41086a2802003602442003200136024020034188016a200341c0006a10930102400240024020032d0088014101460d00200341e0006a200341a1016a290000370300200341c8006a41106a20034199016a290000370300200341c8006a41086a20034191016a2900003703002003200329008901370348200328024422044110490d002003200441706a36024420032003280240220441106a360240200441086a29000021052004290000210620034188016a200341c0006a10930120032d0088014101460d00200341e8006a41186a2204200341a1016a290000370300200341e8006a41106a220720034199016a290000370300200341e8006a41086a20034191016a29000037030020032003290089013703682003280244220841104f0d010b20034100360270200342013703682003410a36024c2003200341086a3602482003200341e8006a3602202003419c016a41013602002003420137028c01200341909dc500360288012003200341c8006a36029801200341206a419cebc00020034188016a103d1a2003280268200328027010ef020240200328026c450d002003280268102e0b420021050c010b20034188016a41086a2209200341c8006a41086a29030037030020034188016a41106a220a200341c8006a41106a29030037030020034188016a41186a220b200341c8006a41186a290300370300200341206a41086a220c200341e8006a41086a290300370300200341206a41106a220d2007290300370300200341206a41186a220720042903003703002003200329034837038801200320032903683703202003200841706a36024420032003280240220441106a3602402004290000210e200041206a200441086a290000370300200041186a200e370300200041106a200537030020002006370308200041286a200329038801370300200041306a2009290300370300200041386a200a290300370300200041c0006a200b290300370300200041c8006a2003290320370300200041d0006a200c290300370300200041d8006a200d290300370300200041e0006a2007290300370300420121050b200020053703002002450d002001102e0b200341b0016a24000bd10102037f017e230041206b22032400200341003602082003420137030020022802202104200241286a28020022052003107602402005450d002005410574210503402003200441201074200441206a2104200541606a22050d000b0b200229030021062003200241086a290300370318200320063703102003200341106a41101074200229031021062003200241186a290300370318200320063703102003200341106a411010742000200120032802002204200328020810b20102402003280204450d002004102e0b200341206a24000bb70102027f017e230041206b2203240002404124102c2204450d002003422437020420032004360200200229030021052003200241086a290300370318200320053703102003200341106a41101074200229031021052003200241186a290300370318200320053703102003200341106a41101074200320022802203602102003200341106a410410742000200120032802002202200328020810b20102402003280204450d002002102e0b200341206a24000f0b1036000b9e0303027f017e017f230041206b22032400200341003602082003420137030002404120102c2204450d002003422037021420032004360210200341106a200241246a412010742003200328021022042003280218107402402003280214450d002004102e0b2003200241c4006a412010742003200241e4006a41201074200229030021052003200241086a290300370318200320053703102003200341106a411010740240024020022802104101460d00200341003a00102003200341106a410110740c010b200341013a00102003200341106a410110742003200241146a2802003602102003200341106a410410740b20022802182104200241206a2802002206200310760240200641306c2206450d00200420066a210603402003200441201074200441206a29030021052003200441286a290300370318200320053703102003200341106a41101074200441306a22042006470d000b0b200320022d0084013a00102003200341106a410110742000200120032802002204200328020810b20102402003280204450d002004102e0b200341206a24000f0b1036000b9b0302027f017e230041106b2202240002400240024020002d00004101460d00200241003a000020012002410110742002200041386a28020036020020012002410410744120102c2203450d0220024220370204200220033602002002200041c0006a412010742001200228020022032002280208107402402002280204450d002003102e0b0240024002400240200041e0006a2d00000e03000102030b200241003a000020012002410110740c020b200241013a000020012002410110740c010b200241023a000020012002410110740b20022000413c6a2802003602002001200241041074200029030821042002200041106a290300370308200220043703002001200241101074200041186a29030021042002200041206a290300370308200220043703002001200241101074200041286a29030021042002200041306a2903003703082002200437030020012002411010740c010b200241013a00002001200241011074200220002d00013a000020012002410110742002200041046a28020036020020012002410410740b200241106a24000f0b1036000bd80102047f017e230041206b22022400024002402001280208220341306c4104722204417f4c0d00200128020021012004102c2205450d012002410036020820022004360204200220053602002003200210760240200341306c2203450d00200120036a210303402002200141201074200141206a29030021062002200141286a290300370318200220063703102002200241106a41101074200141306a22012003470d000b0b2000412020022802002201200228020810b20102402002280204450d002001102e0b200241206a24000f0b1038000b1036000b810201037f230041106b2203240020034100360208200342013703002003200228020036020c20032003410c6a410410742003200228020436020c20032003410c6a4104107420022802082104200241106a28020022052003107602402005450d002005410574210503402003200441201074200441206a2104200541606a22050d000b0b200228021421042002411c6a28020022052003107602402005450d002005410574210503402003200441201074200441206a2104200541606a22050d000b0b2003200228022036020c20032003410c6a410410742000200120032802002204200328020810b20102402003280204450d002004102e0b200341106a24000bc90101047f230041106b22032400024002402002410c6a28020022044105742205410472417b4c0d0020054108722205102c2206450d012003410036020820032005360204200320063602002003200228020036020c20032003410c6a410410742002280204210220042003107602402004450d002004410574210403402003200241201074200241206a2102200441606a22040d000b0b2000200120032802002202200328020810b20102402003280204450d002002102e0b200341106a24000f0b1038000b1036000b810201037f230041106b2203240020034100360208200342013703002003200228020036020c20032003410c6a410410742003200228020436020c20032003410c6a4104107420022802082104200241106a28020022052003107602402005450d002005410574210503402003200441201074200441206a2104200541606a22050d000b0b200228021421042002411c6a28020022052003107602402005450d002005410574210503402003200441201074200441206a2104200541606a22050d000b0b2003200228022036020c20032003410c6a410410742000200120032802002204200328020810b20102402003280204450d002004102e0b200341106a24000bac0101047f230041106b2202240002400240200128020822034105744104722204417f4c0d00200128020021012004102c2205450d0120024100360208200220043602042002200536020020032002107602402003450d002003410574210303402002200141201074200141206a2101200341606a22030d000b0b2000412020022802002201200228020810b20102402002280204450d002001102e0b200241106a24000f0b1038000b1036000bc90101017f230041206b22042400200441003602102004420137030820042001370318200441086a200441186a4108107420042002370318200441086a200441186a410810740240024002400240200341ff01710e03000102030b200441003a0018200441086a200441186a410110740c020b200441013a0018200441086a200441186a410110740c010b200441023a0018200441086a200441186a410110740b2000412020042802082203200428021010b2010240200428020c450d002003102e0b200441206a24000b970101047f230041106b22032400024002402002280208220441046a2205417f4c0d00200228020021020240024020050d00410121060c010b2005102c2206450d020b20034100360208200320053602042003200636020020042003107620032002200410742000200120032802002205200328020810b20102402003280204450d002005102e0b200341106a24000f0b1038000b1036000b9c0101047f230041106b22022400024002402001280208220341c4006c41046a2204417f4c0d00200128020021010240024020040d00410121050c010b2004102c2205450d020b200241003602082002200436020420022005360200200320021076200120032002109b012000412020022802002204200228020810b20102402002280204450d002004102e0b200241106a24000f0b1038000b1036000ba00101037f230041106b220324000240024020024105744104722204417f4c0d002004102c2205450d0120034100360208200320043602042003200536020020022003107602402002450d002002410574210203402003200141201074200141206a2101200241606a22020d000b0b2000412020032802002201200328020810b20102402003280204450d002001102e0b200341106a24000f0b1038000b1036000b9c0102027f017e230041206b2203240002404111102c2204450d0020034211370204200320043602002003200241106a41201074200229030021052003200241086a290300370318200320053703102003200341106a41101074200320022d00303a00102003200341106a410110742000200120032802002202200328020810b20102402003280204450d002002102e0b200341206a24000f0b1036000b9c0101057f230041106b220224000240024020012802082203410274220441046a2205417f4c0d00200128020021010240024020050d00410121060c010b2005102c2206450d020b20024100360208200220053602042002200636020020032002107620022001200410742000412020022802002205200228020810b20102402002280204450d002005102e0b200241106a24000f0b1038000b1036000bb20202017f017e230041206b220324002003410036020820034201370300200320022802403602102003200341106a41041074200320022802443602102003200341106a41041074200320022802483602102003200341106a410410742003200228024c3602102003200341106a41041074200229030021042003200241086a290300370318200320043703102003200341106a41101074200229031021042003200241186a290300370318200320043703102003200341106a41101074200229032021042003200241286a290300370318200320043703102003200341106a41101074200229033021042003200241386a290300370318200320043703102003200341106a411010742000200120032802002202200328020810b20102402003280204450d002002102e0b200341206a24000bb20202017f017e230041206b220324002003410036020820034201370300200320022802403602102003200341106a41041074200320022802443602102003200341106a41041074200320022802483602102003200341106a410410742003200228024c3602102003200341106a41041074200229030021042003200241086a290300370318200320043703102003200341106a41101074200229031021042003200241186a290300370318200320043703102003200341106a41101074200229032021042003200241286a290300370318200320043703102003200341106a41101074200229033021042003200241386a290300370318200320043703102003200341106a411010742000200120032802002202200328020810b20102402003280204450d002002102e0b200341206a24000bdd0101027f230041206b22022400200241003602082002420137030002404120102c2203450d002002422037021420022003360210200241106a2001412010742002200228021022032002280218107402402002280214450d002003102e0b024002400240024020012d00200e03000102030b200241003a00102002200241106a410110740c020b200241013a00102002200241106a410110740c010b200241023a00102002200241106a410110740b2000412020022802002201200228020810b20102402002280204450d002001102e0b200241206a24000f0b1036000bae0301037f230041f0006b22032400200341086a4192fdc6004107108102200341186a4190a0c5004113108102200320013602382003200341386a410410a301370348200341ec006a2201200341386a41046a3602002003200341c8006a41086a3602642003200341386a3602682003200341c8006a360260200341286a200341e0006a107c024002404120102c2204450d002003422037024c20032004360248200341c8006a2002412010742003200328024822022003280250220410a3013703582001200220046a360200200320023602682003200341d8006a41086a3602642003200341d8006a360260200341386a200341e0006a107c0240200328024c450d002002102e0b20032802302201200328024022046a41206a2202417f4c0d010240024020020d00410121050c010b2002102c2205450d010b2000410036020820002002360204200020053602002000200341086a411010742000200341186a4110107420002003280228220220011074200020032802382201200410740240200328023c450d002001102e0b0240200328022c450d002002102e0b200341f0006a24000f0b1036000b1038000bae0301037f230041f0006b22032400200341086a4192fdc6004107108102200341186a41fd9fc5004113108102200320013602382003200341386a410410a301370348200341ec006a2201200341386a41046a3602002003200341c8006a41086a3602642003200341386a3602682003200341c8006a360260200341286a200341e0006a107c024002404120102c2204450d002003422037024c20032004360248200341c8006a2002412010742003200328024822022003280250220410a3013703582001200220046a360200200320023602682003200341d8006a41086a3602642003200341d8006a360260200341386a200341e0006a107c0240200328024c450d002002102e0b20032802302201200328024022046a41206a2202417f4c0d010240024020020d00410121050c010b2002102c2205450d010b2000410036020820002002360204200020053602002000200341086a411010742000200341186a4110107420002003280228220220011074200020032802382201200410740240200328023c450d002001102e0b0240200328022c450d002002102e0b200341f0006a24000f0b1036000b1038000bca0201037f230041e0006b22022400200241086a4192fdc6004107108102200241186a41a3a0c5004109108102024002404104102c2203450d002002420437023c20022003360238200241386a20014120107420022001280220360250200241386a200241d0006a410410742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000bdd0302077f017e230041f0006b22022400200241086a200110cf052002280208210120022002280210220336021c20022001360218200241206a2001200310ed0202400240200228022022030d00410021040c010b200228022421052002200241286a2802002204360234200220033602300240024020044104490d00200328000021062002200341046a36023020022004417c6a220736023420074104490d002002200341086a360230200328000421072002200441786a220836023420084104490d002002200441746a36023420022003410c6a36023020032800082108200241d8006a200241306a10e70120022802582204450d00200229025c21090c010b4100210420024100360240200242013703382002410a36024c2002200241186a3602482002200241386a360254200241ec006a41013602002002420137025c200241909dc5003602582002200241c8006a360268200241d4006a419cebc000200241d8006a103d1a2002280238200228024010ef020240200228023c450d002002280238102e0b0b02402005450d002003102e0b024020040d00410021040c010b200020093702102000200836020820002007360204200020063602000b2000200436020c0240200228020c450d002001102e0b200241f0006a24000bb10201037f230041e0006b22022400200241086a4192fdc6004107108102200241186a41aca0c500410d108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000bd60101037f230041206b220224002002200010cf05200228020821032002280200210020024100360218200242013703102002200128020036021c200241106a2002411c6a410410742002200128020436021c200241106a2002411c6a410410742002200128020836021c200241106a2002411c6a41041074200128020c2104200141146a2802002201200241106a1076200241106a2004200141027410742000200320022802102201200228021810b20102402002280214450d002001102e0b02402002280204450d002000102e0b200241206a24000bb10201037f230041e0006b22022400200241086a4192fdc6004107108102200241186a41dfa2c500410a108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000ba30201047f230041206b220224002002200010d30520022802082103200228020021042002410036021820024201370310200241106a200141386a412010742002200136021c2002411c6a200241106a10af012002200141106a36021c2002411c6a200241106a10af0120012802202100200141286a2802002205200241106a10760240200541186c2205450d00200020056a210503402002200036021c2002411c6a200241106a10af01200041106a200241106a109102200041186a22002005470d000b0b200128022c2100200141346a2802002205200241106a1076200241106a2000200541027410742004200320022802102200200228021810b20102402002280214450d002000102e0b02402002280204450d002004102e0b200241206a24000bac0201037f230041e0006b2202240020024192fdc6004107108102200241106a41e9a2c5004106108102024002404120102c2203450d002002422037023420022003360230200241306a200141201074200241c0006a200228023022012002280238220310d803200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c0006a360250200241206a200241d0006a107c02402002280234450d002001102e0b2002280228220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b20004100360208200020013602042000200436020020002002411010742000200241106a411010742000200228022022012003107402402002280224450d002001102e0b200241e0006a24000f0b1036000b1038000b130020004117360204200041f0a2c5003602000b340020004192fdc60036020420004100360200200041146a411e360200200041106a419095c600360200200041086a42073702000b3401017f230041106b220224002000410036020820004201370200200241053a000f20002002410f6a41011074200241106a24000b4e01017f230041106b2202240020004100360208200042013702002002420037030820024200370300200020024110107420024200370308200242003703002000200241101074200241106a24000b2f01017f02404104102c22020d001036000b2000420437020420002002360200410020001076410841002000109d010b4601027f230041106b2202240002404110102c22030d001036000b200042103702042000200336020020024200370308200242003703002000200241101074200241106a24000b5901027f230041206b220224002000410036020820004201370200200241106a4200370300200241003602082002410036021c20002002411c6a41041074200241086a4104722203200010f201200310bc02200241206a24000b4901017f230041106b220224002000410036020820004201370200200241003a00042002410036020020022000109102200241003a000f20002002410f6a41011074200241106a24000bf20101037f230041c0006b220224002000410036020820004201370200200241206a4200370300200241086a41106a22034200370300200241106a4200370300200241306a2204410036020020024200370308200242083703282002200241086a36023c2002413c6a200010af012002200336023c2002413c6a200010af0120022802282103200428020022042000107602402004450d00200441306c210403402000200341106a412010742002200336023c2002413c6a200010af01200341306a2103200441506a22040d000b0b0240200228022c2203450d00200341306c450d002002280228102e0b200241c0006a24000b2601017f02404104102c22020d001036000b20004204370204200020023602004100200010760b4301027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241d40036020c20002002410c6a41041074200241106a24000b130020004105360204200041c4d5c6003602000b4201027f230041106b2202240002404104102c22030d001036000b20004204370204200020033602002002411036020c20002002410c6a41041074200241106a24000b4301027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241800236020c20002002410c6a41041074200241106a24000b4201027f230041106b2202240002404104102c22030d001036000b20004204370204200020033602002002411b36020c20002002410c6a41041074200241106a24000b4201027f230041106b2202240002404104102c22030d001036000b20004204370204200020033602002002411c36020c20002002410c6a41041074200241106a24000b4201027f230041106b2202240002404104102c22030d001036000b20004204370204200020033602002002410636020c20002002410c6a41041074200241106a24000bb10201037f230041e0006b22022400200241086a4192fdc6004107108102200241186a41c4abc6004106108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000bd30908017f047e027f017e027f027e047f017e230041e0016b220324002003200236025c20032001360258200341e0006a2001200210ed02024002400240200328026022010d00200041003602200c010b200328026421022003200341e0006a41086a280200360284012003200136028001200341a8016a20034180016a10930102400240024020032d00a8014101460d00200341a0016a200341c1016a29000037030020034188016a41106a200341b9016a29000037030020034188016a41086a200341b1016a290000370300200320032900a90137038801200341c0006a20034180016a10db042003290340a70d00200341c0006a41106a290300210420032903482105200341286a20034180016a10db042003290328a70d00200341286a41106a290300210620032903302107200341206a20034180016a10ab0120032802200d000240024002402003280224220820032802840141186e2209200920084b1bad42187e220a422088a70d00200aa72209417f4c0d000240024020090d004108210b0c010b2009102c220b450d080b200941186ead210a024002402008450d00200341186a210c0340200341086a20034180016a10db042003290308a70d04200c290300210d2003290310210e200320034180016a10ab0120032802000d042003280204210f0240200a422088a72210200aa72209470d00200941016a22112009490d04200941017422122011201220114b1b22114104201141044b1bad42187e2213422088a74541037421112013a721120240024020090d00200341003602a8010c010b200341083602b0012003200b3602a8012003200941186c3602ac010b200341d0016a20122011200341a8016a107d20032802d801210920032802d0014101460d0320032802d401210b200a42808080807083200941186ead84210a0b200b201041186c6a2209200d3703082009200e3703002009200f360210200a4280808080107c210a2008417f6a22080d000b0b200b450d04200341d0016a20034180016a10e70120032802d0010d05200aa72209450d04200941186c0d030c040b20090d070b1038000b200aa72209450d01200941186c450d010b200b102e0b200341003602900120034201370388012003410a3602d4012003200341d8006a3602d001200320034188016a360270200341bc016a4101360200200342013702ac01200341909dc5003602a8012003200341d0016a3602b801200341f0006a419cebc000200341a8016a103d1a20032802880120032802900110ef020240200328028c01450d00200328028801102e0b200041003602200c010b200341f0006a41086a2209200341d0016a41086a280200360200200341a8016a41086a220820034188016a41086a290300370300200341a8016a41106a220f20034188016a41106a290300370300200341a8016a41186a221020034188016a41186a290300370300200320032903d00137037020032003290388013703a801200041186a20063703002000200737031020002004370308200020053703002000200a3702242000200b3602202000412c6a2003290370370200200041346a2009280200360200200041386a20032903a801370300200041c0006a2008290300370300200041c8006a200f290300370300200041d0006a20102903003703000b2002450d002001102e0b200341e0016a24000f0b1036000ba20201037f230041106b220224002001280208210302404101102c2204450d0020004201370204200020043602000240024020030d00200241003a00032000200241036a410110740c010b200241013a00032000200241036a41011074200220012802003602042000200241046a41041074200220012802043602082000200241086a41041074200128021022042000107602402004450d002004410574210403402000200341201074200341206a2103200441606a22040d000b0b200141146a28020021032001411c6a28020022042000107602402004450d002004410574210403402000200341201074200341206a2103200441606a22040d000b0b2002200141206a28020036020c20002002410c6a410410740b200241106a24000f0b1036000bbd0401047f230041106b2202240020002802042103024002400240024020002802004101470d002000410c6a280200220041046a2204417f4c0d020240024002400240024020040d002002410036020820022004360204200241013602000c010b2004102c2205450d07200241003602082002200436020420022005360200200041c000490d01200041808001490d022000418080808004490d030b200241033a000c20022002410c6a410110742002200036020c20022002410c6a4104107420022003200010740c040b200220004102743a000c20022002410c6a4101107420022003200010740c030b200220004102744101723b010c20022002410c6a4102107420022003200010740c020b2002200041027441027236020c20022002410c6a4104107420022003200010740c010b200041086a280200220041046a2204417f4c0d0102400240024002400240024020040d002002410036020820022004360204200241013602000c010b2004102c2205450d07200241003602082002200436020420022005360200200041c000490d01200041808001490d022000418080808004490d030b200241031091012002200036020c20022002410c6a410410740c030b200220004102741091010c020b200220004102744101723b010c20022002410c6a410210740c010b2002200041027441027236020c20022002410c6a410410740b20022003200010740b200120022802002002280208107402402002280204450d002002280200102e0b200241106a24000f0b1038000b1036000b884c09047f017e037f027e077f017e037f017e2a7f23004190056b22032400200341d8006a4192fdc600410710810220034190016a41dfa2c500410a10810202404120102c2204450d00200342203702c404200320043602c004200341c0046a200341d8006a41101074200341c0046a20034190016a4110107402400240024020032802c8042204417f4c0d0020032802c00421050240024020040d00410121060c010b2004102c2206450d040b20062005200410e9082105200341e8036a41086a200341c0046a41086a2802002206360200200320032903c00422073703e803200341ec006a2006360200200341f7006a200341c0046a41026a2d00003a0000200320043602602003200436025c200320053602582003200737026441002108200341003a00742003410c360270200320032f00c0043b007520034190016a200341d8006a10eb050240200341c0016a2d00004102460d00410021080340024020032802b40141ffffff3f71450d0020032802b001102e0b200841016a210820034190016a200341d8006a10eb0520032d00c0014102470d000b0b0240200328025c450d002003280258102e0b0240200341e8006a280200450d002003280264102e0b200341d8006a4192fdc600410710810220034190016a41f09dc500410a1081024120102c2204450d03200342203702c404200320043602c004200341c0046a200341d8006a41101074200341c0046a20034190016a4110107420032802c8042204417f4c0d0020032802c00421050240024020040d00410121060c010b2004102c2206450d040b20062005200410e9082105200341e8036a41086a200341c0046a41086a2802002206360200200320032903c00422073703e803200341ec006a2006360200200341f7006a200341c0046a41026a2d00003a0000200320043602602003200436025c200320053602582003200737026441002109200341003a00742003410d360270200320032f00c0043b007520034190016a200341d8006a108c050240200341b4016a2d00004102460d00410021090340200941016a210920034190016a200341d8006a108c0520032d00b4014102470d000b0b0240200328025c450d002003280258102e0b0240200341e8006a280200450d002003280264102e0b02402001450d00417f200820096a220420042008491b20024d0d00200041e0eac60036020420004101360200200041086a41163602000c030b200341d8006a4192fdc600410710810220034190016a41aca0c500410d1081024120102c2204450d03200342203702c404200320043602c004200341c0046a200341d8006a41101074200341c0046a20034190016a4110107420032802c8042204417f4c0d0020032802c00421010240024020040d00410121050c010b2004102c2205450d040b20052001200410e9082101200341e8036a41086a200341c0046a41086a2802002205360200200320032903c00422073703e803200341ec006a2005360200200341f7006a200341c2046a2d00003a0000200320043602602003200436025c20032001360258200320073702644100210a200341003a00742003410e360270200320032f00c0043b007520034190016a200341d8006a108d05024020032802bc012204450d004100210a0340024020032802c00141ffffffff0371450d002004102e0b200a41016a210a20034190016a200341d8006a108d0520032802bc0122040d000b0b0240200328025c450d002003280258102e0b0240200341d8006a41106a280200450d002003280264102e0b200341d8046a22044200370300200341c0046a41106a22014200370300200341c0046a41086a22054200370300200342003703c00420034190016a41f8fcc6004108108102200520034190016a41086a220629000037030020032003290090013703c00420034190016a41a8aac800410d1081022004200629000037030020012003290090013703002003200341c0046a412010f802200341106a29030021072003290308210b2003290300210c4110102c220d450d03200d200b4200200ca722041b370300200d2007420020041b370308200341d8006a4192fdc600410710810220034190016a41f09dc500410a1081024120102c2204450d03200342203702c404200320043602c004200341c0046a200341d8006a41101074200341c0046a20034190016a4110107420032802c8042204417f4c0d0020032802c00421010240024020040d00410121050c010b2004102c2205450d040b20052001200410e90821014108210e200341c8016a41086a200341c0046a41086a2802002205360200200341386a41026a220620034190016a41026a2d00003a0000200320032903c00422073703c801200320032f0090013b0138200341ac036a2005360200200320043602a0032003200436029c032003200136029803200320073702a4034100210f200341003a00b4032003410d3602b003200341b7036a20062d00003a0000200320032f01383b00b50320034190016a20034198036a108c05410021100240200341b4016a2d00004102460d0041002111410021124100210f410021104108210e0340200341d8006a41206a20034190016a41206a290300370300200341d8006a41186a220420034190016a41186a22052903002207370300200341d8006a41106a220120034190016a41106a2206290300220b370300200341d8006a41086a221320034190016a41086a2202290300220c37030020032003290390012214370358200341e8036a41186a22152007370300200341e8036a41106a2216200b370300200341e8036a41086a2217200c370300200320143703e8032005200429030037030020062001290300370300200220132903003703002003200329035837039001200d200341e8036a10ee0521074120102c2201450d05200120032903e803370000200141186a2015290300370000200141106a2016290300370000200141086a2017290300370000200341c0046a41086a2002290300220b370300200341c0046a41106a2006290300220c370300200341c0046a41186a20052903002214370300200320032903900122183703c004200520143703002006200c3703002002200b37030020032018370390010240200f2010470d00200f41016a2204200f490d0320122004201220044b1b22044104200441044b1bad42387e220b422088a7454103742104200ba7211302400240200f0d00200341003602e0020c010b200341083602e802200320113602e4022003200e3602e0020b200341a8026a20132004200341e0026a107d20032802b0022104024020032802a8024101470d002004450d040c070b20032802ac02210e200441386e21100b200e20116a22042007370300200441086a200329039001370300200441106a2002290300370300200441186a2006290300370300200441206a20052903003703002004412c6a428180808010370200200441286a2001360200201141386a2111201241026a2112200f41016a210f20034190016a20034198036a108c0520032d00b4014102470d000b0b0240200328029c03450d00200328029803102e0b0240200341a8036a280200450d0020032802a403102e0b200341d8006a4192fdc600410710810220034190016a41aca0c500410d1081024120102c2204450d03200342203702c404200320043602c004200341c0046a200341d8006a41101074200341c0046a20034190016a4110107420032802c8042204417f4c0d0020032802c00421010240024020040d00410121050c010b2004102c2205450d040b20052001200410e9082101200341286a41086a200341c0046a41086a22172802002205360200200320032903c00422073703282003420037021c200341386a41146a2005360200200341d7006a200341256a41026a2d00003a0000200320043602402003200436023c2003200136023820032007370244200341003a00542003410e360250200320032f00253b0055200341d8006a200341386a108d0502402003280284012219450d00200341a8026a411c6a211a200341c0046a410472211b200341c0046a411c6a211c200341e0026a411c6a211d200341c8016a41206a211641002112034020034190016a41306a200341d8006a41306a220429030037030020034190016a41286a200341d8006a41286a220129030037030020034190016a41206a200341d8006a41206a290300220737030020034190016a41186a2205200341d8006a41186a290300220b37030020034190016a41106a2206200341d8006a41106a290300220c37030020034190016a41086a2202200341d8006a41086a290300221437030020032003290358221837039001200341c8016a41286a200128020036020020162007370300200341c8016a41186a200b370300200341c8016a41106a200c370300200341c8016a41086a2014370300200320183703c8012004280200211e200328028c01211f200341f8016a41086a2220201641086a280200360200200320162903003703f801200341c0046a41186a22212005290300370300200341c0046a41106a222220062903003703002017200229030037030020032003290390013703c004024002402012450d00200328021821130c010b41f004102c2212450d0641002113201241003b018e02201241003602002003201236021c200341003602180b0240024002400240024002400240024002400240024002400340201241186a210120124190026a211120122f018e022215410574210241002104417f210502400340024020022004470d00201521050c020b200341c0046a201120046a412010ec082206450d03200541016a2105200141186a2101200441206a21042006417f4a0d000b0b02402013450d002013417f6a2113201220054102746a41f0046a28020021120c010b0b20034188026a41086a201b41086a2223290200220737030020034188026a41106a201b41106a2224290200220b37030020034188026a41186a201b41186a222528020022043602002003201b290200220c3703880220032802c0042113200341e0026a41186a22262004360200200341e0026a41106a2227200b370300200341e0026a41086a222820073703002003200c3703e002200341d0036a41086a22292020280200360200200320032903f8013703d00302402015410a4b0d00200341e8036a41086a22062029280200360200200320032903d0033703e803200341a0046a41186a22022026280200360200200341a0046a41106a22222027290300370300200341a0046a41086a22202028290300370300200320032903e0023703a004200541016a2121201541016a21010240200520154f22270d00201120214105746a201120054105746a20012005417f736a41057410ea081a0b201120054105746a22042013360000200441146a20222903003700002004410c6a2020290300370000200420032903a0043700042004411c6a200228020036000020172006280200360200200320032903e8033703c004201241046a2104024020270d002004202141186c6a2004200541186c6a201520056b41186c10ea081a0b2004200541186c6a220420032903c004370200201728020021052004201f3602142004201e3602102004201936020c200441086a2005360200201220013b018e020c0b0b4100212a4104210402400240200541054f0d00200521060c010b4105210441052106024002402005417b6a0e020201000b200541796a21064101212a410621040c010b410021064101212a0b41f004102c2201450d11200141003b018e0220014100360200200120122f018e02222b2004417f736a22053b018e02201120044105746a2202280000212c200341a0046a41186a222d2002411c6a280000360200200341a0046a41106a2215200241146a290000370300200341a0046a41086a22202002410c6a290000370300200320022900043703a004200341f8046a41106a222e201241046a222f200441186c6a220241106a290200370300200341f8046a41086a2230200241086a290200370300200320022902003703f8042005410c4f0d01202b200441016a22026b2005470d0220014190026a201120024105746a200541057410e9081a200141046a202f200241186c6a200541186c10e9081a201c20032903f8043702002021202d280200360200201c41086a22312030290300370200201c41106a2232202e290300370200201220043b018e02202220152903002207370300200341e8036a41086a222b2020290300370300200341e8036a41106a222f2007370300200341e8036a41186a22332021290300370300200341e8036a41206a2234200341c0046a41206a2235290300370300200341e8036a41286a2236200341c0046a41286a2237290300370300200341e8036a41306a2238200341c0046a41306a2239280200360200200320032903a0043703e80320302029280200360200200320032903d0033703f80420012012202a1b22052f018e022102202d20262802003602002015202729030037030020202028290300370300200320032903e0023703a00420054190026a2104200241016a21110240200641016a222a20024b223a0d002004202a4105746a200420064105746a20112006417f736a41057410ea081a0b200420064105746a22042013360000200441146a20152903003700002004410c6a2020290300370000200420032903a0043700042004411c6a202d28020036000020172030280200360200200320032903f8043703c004200541046a21040240203a0d002004202a41186c6a2004200641186c6a200220066b41186c10ea081a0b2004200641186c6a220420032903c004370200201728020021062004201f3602142004201e3602102004201936020c200441086a2006360200200520113b018e0220034198036a41306a2204203828020036020020034198036a41286a2205203629030037030020034198036a41206a2206203429030037030020034198036a41186a221f203329030037030020034198036a41106a2219202f29030037030020034198036a41086a221e202b290300370300200320032903e80337039803200341e0026a41306a223b2004280200360200200341e0026a41286a223c2005290300370300200341e0026a41206a223d20062903003703002026201f290300370300202720192903003703002028201e29030037030020032003290398033703e002024002400240201228020022130d004100212a0c010b4100212a2001213a202c213e034020122f018c022102201f202628020036020020192027290300370300201e2028290300370300200320032903e00237039803200341d0036a41106a223f201d41106a2902003703002029201d41086a2902003703002003201d2902003703d00320132f018e022212410b490d024100211141042104024020024105490d0020022104024002402002417b6a0e020201000b200241796a210241012111410621040c010b4100210241012111410521040b41a005102c2201450d14200141003b018e0220014100360200200120132f018e0222402004417f736a22053b018e0220134190026a224120044105746a2206280000212c202d2006411c6a2800003602002015200641146a29000037030020202006410c6a290000370300200320062900043703a004202e201341046a2242200441186c6a220641106a2902003703002030200641086a290200370300200320062902003703f8042005410c4f0d062040200441016a22066b2005470d0720014190026a204120064105746a200541057410e9081a200141046a2042200641186c6a200541186c10e9081a201320043b018e0220172020290300370300202220152903003703002021202d280200360200201c20032903f804370200203120302903003702002032202e290300370200200320032903a0043703c00420012f018e02220541016a21402005410c4f0d08201220046b22042040470d09202a41016a212a200141f0046a201320064102746a41f0046a200441027410e9081a4100210402400340200120044102746a41f0046a280200220620043b018c02200620013602002004200420054922066a220420054b0d0120060d000b0b20382039280200360200203620372903003703002034203529030037030020332021290300370300202f2022290300370300202b2017290300370300200320032903c0043703e8032015203f29030037030020202029290300370300200320032903d0033703a0042001201320111b22062f018e0221052003203e3602c004201b2003290398033700002023201e290300370000202420192903003700002025201f28020036000020064190026a2112200541016a21110240200241016a220420054b223e0d00201220044105746a201220024105746a2002417f7320116a41057410ea081a0b201220024105746a221220032903c004370000201241186a2021290300370000201241106a2022290300370000201241086a20172903003700002022201529030037030020172020290300370300200320032903a0043703c004200641046a21120240203e0d002012200441186c6a2012200241186c6a200520026b41186c10ea081a0b2012200241186c6a221220032903c004370200201241106a2022290300370200201241086a2017290300370200200641f0046a21120240200241026a223e200541026a22054f0d002012203e4102746a201220044102746a2004417f7320056a41027410ea081a0b201220044102746a203a360200200620113b018e020240200420054f0d00200620024102746a41f4046a2104034020042802002205200241016a22023b018c0220052006360200200441046a210420112002470d000b0b2028202b2903003703002027202f29030037030020262033290300370300203d2034290300370300203c2036290300370300203b2038280200360200200320032903e8033703e002201321122013280200220421132001213a202c213e20040d000b0b200341a8026a41306a203b280200360200200341a8026a41286a203c290300370300200341a8026a41206a203d290300370300200341a8026a41186a20262903002207370300200341a8026a41106a2027290300220b370300200341a8026a41086a2028290300220c370300200320032903e00222143703a802202b200c370300202f200b370300203320073e02002028201a41086a2902003703002027201a41106a290200370300200320143703e8032003201a2902003703e002200328021c2205450d082003280218210641a005102c2204450d12200420053602f004200441003b018e0220044100360200200541003b018c02200520043602002003200436021c2003200641016a360218202120332802003602002022202f2903003703002017202b290300370300200320032903e8033703c00420192027290300370300201e2028290300370300200320032903e002370398032006202a470d0920042f018e022206410b4f0d0a2004200641016a22023b018e02200420064105746a22054190026a202c36000020054194026a20032903c0043700002005419c026a2017290300370000200541a4026a2022290300370000200541ac026a20212802003600002004200641186c6a220541046a2003290398033702002005410c6a201e290300370200200541146a2019290300370200200441f0046a20024102746a2001360200200120023b018c02200120043602002003200328022041016a360220202a1a20011a0c0c0b2015203f29030037030020202029290300370300200320032903d0033703a004201b2003290398033700002023201e290300370000202420192903003700002025201f2802003600002003203e3602c00420134190026a2104201241016a21060240201220024d22010d00200420024105746a220541206a20052002417f7320066a41057410ea081a0b200420024105746a220420032903c004370000200441186a2021290300370000200441106a2022290300370000200441086a20172903003700002022201529030037030020172020290300370300200320032903a0043703c004200241016a2104201341046a2105024020010d002005200441186c6a2005200241186c6a201220026b41186c10ea081a0b2005200241186c6a220520032903c004370200200541106a2022290300370200200541086a2017290300370200201341f0046a2105201241026a2111024020010d00200241027420056a41086a200520044102746a2004417f7320116a41027410ea081a0b200520044102746a203a360200201320063b018e02200420114f0d0a20132004417f6a22044102746a41f4046a2101034020012802002205200441016a22043b018c0220052013360200200141046a210120062004470d000c0b0b0b2001416c6a220520032903f801370200200141786a2206280200210420202802002102200620193602002001417c6a220628020021112006201e3602002001201f360200200541086a20023602002004450d0a201141ffffffff0371450d0a2004102e0c0a0b2005410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b2005410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b2040410c41f49cc700104d000b41f49bc7004128419c9cc7001039000b41e8aac700412b4194abc7001039000b41e899c700413041989ac7001039000b41a89ac700412041c89ac7001039000b2003200328022041016a3602200b200341d8006a200341386a108d052003280284012219450d01200328021c21120c000b0b0240200328023c450d002003280238102e0b0240200341c8006a280200450d002003280244102e0b200341d8006a4192fdc600410710810220034190016a41dfa2c500410a1081024120102c2204450d03200342203702c404200320043602c004200341c0046a200341d8006a41101074200341c0046a20034190016a4110107420032802c8042204417f4c0d0020032802c00421010240024020040d00410121050c010b2004102c2205450d040b20052001200410e9082101200341a8026a41086a200341c0046a41086a22212802002205360200200341c8016a41026a220620034190016a41026a2d00003a0000200320032903c00422073703a802200320032f0090013b01c801200341fc036a2005360200200320043602f003200320043602ec03200320013602e803200320073702f403200341003a0084042003410c3602800420034187046a20062d00003a0000200320032f01c8013b00850420034190016a200341e8036a10eb0520034190016a41306a2d00004102460d010340202120034190016a41086a22152903002207370300200341c0046a41106a20034190016a41106a2216290300220b370300200341c0046a41186a20034190016a41186a2217290300220c370300200320032903900122143703c00420032802bc01211120032802b001211320032802b401211920032802b8012106200341d8006a41186a221e200c370300200341d8006a41106a221f200b370300200341d8006a41086a22202007370300200320143703580240024020060d00410021120c010b41002122410021124100210502400340024002402012450d00201320054105746a21042013200520226a4105746a210103400240200341186a200410a1022202450d00200228020820114b0d030b20012004290000370000200141186a200441186a290000370000200141106a200441106a290000370000200141086a200441086a290000370000200441206a2104200141206a21012006200541016a22054b0d000c040b0b201320054105746a210403400240200341186a200410a1022201450d00200128020820114b0d020b200441206a21042006200541016a22054b0d000b410021120c030b2022417f6a2122201241016a21122006200541016a22054b0d000b0b024020120d00410021120c010b2013200520126b4105746a201320054105746a200620056b41057410ea081a0b200d200341d8006a10ee0521072017201e2903003703002016201f2903003703002015202029030037030020032003290358370390010240200f2010470d00200f41016a2204200f490d02200f41017422012004200120044b1b22044104200441044b1bad42387e220b422088a7454103742104200ba7210102400240200f0d0020034100360298030c010b200341083602a0032003200e360298032003200f41386c36029c030b200341e0026a2001200420034198036a107d20032802e8022104024020032802e0024101470d0020040d060c030b20032802e402210e200441386e21100b200e200f41386c6a220420073703002004200329039001370308200441106a2015290300370300200441186a2016290300370300200441206a2017290300370300200441306a200620126b3602002004412c6a201936020020042013360228200f41016a210f20034190016a200341e8036a10eb0520032d00c0014102470d000c020b0b1038000b2009ad220742f8cdaf0d7e2008ad220b42c8acef0b7e7c200aad220c42d8e5f90a7e7c200b42c0d1e1237e7c200742c0d1e1237e7c42c0d1e1237c220b200c42c0f0f50b7e7c2107024020032802ec03450d0020032802e803102e0b2007200b5421040240200341f8036a280200450d0020032802f403102e0b427f200720041b210b200328021c21042003410036021c02402004450d00024020032802182201450d002001417f6a2101034020042802f00421042001450d012001417f6a21010c000b0b024020032802202202450d0041002105200341c8046a211203402002417f6a210241012101024002400340200520042f018e02490d010240200428020022060d002004102e410021040c030b20042f018c0221052004102e2001417f6a2101200621040c000b0b200341c0046a41186a200420054105746a220641a8026a290000370300200341c0046a41106a200641a0026a290000370300201220064198026a290000370300200320064190026a2900003703c004200541016a21062004200541186c6a220541146a2902002107200541106a2802002111024020014101470d00200621050c010b200420064102746a41f0046a280200210402402001450d000340200141016a220520014f210620042802f00421042005210120060d000b0b410021050b2011450d020240200742ffffffff0383500d002011102e0b20020d000b0b0340200428020021012004102e2001210420010d000b0b200d102e200041186a200b370300200041106a200f3602002000410c6a2010360200200041086a200e360200200041003602000b20034190056a24000f0b1036000b980501047f23004190016b220524002005200436021420052003360210200541d4e2cc00200141086a20024108491b36021820054100200241786a2201200120024b1b36021c200541e0006a200541186a109301200541c0006a41086a2202200541e9006a290000370300200541c0006a41106a2201200541f1006a290000370300200541c0006a41186a2203200541f9006a29000037030020052005290061370340024002400240024020052d00604101460d00200541206a41186a2003290300370300200541206a41106a2001290300370300200541206a41086a200229030037030020052005290340370320200541086a200541106a10ab01024002402005280208450d00200541003602600c010b200541e0006a200541106a200528020c10920120052802602202450d00200528026421010240200528021422034104490d00200541e8006a280200210620052802102204280000210720052003417c6a22083602142005200441046a22043602102008450d0020042d0000210820052003417b6a3602142005200441016a3602104100210320080e020403000b200141ffffff3f71450d002002102e0b20054186016a41026a2005418a016a41026a2d00003a0000200520052f018a013b018601200041023a00300c030b200041023a00300c020b410121030b20054186016a41026a22042005418d016a41026a2d00003a0000200520052f008d013b018601200041186a200541206a41186a290300370000200041106a200541206a41106a290300370000200041086a200541206a41086a29030037000020002005290320370000200020033a00302000200736022c200020063602282000200136022420002002360220200020052f0186013b0031200041336a20042d00003a00000b20054190016a24000be60303057f017e037f230041c0006b22022400200241086a200128020c200141146a280200108b050240024020022802082203450d00200141086a2104200141106a2105024003400240024020042802002206200229020c2207422088a722084b0d0020012802002003200610ec08450d010b2007a7450d032003102e0c030b02402005280200450d00200128020c102e0b2001200336020c20052007370200200241086a2003200810ed020240024020022802082203450d0020022802102109200228020c2108024020012d001c450d00200128020c200128021410ff010b2001280214220a20042802002206490d03200241086a200128020c20066a200a20066b20032009200128021811050020022d00384102470d012008450d002003102e0b200241086a200128020c2001280214108b05200228020822030d010c030b0b20002002290308370200200041306a200241086a41306a280200360200200041286a200241086a41286a290300370200200041206a200241086a41206a290300370200200041186a200241086a41186a290300370200200041106a200241086a41106a290300370200200041086a200241086a41086a2903003702002008450d022003102e0c020b2006200a41e89ec5001056000b200041023a00300b200241c0006a24000bf80301017f23004190016b220524002005200436021420052003360210200541d4e2cc00200141086a20024108491b36021820054100200241786a2201200120024b1b36021c200541e8006a200541186a109301200541c8006a41086a2202200541f1006a290000370300200541c8006a41106a2201200541f9006a290000370300200541c8006a41186a220320054181016a290000370300200520052900693703480240024002400240024020052d00684101460d00200541286a41186a2003290300370300200541286a41106a2001290300370300200541286a41086a200229030037030020052005290348370328200541086a200541106a10ab0120052802080d03200528020c21022005418094ebdc0336026c2005200236026820052802142201450d03200541e8006a2002418094ebdc034b4102746a2802002104200528021022022d0000210320052001417f6a3602142005200241016a3602104100210220030e020201030b200041023a00240c030b410121020b20002005290328370000200041186a200541286a41186a290300370000200041106a200541286a41106a290300370000200041086a200541286a41086a290300370000200020023a002420002004360220200020052f00253b0025200041276a200541276a2d00003a00000c010b200041023a00240b20054190016a24000bf70302027f017e23004180016b220524002005200436020c20052003360208200541d4e2cc00200141086a20024108491b36021020054100200241786a2201200120024b1b360214200541d8006a200541106a109301200541386a41086a2202200541e1006a290000370300200541386a41106a2201200541e9006a290000370300200541386a41186a2206200541f1006a290000370300200520052900593703380240024020052d00584101460d00200541186a41186a2006290300370300200541186a41106a2001290300370300200541186a41086a200229030037030020052005290338370318024020044104490d002005200341046a36020820052004417c6a220236020c20024104490d00200328000021012005200341086a3602082005200441786a220236020c20024104490d00200328000421022005200441746a36020c20052003410c6a36020820032800082104200541d8006a200541086a10e70120052802582203450d00200529025c210720002005290318370000200041186a200541186a41186a290300370000200041106a200541186a41106a290300370000200041086a200541186a41086a290300370000200020073702302000200336022c2000200436022820002002360224200020013602200c020b2000410036022c0c010b2000410036022c0b20054180016a24000ba10706017f027e027f017e027f017e230041a0026b22022400200041086a29030021032000290300210420024190026a200110e505200241e8006a200228029002220020022802980210f402200241c8006a41086a2201200241f1006a290000370300200241c8006a41106a2205200241f9006a290000370300200241c8006a41186a220620024181016a2900003703002002200229006937034802400240024002400240024020022d00684101470d00200241286a41186a2006290300370300200241286a41106a2005290300370300200241286a41086a2001290300370300200220022903483703280240200228029402450d002000102e0b200241e8006a41186a200241286a41186a290300370300200241e8006a41106a200241286a41106a290300370300200241e8006a41086a200241286a41086a29030037030020022002290328370368200241d0016a4192fdc6004107108102200241e0016a41e9a2c50041061081024120102c2200450d042002422037028402200220003602800220024180026a200241e8006a4120107420024190026a2002280280022200200228028802220110d803200241d4006a200020016a36020020022000360250200220024190026a41106a36024c200220024190026a360248200241f0016a200241c8006a107c0240200228028402450d002000102e0b20022802f801220141206a2200417f4c0d050240024020000d00410121050c010b2000102c2205450d050b200241003602c801200220003602c401200220053602c001200241c0016a200241d0016a41101074200241c0016a200241e0016a41101074200241c0016a20022802f001220020011074024020022802f401450d002000102e0b200241e8006a20022802c001220520022802c80110e60520022802c40121002002280288012206450d0120024180016a290300210720024198016a280200210820024194016a28020021092002290378210a200228028c01210102402000450d002005102e0b02402001450d00200141186c450d002006102e0b200841ffffffff0371450d032009102e0c030b200228029402450d012000102e0c010b2000450d002005102e0b4200210a420021070b200241186a20042003427f420010e708200241086a200a20072002290318220342012003420156200241186a41086a29030022034200522003501b22001b2003420020001b10e708200241086a41086a290300210320022903082104200241a0026a24002004427f2003501b0f0b1036000b1038000bc00c07047f017e047f017e017f027e017f230041c0016b22032400200341d8006a4192fdc6004107108102200341f8006a41f09dc500410a108102024002400240024002404120102c2204450d002003422037023c20032004360238200341386a200341d8006a41101074200341386a200341f8006a4110107420032802402204417f4c0d04200328023821050240024020040d00410121060c010b2004102c2206450d010b20062005200410e9082105200341186a41086a200341386a41086a2802002206360200200320032903382207370318200341ec006a2006360200200341f7006a200341386a41026a2d00003a0000200320043602602003200436025c200320053602582003200737026441002104200341003a00742003410d360270200320032f00383b0075200341f8006a200341d8006a108c0502402003419c016a2d00004102460d00410021040340200441016a2104200341f8006a200341d8006a108c0520032d009c014102470d000b0b0240200328025c450d002003280258102e0b0240200341e8006a280200450d002003280264102e0b02402001450d00200420024d0d00200041f6eac600360204200041086a4117360200410121040c040b200341d8006a4192fdc6004107108102200341f8006a41f09dc500410a1081024120102c2201450d002003422037023c20032001360238200341386a200341d8006a41101074200341386a200341f8006a4110107420032802402201417f4c0d04200328023821050240024020010d00410121060c010b2001102c2206450d010b20062005200110e9082105200341086a41086a200341386a41086a2802002206360200200341046a41026a2202200341f8006a41026a2d00003a0000200320032903382207370308200320032f00783b01042003412c6a2006360200200320013602202003200136021c2003200536021820032007370224200341003a00342003410d360230200341376a20022d00003a0000200320032f01043b0035200341f8006a200341186a108c0520032d009c014102460d01200341d8006a41186a2201200341f8006a41186a290300370300200341d8006a41106a2205200341f8006a41106a290300370300200341d8006a41086a200341f8006a41086a290300370300200320032903783703584120102c2208450d0020082003290358370000200841186a2001290300370000200841106a2005290300370000200841086a200341d8006a41086a2209290300370000200341386a41186a200341186a41186a290300370300200341386a41106a200341186a41106a290300370300200341386a41086a200341186a41086a29030037030020032003290318370338200341f8006a200341386a108c0502400240024020032d009c014102470d0041012101410121060c010b4120210241012101410121060340200341d8006a41186a200341f8006a41186a220a2903002207370300200341d8006a41106a200341f8006a41106a220b290300220c3703002009200341f8006a41086a220d290300220e37030020032003290378220f370358200a2007370300200b200c370300200d200e3703002003200f370378024020062001470d00200141016a22052001490d08200141017422102005201020054b1b22054104200541044b1b220541ffffff3f712005462110200541057421050240024020010d00200341003602b0010c010b200341013602b801200320083602b001200320014105743602b4010b200341a0016a20052010200341b0016a107d20032802a801210120032802a0014101460d0320032802a4012108200141057621010b200820026a22052003290378370000200541186a200a290300370000200541106a200b290300370000200541086a200d290300370000200241206a2102200641016a2106200341f8006a200341386a108c0520032d009c014102470d000b0b0240200328023c450d002003280238102e0b200341c8006a280200450d032003280244102e0c030b2001450d040b1036000b0240200328021c450d002003280218102e0b41002101410121080240200341286a280200450d002003280224102e0b410021060b200041186a2004ad42c0f0f50b7e370300200041106a20063602002000410c6a2001360200200041086a2008360200410021040b20002004360200200341c0016a24000f0b1038000bdb0401097f230041c0016b2202240020024188016a200110d305200241306a200228028801220320022802900110e60520024198016a41086a2204200241ec006a29020037030020024198016a41106a2205200241f4006a29020037030020024198016a41186a2206200241fc006a29020037030020024198016a41206a220720024184016a2802003602002002200241e4006a290200370398010240024020022802502208450d00200241e0006a2802002109200241dc006a280200210a20022802542101200241086a41206a2007280200360200200241086a41186a2006290300370300200241086a41106a2005290300370300200241086a41086a200429030037030020022002290398013703080240200228028c01450d002003102e0b200241306a41106a200241086a41106a290300370300200241306a41086a200241086a41086a290300370300200241306a41186a200241086a41186a290300370300200241306a41206a200241086a41206a28020036020020024198016a41086a2002413c6a29020037030020024198016a41106a200241c4006a29020037030020024198016a41186a200241cc006a29020037030020022002290308370330200220022902343703980102402001450d00200141186c450d002008102e0b0240200941ffffffff0371450d00200a102e0b2000200229039801370001200041196a200241b0016a290300370000200041116a200241a8016a290300370000200041096a200241a0016a290300370000410121010c010b0240200228028c01450d002003102e0b410021010b200020013a0000200241c0016a24000bd60605067f017e037f017e017f23004180016b22012400200141286a22024200370300200141206a22034200370300200141106a41086a420037030020014200370310200141106a4192fdc6004107108102200141e8006a41a8b4c600410a1081022002200141e8006a41086a29000037030020032001290068370300200141203602342001200141106a360230200141386a200141106a412010ed02024002400240200128023822040d00410021030c010b200128023c21052001200141386a41086a28020036024c20012004360248200141086a200141c8006a10ab010240024020012802080d0002400240200128020c2206200128024c4103762202200220064b1b22024103742203417f4c0d000240024020020d00410421030c010b2003102c2203450d060b2002ad2107024002402006450d000340200128024c22084104490d042001280248220228000021092001200241046a36024820012008417c6a220a36024c200a4104490d042002280004210a2001200841786a36024c2001200241086a36024802402007422088220ba722022007a7470d00200241016a22082002490d042002410174220c20082008200c491b22084104200841044b1b220841ffffffff0171200846410274210c200841037421080240024020020d00200141003602680c010b20014104360270200120033602682001200b4203863e026c0b200141d8006a2008200c200141e8006a107d2001280260210820012802584101460d03200128025c21032007428080808070832008410376ad8421070b200320024103746a2202200a3602042002200936020020074280808080107c21072006417f6a22060d000b0b2003450d030c040b20080d050b1038000b0240200742ffffffff0183500d002003102e0b0b4100210320014100360260200142013703582001410a3602542001200141306a3602502001200141d8006a360264200141fc006a41013602002001420137026c200141909dc5003602682001200141d0006a360278200141e4006a419cebc000200141e8006a103d1a2001280258200128026010ef02200128025c450d002001280258102e0b2005450d002004102e0b0240024020030d0020004100360208200042043702000c010b20002007370204200020033602000b20014180016a24000f0b1036000bc40101057f2001280208210302402001410c6a280200220420024b0d002000410036020820002004ad4220862003ad843702000f0b02402001411c6a28020022050d00200041023602080f0b200141146a2802002101200541027421052003417f6a21030240034002402004200128020022066b220720024b0d00200420024b0d020b200141046a21012003417f6a2103200721042005417c6a22050d000b200041023602080f0b2000200636020c20002007ad4220862003ad84370200200041013602080bd80c08017f017e047f017e067f027e027f027e23004180016b2201240042002102200141306a22034200370300200141286a22044200370300200141186a41086a420037030020014200370318200141186a41a081ca004107108102200141d8006a41f09dc500410a1081022003200141d8006a41086a29000037030020042001290058370300200141d8006a200141186a10880320012802582203410120031b210541022106024002400240200129025c420020031b2207422088a72203450d00200341057441606a41057641016a210841002104200521030240034020032000412010ec08450d01200242017c2102200341206a21032008200441016a2204470d000c020b0b200141306a22094200370300200141286a220a4200370300200141186a41086a220b420037030020014200370318200141d8006a41a081ca004107108102200b200141d8006a41086a220c29000037030020012001290058370318200141d8006a41f8d2c10041121081022009200c290000370300200a2001290058370300200141d8006a200141186a109b0320012802582208410420081b210d4100210641002103410021000240024002400240024002400240200129025c420020081b220e422088220fa722100e020201000b4100210320102100034020032000410176220820036a22112004200d20114102746a280200491b2103200020086b220041014b0d000b0b41012100200d20034102746a28020022082004460d012003200420084b6a21000b20094200370300200a4200370300200b420037030020014200370318200141d8006a41a081ca004107108102200b200c29000037030020012001290058370318200141d8006a41f09dc500410a108102200a41086a200c290000370000200a2001290058370000200141c8006a41046a41003a000020014100360248200141106a200141186a4120200141c8006a4105410010ca040240024002402001280210450d00200120012802142203410520034105491b36025c2001200141c8006a360258200141086a200141d8006a10ab012001280208450d010b410021030c010b200128020c21030b2003418094ebdc0370ad4280fd87d1007e2212428094ebdc038221132012428094ebdc038021122003418094ebdc036e2108200020104b0d0502402010200ea7470d00201041016a22032010490d0720104101742211200320032011491b22034104200341044b1b220341ffffffff03712003464102742111200341027421030240024020100d00200141003602180c010b200141206a41043602002001200d3602182001200f4202863e021c0b200141d8006a20032011200141186a107d200141e0006a280200210320012802584101460d02200128025c210d2003410276ad210e0b200d20004102746a220341046a2003201020006b41027410ea081a20032004360200200e42ffffffff0f83201041016a2203ad42208684210e200320084180fd87d1006c2012a720134280cab5ee01566a6a4b2106410021000b2001200e37024c2001200d360248200d0d01200141306a4200370300200141286a4200370300200141186a41086a2203420037030020014200370318200141d8006a41a081ca0041071081022003200141d8006a41086a220829000037030020012001290058370318200141d8006a41f8d2c1004112108102200a41086a2008290000370000200a2001290058370000200141186a412010ff010c020b2003450d041036000b200141306a4200370300200141286a4200370300200141186a41086a2203420037030020014200370318200141d8006a41a081ca0041071081022003200141d8006a41086a220829000037030020012001290058370318200141d8006a41f8d2c1004112108102200a41086a2008290000370000200a2001290058370000200141186a200141c8006a10c705200d450d00200e42ffffffff0383500d00200d102e0b20000d00200141186a41086a200237030020014102360218200141186a108c06200141013602182001200436021c200141d8006a200141186a10a404200141d3006a200141d8006a41086a2802003600002001200129035837004b200141e4006a200141cf006a290000370000200141c28289aa04360059200141023a00582001200129004837005d200141d8006a10a5040b0240200742ffffff3f83500d002005102e0b20014180016a240020060f0b200020101045000b1038000bd90c04047f017e027f067e230041d0026b22052400200541c8016a2001200210f2050240024002400240024020052802d0014102460d0020052802c8012106200541c8016a41086a2001280204220741086a290000370300200541c8016a41106a200741106a290000370300200541c8016a41186a200741186a290000370300200520063602e801200520072900003703c801200541f0016a200541c8016a10cd0520052802f0012108200520052802f8012207360284022005200836028002200541b0026a2008200710ed020240024020052802b00222070d00420021090c010b20052802b402210a024002400240200541b0026a41086a280200220b4110490d00200b4170714110470d010b200541003602c802200542013703c0022005410a36028c02200520054180026a360288022005200541c0026a36029402200541ac026a41013602002005420137029c02200541909dc50036029802200520054188026a3602a80220054194026a419cebc00020054198026a103d1a20052802c00220052802c80210ef02024020052802c402450d0020052802c002102e0b420021090c010b200741186a290000210c200741086a290000210d2007290010210e2007290000210f420121090b200a450d002007102e0b200d4200200942005222071b210d200f420020071b210f024020052802f401450d002008102e0b200c420020071b210c200e420020071b210e0240200f200354200d200454200d2004511b0d00200f200385200d2004858450450d04200541b8016a20032004428094ebdc03420010e608200541a8016a20032004428094ebdc03420010e70820054198016a20052903a801200541a8016a41086a2903002001350228220d420010e80820054188016a4200200529039801220f200d20052903b8017e220d428094ebdc0380a7417f200d428080808080c0b2cd3b541b200d428094ebdc03824280cab5ee01566aad7c220d200e7d22092009200d5620054198016a41086a290300200d200f54ad7c220f200c7d200d200e54ad7d220d200f56200d200f511b22021b220f4200200d20021b220d428094ebdc03420010e608200541f8006a200f200d428094ebdc03420010e708200541e8006a2005290378200541f8006a41086a2903004280cab5ee01420010e8082005290368220f200529038801220d420188a7200d4280cab5ee017e428094ebdc03824280cab5ee01566aad7c220d200541e8006a41086a290300200d200f54ad7c220f84500d040c020b200541d8006a20032004428094ebdc03420010e608200541c8006a20032004428094ebdc03420010e708200541386a2005290348200541c8006a41086a29030020013502282209420010e808200541286a420020052903382210200920052903587e2209428094ebdc0380a7417f2009428080808080c0b2cd3b541b2009428094ebdc03824280cab5ee01566aad7c2209200e7d22112011200956200541386a41086a2903002009201054ad7c2210200c7d2009200e54ad7d220920105620092010511b22071b22104200200920071b2209428094ebdc03420010e608200541186a20102009428094ebdc03420010e708200541086a2005290318200541186a41086a2903004280cab5ee01420010e808200128022422072003200f7d220920072903007c2210370300200741086a22072004200d7d2003200f54ad7d20072903007c2010200954ad7c370300200141106a2207200728020022072002200720024b1b3602002005290308220f2005290328220d420188a7200d4280cab5ee017e428094ebdc03824280cab5ee01566aad7c220d200541086a41086a290300200d200f54ad7c220f8450450d01200e210d0c020b410021010c030b2001280220220220022903002209200d7c2210370300200241086a22022002290300200f7c2010200954ad7c370300200c200f7c200e200d7c220d200e54ad7c210c0b200141013a002c200541b0026a200541c8016a10cd0520052802b802210220052802b0022101200541003602c802200542013703c002200520043703a0022005200337039802200541c0026a20054198026a411010742005200c3703a0022005200d37039802200541c0026a20054198026a411010742001200220052802c002220720052802c80210b201024020052802c402450d002007102e0b20052802b402450d002001102e0b410121010b2000200636020420002001360200200541d0026a24000b9c0b09047f017e047f027e017f017e037f037e027f230041e0016b220324002003200236021c20032001360218200341206a2001200210ed0202400240200328022022040d00200041003602000c010b200328022421052003200341286a28020036023420032004360230200341106a200341306a10ab010240024020032802100d000240024002400240024020032802142206200328023441d8006e2201200120064b1bad42d8007e2207422088a70d002007a72201417f4c0d000240024020010d00410821080c010b2001102c2208450d020b200141d8006ead2107024002402006450d00200341b8016a41017221020340200341b8016a200341306a10930120032d00b8014101460d0720034198016a41186a2209200241186a29000037030020034198016a41106a220a200241106a29000037030020034198016a41086a220b200241086a2900003703002003200229000037039801200328023422014110490d072003200141706a36023420032003280230220141106a360230200141086a290000210c2001290000210d200341b8016a200341306a10e90120032802b801220e450d0720032902bc01210f200341086a200341306a10ab0102402003280208450d00200341003602b8010c070b200341b8016a200341306a200328020c10920120032802b8012210450d0620032802bc012111200328023422014110490d0520032802c0012112200341d8006a41086a200b2903002213370300200341d8006a41106a200a2903002214370300200341d8006a41186a20092903002215370300200341386a41186a22092015370300200341386a41106a220a2014370300200341386a41086a220b20133703002003200141706a36023420032003280230220141106a3602302003200329039801221337035820032013370338200141086a29000021132001290000211402402007422088a722012007a7470d00200141016a22162001490d0420014101742217201620162017491b22164104201641044b1bad42d8007e2215422088a74541037421162015a721170240024020010d00200341003602b8010c010b200341083602c001200320083602b8012003200141d8006c3602bc010b20034198016a20172016200341b8016a107d20032802a00121162003280298014101460d03200328029c012108200742808080807083201641d8006ead8421070b2008200141d8006c6a220120143703102001200c3703082001200d3703002001200e360220200141186a2013370300200141346a2012360200200141306a20113602002001412c6a2010360200200141246a200f370200200141386a2003290338370200200141c0006a200b290300370200200141c8006a200a290300370200200141d0006a200929030037020020074280808080107c21072006417f6a22060d000b0b2008450d0620002007370204200020083602000c070b20160d010b1038000b1036000b201141ffffff3f71450d002010102e0b200fa72201450d00200141306c450d00200e102e0b200341d8006a41086a200341f8006a41086a29030037030002402007422088a72201450d00200141d8006c2102200841306a210103400240200141746a2802002206450d00200641306c450d00200141706a280200102e0b0240200128020041ffffff3f71450d002001417c6a280200102e0b200141d8006a2101200241a87f6a22020d000b0b2007a72201450d00200141d8006c450d002008102e0b200341003602a00120034201370398012003410a36027c2003200341186a360278200320034198016a360258200341cc016a4101360200200342013702bc01200341909dc5003602b8012003200341f8006a3602c801200341d8006a419cebc000200341b8016a103d1a20032802980120032802a00110ef020240200328029c01450d00200328029801102e0b200041003602000b2005450d002004102e0b200341e0016a24000bb10b01047f230041d0006b22012400200141086a4192fdc6004107108102200141186a41b29dc500410b108102200120003602342001200141346a410410a301370338200141cc006a200141346a41046a3602002001200141c0006a3602442001200141346a3602482001200141386a360240200141286a200141c0006a107c024002402001280230220241206a2203417f4c0d000240024020030d00410121040c010b2003102c2204450d020b200141003602482001200336024420012004360240200141c0006a200141086a41101074200141c0006a200141186a41101074200141c0006a20012802282203200210740240200128022c450d002003102e0b20012802402203200128024810890302402001280244450d002003102e0b200141086a4192fdc6004107108102200141186a41c4afc6004112108102200120003602342001200141346a410410a301370338200141cc006a200141346a41046a3602002001200141c0006a3602442001200141346a3602482001200141386a360240200141286a200141c0006a107c2001280230220241206a2203417f4c0d000240024020030d00410121040c010b2003102c2204450d020b200141003602482001200336024420012004360240200141c0006a200141086a41101074200141c0006a200141186a41101074200141c0006a20012802282203200210740240200128022c450d002003102e0b20012802402203200128024810890302402001280244450d002003102e0b200141086a4192fdc6004107108102200141186a41c0b0c6004112108102200120003602342001200141346a410410a301370338200141cc006a200141346a41046a3602002001200141c0006a3602442001200141346a3602482001200141386a360240200141286a200141c0006a107c2001280230220241206a2203417f4c0d000240024020030d00410121040c010b2003102c2204450d020b200141003602482001200336024420012004360240200141c0006a200141086a41101074200141c0006a200141186a41101074200141c0006a20012802282203200210740240200128022c450d002003102e0b20012802402203200128024810890302402001280244450d002003102e0b200141086a4192fdc6004107108102200141186a418cb1c6004113108102200120003602342001200141346a410410a301370338200141cc006a200141346a41046a3602002001200141c0006a3602442001200141346a3602482001200141386a360240200141286a200141c0006a107c2001280230220241206a2203417f4c0d000240024020030d00410121040c010b2003102c2204450d020b200141003602482001200336024420012004360240200141c0006a200141086a41101074200141c0006a200141186a41101074200141c0006a20012802282203200210740240200128022c450d002003102e0b20012802402203200128024810ff0102402001280244450d002003102e0b200141c0006a200010a10520012802402203200128024810ff0102402001280244450d002003102e0b200141086a4192fdc6004107108102200141186a4188b2c600410e108102200120003602342001200141346a410410a301370338200141cc006a200141346a41046a3602002001200141c0006a3602442001200141346a3602482001200141386a360240200141286a200141c0006a107c2001280230220241206a2203417f4c0d000240024020030d00410121040c010b2003102c2204450d020b200141003602482001200336024420012004360240200141c0006a200141086a41101074200141c0006a200141186a41101074200141c0006a20012802282203200210740240200128022c450d002003102e0b20012802402203200128024810ff0102402001280244450d002003102e0b200141c0006a200010950320012802402200200128024810ff0102402001280244450d002000102e0b200141d0006a24000f0b1038000b1036000bae0301037f230041f0006b22032400200341086a4192fdc6004107108102200341186a41c4afc6004112108102200320013602382003200341386a410410a301370348200341ec006a2201200341386a41046a3602002003200341c8006a41086a3602642003200341386a3602682003200341c8006a360260200341286a200341e0006a107c024002404120102c2204450d002003422037024c20032004360248200341c8006a2002412010742003200328024822022003280250220410a3013703582001200220046a360200200320023602682003200341d8006a41086a3602642003200341d8006a360260200341386a200341e0006a107c0240200328024c450d002002102e0b20032802302201200328024022046a41206a2202417f4c0d010240024020020d00410121050c010b2002102c2205450d010b2000410036020820002002360204200020053602002000200341086a411010742000200341186a4110107420002003280228220220011074200020032802382201200410740240200328023c450d002001102e0b0240200328022c450d002002102e0b200341f0006a24000f0b1036000b1038000bae0301037f230041f0006b22032400200341086a4192fdc6004107108102200341186a41c0b0c6004112108102200320013602382003200341386a410410a301370348200341ec006a2201200341386a41046a3602002003200341c8006a41086a3602642003200341386a3602682003200341c8006a360260200341286a200341e0006a107c024002404120102c2204450d002003422037024c20032004360248200341c8006a2002412010742003200328024822022003280250220410a3013703582001200220046a360200200320023602682003200341d8006a41086a3602642003200341d8006a360260200341386a200341e0006a107c0240200328024c450d002002102e0b20032802302201200328024022046a41206a2202417f4c0d010240024020020d00410121050c010b2002102c2205450d010b2000410036020820002002360204200020053602002000200341086a411010742000200341186a4110107420002003280228220220011074200020032802382201200410740240200328023c450d002001102e0b0240200328022c450d002002102e0b200341f0006a24000f0b1036000b1038000b850201037f230041d0006b22022400200241086a4192fdc6004107108102200241186a41d0b3c6004110108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000ba20a08037f047e017f027e017f027e017f047e23004180026b2201240020014200370348200142003703402001200041186a29030037035820012000290310370350200041386a2000290300200041086a290300200141d0006a200141c0006a10ca080240200041286a28020041306c2202450d002000280220210303402003200341206a290300200341286a290300200141d0006a200141c0006a10ca08200341306a2103200241506a22020d000b0b200141c0006a41086a29030021042001290340210502400240024020012903502206200141d0006a41086a290300220784500d00200041346a28020022030d010b2001200537036020012004370368024020052004844200520d002001200141e0006a3602e001200141e0016a10cc020c020b200142f0f2bda1a7ee9cb9f9003703e001200141e0006a200141e0016a10cd022001200141e0006a2005200410fd01200141f0016a200141086a290300220620047d20012903002207200554ad7d200420067d2005200754ad7d2007200556200620045620062004511b22031b3703002001200720057d200520077d20031b3703e80120012003ad3703e001200141e0016a41086a21020240024020030d00200120023602fc01200141fc016a10cc020c010b200120023602fc01200141fc016a10ce020b200141f8006a2004370300200141f0006a2005370300200141e8006a41063a00002001410e3a0060200141e0006a10fe010c010b200028022c2102200141306a200520062005200654200420075420042007511b22081b22092004200720081b220a2003ad420010e70820034105742108200141e0006a41086a210b200141306a41086a290300210c2001290330210d200141f0006a210e2009210f200a21100340200141206a2002200d200f200f200d562010200c562010200c511b22031b2207200c201020031b220610fd01200e200141206a41086a290300221120067d20012903202212200754ad7d200620117d2007201254ad7d2012200756201120065620112006511b22031b3703002001201220077d200720127d20031b37036820012003ad370360201020067d2106200f200754ad21100240024020030d002001200b3602e001200141e0016a10cc020c010b2001200b3602e001200141e0016a10ce020b200620107d2110200f20077d210f200241206a2102200841606a22080d000b2001427f2004200a7d2005200954ad7d221220107c200520097d2211200f7c220c2011542203ad7c22072003200720125420072012511b22031b22063703682001427f200c20031b220737036002402011200f842012201084844200520d002001200141e0006a3602e001200141e0016a10cc020c010b200142f0f2bda1a7ee9cb9f9003703e001200141e0006a200141e0016a10cd02200141106a200141e0006a2007200610fd01200141f0016a200141106a41086a290300221020067d2001290310220f200754ad7d200620107d2007200f54ad7d200f200756201020065620102006511b22031b3703002001200f20077d2007200f7d20031b3703e80120012003ad3703e001200141e0016a41086a21020240024020030d00200120023602fc01200141fc016a10cc020c010b200120023602fc01200141fc016a10ce020b200141f8006a2006370300200141f0006a2007370300200141e8006a41063a00002001410e3a0060200141e0006a10fe010b0240200041246a2802002203450d00200341306c450d002000280220102e0b0240200041306a28020041ffffff3f71450d00200028022c102e0b20014180026a24000b8f0201027f20014180feff07714108762102024002402001410171450d00411f210341aae7cc00210102400240200241ff01710e03000103000b41c100210341e9e6cc0021010c020b41c100210341a8e6cc0021010c010b411f21034189e6cc002101024002400240024002400240024002400240200241ff01710e0a00060102030405090708000b4120210341e9e5cc0021010c080b412721034189e5cc0021010c070b4117210341f2e4cc0021010c060b41d3e4cc0021010c050b4126210341ade4cc0021010c040b412a21034183e4cc0021010c030b4139210341b0e5cc0021010c020b413b210341c8e3cc0021010c010b41d200210341f6e2cc0021010b20002003360204200020013602000b4201027f41032102024020014105490d004100210302400240024020002d00040e03020001030b410121030c010b410221030b2003410320014105461b21020b20020be30101047f0240024002400240200128020022022802042203450d00200228020022042d0000210520022003417f6a3602042002200441016a36020020050e020203010b200041023602000f0b200041023602000f0b200041003602000f0b02402001280200220228020422034104490d0020022802002204280000210520022003417c6a3602042002200441046a3602002001280200220228020422014104490d00200020053602042000410136020020022802002203280000210420022001417c6a3602042002200341046a360200200041086a20043602000f0b200041023602000bc40101047f024002400240024020012802042202450d00200128020022032d0000210420012002417f6a22053602042001200341016a36020020040e020203010b200041023602000f0b200041023602000f0b200041003602000f0b024020054104490d002003280001210520012002417b6a22043602042001200341056a36020020044104490d002000200536020420004101360200200328000521042001200241776a3602042001200341096a360200200041086a20043602000f0b200041023602000bc60401047f230041106b22022400024002400240024020002d00000e03010200010b200041046a280200220041ffff03200041ffff03491b220341c0006a41ff0020032000413e2003413e491b2204461b2100200320046b2103410121040340024002400240200441ff01714102470d00200021050c010b410021052004410171450d00410021040c010b2003450d0402400240200341ff014b0d002003417f6a2100410021030c010b200341817e6a210341ff0121000b410221040b200220003a000f20012002410f6a41011074200521000c000b0b200241003a000f20012002410f6a410110740c010b200041046a2802002203413e200341ffff03200341ffff03491b2203413e491b2104024020002d0001450d00200341406a417f20032004461b2100200320046b2103410121040340024002400240200441ff01714102470d00200021050c010b410021052004410171450d00410021040c010b2003450d0302400240200341ff014b0d002003417f6a2100410021030c010b200341817e6a210341ff0121000b410221040b200220003a000f20012002410f6a41011074200521000c000b0b200341807f7341bf7f20032004461b2100200320046b2103410121040340024002400240200441ff01714102470d00200021050c010b410021052004410171450d00410021040c010b2003450d0202400240200341ff014b0d002003417f6a2100410021030c010b200341817e6a210341ff0121000b410221040b200220003a000f20012002410f6a41011074200521000c000b0b200241106a24000b13002000411436020420004184ecc6003602000bd5b1020a017f027e057f027e027f057e107f017e047f027e230041e0066b2203240002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d00000e18000102030405060708090a0b0c0d0e0f10111213201f1e1d000b200341f4056a4101360200200342013702e4052003419cc3cb003602e005200341043602840520034194c3cb0036028005200320034180056a3602f005200341e0056a41f4ebc6001044000b200141d0006a2903002104200141c8006a2903002105200341d8026a41026a200141276a2d00003a0000200341b0036a41086a200141386a290200370300200341b0036a41106a200141c0006a2902003703002003200141256a2f00003b01d8022003200141306a2902003703b003200141246a2d00002106200141286a28020021072001412c6a2802002108200341b8046a41206a200141216a2d00003a0000200341b8046a41186a200141196a290000370300200341b8046a41106a200141116a290000370300200341b8046a41086a200141096a290000370300200320012900013703b804200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a200241086a290200370300200320022902003703e00520034180056a200341e0056a10c10220034180046a41086a220220034180056a41096a29000037030020034180046a41106a220120034180056a41116a29000037030020034180046a41186a220920034180056a41196a29000037030020032003290081053703800402400240024020032d0080054101460d00200341d8036a41186a2009290300370300200341d8036a41106a2001290300370300200341d8036a41086a200229030037030020032003290380043703d803200341e0056a200341d8036a10e50520032802e005220120032802e805108f022102024020032802e405450d002001102e0b02402002450d00200341a8046a41031082060c020b20034180046a41026a2202200341d8026a41026a2d00003a0000200341e0056a41086a2201200341b0036a41086a290300370300200341e0056a41106a200341b0036a41106a290300370300200320032f01d8023b018004200320032903b0033703e0050240024002400240024020064107710e03000201020b200341f0026a410d6a2206200341e0056a410d6a290000370000200341f0026a41086a22092001290300370300200341d8056a41026a220120022d00003a000020034190036a41086a2202200929030037030020034190036a410d6a22092006290000370000200320032f0180043b01d805200320032903e00537039003200320012d00003a008205200320032f01d8053b0180052003200836008705200320073600830520034198056a200929000037000020034193056a2002290300370000200320032903900337008b05200341e0056a20034180056a10d30520032802e005220120032802e805108f022102024020032802e405450d002001102e0b2002450d03200341a8046a41041082060c060b02402008450d002007102e0b200341d8056a41026a2003418c036a41026a2d00003a000020034190036a41086a200341f0026a41086a29030037030020034190036a410d6a200341f0026a410d6a290000370000200320032f018c033b01d805200320032903f002370390030c010b200341d8056a41026a2003418c036a41026a2d00003a000020034190036a41086a200341f0026a41086a29030037030020034190036a410d6a200341f0026a410d6a290000370000200320032f018c033b01d805200320032903f002370390030b200341013a00a8040c030b0240200542ffc7afa0255620044200522004501b0d00200341a8046a41081082060c030b0240200341d8036a1083060d0020034180046a200341d8036a10e505200328028804210120032802800421024120102c2206450d41200342203702e405200320063602e005200341e0056a20034180056a412010742002200120032802e005220620032802e80510b201024020032802e405450d002006102e0b0240200328028404450d002002102e0b200341e0056a41206a200341b8046a41206a2d00003a0000200341e0056a41186a200341b8046a41186a290300370300200341e0056a41106a200341b8046a41106a290300370300200341e0056a41086a200341b8046a41086a290300370300200320032903b8043703e005200341e0046a200341d8036a10840620032802e804210120032802e00421022003410036028804200342013703800402400240024002400240024020032d00e0050e050001020304050b200341003a00900320034180046a20034190036a410110740c040b200341013a00900320034180046a20034190036a410110740c030b200341023a00900320034180046a20034190036a410110740c020b200341033a00900320034180046a20034190036a4101107420034180046a200341e0056a410172412010740c010b200341043a00900320034180046a20034190036a410110740b20022001200328028004220620032802880410b2010240200328028404450d002006102e0b024020032802e404450d002002102e0b20034180046a41186a2202420037030020034180046a41106a2201420037030020034180046a41086a220642003703002003420037038004200341f0026a4192fdc60041071081022006200341f0026a41086a2207290300370300200320032903f0023703800420034190036a4194adc600410a108102200220034190036a41086a22082903003703002001200329039003370300200341106a20034180046a4120108e02200328021421092003280210210a2002420037030020014200370300200642003703002003420037038004200341f0026a4192fdc600410710810220062007290300370300200320032903f0023703800420034190036a41e0a9c600410c108102200220082903003703002001200329039003370300200341086a20034180046a4120108e02200328020c21022003280208210120034180046a200341d8036a10c802200341e0056a200328028004220720032802880410c902410020094100200a1b2206200241d40020011b6b2202200220064b1b2102200341e0056a41106a290300420020032903e00542015122011b210b20032903e805420020011b210c0240200328028404450d002007102e0b200341e0056a41086a41053a0000200341e9056a20032903d803370000200341f1056a200341d8036a41086a290300370000200341f9056a200341d8036a41106a29030037000020034181066a200341d8036a41186a220129030037000020034198066a200b2004200c200554200b200454200b2004511b22071b220437030020034190066a200c200520071b2205370300200341043a00e005200341e0056a10fe012008200341eb036a2900003703002003419d036a2001290000370000200320032f01d8033b01d805200320032d00da033a00da05200320032900e303370390034100200620026b2209200920064b1b220141ffffffff03712001470d3b20014102742208417f4c0d3b20032800df03210d20032800db03210e0240024020080d00410421070c010b2008102c2207450d420b024002402008410276220a20014f0d002008410176220a2001200a20014b1b22014104200141044b1b220141ffffffff0371200146410274210a200141027421010240024020080d00200341003602e0050c010b200341e8056a4104360200200320083602e405200320073602e0050b20034180046a2001200a200341e0056a107d20034188046a28020021012003280280044101460d0120032802840421072001410276210a0b410021010240200620024d0d0020072101034020012002360200200141046a21012006200241016a2202470d000b200921010b200341e0056a41186a20043703002003419a066a20032d00da053a00002003419f066a200d3600002003419b066a200e360000200341a3066a20032903900337000020034194066a200136020020034190066a200a36020020034188066a4100360200200341ab066a20034198036a290300370000200341b0066a2003419d036a290000370000200320053703f005200320053703e005200320032f01d8053b0198062003200736028c062003420837038006200320043703e80542f3e885db96cddbb32020034198066a20052004411f10850620034180056a200341e0056a10d205024020034184066a2802002202450d00200241186c450d00200328028006102e0b024020032802900641ffffffff0371450d00200328028c06102e0b200341063a00a8040c430b2001450d3b0c410b200341a8046a41121082060c020b200341023a00a8040b200641ff01714102470d002008450d002007102e0b20032d00a8044106460d3e20032802a8042102200020032902ac04370024200041206a2002360000200041186a41003a000020004200370308200042013703000c3f0b200141106a2903002104200141086a2903002105200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a200241086a290200370300200320022902003703e00520034180056a200341e0056a10c10220034180046a41086a220220034189056a29000037030020034180046a41106a220120034191056a29000037030020034180046a41186a220620034180056a41196a29000037030020032003290081053703800420032d0080054101460d19200341e0046a41186a2006290300370300200341e0046a41106a2001290300370300200341e0046a41086a200229030037030020032003290380043703e004200341d8036a200341e0046a10e505200341e0056a20032802d803220220032802e00310f40220034180056a41086a200341ea056a29010037030020034180056a41106a200341f2056a29010037030020034180056a41176a2201200341e0056a41196a290000370000200320032901e2053703800502400240024020032d00e0054101470d0020032d00e105210620034190036a41176a200129000037000020034190036a41106a220120034180056a41106a29030037030020034190036a41086a220820034180056a41086a290300370300200320032903800537039003024020032802dc03450d002002102e0b20034180046a41176a220720034190036a41176a29000037000020034180046a41106a22022001290300370300200341c1046a2008290300370000200341c9046a2002290300370000200341b8046a41186a2007290000370000200320063a00b80420032003290390033700b90420034190036a200341b8046a10d305200341e0056a200328029003220120032802980310e60520034180046a41086a2003419c066a2902003703002002200341a4066a29020037030020034180046a41186a2202200341ac066a29020037030020034180046a41206a2206200341b4066a280200360200200320034194066a2902003703800402402003280280062208450d00200341e0056a41186a290300210f200341e0056a41086a290300210c20034190066a28020021072003418c066a280200210920034188066a280200210a20032903f005211020032903e005210b200328028406210d200341d8036a41206a2006280200360200200341d8036a41186a2002290300370300200341d8036a41106a220220034180046a41106a290300370300200341d8036a41086a220620034180046a41086a29030037030020032003290380043703d8030240200328029403450d002001102e0b200341b0036a41086a22012006290300370300200341b0036a41106a22062002290300370300200341b0036a41186a2202200341d8036a41186a290300370300200341b0036a41206a220e200341d8036a41206a28020036020020034180056a41186a200f370300200341b0056a2007360200200341a8056a200a360200200341a4056a200d360200200320032903d8033703b00320032010370390052003200b37038005200320093602ac05200320083602a0052003200c37038805200341d4056a200e280200360200200341cc056a2002290300370200200341c4056a2006290300370200200341bc056a2001290300370200200341b4056a20032903b00337020020034180046a200341e0046a10c802200341e0056a200328028004220120032802880410c902200341e0056a41106a290300420020032903e00542015122021b210f20032903e805420020021b21100240200328028404450d002001102e20034188056a290300210c200329038005210b0b2010200b7d2211201056200f200c7d2010200b54ad7d2210200f562010200f511b0d0320034180056a41186a2202290300211220032003290390052213200520112011200556201020045620102004511b22011b22057c220f37039005200220122004201020011b22107c200f201354ad7c220437030020032005200b7c220b3703800520032010200c7c200b200554ad7c220c37038805200f42ffc7afa0255620044200522004501b0d02200341f0026a4108108206024020032802a4052202450d00200241186c450d0020032802a005102e0b20032802b00541ffffffff0371450d3e20032802ac05102e0c3e0b0240200328029403450d002001102e0b200341f0026a41011082060c3d0b024020032802dc03450d002002102e0b200341f0026a41021082060c3c0b200341e0056a41386a201037030020034190066a2005370300200341e0056a41086a41053a0000200341e9056a20032903e004370000200341f1056a200341e0046a41086a290300370000200341f9056a200341f0046a29030037000020034181066a200341e0046a41186a290300370000200341043a00e005200341e0056a10fe0142f3e885db96cddbb32020034180056a41386a200b200c411f108506200341b8046a20034180056a10d2050b024020032802a4052202450d00200241186c450d0020032802a005102e0b024020032802b00541ffffffff0371450d0020032802ac05102e0b200341063a00f0020c3b0b200141106a2903002104200141086a2903002105200341e0056a41286a2206200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a2208200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a2207200241086a290200370300200320022902003703e00520034180056a200341e0056a10c10220034190036a41086a220220034194056a2902003703002003419d036a220120034199056a290000370000200320032f0081053b01d805200320032d0083053a00da0520032003418c056a290200370390030240024020032d0080054101460d0020034180056a41086a2802002109200328028405210a200341cb046a2002290300370000200341b8046a41186a2001290000370000200320032d00da053a00ba04200320032f01d8053b01b804200320093600bf042003200a3600bb0420032003290390033700c304200341e0046a200341b8046a10d305200341e0056a20032802e004220920032802e80410e60520034180046a41086a2003419c066a29020037030020034180046a41106a200341a4066a29020037030020034180046a41186a200341ac066a29020037030020034180046a41206a200341b4066a280200360200200320034194066a2902003703800402402003280280062201450d002008290300210b2007290300210f20034190066a28020021082003418c066a28020021072006280200210620032903f005210c20032903e00521102003280284062102200341d8036a41206a220a20034180046a41206a280200360200200341d8036a41186a220d20034180046a41186a290300370300200341d8036a41106a220e20034180046a41106a290300370300200341d8036a41086a221420034180046a41086a29030037030020032003290380043703d803024020032802e404450d002009102e0b200341b0036a41086a22092014290300370300200341b0036a41106a2214200e290300370300200341b0036a41186a220e200d290300370300200341b0036a41206a220d200a28020036020020034180056a41186a200b370300200341b0056a2008360200200341a8056a2006360200200341a4056a2002360200200320032903d8033703b0032003200c370390052003201037038005200320073602ac05200320013602a0052003200f37038805200341d4056a200d280200360200200341cc056a200e290300370200200341c4056a2014290300370200200341bc056a2009290300370200200341b4056a20032903b0033702002006411f4d0d02200341a8046a4109108206024020032802a4052202450d00200241186c450d0020032802a005102e0b20032802b00541ffffffff0371450d3920032802ac05102e0c390b024020032802e404450d002009102e0b200341a8046a41011082060c380b200341023a00a8040c380b02400240200c2005200c200554200b200454200b2004511b22061b2205200b200420061b220484500d0020034180056a41186a4200200b20047d200c200554ad7d220f200c20057d22104280c8afa025544100200f501b22061b37030020034200201020061b3703900520034180046a41186a2202420037030020034190046a2208420037030020034180046a41086a220742003703002003420037038004200341f0026a4192fdc60041071081022007200341f0026a41086a290300370300200320032903f0023703800420034190036a4194adc600410a108102200220034190036a41086a2903003703002008200329039003370300200341186a20034180046a4120108e02200328021c210820032802182107024020032802a805220220032802a405470d00200241016a22092002490d382002410174220a2009200a20094b1b22094104200941044b1bad42187e220f422088a7454103742109200fa7210a0240024020020d00200341003602e0050c010b200341e0056a41086a4108360200200320013602e0052003200241186c3602e4050b20034180046a200a2009200341e0056a107d20034188046a28020021022003280280044101460d02200320032802840422013602a0052003200241186e3602a40520032802a80521020b2001200241186c6a2202200b200420061b22043703082002200c200520061b220537030020022008411c6a411c20071b360210200320032802a80541016a3602a80542f3e885db96cddbb32020034180056a41386a20032903800520034180056a41086a290300411f108506200341b8046a20034180056a10d205200341e0056a41386a200437030020034190066a2005370300200341e0056a41086a41063a0000200341e9056a20032903b805370000200341f1056a200341c0056a290300370000200341f9056a200341c8056a29030037000020034181066a200341d0056a290300370000200341043a00e005200341e0056a10fe0120032802a40521020b02402002450d00200241186c450d0020032802a005102e0b024020032802b00541ffffffff0371450d0020032802ac05102e0b200341063a00a8040c390b20020d3b0c350b200141046a280200210e200341e0056a41286a2207200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a220a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a220d200241086a290200370300200320022902003703e00520034180056a200341e0056a10c102410221022003418c036a41026a220120032d0083053a0000200341f0026a41086a220620034194056a290200370300200341fd026a220820034199056a290000370000200320032f0081053b018c0320032003418c056a2902003703f002024002400240024020032d0080054101460d0020034180056a41086a28020021022003280284052109200341f3046a2006290300370000200341e0046a41186a2008290000370000200320032f018c033b01e004200320023600e704200320093600e304200320032903f0023700eb04200320012d00003a00e204200341b8046a200341e0046a10d305200341e0056a20032802b804221420032802c00410e60520034180046a41086a2003419c066a29020037030020034180046a41106a200341a4066a29020037030020034180046a41186a200341ac066a29020037030020034180046a41206a200341b4066a280200360200200320034194066a2902003703800402402003280280062209450d00200a2903002104200d290300210f20034190066a280200210d2003418c066a28020021152007280200210220032903f005210520032903e0052110200328028406210a200341d8036a41206a220720034180046a41206a280200360200200341d8036a41186a221620034180046a41186a2201290300370300200341d8036a41106a221720034180046a41106a2206290300370300200341d8036a41086a221820034180046a41086a220829030037030020032003290380043703d803024020032802bc04450d002014102e0b200341b0036a41086a22142018290300370300200341b0036a41106a22182017290300370300200341b0036a41186a22172016290300370300200341b0036a41206a2216200728020036020020034180056a41186a2004370300200341b0056a200d360200200341a8056a2002360200200341a4056a200a360200200320032903d8033703b00320032005370390052003201037038005200320153602ac05200320093602a0052003200f37038805200341d4056a2016280200360200200341cc056a2017290300370200200341c4056a2018290300370200200341bc056a2014290300370200200341b4056a220720032903b003370200200341b8046a41186a200341d0056a220d290300370300200341b8046a41106a200341c8056a290300370300200341b8046a41086a200341c0056a290300370300200320032903b8053703b8042001420037030020064200370300200842003703002003420037038004200341f0026a4192fdc60041071081022008200341f0026a41086a290300370300200320032903f0023703800420034190036a4194adc600410a108102200120034190036a41086a2903003703002006200329039003370300200341206a20034180046a4120108e0220032802204101460d0220102105200f210b0c030b024020032802bc04450d002014102e0b200341e0056a4101108206200341da026a20032d00e3053a0000200320032f00e1053b01d80220032d00e005210220032902e40521040c030b0c020b20032802242108200341e0056a41086a2216200728020036020020034190036a41086a2217200341cb056a29000037030020034190036a410d6a2218200d290000370000200320032902ac053703e0052003200341c3056a220d290000370390032003200341b8056a22142f01003b01d8052003201441026a22192d00003a00da05200341ac056a211520034180056a41186a221a2903002111200341bf056a280000211b200341bb056a280000211c20032903900521120240024020020d0020102105200f210b200921010c010b2009200241186c6a210720102105200f210b20092102200921010340200241086a290300210c20022903002104024002402008200241106a28020022064f0d0020012004370300200120063602102001200c370308200141186a21010c010b4200200b200c7d2005200454ad7d220c200520047d2204200556200c200b56200c200b511b22061b210b4200200420061b21050b200241186a22022007470d000b0b201520032903e005370200201420032f01d8053b0100200d200329039003370000201a2011370300201920032d00da053a0000201541086a2016280200360200200d41086a2017290300370000200d410d6a2018290000370000200320123703900520032005370380052003200a3602a4052003201b3600bf052003201c3600bb052003200b37038805200320093602a0052003200120096b41186d22023602a8050b0240024020020d002003290390054280c8afa02554410020034198056a290300501b0d010b42f3e885db96cddbb320200341b8056a2005200b411f108506200ead42f8d2017e4288ca87d8017c2105200341e0046a20034180056a10d2054201210b0c350b200341e0056a200341b8046a200e108606200341b0036a41026a220120032d00e3053a0000200320032f00e1053b01b003024020032d00e00522024106470d0042f3e885db96cddbb320200341b8046a10ea024200210b0c350b20032902e4052104200341d8026a41026a20012d00003a0000200320032f01b0033b01d802024020032802a4052201450d00200141186c450d0020032802a005102e0b20032802b00541ffffffff0371450d0020032802ac05102e0b200341d4026a41026a2201200341d8026a41026a2d00003a0000200320032800a8043602e002200320032f01d8023b01d4022003200341ab046a2800003600e302200041186a41003a000020004200370308200020032802e0023600192000411c6a20032800e302360000200041206a20023a000020002004370024200020032f01d4023b0021200041236a20012d00003a0000200042013703000c3c0b200141086a2d00002108200141046a2802002107200341e0056a41286a2209200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a220a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a220d200241086a290200370300200320022902003703e00520034180056a200341e0056a10c10220034180046a41086a220220034189056a29000037030020034180046a41106a220120034191056a29000037030020034180046a41186a220620034199056a29000037030020032003290081053703800420032d0080054101460d15200341b8046a41186a2006290300370300200341b8046a41106a2001290300370300200341b8046a41086a200229030037030020032003290380043703b804200341e0046a200341b8046a10d305200341e0056a20032802e004220e20032802e80410e60520022003419c066a2902003703002001200341a4066a2902003703002006200341ac066a29020037030020034180046a41206a200341b4066a280200360200200320034194066a2902003703800402402003280280062201450d00200a2903002104200d290300210520034190066a28020021062003418c066a280200210a2009280200210920032903f005210b20032903e005210c2003280284062102200341d8036a41206a220d20034180046a41206a280200360200200341d8036a41186a221420034180046a41186a290300370300200341d8036a41106a221520034180046a41106a290300370300200341d8036a41086a221620034180046a41086a29030037030020032003290380043703d803024020032802e404450d00200e102e0b200341b0036a41086a220e2016290300370300200341b0036a41106a22162015290300370300200341b0036a41186a22152014290300370300200341b0036a41206a2214200d28020036020020034180056a41186a2004370300200341b0056a2006360200200341a8056a2009360200200341a4056a2002360200200320032903d8033703b0032003200b370390052003200c370380052003200a3602ac05200320013602a0052003200537038805200341d4056a2014280200360200200341cc056a2015290300370200200341c4056a2016290300370200200341bc056a200e290300370200200341b4056a20032903b003370200200341e0056a200341b8056a220910d10520032802e005220d20032802e80510ff01024020032802e405450d00200d102e0b200320083a00dc03200320073602d80320034180046a200910860520032802880421092003280280042107200341003602e805200342013703e005200341d8036a200341e0056a109102200320083a00b003200341e0056a200341b0036a410110742007200920032802e005220820032802e80510b201024020032802e405450d002008102e0b0240200328028404450d002007102e0b02402002450d00200241186c450d002001102e0b0240200641ffffffff0371450d00200a102e0b200341063a0090030c320b024020032802e404450d00200e102e0b20034190036a410110820620032d0090034106460d3120032902940321040c300b2001410c6a2802002106200141086a2802002108200141046a2802002107200341e0056a41286a2209200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a220a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a220d200241086a290200370300200320022902003703e00520034180056a200341e0056a10c10220034190036a41086a220220034194056a2902003703002003419d036a220120034199056a290000370000200320032f0081053b01d805200320032d0083053a00da05200320034180056a410c6a290200370390030240024002400240024020032d0080054101460d0020034180056a41086a280200210e2003280284052114200341f3046a2002290300370000200341e0046a41186a2001290000370000200320032d00da053a00e204200320032f01d8053b01e0042003200e3600e704200320143600e30420032003290390033700eb04200341b8046a200341e0046a10d305200341e0056a20032802b804220e20032802c00410e60520034180046a41086a2003419c066a29020037030020034180046a41106a200341a4066a29020037030020034180046a41186a200341ac066a29020037030020034180046a41206a200341b4066a280200360200200320034194066a29020037038004024002402003280280062201450d00200a2903002104200d290300210520034190066a280200210a2003418c066a280200210d2009280200210920032903f005210b20032903e005210c2003280284062102200341d8036a41206a221420034180046a41206a280200360200200341d8036a41186a221520034180046a41186a290300370300200341d8036a41106a221620034180046a41106a290300370300200341d8036a41086a221720034180046a41086a29030037030020032003290380043703d803024020032802bc04450d00200e102e0b200341b0036a41086a220e2017290300370300200341b0036a41106a22172016290300370300200341b0036a41186a22162015290300370300200341b0036a41206a2215201428020036020020034180056a41186a2004370300200341b0056a200a360200200341a8056a2009360200200341a4056a2002360200200320032903d8033703b0032003200b370390052003200c370380052003200d3602ac05200320013602a0052003200537038805200341d4056a2015280200360200200341cc056a2016290300370200200341c4056a2017290300370200200341bc056a200e290300370200200341b4056a20032903b00337020020060d01200341e0026a410510820602402002450d00200241186c450d002001102e0b200a41ffffffff0371450d05200d102e0c050b024020032802bc04450d00200e102e0b200341e0026a41011082060c020b024020064111490d00200341e0026a411310820602402002450d00200241186c450d002001102e0b200a41ffffffff0371450d03200d102e0c030b20034180046a200341b8056a221510d105200341e0056a2003280280042202200328028804108706200341f0026a41086a2201200341e0056a41086a290300370300200320032903e0053703f0020240024020032d00f0054102460d00200341b8046a41086a2001290300370300200320032903f0023703b8040240200328028404450d002002102e0b200341a8046a41086a200341b8046a41086a280200360200200320032903b8043703a8040c010b0240200328028404450d002002102e0b200341003602b004200342013703a8040b200341063a00f00220032007200641246c6a3602e403200320073602e003200320083602dc03200320073602d8032003200341f0026a3602ec032003200341a8046a3602e803200341e0056a200341d8036a1088060240024020032d00e0054101470d004120102c2209450d3f200920032900e105370000200941186a200341f9056a290000370000200941106a200341f1056a290000370000200941086a200341e9056a29000037000020034180046a41106a200341d8036a41106a29030037030020034180046a41086a200341d8036a41086a290300370300200320032903d80337038004200341e0056a20034180046a10880602400240024020032d00e0050d0041012101410121080c010b200341e0056a41017221024120210741012101410121080340200341b8046a41186a220a200241186a290000370300200341b8046a41106a220d200241106a290000370300200341b8046a41086a220e200241086a290000370300200320022900003703b804024020082001470d00200141016a22062001490d3d200141017422142006201420064b1b22064104200641044b1b220641ffffff3f712006462114200641057421060240024020010d00200341003602b0030c010b200341013602b803200320093602b003200320014105743602b4030b20034190036a20062014200341b0036a107d20032802980321012003280290034101460d032003280294032109200141057621010b200920076a220620032903b804370000200641186a200a290300370000200641106a200d290300370000200641086a200e290300370000200741206a2107200841016a2108200341e0056a20034180046a10880620032d00e0050d000b0b200328028c0420032802880422026b220641246d210702402006450d00200741246c21060340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022006415c6a22060d000b0b2003280284042202450d02200241246c450d02200328028004102e0c020b20010d3f0c390b20032802e40320032802e00322026b220141246d210602402001450d00200641246c21010340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b4100210141012109024020032802dc032202450d00200241246c450d0020032802d803102e0b410021080b200341f0026a41086a2102024020032d00f00222064106460d0020032f00f10220032d00f3024110747221082002280200210220032802f40221070240200141ffffff3f71450d002009102e0b200341e8026a2002360200200320073602e402200320063a00e002200320083b00e102200320084110763a00e302024020032802ac0441ffffff3f71450d0020032802a804102e0b024020032802a4052202450d00200241186c450d0020032802a005102e0b20032802b00541ffffffff0371450d0520032802ac05102e0c050b20034198046a2206420037030020034180046a41106a2207420037030020034180046a41086a220a4200370300200342003703800420034190036a4192fdc6004107108102200a20034190036a41086a290300370300200320032903900337038004200341f0026a4194adc600410a10810220062002290300370300200720032903f002370300200341286a20034180046a4120108e02200328022c210220032802282106200341e0056a201510860520032802e005220720032802e80510ff01024020032802e405450d002007102e0b2002410020061b210a200341b8046a201510d10520032802c004210d20032802b8042107200341003602e805200342013703e0052008200341e0056a107602402008450d0020084105742106200921020340200341e0056a200241201074200241206a2102200641606a22060d000b0b2003200a36028004200341e0056a20034180046a41041074200341003a00b003200341e0056a200341b0036a410110742007200d20032802e005220220032802e80510b201024020032802e405450d002002102e0b024020032802bc04450d002007102e0b0240200141ffffff3f71450d002009102e0b024020032802ac0441ffffff3f71450d0020032802a804102e0b024020032802a4052202450d00200241186c450d0020032802a005102e0b024020032802b00541ffffffff0371450d0020032802ac05102e0b200341063a00e0020c330b200341023a00e0020b2006450d010b200641246c2101200721020340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b2008450d00200841246c450d002007102e0b20032d00e0024106460d2e20032802e0022102200020032902e402370024200041206a2002360000200041186a41003a000020004200370308200042013703000c3a0b200341e0056a41286a2208200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a2207200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a2209200241086a290200370300200320022902003703e00520034180056a200341e0056a10c10220034180046a41086a220220034189056a29000037030020034180046a41106a220120034191056a29000037030020034180046a41186a220620034199056a29000037030020032003290081053703800420032d0080054101460d12200341b8046a41186a2006290300370300200341b8046a41106a2001290300370300200341b8046a41086a200229030037030020032003290380043703b804200341e0046a200341b8046a10d305200341e0056a20032802e004220a20032802e80410e60520022003419c066a2902003703002001200341a4066a2902003703002006200341ac066a29020037030020034180046a41206a200341b4066a280200360200200320034194066a2902003703800402402003280280062201450d00200729030021042009290300210520034190066a28020021062003418c066a28020021072008280200210820032903f005210b20032903e005210c2003280284062102200341d8036a41206a220920034180046a41206a280200360200200341d8036a41186a220d20034180046a41186a290300370300200341d8036a41106a220e20034180046a41106a290300370300200341d8036a41086a221420034180046a41086a29030037030020032003290380043703d803024020032802e404450d00200a102e0b200341b0036a41086a220a2014290300370300200341b0036a41106a2214200e290300370300200341b0036a41186a220e200d290300370300200341b0036a41206a220d200928020036020020034180056a41186a2004370300200341b0056a2006360200200341a8056a2008360200200341a4056a2002360200200320032903d8033703b0032003200b370390052003200c37038005200320073602ac05200320013602a0052003200537038805200341d4056a200d280200360200200341cc056a200e290300370200200341c4056a2014290300370200200341bc056a200a290300370200200341b4056a20032903b003370200200341e0056a200341b8056a220810860520032802e005220920032802e80510ff01024020032802e405450d002009102e0b200341e0056a200810d10520032802e005220820032802e80510ff01024020032802e405450d002008102e0b02402002450d00200241186c450d002001102e0b0240200641ffffffff0371450d002007102e0b200341063a0090030c2d0b024020032802e404450d00200a102e0b20034190036a410110820620032d0090034106460d2c20032902940321040c2b0b200341b8046a41206a200141216a2d00003a0000200341b8046a41186a200141196a290000370300200341b8046a41106a200141116a290000370300200341b8046a41086a200141096a290000370300200320012900013703b804200341e0056a41286a2208200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a2207200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a2209200241086a290200370300200320022902003703e00520034180056a200341e0056a10c10220034180046a41086a220220034180056a41096a29000037030020034180046a41106a220120034180056a41116a29000037030020034180046a41186a220620034180056a41196a29000037030020032003290081053703800420032d0080054101460d10200341e0046a41186a2006290300370300200341e0046a41106a2001290300370300200341e0046a41086a200229030037030020032003290380043703e00420034190036a200341e0046a10d305200341e0056a200328029003220a20032802980310e60520022003419c066a2902003703002001200341a4066a2902003703002006200341ac066a29020037030020034180046a41206a200341b4066a280200360200200320034194066a2902003703800402402003280280062201450d00200729030021042009290300210520034190066a28020021062003418c066a28020021072008280200210820032903f005210b20032903e005210c2003280284062102200341d8036a41206a220920034180046a41206a280200360200200341d8036a41186a220d20034180046a41186a290300370300200341d8036a41106a220e20034180046a41106a290300370300200341d8036a41086a221420034180046a41086a29030037030020032003290380043703d8030240200328029403450d00200a102e0b200341b0036a41086a220a2014290300370300200341b0036a41106a2214200e290300370300200341b0036a41186a220e200d290300370300200341b0036a41206a220d200928020036020020034180056a41186a2004370300200341b0056a2006360200200341a8056a2008360200200341a4056a2002360200200320032903d8033703b0032003200b370390052003200c37038005200320073602ac05200320013602a0052003200537038805200341d4056a200d280200360200200341cc056a200e290300370200200341c4056a2014290300370200200341bc056a200a290300370200200341b4056a20032903b003370200200341e0056a41206a200341b8046a41206a2d00003a0000200341e0056a41186a200341b8046a41186a290300370300200341e0056a41106a200341b8046a41106a290300370300200341e0056a41086a200341b8046a41086a290300370300200320032903b8043703e005200341d8036a200341b8056a10840620032802e003210920032802d80321082003410036028804200342013703800402400240024002400240024020032d00e0050e050001020304050b200341003a00b00320034180046a200341b0036a410110740c040b200341013a00b00320034180046a200341b0036a410110740c030b200341023a00b00320034180046a200341b0036a410110740c020b200341033a00b00320034180046a200341b0036a4101107420034180046a200341e0056a410172412010740c010b200341043a00b00320034180046a200341b0036a410110740b20082009200328028004220a20032802880410b2010240200328028404450d00200a102e0b024020032802dc03450d002008102e0b02402002450d00200241186c450d002001102e0b0240200641ffffffff0371450d002007102e0b200341063a00f0020c2a0b0240200328029403450d00200a102e0b200341f0026a410110820620032d00f0024106460d2920032902f40221040c280b200341d8026a41026a200141076a2d00003a0000200341e0046a41086a200141186a290200370300200341e0046a41106a200141206a2902003703002003200141056a2f00003b01d8022003200141106a2902003703e004200141046a2d00002106200141086a28020021082001410c6a2802002101200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a200241086a290200370300200320022902003703e00520034180056a200341e0056a10c1022003418c036a41026a220220032d0083053a0000200341f0026a41086a220720034194056a290200370300200341fd026a220920034180056a41196a290000370000200320032f0081053b018c03200320034180056a410c6a2902003703f00202400240024020032d0080054101460d0020034180056a41086a220a280200210d200328028405210e200341c3036a2007290300370000200341b0036a41186a2009290000370000200320032f018c033b01b0032003200d3600b7032003200e3600b303200320032903f0023700bb03200320022d00003a00b203200341b8046a200341b0036a10e505200341e0056a20032802b804220220032802c00410f402200a200341ea056a29010037030020034180056a41106a200341f2056a29010037030020034180056a41176a2207200341e0056a41196a290000370000200320032901e20537038005024002400240024020032d00e0054101470d0020032d00e105210920034190036a41176a200729000037000020034190036a41106a220720034180056a41106a29030037030020034190036a41086a220a20034180056a41086a290300370300200320032903800537039003024020032802bc04450d002002102e0b20034180046a41176a220220034190036a41176a29000037000020034180046a41106a220d2007290300370300200341e1036a200a290300370000200341e9036a200d290300370000200341d8036a41186a2002290000370000200320093a00d80320032003290390033700d90320034180056a41026a2202200341d8026a41026a2d00003a0000200320032f01d8023b018005200341e0056a41086a200341e0046a41086a290300370300200341e0056a41106a200341e0046a41106a290300370300200320032903e0043703e0050240024020064107710e03000301030b20034180046a41186a2206200341e0056a410d6a29000037000020034180046a41136a2207200341e0056a41086a29030037000020034190036a41086a2209200729000037030020034190036a410d6a22072006290000370000200320032f01800522063b0180042003200136008704200320022d000022023a008204200320063b01d805200320032903e00537039003200320023a00da05200320032d00da053a00ba04200320032f01d8053b01b804200320013600bf04200320083600bb04200341b8046a41186a2007290000370000200341b8046a41136a200929030037000020032003290390033700c304200341e0056a200341b8046a10d30520032802e005220120032802e805108f022102024020032802e405450d002001102e0b2002450d04200341a8046a41041082060c070b02402001450d002008102e0b20034198036a20034193046a2900003703002003419d036a20034198046a290000370000200320032f0180043b01d805200320032d0082043a00da052003200329008b04370390030c020b024020032802bc04450d002002102e0b200341a8046a41021082060c040b20034198036a20034193046a2900003703002003419d036a20034180046a41186a290000370000200320032f0180043b01d805200320032d0082043a00da052003200329008b04370390030b200341013a00a8040c030b200341b8046a200341d8036a412010ec08450d2820034180056a200341b0036a10e505200328028805210120032802800521024120102c2206450d38200342203702e405200320063602e005200341e0056a200341b8046a412010742002200120032802e005220620032802e80510b201024020032802e405450d002006102e0b0240200328028405450d002002102e0b20034190036a200341d8036a10d305200341e0056a2003280290032201200328029803220610e60502402003280280062202450d002001200610ff010b20034180046a41086a22062003419c066a29020037030020034180046a41106a2208200341a4066a29020037030020034180046a41186a2207200341ac066a29020037030020034180046a41206a2209200341b4066a280200360200200320034194066a2902003703800402402002450d00200341e0056a41186a2903002104200341e0056a41086a290300210520034190066a280200210a2003418c066a280200210d20034188066a280200210e20032903f005210b20032903e005210c200328028406211420034180056a41206a200928020036020020034180056a41186a200729030037030020034180056a41106a200829030037030020034180056a41086a20062903003703002003200329038004370380050240200328029403450d002001102e0b200341e0056a41186a200437030020034190066a200a36020020034188066a2201200e36020020034184066a201436020020034194066a2003290380053702002003419c066a20034188056a290300370200200341a4066a20034180056a41106a290300370200200341ac066a20034180056a41186a290300370200200341b4066a20034180056a41206a2802003602002003200b3703f005200320053703e8052003200c3703e0052003200d36028c06200320023602800620034190036a200341b8046a10d305200328029803210820032802900321062003410036028804200342013703800420034180046a20034198066a412010742003200341e0056a3602f002200341f0026a20034180046a10af012003200341e0056a41106a3602f002200341f0026a20034180046a10af0120032802800621022001280200220120034180046a10760240200141186c2201450d00200220016a21010340200320023602f002200341f0026a20034180046a10af01200241106a20034180046a109102200241186a22022001470d000b0b200328028c062102200328029406220120034180046a107620034180046a20022001410274107420062008200328028004220220032802880410b2010240200328028404450d002002102e0b0240200328029403450d002006102e0b02402003280284062202450d00200241186c450d00200328028006102e0b20032802900641ffffffff0371450d29200328028c06102e0c290b200328029403450d282001102e0c280b200341023a00a8040b200641ff01714102470d002001450d002008102e0b20032d00a8044106460d2620032802a8042102200020032902ac04370024200041206a2002360000200041186a41003a000020004200370308200042013703000c370b200141046a2802002101200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a200241086a290200370300200320022902003703e0050240200341e0056a10a705450d00200341d8036a41026a200341b8046a41026a2d000022023a0000200320032f00b80422013b01d803200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a0000200042013703000c370b20034180046a41186a2202420037030020034180046a41106a2206420037030020034180046a41086a220842003703002003420037038004200341f0026a4192fdc60041071081022008200341f0026a41086a290200370300200320032902f0023703800420034190036a41b4aac600410e108102200220034190036a41086a2903003703002006200329039003370300200320013602e00520034180046a4120200341e0056a410410b201200041186a41003a00002000420037030820002003280080053600192000411c6a20034183056a280000360000200042003703000c360b200141046a2802002108200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a200241086a290200370300200320022902003703e0050240200341e0056a10a705450d00200341d8036a41026a200341b8046a41026a2d000022023a0000200320032f00b80422013b01d803200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a0000200042013703000c360b20034180046a41186a2202420037030020034180046a41106a2201420037030020034180046a41086a220642003703002003420037038004200341f0026a4192fdc60041071081022006200341f0026a41086a2207290200370300200320032902f0023703800420034190036a41b4aac600410e108102200220034190036a41086a22092903003703002001200329039003370300200341306a20034180046a4120108e022003280234210a2003280230210d2002420037030020014200370300200642003703002003420037038004200341f0026a4192fdc600410710810220062007290200370300200320032902f0023703800420034190036a41b4aac600410e1081022002200929030037030020012003290390033703002003200a4100200d1b20086a3602e00520034180046a4120200341e0056a410410b201200041186a41003a00002000420037030820002003280080053600192000411c6a20034183056a280000360000200042003703000c350b20012d00012101200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a200241086a290200370300200320022902003703e0050240200341e0056a10a7050d0020034180046a41186a2202420037030020034180046a41106a2206420037030020034180046a41086a220842003703002003420037038004200341f0026a4192fdc60041071081022008200341f0026a41086a2207290200370300200320032902f0023703800420034190036a41b4aac600410e108102200220034190036a41086a22092903003703002006200329039003370300200341386a20034180046a4120108e02200328023c210a2003280238210d2002420037030020064200370300200842003703002003420037038004200341f0026a4192fdc600410710810220082007290200370300200320032902f0023703800420034190036a41b4aac600410e1081022002200929030037030020062003290390033703002003200a4100200d1b220241e4006e20016c200241e4007020016c220141e4006e41ff0120014180c801491b200141e4007041324b6a41ff01716a20026a3602e00520034180046a4120200341e0056a410410b201200041186a41003a00002000420037030820002003280080053600192000411c6a20034183056a280000360000200042003703000c350b200341d8036a41026a200341b8046a41026a2d000022023a0000200320032f00b80422013b01d803200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a0000200042013703000c340b200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a2201200241086a290200370300200320022902003703e005200341e0056a10a7050d0a200341b8046a41186a22024200370300200341b8046a41106a22064200370300200341b8046a41086a22084200370300200342003703b804200341e0056a4192fdc600410710810220082001290000370300200320032900e0053703b804200341e0056a41b8b2c600410810810220022001290000370300200620032900e005370300200341003602e805200342013703e005200341023a00b003200341e0056a200341b0036a41011074200341b8046a412020032802e005220220032802e80510b201024020032802e405450d002002102e0b200041186a41003a00002000420037030820002003280080053600192000411c6a20034183056a280000360000200042003703000c330b200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a2201200241086a290200370300200320022902003703e005200341e0056a10a7050d08200341b8046a41186a22024200370300200341b8046a41106a22064200370300200341b8046a41086a22084200370300200342003703b804200341e0056a4192fdc600410710810220082001290000370300200320032900e0053703b804200341e0056a41b8b2c600410810810220022001290000370300200620032900e005370300200341003602e805200342013703e005200341013a00b003200341e0056a200341b0036a41011074200341b8046a412020032802e005220220032802e80510b201024020032802e405450d002002102e0b200041186a41003a00002000420037030820002003280080053600192000411c6a20034183056a280000360000200042003703000c320b2001410c6a2802002106200141086a2802002108200141046a2802002107200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a200241086a290200370300200320022902003703e0050240200341e0056a10a7050d0020034180046a41186a2202420037030020034180046a41106a2201420037030020034180046a41086a220942003703002003420037038004200341f0026a4192fdc60041071081022009200341f0026a41086a290200370300200320032902f0023703800420034190036a418cabc600410d108102200220034190036a41086a290300370300200120032903900337030020064105744104722202417f4c0d2a2002102c2201450d30200341003602e805200320023602e405200320013602e0052006200341e0056a107602402006450d0020064105742101200721020340200341e0056a200241201074200241206a2102200141606a22010d000b0b20034180046a412020032802e005220220032802e80510b201024020032802e405450d002002102e0b0240200841ffffff3f71450d002007102e0b200042003703082000200328008005360019200041186a41003a00002000411c6a20034183056a280000360000200042003703000c320b0240200841ffffff3f71450d002007102e0b200341d8036a41026a200341b8046a41026a2d000022023a0000200320032f00b80422013b01d803200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a0000200042013703000c310b200141246a280200210620034180056a41186a200141196a29000037030020034180056a41106a200141116a29000037030020034180056a41086a200141096a2900003703002003200129000137038005200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a200241086a290200370300200320022902003703e005200341e0056a10a7050d05200341e0056a20034180056a2006108606200341b0036a41026a220120032d00e3053a0000200320032f00e1053b01b003024020032d00e00522024106460d0020032902e405210420034180046a41026a20012d00003a0000200320032f01b0033b0180040c1e0b42f3e885db96cddbb32020034180056a10ea02200041186a41003a000020004200370308200020032800b8043600192000411c6a200341bb046a280000360000200042003703000c300b200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a2201200241086a290200370300200320022902003703e005200341e0056a10a7050d03200341b8046a41186a22024200370300200341b8046a41106a22064200370300200341b8046a41086a22084200370300200342003703b804200341e0056a4192fdc600410710810220082001290000370300200320032900e0053703b804200341e0056a41b8b2c600410810810220022001290000370300200620032900e005370300200341003602e805200342013703e005200341033a00b003200341e0056a200341b0036a41011074200341b8046a412020032802e005220220032802e80510b201024020032802e405450d002002102e0b200041186a41003a00002000420037030820002003280080053600192000411c6a20034180056a41036a280000360000200042003703000c2f0b200141046a280200211b2002410e6a2f010021092002410d6a2d0000210a2002410c6a2d0000210d2002410a6a2f0100210e200241096a2d00002114200241086a2d00002115200241046a2d00002108200141106a28020021072001410c6a280200211a200141086a280200211920022802282101024020022d000022060d002002411a6a2901002104200241196a2d00002106200241186a2d00002116200241166a2f01002117200241156a2d00002118200241146a2d0000211c200241126a2f0100211d200241116a2d0000211e200241106a2d0000211f200241066a2f01002120200241056a2d00002121200241026a2f0100212220022d0001210220012001280200417f6a2223360200024020230d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22232023280200417f6a222336020020230d002001102e0b200320043701d004200320063a00cf04200320163a00ce04200320173b01cc04200320183a00cb042003201c3a00ca042003201d3b01c8042003201e3a00c7042003201f3a00c604200320093b01c4042003200a3a00c3042003200d3a00c2042003200e3b01c004200320143a00bf04200320153a00be04200320203b01bc04200320213a00bb04200320083a00ba04200320223b01b8040240200241ff01710d00410321060c010b4110102c2202450d2d200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d2d20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a22163602004100210620160d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22162016280200417f6a221636020020160d002002102e0b024002402006417f6a0e03001a011a0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200841ff01710d18200e4110742014410874722015724102742009411074200a41087472200d7241036c490d180b024020070d0020034180046a41051082060c1a0b200741016a210120192102024003402001417f6a22014102490d01200241046a210620022802002108200241046a210220082006280200490d000b20034180046a410e1082060c1a0b200341e0056a201b10f90520034180056a20032802e005220220032802e80510f5050240024020032802800522180d004100211c200341003602c004200342083703b80441082118410021170c010b200320032902840522043702bc04200320183602b8042004422088a721172004a7211c0b024020032802e405450d002002102e0b02402007410274220d20196a417c6a2802002017490d0020034180046a410710820602402017450d00201741d8006c2101201841306a210203400240200241746a2802002206450d00200641306c450d00200241706a280200102e0b0240200228020041ffffff3f71450d002002417c6a280200102e0b200241d8006a2102200141a87f6a22010d000b0b201c450d1a201c41d8006c450d1a2018102e0c1a0b201741d8006c210641002101417f2108201921070340201720016a220920012007280200220e6a22024d0d022018200241d8006c6a220228022c211520022802202116200241306a2802002114200241246a280200210a2002200241d8006a20092008200e6b6a41d8006c10ea081a20032009417f6a3602c0040240200a450d00200a41306c450d002016102e0b0240201441ffffff3f71450d002015102e0b200741046a2107200841016a21082001417f6a2101200641a87f6a2106200d417c6a220d450d170c000b0b200141246a2802002106200341e0046a41186a2208200141196a290000370300200341e0046a41106a2207200141116a290000370300200341e0046a41086a2209200141096a290000370300200320012900013703e004200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a200241086a290200370300200320022902003703e00520034180056a200341e0056a10c10220032d0080054101460d0e200341b0036a41186a2008290300370300200341b0036a41106a2007290300370300200341b0036a41086a2009290300370300200320032903e0043703b00320034180046a41186a2201420037030020034180046a41106a2202420037030020034180046a41086a220842003703002003420037038004200341f0026a4192fdc60041071081022008200341f0026a41086a290200370300200320032902f0023703800420034190036a4194adc600410a108102200120034190036a41086a2903003703002002200329039003370300200341b8026a20034180046a4120108e0220032802b802450d0d024020032802bc02220120064f0d00200341e0026a410c1082060c130b20034198046a420037030020034180046a41106a420037030020034180046a41086a220842003703002003420037038004200341f0026a4192fdc60041071081022008200341f0026a41086a290200370300200320032902f0023703800420034190036a41e0a9c600410c108102200241086a20034190036a41086a2903003700002002200329039003370000200341b0026a20034180046a4120108e02024020064100200120032802b40241d40020032802b0021b6b2202200220014b1b22074f0d00200341e0026a410c1082060c130b200341e0056a200610970320034198026a20032802e005220120032802e80510f80220034198026a41106a290300210420032903a00221052003280298022102024020032802e405450d002001102e0b02402002450d00200341d8036a200341b0036a10e505200341e0056a20032802d803220120032802e00310f40220034180046a41086a200341e0056a41096a29000037030020034180046a41106a200341e0056a41116a29000037030020034198046a2208200341f9056a290000370300200320032900e10537038004410121020240024020032d00e0054101460d00410021020c010b20034180056a41086a20034180046a41096a29000037030020034180056a41106a20034180046a41116a29000037030020034197056a200829000037000020032003290081043703800520032d00800421080b024020032802dc03450d002001102e0b2002450d1120034190036a41176a220220034180056a41176a29000037000020034190036a41106a220120034180056a41106a290300370300200341c1046a20034180056a41086a290300370000200341c9046a2001290300370000200341b8046a41186a2002290000370000200320083a00b80420032003290380053700b90420034190036a200341b8046a10d305200341e0056a200328029003220e20032802980310e60520034180046a41086a22022003419c066a29020037030020034180046a41106a2201200341a4066a29020037030020034180046a41186a2209200341ac066a29020037030020034180046a41206a220a200341b4066a280200360200200320034194066a29020037038004200328028006220d450d12200341e0056a41186a290300210b200341e0056a41086a290300210c20034190066a28020021142003418c066a280200210820034188066a280200211520032903f005210f20032903e00521102003280284062116200341d8036a41206a200a280200360200200341d8036a41186a2009290300370300200341d8036a41106a2001290300370300200341d8036a41086a200229030037030020032003290380043703d8030240200328029403450d00200e102e0b20034180056a41186a200b370300200341b0056a2014360200200341a8056a2015360200200341a4056a2016360200200341b4056a220220032903d803370200200341bc056a200341e0036a290300370200200341c4056a200341e8036a290300370200200341cc056a200341d8036a41186a290300370200200341d4056a200341f8036a2802003602002003200f370390052003201037038005200320083602ac052003200d3602a0052003200c370388052002280200210d4100210920024100360200410021140240200d450d004100210e410021144100210102400340024002402014450d002001410274210203402007200820026a280200220a4b0d022008200e6a20026a200a3602000240200d200141016a220a4d0d00200241046a210220032802ac052108200a21010c010b0b200141016a21010c030b200820014102746a21020340200720022802004b0d01200241046a2102200d200141016a22014b0d000b410021140c030b200e417c6a210e201441016a2114200d200141016a22014b0d000b0b024020140d00410021140c010b20032802ac052202200120146b4102746a200220014102746a200d20016b41027410ea081a0b2003200d20146b220a3602b40520032802ac0521070240024002400240024002400240200a0e020201000b41002109200a2102034020092002410176220120096a22082006200720084102746a280200491b2109200220016b220241014b0d000b0b02402006200720094102746a2802002202470d00200341e0026a410f1082060c020b200a2009200620024b6a2209490d030b0240024002400240200a20032802b005470d00200a41016a2202200a490d2e200a41017422012002200120024b1b22024104200241044b1b220241ffffffff037120024641027421012002410274210202400240200a0d00200341003602e0050c010b200341e8056a4104360200200320073602e0052003200a4102743602e4050b20034180046a20022001200341e0056a107d20034188046a28020021022003280280044101460d01200320032802840422073602ac05200320024102763602b0050b200720094102746a220241046a2002200a20096b41027410ea081a200220063602002003200a41016a3602b40520034180046a2006200341b8056a220a10f705200341e0056a200328028004220220032802880410a20320032802800622150d01420021104100211a410821154100211641002117420021114200210c4200210f0c020b20020d320c2c0b20032f00850620034187066a2d0000411074724108742117200341e0056a41086a290300210f200341f8056a290300211120034188066a280200211a20032903e005210c20032903f005211020032d00840621160b0240200328028404450d002002102e0b200341b8046a20034180056a10d205200341f0026a4192fdc600410710810220034190036a41ed9fc5004110108102200320063602d8052003200341d8056a410410a3013703d803200341ec056a200341d8056a41046a3602002003200341e0036a3602e4052003200341d8056a3602e8052003200341d8036a3602e00520034180046a200341e0056a107c200328028804220141206a2202417f4c0d2a0240024020020d00410121080c010b2002102c2208450d310b200341003602e003200320023602dc03200320083602d803200341d8036a200341f0026a41101074200341d8036a20034190036a41101074200341d8036a2003280280042202200110740240200328028404450d002002102e0b200341e0056a20032802d803220220032802e00310a20520034180046a41086a2201200341ec056a290200370300200320032902e405370380040240024020032802e0054101460d00200341a8046a41086a420037030041002119200341003602a8040c010b200341a8046a41086a20012903003703002003200329038004220b3703a804200ba721190b024020032802dc03450d002002102e0b200341a8046a41047221180240200341b0046a280200220d450d0020032802ac04210e0340200d41046a2107200d41346a2101200d2f013222144105742102417f2108024002400340024020020d00201421080c020b200a2001412010ec082209450d02200841016a2108200741046a2107200241606a2102200141206a21012009417f4a0d000b0b200e450d02200e417f6a210e200d20084102746a4194036a280200210d0c010b0b200728020022010d020b200341063a00e002201810bc0220172016722202450d00200241306c450d002015102e0b024020032802a4052202450d00200241186c450d0020032802a005102e0b20032802b00541ffffffff0371450d1620032802ac05102e0c160b20194101201941014b1b2202418094ebdc036e2002418094ebdc03704100476a22084101200841014b1b220820024b0d0120034180026a20052004428094ebdc03420010e608200341f0016a20052004428094ebdc03420010e708200341e0016a20032903f001200341f0016a41086a2903002002200120022001491b20086ead428094ebdc037e200220086ead8042ffffffff0f832204420010e808200341e0056a2006200341b0036a10f80520034190026a20032802e005220120032802e805108705200341e0016a41086a29030020032903e001220520042003290380027e2204428094ebdc0380a72004428094ebdc03824280cab5ee01566aad7c2204200554ad7c2105410020032802900220032d0094024102461b2102024020032802e405450d002001102e0b200341b8016a20042005428094ebdc03420010e608200341a8016a20042005428094ebdc03420010e70820034198016a20032903a801200341a8016a41086a2903002002ad220b420010e80820034188016a2004200329039801221220032903b801200b7e220b428094ebdc0380a7417f200b428080808080c0b2cd3b541b200b428094ebdc03824280cab5ee01566aad7c220b7d2213200520034198016a41086a290300200b201254ad7c22247d2004200b54ad7d2204428094ebdc03420010e608200341f8006a20132004428094ebdc03420010e70820102011200c200f1082052102200341e8006a20032903782210200341f8006a41086a29030022112002ad2204420010e808200341c8016a200a20032903682205200329038801221220047e2204428094ebdc0380a7417f2004428080808080c0b2cd3b541b2004428094ebdc03824280cab5ee01566aad7c2204200b7c220b200341e8006a41086a2903002004200554ad7c20247c200b200454ad7c10890620034180046a41106a200341c8016a41106a2903002205370300200320032903d001220b37038804200320032903c80122043703800402402004a74101470d002003200b3703d803200320053703e003200341bb056a290000210420034198066a200537030020034190066a200b370300200341e8056a41013a0000200341e9056a20032f01b8053b0000200341eb056a200341ba056a2d00003a0000200341ec056a2004370200200341f4056a200341c3056a290000370200200341fc056a200341cb056a29000037020020034181066a200341d0056a290000370000200341043a00e005200341e0056a10fe012003200341d8036a3602e005200341e0056a10ce020c130b20044201520d12200320034180046a41086a3602e005200341e0056a10ce020c120b2009200a1045000b41d0d8c800411941bcd7cc001039000b200341e0026a410c1082060c120b200220091046000b200341d8036a41026a20034180046a41026a2d000022023a0000200320032f00800422013b01d803200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a0000200042013703000c2b0b410221020c170b200341d8036a41026a20034180046a41026a2d000022023a0000200320032f00800422013b01d803200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a0000200042013703000c290b200341d8036a41026a20034180046a41026a2d000022023a0000200320032f00800422013b01d803200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a0000200042013703000c280b200341023a00f0020c170b200341023a0090030c180b200341023a0090030c1a0b200341023a00f0020c200b2001410c6a2802002106200141086a2802002107200141046a2802002108200341e0056a41286a220a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a220d200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a220e200241086a290200370300200320022902003703e00520034180056a200341e0056a10c10220034180046a41086a220220034189056a29000037030020034180046a41106a220120034191056a29000037030020034180046a41186a220920034199056a290000370300200320032900810537038004024002400240024002400240024020032d0080054101460d00200341e0046a41186a2009290300370300200341e0046a41106a2001290300370300200341e0046a41086a200229030037030020032003290380043703e004200341b8046a200341e0046a10d305200341e0056a20032802b804221420032802c00410e60520022003419c066a2902003703002001200341a4066a2902003703002009200341ac066a29020037030020034180046a41206a200341b4066a280200360200200320034194066a2902003703800402402003280280062202450d00200d2903002104200e290300210520034190066a28020021012003418c066a2802002109200a280200210a20032903f005210b20032903e005210c200328028406210d200341d8036a41206a220e20034180046a41206a280200360200200341d8036a41186a221520034180046a41186a290300370300200341d8036a41106a221620034180046a41106a290300370300200341d8036a41086a221720034180046a41086a29030037030020032003290380043703d803024020032802bc04450d002014102e0b200341b0036a41086a22142017290300370300200341b0036a41106a22172016290300370300200341b0036a41186a22162015290300370300200341b0036a41206a2215200e28020036020020034180056a41186a2004370300200341b0056a2001360200200341a8056a200a36020020034180056a41246a200d360200200320032903d8033703b0032003200b370390052003200c37038005200320093602ac05200320023602a0052003200537038805200341d4056a2015280200360200200341cc056a2016290300370200200341c4056a2017290300370200200341bc056a2014290300370200200341b4056a20032903b0033702002008200641246c22026a2109024020020d00200821020c050b200341e0026a41026a2201200841036a2d00003a000020034190036a41086a220a200841146a29000037030020034190036a41106a220d2008411c6a290000370300200320082f00013b01e0022003200829000c37039003200841246a210220082d0000220e4105460d042008280008211420082800042115200341a8046a41026a20012d00003a0000200341b0036a41086a200a290300370300200341b0036a41106a200d290300370300200320032f01e0023b01a80420032003290390033703b0030240024002400240200e4107710e03000201020b200341b8046a41026a200341a8046a41026a2d00003a0000200341cb046a200341b8036a290300370000200341d0046a200341bd036a290000370000200320032f01a8043b01b804200320143600bf04200320153600bb04200320032903b0033700c304410121014100210a0c020b2014450d002015102e0b410021014101210a0b20034180046a41086a220d200341b8046a41086a29010037030020034180046a41106a220e200341b8046a41106a29010037030020034180046a41186a2214200341b8046a41186a290100370300200320032901b804370380042001450d05200341d8036a41186a2014290300370300200341d8036a41106a200e290300370300200341d8036a41086a200d29030037030020032003290380043703d8034120102c221c450d29201c20032903d803370000201c41186a200341d8036a41186a290300370000201c41106a200341d8036a41106a290300370000201c41086a200341d8036a41086a290300370000200921010240024020092002460d00200341e0026a41026a2201200241036a2d00003a000020034190036a41086a200841386a29000037030020034190036a41106a200841c0006a290000370300200320022f00013b01e0022003200829003037039003200841c8006a2102024020082d0024220d4105460d00200828002c210e20082800282114200341a8046a41026a20012d00003a0000200341b0036a41086a220120034190036a41086a290300370300200341b0036a41106a20034190036a41106a290300370300200320032f01e0023b01a80420032003290390033703b0030240024002400240200d4107710e03000201020b200341b8046a41026a200341a8046a41026a2d00003a0000200341cb046a2001290300370000200341d0046a200341bd036a290000370000200320032f01a8043b01b8042003200e3600bf04200320143600bb04200320032903b0033700c304410121010c020b200e450d002014102e0b410021014101210a0b20034180046a41086a2216200341b8046a41086a222529010037030020034180046a41106a2217200341b8046a41106a222629010037030020034180046a41186a2218200341b8046a41186a2227290100370300200320032901b8043703800420010d020b200221010b4101211f4101210d0c040b200341d8036a41186a22192018290300370300200341d8036a41106a221a2017290300370300200341d8036a41086a221b201629030037030020032003290380043703d803200841ec006a2101200641246c41b87f6a2114200341c3046a2128412021154102210d4101211f0340200341e0056a41186a221d2019290300370300200341e0056a41106a221e201a290300370300200341e0056a41086a2220201b290300370300200320032903d8033703e005024002400240200d417f6a201f470d00201f41016a220e201f490d27201f4101742221200e2021200e4b1b220e4104200e41044b1b220e41ffffff3f71200e462121200e410574210e02400240201f0d00200341003602b8040c010b200341013602c0042003201c3602b8042003201f4105743602bc040b20034180046a200e2021200341b8046a107d200328028804210e2003280280044101460d01200328028404211c200e410576211f0b201c20156a220e20032903e005370000200e41186a201d290300370000200e41106a201e290300370000200e41086a202029030037000020140d01200921010c060b200e0d2b0c250b200241086a2800002122200241046a2800002123200241036a2d0000210e20022f0001211d20034190036a41086a221e200241146a29000037030020034190036a41106a22202002411c6a290000370300200341e0026a41026a2221200e3a00002003201d3b01e00220032002410c6a2900003703900320022d0000220e4105460d04200341a8046a41026a221d20212d00003a0000200341b0036a41086a2221201e290300370300200341b0036a41106a2020290300370300200320032f01e0023b01a80420032003290390033703b0030240024002400240200e4107710e03000201020b202820032903b003370000200341b8046a41026a201d2d00003a0000202841086a20212903003700002028410d6a200341b0036a410d6a290000370000200320032f01a8043b01b804200320223600bf04200320233600bb044101210e0c020b2022450d002023102e0b4100210e4101210a0b201620252901003703002017202629010037030020182027290100370300200320032901b80437038004200e450d04200241246a210220192018290300370300201a2017290300370300201b201629030037030020032003290380043703d803201541206a2115200d41016a210d2014415c6a2114200141246a21010c000b0b024020032802bc04450d002014102e0b200341f0026a41011082060c010b200341023a00f0020b02402006450d00200641246c2101200821020340024020022d00004102470d00200241086a280200450d00200241046a280200102e0b200241246a21022001415c6a22010d000b0b2007450d04200741246c450d042008102e0c040b024020092001460d002008200641246c6a210603402001220241246a2101024020022d00004102470d00200241086a280200450d00200241046a280200102e0b20062001470d000b0b2007450d02200741246c450d022008102e0c020b4100210a0b024020092002460d002008200641246c6a210603402002220141246a2102024020012d00004102470d00200141086a280200450d00200141046a280200102e0b20062002470d000b0b4100211f4101211c02402007450d00200741246c450d002008102e0b4100210d0b024002400240200a41ff0171450d00201f41ffffff3f71450d01201c102e0c010b201c0d010b200341013a00f002024020032802a4052202450d00200241186c450d0020032802a005102e0b20032802b00541ffffffff0371450d0120032802ac05102e0c010b0240200d450d00201c200d4105746a211920034189066a211d200341e9056a211e200341b8056a2107201c21060340200641086a2900002104200641106a29000021052006290000210b200341b8046a41186a2216200641186a290000370300200341b8046a41106a22172005370300200341b8046a41086a221820043703002003200b3703b80420034180046a200341b8046a10d105200341e0056a200328028004220e200328028804221410870620034190036a41086a200341e0056a41086a290300370300200320032903e00537039003024002400240024020032d00f00522154102460d00200328029c03211a200328029403211b20032802900321080240200328029803220d0d004100210d0c030b200d41057441606a41057641016a210a41002102410021010340200820026a22092007412010ec08450d02200241206a2102200a200141016a2201470d000c030b0b200e201410ff010c020b2008200d417f6a220d4105746a22022900002104200229000821052002290010210b200941186a200241186a2900003700002009200b3700102009200537000820092004370000201e20032903b804370000201e41106a2017290300370000201e41186a2016290300370000201d2007290000370000201d41106a200741106a290000370000201d41186a200741186a290000370000200341083a00e805201e41086a2018290300370000201d41086a200741086a290000370000200341043a00e005200341e0056a10fe010b200341003602e805200342013703e005200d200341e0056a10760240200d450d00200d4105742101200821020340200341e0056a200241201074200241206a2102200141606a22010d000b0b2003201a3602d803200341e0056a200341d8036a41041074200320153a00b003200341e0056a200341b0036a41011074200e201420032802e005220220032802e80510b201024020032802e405450d002002102e0b201b41ffffff3f71450d002008102e0b200641206a21060240200328028404450d00200e102e0b20062019470d000b0b0240201f41ffffff3f71450d00201c102e0b200341063a00f002024020032802a4052202450d00200241186c450d0020032802a005102e0b20032802b00541ffffffff0371450d0020032802ac05102e0b0240024020032d00f0024106460d0020032802f0022102200020032902f402370024200041206a2002360000200041186a41003a000020004200370308420121040c010b4200210420004200370308200020032800e005360019200041186a41003a00002000411c6a200341e3056a2800003600000b200020043703000c230b200141246a28020021082002280228210220034180056a41186a200141196a29000037030020034180056a41106a200141116a29000037030020034188056a200141096a2900003703002003200129000137038005200341b8046a20034180056a10c802200341e0056a20032802b804220620032802c00410c902200341e0056a41106a290300420020032903e00542015122011b210420032903e805420020011b210520034180066a290300420020011b210b200341e0056a41186a290300420020011b210c024020032802bc04450d002006102e0b024002400240427f2005200c7c220c200c20055422012004200b7c2001ad7c220520045420052004511b22011b4280c8afa02585427f200520011b84500d0020034180046a410b1082060c010b200341e0056a20034180056a2008108606200341b2036a220120032d00e3053a0000200320032f00e1053b01b003024020032d00e00522064106470d0042f3e885db96cddbb32020034180056a10ea0220022002280200417f6a2201360200200341063a00800420010d022002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d022002102e0c020b20032902e4052104200320063a008004200320032f01b0033b0081042003200437028404200320012d00003a0083040b20022002280200417f6a2201360200024020010d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b20032d0080044106460d0020032802800421022000200329028404370024200041206a2002360000200041186a41003a000020004200370308200042013703000c230b20004200370308200020032800d803360019200041186a41003a00002000411c6a200341db036a280000360000200042003703000c220b200141046a2802002108200341e0056a41286a200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a200241086a290200370300200320022902003703e0050240200341e0056a10a7050d0020034180046a41186a2202420037030020034180046a41106a2206420037030020034180046a41086a220142003703002003420037038004200341f0026a4192fdc60041071081022001200341f0026a41086a290200370300200320032902f0023703800420034190036a4194adc600410a108102200220034190036a41086a2903003703002006200329039003370300200341c8026a20034180046a4120108e02024020032802c8024101470d0020032802cc02210120034198046a2209420037030020034190046a220a420037030020034180046a41086a220742003703002003420037038004200341f0026a4192fdc60041071081022007200341f0026a41086a220d290200370300200320032902f0023703800420034190036a41e0a9c600410c108102200641086a220e20034190036a41086a22142903003700002006200329039003370000200341c0026a20034180046a4120108e0202404100200120032802c40241d40020032802c0021b6b2202200220014b1b22024100200120086b2215201520014b1b22014f0d000340200210f6052001200241016a2202470d000b0b20094200370300200a4200370300200742003703002003420037038004200341f0026a4192fdc60041071081022007200d290200370300200320032902f0023703800420034190036a41e0a9c600410c108102200e20142903003700002006200329039003370000200320083602e00520034180046a4120200341e0056a410410b2010b200042003703082000200328008005360019200041186a41003a00002000411c6a20034183056a280000360000200042003703000c220b200341d8036a41026a200341b8046a41026a2d000022023a0000200320032f00b80422013b01d803200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a0000200042013703000c210b200141106a290300210b200141086a2903002110200341e0056a41286a2208200241286a280200360200200341e0056a41206a200241206a290200370300200341e0056a41186a2207200241186a290200370300200341e0056a41106a200241106a290200370300200341e0056a41086a2209200241086a290200370300200320022902003703e00520034180056a200341e0056a10c10220034180046a41086a220220034189056a29000037030020034180046a41106a220120034191056a29000037030020034180046a41186a220620034199056a290000370300200320032900810537038004024002400240024020032d0080054101460d00200341e0046a41186a2006290300370300200341e0046a41106a2001290300370300200341e0046a41086a200229030037030020032003290380043703e00420034180056a200341e0046a10d305200341e0056a200328028005220d20032802880510e60520022003419c066a2902003703002001200341a4066a2902003703002006200341ac066a29020037030020034180046a41206a200341b4066a280200360200200320034194066a290200370380040240200328028006220a450d00200729030021112009290300212920034190066a28020021072003418c066a28020021142008280200210120032903f005210c20032903e005212a2003280284062108200341d8036a41206a220220034180046a41206a280200360200200341d8036a41186a220620034180046a41186a290300370300200341d8036a41106a220920034180046a41106a290300370300200341d8036a41086a220e20034180046a41086a29030037030020032003290380043703d8030240200328028405450d00200d102e0b200341b0036a41106a20092903002204370300200341b8046a41086a200e290300370300200341b8046a41106a2004370300200341b8046a41186a2006290300370300200341b8046a41206a2002280200360200200320032903d8033703b80420010d02200341e0056a410a108206200320032900e105370390032003200341e8056a2800003600970320032d00e005210202402008450d00200841186c450d00200a102e0b200741ffffffff0371450d032014102e0c030b0240200328028405450d00200d102e0b200341e0056a4101108206200320032900e105370390032003200341e8056a2800003600970320032d00e00521020c020b410221020c010b20034180056a41206a200341b8046a41206a28020036020020034180056a41186a200341b8046a41186a29030037030020034180056a41106a200341b8046a41106a29030037030020034180056a41086a200341b8046a41086a290300370300200320032903b80437038005200141186c200a6a41686a2102420021124200211302400340024020010d0041002101200c210f0c020b02402002290300220f20127c2204201058200241086a290300222420137c2004200f54ad7c2205200b582005200b5122061b0d002002200f201020127d22047d37030020022024200b20137d2010201254ad7d22057d200f200454ad7d370308201120057c200c20047c220f200c54ad7c21110c020b2001417f6a2101201120247c200c200f7c220f200c54ad7c2111200241686a2102200f210c200421122005211320042010542005200b5420061b0d000b0b20034190066a200736020020034188066a200136020020034184066a200836020020034194066a2003290380053702002003200f3703f005200341e0056a41186a20113703002003419c066a20034180056a41086a2202290300370200200341a4066a20034190056a290300370200200341ac066a20034180056a41186a290300370200200341b4066a200341a0056a2802003602002003202a3703e0052003201436028c062003200a36028006200320293703e805200f42ffc7afa0255620114200522011501b0d0120034180056a4108108206200320032900810537039003200320022800003600970320032d008005210202402003280284062201450d00200141186c450d00200328028006102e0b20032802900641ffffffff0371450d00200328028c06102e0b200320032800a8043602e00220032003290390033703f00220032003280097033600f7022003200341ab046a2800003600e302200041186a41003a000020004200370308200020032802e0023600192000411c6a20032800e302360000200041206a20023a0000200020032903f002370021200041286a20032800f702360000200042013703000c210b42f3e885db96cddbb32020034198066a202a2029411f108506200341e0046a200341e0056a10d20520033502880642d086037e210402402003280284062202450d00200241186c450d00200328028006102e0b20044280f3e893017c2104024020032802900641ffffffff0371450d00200328028c06102e0b200320032800a8043602e0022003200341ab046a2800003600e302200041186a41003a0000200041106a200437030020004201370308200020032802e0023600192000411c6a20032800e302360000200042003703000c200b200341e0026a410c1082060c040b200341023a00e0020c040b0240201a450d002015201a41306c6a2109200341e0056a41146a2106200341e9056a210a20034180046a41086a210e20034198066a210d201521020340200341c0006a201020112002290300200241086a290300200c200f108205ad2204420010e808200341d0006a200241106a220120032903402205201220047e2204428094ebdc0380a7417f2004428080808080c0b2cd3b541b2004428094ebdc03824280cab5ee01566aad7c2204200341c0006a41086a2903002004200554ad7c10890620034180046a41106a200341d0006a41106a290300220537030020032003290358220b3703880420032003290350220437038004024002402004a74101470d002003200b3703d803200320053703e00320012f000021082003418c036a41026a200241126a2d000022073a0000200320083b01d805200320073a00da05200320083b018c03200241136a2900002104200a20083b0000200a41026a20073a0000200341013a00e805200341043a00e005200320043702ec052002412b6a28000021082002412f6a2d00002107200241236a290000210420062002411b6a290000370000200641086a2004370000200d2005370300200641146a20073a0000200641106a20083600002003200b37039006200341e0056a10fe012003200341d8036a3602e005200341e0056a10ce020c010b20044201520d002003200e3602e005200341e0056a10ce020b200141206a22022009470d000b0b200341063a00e002201810bc02024020172016722202450d00200241306c450d002015102e0b024020032802a4052202450d00200241186c450d0020032802a005102e0b20032802b00541ffffffff0371450d0220032802ac05102e0c020b200341e0026a41021082060c010b0240200328029403450d00200e102e0b200341e0026a41011082060b20032d00e0024106460d0120032902e40221040b20032802e002210220002004370024200041206a2002360000200041186a41003a000020004200370308200042013703000c190b20004200370308200020032800d802360019200041186a41003a00002000411c6a200341db026a280000360000200042003703000c180b0240201a41ffffffff0371450d002019102e0b201720016a2101200341e0056a201b10f90520032802e0052102200320032802e805360284052003200236028005200341b8046a20034180056a10b101024020032802e405450d002002102e0b02402001450d00201841306a210203400240200241746a2802002201450d00200141306c450d00200241706a280200102e0b0240200228020041ffffff3f71450d002002417c6a280200102e0b200241d8006a2102200641a87f6a22060d000b0b0240201c450d00201c41d8006c450d002018102e0b200341063a0080040c030b4110102c2202450d14200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1420014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220636020020060d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22062006280200417f6a220636020020060d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200341023a0080040b0240201a41ffffffff0371450d002019102e0b20032d0080044106460d0020032802800421022000200329028404370024200041206a2002360000200041186a41003a000020004200370308200042013703000c140b20004200370308200020032800d803360019200041186a41003a00002000411c6a200341db036a280000360000200042003703000c130b200341d8036a41026a20034180046a41026a2d000022013a0000200320032f01800422063b01d803200041206a20023a0000200041186a41003a000020004200370308200020063b0021200041236a20013a000020002004370024200042013703000c120b200341063a00a8040b20004200370308200020032800e002360019200041186a41003a00002000411c6a200341e3026a280000360000200042003703000c100b20032802f002210220002004370024200041206a2002360000200041186a41003a000020004200370308200042013703000c0f0b20004200370308200020032800a804360019200041186a41003a00002000411c6a200341ab046a280000360000200042003703000c0e0b200328029003210220002004370024200041206a2002360000200041186a41003a000020004200370308200042013703000c0d0b20004200370308200020032800f002360019200041186a41003a00002000411c6a200341f3026a280000360000200042003703000c0c0b20004200370308200020032800d802360019200041186a41003a00002000411c6a200341db026a280000360000200042003703000c0b0b200328029003210220002004370024200041206a2002360000200041186a41003a000020004200370308200042013703000c0a0b20004200370308200020032800f002360019200041186a41003a00002000411c6a200341f3026a280000360000200042003703000c090b02402010200329038005220c58200f20034180056a41086a290300220458200f2004511b0d0020034190066a2010200c7d370300200341e0056a41086a41073a0000200341e9056a20032903b804370000200341f1056a200341b8046a41086a290300370000200341f9056a200341c8046a29030037000020034181066a200341d0046a29030037000020034198066a200f20047d2010200c54ad7d370300200341043a00e005200341e0056a10fe010b024020032802a4052202450d00200241186c450d0020032802a005102e0b024020032802b00541ffffffff0371450d0020032802ac05102e0b200320032800a8043602e0022003200341ab046a2800003600e302200041186a41003a0000200041106a20053703002000200b370308200020032802e0023600192000411c6a20032800e302360000200042003703000c080b1038000b20032d00a8044106460d0120032902ac0421040b20032802a804210220002004370024200041206a2002360000200041186a41003a000020004200370308200042013703000c050b20004200370308200020032800e002360019200041186a41003a00002000411c6a200341e3026a280000360000200042003703000c040b20032d00f0024106460d0020032802f0022102200020032902f402370024200041206a2002360000200041186a41003a000020004200370308200042013703000c030b20004200370308200020032800a804360019200041186a41003a00002000411c6a200341ab046a280000360000200042003703000c020b1036000b20004200370308200020032800e002360019200041186a41003a00002000411c6a200341e3026a280000360000200042003703000b200341e0066a24000bac0401047f230041c0006b2202240041d6a2c50021034109210441132105024002400240024002400240024002400240024002400240024002400240024002400240024002400240200141ff01710e15000102030405060708090a0b0c0d0e0f1011121314000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a41ec8fcc001044000b41c9a2c5002103410d2104410021050c120b41c1a2c500210341082104410121050c110b41b4a2c5002103410d2104410221050c100b41a7a2c5002103410d2104410321050c0f0b419ba2c5002103410c2104410421050c0e0b418da2c5002103410e2104410521050c0d0b41fca1c500210341112104410621050c0c0b41eba1c500210341112104410721050c0b0b41dfa1c5002103410c2104410821050c0a0b41d2a1c5002103410d2104410921050c090b41c6a1c5002103410c2104410a21050c080b41b4a1c500210341122104410b21050c070b419aa1c5002103411a2104410c21050c060b4188a1c500210341122104410d21050c050b41faa0c5002103410e2105410e21040c040b41e5a0c500210341152104410f21050c030b41cfa0c500210341162104411021050c020b41c7a0c500210341082104411121050c010b41b9a0c5002103410e2104411221050b200041830e3b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000b9c0203057f017e017f23004180026b22012400200141086a200010c802200141e0006a200128020822022001280210220310c902200141b4016a2802002104200141b0016a2802002100200141ac016a280200210520012903602106200141b8016a200141e8006a41c40010e9081a0240024020064201510d00200141186a410041c40010eb081a410121000c010b200141186a200141b8016a41c40010e9081a024020000d00410121000c010b200141e8006a200141186a41c40010e9082107200141b4016a2004360200200141b0016a2000360200200141ac016a417f200541016a220020002005491b3602002001420137036020022003200710c805410021000b0240200128020c450d002002102e0b20014180026a240020000bb10201037f230041e0006b22022400200241086a4192fdc6004107108102200241186a41a8acc6004105108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000bee06020a7f017e230022052106200541a0016b41607122052400200520003703180240024002402002200384500d00200520023703202005200037033020052003370328200541004102410120044101711b200441ff01714101461b3a003820054180016a200110d40620052802840121072005280280012208210902402005280288012204450d00200820044105746a210a200541e0006a41196a210b20082104200821090340200541c8006a41106a220c200441106a290300370300200541c8006a41086a220d200441086a29030037030020052004290300370348200441186a2d0000210e2005200441196a28000036024020052004411c6a280000360043200e4103460d01200b2005280240360000200b41036a2005280043360000200541e0006a41106a200c2903002202370300200520052903483703602005200e3a00782005200d2903003703680240024020022005290318520d00200541033a0098012005290330210320052005290390013703302005290328210020052005290388013703282005290320210f20052005290380013703202005290338210220052005290398013703382002a7210e0c010b200541e0006a41186a2903002202a7210e20052903702103200529036821002005290360210f0b0240200e41ff01714103460d002009200f3703002009200037030820092003370310200941186a2002370300200941206a21090b200441206a2204200a470d000b0b200920086b41057521040240024020052d00384103470d00200721050c010b2005290338210220052903302103200529032821002005290320210f0240024020042007460d0020072105200421070c010b200741016a22042007490d04200741017422092004200920044b1b22044104200441044b1b220441ffffff3f712004464103742109200441057421040240024020070d0020054100360280010c010b20054180016a41086a4108360200200520083602800120052007410574360284010b200541e0006a2004200920054180016a107d200541e8006a280200210420052802604101460d0320052802642108200441057621050b200820074105746a22042003370310200420003703082004200f370300200441186a2002370300200741016a21040b20012008200410d506200541ffffff3f71450d002008102e0b200624000f0b2004450d001036000b1038000bd20801087f230041c0016b22032400200341e8006a200110e50520034198016a20032802682204200328027010f402200341f8006a41086a2205200341a2016a290100370300200341f8006a41106a2206200341aa016a290100370300200341f8006a41176a2207200341b1016a2900003700002003200329019a01370378024002400240024020032d0098014101470d0020032d0099012108200341c8006a41176a2007290000370000200341c8006a41106a2006290300370300200341c8006a41086a2005290300370300200320032903783703480240200328026c450d002004102e0b200341286a41176a2204200341c8006a41176a290000370000200341286a41106a2205200341c8006a41106a290300370300200341116a200341d0006a290300370000200341196a2005290300370000200341206a2004290000370000200320083a00082003200329034837000920034198016a200110ce050240024020032802a4012209450d0020032802a801210a024002400240200341ac016a28020022044102742205417c6a41027641026a410120041b20024d0d00200341c8006a4111108206200a41ffffffff03710d010c020b200328029801210220034198016a200110cf05200328029801220420032802a00110ff010240200328029c01450d002004102e0b200920056a2108410021042009210620022107024003402004417e712105410221040240024020054102460d00200221050c010b2006450d0220082006460d02200641046a2106410321042007417f6a220721050b20034198016a41186a200141186a29000037030020034198016a41106a200141106a29000037030020034198016a41086a200141086a290000370300200320053602b8012003200129000037039801200341f8006a20034198016a10cd052003280278220520032802800110ff01200328027c450d002005102e0c000b0b200341063a0048200a41ffffffff0371450d030b2009102e0b200320032900493703282003200341c8006a41086a28000036002f20032d004822044106470d030c040b200341063a00480b200320032900493703282003200341d0006a28000036002f0c020b0240200328026c450d002004102e0b200041021082060c020b200020043a000020002003290328370001200041086a200328002f3600000c010b20034198016a200110e505200328029801220420032802a00110ff010240200328029c01450d002004102e0b20034198016a200341086a10d305200328029801220420032802a00110ff010240200328029c01450d002004102e0b20034198016a2001108406200328029801220420032802a00110ff010240200328029c01450d002004102e0b20034198016a2001108605200328029801220420032802a00110ff010240200328029c01450d002004102e0b20034198016a200110d105200328029801220420032802a00110ff010240200328029c01450d002004102e0b2001108a06200041063a00000b200341c0016a24000b970401087f230041e0006b220324002003200236020c20032001360208200341106a2001200210ed0202400240200328021022010d00200041023a00100c010b200328021421042003200341186a280200360224200320013602202003200341206a10ab01024002400240024002402003280200450d00200341003602480c010b200341c8006a200341206a200328020410920120032802482205450d00200328024c21060240200328022422024104490d00200341d0006a280200210720032802202208280000210920032002417c6a220a3602242003200841046a2208360220200a450d0020082d0000210a20032002417b6a3602242003200841016a36022041002102200a0e020302000b200641ffffff3f71450d002005102e0b20034100360230200342013703282003410a36023c2003200341086a3602382003200341286a360244200341dc006a41013602002003420137024c200341909dc5003602482003200341386a360258200341c4006a419cebc000200341c8006a103d1a2003280228200328023010ef020240200328022c450d002003280228102e0b410221020c020b410121020b200341c8006a41026a200341286a41026a2d000022083a0000200320032f0028220a3b01482000200936020c2000200736020820002006360204200020053602002000200a3b0011200041136a20083a00000b200020023a00102004450d002001102e0b200341e0006a24000bbd0a020a7f017e230041c0016b2202240002400240024020012802082203200128020c460d00200128021421042001200341246a3602082002413c6a41026a2205200341036a2d00003a0000200241286a41086a2206200341186a290000370300200241286a41106a2207200341206a2d00003a0000200220032f00013b013c2002200341106a29000037032820032d000022084105470d010b410021030c010b2003410c6a2800002109200341086a280000210a200341046a280000210b20024188016a41026a20052d00003a0000200241a0016a41086a2006290300370300200241a0016a41106a20072d00003a0000200220022f013c3b018801200220022903283703a001024002400240024020084107710e03020100010b200a450d00200b102e0b4101210b410121030c010b20024184016a41026a20024188016a41026a2d000022033a0000200241f0006a41086a200241a0016a41086a290300220c370300200241f0006a41106a200241a0016a41106a2d000022053a0000200241ec006a41026a20033a0000200241d8006a41086a200c370300200241d8006a41106a20053a0000200220022f01880122033b018401200220022903a001220c370370200220033b016c2002200c370358410021030b2001280210210120024184016a41026a2205200241ec006a41026a2d00003a0000200241f0006a41086a2206200241d8006a41086a290300370300200241f0006a41106a2207200241d8006a41106a2d00003a0000200220022f016c3b0184012002200229035837037002400240024002402003450d00200b2103200a2101200921050c010b200241b7016a2006290300370000200241bf016a20072d00003a0000200220022f0184013b01a001200220093600ab012002200a3600a7012002200b3600a301200220022903703700af01200220052d00003a00a2012001280208410574210320012802002101200241af016a2106024003402003450d01200341606a21032001200241a0016a412010ec082105200141206a210120050d000c030b0b20024188016a200241a0016a108605200241086a200228028801220120022802900110870520022d000c41017121030240200228028c01450d002001102e0b2003450d0120024188016a411410820620024190016a2802002105200228028c01210120022802880121030b200420053602082004200136020420042003360200410021060c010b2002419c016a41026a20022d00a20122033a000020024188016a41086a200641086a290000220c37030020024188016a41106a200641106a2d000022013a0000200241d4006a41026a20033a0000200241c0006a41086a200c370300200241c0006a41106a20013a0000200220022f01a00122033b019c0120022006290000220c37038801200220033b01542002200c370340410121060b200241246a41026a200241d4006a41026a2d000022033a0000200241106a41086a2201200241c0006a41086a290300370300200241106a41106a2205200241c0006a41106a2d00003a0000200220022f015422043b01242002200229034037031020024188016a41026a220720033a0000200220043b018801200241a0016a41106a220420052d00003a0000200241a0016a41086a22052001290300370300200220022903103703a001410021032006450d00200020022f0188013b00012000410c6a2009360000200041086a200a360000200041046a200b360000200041106a20022903a001370000200041036a20072d00003a0000200041186a2005290300370000200041206a20042d00003a0000410121030b200020033a0000200241c0016a24000bfb1904057f037e077f057e230041d0036b22042400200441c0006a2001108406200428024021052004200428024822063602bc01200420053602b801200441f8006a2005200610ed0241052106024020042802782207450d00200428027c2108200420044180016a28020022063602fc01200420073602f80102400240024002402006450d0020042006417f6a3602fc012004200741016a3602f8014100210602400240024020072d00000e050504000102030b410221060c040b200441f8026a200441f8016a10930120042d00f8024101460d01200441b0026a20044191036a290000370300200441a8026a20044189036a290000370300200441a0026a20044181036a290000370300200420042900f90237039802410321060c030b410421060c020b200441003602a00220044201370398022004410a3602dc022004200441b8016a3602d802200420044198026a3602202004418c036a4101360200200442013702fc02200441909dc5003602f8022004200441d8026a36028803200441206a419cebc000200441f8026a103d1a20042802980220042802a00210ef020240200428029c02450d00200428029802102e0b410521060c020b410121060b200441d8016a41186a20044198026a41186a2903002209370300200441d8016a41106a20044198026a41106a290300220a370300200441d8016a41086a20044198026a41086a290300220b370300200441f8026a41086a200b370300200441f8026a41106a200a370300200441f8026a41186a2009370300200420042903980222093703d801200420093703f8020b2008450d002007102e0b200441d8016a41186a2208200441f8026a41186a290300370300200441d8016a41106a220c200441f8026a41106a290300370300200441d8016a41086a220d200441f8026a41086a290300370300200420042903f8023703d80141002107024020064105460d00200441206a41186a2008290300370300200441206a41106a200c290300370300200441206a41086a200d290300370300200420042903d801370320200621070b02402004280244450d002005102e0b4200210b024002400240024002400240024020070e050201000306020b200441f8006a200110e505200441f8026a2004280278220520042802800110f402200441d8016a41086a220620044181036a290000370300200441d8016a41106a220720044189036a290000370300200441d8016a41186a220120044191036a290000370300200420042900f9023703d801024020042d00f8024101470d0020044198026a41186a200129030037030020044198026a41106a200729030037030020044198026a41086a2006290300370300200420042903d801370398020240200428027c450d002005102e0b200441f8026a41186a20044198026a41186a290300370300200441f8026a41106a20044198026a41106a290300370300200441f8026a41086a20044198026a41086a29030037030020042004290398023703f8022004200441f8026a2002200310fd01200441086a290300210a200429030021090c040b0240200428027c450d002005102e0b0c050b200441f8026a200120022003108b0620043502f802420185210b20044188036a290300210a20044180036a29030021090c040b20044198026a200110e505200441f8026a200428029802220520042802a00210f402200441d8016a41086a220620044181036a290000370300200441d8016a41106a220720044189036a290000370300200441d8016a41186a220820044191036a290000370300200420042900f9023703d80102400240024020042d00f8024101470d00200441b8016a41186a2008290300370300200441b8016a41106a2007290300370300200441b8016a41086a2006290300370300200420042903d8013703b8010240200428029c02450d002005102e0b200441f8016a41186a200441b8016a41186a290300370300200441f8016a41106a200441b8016a41106a290300370300200441f8016a41086a200441b8016a41086a290300370300200420042903b8013703f801200441d8016a200441f8016a10d305200441f8026a20042802d801220620042802e00110e605200441f8006a41086a2207200441f8026a41086a290300370300200441f8006a41106a2208200441f8026a41106a290300370300200441f8006a41186a220c200441f8026a41186a29030037030020044198026a41086a220d200441a4036a29020037030020044198026a41106a220e200441ac036a29020037030020044198026a41186a220f200441b4036a29020037030020044198026a41206a2210200441bc036a29020037030020044198026a41286a2211200441c4036a29020037030020044198026a41306a2212200441cc036a280200360200200420042903f8023703782004200429029c03370398022004280298032205450d01200441d8026a41186a200c290300370300200441d8026a41106a2008290300370300200441d8026a41086a2007290300370300200441c0006a41086a200d290300370300200441c0006a41106a200e290300370300200441c0006a41186a200f290300370300200441c0006a41206a2010290300370300200441c0006a41286a2011290300370300200441c0006a41306a2012280200360200200420042903783703d8022004200429039802370340024020042802dc01450d002006102e0b200441d8016a41186a200441f8016a41186a2903002209370300200441d8016a41106a200441f8016a41106a290300220a370300200441d8016a41086a200441f8016a41086a290300220b370300200420042903f80122133703d801200441f8026a41186a2009370300200441f8026a41106a200a370300200441f8026a41086a200b370300200441f8026a41286a200441d8026a41086a2903002214370300200441f8026a41306a200441d8026a41106a2903002215370300200441f8026a41386a200441d8026a41186a2903002216370300200420133703f802200420042903d802221737039803200441f8006a41386a2016370300200441f8006a41306a2015370300200441f8006a41286a201437030020044198016a2017370300200441f8006a41186a2009370300200441f8006a41106a200a370300200441f8006a41086a200b370300200420133703780c020b200428029c02450d042005102e0c040b024020042802dc01450d002006102e0b200441d8016a41186a200441f8016a41186a290300370300200441d8016a41106a200441f8016a41106a290300370300200441d8016a41086a200441f8016a41086a290300370300200420042903f8013703d8010b2005450d0220044198026a41386a2207200441f8006a41386a29030037030020044198026a41306a2208200441f8006a41306a29030037030020044198026a41286a220c200441f8006a41286a29030037030020044198026a41206a220d200441f8006a41206a29030037030020044198026a41186a200441f8006a41186a220629030037030020044198026a41106a200441f8006a41106a220e29030037030020044198026a41086a200441f8006a41086a220f2903003703002004200429037837039802200441d8026a41186a2006290300370300200441d8026a41106a200e290300370300200441d8026a41086a200f290300370300200420042903783703d802200441f8026a41186a22062007290300370300200441f8026a41106a22072008290300370300200441f8026a41086a2208200c29030037030020042005360298032004200d2903003703f8022004419c036a22052004290340370200200441a4036a200441c0006a41086a290300370200200441ac036a200441c0006a41106a290300370200200441b4036a200441c0006a41186a290300370200200441bc036a200441c0006a41206a290300370200200441c4036a200441c0006a41286a290300370200200441cc036a200441c0006a41306a2802003602002006290300210920072007290300220a20027c220b3703002006200920037c200b200a54ad7c3703002008200829030020037c20042903f802220920027c220b200954ad7c22133703002004200b3703f802200441f8016a200120022003108b06200441f8016a41106a290300210a200441f8016a41086a290300210920043502f801210242f3e885db96cddbb320200441f8026a41386a200b2013411f108506200441d8026a200441f8026a10d205024020052802002205450d00200541186c450d00200428029803102e0b0240200441f8026a41306a28020041ffffffff0371450d0020042802a403102e0b2002420185210b0c030b200441f8026a41186a200441206a41186a290300370300200441f8026a41106a200441206a41106a290300370300200441f8026a41086a200441206a41086a290300370300200420042903203703f802200441106a200441f8026a2002200310fd01200441106a41086a290300210a200429031021090b4201210b0c010b4200210b0b200020093703082000200b370300200041106a200a370300200441d0036a24000bff0105027f017e017f017e017f23004180026b22012400200141086a200010c802200141e0006a200128020822002001280210220210c902200141b0016a2903002103200141ac016a280200210420012903602105200141b8016a200141e8006a41c40010e9081a02400240024020054201510d00200141186a410041c40010eb081a420021030c010b200141186a200141b8016a41c40010e9081a2004450d002004417f6a21040c010b410021040b200141e8006a200141186a41c40010e9082106200141b0016a2003370300200141ac016a20043602002001420137036020002002200610c8050240200128020c450d002000102e0b20014180026a24000bc21005027f0c7e037f017e017f230041b0026b220424000240024020022003844200520d0020004100360200200041106a4200370300200041086a42003703000c010b200441c0006a200110c802200441b0016a20042802402205200428024810c902200441b0016a41386a2903002106200441b0016a41306a2903002107200441b0016a41286a2903002108200441b0016a41206a2903002109200441b0016a41186a290300210a200441b0016a41106a290300210b200441f0016a290300210c20042903b801210d20042903b001210e20044180016a41086a20044180026a2903003703002004200441f8016a2903003703800102400240200e4201510d004200210c200441386a4200370300200441306a4200370300200441286a4200370300200441206a4200370300200441186a4200370300200441106a4200370300200441086a420037030020044200370300420021094200210842002107420021064200210d4200210b4200210a4200210f420021104200210e420021110c010b200441206a2008370300200441286a2007370300200441106a200a370300200441306a2006370300200420093703182004200d3703002004200c3703382004200b3703082008210f20072110200d210e200b21110b02402004280244450d002005102e0b02400240200e2011844200520d00200f2004290310842010200441186a29030084844200520d002004290330200441386a2903008450450d004200210e410021050c010b4201210e410121050b024002400240200e4201510d004280808080b001210241b4a4c70021054180801c21010c010b0240200d20027c220e200d542212200b20037c2012ad7c220d200b54200d200b511b450d0042808080808001210241a984ca0021054180800821010c010b200441d0016a2008370300200441d8016a2007370300200441e0016a2006370300200420093703c8012004200e3703b0012004200d3703b8012004200a3703c0014200210b2002422088a721122002a7211302400240427f200e200a7c22022002200e542214200d20097c2014ad7c2202200d542002200d511b22141b221142ffc7afa02556427f200220141b22024200522002501b0d00200e200a84200d20098484220b5021144200210a200b420052ad210b0c010b200441c0016a290300211520042903b801211020042903b001210f4201210a410121140b200441e8006a2002370300200441e0006a22162011370300200441d0006a200d3703002004200e3703482004200337037820042012360274200420133602702004200b3703582004420037034002400240024002402005200a420152720d00200420013602b0012001200441b0016a10bd060c010b024020054101732205200a420151720d00200420013602b0012001200441b0016a10be0641ff017122054103460d010240024020050e03010300010b200441f0006a2101024020140d00200420163602b001200441b0016a10cc020b200420013602b001200441b0016a10ce024104210541002101410021120c060b200441f8006a29030021092004290370210a0c030b200a4201522005710d010b20044190016a200110c802200441b0016a2004280290012212200428029801221310c90220042903b001210220044180016a41086a220520044180026a2903003703002004200441f8016a290300370380010240024020024201510d00200441a0016a41086a4200370300200442003703a0010c010b200441a0016a41086a200529030037030020042004290380013703a0010b200441f8016a20042903a00137030020044180026a200441a0016a41086a290300370300200442013703b001200441b0016a41386a20064200200a42015122051b370300200441e0016a2007420020051b370300200441b0016a41286a2008420020051b370300200441d0016a2009420020051b370300200441c8016a2015420020051b370300200441b0016a41106a2010420020051b370300200441f0016a200c420020051b3703002004200f420020051b3703b80120122013200441b0016a41086a10c8050240200428029401450d002012102e0b200441c0006a41286a2903002102200441c0006a41386a2903002109200429036021112004290370210a2004290358210b20042903404201520d0120042903482103200441e8016a200441c0006a41106a290300370300200441e0016a2003370300200441b0016a41086a41003a0000200441b9016a2001290000370000200441c1016a200141086a290000370000200441c9016a200141106a290000370000200441d1016a200141186a290000370000200441033a00b001200441b0016a10fe010c010b200441f8006a29030021092004290370210a0b02400240200b50450d004200210b0c010b200441b0016a41186a200141186a290000370300200441b0016a41106a200141106a290000370300200441b0016a41086a200141086a290000370300200420012900003703b0014201210b0b200441c0006a41186a200441b0016a41186a22012903002203370300200441c0006a41106a200441b0016a41106a2205290300220d370300200441c0006a41086a200441b0016a41086a2903002207370300200420042903b0012208370340200441e0016a2002370300200441d8016a22122011370300200520073703002001200d370300200441d0016a20033703002004200b3703b001200420083703b801200441b0016a10d204024020042903b001500d0020042012360200200410cc020b20004100360200200041106a2009370300200041086a200a3703000c020b20022005ad8421024103210541800a21120b200041086a200237020020004101360200200020014180801c71201241800e71722005723602040b200441b0026a24000bb50501047f230041c0006b220124002001410036022020014201370318024002400240024002400240200028020022020e050001020304050b200141013a0008200141186a200141086a41011074200028020421032000410c6a2802002204200141186a10760240200441286c2204450d00200320046a21040340200141186a2003412010742001200341206a290300370308200141186a200141086a41081074200341286a22032004470d000b0b2001200041106a280200360208200141186a200141086a410410740c040b200141023a0008200141186a200141086a4101107420012000280204360208200141186a200141086a41041074200041086a2802002103200041106a2802002204200141186a10760240200441286c2204450d00200320046a21040340200141186a2003412010742001200341206a290300370308200141186a200141086a41081074200341286a22032004470d000b0b2001200041146a280200360208200141186a200141086a410410740c030b200141033a0008200141186a200141086a410110742001200041086a290300370308200141186a200141086a410810740c020b200141043a0008200141186a200141086a4101107420012000280204360208200141186a200141086a410410740c010b200141053a0008200141186a200141086a4101107420012000280204360208200141186a200141086a410410740b200141136a200141186a41086a2802003600002001200129031837000b200141186a410c6a2001410f6a290000370000200141c6a4b9da04360019200141023a00182001200129000837001d200141186a10a50402400240024020020e020001020b200041086a2802002203450d01200341286c450d012000280204102e0c010b2000410c6a2802002203450d00200341286c450d00200041086a280200102e0b200141c0006a24000b9dc602140c7f017e017f017e057f017e087f017e017f017e087f017e017f027e017f017e017f017e017f017e230041c0026b220424002004200336020420012802042105200128020021060240024002400240024002400240200128020822030d004104210741002108410021090c010b2003410374210a20044198026a41026a210b200441e0006a41106a210c4100210d411b210e4100210841002109410421072006210f02400240024003404100210302402002280208200f2902002210a722114d0d00200b2002280200201141386c6a2203410a6a2d00003a0000200441e0006a41086a2003411f6a290000370300200c200341276a2d00003a0000200420032f00083b0198022004200341176a2900003703602003410f6a29000021122003410b6a2800002113410121030b41022114200441bc016a41026a20044198026a41026a2d00003a0000200441d8016a41086a2215200441e0006a41086a2216290300370300200441d8016a41106a2217200c2d00003a0000200420042f0198023b01bc01200420042903603703d8014101211102402003450d00200441206a41026a200441bc016a41026a2d00003a0000200441f0016a41086a2015290300370300200441f0016a41106a20172d00003a0000200420042f01bc013b0120200420042903d8013703f0014100211120122118201321140b200441dc006a41026a2203200441206a41026a22192d00003a0000200441c0016a41086a221a200441f0016a41086a221b290300370300200441c0016a41106a221c200441f0016a41106a221d2d00003a0000200420042f01203b015c200420042903f0013703c00120110d02200441d8006a41026a221e20032d00003a0000200441a0016a41086a221f201a290300370300200441a0016a41106a2220201c2d00003a0000200420042f015c3b0158200420042903c0013703a0014122102c2203450d094100211102402004280204221a2802082010422088a741ffff0371221c4d0d002019201a280200201c4105746a221141026a2d00003a00002016201141176a290000370300200c2011411f6a2d00003a0000200420112f00003b01202004201129000f3703602011290007212120112800032122410121110b4102211a200441bc016a41026a200441206a41026a2d00003a0000201520162903003703002017200c2d00003a0000200420042f01203b01bc01200420042903603703d8014101211602402011450d00200441086a41026a200441bc016a41026a2d00003a0000201b2015290300370300201d20172d00003a0000200420042f01bc013b0108200420042903d8013703f00141002116202121232022211a0b200441b8016a41026a2211200441086a41026a2d00003a000020044198026a41086a2215201b29030037030020044198026a41106a2217201d2d00003a0000200420042f01083b01b801200420042903f0013703980220160d01200320042f01b8013b0000200320233700072003201a360003200320042903980237000f200341ffff033b0120200341026a20112d00003a0000200341176a20152903003700002003411f6a20172d00003a0000200420042f01583b01542004201e2d00003a0056200441386a41106a221520202d00003a0000200441386a41086a2217201f290300370300200420042903a0013703380240024020082009470d00200d200841016a2211200d20114b1b22114104201141044b1bad422c7e2210422088a74541027421112010a7210902400240200e411b470d00200441003602600c010b20044104360268200420073602602004200e41656a3602640b200441f0016a20092011200441e0006a107d20042802f801211120042802f0014101460d0120042802f40121072011412c6e21090b200f41086a210f2007200e6a221141656a2003360200201141696a428180808010370200201141786a201837000020042d0056210320042f01542116201141746a2014360000201141716a221420163b0100201441026a20033a000020112004290338370000201141086a2017290300370000201141106a20152d00003a0000200d41026a210d200e412c6a210e200841016a2108200a41786a220a450d050c010b0b2011450d070c080b2000201a36020420004101360200200041086a20233702002003102e0c010b2000201436020420004101360200200041086a20183702000b4101210c0240200541ffffffff0171450d002006102e0b41012102410121164101211b4101211d4101211a4101210f410121154101211c4101210a410121174101210d410121144101210e4101211e0c010b0240200541ffffffff0171450d002006102e0b200141106a2802002124200128020c21250240200141146a2802002203450d002003410c6c21262008410174211b2008412c6c411b6a211420044198026a41026a2127200441e0006a41106a210e41002116024002400240024003400240202520166a220341066a2f0100221d41ffff03470d00200042013702000c050b200341086a2f0100210a200341046a2f0100210d4100211502402002280208200328020022034d0d0020272002280200200341386c6a2203410a6a2d00003a0000200441e0006a41086a2003411f6a290000370300200e200341276a2d00003a0000200420032f00083b0198022004200341176a2900003703602003410f6a29000021122003410b6a2800002128410121150b4102211a200441bc016a41026a20044198026a41026a2d00003a0000200441d8016a41086a2211200441e0006a41086a220f290300370300200441d8016a41106a220c200e2d00003a0000200420042f0198023b01bc01200420042903603703d8014101210302402015450d00200441c0016a41026a200441bc016a41026a2d00003a0000200441f0016a41086a2011290300370300200441f0016a41106a200c2d00003a0000200420042f01bc013b01c001200420042903d8013703f00141002103201221102028211a0b200441cc006a41026a221c200441c0016a41026a2d00003a0000200441386a41086a221e200441f0016a41086a2215290300370300200441386a41106a221f200441f0016a41106a22172d00003a0000200420042f01c0013b014c200420042903f00137033820030d02200441346a41026a2222201c2d00003a0000200441206a41086a220b201e290300370300200441206a41106a2206201f2d00003a0000200420042f014c3b01342004200429033837032041c400102c2203450d0a4100211c02402004280204221f2802082220200d4d0d002027201f280200200d4105746a220d41026a2d00003a0000200f200d41176a290000370300200e200d411f6a2d00003a00002004200d2f00003b0198022004200d29000f370360200d2900072121200d28000321294101211c0b4102211e200441bc016a41026a20044198026a41026a2d00003a00002011200f290300370300200c200e2d00003a0000200420042f0198023b01bc01200420042903603703d8014101210d0240201c450d00200441b8016a41026a200441bc016a41026a2d00003a0000201520112903003703002017200c2d00003a0000200420042f01bc013b01b801200420042903d8013703f0014100210d202121182029211e0b200441d4006a41026a221c200441b8016a41026a222a2d00003a0000200441c0016a41086a22192015290300370300200441c0016a41106a221320172d00003a0000200420042f01b8013b0154200420042903f0013703c001200d0d03200441d0006a41026a2205201c2d00003a0000200441a0016a41086a222b2019290300370300200441a0016a41106a221920132d00003a0000200420042f01543b0150200420042903c0013703a0014100210d02402020200a4d0d00202a201f280200200a4105746a220d41026a2d00003a0000200f200d41176a290000370300200e200d411f6a2d00003a00002004200d2f00003b01b8012004200d29000f370360200d290007212c200d280003212d4101210d0b4102211c200441bc016a41026a200441b8016a41026a2d00003a00002011200f290300370300200c200e2d00003a0000200420042f01b8013b01bc01200420042903603703d8014101210f0240200d450d00200441dc006a41026a200441bc016a41026a2d00003a0000201520112903003703002017200c2d00003a0000200420042f01bc013b015c200420042903d8013703f0014100210f202c2123202d211c0b200441d8006a41026a2211200441dc006a41026a2d00003a000020044198026a41086a220c201529030037030020044198026a41106a221520172d00003a0000200420042f015c3b0158200420042903f00137039802200f0d01200320042f01503b0100200320183700072003201e360003200320042903a00137000f2003201d3b0120200320042f01583b0022200341026a20052d00003a0000200341176a202b2903003700002003411f6a20192d00003a0000200341246a20112d00003a0000200320233700292003201c3600252003201d417f733b01422003200429039802370031200341396a200c290300370000200341c1006a20152d00003a0000200441086a41086a220c200b290300370300200441086a41106a220f20062d00003a0000200420042f01343b011c200420222d00003a001e200420042903203703080240024020082009470d00201b200841016a2211201b20114b1b22114104201141044b1bad422c7e222e422088a7454102742111202ea721150240024020080d00200441003602600c010b20044104360268200420073602602004201441656a3602640b200441f0016a20152011200441e0006a107d20042802f801211120042802f0014101460d0120042802f40121072011412c6e21090b200720146a221141656a2003360200201141696a428280808020370200201141786a201037000020042d001e210320042f011c2115201141746a201a360000201141716a221720153b0100201741026a20033a000020112004290308370000201141086a200c290300370000201141106a200f2d00003a0000201b41026a211b2014412c6a2114200841016a210820262016410c6a2216470d010c060b0b20110d090c080b2000201c36020420004101360200200041086a20233702002003102e0c020b2000201a36020420004101360200200041086a20103702000c010b2000201e36020420004101360200200041086a20183702002003102e0b4100211e4101210c02402024450d002024410c6c450d002025102e0b41012102410121164101211b4101211d4101211a4101210f410121154101211c4101210a410121174101210d410121144101210e0c010b02402024450d002024410c6c450d002025102e0b200128021821282001411c6a28020021270240200141206a2802002203450d00202820034104746a2125200441e0006a4102722116200441206a41086a21052028211e02400240024002400340201e2f010c211f201e28020021202004201e290204370320200441003b015c20044105360238200420053602dc012004200441386a3602e8012004200441046a3602e4012004200441dc006a3602e0012004200441206a3602d801200441e0006a200441d8016a108e060240024020042f01604101470d004122102c220f450d0c200f2016290100370100200f41206a201641206a221b2f01003b0100200f41186a201641186a221d290100370100200f41106a201641106a221a290100370100200f41086a201641086a221c29010037010020044198026a41106a200441d8016a41106a28020036020020044198026a41086a200441d8016a41086a290300370300200420042903d80137039802200441e0006a20044198026a108e06410121114101210e20042f01604101470d01410121114122210c4101210e02400340200441f0016a41206a2215201b2f01003b0100200441f0016a41186a2217201d290100370300200441f0016a41106a220d201a290100370300200441f0016a41086a2214201c290100370300200420162901003703f0010240200e2011470d00201141016a22032011490d0e2011410174220a2003200a20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7210a0240024020110d00200441003602c0010c010b200441023602c8012004200f3602c0012004201141226c3602c4010b200441a0016a200a2003200441c0016a107d20042802a801210320042802a0014101460d0220042802a401210f200341226e21110b200f200c6a220320042903f001370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441e0006a20044198026a108e0620042f01604101460d000c030b0b20030d0c0c0b0b410021114102210f4100210e0b0240200428023822034105460d00200429023c211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441a0016a41026a200c280200201f4105746a220341026a2d00003a0000200441e0006a41086a200341176a290000370300200441e0006a41106a2003411f6a2d00003a0000200420032f00003b01a0012004200329000f370360200329000721122003280003212b410121030b4102211a200441bc016a41026a200441a0016a41026a2d00003a0000200441d8016a41086a221b200441e0006a41086a221c290300370300200441d8016a41106a221d200441e0006a41106a220a2d00003a0000200420042f01a0013b01bc01200420042903603703d8014101210d02402003450d00200441386a41026a200441bc016a41026a2d00003a0000200441f0016a41086a201b290300370300200441f0016a41106a201d2d00003a0000200420042f01bc013b0138200420042903d8013703f0014100210d20122118202b211a0b200441086a41026a220c200441386a41026a221f2d00003a000020044198026a41086a2215200441f0016a41086a221929030037030020044198026a41106a2217200441f0016a41106a22132d00003a0000200420042f01383b0108200420042903f0013703980202400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441c0016a41086a220d2015290300370300200441c0016a41106a221420172d00003a0000200420042f01083b01b80120042004290398023703c001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d10201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602600c010b200441023602682004200f3602602004201141226c3602640b200441f0016a20062003200441e0006a107d20042802f801210320042802f0014101460d0120042802f401210f200341226e21060b200f201141226c6a22032018370007200b2d0000211120042f01b801210b2003201a3600032003200b3b0100200341026a20113a0000200320042903c00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441a0016a41026a2002280200202041386c6a2203410a6a2d00003a0000201c2003411f6a290000370300200a200341276a2d00003a0000200420032f00083b01a0012004200341176a2900003703602003410f6a29000021212003410b6a280000212a410121030b4102211a200441bc016a41026a200441a0016a41026a2d00003a0000201b201c290300370300201d200a2d00003a0000200420042f01a0013b01bc01200420042903603703d8014101211102402003450d00201f200441bc016a41026a2d00003a00002019201b2903003703002013201d2d00003a0000200420042f01bc013b0138200420042903d8013703f0014100211120212123202a211a0b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01383b0108200420042903f0013703980220110d07200d2015290300370300201420172d00003a0000200420042f01083b01b80120042004290398023703c0012004200c2d00003a00ba0120082009470d0420084101742203200841016a2211200320114b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7211120080d02200441003602600c030b20030d0f0c0e0b2000201a36020420004101360200200041086a20183702000c070b200441043602682004200736026020042008412c6c3602640b200441f0016a20112003200441e0006a107d20042802f801210320042802f0014101460d0120042802f40121072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a2023370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a201a3600002003411b6a20042903c001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201e41106a221e2025470d010c060b0b20030d090c080b2000201a36020420004101360200200041086a2023370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b4100210e4101210c0240202741ffffffff0071450d002028102e0b41012102410121164101211b4101211d4101211a4101210f410121154101211c4101210a410121174101210d410121144100211e0c010b0240202741ffffffff0071450d002028102e0b20012802242127200141286a2802002129024002402001412c6a2802002203450d002027200341146c6a2128200441e0006a4102722116200441206a410c6a2105200441206a41086a212b2027211e02400240024002400340201e2f0110211f201e2802002120201e2901042110202b201e410c6a28010036020020042010370320200441003b015c20044105360238200420053602dc012004200441386a3602e8012004200441046a3602e4012004200441dc006a3602e0012004200441206a3602d801200441e0006a200441d8016a108e060240024020042f01604101470d004122102c220f450d0d200f2016290100370100200f41206a201641206a221b2f01003b0100200f41186a201641186a221d290100370100200f41106a201641106a221a290100370100200f41086a201641086a221c29010037010020044198026a41106a200441d8016a41106a28020036020020044198026a41086a200441d8016a41086a290300370300200420042903d80137039802200441e0006a20044198026a108e06410121114101210e20042f01604101470d01410121114122210c4101210e02400340200441f0016a41206a2215201b2f01003b0100200441f0016a41186a2217201d290100370300200441f0016a41106a220d201a290100370300200441f0016a41086a2214201c290100370300200420162901003703f0010240200e2011470d00201141016a22032011490d0f2011410174220a2003200a20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7210a0240024020110d00200441003602c0010c010b200441023602c8012004200f3602c0012004201141226c3602c4010b200441a0016a200a2003200441c0016a107d20042802a801210320042802a0014101460d0220042802a401210f200341226e21110b200f200c6a220320042903f001370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441e0006a20044198026a108e0620042f01604101460d000c030b0b20030d0d0c0c0b410021114102210f4100210e0b0240200428023822034105460d00200429023c211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441a0016a41026a200c280200201f4105746a220341026a2d00003a0000200441e0006a41086a200341176a290000370300200441e0006a41106a2003411f6a2d00003a0000200420032f00003b01a0012004200329000f370360200329000721122003280003212a410121030b4102211a200441bc016a41026a200441a0016a41026a2d00003a0000200441d8016a41086a221b200441e0006a41086a221c290300370300200441d8016a41106a221d200441e0006a41106a220a2d00003a0000200420042f01a0013b01bc01200420042903603703d8014101210d02402003450d00200441386a41026a200441bc016a41026a2d00003a0000200441f0016a41086a201b290300370300200441f0016a41106a201d2d00003a0000200420042f01bc013b0138200420042903d8013703f0014100210d20122118202a211a0b200441086a41026a220c200441386a41026a221f2d00003a000020044198026a41086a2215200441f0016a41086a221929030037030020044198026a41106a2217200441f0016a41106a22132d00003a0000200420042f01383b0108200420042903f0013703980202400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441c0016a41086a220d2015290300370300200441c0016a41106a221420172d00003a0000200420042f01083b01b80120042004290398023703c001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d11201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602600c010b200441023602682004200f3602602004201141226c3602640b200441f0016a20062003200441e0006a107d20042802f801210320042802f0014101460d0120042802f401210f200341226e21060b200f201141226c6a22032018370007200b2d0000211120042f01b801210b2003201a3600032003200b3b0100200341026a20113a0000200320042903c00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441a0016a41026a2002280200202041386c6a2203410a6a2d00003a0000201c2003411f6a290000370300200a200341276a2d00003a0000200420032f00083b01a0012004200341176a2900003703602003410f6a29000021212003410b6a2800002125410121030b41022111200441bc016a41026a200441a0016a41026a2d00003a0000201b201c290300370300201d200a2d00003a0000200420042f01a0013b01bc01200420042903603703d8014101211a02402003450d00201f200441bc016a41026a2d00003a00002019201b2903003703002013201d2d00003a0000200420042f01bc013b0138200420042903d8013703f0014100211a20212123202521110b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01383b0108200420042903f00137039802201a0d07200d2015290300370300201420172d00003a0000200420042f01083b01b80120042004290398023703c0012004200c2d00003a00ba0120082009470d0420084101742203200841016a220c2003200c4b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7210c20080d02200441003602600c030b20030d100c0f0b2000201a36020420004101360200200041086a20183702000c070b200441043602682004200736026020042008412c6c3602640b200441f0016a200c2003200441e0006a107d20042802f801210320042802f0014101460d0120042802f40121072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a2023370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a20113600002003411b6a20042903c001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201e41146a221e2028470d010c060b0b20030d0a0c090b2000201136020420004101360200200041086a2023370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b410021144101210c02402029450d00202941146c450d002027102e0b41012102410121164101211b4101211d4101211a4101210f410121154101211c4101210a410121174101210d0c010b02402029450d00202941146c450d002027102e0b20012802302127200141346a280200212902400240200141386a2802002203450d002027200341186c6a2128200441e0006a4102722116200441a0016a41106a2105200441a0016a41086a212b2027211e02400240024002400340201e2f0114211f201e2802002120201e2901042110202b201e410c6a290100370300200420103703a001200441003b015c20044105360220200420053602dc012004200441206a3602e8012004200441046a3602e4012004200441dc006a3602e0012004200441a0016a3602d801200441e0006a200441d8016a108e060240024020042f01604101470d004122102c220f450d0e200f2016290100370100200f41206a201641206a221b2f01003b0100200f41186a201641186a221d290100370100200f41106a201641106a221a290100370100200f41086a201641086a221c29010037010020044198026a41106a200441d8016a41106a28020036020020044198026a41086a200441d8016a41086a290300370300200420042903d80137039802200441e0006a20044198026a108e06410121114101210e20042f01604101470d01410121114122210c4101210e02400340200441f0016a41206a2215201b2f01003b0100200441f0016a41186a2217201d290100370300200441f0016a41106a220d201a290100370300200441f0016a41086a2214201c290100370300200420162901003703f0010240200e2011470d00201141016a22032011490d102011410174220a2003200a20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7210a0240024020110d00200441003602c0010c010b200441023602c8012004200f3602c0012004201141226c3602c4010b200441386a200a2003200441c0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a220320042903f001370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441e0006a20044198026a108e0620042f01604101460d000c030b0b20030d0e0c0d0b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441e0006a41086a200341176a290000370300200441e0006a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f370360200329000721122003280003212a410121030b4102211a200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221b200441e0006a41086a221c290300370300200441d8016a41106a221d200441e0006a41106a220a2d00003a0000200420042f01383b01bc01200420042903603703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a0000200441f0016a41086a201b290300370300200441f0016a41106a201d2d00003a0000200420042f01bc013b0120200420042903d8013703f0014100210d20122118202a211a0b200441086a41026a220c200441206a41026a221f2d00003a000020044198026a41086a2215200441f0016a41086a221929030037030020044198026a41106a2217200441f0016a41106a22132d00003a0000200420042f01203b0108200420042903f0013703980202400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441c0016a41086a220d2015290300370300200441c0016a41106a221420172d00003a0000200420042f01083b01b80120042004290398023703c001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d12201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602600c010b200441023602682004200f3602602004201141226c3602640b200441f0016a20062003200441e0006a107d20042802f801210320042802f0014101460d0120042802f401210f200341226e21060b200f201141226c6a22032018370007200b2d0000211120042f01b801210b2003201a3600032003200b3b0100200341026a20113a0000200320042903c00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000201c2003411f6a290000370300200a200341276a2d00003a0000200420032f00083b01382004200341176a2900003703602003410f6a29000021212003410b6a2800002125410121030b41022111200441bc016a41026a200441386a41026a2d00003a0000201b201c290300370300201d200a2d00003a0000200420042f01383b01bc01200420042903603703d8014101211a02402003450d00201f200441bc016a41026a2d00003a00002019201b2903003703002013201d2d00003a0000200420042f01bc013b0120200420042903d8013703f0014100211a20212123202521110b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b0108200420042903f00137039802201a0d07200d2015290300370300201420172d00003a0000200420042f01083b01b80120042004290398023703c0012004200c2d00003a00ba0120082009470d0420084101742203200841016a220c2003200c4b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7210c20080d02200441003602600c030b20030d110c100b2000201a36020420004101360200200041086a20183702000c070b200441043602682004200736026020042008412c6c3602640b200441f0016a200c2003200441e0006a107d20042802f801210320042802f0014101460d0120042802f40121072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a2023370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a20113600002003411b6a20042903c001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201e41186a221e2028470d010c060b0b20030d0b0c0a0b2000201136020420004101360200200041086a2023370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b4100210d4101210c02402029450d00202941186c450d002027102e0b41012102410121164101211b4101211d4101211a4101210f410121154101211c4101210a410121170c010b02402029450d00202941186c450d002027102e0b200128023c2129200141c0006a280200212d02400240200141c4006a2802002203450d0020292003411c6c6a2127200441e0006a4102722116200441c0016a41146a2105200441c0016a41106a212b200441c0016a41086a212a2029211e02400240024002400340201e2f0118211f201e2802002120201e410c6a2901002110201e2901042118202b201e41146a280100360200202a2010370300200420183703c001200441003b015c20044105360220200420053602dc012004200441206a3602e8012004200441046a3602e4012004200441dc006a3602e0012004200441c0016a3602d801200441e0006a200441d8016a108e060240024020042f01604101470d004122102c220f450d0f200f2016290100370100200f41206a201641206a221b2f01003b0100200f41186a201641186a221d290100370100200f41106a201641106a221a290100370100200f41086a201641086a221c29010037010020044198026a41106a200441d8016a41106a28020036020020044198026a41086a200441d8016a41086a290300370300200420042903d80137039802200441e0006a20044198026a108e06410121114101210e20042f01604101470d01410121114122210c4101210e02400340200441f0016a41206a2215201b2f01003b0100200441f0016a41186a2217201d290100370300200441f0016a41106a220d201a290100370300200441f0016a41086a2214201c290100370300200420162901003703f0010240200e2011470d00201141016a22032011490d112011410174220a2003200a20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7210a0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a200a2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a220320042903f001370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441e0006a20044198026a108e0620042f01604101460d000c030b0b20030d0f0c0e0b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441e0006a41086a200341176a290000370300200441e0006a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703602003290007212120032800032125410121030b4102211a200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221b200441e0006a41086a221c290300370300200441d8016a41106a221d200441e0006a41106a220a2d00003a0000200420042f01383b01bc01200420042903603703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a0000200441f0016a41086a201b290300370300200441f0016a41106a201d2d00003a0000200420042f01bc013b0120200420042903d8013703f0014100210d202121232025211a0b200441086a41026a220c200441206a41026a221f2d00003a000020044198026a41086a2215200441f0016a41086a221929030037030020044198026a41106a2217200441f0016a41106a22132d00003a0000200420042f01203b0108200420042903f0013703980202400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b80120042004290398023703a001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d13201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602600c010b200441023602682004200f3602602004201141226c3602640b200441f0016a20062003200441e0006a107d20042802f801210320042802f0014101460d0120042802f401210f200341226e21060b200f201141226c6a22032023370007200b2d0000211120042f01b801210b2003201a3600032003200b3b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000201c2003411f6a290000370300200a200341276a2d00003a0000200420032f00083b01382004200341176a2900003703602003410f6a290000212c2003410b6a2800002128410121030b41022111200441bc016a41026a200441386a41026a2d00003a0000201b201c290300370300201d200a2d00003a0000200420042f01383b01bc01200420042903603703d8014101211a02402003450d00201f200441bc016a41026a2d00003a00002019201b2903003703002013201d2d00003a0000200420042f01bc013b0120200420042903d8013703f0014100211a202c2112202821110b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b0108200420042903f00137039802201a0d07200d2015290300370300201420172d00003a0000200420042f01083b01b80120042004290398023703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d122008410174220c2003200c20034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7210c20080d02200441003602600c030b20030d120c110b2000201a36020420004101360200200041086a20233702000c070b200441043602682004200736026020042008412c6c3602640b200441f0016a200c2003200441e0006a107d20042802f801210320042802f0014101460d0120042802f40121072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a2012370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a20113600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201e411c6a221e2027470d010c060b0b20030d0c0c0b0b2000201136020420004101360200200041086a2012370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b410021174101210c0240202d450d00202d411c6c450d002029102e0b41012102410121164101211b4101211d4101211a4101210f410121154101211c4101210a0c010b0240202d450d00202d411c6c450d002029102e0b20012802482129200141cc006a280200212d02400240200141d0006a2802002203450d00202920034105746a2127200441e0006a410272211620044198026a41186a210520044198026a41106a212b20044198026a41086a212a2029211e02400240024002400340201e2f011c211f201e2802002120201e410c6a2901002110201e2901042118202b201e41146a290100370300202a20103703002004201837039802200441003b015c20044105360220200420053602c4012004200441206a3602d0012004200441046a3602cc012004200441dc006a3602c801200420044198026a3602c001200441e0006a200441c0016a108e060240024020042f01604101470d004122102c220f450d10200f2016290100370100200f41206a201641206a221b2f01003b0100200f41186a201641186a221d290100370100200f41106a201641106a221a290100370100200f41086a201641086a221c290100370100200441d8016a41106a200441c0016a41106a280200360200200441d8016a41086a200441c0016a41086a290300370300200420042903c0013703d801200441e0006a200441d8016a108e06410121114101210e20042f01604101470d01410121114122210c4101210e02400340200441f0016a41206a2215201b2f01003b0100200441f0016a41186a2217201d290100370300200441f0016a41106a220d201a290100370300200441f0016a41086a2214201c290100370300200420162901003703f0010240200e2011470d00201141016a22032011490d122011410174220a2003200a20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7210a0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a200a2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a220320042903f001370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441e0006a200441d8016a108e0620042f01604101460d000c030b0b20030d100c0f0b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441e0006a41086a200341176a290000370300200441e0006a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703602003290007212120032800032125410121030b4102211a200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221b200441e0006a41086a221c290300370300200441d8016a41106a221d200441e0006a41106a220a2d00003a0000200420042f01383b01bc01200420042903603703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a0000200441f0016a41086a201b290300370300200441f0016a41106a201d2d00003a0000200420042f01bc013b0120200420042903d8013703f0014100210d202121232025211a0b200441086a41026a220c200441206a41026a221f2d00003a0000200441c0016a41086a2215200441f0016a41086a2219290300370300200441c0016a41106a2217200441f0016a41106a22132d00003a0000200420042f01203b0108200420042903f0013703c00102400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b801200420042903c0013703a001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d14201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602600c010b200441023602682004200f3602602004201141226c3602640b200441f0016a20062003200441e0006a107d20042802f801210320042802f0014101460d0120042802f401210f200341226e21060b200f201141226c6a22032023370007200b2d0000211120042f01b801210b2003201a3600032003200b3b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000201c2003411f6a290000370300200a200341276a2d00003a0000200420032f00083b01382004200341176a2900003703602003410f6a290000212c2003410b6a2800002128410121030b41022111200441bc016a41026a200441386a41026a2d00003a0000201b201c290300370300201d200a2d00003a0000200420042f01383b01bc01200420042903603703d8014101211a02402003450d00201f200441bc016a41026a2d00003a00002019201b2903003703002013201d2d00003a0000200420042f01bc013b0120200420042903d8013703f0014100211a20282111202c21120b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b0108200420042903f0013703c001201a0d07200d2015290300370300201420172d00003a0000200420042f01083b01b801200420042903c0013703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d132008410174220c2003200c20034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7210c20080d02200441003602600c030b20030d130c120b2000201a36020420004101360200200041086a20233702000c070b200441043602682004200736026020042008412c6c3602640b200441f0016a200c2003200441e0006a107d20042802f801210320042802f0014101460d0120042802f40121072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a2012370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a20113600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201e41206a221e2027470d010c060b0b20030d0d0c0c0b2000201136020420004101360200200041086a2012370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b4100210a4101210c0240202d41ffffff3f71450d002029102e0b41012102410121164101211b4101211d4101211a4101210f410121154101211c0c010b0240202d41ffffff3f71450d002029102e0b2001280254212d200141d8006a280200212602400240200141dc006a2802002203450d00202d200341246c6a2129200441e0006a410272211620044198026a411c6a210520044198026a41186a212b20044198026a41106a212a20044198026a41086a2125202d211e02400240024002400340201e2f0120211f201e2802002120201e410c6a2901002110201e41146a2901002118201e2901042123202b201e411c6a280100360200202a2018370300202520103703002004202337039802200441003b015c20044105360220200420053602c4012004200441206a3602d0012004200441046a3602cc012004200441dc006a3602c801200420044198026a3602c001200441e0006a200441c0016a108e060240024020042f01604101470d004122102c220f450d11200f2016290100370100200f41206a201641206a221b2f01003b0100200f41186a201641186a221d290100370100200f41106a201641106a221a290100370100200f41086a201641086a221c290100370100200441d8016a41106a200441c0016a41106a280200360200200441d8016a41086a200441c0016a41086a290300370300200420042903c0013703d801200441e0006a200441d8016a108e06410121114101210e20042f01604101470d01410121114122210c4101210e02400340200441f0016a41206a2215201b2f01003b0100200441f0016a41186a2217201d290100370300200441f0016a41106a220d201a290100370300200441f0016a41086a2214201c290100370300200420162901003703f0010240200e2011470d00201141016a22032011490d132011410174220a2003200a20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7210a0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a200a2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a220320042903f001370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441e0006a200441d8016a108e0620042f01604101460d000c030b0b20030d110c100b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441e0006a41086a200341176a290000370300200441e0006a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703602003290007212c20032800032128410121030b4102211a200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221b200441e0006a41086a221c290300370300200441d8016a41106a221d200441e0006a41106a220a2d00003a0000200420042f01383b01bc01200420042903603703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a0000200441f0016a41086a201b290300370300200441f0016a41106a201d2d00003a0000200420042f01bc013b0120200420042903d8013703f0014100210d2028211a202c21120b200441086a41026a220c200441206a41026a221f2d00003a0000200441c0016a41086a2215200441f0016a41086a2219290300370300200441c0016a41106a2217200441f0016a41106a22132d00003a0000200420042f01203b0108200420042903f0013703c00102400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b801200420042903c0013703a001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d15201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602600c010b200441023602682004200f3602602004201141226c3602640b200441f0016a20062003200441e0006a107d20042802f801210320042802f0014101460d0120042802f401210f200341226e21060b200f201141226c6a22032012370007200b2d0000211120042f01b801210b2003201a3600032003200b3b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000201c2003411f6a290000370300200a200341276a2d00003a0000200420032f00083b01382004200341176a2900003703602003410f6a290000212e2003410b6a2800002127410121030b41022111200441bc016a41026a200441386a41026a2d00003a0000201b201c290300370300201d200a2d00003a0000200420042f01383b01bc01200420042903603703d8014101211a02402003450d00201f200441bc016a41026a2d00003a00002019201b2903003703002013201d2d00003a0000200420042f01bc013b0120200420042903d8013703f0014100211a20272111202e21210b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b0108200420042903f0013703c001201a0d07200d2015290300370300201420172d00003a0000200420042f01083b01b801200420042903c0013703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d142008410174220c2003200c20034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7210c20080d02200441003602600c030b20030d140c130b2000201a36020420004101360200200041086a20123702000c070b200441043602682004200736026020042008412c6c3602640b200441f0016a200c2003200441e0006a107d20042802f801210320042802f0014101460d0120042802f40121072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a2021370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a20113600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201e41246a221e2029470d010c060b0b20030d0e0c0d0b2000201136020420004101360200200041086a2021370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b4100211c4101210c02402026450d00202641246c450d00202d102e0b41012102410121164101211b4101211d4101211a4101210f410121150c010b02402026450d00202641246c450d00202d102e0b2001280260212d200141e4006a280200212602400240200141e8006a2802002203450d00202d200341286c6a2129200441e0006a410272211620044198026a41206a210520044198026a41186a212b20044198026a41106a212a20044198026a41086a2125202d211e02400240024002400340201e2f0124211f201e2802002120201e410c6a2901002110201e41146a2901002118201e2901042123202b201e411c6a290100370300202a2018370300202520103703002004202337039802200441003b015c20044105360220200420053602c4012004200441206a3602d0012004200441046a3602cc012004200441dc006a3602c801200420044198026a3602c001200441e0006a200441c0016a108e060240024020042f01604101470d004122102c220f450d12200f2016290100370100200f41206a201641206a221b2f01003b0100200f41186a201641186a221d290100370100200f41106a201641106a221a290100370100200f41086a201641086a221c290100370100200441d8016a41106a200441c0016a41106a280200360200200441d8016a41086a200441c0016a41086a290300370300200420042903c0013703d801200441e0006a200441d8016a108e06410121114101210e20042f01604101470d01410121114122210c4101210e02400340200441f0016a41206a2215201b2f01003b0100200441f0016a41186a2217201d290100370300200441f0016a41106a220d201a290100370300200441f0016a41086a2214201c290100370300200420162901003703f0010240200e2011470d00201141016a22032011490d142011410174220a2003200a20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7210a0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a200a2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a220320042903f001370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441e0006a200441d8016a108e0620042f01604101460d000c030b0b20030d120c110b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441e0006a41086a200341176a290000370300200441e0006a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703602003290007212c20032800032128410121030b4102211a200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221b200441e0006a41086a221c290300370300200441d8016a41106a221d200441e0006a41106a220a2d00003a0000200420042f01383b01bc01200420042903603703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a0000200441f0016a41086a201b290300370300200441f0016a41106a201d2d00003a0000200420042f01bc013b0120200420042903d8013703f0014100210d2028211a202c21120b200441086a41026a220c200441206a41026a221f2d00003a0000200441c0016a41086a2215200441f0016a41086a2219290300370300200441c0016a41106a2217200441f0016a41106a22132d00003a0000200420042f01203b0108200420042903f0013703c00102400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b801200420042903c0013703a001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d16201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602600c010b200441023602682004200f3602602004201141226c3602640b200441f0016a20062003200441e0006a107d20042802f801210320042802f0014101460d0120042802f401210f200341226e21060b200f201141226c6a22032012370007200b2d0000211120042f01b801210b2003201a3600032003200b3b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000201c2003411f6a290000370300200a200341276a2d00003a0000200420032f00083b01382004200341176a2900003703602003410f6a290000212e2003410b6a2800002127410121030b41022111200441bc016a41026a200441386a41026a2d00003a0000201b201c290300370300201d200a2d00003a0000200420042f01383b01bc01200420042903603703d8014101211a02402003450d00201f200441bc016a41026a2d00003a00002019201b2903003703002013201d2d00003a0000200420042f01bc013b0120200420042903d8013703f0014100211a20272111202e21210b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b0108200420042903f0013703c001201a0d07200d2015290300370300201420172d00003a0000200420042f01083b01b801200420042903c0013703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d152008410174220c2003200c20034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7210c20080d02200441003602600c030b20030d150c140b2000201a36020420004101360200200041086a20123702000c070b200441043602682004200736026020042008412c6c3602640b200441f0016a200c2003200441e0006a107d20042802f801210320042802f0014101460d0120042802f40121072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a2021370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a20113600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201e41286a221e2029470d010c060b0b20030d0f0c0e0b2000201136020420004101360200200041086a2021370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b410021154101210c02402026450d00202641286c450d00202d102e0b41012102410121164101211b4101211d4101211a4101210f0c010b02402026450d00202641286c450d00202d102e0b200128026c2126200141f0006a280200212402400240200141f4006a2802002203450d0020262003412c6c6a212d200441e0006a4102722116200441f0016a41246a2105200441f0016a41206a212b200441f0016a41186a212a200441f0016a41106a2125200441f0016a41086a21282026211b02400240024002400340201b2f0128211f201b2802002120201b410c6a2901002110201b41146a2901002118201b411c6a2901002123201b2901042112202b201b41246a280100360200202a20233703002025201837030020282010370300200420123703f001200441003b015c20044105360220200420053602c4012004200441206a3602d0012004200441046a3602cc012004200441dc006a3602c8012004200441f0016a3602c001200441e0006a200441c0016a108e060240024020042f01604101470d004122102c220f450d13200f2016290100370100200f41206a201641206a221d2f01003b0100200f41186a201641186a221a290100370100200f41106a201641106a221c290100370100200f41086a201641086a220a290100370100200441d8016a41106a200441c0016a41106a280200360200200441d8016a41086a200441c0016a41086a290300370300200420042903c0013703d801200441e0006a200441d8016a108e06410121114101210e20042f01604101470d01410121114122210c4101210e0240034020044198026a41206a2215201d2f01003b010020044198026a41186a2217201a29010037030020044198026a41106a220d201c29010037030020044198026a41086a2214200a29010037030020042016290100370398020240200e2011470d00201141016a22032011490d152011410174221e2003201e20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7211e0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a201e2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a2203200429039802370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441e0006a200441d8016a108e0620042f01604101460d000c030b0b20030d130c120b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441e0006a41086a200341176a290000370300200441e0006a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703602003290007212e20032800032127410121030b4102211c200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221d200441e0006a41086a220a290300370300200441d8016a41106a221a200441e0006a41106a221e2d00003a0000200420042f01383b01bc01200420042903603703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a000020044198026a41086a201d29030037030020044198026a41106a201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100210d2027211c202e21210b200441086a41026a220c200441206a41026a221f2d00003a0000200441c0016a41086a221520044198026a41086a2219290300370300200441c0016a41106a221720044198026a41106a22132d00003a0000200420042f01203b010820042004290398023703c00102400240024002400240200d0d00200441b8016a41026a2206200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b801200420042903c0013703a001024002400240200e2011460d002011210b200e21110c010b201141016a22032011490d172011410174220b2003200b20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7210b0240024020110d00200441003602600c010b200441023602682004200f3602602004201141226c3602640b20044198026a200b2003200441e0006a107d20042802a00221032004280298024101460d01200428029c02210f200341226e210b0b200f201141226c6a2203202137000720062d0000211120042f01b80121062003201c360003200320063b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000200a2003411f6a290000370300201e200341276a2d00003a0000200420032f00083b01382004200341176a2900003703602003410f6a290000212f2003410b6a2800002129410121030b4102211c200441bc016a41026a200441386a41026a2d00003a0000201d200a290300370300201a201e2d00003a0000200420042f01383b01bc01200420042903603703d8014101211102402003450d00201f200441bc016a41026a2d00003a00002019201d2903003703002013201a2d00003a0000200420042f01bc013b0120200420042903d80137039802410021112029211c202f212c0b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b010820042004290398023703c00120110d07200d2015290300370300201420172d00003a0000200420042f01083b01b801200420042903c0013703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d16200841017422112003201120034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7211120080d02200441003602600c030b20030d160c150b2000201c36020420004101360200200041086a20213702000c070b200441043602682004200736026020042008412c6c3602640b20044198026a20112003200441e0006a107d20042802a00221032004280298024101460d01200428029c0221072003412c6e21090b20072008412c6c6a2203200e41016a3602082003200b3602042003200f360200200341136a202c370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a201c3600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201b412c6a221b202d470d010c060b0b20030d100c0f0b2000201c36020420004101360200200041086a202c370200200b21110c010b200042013702000b2011450d00201141226c450d00200f102e0b4100210f4101210c02402024450d002024412c6c450d002026102e0b41012102410121164101211b4101211d4101211a0c010b02402024450d002024412c6c450d002026102e0b20012802782126200141fc006a28020021240240024020014180016a2802002203450d002026200341306c6a212d200441f0016a410272211620044188016a2105200441e0006a41206a212b200441e0006a41186a212a200441e0006a41106a2125200441e0006a41086a21282026211b02400240024002400340201b2f012c211f201b2802002120201b410c6a2901002110201b41146a2901002118201b411c6a2901002123201b2901042112202b201b41246a290100370300202a2023370300202520183703002028201037030020042012370360200441003b015c20044105360220200420053602c4012004200441206a3602d0012004200441046a3602cc012004200441dc006a3602c8012004200441e0006a3602c001200441f0016a200441c0016a108e060240024020042f01f0014101470d004122102c220f450d14200f2016290100370100200f41206a201641206a221d2f01003b0100200f41186a201641186a221a290100370100200f41106a201641106a221c290100370100200f41086a201641086a220a290100370100200441d8016a41106a200441c0016a41106a280200360200200441d8016a41086a200441c0016a41086a290300370300200420042903c0013703d801200441f0016a200441d8016a108e06410121114101210e20042f01f0014101470d01410121114122210c4101210e0240034020044198026a41206a2215201d2f01003b010020044198026a41186a2217201a29010037030020044198026a41106a220d201c29010037030020044198026a41086a2214200a29010037030020042016290100370398020240200e2011470d00201141016a22032011490d162011410174221e2003201e20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7211e0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a201e2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a2203200429039802370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441f0016a200441d8016a108e0620042f01f0014101460d000c030b0b20030d140c130b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441f0016a41086a200341176a290000370300200441f0016a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703f0012003290007212e20032800032127410121030b4102211c200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221d200441f0016a41086a220a290300370300200441d8016a41106a221a200441f0016a41106a221e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a000020044198026a41086a201d29030037030020044198026a41106a201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100210d2027211c202e21210b200441086a41026a220c200441206a41026a221f2d00003a0000200441c0016a41086a221520044198026a41086a2219290300370300200441c0016a41106a221720044198026a41106a22132d00003a0000200420042f01203b010820042004290398023703c00102400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b801200420042903c0013703a001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d18201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602f0010c010b200441023602f8012004200f3602f0012004201141226c3602f4010b20044198026a20062003200441f0016a107d20042802a00221032004280298024101460d01200428029c02210f200341226e21060b200f201141226c6a22032021370007200b2d0000211120042f01b801210b2003201c3600032003200b3b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000200a2003411f6a290000370300201e200341276a2d00003a0000200420032f00083b01382004200341176a2900003703f0012003410f6a290000212f2003410b6a2800002129410121030b41022111200441bc016a41026a200441386a41026a2d00003a0000201d200a290300370300201a201e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101211c02402003450d00201f200441bc016a41026a2d00003a00002019201d2903003703002013201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100211c20292111202f212c0b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b010820042004290398023703c001201c0d07200d2015290300370300201420172d00003a0000200420042f01083b01b801200420042903c0013703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d172008410174220c2003200c20034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7210c20080d02200441003602f0010c030b20030d170c160b2000201c36020420004101360200200041086a20213702000c070b200441043602f801200420073602f00120042008412c6c3602f4010b20044198026a200c2003200441f0016a107d20042802a00221032004280298024101460d01200428029c0221072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a202c370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a20113600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201b41306a221b202d470d010c060b0b20030d110c100b2000201136020420004101360200200041086a202c370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b4100211a4101210c02402024450d00202441306c450d002026102e0b41012102410121164101211b4101211d0c010b02402024450d00202441306c450d002026102e0b200128028401212420014188016a2802002130024002402001418c016a2802002203450d002024200341346c6a2126200441f0016a4102722116200441e0006a412c6a210520044188016a212b200441e0006a41206a212a200441e0006a41186a2125200441e0006a41106a2128200441e0006a41086a21272024211b02400240024002400340201b2f0130211f201b2802002120201b410c6a2901002110201b41146a2901002118201b411c6a2901002123201b41246a2901002112201b2901042121202b201b412c6a280100360200202a201237030020252023370300202820183703002027201037030020042021370360200441003b015c20044105360220200420053602c4012004200441206a3602d0012004200441046a3602cc012004200441dc006a3602c8012004200441e0006a3602c001200441f0016a200441c0016a108e060240024020042f01f0014101470d004122102c220f450d15200f2016290100370100200f41206a201641206a221d2f01003b0100200f41186a201641186a221a290100370100200f41106a201641106a221c290100370100200f41086a201641086a220a290100370100200441d8016a41106a200441c0016a41106a280200360200200441d8016a41086a200441c0016a41086a290300370300200420042903c0013703d801200441f0016a200441d8016a108e06410121114101210e20042f01f0014101470d01410121114122210c4101210e0240034020044198026a41206a2215201d2f01003b010020044198026a41186a2217201a29010037030020044198026a41106a220d201c29010037030020044198026a41086a2214200a29010037030020042016290100370398020240200e2011470d00201141016a22032011490d172011410174221e2003201e20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7211e0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a201e2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a2203200429039802370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441f0016a200441d8016a108e0620042f01f0014101460d000c030b0b20030d150c140b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441f0016a41086a200341176a290000370300200441f0016a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703f0012003290007212f20032800032129410121030b4102211c200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221d200441f0016a41086a220a290300370300200441d8016a41106a221a200441f0016a41106a221e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a000020044198026a41086a201d29030037030020044198026a41106a201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100210d2029211c202f212c0b200441086a41026a220c200441206a41026a221f2d00003a0000200441c0016a41086a221520044198026a41086a2219290300370300200441c0016a41106a221720044198026a41106a22132d00003a0000200420042f01203b010820042004290398023703c00102400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b801200420042903c0013703a001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d19201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602f0010c010b200441023602f8012004200f3602f0012004201141226c3602f4010b20044198026a20062003200441f0016a107d20042802a00221032004280298024101460d01200428029c02210f200341226e21060b200f201141226c6a2203202c370007200b2d0000211120042f01b801210b2003201c3600032003200b3b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000200a2003411f6a290000370300201e200341276a2d00003a0000200420032f00083b01382004200341176a2900003703f0012003410f6a29000021312003410b6a280000212d410121030b4102211c200441bc016a41026a200441386a41026a2d00003a0000201d200a290300370300201a201e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101211102402003450d00201f200441bc016a41026a2d00003a00002019201d2903003703002013201a2d00003a0000200420042f01bc013b0120200420042903d8013703980241002111202d211c2031212e0b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b010820042004290398023703c00120110d07200d2015290300370300201420172d00003a0000200420042f01083b01b801200420042903c0013703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d18200841017422112003201120034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7211120080d02200441003602f0010c030b20030d180c170b2000201c36020420004101360200200041086a202c3702000c070b200441043602f801200420073602f00120042008412c6c3602f4010b20044198026a20112003200441f0016a107d20042802a00221032004280298024101460d01200428029c0221072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a202e370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a201c3600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201b41346a221b2026470d010c060b0b20030d120c110b2000201c36020420004101360200200041086a202e370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b4100211d4101210c02402030450d00203041346c450d002024102e0b41012102410121164101211b0c010b02402030450d00203041346c450d002024102e0b200128029001212420014194016a28020021300240024020014198016a2802002203450d002024200341386c6a2126200441f0016a410272211620044190016a210520044188016a212b200441e0006a41206a212a200441e0006a41186a2125200441e0006a41106a2128200441e0006a41086a21272024211b02400240024002400340201b2f0134211f201b2802002120201b410c6a2901002110201b41146a2901002118201b411c6a2901002123201b41246a2901002112201b2901042121202b201b412c6a290100370300202a201237030020252023370300202820183703002027201037030020042021370360200441003b015c20044105360220200420053602c4012004200441206a3602d0012004200441046a3602cc012004200441dc006a3602c8012004200441e0006a3602c001200441f0016a200441c0016a108e060240024020042f01f0014101470d004122102c220f450d16200f2016290100370100200f41206a201641206a221d2f01003b0100200f41186a201641186a221a290100370100200f41106a201641106a221c290100370100200f41086a201641086a220a290100370100200441d8016a41106a200441c0016a41106a280200360200200441d8016a41086a200441c0016a41086a290300370300200420042903c0013703d801200441f0016a200441d8016a108e06410121114101210e20042f01f0014101470d01410121114122210c4101210e0240034020044198026a41206a2215201d2f01003b010020044198026a41186a2217201a29010037030020044198026a41106a220d201c29010037030020044198026a41086a2214200a29010037030020042016290100370398020240200e2011470d00201141016a22032011490d182011410174221e2003201e20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7211e0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a201e2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a2203200429039802370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441f0016a200441d8016a108e0620042f01f0014101460d000c030b0b20030d160c150b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441f0016a41086a200341176a290000370300200441f0016a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703f0012003290007212f20032800032129410121030b4102211c200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221d200441f0016a41086a220a290300370300200441d8016a41106a221a200441f0016a41106a221e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a000020044198026a41086a201d29030037030020044198026a41106a201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100210d2029211c202f212c0b200441086a41026a220c200441206a41026a221f2d00003a0000200441c0016a41086a221520044198026a41086a2219290300370300200441c0016a41106a221720044198026a41106a22132d00003a0000200420042f01203b010820042004290398023703c00102400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b801200420042903c0013703a001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d1a201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602f0010c010b200441023602f8012004200f3602f0012004201141226c3602f4010b20044198026a20062003200441f0016a107d20042802a00221032004280298024101460d01200428029c02210f200341226e21060b200f201141226c6a2203202c370007200b2d0000211120042f01b801210b2003201c3600032003200b3b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000200a2003411f6a290000370300201e200341276a2d00003a0000200420032f00083b01382004200341176a2900003703f0012003410f6a29000021312003410b6a280000212d410121030b41022111200441bc016a41026a200441386a41026a2d00003a0000201d200a290300370300201a201e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101211c02402003450d00201f200441bc016a41026a2d00003a00002019201d2903003703002013201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100211c202d21112031212e0b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b010820042004290398023703c001201c0d07200d2015290300370300201420172d00003a0000200420042f01083b01b801200420042903c0013703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d192008410174220c2003200c20034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7210c20080d02200441003602f0010c030b20030d190c180b2000201c36020420004101360200200041086a202c3702000c070b200441043602f801200420073602f00120042008412c6c3602f4010b20044198026a200c2003200441f0016a107d20042802a00221032004280298024101460d01200428029c0221072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a202e370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a20113600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201b41386a221b2026470d010c060b0b20030d130c120b2000201136020420004101360200200041086a202e370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b4100211b4101210c02402030450d00203041386c450d002024102e0b41012102410121160c010b02402030450d00203041386c450d002024102e0b200128029c012130200141a0016a280200213202400240200141a4016a2802002203450d0020302003413c6c6a2124200441f0016a410272211b200441e0006a41346a210520044190016a212b20044188016a212a200441e0006a41206a2125200441e0006a41186a2128200441e0006a41106a2127200441e0006a41086a2129203021160240024002400240034020162f0138211f201628020021202016410c6a2901002110201641146a29010021182016411c6a2901002123201641246a29010021122016412c6a29010021212016290104212c202b201641346a280100360200202a2021370300202520123703002028202337030020272018370300202920103703002004202c370360200441003b015c20044105360220200420053602c4012004200441206a3602d0012004200441046a3602cc012004200441dc006a3602c8012004200441e0006a3602c001200441f0016a200441c0016a108e060240024020042f01f0014101470d004122102c220f450d17200f201b290100370100200f41206a201b41206a221d2f01003b0100200f41186a201b41186a221a290100370100200f41106a201b41106a221c290100370100200f41086a201b41086a220a290100370100200441d8016a41106a200441c0016a41106a280200360200200441d8016a41086a200441c0016a41086a290300370300200420042903c0013703d801200441f0016a200441d8016a108e06410121114101210e20042f01f0014101470d01410121114122210c4101210e0240034020044198026a41206a2215201d2f01003b010020044198026a41186a2217201a29010037030020044198026a41106a220d201c29010037030020044198026a41086a2214200a2901003703002004201b290100370398020240200e2011470d00201141016a22032011490d192011410174221e2003201e20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7211e0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a201e2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a2203200429039802370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441f0016a200441d8016a108e0620042f01f0014101460d000c030b0b20030d170c160b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441f0016a41086a200341176a290000370300200441f0016a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703f001200329000721312003280003212d410121030b4102211c200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221d200441f0016a41086a220a290300370300200441d8016a41106a221a200441f0016a41106a221e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a000020044198026a41086a201d29030037030020044198026a41106a201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100210d202d211c2031212e0b200441086a41026a220c200441206a41026a221f2d00003a0000200441c0016a41086a221520044198026a41086a2219290300370300200441c0016a41106a221720044198026a41106a22132d00003a0000200420042f01203b010820042004290398023703c00102400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b801200420042903c0013703a001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d1b201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602f0010c010b200441023602f8012004200f3602f0012004201141226c3602f4010b20044198026a20062003200441f0016a107d20042802a00221032004280298024101460d01200428029c02210f200341226e21060b200f201141226c6a2203202e370007200b2d0000211120042f01b801210b2003201c3600032003200b3b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000200a2003411f6a290000370300201e200341276a2d00003a0000200420032f00083b01382004200341176a2900003703f0012003410f6a29000021332003410b6a2800002126410121030b4102211c200441bc016a41026a200441386a41026a2d00003a0000201d200a290300370300201a201e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101211102402003450d00201f200441bc016a41026a2d00003a00002019201d2903003703002013201a2d00003a0000200420042f01bc013b0120200420042903d80137039802410021112026211c2033212f0b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b010820042004290398023703c00120110d07200d2015290300370300201420172d00003a0000200420042f01083b01b801200420042903c0013703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d1a200841017422112003201120034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7211120080d02200441003602f0010c030b20030d1a0c190b2000201c36020420004101360200200041086a202e3702000c070b200441043602f801200420073602f00120042008412c6c3602f4010b20044198026a20112003200441f0016a107d20042802a00221032004280298024101460d01200428029c0221072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a202f370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a201c3600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a21082016413c6a22162024470d010c060b0b20030d140c130b2000201c36020420004101360200200041086a202f370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b410021164101210c02402032450d002032413c6c450d002030102e0b410121020c010b02402032450d002032413c6c450d002030102e0b20012802a8012130200141ac016a28020021320240200141b0016a2802002203450d00203020034106746a2124200441f0016a410272211b200441e0006a41386a210520044190016a212b20044188016a212a200441e0006a41206a2125200441e0006a41186a2128200441e0006a41106a2127200441e0006a41086a2129203021160240024002400240034020162f013c211f201628020021202016410c6a2901002110201641146a29010021182016411c6a2901002123201641246a29010021122016412c6a29010021212016290104212c202b201641346a290100370300202a2021370300202520123703002028202337030020272018370300202920103703002004202c370360200441003b015c20044105360220200420053602c4012004200441206a3602d0012004200441046a3602cc012004200441dc006a3602c8012004200441e0006a3602c001200441f0016a200441c0016a108e060240024020042f01f0014101470d004122102c220f450d17200f201b290100370100200f41206a201b41206a221d2f01003b0100200f41186a201b41186a221a290100370100200f41106a201b41106a221c290100370100200f41086a201b41086a220a290100370100200441d8016a41106a200441c0016a41106a280200360200200441d8016a41086a200441c0016a41086a290300370300200420042903c0013703d801200441f0016a200441d8016a108e06410121114101210e20042f01f0014101470d01410121114122210c4101210e0240034020044198026a41206a2215201d2f01003b010020044198026a41186a2217201a29010037030020044198026a41106a220d201c29010037030020044198026a41086a2214200a2901003703002004201b290100370398020240200e2011470d00201141016a22032011490d192011410174221e2003201e20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7211e0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a201e2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a2203200429039802370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441f0016a200441d8016a108e0620042f01f0014101460d000c030b0b20030d170c160b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441f0016a41086a200341176a290000370300200441f0016a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703f001200329000721312003280003212d410121030b4102211c200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221d200441f0016a41086a220a290300370300200441d8016a41106a221a200441f0016a41106a221e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a000020044198026a41086a201d29030037030020044198026a41106a201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100210d202d211c2031212e0b200441086a41026a220c200441206a41026a221f2d00003a0000200441c0016a41086a221520044198026a41086a2219290300370300200441c0016a41106a221720044198026a41106a22132d00003a0000200420042f01203b010820042004290398023703c00102400240024002400240200d0d00200441b8016a41026a2206200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b801200420042903c0013703a001024002400240200e2011460d002011210b200e21110c010b201141016a22032011490d1b2011410174220b2003200b20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7210b0240024020110d00200441003602f0010c010b200441023602f8012004200f3602f0012004201141226c3602f4010b20044198026a200b2003200441f0016a107d20042802a00221032004280298024101460d01200428029c02210f200341226e210b0b200f201141226c6a2203202e37000720062d0000211120042f01b80121062003201c360003200320063b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000200a2003411f6a290000370300201e200341276a2d00003a0000200420032f00083b01382004200341176a2900003703f0012003410f6a29000021332003410b6a2800002126410121030b41022111200441bc016a41026a200441386a41026a2d00003a0000201d200a290300370300201a201e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101211c02402003450d00201f200441bc016a41026a2d00003a00002019201d2903003703002013201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100211c202621112033212f0b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b010820042004290398023703c001201c0d07200d2015290300370300201420172d00003a0000200420042f01083b01b801200420042903c0013703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d1a2008410174220c2003200c20034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7210c20080d02200441003602f0010c030b20030d1a0c190b2000201c36020420004101360200200041086a202e3702000c070b200441043602f801200420073602f00120042008412c6c3602f4010b20044198026a200c2003200441f0016a107d20042802a00221032004280298024101460d01200428029c0221072003412c6e21090b20072008412c6c6a2203200e41016a3602082003200b3602042003200f360200200341136a202f370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a20113600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201641c0006a22162024470d010c060b0b20030d140c130b2000201136020420004101360200200041086a202f370200200b21110c010b200042013702000b2011450d00201141226c450d00200f102e0b410021024101210c0240203241ffffff1f710d00410021160c020b2030102e410021160c010b0240203241ffffff1f71450d002030102e0b20012802b4012132200141b8016a2802002134200141bc016a2802002203450d0c2032200341c4006c6a2130200441f0016a410272211b200441e0006a413c6a2105200441e0006a41386a212b20044190016a212a20044188016a2125200441e0006a41206a2128200441e0006a41186a2127200441e0006a41106a2129200441e0006a41086a212d203221160240024002400240034020162f0140211f201628020021202016410c6a2901002110201641146a29010021182016411c6a2901002123201641246a29010021122016412c6a2901002121201641346a290100212c2016290104212e202b2016413c6a280100360200202a202c37030020252021370300202820123703002027202337030020292018370300202d20103703002004202e370360200441003b015c20044105360220200420053602c4012004200441206a3602d0012004200441046a3602cc012004200441dc006a3602c8012004200441e0006a3602c001200441f0016a200441c0016a108e060240024020042f01f0014101470d004122102c220f450d16200f201b290100370100200f41206a201b41206a221d2f01003b0100200f41186a201b41186a221a290100370100200f41106a201b41106a221c290100370100200f41086a201b41086a220a290100370100200441d8016a41106a200441c0016a41106a280200360200200441d8016a41086a200441c0016a41086a290300370300200420042903c0013703d801200441f0016a200441d8016a108e06410121114101210e20042f01f0014101470d01410121114122210c4101210e0240034020044198026a41206a2215201d2f01003b010020044198026a41186a2217201a29010037030020044198026a41106a220d201c29010037030020044198026a41086a2214200a2901003703002004201b290100370398020240200e2011470d00201141016a22032011490d182011410174221e2003201e20034b1b22034104200341044b1bad42227e2210422088a74541017421032010a7211e0240024020110d00200441003602a0010c010b200441023602a8012004200f3602a0012004201141226c3602a4010b200441386a201e2003200441a0016a107d2004280240210320042802384101460d02200428023c210f200341226e21110b200f200c6a2203200429039802370100200341206a20152f01003b0100200341186a2017290300370100200341106a200d290300370100200341086a2014290300370100200c41226a210c200e41016a210e200441f0016a200441d8016a108e0620042f01f0014101460d000c030b0b20030d160c150b410021114102210f4100210e0b0240200428022022034105460d002004290224211002402011450d00201141226c450d00200f102e0b20002003360204200041013602002000410c6a20104220883e0200200041086a20103e02000c050b20042f015c222241ffff03460d024100210302402004280204220c280208201f4d0d00200441386a41026a200c280200201f4105746a220341026a2d00003a0000200441f0016a41086a200341176a290000370300200441f0016a41106a2003411f6a2d00003a0000200420032f00003b01382004200329000f3703f0012003290007213320032800032126410121030b4102211c200441bc016a41026a200441386a41026a2d00003a0000200441d8016a41086a221d200441f0016a41086a220a290300370300200441d8016a41106a221a200441f0016a41106a221e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101210d02402003450d00200441206a41026a200441bc016a41026a2d00003a000020044198026a41086a201d29030037030020044198026a41106a201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100210d2026211c2033212f0b200441086a41026a220c200441206a41026a221f2d00003a0000200441c0016a41086a221520044198026a41086a2219290300370300200441c0016a41106a221720044198026a41106a22132d00003a0000200420042f01203b010820042004290398023703c00102400240024002400240200d0d00200441b8016a41026a220b200c2d00003a0000200441a0016a41086a220d2015290300370300200441a0016a41106a221420172d00003a0000200420042f01083b01b801200420042903c0013703a001024002400240200e2011460d0020112106200e21110c010b201141016a22032011490d1a201141017422062003200620034b1b22034104200341044b1bad42227e2210422088a74541017421032010a721060240024020110d00200441003602f0010c010b200441023602f8012004200f3602f0012004201141226c3602f4010b20044198026a20062003200441f0016a107d20042802a00221032004280298024101460d01200428029c02210f200341226e21060b200f201141226c6a2203202f370007200b2d0000211120042f01b801210b2003201c3600032003200b3b0100200341026a20113a0000200320042903a00137000f200341176a200d2903003700002003411f6a20142d00003a000020032022417f733b0120410021030240200228020820204d0d00200441386a41026a2002280200202041386c6a2203410a6a2d00003a0000200a2003411f6a290000370300201e200341276a2d00003a0000200420032f00083b01382004200341176a2900003703f0012003410f6a29000021352003410b6a2800002124410121030b41022111200441bc016a41026a200441386a41026a2d00003a0000201d200a290300370300201a201e2d00003a0000200420042f01383b01bc01200420042903f0013703d8014101211c02402003450d00201f200441bc016a41026a2d00003a00002019201d2903003703002013201a2d00003a0000200420042f01bc013b0120200420042903d801370398024100211c20242111203521310b200c201f2d00003a000020152019290300370300201720132d00003a0000200420042f01203b010820042004290398023703c001201c0d07200d2015290300370300201420172d00003a0000200420042f01083b01b801200420042903c0013703a0012004200c2d00003a00ba0120082009470d04200841016a22032008490d192008410174220c2003200c20034b1b22034104200341044b1bad422c7e2210422088a74541027421032010a7210c20080d02200441003602f0010c030b20030d190c180b2000201c36020420004101360200200041086a202f3702000c070b200441043602f801200420073602f00120042008412c6c3602f4010b20044198026a200c2003200441f0016a107d20042802a00221032004280298024101460d01200428029c0221072003412c6e21090b20072008412c6c6a2203200e41016a360208200320063602042003200f360200200341136a2031370000200320042f01b8013b010c2003410e6a20042d00ba013a00002003410f6a20113600002003411b6a20042903a001370000200341236a200d2903003700002003412b6a20142d00003a0000200841016a2108201641c4006a22162030470d010c120b0b20030d130c120b2000201136020420004101360200200041086a2031370200200621110c010b200042013702000b2011450d00201141226c450d00200f102e0b4100210c02402034450d00203441c4006c450d002032102e41002102410021160c010b41002102410021160b4100211b0b4100211d0b4100211a0b4100210f0b410021150b4100211c0b4100210a0b410021170b4100210d0b410021140b4100210e4100211e0b02402008450d002008412c6c21112007210303400240200341046a2802002208450d00200841226c450d002003280200102e0b2003412c6a2103201141546a22110d000b0b02402009450d002009412c6c450d002007102e0b0240201e450d00200141106a2802002203450d002003410c6c450d00200128020c102e0b0240200e450d002001411c6a28020041ffffffff0071450d002001280218102e0b02402014450d00200141286a2802002203450d00200341146c450d002001280224102e0b0240200d450d00200141346a2802002203450d00200341186c450d002001280230102e0b02402017450d00200141c0006a2802002203450d002003411c6c450d00200128023c102e0b0240200a450d00200141cc006a28020041ffffff3f71450d002001280248102e0b0240201c450d00200141d8006a2802002203450d00200341246c450d002001280254102e0b02402015450d00200141e4006a2802002203450d00200341286c450d002001280260102e0b0240200f450d00200141f0006a2802002203450d002003412c6c450d00200128026c102e0b0240201a450d00200141fc006a2802002203450d00200341306c450d002001280278102e0b0240201d450d0020014188016a2802002203450d00200341346c450d00200128028401102e0b0240201b450d0020014194016a2802002203450d00200341386c450d00200128029001102e0b02402016450d00200141a0016a2802002203450d002003413c6c450d00200128029c01102e0b02402002450d00200141ac016a28020041ffffff1f71450d0020012802a801102e0b200c450d01200141b8016a2802002203450d01200341c4006c450d0120012802b401102e0c010b02402034450d00203441c4006c450d002032102e0b20002007360204200041003602002000410c6a2008360200200041086a20093602000b200441c0026a24000f0b1038000b1036000be90504077f017e017f027e23004180016b210202400240200128020022032001280204460d00200128021021042001200341046a3602004102210520032f010021062001280208220720072f0100200341026a2f010022076a220341ffff03200341ffff03491b3b0100024002402001410c6a280200280200220128020820064b0d00200241e8006a41106a200241d0006a41106a2d00003a0000200241e8006a41086a200241d0006a41086a29000037030020022002290050370368410121010c010b200241d0006a41086a200128020020064105746a220141176a2203290000370300200241d0006a41106a2001411f6a22082d00003a00002002200129000f370350200129000721092001280003210520012d0002210620012f0000210a200241e8006a41106a20082d000022083a0000200241e8006a41086a2003290000220b3703002002200129000f220c370368200241386a41106a20083a0000200241386a41086a200b3703002002200c370338410021010b200241206a41086a2203200241386a41086a290300370300200241206a41106a2208200241386a41106a2d00003a000020022002290338370320024002402001450d00200220053602682002200937026c200228006921012004410b6a20094238883c0000200441096a20094228883d0000200420094208883e000520042001360001200420053a0000410021030c010b200241e8006a41106a20082d00003a0000200241e8006a41086a200329030037030020022002290320370368410121030b200241d0006a41086a2204200241e8006a41086a290300370300200241d0006a41106a2208200241e8006a41106a2d00003a000020022002290368370350410021012003450d012000200a3b010220002002290350370011200041096a2009370000200041056a2005360000200041046a20063a0000200041226a20073b0100200041196a2004290300370000200041216a20082d00003a0000200041013b01000f0b410021010b200020013b01000bc10201037f230041106b2202240002404120102c2203450d0020024220370204200220033602002002200041106a412010742001200228020022032002280208107402402002280204450d002003102e0b200020011091024120102c2203450d0020024220370204200220033602002002200041306a412010742001200228020022032002280208107402402002280204450d002003102e0b4120102c2203450d0020024220370204200220033602002002200041d0006a412010742001200228020022032002280208107402402002280204450d002003102e0b200028020421032000410c6a2802002200200110760240200041246c2200450d0003402002200310ef042001200228020022042002280208107402402002280204450d002004102e0b200341246a21032000415c6a22000d000b0b200241106a24000f0b1036000bae0401047f230041106b22022400200220002903003703002001200241081074200041106a210302400240024020002903084201510d00200241003a000020012002410110742002200029031037030020012002410810742001200041e0016a412010744120102c2204450d02200242203702042002200436020020022003410c6a412010742001200228020022042002280208107402402002280204450d002004102e0b2002200041186a280200360200200120024104107420012003412c6a41c00010744120102c2204450d02200041a0016a21052002422037020420022004360200200220004180016a412010742001200228020022002002280208107402402002280204450d002000102e0b2002200328026c36020020012002410410742001200541c00010740c010b200241013a000020012002410110742002200029031037030020012002410810742001200041e0016a412010744120102c2204450d01200242203702042002200436020020022003410c6a412010742001200228020022042002280208107402402002280204450d002004102e0b2002200041186a280200360200200120024104107420012003412c6a41c00010744120102c2204450d01200041a0016a21052002422037020420022004360200200220004180016a412010742001200228020022002002280208107402402002280204450d002000102e0b2002200328026c36020020012002410410742001200541c00010740b200241106a24000f0b1036000b84660b087f017e107f037e047f017e047f017e047f017e027f230041206b22022400200041003602082000420137020002402001280208220341ffffffff01712003470d0020034103742204417f4c0d002001280200210502400240024020040d00410421060c010b2004102c2206450d010b0240024002402004410376220720034f0d00200441027622082003200820034b1b22084104200841044b1b220841ffffffff01712008464102742109200841037421080240024020040d00200241003602100c010b200241186a410436020020022004360214200220063602100b200220082009200241106a107d200241086a2802002108024020022802004101460d0020022802042106200841037621070c020b20080d030c040b20030d00410021050c010b200520046a2108200341037441786a410376210920062103034020052802002104200341046a200541046a2f01003b010020032004360200200341086a2103200541086a22052008470d000b200941016a21050b20052000107602402005450d00200620054103746a210420062105034002400240024002402005280200220341c000490d00200341808001490d012003418080808004490d02200241033a00102000200241106a41011074200220033602102000200241106a410410740c030b200220034102743a00102000200241106a410110740c020b200220034102744101723b01102000200241106a410210740c010b200220034102744102723602102000200241106a410410740b024002400240200541046a2f0100220341c000490d00200341808001490d01200220034102744102723602102000200241106a410410740c020b200220034102743a00102000200241106a410110740c010b200220034102744101723b01102000200241106a410210740b200541086a22052004470d000b0b200141146a2802002203ad420c7e220a422088a70d01200aa72204417f4c0d01200128020c21050240024020040d004104210b0c010b2004102c220b450d010b0240024002402004410c6e220c20034f0d00200c41017422082003200820034b1b22084104200841044b1bad420c7e220a422088a7454102742108200aa72109024002402004410b4b0d00200241003602100c010b200241186a41043602002002200b3602102002200c410c6c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d002002280204210b2004410c6e210c0c020b2004450d040c030b20030d00410021050c010b20052003410c6c6a21042003410c6c41746a410c6e2108200b2103034020032005290200370200200341086a200541086a2f01003b01002003410c6a21032005410c6a22052004470d000b200841016a21050b20052000107602402005450d002005410c6c2104200b21050340200541046a210802400240024002402005280200220341c000490d00200341808001490d012003418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220034102743a00102000200241106a410110740c020b200220034102744101723b01102000200241106a410210740c010b200220034102744102723602102000200241106a410410740b2008200010fd04024002400240200541086a2f0100220341c000490d00200341808001490d01200220034102744102723602102000200241106a410410740c020b200220034102743a00102000200241106a410110740c010b200220034102744101723b01102000200241106a410210740b2005410c6a2105200441746a22040d000b0b200141206a280200220341ffffffff00712003470d0120034104742204417f4c0d01200128021821054104210d02402004450d002004102c220d450d010b0240024002402004410476220e20034f0d00200441037622082003200820034b1b22084104200841044b1b220841ffffffff00712008464102742109200841047421080240024020040d00200241003602100c010b200241186a4104360200200220043602142002200d3602100b200220082009200241106a107d200241086a2802002108024020022802004101460d002002280204210d2008410476210e0c020b2008450d040c030b20030d00410021050c010b200520046a2104200341047441706a4104762108200d21030340200320052802003602002003410c6a2005410c6a2f01003b0100200341046a200541046a290200370200200341106a2103200541106a22052004470d000b200841016a21050b20052000107602402005450d0020054104742104200d2105034002400240024002402005280200220341c000490d00200341808001490d012003418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220034102743a00102000200241106a410110740c020b200220034102744101723b01102000200241106a410210740c010b200220034102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd040240024002402005410c6a2f0100220341c000490d00200341808001490d01200220034102744102723602102000200241106a410410740c020b200220034102743a00102000200241106a410110740c010b200220034102744101723b01102000200241106a410210740b200541106a2105200441706a22040d000b0b2001412c6a2802002203ad42147e220a422088a70d01200aa72204417f4c0d01200128022421050240024020040d004104210f0c010b2004102c220f450d010b024002400240200441146e221020034f0d00201041017422082003200820034b1b22084104200841044b1bad42147e220a422088a7454102742108200aa7210902400240200441134b0d00200241003602100c010b200241186a41043602002002200f3602102002201041146c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d002002280204210f200441146e21100c020b2004450d040c030b20030d00410021050c010b2005200341146c6a2104200341146c416c6a41146e2108200f2103034020032005280200360200200341106a200541106a2f01003b01002003410c6a2005410c6a280200360200200341046a200541046a290200370200200341146a2103200541146a22052004470d000b200841016a21050b20052000107602402005450d00200541146c2104200f2105034002400240024002402005280200220341c000490d00200341808001490d012003418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220034102743a00102000200241106a410110740c020b200220034102744101723b01102000200241106a410210740c010b200220034102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04024002400240200541106a2f0100220341c000490d00200341808001490d01200220034102744102723602102000200241106a410410740c020b200220034102743a00102000200241106a410110740c010b200220034102744101723b01102000200241106a410210740b200541146a21052004416c6a22040d000b0b200141386a2802002203ad42187e220a422088a70d01200aa72204417f4c0d01200128023021050240024020040d00410421110c010b2004102c2211450d010b024002400240200441186e221220034f0d00201241017422082003200820034b1b22084104200841044b1bad42187e220a422088a7454102742108200aa7210902400240200441174b0d00200241003602100c010b200241186a4104360200200220113602102002201241186c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d0020022802042111200441186e21120c020b2004450d040c030b20030d00410021050c010b2005200341186c6a2104200341186c41686a41186e210820112103034020032005280200360200200341146a200541146a2f01003b01002003410c6a2005410c6a290200370200200341046a200541046a290200370200200341186a2103200541186a22052004470d000b200841016a21050b20052000107602402005450d00200541186c21084100210303400240024002400240201120036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04024002400240200541146a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b2008200341186a2203470d000b0b200141c4006a2802002203ad421c7e220a422088a70d01200aa72204417f4c0d01200128023c21050240024020040d00410421130c010b2004102c2213450d010b0240024002402004411c6e221420034f0d00201441017422082003200820034b1b22084104200841044b1bad421c7e220a422088a7454102742108200aa72109024002402004411b4b0d00200241003602100c010b200241186a41043602002002201336021020022014411c6c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d00200228020421132004411c6e21140c020b2004450d040c030b20030d00410021050c010b20052003411c6c6a21042003411c6c41646a411c6e210820132103034020032005280200360200200341186a200541186a2f01003b0100200341146a200541146a2802003602002003410c6a2005410c6a290200370200200341046a200541046a2902003702002003411c6a21032005411c6a22052004470d000b200841016a21050b20052000107602402005450d002005411c6c21084100210303400240024002400240201320036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04024002400240200541186a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b20082003411c6a2203470d000b0b200141d0006a280200220341ffffff3f712003470d0120034105742204417f4c0d01200128024821050240024020040d00410421150c010b2004102c2215450d010b0240024002402004410576221620034f0d00200441047622082003200820034b1b22084104200841044b1b220841ffffff3f712008464102742109200841057421080240024020040d00200241003602100c010b200241186a410436020020022004360214200220153602100b200220082009200241106a107d200241086a2802002108024020022802004101460d0020022802042115200841057621160c020b2008450d040c030b20030d00410021050c010b200520046a2104200341057441606a4105762108201521030340200320052802003602002003411c6a2005411c6a2f01003b0100200341146a200541146a2902003702002003410c6a2005410c6a290200370200200341046a200541046a290200370200200341206a2103200541206a22052004470d000b200841016a21050b20052000107602402005450d00200541057421084100210303400240024002400240201520036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04200541186a200010fd040240024002402005411c6a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b2008200341206a2203470d000b0b200141dc006a2802002203ad42247e220a422088a70d01200aa72204417f4c0d01200128025421050240024020040d00410421170c010b2004102c2217450d010b024002400240200441246e221820034f0d00201841017422082003200820034b1b22084104200841044b1bad42247e220a422088a7454102742108200aa7210902400240200441234b0d00200241003602100c010b200241186a4104360200200220173602102002201841246c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d0020022802042117200441246e21180c020b2004450d040c030b20030d00410021050c010b2005200341246c6a2104200341246c415c6a41246e210820172103034020032005280200360200200341206a200541206a2f01003b01002003411c6a2005411c6a280200360200200341146a200541146a2902003702002003410c6a2005410c6a290200370200200341046a200541046a290200370200200341246a2103200541246a22052004470d000b200841016a21050b20052000107602402005450d00200541246c21084100210303400240024002400240201720036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04200541186a200010fd042005411c6a200010fd04024002400240200541206a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b2008200341246a2203470d000b0b200141e8006a2802002203ad42287e220a422088a70d01200aa72204417f4c0d01200128026021050240024020040d00410421190c010b2004102c2219450d010b024002400240200441286e221a20034f0d00201a41017422082003200820034b1b22084104200841044b1bad42287e220a422088a7454102742108200aa7210902400240200441274b0d00200241003602100c010b200241186a4104360200200220193602102002201a41286c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d0020022802042119200441286e211a0c020b2004450d040c030b20030d00410021050c010b2005200341286c6a2104200341286c41586a41286e2108201921030340200541046a290200210a2005410c6a290200211b200541146a290200211c2005411c6a290200211d20032005280200360200200341246a200541246a2f01003b01002003411c6a201d370200200341146a201c3702002003410c6a201b370200200341046a200a370200200341286a2103200541286a22052004470d000b200841016a21050b20052000107602402005450d00200541286c21084100210303400240024002400240201920036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04200541186a200010fd042005411c6a200010fd04200541206a200010fd04024002400240200541246a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b2008200341286a2203470d000b0b200141f4006a2802002203ad422c7e220a422088a70d01200aa72204417f4c0d01200128026c21050240024020040d004104211e0c010b2004102c221e450d010b0240024002402004412c6e221f20034f0d00201f41017422082003200820034b1b22084104200841044b1bad422c7e220a422088a7454102742108200aa72109024002402004412b4b0d00200241003602100c010b200241186a41043602002002201e3602102002201f412c6c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d002002280204211e2004412c6e211f0c020b2004450d040c030b20030d00410021050c010b20052003412c6c6a21082003412c6c41546a412c6e2109201e21030340200541046a290200210a2005410c6a290200211b200541146a290200211c2005411c6a290200211d200541246a280200210420032005280200360200200341286a200541286a2f01003b0100200341246a20043602002003411c6a201d370200200341146a201c3702002003410c6a201b370200200341046a200a3702002003412c6a21032005412c6a22052008470d000b200941016a21050b20052000107602402005450d002005412c6c21084100210303400240024002400240201e20036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04200541186a200010fd042005411c6a200010fd04200541206a200010fd04200541246a200010fd04024002400240200541286a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b20082003412c6a2203470d000b0b20014180016a2802002203ad42307e220a422088a70d01200aa72204417f4c0d01200128027821050240024020040d00410421200c010b2004102c2220450d010b024002400240200441306e222120034f0d00202141017422082003200820034b1b22084104200841044b1bad42307e220a422088a7454102742108200aa72109024002402004412f4b0d00200241003602100c010b200241186a4104360200200220203602102002202141306c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d0020022802042120200441306e21210c020b2004450d040c030b20030d00410021050c010b2005200341306c6a2108200341306c41506a41306e2109202021030340200541046a290200210a2005410c6a290200211b200541146a290200211c2005411c6a290200211d200541246a2902002122200528020021042003412c6a2005412c6a2f01003b0100200341246a20223702002003411c6a201d370200200341146a201c3702002003410c6a201b370200200341046a200a37020020032004360200200341306a2103200541306a22052008470d000b200941016a21050b20052000107602402005450d00200541306c21084100210303400240024002400240202020036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04200541186a200010fd042005411c6a200010fd04200541206a200010fd04200541246a200010fd04200541286a200010fd040240024002402005412c6a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b2008200341306a2203470d000b0b2001418c016a2802002203ad42347e220a422088a70d01200aa72204417f4c0d0120012802840121050240024020040d00410421230c010b2004102c2223450d010b024002400240200441346e222420034f0d00202441017422082003200820034b1b22084104200841044b1bad42347e220a422088a7454102742108200aa7210902400240200441334b0d00200241003602100c010b200241186a4104360200200220233602102002202441346c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d0020022802042123200441346e21240c020b2004450d040c030b20030d00410021050c010b2005200341346c6a2109200341346c414c6a41346e2125202321030340200541046a290200210a2005410c6a290200211b200541146a290200211c2005411c6a290200211d200541246a29020021222005412c6a280200210420052802002108200341306a200541306a2f01003b01002003412c6a2004360200200341246a20223702002003411c6a201d370200200341146a201c3702002003410c6a201b370200200341046a200a37020020032008360200200341346a2103200541346a22052009470d000b202541016a21050b20052000107602402005450d00200541346c21084100210303400240024002400240202320036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04200541186a200010fd042005411c6a200010fd04200541206a200010fd04200541246a200010fd04200541286a200010fd042005412c6a200010fd04024002400240200541306a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b2008200341346a2203470d000b0b20014198016a2802002203ad42387e220a422088a70d01200aa72204417f4c0d0120012802900121050240024020040d00410421250c010b2004102c2225450d010b024002400240200441386e222620034f0d00202641017422082003200820034b1b22084104200841044b1bad42387e220a422088a7454102742108200aa7210902400240200441374b0d00200241003602100c010b200241186a4104360200200220253602102002202641386c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d0020022802042125200441386e21260c020b2004450d040c030b20030d00410021050c010b2005200341386c6a2108200341386c41486a41386e2109202521030340200541046a290200210a2005410c6a290200211b200541146a290200211c2005411c6a290200211d200541246a29020021222005412c6a290200212720052802002104200341346a200541346a2f01003b01002003412c6a2027370200200341246a20223702002003411c6a201d370200200341146a201c3702002003410c6a201b370200200341046a200a37020020032004360200200341386a2103200541386a22052008470d000b200941016a21050b20052000107602402005450d00200541386c21084100210303400240024002400240202520036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04200541186a200010fd042005411c6a200010fd04200541206a200010fd04200541246a200010fd04200541286a200010fd042005412c6a200010fd04200541306a200010fd04024002400240200541346a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b2008200341386a2203470d000b0b200141a4016a2802002203ad423c7e220a422088a70d01200aa72204417f4c0d01200128029c0121050240024020040d00410421280c010b2004102c2228450d010b0240024002402004413c6e222920034f0d00202941017422082003200820034b1b22084104200841044b1bad423c7e220a422088a7454102742108200aa72109024002402004413b4b0d00200241003602100c010b200241186a41043602002002202836021020022029413c6c3602140b200220092008200241106a107d200241086a2802002104024020022802004101460d00200228020421282004413c6e21290c020b2004450d040c030b20030d00410021050c010b20052003413c6c6a21092003413c6c41446a413c6e212a202821030340200541046a290200210a2005410c6a290200211b200541146a290200211c2005411c6a290200211d200541246a29020021222005412c6a2902002127200541346a280200210420052802002108200341386a200541386a2f01003b0100200341346a20043602002003412c6a2027370200200341246a20223702002003411c6a201d370200200341146a201c3702002003410c6a201b370200200341046a200a370200200320083602002003413c6a21032005413c6a22052009470d000b202a41016a21050b20052000107602402005450d002005413c6c21084100210303400240024002400240202820036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04200541186a200010fd042005411c6a200010fd04200541206a200010fd04200541246a200010fd04200541286a200010fd042005412c6a200010fd04200541306a200010fd04200541346a200010fd04024002400240200541386a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b20082003413c6a2203470d000b0b200141b0016a280200220341ffffff1f712003470d0120034106742204417f4c0d0120012802a80121050240024020040d00410421090c010b2004102c2209450d010b0240024002402004410676222b20034f0d00200441057622082003200820034b1b22084104200841044b1b220841ffffff1f71200846410274212a200841067421080240024020040d00200241003602100c010b200241186a410436020020022004360214200220093602100b20022008202a200241106a107d200241086a2802002108024020022802004101460d00200228020421092008410676212b0c020b2008450d040c030b20030d00410021050c010b200520046a2108200341067441406a410676212a200921030340200541046a290200210a2005410c6a290200211b200541146a290200211c2005411c6a290200211d200541246a29020021222005412c6a2902002127200541346a290200212c200528020021042003413c6a2005413c6a2f01003b0100200341346a202c3702002003412c6a2027370200200341246a20223702002003411c6a201d370200200341146a201c3702002003410c6a201b370200200341046a200a37020020032004360200200341c0006a2103200541c0006a22052008470d000b202a41016a21050b20052000107602402005450d00200541067421084100210303400240024002400240200920036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04200541186a200010fd042005411c6a200010fd04200541206a200010fd04200541246a200010fd04200541286a200010fd042005412c6a200010fd04200541306a200010fd04200541346a200010fd04200541386a200010fd040240024002402005413c6a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b2008200341c0006a2203470d000b0b200141bc016a2802002203ad42c4007e220a422088a70d01200aa72204417f4c0d0120012802b40121050240024020040d004104212a0c010b2004102c222a450d010b024002400240200441c4006e222d20034f0d00202d41017422082003200820034b1b22084104200841044b1bad42c4007e220a422088a7454102742108200aa7210102400240200441c3004b0d00200241003602100c010b200241186a41043602002002202a3602102002202d41c4006c3602140b200220012008200241106a107d200241086a2802002104024020022802004101460d002002280204212a200441c4006e212d0c020b2004450d040c030b20030d00410021050c010b2005200341c4006c6a2101200341c4006c41bc7f6a41c4006e212e202a21030340200541046a290200210a2005410c6a290200211b200541146a290200211c2005411c6a290200211d200541246a29020021222005412c6a2902002127200541346a290200212c2005413c6a280200210420052802002108200341c0006a200541c0006a2f01003b01002003413c6a2004360200200341346a202c3702002003412c6a2027370200200341246a20223702002003411c6a201d370200200341146a201c3702002003410c6a201b370200200341046a200a37020020032008360200200341c4006a2103200541c4006a22052001470d000b202e41016a21050b20052000107602402005450d00200541c4006c21084100210303400240024002400240202a20036a2205280200220441c000490d00200441808001490d012004418080808004490d02200241033a00102000200241106a41011074200220052802003602102000200241106a410410740c030b200220044102743a00102000200241106a410110740c020b200220044102744101723b01102000200241106a410210740c010b200220044102744102723602102000200241106a410410740b200541046a200010fd04200541086a200010fd042005410c6a200010fd04200541106a200010fd04200541146a200010fd04200541186a200010fd042005411c6a200010fd04200541206a200010fd04200541246a200010fd04200541286a200010fd042005412c6a200010fd04200541306a200010fd04200541346a200010fd04200541386a200010fd042005413c6a200010fd04024002400240200541c0006a2f0100220541c000490d00200541808001490d01200220054102744102723602102000200241106a410410740c020b200220054102743a00102000200241106a410110740c010b200220054102744101723b01102000200241106a410210740b2008200341c4006a2203470d000b0b0240202d450d00202d41c4006c450d00202a102e0b0240202b450d002009102e0b02402029450d002029413c6c450d002028102e0b02402026450d00202641386c450d002025102e0b02402024450d00202441346c450d002023102e0b02402021450d00202141306c450d002020102e0b0240201f450d00201f412c6c450d00201e102e0b0240201a450d00201a41286c450d002019102e0b02402018450d00201841246c450d002017102e0b02402016450d002015102e0b02402014450d002014411c6c450d002013102e0b02402012450d00201241186c450d002011102e0b02402010450d00201041146c450d00200f102e0b0240200e450d00200d102e0b0240200c450d00200c410c6c450d00200b102e0b02402007450d002006102e0b200241206a24000f0b1036000b1038000b040041010b040041010b040041010bf5be010f057f017e017f017e077f017e147f017e027f017e047f017e077f017e0e7f230041c0196b22022400200241f8116a200110ad0102400240024002400240024020022802f8110d0020022802fc11220320012802002802044103762204200420034b1b22044103742205417f4c0d050240024020040d00410421050c010b2005102c2205450d050b2001200128020441016a22063602042004ad21070240200620012802084b0d00024002402003450d000340200241f0116a200110ad0120022802f0110d0320022802f4112106200241e8116a200110fb0420022f01e8110d0320022f01ea112108024020074220882209a722042007a7470d00200441016a220a2004490d0a2004410174220b200a200a200b491b220a4104200a41044b1b220a41ffffffff0171200a46410274210b200a410374210a0240024020040d0020024100360280180c010b20024104360288182002200536028018200220094203863e0284180b200241c0186a200a200b20024180186a107d20022802c818210a20022802c0184101460d0320022802c418210520074220882209a72104200a410376ad21070b200520044103746a220420083b0104200420063602002009422086200742ffffffff0f83844280808080107c21072003417f6a22030d000b200128020421060b20012006417f6a3602042005450d022007422088a741037422040d03200521040c040b200a0d050c060b200742ffffffff0183500d002005102e0b200041003602000c020b200520046a21032005210403402004200429020022093e0200200441046a20094220883d0100200441086a22042003470d000b0b2007a7210a200241e0116a200110ad01024002400240024020022802e0110d0020022802e41122062001280200280204410c6e2203200320064b1bad420c7e2207422088a70d062007a72203417f4c0d060240024020030d00410421080c010b2003102c2208450d060b2001200128020441016a220b3602042003410c6ead21070240200b20012802084b0d00024002402006450d000340200241d8116a200110ad0120022802d8110d0320022802dc11210b200241d0116a200110fb0420022f01d0110d0320022f01d211210c200241c8116a200110fb0420022f01c8110d0320022f01ca11210d200241c0116a200110fb0420022f01c0110d0320022f01c211210e024020074220882209a722032007a7470d00200341016a220f2003490d0b20034101742210200f200f2010491b220f4104200f41044b1bad420c7e2209422088a745410274210f2009a721100240024020030d0020024100360280180c010b2002410436028818200220083602801820022003410c6c360284180b200241c0186a2010200f20024180186a107d20022802c818210f20022802c0184101460d0320022802c418210820074220882209a72103200f410c6ead21070b20082003410c6c6a2203200e3b01082003200c3b01042003200b360200200341066a200d3b01002009422086200742ffffffff0f83844280808080107c21072006417f6a22060d000b2001280204210b0b2001200b417f6a3602042008450d022007422088a7410c6c22030d03200821030c040b200f450d070c060b2007a72204450d002004410c6c450d002008102e0b200041003602000c020b200820036a21062008210303402003410c6a22032006470d000b0b2007a72106200241b8116a200110ad01200320086b410c6d210f0240024020022802b8110d004104210c20022802bc11220b200128020028020441047622032003200b4b1b2203410474220d417f4c0d0502402003450d00200d102c220c450d050b2001200128020441016a220d3602042003ad21070240200d20012802084b0d0002400240024002400240200b450d000340200241b0116a200110ad0120022802b0110d0620022802b411210e200241003a008818200241a8116a200110fb0420022f01a8110d0620022f01aa112103200241a0116a200110fb0420022f01a0110d0620022f01a211210d200241013a0088182002200d3b018218200220033b01801820024198116a200110fb0420022f0198110d0520022f019a11210320024190116a200110fb0420022f0190110d05200220022f0192113b018618200220033b018418200229038018210920024188116a200110fb0420022f0188110d0620022f018a112110024020074220882211a722032007a7470d00200341016a220d2003490d0d20034101742212200d200d2012491b220d4104200d41044b1b220d41ffffffff0071200d464102742112200d410474210d0240024020030d0020024100360280180c010b20024104360288182002200c36028018200220114204863e0284180b200241c0186a200d201220024180186a107d20022802c818210d20022802c0184101460d0320022802c418210c200d410476ad21070b200c20034104746a220d20103b010c200d2009370204200d200e360200200742ffffffff0f83200341016aad422086842107200b417f6a220b0d000b2001280204210d0b2001200d417f6a360204200c450d052007422088a741047422030d01200c21030c020b200d450d090c080b200c20036a210b200c21030340200341106a2203200b470d000b0b2007a7210d20024180116a200110ad01024002402002280280110d00200228028411220e200128020028020441146e220b200b200e4b1bad42147e2207422088a70d092007a7220b417f4c0d0902400240200b0d00410421120c010b200b102c2212450d090b2001200128020441016a2210360204200b41146ead21070240201020012802084b0d0002400240024002400240200e450d00200241c0186a41086a21130340200241f8106a200110ad0120022802f8100d0620022802fc102114200241003a008c18200241f0106a200110fb0420022f01f0100d0620022f01f210210b200241e8106a200110fb0420022f01e8100d0620022f01ea102110200241013a008c18200220103b0182182002200b3b018018200241e0106a200110fb0420022f01e0100d0520022f01e210210b200241d8106a200110fb0420022f01d8100d0520022f01da102110200241023a008c18200220103b0186182002200b3b018418200241d0106a200110fb0420022f01d0100d0520022f01d210210b200241c8106a200110fb0420022f01c8100d05200220022f01ca103b018a182002200b3b018818201320022802881836020020022002290380183703c018200241c0106a200110fb0420022f01c0100d0620022f01c210211520024180176a41086a2013280200220b360200200241c0166a41086a2216200b360200200220022903c018220937038017200220093703c01602402007422088a7220b2007a7470d00200b41016a2210200b490d11200b4101742217201020102017491b22104104201041044b1bad42147e2207422088a74541027421102007a7211702400240200b0d0020024100360280180c010b200241043602881820022012360280182002200b41146c360284180b200241c0186a2017201020024180186a107d20022802c818211020022802c0184101460d0320022802c4182112201041146ead21070b2012200b41146c6a22102014360200201020022903c0163702042010410c6a2016280200360200201020153b0110200742ffffffff0f83200b41016aad422086842107200e417f6a220e0d000b200128020421100b20012010417f6a3602042012450d052007422088a741146c220b0d012012210b0c020b2010450d0d0c0c0b2012200b6a210e2012210b0340200b41146a220b200e470d000b0b2007a7210e200241b8106a200110ad01200b20126b41146d21150240024020022802b8100d0020022802bc102210200128020028020441186e220b200b20104b1bad42187e2207422088a70d0d2007a7220b417f4c0d0d02400240200b0d00410421130c010b200b102c2213450d0d0b2001200128020441016a2214360204200b41186ead21070240201420012802084b0d00024002400240024002402010450d000340200241b0106a200110ad0120022802b0100d0620022802b4102116200241003a009018200241a8106a200110fb0420022f01a8100d0620022f01aa10210b200241a0106a200110fb0420022f01a0100d0620022f01a2102114200241013a009018200220143b0182182002200b3b01801820024198106a200110fb0420022f0198100d0520022f019a10210b20024190106a200110fb0420022f0190100d0520022f0192102114200241023a009018200220143b0186182002200b3b01841820024188106a200110fb0420022f0188100d0520022f018a10210b20024180106a200110fb0420022f0180100d0520022f0182102114200241033a009018200220143b018a182002200b3b018818200241f80f6a200110fb0420022f01f80f0d0520022f01fa0f210b200241f00f6a200110fb0420022f01f00f0d05200220022f01f20f3b018e182002200b3b018c18200241c0186a41086a220b20024180186a41086a29030037030020022002290380183703c018200241e80f6a200110fb0420022f01e80f0d0620022f01ea0f211720024180176a41086a200b2903002209370300200241c0166a41086a22182009370300200220022903c018220937038017200220093703c01602402007422088a7220b2007a7470d00200b41016a2214200b490d15200b4101742219201420142019491b22144104201441044b1bad42187e2207422088a74541027421142007a7211902400240200b0d0020024100360280180c010b200241043602881820022013360280182002200b41186c360284180b200241c0186a2019201420024180186a107d20022802c818211420022802c0184101460d0320022802c4182113201441186ead21070b2013200b41186c6a22142016360200201420022903c0163702042014410c6a2018290300370200201420173b0114200742ffffffff0f83200b41016aad4220868421072010417f6a22100d000b200128020421140b20012014417f6a3602042013450d052007422088a741186c220b0d012013210b0c020b2014450d110c100b2013200b6a21102013210b0340200b41186a220b2010470d000b0b2007a72110200241e00f6a200110ad01200b20136b41186d21180240024020022802e00f0d0020022802e40f220b2001280200280204411c6e22142014200b4b1bad421c7e2207422088a70d112007a72214417f4c0d110240024020140d00410421170c010b2014102c2217450d110b2001200128020441016a22163602042014411c6ead21070240201620012802084b0d0002400240024002400240200b450d00200241c0186a41106a21190340200241d80f6a200110ad0120022802d80f0d0620022802dc0f211a200241003a009418200241d00f6a200110fb0420022f01d00f0d0620022f01d20f2114200241c80f6a200110fb0420022f01c80f0d0620022f01ca0f2116200241013a009418200220163b018218200220143b018018200241c00f6a200110fb0420022f01c00f0d0520022f01c20f2114200241b80f6a200110fb0420022f01b80f0d0520022f01ba0f2116200241023a009418200220163b018618200220143b018418200241b00f6a200110fb0420022f01b00f0d0520022f01b20f2114200241a80f6a200110fb0420022f01a80f0d0520022f01aa0f2116200241033a009418200220163b018a18200220143b018818200241a00f6a200110fb0420022f01a00f0d0520022f01a20f2114200241980f6a200110fb0420022f01980f0d0520022f019a0f2116200241043a009418200220163b018e18200220143b018c18200241900f6a200110fb0420022f01900f0d0520022f01920f2114200241880f6a200110fb0420022f01880f0d0520022f018a0f2116200241c0186a41086a221b20024180186a41086a290300370300200220163b019218200220143b0190182019200228029018360200200241053a00941820022002290380183703c018200241800f6a200110fb0420022f01800f0d0620022f01820f211c20024180176a41086a201b290300220937030020024180176a41106a20192802002214360200200241c0166a41086a221b2009370300200241c0166a41106a221d2014360200200220022903c018220937038017200220093703c01602402007422088a722142007a7470d00201441016a22162014490d192014410174221e20162016201e491b22164104201641044b1bad421c7e2207422088a74541027421162007a7211e0240024020140d0020024100360280180c010b2002410436028818200220173602801820022014411c6c360284180b200241c0186a201e201620024180186a107d20022802c818211620022802c0184101460d0320022802c41821172016411c6ead21070b20172014411c6c6a2216201a360200201620022903c0163702042016410c6a201b290300370200201641146a201d2802003602002016201c3b0118200742ffffffff0f83201441016aad422086842107200b417f6a220b0d000b200128020421160b20012016417f6a3602042017450d052007422088a7411c6c220b0d012017210b0c020b2016450d150c140b2017200b6a21142017210b0340200b411c6a220b2014470d000b0b2007a72114200241f80e6a200110ad01200b20176b411c6d211a0240024020022802f80e0d0020022802fc0e220b200128020028020441057622162016200b4b1b22164105742219417f4c0d150240024020160d00410421190c010b2019102c2219450d150b2001200128020441016a221b3602042016ad21070240201b20012802084b0d0002400240024002400240200b450d000340200241f00e6a200110ad0120022802f00e0d0620022802f40e211c200241003a009818200241e80e6a200110fb0420022f01e80e0d0620022f01ea0e2116200241e00e6a200110fb0420022f01e00e0d0620022f01e20e211b200241013a0098182002201b3b018218200220163b018018200241d80e6a200110fb0420022f01d80e0d0520022f01da0e2116200241d00e6a200110fb0420022f01d00e0d0520022f01d20e211b200241023a0098182002201b3b018618200220163b018418200241c80e6a200110fb0420022f01c80e0d0520022f01ca0e2116200241c00e6a200110fb0420022f01c00e0d0520022f01c20e211b200241033a0098182002201b3b018a18200220163b018818200241b80e6a200110fb0420022f01b80e0d0520022f01ba0e2116200241b00e6a200110fb0420022f01b00e0d0520022f01b20e211b200241043a0098182002201b3b018e18200220163b018c18200241a80e6a200110fb0420022f01a80e0d0520022f01aa0e2116200241a00e6a200110fb0420022f01a00e0d0520022f01a20e211b200241053a0098182002201b3b019218200220163b019018200241980e6a200110fb0420022f01980e0d0520022f019a0e2116200241900e6a200110fb0420022f01900e0d0520022f01920e211b200241c0186a41086a221d20024180186a41086a2903003703002002201b3b019618200220163b019418200241c0186a41106a221620024180186a41106a290300370300200241063a00981820022002290380183703c018200241880e6a200110fb0420022f01880e0d0620022f018a0e211e20024180176a41086a201d290300220937030020024180176a41106a20162903002211370300200241c0166a41086a221d2009370300200241c0166a41106a221f2011370300200220022903c018220937038017200220093703c016024020074220882209a7221b2007a7470d00201b41016a2216201b490d1d201b4101742220201620162020491b22164104201641044b1b221641ffffff3f7120164641027421202016410574211602400240201b0d0020024100360280180c010b20024104360288182002201936028018200220094205863e0284180b200241c0186a2016202020024180186a107d20022802c818211620022802c0184101460d0320022802c41821192016410576ad21070b2019201b4105746a2216201c360200201620022903c0163702042016410c6a201d290300370200201641146a201f2903003702002016201e3b011c200742ffffffff0f83201b41016aad422086842107200b417f6a220b0d000b2001280204211b0b2001201b417f6a3602042019450d052007422088a7410574220b0d012019210b0c020b2016450d190c180b2019200b6a21162019210b0340200b41206a220b2016470d000b0b2007a72116200241800e6a200110ad010240024020022802800e0d0020022802840e221c200128020028020441246e221b201b201c4b1bad42247e2207422088a70d192007a7221b417f4c0d1902400240201b0d004104211d0c010b201b102c221d450d190b2001200128020441016a221e360204201b41246ead21070240201e20012802084b0d0002400240024002400240201c450d00200241c0176a41186a211f0340200241f80d6a200110ad0120022802f80d0d0620022802fc0d2120200241003a009c18200241f00d6a200110fb0420022f01f00d0d0620022f01f20d211b200241e80d6a200110fb0420022f01e80d0d0620022f01ea0d211e200241013a009c182002201e3b0182182002201b3b018018200241e00d6a200110fb0420022f01e00d0d0520022f01e20d211b200241d80d6a200110fb0420022f01d80d0d0520022f01da0d211e200241023a009c182002201e3b0186182002201b3b018418200241d00d6a200110fb0420022f01d00d0d0520022f01d20d211b200241c80d6a200110fb0420022f01c80d0d0520022f01ca0d211e200241033a009c182002201e3b018a182002201b3b018818200241c00d6a200110fb0420022f01c00d0d0520022f01c20d211b200241b80d6a200110fb0420022f01b80d0d0520022f01ba0d211e200241043a009c182002201e3b018e182002201b3b018c18200241b00d6a200110fb0420022f01b00d0d0520022f01b20d211b200241a80d6a200110fb0420022f01a80d0d0520022f01aa0d211e200241053a009c182002201e3b0192182002201b3b019018200241a00d6a200110fb0420022f01a00d0d0520022f01a20d211b200241980d6a200110fb0420022f01980d0d0520022f019a0d211e200241063a009c182002201e3b0196182002201b3b019418200241900d6a200110fb0420022f01900d0d0520022f01920d211b200241880d6a200110fb0420022f01880d0d0520022f018a0d211e200241c0176a41106a222120024180186a41106a290300370300200241c0176a41086a222220024180186a41086a2903003703002002201e3b019a182002201b3b019818201f200228029818360200200241073a009c18200220022903801822093703c018200220093703c017200241800d6a200110fb0420022f01800d0d0620022f01820d2123200241c0166a41086a20222903002209370300200241c0166a41106a20212903002211370300200241c0166a41186a201f280200221b36020020024180166a41086a2221200937030020024180166a41106a2222201137030020024180166a41186a2224201b360200200220022903c01722093703c016200220093703801602402007422088a7221e2007a7470d00201e41016a221b201e490d21201e4101742225201b201b2025491b221b4104201b41044b1bad42247e2207422088a745410274211b2007a7212502400240201e0d0020024100360280180c010b20024104360288182002201d360280182002201e41246c360284180b200241c0186a2025201b20024180186a107d20022802c818211b20022802c0184101460d0320022802c418211d201b41246ead21070b201d201e41246c6a221b2020360200201b200229038016370204201b410c6a2021290300370200201b41146a2022290300370200201b411c6a2024280200360200201b20233b0120200742ffffffff0f83201e41016aad422086842107201c417f6a221c0d000b2001280204211e0b2001201e417f6a360204201d450d052007422088a741246c221b0d01201d211b0c020b201b450d1d0c1c0b201d201b6a211c201d211b0340201b41246a221b201c470d000b0b2007a7211c200241f80c6a200110ad01201b201d6b41246d21200240024020022802f80c0d0020022802fc0c221e200128020028020441286e221b201b201e4b1bad42287e2207422088a70d1d2007a7221b417f4c0d1d02400240201b0d004104211f0c010b201b102c221f450d1d0b2001200128020441016a2221360204201b41286ead21070240202120012802084b0d0002400240024002400240201e450d000340200241f00c6a200110ad0120022802f00c0d0620022802f40c2122200241003a00a018200241e80c6a200110fb0420022f01e80c0d0620022f01ea0c211b200241e00c6a200110fb0420022f01e00c0d0620022f01e20c2121200241013a00a018200220213b0182182002201b3b018018200241d80c6a200110fb0420022f01d80c0d0520022f01da0c211b200241d00c6a200110fb0420022f01d00c0d0520022f01d20c2121200241023a00a018200220213b0186182002201b3b018418200241c80c6a200110fb0420022f01c80c0d0520022f01ca0c211b200241c00c6a200110fb0420022f01c00c0d0520022f01c20c2121200241033a00a018200220213b018a182002201b3b018818200241b80c6a200110fb0420022f01b80c0d0520022f01ba0c211b200241b00c6a200110fb0420022f01b00c0d0520022f01b20c2121200241043a00a018200220213b018e182002201b3b018c18200241a80c6a200110fb0420022f01a80c0d0520022f01aa0c211b200241a00c6a200110fb0420022f01a00c0d0520022f01a20c2121200241053a00a018200220213b0192182002201b3b019018200241980c6a200110fb0420022f01980c0d0520022f019a0c211b200241900c6a200110fb0420022f01900c0d0520022f01920c2121200241063a00a018200220213b0196182002201b3b019418200241880c6a200110fb0420022f01880c0d0520022f018a0c211b200241800c6a200110fb0420022f01800c0d0520022f01820c2121200241073a00a018200220213b019a182002201b3b019818200241f80b6a200110fb0420022f01f80b0d0520022f01fa0b211b200241f00b6a200110fb0420022f01f00b0d0520022f01f20b2121200241c0176a41106a222320024180186a41106a290300370300200220213b019e182002201b3b019c18200241c0176a41186a221b20024180186a41186a290300370300200241083a00a018200241c0176a41086a222120024180186a41086a290300370300200220022903801822093703c018200220093703c017200241e80b6a200110fb0420022f01e80b0d0620022f01ea0b2124200241c0166a41086a20212903002209370300200241c0166a41106a20232903002211370300200241c0166a41186a201b290300222637030020024180166a41086a2223200937030020024180166a41106a2225201137030020024180166a41186a22272026370300200220022903c01722093703c016200220093703801602402007422088a722212007a7470d00202141016a221b2021490d2520214101742228201b201b2028491b221b4104201b41044b1bad42287e2207422088a745410274211b2007a721280240024020210d0020024100360280180c010b20024104360288182002201f360280182002202141286c360284180b200241c0186a2028201b20024180186a107d20022802c818211b20022802c0184101460d0320022802c418211f201b41286ead21070b201f202141286c6a221b2022360200201b200229038016370204201b410c6a2023290300370200201b41146a2025290300370200201b411c6a2027290300370200201b20243b0124200742ffffffff0f83202141016aad422086842107201e417f6a221e0d000b200128020421210b20012021417f6a360204201f450d052007422088a741286c221b0d01201f211b0c020b201b450d210c200b201f201b6a211e201f211b0340201b41286a221b201e470d000b0b2007a7211e200241e00b6a200110ad01201b201f6b41286d21220240024020022802e00b0d0020022802e40b22212001280200280204412c6e221b201b20214b1bad422c7e2207422088a70d212007a7221b417f4c0d2102400240201b0d00410421230c010b201b102c2223450d210b2001200128020441016a2224360204201b412c6ead21070240202420012802084b0d00024002400240024002402021450d000340200241d80b6a200110ad0120022802d80b0d0620022802dc0b2125200241003a00a418200241d00b6a200110fb0420022f01d00b0d0620022f01d20b211b200241c80b6a200110fb0420022f01c80b0d0620022f01ca0b2124200241013a00a418200220243b0182182002201b3b018018200241c00b6a200110fb0420022f01c00b0d0520022f01c20b211b200241b80b6a200110fb0420022f01b80b0d0520022f01ba0b2124200241023a00a418200220243b0186182002201b3b018418200241b00b6a200110fb0420022f01b00b0d0520022f01b20b211b200241a80b6a200110fb0420022f01a80b0d0520022f01aa0b2124200241033a00a418200220243b018a182002201b3b018818200241a00b6a200110fb0420022f01a00b0d0520022f01a20b211b200241980b6a200110fb0420022f01980b0d0520022f019a0b2124200241043a00a418200220243b018e182002201b3b018c18200241900b6a200110fb0420022f01900b0d0520022f01920b211b200241880b6a200110fb0420022f01880b0d0520022f018a0b2124200241053a00a418200220243b0192182002201b3b019018200241800b6a200110fb0420022f01800b0d0520022f01820b211b200241f80a6a200110fb0420022f01f80a0d0520022f01fa0a2124200241063a00a418200220243b0196182002201b3b019418200241f00a6a200110fb0420022f01f00a0d0520022f01f20a211b200241e80a6a200110fb0420022f01e80a0d0520022f01ea0a2124200241073a00a418200220243b019a182002201b3b019818200241e00a6a200110fb0420022f01e00a0d0520022f01e20a211b200241d80a6a200110fb0420022f01d80a0d0520022f01da0a2124200241083a00a418200220243b019e182002201b3b019c18200241d00a6a200110fb0420022f01d00a0d0520022f01d20a211b200241c80a6a200110fb0420022f01c80a0d05200220022f01ca0a3b01a2182002201b3b01a018200241093a00a418200241c0186a41086a20024180186a41086a2903002209370300200241c0186a41106a20024180186a41106a2903002211370300200241c0186a41186a20024180186a41186a2903002226370300200241c0186a41206a20022802a018221b360200200220022903801822293703c018200241c0176a41206a2224201b360200200241c0176a41186a22272026370300200241c0176a41106a22282011370300200241c0176a41086a222a2009370300200220293703c017200241c00a6a200110fb0420022f01c00a0d0620022f01c20a212b20024180176a41206a2024280200221b360200200241c0166a41086a202a2903002209370300200241c0166a41106a20282903002211370300200241c0166a41186a20272903002226370300200241c0166a41206a201b36020020024180166a41086a2227200937030020024180166a41106a2228201137030020024180166a41186a222a202637030020024180166a41206a222c201b360200200220022903c01722093703c016200220093703801602402007422088a722242007a7470d00202441016a221b2024490d292024410174222d201b201b202d491b221b4104201b41044b1bad422c7e2207422088a745410274211b2007a7212d0240024020240d0020024100360280180c010b2002410436028818200220233602801820022024412c6c360284180b200241c0186a202d201b20024180186a107d20022802c818211b20022802c0184101460d0320022802c4182123201b412c6ead21070b20232024412c6c6a221b2025360200201b200229038016370204201b410c6a2027290300370200201b41146a2028290300370200201b411c6a202a290300370200201b41246a202c280200360200201b202b3b0128200742ffffffff0f83202441016aad4220868421072021417f6a22210d000b200128020421240b20012024417f6a3602042023450d052007422088a7412c6c221b0d012023211b0c020b201b450d250c240b2023201b6a21212023211b0340201b412c6a221b2021470d000b0b2007a72121200241b80a6a200110ad01201b20236b412c6d21250240024020022802b80a0d0020022802bc0a2224200128020028020441306e221b201b20244b1bad42307e2207422088a70d252007a7221b417f4c0d2502400240201b0d00410421270c010b201b102c2227450d250b2001200128020441016a2228360204201b41306ead21070240202820012802084b0d00024002400240024002402024450d000340200241b00a6a200110ad0120022802b00a0d0620022802b40a212a200241003a00a818200241a80a6a200110fb0420022f01a80a0d0620022f01aa0a211b200241a00a6a200110fb0420022f01a00a0d0620022f01a20a2128200241013a00a818200220283b0182182002201b3b018018200241980a6a200110fb0420022f01980a0d0520022f019a0a211b200241900a6a200110fb0420022f01900a0d0520022f01920a2128200241023a00a818200220283b0186182002201b3b018418200241880a6a200110fb0420022f01880a0d0520022f018a0a211b200241800a6a200110fb0420022f01800a0d0520022f01820a2128200241033a00a818200220283b018a182002201b3b018818200241f8096a200110fb0420022f01f8090d0520022f01fa09211b200241f0096a200110fb0420022f01f0090d0520022f01f2092128200241043a00a818200220283b018e182002201b3b018c18200241e8096a200110fb0420022f01e8090d0520022f01ea09211b200241e0096a200110fb0420022f01e0090d0520022f01e2092128200241053a00a818200220283b0192182002201b3b019018200241d8096a200110fb0420022f01d8090d0520022f01da09211b200241d0096a200110fb0420022f01d0090d0520022f01d2092128200241063a00a818200220283b0196182002201b3b019418200241c8096a200110fb0420022f01c8090d0520022f01ca09211b200241c0096a200110fb0420022f01c0090d0520022f01c2092128200241073a00a818200220283b019a182002201b3b019818200241b8096a200110fb0420022f01b8090d0520022f01ba09211b200241b0096a200110fb0420022f01b0090d0520022f01b2092128200241083a00a818200220283b019e182002201b3b019c18200241a8096a200110fb0420022f01a8090d0520022f01aa09211b200241a0096a200110fb0420022f01a0090d0520022f01a2092128200241093a00a818200220283b01a2182002201b3b01a01820024198096a200110fb0420022f0198090d0520022f019a09211b20024190096a200110fb0420022f0190090d05200220022f0192093b01a6182002201b3b01a4182002410a3a00a818200241c0186a41086a20024180186a41086a2903002209370300200241c0186a41106a20024180186a41106a2903002211370300200241c0186a41186a20024180186a41186a2903002226370300200241c0186a41206a20024180186a41206a29030022293703002002200229038018222e3703c018200241c0176a41206a221b2029370300200241c0176a41186a22282026370300200241c0176a41106a222b2011370300200241c0176a41086a222c20093703002002202e3703c01720024188096a200110fb0420022f0188090d0620022f018a09212d20024180176a41206a201b2903002209370300200241c0166a41086a202c2903002211370300200241c0166a41106a202b2903002226370300200241c0166a41186a20282903002229370300200241c0166a41206a200937030020024180166a41086a222b201137030020024180166a41106a222c202637030020024180166a41186a222f202937030020024180166a41206a22302009370300200220022903c01722093703c016200220093703801602402007422088a722282007a7470d00202841016a221b2028490d2d20284101742231201b201b2031491b221b4104201b41044b1bad42307e2207422088a745410274211b2007a721310240024020280d0020024100360280180c010b200241043602881820022027360280182002202841306c360284180b200241c0186a2031201b20024180186a107d20022802c818211b20022802c0184101460d0320022802c4182127201b41306ead21070b2027202841306c6a221b202a360200201b200229038016370204201b410c6a202b290300370200201b41146a202c290300370200201b411c6a202f290300370200201b41246a2030290300370200201b202d3b012c200742ffffffff0f83202841016aad4220868421072024417f6a22240d000b200128020421280b20012028417f6a3602042027450d052007422088a741306c221b0d012027211b0c020b201b450d290c280b2027201b6a21242027211b0340201b41306a221b2024470d000b0b2007a7212420024180096a200110ad01201b20276b41306d212a024002402002280280090d002002280284092228200128020028020441346e221b201b20284b1bad42347e2207422088a70d292007a7221b417f4c0d2902400240201b0d004104212b0c010b201b102c222b450d290b2001200128020441016a222c360204201b41346ead21070240202c20012802084b0d00024002400240024002402028450d000340200241f8086a200110ad0120022802f8080d0620022802fc08212d200241003a00ac18200241f0086a200110fb0420022f01f0080d0620022f01f208211b200241e8086a200110fb0420022f01e8080d0620022f01ea08212c200241013a00ac182002202c3b0182182002201b3b018018200241e0086a200110fb0420022f01e0080d0520022f01e208211b200241d8086a200110fb0420022f01d8080d0520022f01da08212c200241023a00ac182002202c3b0186182002201b3b018418200241d0086a200110fb0420022f01d0080d0520022f01d208211b200241c8086a200110fb0420022f01c8080d0520022f01ca08212c200241033a00ac182002202c3b018a182002201b3b018818200241c0086a200110fb0420022f01c0080d0520022f01c208211b200241b8086a200110fb0420022f01b8080d0520022f01ba08212c200241043a00ac182002202c3b018e182002201b3b018c18200241b0086a200110fb0420022f01b0080d0520022f01b208211b200241a8086a200110fb0420022f01a8080d0520022f01aa08212c200241053a00ac182002202c3b0192182002201b3b019018200241a0086a200110fb0420022f01a0080d0520022f01a208211b20024198086a200110fb0420022f0198080d0520022f019a08212c200241063a00ac182002202c3b0196182002201b3b01941820024190086a200110fb0420022f0190080d0520022f019208211b20024188086a200110fb0420022f0188080d0520022f018a08212c200241073a00ac182002202c3b019a182002201b3b01981820024180086a200110fb0420022f0180080d0520022f018208211b200241f8076a200110fb0420022f01f8070d0520022f01fa07212c200241083a00ac182002202c3b019e182002201b3b019c18200241f0076a200110fb0420022f01f0070d0520022f01f207211b200241e8076a200110fb0420022f01e8070d0520022f01ea07212c200241093a00ac182002202c3b01a2182002201b3b01a018200241e0076a200110fb0420022f01e0070d0520022f01e207211b200241d8076a200110fb0420022f01d8070d0520022f01da07212c2002410a3a00ac182002202c3b01a6182002201b3b01a418200241d0076a200110fb0420022f01d0070d0520022f01d207211b200241c8076a200110fb0420022f01c8070d05200220022f01ca073b01aa182002201b3b01a8182002410b3a00ac18200241c0186a41086a20024180186a41086a2903002209370300200241c0186a41106a20024180186a41106a2903002211370300200241c0186a41186a20024180186a41186a2903002226370300200241c0186a41206a20024180186a41206a2903002229370300200241c0186a41286a20022802a818221b3602002002200229038018222e3703c018200241c0176a41286a222c201b360200200241c0176a41206a222f2029370300200241c0176a41186a22302026370300200241c0176a41106a22312011370300200241c0176a41086a223220093703002002202e3703c017200241c0076a200110fb0420022f01c0070d0620022f01c207213320024180176a41286a202c280200221b36020020024180176a41206a202f2903002209370300200241c0166a41086a20322903002211370300200241c0166a41106a20312903002226370300200241c0166a41186a20302903002229370300200241c0166a41206a2009370300200241c0166a41286a201b360200200220022903c017222e3703c01620024180166a41286a222f201b36020020024180166a41206a2230200937030020024180166a41186a2231202937030020024180166a41106a2232202637030020024180166a41086a223420113703002002202e3703801602402007422088a7222c2007a7470d00202c41016a221b202c490d31202c4101742235201b201b2035491b221b4104201b41044b1bad42347e2207422088a745410274211b2007a7213502400240202c0d0020024100360280180c010b20024104360288182002202b360280182002202c41346c360284180b200241c0186a2035201b20024180186a107d20022802c818211b20022802c0184101460d0320022802c418212b201b41346ead21070b202b202c41346c6a221b202d360200201b200229038016370204201b410c6a2034290300370200201b41146a2032290300370200201b411c6a2031290300370200201b41246a2030290300370200201b412c6a202f280200360200201b20333b0130200742ffffffff0f83202c41016aad4220868421072028417f6a22280d000b2001280204212c0b2001202c417f6a360204202b450d052007422088a741346c221b0d01202b211b0c020b201b450d2d0c2c0b202b201b6a2128202b211b0340201b41346a221b2028470d000b0b2007a72128200241b8076a200110ad01201b202b6b41346d212d0240024020022802b8070d0020022802bc07222c200128020028020441386e221b201b202c4b1bad42387e2207422088a70d2d2007a7221b417f4c0d2d02400240201b0d004104212f0c010b201b102c222f450d2d0b2001200128020441016a2230360204201b41386ead21070240203020012802084b0d0002400240024002400240202c450d000340200241b0076a200110ad0120022802b0070d0620022802b4072131200241003a00b018200241a8076a200110fb0420022f01a8070d0620022f01aa07211b200241a0076a200110fb0420022f01a0070d0620022f01a2072130200241013a00b018200220303b0182182002201b3b01801820024198076a200110fb0420022f0198070d0520022f019a07211b20024190076a200110fb0420022f0190070d0520022f0192072130200241023a00b018200220303b0186182002201b3b01841820024188076a200110fb0420022f0188070d0520022f018a07211b20024180076a200110fb0420022f0180070d0520022f0182072130200241033a00b018200220303b018a182002201b3b018818200241f8066a200110fb0420022f01f8060d0520022f01fa06211b200241f0066a200110fb0420022f01f0060d0520022f01f2062130200241043a00b018200220303b018e182002201b3b018c18200241e8066a200110fb0420022f01e8060d0520022f01ea06211b200241e0066a200110fb0420022f01e0060d0520022f01e2062130200241053a00b018200220303b0192182002201b3b019018200241d8066a200110fb0420022f01d8060d0520022f01da06211b200241d0066a200110fb0420022f01d0060d0520022f01d2062130200241063a00b018200220303b0196182002201b3b019418200241c8066a200110fb0420022f01c8060d0520022f01ca06211b200241c0066a200110fb0420022f01c0060d0520022f01c2062130200241073a00b018200220303b019a182002201b3b019818200241b8066a200110fb0420022f01b8060d0520022f01ba06211b200241b0066a200110fb0420022f01b0060d0520022f01b2062130200241083a00b018200220303b019e182002201b3b019c18200241a8066a200110fb0420022f01a8060d0520022f01aa06211b200241a0066a200110fb0420022f01a0060d0520022f01a2062130200241093a00b018200220303b01a2182002201b3b01a01820024198066a200110fb0420022f0198060d0520022f019a06211b20024190066a200110fb0420022f0190060d0520022f01920621302002410a3a00b018200220303b01a6182002201b3b01a41820024188066a200110fb0420022f0188060d0520022f018a06211b20024180066a200110fb0420022f0180060d0520022f01820621302002410b3a00b018200220303b01aa182002201b3b01a818200241f8056a200110fb0420022f01f8050d0520022f01fa05211b200241f0056a200110fb0420022f01f0050d05200220022f01f2053b01ae182002201b3b01ac182002410c3a00b018200241c0186a41086a20024180186a41086a2903002209370300200241c0186a41106a20024180186a41106a2903002211370300200241c0186a41186a20024180186a41186a2903002226370300200241c0186a41206a20024180186a41206a2903002229370300200241c0186a41286a20024180186a41286a290300222e370300200220022903801822363703c018200241c0176a41286a221b202e370300200241c0176a41206a22302029370300200241c0176a41186a22322026370300200241c0176a41106a22332011370300200241c0176a41086a22342009370300200220363703c017200241e8056a200110fb0420022f01e8050d0620022f01ea05213520024180176a41286a201b290300220937030020024180176a41206a20302903002211370300200241c0166a41086a20342903002226370300200241c0166a41106a20332903002229370300200241c0166a41186a2032290300222e370300200241c0166a41206a2011370300200241c0166a41286a2009370300200220022903c01722363703c01620024180166a41286a2232200937030020024180166a41206a2233201137030020024180166a41186a2234202e37030020024180166a41106a2237202937030020024180166a41086a22382026370300200220363703801602402007422088a722302007a7470d00203041016a221b2030490d3520304101742239201b201b2039491b221b4104201b41044b1bad42387e2207422088a745410274211b2007a721390240024020300d0020024100360280180c010b20024104360288182002202f360280182002203041386c360284180b200241c0186a2039201b20024180186a107d20022802c818211b20022802c0184101460d0320022802c418212f201b41386ead21070b202f203041386c6a221b2031360200201b200229038016370204201b410c6a2038290300370200201b41146a2037290300370200201b411c6a2034290300370200201b41246a2033290300370200201b412c6a2032290300370200201b20353b0134200742ffffffff0f83203041016aad422086842107202c417f6a222c0d000b200128020421300b20012030417f6a360204202f450d052007422088a741386c221b0d01202f211b0c020b201b450d310c300b202f201b6a212c202f211b0340201b41386a221b202c470d000b0b2007a7212c200241e0056a200110ad01201b202f6b41386d21310240024020022802e0050d0020022802e40522302001280200280204413c6e221b201b20304b1bad423c7e2207422088a70d312007a7221b417f4c0d3102400240201b0d00410421320c010b201b102c2232450d310b2001200128020441016a2233360204201b413c6ead21070240203320012802084b0d00024002400240024002402030450d000340200241d8056a200110ad0120022802d8050d0620022802dc052134200241003a00b418200241d0056a200110fb0420022f01d0050d0620022f01d205211b200241c8056a200110fb0420022f01c8050d0620022f01ca052133200241013a00b418200220333b0182182002201b3b018018200241c0056a200110fb0420022f01c0050d0520022f01c205211b200241b8056a200110fb0420022f01b8050d0520022f01ba052133200241023a00b418200220333b0186182002201b3b018418200241b0056a200110fb0420022f01b0050d0520022f01b205211b200241a8056a200110fb0420022f01a8050d0520022f01aa052133200241033a00b418200220333b018a182002201b3b018818200241a0056a200110fb0420022f01a0050d0520022f01a205211b20024198056a200110fb0420022f0198050d0520022f019a052133200241043a00b418200220333b018e182002201b3b018c1820024190056a200110fb0420022f0190050d0520022f019205211b20024188056a200110fb0420022f0188050d0520022f018a052133200241053a00b418200220333b0192182002201b3b01901820024180056a200110fb0420022f0180050d0520022f018205211b200241f8046a200110fb0420022f01f8040d0520022f01fa042133200241063a00b418200220333b0196182002201b3b019418200241f0046a200110fb0420022f01f0040d0520022f01f204211b200241e8046a200110fb0420022f01e8040d0520022f01ea042133200241073a00b418200220333b019a182002201b3b019818200241e0046a200110fb0420022f01e0040d0520022f01e204211b200241d8046a200110fb0420022f01d8040d0520022f01da042133200241083a00b418200220333b019e182002201b3b019c18200241d0046a200110fb0420022f01d0040d0520022f01d204211b200241c8046a200110fb0420022f01c8040d0520022f01ca042133200241093a00b418200220333b01a2182002201b3b01a018200241c0046a200110fb0420022f01c0040d0520022f01c204211b200241b8046a200110fb0420022f01b8040d0520022f01ba0421332002410a3a00b418200220333b01a6182002201b3b01a418200241b0046a200110fb0420022f01b0040d0520022f01b204211b200241a8046a200110fb0420022f01a8040d0520022f01aa0421332002410b3a00b418200220333b01aa182002201b3b01a818200241a0046a200110fb0420022f01a0040d0520022f01a204211b20024198046a200110fb0420022f0198040d0520022f019a0421332002410c3a00b418200220333b01ae182002201b3b01ac1820024190046a200110fb0420022f0190040d0520022f019204211b20024188046a200110fb0420022f0188040d05200220022f018a043b01b2182002201b3b01b0182002410d3a00b418200241c0186a41086a223a20024180186a41086a290300370300200241c0186a41106a223920024180186a41106a290300370300200241c0186a41186a223820024180186a41186a290300370300200241c0186a41206a223720024180186a41206a290300370300200241c0186a41286a223520024180186a41286a290300370300200241c0186a41306a223320022802b01836020020022002290380183703c018200241c0176a41306a221b2033280200360200200241c0176a41286a22332035290300370300200241c0176a41206a22352037290300370300200241c0176a41186a22372038290300370300200241c0176a41106a22382039290300370300200241c0176a41086a2239203a290300370300200220022903c0183703c01720024180046a200110fb0420022f0180040d0620022f018204213a20024180176a41306a201b280200221b36020020024180176a41286a2033290300220937030020024180176a41206a20352903002211370300200241c0166a41086a22332039290300370300200241c0166a41106a22352038290300370300200241c0166a41186a22382037290300370300200241c0166a41206a22372011370300200241c0166a41286a22392009370300200241c0166a41306a223b201b360200200220022903c0173703c01620024180166a41306a223c203b28020036020020024180166a41286a223b203929030037030020024180166a41206a2239203729030037030020024180166a41186a2237203829030037030020024180166a41106a2238203529030037030020024180166a41086a22352033290300370300200220022903c0163703801602402007422088a722332007a7470d00203341016a221b2033490d392033410174223d201b201b203d491b221b4104201b41044b1bad423c7e2207422088a745410274211b2007a7213d0240024020330d0020024100360280180c010b2002410436028818200220323602801820022033413c6c360284180b200241c0186a203d201b20024180186a107d20022802c818211b20022802c0184101460d0320022802c4182132201b413c6ead21070b20322033413c6c6a221b2034360200201b200229038016370204201b410c6a2035290300370200201b41146a2038290300370200201b411c6a2037290300370200201b41246a2039290300370200201b412c6a203b290300370200201b41346a203c280200360200201b203a3b0138200742ffffffff0f83203341016aad4220868421072030417f6a22300d000b200128020421330b20012033417f6a3602042032450d052007422088a7413c6c221b0d012032211b0c020b201b450d350c340b2032201b6a21302032211b0340201b413c6a221b2030470d000b0b2007a72133200241f8036a200110ad01201b20326b413c6d21370240024020022802f8030d0020022802fc0322302001280200280204410676221b201b20304b1b221b4106742234417f4c0d3502400240201b0d00410421340c010b2034102c2234450d350b2001200128020441016a2235360204201bad21070240203520012802084b0d00024002400240024002402030450d000340200241f0036a200110ad0120022802f0030d0620022802f4032138200241003a00b818200241e8036a200110fb0420022f01e8030d0620022f01ea03211b200241e0036a200110fb0420022f01e0030d0620022f01e2032135200241013a00b818200220353b0182182002201b3b018018200241d8036a200110fb0420022f01d8030d0520022f01da03211b200241d0036a200110fb0420022f01d0030d0520022f01d2032135200241023a00b818200220353b0186182002201b3b018418200241c8036a200110fb0420022f01c8030d0520022f01ca03211b200241c0036a200110fb0420022f01c0030d0520022f01c2032135200241033a00b818200220353b018a182002201b3b018818200241b8036a200110fb0420022f01b8030d0520022f01ba03211b200241b0036a200110fb0420022f01b0030d0520022f01b2032135200241043a00b818200220353b018e182002201b3b018c18200241a8036a200110fb0420022f01a8030d0520022f01aa03211b200241a0036a200110fb0420022f01a0030d0520022f01a2032135200241053a00b818200220353b0192182002201b3b01901820024198036a200110fb0420022f0198030d0520022f019a03211b20024190036a200110fb0420022f0190030d0520022f0192032135200241063a00b818200220353b0196182002201b3b01941820024188036a200110fb0420022f0188030d0520022f018a03211b20024180036a200110fb0420022f0180030d0520022f0182032135200241073a00b818200220353b019a182002201b3b019818200241f8026a200110fb0420022f01f8020d0520022f01fa02211b200241f0026a200110fb0420022f01f0020d0520022f01f2022135200241083a00b818200220353b019e182002201b3b019c18200241e8026a200110fb0420022f01e8020d0520022f01ea02211b200241e0026a200110fb0420022f01e0020d0520022f01e2022135200241093a00b818200220353b01a2182002201b3b01a018200241d8026a200110fb0420022f01d8020d0520022f01da02211b200241d0026a200110fb0420022f01d0020d0520022f01d20221352002410a3a00b818200220353b01a6182002201b3b01a418200241c8026a200110fb0420022f01c8020d0520022f01ca02211b200241c0026a200110fb0420022f01c0020d0520022f01c20221352002410b3a00b818200220353b01aa182002201b3b01a818200241b8026a200110fb0420022f01b8020d0520022f01ba02211b200241b0026a200110fb0420022f01b0020d0520022f01b20221352002410c3a00b818200220353b01ae182002201b3b01ac18200241a8026a200110fb0420022f01a8020d0520022f01aa02211b200241a0026a200110fb0420022f01a0020d0520022f01a20221352002410d3a00b818200220353b01b2182002201b3b01b01820024198026a200110fb0420022f0198020d0520022f019a02211b20024190026a200110fb0420022f0190020d05200220022f0192023b01b6182002201b3b01b4182002410e3a00b818200241c0186a41086a223d20024180186a41086a290300370300200241c0186a41106a223c20024180186a41106a290300370300200241c0186a41186a223b20024180186a41186a290300370300200241c0186a41206a223a20024180186a41206a290300370300200241c0186a41286a223920024180186a41286a290300370300200241c0186a41306a223520024180186a41306a29030037030020022002290380183703c018200241c0176a41306a221b2035290300370300200241c0176a41286a22352039290300370300200241c0176a41206a2239203a290300370300200241c0176a41186a223a203b290300370300200241c0176a41106a223b203c290300370300200241c0176a41086a223c203d290300370300200220022903c0183703c01720024188026a200110fb0420022f0188020d0620022f018a02213d20024180176a41306a201b290300220937030020024180176a41286a2035290300221137030020024180176a41206a20392903002226370300200241c0166a41086a221b203c290300370300200241c0166a41106a2235203b290300370300200241c0166a41186a2239203a290300370300200241c0166a41206a223a2026370300200241c0166a41286a223b2011370300200241c0166a41306a223c2009370300200220022903c0173703c01620024180166a41306a223e203c29030037030020024180166a41286a223c203b29030037030020024180166a41206a223b203a29030037030020024180166a41186a223a203929030037030020024180166a41106a2239203529030037030020024180166a41086a223f201b290300370300200220022903c01637038016024020074220882209a722352007a7470d00203541016a221b2035490d3d20354101742240201b201b2040491b221b4104201b41044b1b221b41ffffff1f71201b464102742140201b410674211b0240024020350d0020024100360280180c010b20024104360288182002203436028018200220094206863e0284180b200241c0186a201b204020024180186a107d20022802c818211b20022802c0184101460d0320022802c4182134201b410676ad21070b203420354106746a221b2038360200201b200229038016370204201b410c6a203f290300370200201b41146a2039290300370200201b411c6a203a290300370200201b41246a203b290300370200201b412c6a203c290300370200201b41346a203e290300370200201b203d3b013c200742ffffffff0f83203541016aad4220868421072030417f6a22300d000b200128020421350b20012035417f6a3602042034450d052007422088a7410674221b0d012034211b0c020b201b450d390c380b2034201b6a21302034211b0340201b41c0006a221b2030470d000b0b2007a7213a20024180026a200110ad0102402002280280020d002002280284022239200128020028020441c4006e2230203020394b1bad42c4007e2207422088a70d382007a72235417f4c0d380240024020350d00410421300c010b2035102c2230450d380b2001200128020441016a2238360204203541c4006ead21070240203820012802084b0d00024002400240024002402039450d000340200241f8016a200110ad0120022802f8010d0620022802fc01213b200241003a00bc18200241f0016a200110fb0420022f01f0010d0620022f01f2012135200241e8016a200110fb0420022f01e8010d0620022f01ea012138200241013a00bc18200220383b018218200220353b018018200241e0016a200110fb0420022f01e0010d0520022f01e2012135200241d8016a200110fb0420022f01d8010d0520022f01da012138200241023a00bc18200220383b018618200220353b018418200241d0016a200110fb0420022f01d0010d0520022f01d2012135200241c8016a200110fb0420022f01c8010d0520022f01ca012138200241033a00bc18200220383b018a18200220353b018818200241c0016a200110fb0420022f01c0010d0520022f01c2012135200241b8016a200110fb0420022f01b8010d0520022f01ba012138200241043a00bc18200220383b018e18200220353b018c18200241b0016a200110fb0420022f01b0010d0520022f01b2012135200241a8016a200110fb0420022f01a8010d0520022f01aa012138200241053a00bc18200220383b019218200220353b019018200241a0016a200110fb0420022f01a0010d0520022f01a201213520024198016a200110fb0420022f0198010d0520022f019a012138200241063a00bc18200220383b019618200220353b01941820024190016a200110fb0420022f0190010d0520022f019201213520024188016a200110fb0420022f0188010d0520022f018a012138200241073a00bc18200220383b019a18200220353b01981820024180016a200110fb0420022f0180010d0520022f0182012135200241f8006a200110fb0420022f01780d0520022f017a2138200241083a00bc18200220383b019e18200220353b019c18200241f0006a200110fb0420022f01700d0520022f01722135200241e8006a200110fb0420022f01680d0520022f016a2138200241093a00bc18200220383b01a218200220353b01a018200241e0006a200110fb0420022f01600d0520022f01622135200241d8006a200110fb0420022f01580d0520022f015a21382002410a3a00bc18200220383b01a618200220353b01a418200241d0006a200110fb0420022f01500d0520022f01522135200241c8006a200110fb0420022f01480d0520022f014a21382002410b3a00bc18200220383b01aa18200220353b01a818200241c0006a200110fb0420022f01400d0520022f01422135200241386a200110fb0420022f01380d0520022f013a21382002410c3a00bc18200220383b01ae18200220353b01ac18200241306a200110fb0420022f01300d0520022f01322135200241286a200110fb0420022f01280d0520022f012a21382002410d3a00bc18200220383b01b218200220353b01b018200241206a200110fb0420022f01200d0520022f01222135200241186a200110fb0420022f01180d0520022f011a21382002410e3a00bc18200220383b01b618200220353b01b418200241106a200110fb0420022f01100d0520022f01122135200241086a200110fb0420022f01080d05200220022f010a3b01ba18200220353b01b8182002410f3a00bc18200241c0186a41086a223820024180186a41086a290300370300200241c0186a41106a223c20024180186a41106a290300370300200241c0186a41186a223d20024180186a41186a290300370300200241c0186a41206a223e20024180186a41206a290300370300200241c0186a41286a223f20024180186a41286a290300370300200241c0186a41306a224020024180186a41306a290300370300200241c0186a41386a224120022802b81836020020022002290380183703c018200241c0176a41086a22352038290300370300200241c0176a41106a2238203c290300370300200241c0176a41186a223c203d290300370300200241c0176a41206a223d203e290300370300200241c0176a41286a223e203f290300370300200241c0176a41306a223f2040290300370300200241c0176a41386a22402041280200360200200220022903c0183703c0172002200110fb0420022f01000d0620022f0102214120024180176a41386a2040280200224036020020024180176a41306a203f290300220937030020024180176a41286a203e290300221137030020024180176a41206a203d2903002226370300200241c0166a41086a223d2035290300370300200241c0166a41106a22352038290300370300200241c0166a41186a2238203c290300370300200241c0166a41206a223c2026370300200241c0166a41286a223e2011370300200241c0166a41306a223f2009370300200241c0166a41386a22422040360200200220022903c0173703c01620024180166a41386a2240204228020036020020024180166a41306a2242203f29030037030020024180166a41286a223f203e29030037030020024180166a41206a223e203c29030037030020024180166a41186a223c203829030037030020024180166a41106a2243203529030037030020024180166a41086a2244203d290300370300200220022903c0163703801602402007422088a722382007a7470d00203841016a22352038490d402038410174223d20352035203d491b22354104203541044b1bad42c4007e2207422088a74541027421352007a7213d0240024020380d0020024100360280180c010b200241043602881820022030360280182002203841c4006c360284180b200241c0186a203d203520024180186a107d20022802c818213520022802c0184101460d0320022802c4182130203541c4006ead21070b2030203841c4006c6a2235203b36020020352002290380163702042035410c6a2044290300370200203541146a20432903003702002035411c6a203c290300370200203541246a203e2903003702002035412c6a203f290300370200203541346a20422903003702002035413c6a2040280200360200203520413b0140200742ffffffff0f83203841016aad4220868421072039417f6a22390d000b200128020421380b20012038417f6a3602042030450d05200420056b41037521352003200c6b4104752103200b20196b410575210b201b20346b410675211b2007a721382007422088a741c4006c22040d01203021040c020b2035450d3c0c3b0b203020046a2101203021040340200441c4006a22042001470d000b0b2000200a36020420002005360200200041b8016a2038360200200041b4016a2030360200200041b0016a201b360200200041ac016a203a360200200041a8016a2034360200200041a4016a2037360200200041a0016a20333602002000419c016a203236020020004198016a203136020020004194016a202c36020020004190016a202f3602002000418c016a202d36020020004188016a202836020020004184016a202b36020020004180016a202a360200200041fc006a2024360200200041f8006a2027360200200041f4006a2025360200200041f0006a2021360200200041ec006a2023360200200041e8006a2022360200200041e4006a201e360200200041e0006a201f360200200041dc006a2020360200200041d8006a201c360200200041d4006a201d360200200041d0006a200b360200200041cc006a2016360200200041c8006a2019360200200041c4006a201a360200200041c0006a20143602002000413c6a2017360200200041386a2018360200200041346a2010360200200041306a20133602002000412c6a2015360200200041286a200e360200200041246a2012360200200041206a20033602002000411c6a200d360200200041186a200c360200200041146a200f360200200041106a20063602002000410c6a2008360200200041086a2035360200200041bc016a200420306b41c4006d3602000c380b200241003a00bc180b2007a72204450d00200441c4006c450d002030102e0b20004100360200203a41ffffff1f71450d032034102e0c030b200241003a00b8180b200742ffffff1f83500d002034102e0b200041003602000b2033450d032033413c6c450d032032102e0c030b200241003a00b4180b2007a72204450d002004413c6c450d002032102e0b200041003602000b202c450d03202c41386c450d03202f102e0c030b200241003a00b0180b2007a72204450d00200441386c450d00202f102e0b200041003602000b2028450d03202841346c450d03202b102e0c030b200241003a00ac180b2007a72204450d00200441346c450d00202b102e0b200041003602000b2024450d03202441306c450d032027102e0c030b200241003a00a8180b2007a72204450d00200441306c450d002027102e0b200041003602000b2021450d032021412c6c450d032023102e0c030b200241003a00a4180b2007a72204450d002004412c6c450d002023102e0b200041003602000b201e450d03201e41286c450d03201f102e0c030b200241003a00a0180b2007a72204450d00200441286c450d00201f102e0b200041003602000b201c450d03201c41246c450d03201d102e0c030b200241003a009c180b2007a72204450d00200441246c450d00201d102e0b200041003602000b201641ffffff3f71450d032019102e0c030b200241003a0098180b200742ffffff3f83500d002019102e0b200041003602000b2014450d032014411c6c450d032017102e0c030b200241003a0094180b2007a72204450d002004411c6c450d002017102e0b200041003602000b2010450d03201041186c450d032013102e0c030b200241003a0090180b2007a72204450d00200441186c450d002013102e0b200041003602000b200e450d03200e41146c450d032012102e0c030b200241003a008c180b2007a72204450d00200441146c450d002012102e0b200041003602000b200d41ffffffff0071450d03200c102e0c030b200241003a0088180b200742ffffffff0083500d00200c102e0b200041003602000b2006450d002006410c6c450d002008102e0b200a41ffffffff0171450d002005102e0b200241c0196a24000f0b1036000b1038000ba9b9010f057f017e027f017e067f017e147f017e027f017e047f017e077f017e0e7f230041c0196b22022400200241f8116a200110ab0102400240024002400240024020022802f8110d0020022802fc11220320012802044103762204200420034b1b22044103742205417f4c0d050240024020040d00410421060c010b2005102c2206450d050b2004ad21070240024002402003450d000340200241f0116a200110ab0120022802f0110d0320022802f4112108200241e8116a200110fc0420022f01e8110d0320022f01ea11210902402007422088220aa722052007a72204470d00200441016a22052004490d0a2004410174220b2005200b20054b1b22054104200541044b1b220541ffffffff0171200546410274210b200541037421050240024020040d0020024100360280180c010b2002410436028818200220063602801820022004410374360284180b200241c0186a2005200b20024180186a107d20022802c818210420022802c0184101460d0320022802c41821062007422088220aa721052004410376ad21070b200620054103746a220420093b010420042008360200200a422086200742ffffffff0f83844280808080107c21072003417f6a22030d000b0b2006450d022007422088a741037422040d03200621040c040b20040d050c060b200742ffffffff0183500d002006102e0b200041003602000c020b200620046a210520062104034020042004290200220a3e0200200441046a200a4220883d0100200441086a22042005470d000b0b2007a7210c200241e0116a200110ab01024002400240024020022802e0110d0020022802e41122032001280204410c6e2205200520034b1bad420c7e2207422088a70d062007a72205417f4c0d060240024020050d00410421080c010b2005102c2208450d060b2005410c6ead21070240024002402003450d000340200241d8116a200110ab0120022802d8110d0320022802dc11210b200241d0116a200110fc0420022f01d0110d0320022f01d211210d200241c8116a200110fc0420022f01c8110d0320022f01ca11210e200241c0116a200110fc0420022f01c0110d0320022f01c211210f02402007422088220aa722092007a72205470d00200541016a22092005490d0b200541017422102009201020094b1b22094104200941044b1bad420c7e220a422088a7454102742109200aa721100240024020050d0020024100360280180c010b2002410436028818200220083602801820022005410c6c360284180b200241c0186a2010200920024180186a107d20022802c818210520022802c0184101460d0320022802c41821082007422088220aa721092005410c6ead21070b20082009410c6c6a2205200f3b01082005200d3b01042005200b360200200541066a200e3b0100200a422086200742ffffffff0f83844280808080107c21072003417f6a22030d000b0b2008450d022007422088a7410c6c22050d03200821050c040b2005450d070c060b2007a72204450d002004410c6c450d002008102e0b200041003602000c020b200820056a21032008210503402005410c6a22052003470d000b0b2007a7210d200241b8116a200110ab01200520086b410c6d21100240024020022802b8110d004104210b20022802bc11220320012802044104762205200520034b1b22054104742209417f4c0d0502402005450d002009102c220b450d050b2005ad21070240024002400240024002402003450d000340200241b0116a200110ab0120022802b0110d0620022802b411210e200241003a008818200241a8116a200110fc0420022f01a8110d0620022f01aa112105200241a0116a200110fc0420022f01a0110d0620022f01a2112109200241013a008818200220093b018218200220053b01801820024198116a200110fc0420022f0198110d0520022f019a11210520024190116a200110fc0420022f0190110d05200220022f0192113b018618200220053b018418200229038018210a20024188116a200110fc0420022f0188110d0620022f018a11210f024020074220882211a722052007a7470d00200541016a22092005490d0d20054101742212200920092012491b22094104200941044b1b220941ffffffff00712009464102742112200941047421090240024020050d0020024100360280180c010b20024104360288182002200b36028018200220114204863e0284180b200241c0186a2009201220024180186a107d20022802c818210920022802c0184101460d0320022802c418210b2009410476ad21070b200b20054104746a2209200f3b010c2009200a3702042009200e360200200742ffffffff0f83200541016aad4220868421072003417f6a22030d000b0b200b450d052007422088a741047422050d01200b21050c020b2009450d090c080b200b20056a2103200b21050340200541106a22052003470d000b0b2007a7211220024180116a200110ab01024002402002280280110d00200228028411220e200128020441146e22032003200e4b1bad42147e2207422088a70d092007a72203417f4c0d090240024020030d004104210f0c010b2003102c220f450d090b200341146ead2107024002400240024002400240200e450d00200241c0186a41086a21130340200241f8106a200110ab0120022802f8100d0620022802fc102114200241003a008c18200241f0106a200110fc0420022f01f0100d0620022f01f2102103200241e8106a200110fc0420022f01e8100d0620022f01ea102109200241013a008c18200220093b018218200220033b018018200241e0106a200110fc0420022f01e0100d0520022f01e2102103200241d8106a200110fc0420022f01d8100d0520022f01da102109200241023a008c18200220093b018618200220033b018418200241d0106a200110fc0420022f01d0100d0520022f01d2102103200241c8106a200110fc0420022f01c8100d05200220022f01ca103b018a18200220033b018818201320022802881836020020022002290380183703c018200241c0106a200110fc0420022f01c0100d0620022f01c210211520024180176a41086a20132802002203360200200241c0166a41086a22162003360200200220022903c018220a370380172002200a3703c01602402007422088a722032007a7470d00200341016a22092003490d1120034101742217200920092017491b22094104200941044b1bad42147e2207422088a74541027421092007a721170240024020030d0020024100360280180c010b20024104360288182002200f360280182002200341146c360284180b200241c0186a2017200920024180186a107d20022802c818210920022802c0184101460d0320022802c418210f200941146ead21070b200f200341146c6a22092014360200200920022903c0163702042009410c6a2016280200360200200920153b0110200742ffffffff0f83200341016aad422086842107200e417f6a220e0d000b0b200f450d052007422088a741146c22030d01200f21030c020b2009450d0d0c0c0b200f20036a2109200f21030340200341146a22032009470d000b0b2007a72109200241b8106a200110ab012003200f6b41146d21180240024020022802b8100d0020022802bc102213200128020441186e2203200320134b1bad42187e2207422088a70d0d2007a72203417f4c0d0d0240024020030d00410421140c010b2003102c2214450d0d0b200341186ead21070240024002400240024002402013450d000340200241b0106a200110ab0120022802b0100d0620022802b4102115200241003a009018200241a8106a200110fc0420022f01a8100d0620022f01aa102103200241a0106a200110fc0420022f01a0100d0620022f01a210210e200241013a0090182002200e3b018218200220033b01801820024198106a200110fc0420022f0198100d0520022f019a10210320024190106a200110fc0420022f0190100d0520022f019210210e200241023a0090182002200e3b018618200220033b01841820024188106a200110fc0420022f0188100d0520022f018a10210320024180106a200110fc0420022f0180100d0520022f018210210e200241033a0090182002200e3b018a18200220033b018818200241f80f6a200110fc0420022f01f80f0d0520022f01fa0f2103200241f00f6a200110fc0420022f01f00f0d05200220022f01f20f3b018e18200220033b018c18200241c0186a41086a220320024180186a41086a29030037030020022002290380183703c018200241e80f6a200110fc0420022f01e80f0d0620022f01ea0f211620024180176a41086a2003290300220a370300200241c0166a41086a2217200a370300200220022903c018220a370380172002200a3703c01602402007422088a722032007a7470d00200341016a220e2003490d1520034101742219200e200e2019491b220e4104200e41044b1bad42187e2207422088a745410274210e2007a721190240024020030d0020024100360280180c010b200241043602881820022014360280182002200341186c360284180b200241c0186a2019200e20024180186a107d20022802c818210e20022802c0184101460d0320022802c4182114200e41186ead21070b2014200341186c6a220e2015360200200e20022903c016370204200e410c6a2017290300370200200e20163b0114200742ffffffff0f83200341016aad4220868421072013417f6a22130d000b0b2014450d052007422088a741186c22030d01201421030c020b200e450d110c100b201420036a210e201421030340200341186a2203200e470d000b0b2007a7210e200241e00f6a200110ab01200320146b41186d211a0240024020022802e00f0d0020022802e40f22152001280204411c6e2203200320154b1bad421c7e2207422088a70d112007a72203417f4c0d110240024020030d00410421160c010b2003102c2216450d110b2003411c6ead21070240024002400240024002402015450d00200241c0186a41106a21170340200241d80f6a200110ab0120022802d80f0d0620022802dc0f2119200241003a009418200241d00f6a200110fc0420022f01d00f0d0620022f01d20f2103200241c80f6a200110fc0420022f01c80f0d0620022f01ca0f2113200241013a009418200220133b018218200220033b018018200241c00f6a200110fc0420022f01c00f0d0520022f01c20f2103200241b80f6a200110fc0420022f01b80f0d0520022f01ba0f2113200241023a009418200220133b018618200220033b018418200241b00f6a200110fc0420022f01b00f0d0520022f01b20f2103200241a80f6a200110fc0420022f01a80f0d0520022f01aa0f2113200241033a009418200220133b018a18200220033b018818200241a00f6a200110fc0420022f01a00f0d0520022f01a20f2103200241980f6a200110fc0420022f01980f0d0520022f019a0f2113200241043a009418200220133b018e18200220033b018c18200241900f6a200110fc0420022f01900f0d0520022f01920f2103200241880f6a200110fc0420022f01880f0d0520022f018a0f2113200241c0186a41086a221b20024180186a41086a290300370300200220133b019218200220033b0190182017200228029018360200200241053a00941820022002290380183703c018200241800f6a200110fc0420022f01800f0d0620022f01820f211c20024180176a41086a201b290300220a37030020024180176a41106a20172802002203360200200241c0166a41086a221b200a370300200241c0166a41106a221d2003360200200220022903c018220a370380172002200a3703c01602402007422088a722032007a7470d00200341016a22132003490d192003410174221e20132013201e491b22134104201341044b1bad421c7e2207422088a74541027421132007a7211e0240024020030d0020024100360280180c010b2002410436028818200220163602801820022003411c6c360284180b200241c0186a201e201320024180186a107d20022802c818211320022802c0184101460d0320022802c41821162013411c6ead21070b20162003411c6c6a22132019360200201320022903c0163702042013410c6a201b290300370200201341146a201d2802003602002013201c3b0118200742ffffffff0f83200341016aad4220868421072015417f6a22150d000b0b2016450d052007422088a7411c6c22030d01201621030c020b2013450d150c140b201620036a21132016210303402003411c6a22032013470d000b0b2007a72113200241f80e6a200110ab01200320166b411c6d211b0240024020022802f80e0d0020022802fc0e221720012802044105762203200320174b1b22034105742215417f4c0d150240024020030d00410421190c010b2015102c2219450d150b2003ad21070240024002400240024002402017450d000340200241f00e6a200110ab0120022802f00e0d0620022802f40e211c200241003a009818200241e80e6a200110fc0420022f01e80e0d0620022f01ea0e2103200241e00e6a200110fc0420022f01e00e0d0620022f01e20e2115200241013a009818200220153b018218200220033b018018200241d80e6a200110fc0420022f01d80e0d0520022f01da0e2103200241d00e6a200110fc0420022f01d00e0d0520022f01d20e2115200241023a009818200220153b018618200220033b018418200241c80e6a200110fc0420022f01c80e0d0520022f01ca0e2103200241c00e6a200110fc0420022f01c00e0d0520022f01c20e2115200241033a009818200220153b018a18200220033b018818200241b80e6a200110fc0420022f01b80e0d0520022f01ba0e2103200241b00e6a200110fc0420022f01b00e0d0520022f01b20e2115200241043a009818200220153b018e18200220033b018c18200241a80e6a200110fc0420022f01a80e0d0520022f01aa0e2103200241a00e6a200110fc0420022f01a00e0d0520022f01a20e2115200241053a009818200220153b019218200220033b019018200241980e6a200110fc0420022f01980e0d0520022f019a0e2103200241900e6a200110fc0420022f01900e0d0520022f01920e2115200241c0186a41086a221d20024180186a41086a290300370300200220153b019618200220033b019418200241c0186a41106a220320024180186a41106a290300370300200241063a00981820022002290380183703c018200241880e6a200110fc0420022f01880e0d0620022f018a0e211e20024180176a41086a201d290300220a37030020024180176a41106a20032903002211370300200241c0166a41086a221d200a370300200241c0166a41106a221f2011370300200220022903c018220a370380172002200a3703c01602402007422088220aa722152007a7470d00201541016a22032015490d1d20154101742220200320032020491b22034104200341044b1b220341ffffff3f712003464102742120200341057421030240024020150d0020024100360280180c010b200241043602881820022019360280182002200a4205863e0284180b200241c0186a2003202020024180186a107d20022802c818210320022802c0184101460d0320022802c41821192003410576ad21070b201920154105746a2203201c360200200320022903c0163702042003410c6a201d290300370200200341146a201f2903003702002003201e3b011c200742ffffffff0f83201541016aad4220868421072017417f6a22170d000b0b2019450d052007422088a741057422030d01201921030c020b2003450d190c180b201920036a2115201921030340200341206a22032015470d000b0b2007a72117200241800e6a200110ab010240024020022802800e0d0020022802840e221c200128020441246e22152015201c4b1bad42247e2207422088a70d192007a72215417f4c0d190240024020150d004104211e0c010b2015102c221e450d190b201541246ead2107024002400240024002400240201c450d00200241c0176a41186a211f0340200241f80d6a200110ab0120022802f80d0d0620022802fc0d2120200241003a009c18200241f00d6a200110fc0420022f01f00d0d0620022f01f20d2115200241e80d6a200110fc0420022f01e80d0d0620022f01ea0d211d200241013a009c182002201d3b018218200220153b018018200241e00d6a200110fc0420022f01e00d0d0520022f01e20d2115200241d80d6a200110fc0420022f01d80d0d0520022f01da0d211d200241023a009c182002201d3b018618200220153b018418200241d00d6a200110fc0420022f01d00d0d0520022f01d20d2115200241c80d6a200110fc0420022f01c80d0d0520022f01ca0d211d200241033a009c182002201d3b018a18200220153b018818200241c00d6a200110fc0420022f01c00d0d0520022f01c20d2115200241b80d6a200110fc0420022f01b80d0d0520022f01ba0d211d200241043a009c182002201d3b018e18200220153b018c18200241b00d6a200110fc0420022f01b00d0d0520022f01b20d2115200241a80d6a200110fc0420022f01a80d0d0520022f01aa0d211d200241053a009c182002201d3b019218200220153b019018200241a00d6a200110fc0420022f01a00d0d0520022f01a20d2115200241980d6a200110fc0420022f01980d0d0520022f019a0d211d200241063a009c182002201d3b019618200220153b019418200241900d6a200110fc0420022f01900d0d0520022f01920d2115200241880d6a200110fc0420022f01880d0d0520022f018a0d211d200241c0176a41106a222120024180186a41106a290300370300200241c0176a41086a222220024180186a41086a2903003703002002201d3b019a18200220153b019818201f200228029818360200200241073a009c182002200229038018220a3703c0182002200a3703c017200241800d6a200110fc0420022f01800d0d0620022f01820d2123200241c0166a41086a2022290300220a370300200241c0166a41106a20212903002211370300200241c0166a41186a201f280200221536020020024180166a41086a2221200a37030020024180166a41106a2222201137030020024180166a41186a22242015360200200220022903c017220a3703c0162002200a3703801602402007422088a7221d2007a7470d00201d41016a2215201d490d21201d4101742225201520152025491b22154104201541044b1bad42247e2207422088a74541027421152007a7212502400240201d0d0020024100360280180c010b20024104360288182002201e360280182002201d41246c360284180b200241c0186a2025201520024180186a107d20022802c818211520022802c0184101460d0320022802c418211e201541246ead21070b201e201d41246c6a2215202036020020152002290380163702042015410c6a2021290300370200201541146a20222903003702002015411c6a2024280200360200201520233b0120200742ffffffff0f83201d41016aad422086842107201c417f6a221c0d000b0b201e450d052007422088a741246c22150d01201e21150c020b2015450d1d0c1c0b201e20156a211c201e21150340201541246a2215201c470d000b0b2007a7211c200241f80c6a200110ab012015201e6b41246d21210240024020022802f80c0d0020022802fc0c221d200128020441286e22152015201d4b1bad42287e2207422088a70d1d2007a72215417f4c0d1d0240024020150d00410421200c010b2015102c2220450d1d0b201541286ead2107024002400240024002400240201d450d000340200241f00c6a200110ab0120022802f00c0d0620022802f40c2122200241003a00a018200241e80c6a200110fc0420022f01e80c0d0620022f01ea0c2115200241e00c6a200110fc0420022f01e00c0d0620022f01e20c211f200241013a00a0182002201f3b018218200220153b018018200241d80c6a200110fc0420022f01d80c0d0520022f01da0c2115200241d00c6a200110fc0420022f01d00c0d0520022f01d20c211f200241023a00a0182002201f3b018618200220153b018418200241c80c6a200110fc0420022f01c80c0d0520022f01ca0c2115200241c00c6a200110fc0420022f01c00c0d0520022f01c20c211f200241033a00a0182002201f3b018a18200220153b018818200241b80c6a200110fc0420022f01b80c0d0520022f01ba0c2115200241b00c6a200110fc0420022f01b00c0d0520022f01b20c211f200241043a00a0182002201f3b018e18200220153b018c18200241a80c6a200110fc0420022f01a80c0d0520022f01aa0c2115200241a00c6a200110fc0420022f01a00c0d0520022f01a20c211f200241053a00a0182002201f3b019218200220153b019018200241980c6a200110fc0420022f01980c0d0520022f019a0c2115200241900c6a200110fc0420022f01900c0d0520022f01920c211f200241063a00a0182002201f3b019618200220153b019418200241880c6a200110fc0420022f01880c0d0520022f018a0c2115200241800c6a200110fc0420022f01800c0d0520022f01820c211f200241073a00a0182002201f3b019a18200220153b019818200241f80b6a200110fc0420022f01f80b0d0520022f01fa0b2115200241f00b6a200110fc0420022f01f00b0d0520022f01f20b211f200241c0176a41106a222320024180186a41106a2903003703002002201f3b019e18200220153b019c18200241c0176a41186a221520024180186a41186a290300370300200241083a00a018200241c0176a41086a221f20024180186a41086a2903003703002002200229038018220a3703c0182002200a3703c017200241e80b6a200110fc0420022f01e80b0d0620022f01ea0b2124200241c0166a41086a201f290300220a370300200241c0166a41106a20232903002211370300200241c0166a41186a2015290300222637030020024180166a41086a2223200a37030020024180166a41106a2225201137030020024180166a41186a22272026370300200220022903c017220a3703c0162002200a3703801602402007422088a7221f2007a7470d00201f41016a2215201f490d25201f4101742228201520152028491b22154104201541044b1bad42287e2207422088a74541027421152007a7212802400240201f0d0020024100360280180c010b200241043602881820022020360280182002201f41286c360284180b200241c0186a2028201520024180186a107d20022802c818211520022802c0184101460d0320022802c4182120201541286ead21070b2020201f41286c6a2215202236020020152002290380163702042015410c6a2023290300370200201541146a20252903003702002015411c6a2027290300370200201520243b0124200742ffffffff0f83201f41016aad422086842107201d417f6a221d0d000b0b2020450d052007422088a741286c22150d01202021150c020b2015450d210c200b202020156a211d202021150340201541286a2215201d470d000b0b2007a7211d200241e00b6a200110ab01201520206b41286d21240240024020022802e00b0d0020022802e40b221f2001280204412c6e22152015201f4b1bad422c7e2207422088a70d212007a72215417f4c0d210240024020150d00410421220c010b2015102c2222450d210b2015412c6ead2107024002400240024002400240201f450d000340200241d80b6a200110ab0120022802d80b0d0620022802dc0b2125200241003a00a418200241d00b6a200110fc0420022f01d00b0d0620022f01d20b2115200241c80b6a200110fc0420022f01c80b0d0620022f01ca0b2123200241013a00a418200220233b018218200220153b018018200241c00b6a200110fc0420022f01c00b0d0520022f01c20b2115200241b80b6a200110fc0420022f01b80b0d0520022f01ba0b2123200241023a00a418200220233b018618200220153b018418200241b00b6a200110fc0420022f01b00b0d0520022f01b20b2115200241a80b6a200110fc0420022f01a80b0d0520022f01aa0b2123200241033a00a418200220233b018a18200220153b018818200241a00b6a200110fc0420022f01a00b0d0520022f01a20b2115200241980b6a200110fc0420022f01980b0d0520022f019a0b2123200241043a00a418200220233b018e18200220153b018c18200241900b6a200110fc0420022f01900b0d0520022f01920b2115200241880b6a200110fc0420022f01880b0d0520022f018a0b2123200241053a00a418200220233b019218200220153b019018200241800b6a200110fc0420022f01800b0d0520022f01820b2115200241f80a6a200110fc0420022f01f80a0d0520022f01fa0a2123200241063a00a418200220233b019618200220153b019418200241f00a6a200110fc0420022f01f00a0d0520022f01f20a2115200241e80a6a200110fc0420022f01e80a0d0520022f01ea0a2123200241073a00a418200220233b019a18200220153b019818200241e00a6a200110fc0420022f01e00a0d0520022f01e20a2115200241d80a6a200110fc0420022f01d80a0d0520022f01da0a2123200241083a00a418200220233b019e18200220153b019c18200241d00a6a200110fc0420022f01d00a0d0520022f01d20a2115200241c80a6a200110fc0420022f01c80a0d05200220022f01ca0a3b01a218200220153b01a018200241093a00a418200241c0186a41086a20024180186a41086a290300220a370300200241c0186a41106a20024180186a41106a2903002211370300200241c0186a41186a20024180186a41186a2903002226370300200241c0186a41206a20022802a0182215360200200220022903801822293703c018200241c0176a41206a22232015360200200241c0176a41186a22272026370300200241c0176a41106a22282011370300200241c0176a41086a222a200a370300200220293703c017200241c00a6a200110fc0420022f01c00a0d0620022f01c20a212b20024180176a41206a20232802002215360200200241c0166a41086a202a290300220a370300200241c0166a41106a20282903002211370300200241c0166a41186a20272903002226370300200241c0166a41206a201536020020024180166a41086a2227200a37030020024180166a41106a2228201137030020024180166a41186a222a202637030020024180166a41206a222c2015360200200220022903c017220a3703c0162002200a3703801602402007422088a722232007a7470d00202341016a22152023490d292023410174222d20152015202d491b22154104201541044b1bad422c7e2207422088a74541027421152007a7212d0240024020230d0020024100360280180c010b2002410436028818200220223602801820022023412c6c360284180b200241c0186a202d201520024180186a107d20022802c818211520022802c0184101460d0320022802c41821222015412c6ead21070b20222023412c6c6a2215202536020020152002290380163702042015410c6a2027290300370200201541146a20282903003702002015411c6a202a290300370200201541246a202c2802003602002015202b3b0128200742ffffffff0f83202341016aad422086842107201f417f6a221f0d000b0b2022450d052007422088a7412c6c22150d01202221150c020b2015450d250c240b202220156a211f2022211503402015412c6a2215201f470d000b0b2007a7211f200241b80a6a200110ab01201520226b412c6d21280240024020022802b80a0d0020022802bc0a2215200128020441306e2223202320154b1bad42307e2207422088a70d252007a72223417f4c0d250240024020230d00410421250c010b2023102c2225450d250b202341306ead21070240024002400240024002402015450d000340200241b00a6a200110ab0120022802b00a0d0620022802b40a212a200241003a00a818200241a80a6a200110fc0420022f01a80a0d0620022f01aa0a2123200241a00a6a200110fc0420022f01a00a0d0620022f01a20a2127200241013a00a818200220273b018218200220233b018018200241980a6a200110fc0420022f01980a0d0520022f019a0a2123200241900a6a200110fc0420022f01900a0d0520022f01920a2127200241023a00a818200220273b018618200220233b018418200241880a6a200110fc0420022f01880a0d0520022f018a0a2123200241800a6a200110fc0420022f01800a0d0520022f01820a2127200241033a00a818200220273b018a18200220233b018818200241f8096a200110fc0420022f01f8090d0520022f01fa092123200241f0096a200110fc0420022f01f0090d0520022f01f2092127200241043a00a818200220273b018e18200220233b018c18200241e8096a200110fc0420022f01e8090d0520022f01ea092123200241e0096a200110fc0420022f01e0090d0520022f01e2092127200241053a00a818200220273b019218200220233b019018200241d8096a200110fc0420022f01d8090d0520022f01da092123200241d0096a200110fc0420022f01d0090d0520022f01d2092127200241063a00a818200220273b019618200220233b019418200241c8096a200110fc0420022f01c8090d0520022f01ca092123200241c0096a200110fc0420022f01c0090d0520022f01c2092127200241073a00a818200220273b019a18200220233b019818200241b8096a200110fc0420022f01b8090d0520022f01ba092123200241b0096a200110fc0420022f01b0090d0520022f01b2092127200241083a00a818200220273b019e18200220233b019c18200241a8096a200110fc0420022f01a8090d0520022f01aa092123200241a0096a200110fc0420022f01a0090d0520022f01a2092127200241093a00a818200220273b01a218200220233b01a01820024198096a200110fc0420022f0198090d0520022f019a09212320024190096a200110fc0420022f0190090d05200220022f0192093b01a618200220233b01a4182002410a3a00a818200241c0186a41086a20024180186a41086a290300220a370300200241c0186a41106a20024180186a41106a2903002211370300200241c0186a41186a20024180186a41186a2903002226370300200241c0186a41206a20024180186a41206a29030022293703002002200229038018222e3703c018200241c0176a41206a22232029370300200241c0176a41186a22272026370300200241c0176a41106a222b2011370300200241c0176a41086a222c200a3703002002202e3703c01720024188096a200110fc0420022f0188090d0620022f018a09212d20024180176a41206a2023290300220a370300200241c0166a41086a202c2903002211370300200241c0166a41106a202b2903002226370300200241c0166a41186a20272903002229370300200241c0166a41206a200a37030020024180166a41086a222b201137030020024180166a41106a222c202637030020024180166a41186a222f202937030020024180166a41206a2230200a370300200220022903c017220a3703c0162002200a3703801602402007422088a722272007a7470d00202741016a22232027490d2d20274101742231202320232031491b22234104202341044b1bad42307e2207422088a74541027421232007a721310240024020270d0020024100360280180c010b200241043602881820022025360280182002202741306c360284180b200241c0186a2031202320024180186a107d20022802c818212320022802c0184101460d0320022802c4182125202341306ead21070b2025202741306c6a2223202a36020020232002290380163702042023410c6a202b290300370200202341146a202c2903003702002023411c6a202f290300370200202341246a20302903003702002023202d3b012c200742ffffffff0f83202741016aad4220868421072015417f6a22150d000b0b2025450d052007422088a741306c22150d01202521150c020b2023450d290c280b202520156a2123202521150340201541306a22152023470d000b0b2007a7212320024180096a200110ab01201520256b41306d212c024002402002280280090d002002280284092227200128020441346e2215201520274b1bad42347e2207422088a70d292007a72215417f4c0d290240024020150d004104212a0c010b2015102c222a450d290b201541346ead21070240024002400240024002402027450d000340200241f8086a200110ab0120022802f8080d0620022802fc08212d200241003a00ac18200241f0086a200110fc0420022f01f0080d0620022f01f2082115200241e8086a200110fc0420022f01e8080d0620022f01ea08212b200241013a00ac182002202b3b018218200220153b018018200241e0086a200110fc0420022f01e0080d0520022f01e2082115200241d8086a200110fc0420022f01d8080d0520022f01da08212b200241023a00ac182002202b3b018618200220153b018418200241d0086a200110fc0420022f01d0080d0520022f01d2082115200241c8086a200110fc0420022f01c8080d0520022f01ca08212b200241033a00ac182002202b3b018a18200220153b018818200241c0086a200110fc0420022f01c0080d0520022f01c2082115200241b8086a200110fc0420022f01b8080d0520022f01ba08212b200241043a00ac182002202b3b018e18200220153b018c18200241b0086a200110fc0420022f01b0080d0520022f01b2082115200241a8086a200110fc0420022f01a8080d0520022f01aa08212b200241053a00ac182002202b3b019218200220153b019018200241a0086a200110fc0420022f01a0080d0520022f01a208211520024198086a200110fc0420022f0198080d0520022f019a08212b200241063a00ac182002202b3b019618200220153b01941820024190086a200110fc0420022f0190080d0520022f019208211520024188086a200110fc0420022f0188080d0520022f018a08212b200241073a00ac182002202b3b019a18200220153b01981820024180086a200110fc0420022f0180080d0520022f0182082115200241f8076a200110fc0420022f01f8070d0520022f01fa07212b200241083a00ac182002202b3b019e18200220153b019c18200241f0076a200110fc0420022f01f0070d0520022f01f2072115200241e8076a200110fc0420022f01e8070d0520022f01ea07212b200241093a00ac182002202b3b01a218200220153b01a018200241e0076a200110fc0420022f01e0070d0520022f01e2072115200241d8076a200110fc0420022f01d8070d0520022f01da07212b2002410a3a00ac182002202b3b01a618200220153b01a418200241d0076a200110fc0420022f01d0070d0520022f01d2072115200241c8076a200110fc0420022f01c8070d05200220022f01ca073b01aa18200220153b01a8182002410b3a00ac18200241c0186a41086a20024180186a41086a290300220a370300200241c0186a41106a20024180186a41106a2903002211370300200241c0186a41186a20024180186a41186a2903002226370300200241c0186a41206a20024180186a41206a2903002229370300200241c0186a41286a20022802a81822153602002002200229038018222e3703c018200241c0176a41286a222b2015360200200241c0176a41206a222f2029370300200241c0176a41186a22302026370300200241c0176a41106a22312011370300200241c0176a41086a2232200a3703002002202e3703c017200241c0076a200110fc0420022f01c0070d0620022f01c207213320024180176a41286a202b280200221536020020024180176a41206a202f290300220a370300200241c0166a41086a20322903002211370300200241c0166a41106a20312903002226370300200241c0166a41186a20302903002229370300200241c0166a41206a200a370300200241c0166a41286a2015360200200220022903c017222e3703c01620024180166a41286a222f201536020020024180166a41206a2230200a37030020024180166a41186a2231202937030020024180166a41106a2232202637030020024180166a41086a223420113703002002202e3703801602402007422088a7222b2007a7470d00202b41016a2215202b490d31202b4101742235201520152035491b22154104201541044b1bad42347e2207422088a74541027421152007a7213502400240202b0d0020024100360280180c010b20024104360288182002202a360280182002202b41346c360284180b200241c0186a2035201520024180186a107d20022802c818211520022802c0184101460d0320022802c418212a201541346ead21070b202a202b41346c6a2215202d36020020152002290380163702042015410c6a2034290300370200201541146a20322903003702002015411c6a2031290300370200201541246a20302903003702002015412c6a202f280200360200201520333b0130200742ffffffff0f83202b41016aad4220868421072027417f6a22270d000b0b202a450d052007422088a741346c22150d01202a21150c020b2015450d2d0c2c0b202a20156a2127202a21150340201541346a22152027470d000b0b2007a72127200241b8076a200110ab012015202a6b41346d212f0240024020022802b8070d0020022802bc072215200128020441386e222b202b20154b1bad42387e2207422088a70d2d2007a7222b417f4c0d2d02400240202b0d004104212d0c010b202b102c222d450d2d0b202b41386ead21070240024002400240024002402015450d000340200241b0076a200110ab0120022802b0070d0620022802b4072131200241003a00b018200241a8076a200110fc0420022f01a8070d0620022f01aa07212b200241a0076a200110fc0420022f01a0070d0620022f01a2072130200241013a00b018200220303b0182182002202b3b01801820024198076a200110fc0420022f0198070d0520022f019a07212b20024190076a200110fc0420022f0190070d0520022f0192072130200241023a00b018200220303b0186182002202b3b01841820024188076a200110fc0420022f0188070d0520022f018a07212b20024180076a200110fc0420022f0180070d0520022f0182072130200241033a00b018200220303b018a182002202b3b018818200241f8066a200110fc0420022f01f8060d0520022f01fa06212b200241f0066a200110fc0420022f01f0060d0520022f01f2062130200241043a00b018200220303b018e182002202b3b018c18200241e8066a200110fc0420022f01e8060d0520022f01ea06212b200241e0066a200110fc0420022f01e0060d0520022f01e2062130200241053a00b018200220303b0192182002202b3b019018200241d8066a200110fc0420022f01d8060d0520022f01da06212b200241d0066a200110fc0420022f01d0060d0520022f01d2062130200241063a00b018200220303b0196182002202b3b019418200241c8066a200110fc0420022f01c8060d0520022f01ca06212b200241c0066a200110fc0420022f01c0060d0520022f01c2062130200241073a00b018200220303b019a182002202b3b019818200241b8066a200110fc0420022f01b8060d0520022f01ba06212b200241b0066a200110fc0420022f01b0060d0520022f01b2062130200241083a00b018200220303b019e182002202b3b019c18200241a8066a200110fc0420022f01a8060d0520022f01aa06212b200241a0066a200110fc0420022f01a0060d0520022f01a2062130200241093a00b018200220303b01a2182002202b3b01a01820024198066a200110fc0420022f0198060d0520022f019a06212b20024190066a200110fc0420022f0190060d0520022f01920621302002410a3a00b018200220303b01a6182002202b3b01a41820024188066a200110fc0420022f0188060d0520022f018a06212b20024180066a200110fc0420022f0180060d0520022f01820621302002410b3a00b018200220303b01aa182002202b3b01a818200241f8056a200110fc0420022f01f8050d0520022f01fa05212b200241f0056a200110fc0420022f01f0050d05200220022f01f2053b01ae182002202b3b01ac182002410c3a00b018200241c0186a41086a20024180186a41086a290300220a370300200241c0186a41106a20024180186a41106a2903002211370300200241c0186a41186a20024180186a41186a2903002226370300200241c0186a41206a20024180186a41206a2903002229370300200241c0186a41286a20024180186a41286a290300222e370300200220022903801822363703c018200241c0176a41286a222b202e370300200241c0176a41206a22302029370300200241c0176a41186a22322026370300200241c0176a41106a22332011370300200241c0176a41086a2234200a370300200220363703c017200241e8056a200110fc0420022f01e8050d0620022f01ea05213520024180176a41286a202b290300220a37030020024180176a41206a20302903002211370300200241c0166a41086a20342903002226370300200241c0166a41106a20332903002229370300200241c0166a41186a2032290300222e370300200241c0166a41206a2011370300200241c0166a41286a200a370300200220022903c01722363703c01620024180166a41286a2232200a37030020024180166a41206a2233201137030020024180166a41186a2234202e37030020024180166a41106a2237202937030020024180166a41086a22382026370300200220363703801602402007422088a722302007a7470d00203041016a222b2030490d3520304101742239202b202b2039491b222b4104202b41044b1bad42387e2207422088a745410274212b2007a721390240024020300d0020024100360280180c010b20024104360288182002202d360280182002203041386c360284180b200241c0186a2039202b20024180186a107d20022802c818212b20022802c0184101460d0320022802c418212d202b41386ead21070b202d203041386c6a222b2031360200202b200229038016370204202b410c6a2038290300370200202b41146a2037290300370200202b411c6a2034290300370200202b41246a2033290300370200202b412c6a2032290300370200202b20353b0134200742ffffffff0f83203041016aad4220868421072015417f6a22150d000b0b202d450d052007422088a741386c22150d01202d21150c020b202b450d310c300b202d20156a212b202d21150340201541386a2215202b470d000b0b2007a7212b200241e0056a200110ab012015202d6b41386d21320240024020022802e0050d0020022802e40522152001280204413c6e2230203020154b1bad423c7e2207422088a70d312007a72230417f4c0d310240024020300d00410421310c010b2030102c2231450d310b2030413c6ead21070240024002400240024002402015450d000340200241d8056a200110ab0120022802d8050d0620022802dc052134200241003a00b418200241d0056a200110fc0420022f01d0050d0620022f01d2052130200241c8056a200110fc0420022f01c8050d0620022f01ca052133200241013a00b418200220333b018218200220303b018018200241c0056a200110fc0420022f01c0050d0520022f01c2052130200241b8056a200110fc0420022f01b8050d0520022f01ba052133200241023a00b418200220333b018618200220303b018418200241b0056a200110fc0420022f01b0050d0520022f01b2052130200241a8056a200110fc0420022f01a8050d0520022f01aa052133200241033a00b418200220333b018a18200220303b018818200241a0056a200110fc0420022f01a0050d0520022f01a205213020024198056a200110fc0420022f0198050d0520022f019a052133200241043a00b418200220333b018e18200220303b018c1820024190056a200110fc0420022f0190050d0520022f019205213020024188056a200110fc0420022f0188050d0520022f018a052133200241053a00b418200220333b019218200220303b01901820024180056a200110fc0420022f0180050d0520022f0182052130200241f8046a200110fc0420022f01f8040d0520022f01fa042133200241063a00b418200220333b019618200220303b019418200241f0046a200110fc0420022f01f0040d0520022f01f2042130200241e8046a200110fc0420022f01e8040d0520022f01ea042133200241073a00b418200220333b019a18200220303b019818200241e0046a200110fc0420022f01e0040d0520022f01e2042130200241d8046a200110fc0420022f01d8040d0520022f01da042133200241083a00b418200220333b019e18200220303b019c18200241d0046a200110fc0420022f01d0040d0520022f01d2042130200241c8046a200110fc0420022f01c8040d0520022f01ca042133200241093a00b418200220333b01a218200220303b01a018200241c0046a200110fc0420022f01c0040d0520022f01c2042130200241b8046a200110fc0420022f01b8040d0520022f01ba0421332002410a3a00b418200220333b01a618200220303b01a418200241b0046a200110fc0420022f01b0040d0520022f01b2042130200241a8046a200110fc0420022f01a8040d0520022f01aa0421332002410b3a00b418200220333b01aa18200220303b01a818200241a0046a200110fc0420022f01a0040d0520022f01a204213020024198046a200110fc0420022f0198040d0520022f019a0421332002410c3a00b418200220333b01ae18200220303b01ac1820024190046a200110fc0420022f0190040d0520022f019204213020024188046a200110fc0420022f0188040d05200220022f018a043b01b218200220303b01b0182002410d3a00b418200241c0186a41086a223020024180186a41086a290300370300200241c0186a41106a223320024180186a41106a290300370300200241c0186a41186a223520024180186a41186a290300370300200241c0186a41206a223720024180186a41206a290300370300200241c0186a41286a223820024180186a41286a290300370300200241c0186a41306a223920022802b01836020020022002290380183703c018200241c0176a41306a223a2039280200360200200241c0176a41286a22392038290300370300200241c0176a41206a22382037290300370300200241c0176a41186a22372035290300370300200241c0176a41106a22352033290300370300200241c0176a41086a22332030290300370300200220022903c0183703c01720024180046a200110fc0420022f0180040d0620022f018204213b20024180176a41306a203a280200223036020020024180176a41286a2039290300220a37030020024180176a41206a20382903002211370300200241c0166a41086a22382033290300370300200241c0166a41106a22332035290300370300200241c0166a41186a22352037290300370300200241c0166a41206a22372011370300200241c0166a41286a2239200a370300200241c0166a41306a223a2030360200200220022903c0173703c01620024180166a41306a223c203a28020036020020024180166a41286a223a203929030037030020024180166a41206a2239203729030037030020024180166a41186a2237203529030037030020024180166a41106a2235203329030037030020024180166a41086a223d2038290300370300200220022903c0163703801602402007422088a722332007a7470d00203341016a22302033490d3920334101742238203020302038491b22304104203041044b1bad423c7e2207422088a74541027421302007a721380240024020330d0020024100360280180c010b2002410436028818200220313602801820022033413c6c360284180b200241c0186a2038203020024180186a107d20022802c818213020022802c0184101460d0320022802c41821312030413c6ead21070b20312033413c6c6a2230203436020020302002290380163702042030410c6a203d290300370200203041146a20352903003702002030411c6a2037290300370200203041246a20392903003702002030412c6a203a290300370200203041346a203c2802003602002030203b3b0138200742ffffffff0f83203341016aad4220868421072015417f6a22150d000b0b2031450d052007422088a7413c6c22150d01203121150c020b2030450d350c340b203120156a21302031211503402015413c6a22152030470d000b0b2007a72130200241f8036a200110ab01201520316b413c6d21350240024020022802f8030d0020022802fc03221520012802044106762233203320154b1b22334106742234417f4c0d350240024020330d00410421340c010b2034102c2234450d350b2033ad21070240024002400240024002402015450d000340200241f0036a200110ab0120022802f0030d0620022802f4032138200241003a00b818200241e8036a200110fc0420022f01e8030d0620022f01ea032133200241e0036a200110fc0420022f01e0030d0620022f01e2032137200241013a00b818200220373b018218200220333b018018200241d8036a200110fc0420022f01d8030d0520022f01da032133200241d0036a200110fc0420022f01d0030d0520022f01d2032137200241023a00b818200220373b018618200220333b018418200241c8036a200110fc0420022f01c8030d0520022f01ca032133200241c0036a200110fc0420022f01c0030d0520022f01c2032137200241033a00b818200220373b018a18200220333b018818200241b8036a200110fc0420022f01b8030d0520022f01ba032133200241b0036a200110fc0420022f01b0030d0520022f01b2032137200241043a00b818200220373b018e18200220333b018c18200241a8036a200110fc0420022f01a8030d0520022f01aa032133200241a0036a200110fc0420022f01a0030d0520022f01a2032137200241053a00b818200220373b019218200220333b01901820024198036a200110fc0420022f0198030d0520022f019a03213320024190036a200110fc0420022f0190030d0520022f0192032137200241063a00b818200220373b019618200220333b01941820024188036a200110fc0420022f0188030d0520022f018a03213320024180036a200110fc0420022f0180030d0520022f0182032137200241073a00b818200220373b019a18200220333b019818200241f8026a200110fc0420022f01f8020d0520022f01fa022133200241f0026a200110fc0420022f01f0020d0520022f01f2022137200241083a00b818200220373b019e18200220333b019c18200241e8026a200110fc0420022f01e8020d0520022f01ea022133200241e0026a200110fc0420022f01e0020d0520022f01e2022137200241093a00b818200220373b01a218200220333b01a018200241d8026a200110fc0420022f01d8020d0520022f01da022133200241d0026a200110fc0420022f01d0020d0520022f01d20221372002410a3a00b818200220373b01a618200220333b01a418200241c8026a200110fc0420022f01c8020d0520022f01ca022133200241c0026a200110fc0420022f01c0020d0520022f01c20221372002410b3a00b818200220373b01aa18200220333b01a818200241b8026a200110fc0420022f01b8020d0520022f01ba022133200241b0026a200110fc0420022f01b0020d0520022f01b20221372002410c3a00b818200220373b01ae18200220333b01ac18200241a8026a200110fc0420022f01a8020d0520022f01aa022133200241a0026a200110fc0420022f01a0020d0520022f01a20221372002410d3a00b818200220373b01b218200220333b01b01820024198026a200110fc0420022f0198020d0520022f019a02213320024190026a200110fc0420022f0190020d05200220022f0192023b01b618200220333b01b4182002410e3a00b818200241c0186a41086a223320024180186a41086a290300370300200241c0186a41106a223720024180186a41106a290300370300200241c0186a41186a223920024180186a41186a290300370300200241c0186a41206a223a20024180186a41206a290300370300200241c0186a41286a223b20024180186a41286a290300370300200241c0186a41306a223c20024180186a41306a29030037030020022002290380183703c018200241c0176a41306a223d203c290300370300200241c0176a41286a223c203b290300370300200241c0176a41206a223b203a290300370300200241c0176a41186a223a2039290300370300200241c0176a41106a22392037290300370300200241c0176a41086a22372033290300370300200220022903c0183703c01720024188026a200110fc0420022f0188020d0620022f018a02213e20024180176a41306a203d290300220a37030020024180176a41286a203c290300221137030020024180176a41206a203b2903002226370300200241c0166a41086a22332037290300370300200241c0166a41106a22372039290300370300200241c0166a41186a2239203a290300370300200241c0166a41206a223a2026370300200241c0166a41286a223b2011370300200241c0166a41306a223c200a370300200220022903c0173703c01620024180166a41306a223d203c29030037030020024180166a41286a223c203b29030037030020024180166a41206a223b203a29030037030020024180166a41186a223a203929030037030020024180166a41106a2239203729030037030020024180166a41086a223f2033290300370300200220022903c0163703801602402007422088220aa722372007a7470d00203741016a22332037490d3d20374101742240203320332040491b22334104203341044b1b223341ffffff1f712033464102742140203341067421330240024020370d0020024100360280180c010b200241043602881820022034360280182002200a4206863e0284180b200241c0186a2033204020024180186a107d20022802c818213320022802c0184101460d0320022802c41821342033410676ad21070b203420374106746a2233203836020020332002290380163702042033410c6a203f290300370200203341146a20392903003702002033411c6a203a290300370200203341246a203b2903003702002033412c6a203c290300370200203341346a203d2903003702002033203e3b013c200742ffffffff0f83203741016aad4220868421072015417f6a22150d000b0b2034450d052007422088a741067422150d01203421150c020b2033450d390c380b203420156a2133203421150340201541c0006a22152033470d000b0b2007a7213320024180026a200110ab0102402002280280020d002002280284022237200128020441c4006e2238203820374b1bad42c4007e2207422088a70d382007a72238417f4c0d380240024020380d00410421390c010b2038102c2239450d380b203841c4006ead21070240024002400240024002402037450d000340200241f8016a200110ab0120022802f8010d0620022802fc01213b200241003a00bc18200241f0016a200110fc0420022f01f0010d0620022f01f2012138200241e8016a200110fc0420022f01e8010d0620022f01ea01213a200241013a00bc182002203a3b018218200220383b018018200241e0016a200110fc0420022f01e0010d0520022f01e2012138200241d8016a200110fc0420022f01d8010d0520022f01da01213a200241023a00bc182002203a3b018618200220383b018418200241d0016a200110fc0420022f01d0010d0520022f01d2012138200241c8016a200110fc0420022f01c8010d0520022f01ca01213a200241033a00bc182002203a3b018a18200220383b018818200241c0016a200110fc0420022f01c0010d0520022f01c2012138200241b8016a200110fc0420022f01b8010d0520022f01ba01213a200241043a00bc182002203a3b018e18200220383b018c18200241b0016a200110fc0420022f01b0010d0520022f01b2012138200241a8016a200110fc0420022f01a8010d0520022f01aa01213a200241053a00bc182002203a3b019218200220383b019018200241a0016a200110fc0420022f01a0010d0520022f01a201213820024198016a200110fc0420022f0198010d0520022f019a01213a200241063a00bc182002203a3b019618200220383b01941820024190016a200110fc0420022f0190010d0520022f019201213820024188016a200110fc0420022f0188010d0520022f018a01213a200241073a00bc182002203a3b019a18200220383b01981820024180016a200110fc0420022f0180010d0520022f0182012138200241f8006a200110fc0420022f01780d0520022f017a213a200241083a00bc182002203a3b019e18200220383b019c18200241f0006a200110fc0420022f01700d0520022f01722138200241e8006a200110fc0420022f01680d0520022f016a213a200241093a00bc182002203a3b01a218200220383b01a018200241e0006a200110fc0420022f01600d0520022f01622138200241d8006a200110fc0420022f01580d0520022f015a213a2002410a3a00bc182002203a3b01a618200220383b01a418200241d0006a200110fc0420022f01500d0520022f01522138200241c8006a200110fc0420022f01480d0520022f014a213a2002410b3a00bc182002203a3b01aa18200220383b01a818200241c0006a200110fc0420022f01400d0520022f01422138200241386a200110fc0420022f01380d0520022f013a213a2002410c3a00bc182002203a3b01ae18200220383b01ac18200241306a200110fc0420022f01300d0520022f01322138200241286a200110fc0420022f01280d0520022f012a213a2002410d3a00bc182002203a3b01b218200220383b01b018200241206a200110fc0420022f01200d0520022f01222138200241186a200110fc0420022f01180d0520022f011a213a2002410e3a00bc182002203a3b01b618200220383b01b418200241106a200110fc0420022f01100d0520022f01122138200241086a200110fc0420022f01080d05200220022f010a3b01ba18200220383b01b8182002410f3a00bc18200241c0186a41086a223820024180186a41086a290300370300200241c0186a41106a223a20024180186a41106a290300370300200241c0186a41186a223c20024180186a41186a290300370300200241c0186a41206a223d20024180186a41206a290300370300200241c0186a41286a223e20024180186a41286a290300370300200241c0186a41306a223f20024180186a41306a290300370300200241c0186a41386a224020022802b81836020020022002290380183703c018200241c0176a41086a22412038290300370300200241c0176a41106a2238203a290300370300200241c0176a41186a223a203c290300370300200241c0176a41206a223c203d290300370300200241c0176a41286a223d203e290300370300200241c0176a41306a223e203f290300370300200241c0176a41386a223f2040280200360200200220022903c0183703c0172002200110fc0420022f01000d0620022f0102214020024180176a41386a203f280200223f36020020024180176a41306a203e290300220a37030020024180176a41286a203d290300221137030020024180176a41206a203c2903002226370300200241c0166a41086a223c2041290300370300200241c0166a41106a223d2038290300370300200241c0166a41186a2238203a290300370300200241c0166a41206a223a2026370300200241c0166a41286a223e2011370300200241c0166a41306a2241200a370300200241c0166a41386a2242203f360200200220022903c0173703c01620024180166a41386a223f204228020036020020024180166a41306a2242204129030037030020024180166a41286a2241203e29030037030020024180166a41206a223e203a29030037030020024180166a41186a2243203829030037030020024180166a41106a2244203d29030037030020024180166a41086a223d203c290300370300200220022903c0163703801602402007422088a7223a2007a7470d00203a41016a2238203a490d40203a410174223c20382038203c491b22384104203841044b1bad42c4007e2207422088a74541027421382007a7213c02400240203a0d0020024100360280180c010b200241043602881820022039360280182002203a41c4006c360284180b200241c0186a203c203820024180186a107d20022802c818213820022802c0184101460d0320022802c4182139203841c4006ead21070b2039203a41c4006c6a2238203b36020020382002290380163702042038410c6a203d290300370200203841146a20442903003702002038411c6a2043290300370200203841246a203e2903003702002038412c6a2041290300370200203841346a20422903003702002038413c6a203f280200360200203820403b0140200742ffffffff0f83203a41016aad4220868421072037417f6a22370d000b0b2039450d05200420066b41037521372005200b6b4104752105200320196b4105752103201520346b41067521152007a721382007422088a741c4006c22040d01203921040c020b2038450d3c0c3b0b203920046a2101203921040340200441c4006a22042001470d000b0b2000200c36020420002006360200200041b8016a2038360200200041b4016a2039360200200041b0016a2015360200200041ac016a2033360200200041a8016a2034360200200041a4016a2035360200200041a0016a20303602002000419c016a203136020020004198016a203236020020004194016a202b36020020004190016a202d3602002000418c016a202f36020020004188016a202736020020004184016a202a36020020004180016a202c360200200041fc006a2023360200200041f8006a2025360200200041f4006a2028360200200041f0006a201f360200200041ec006a2022360200200041e8006a2024360200200041e4006a201d360200200041e0006a2020360200200041dc006a2021360200200041d8006a201c360200200041d4006a201e360200200041d0006a2003360200200041cc006a2017360200200041c8006a2019360200200041c4006a201b360200200041c0006a20133602002000413c6a2016360200200041386a201a360200200041346a200e360200200041306a20143602002000412c6a2018360200200041286a2009360200200041246a200f360200200041206a20053602002000411c6a2012360200200041186a200b360200200041146a2010360200200041106a200d3602002000410c6a2008360200200041086a2037360200200041bc016a200420396b41c4006d3602000c380b200241003a00bc180b2007a72204450d00200441c4006c450d002039102e0b20004100360200203341ffffff1f71450d032034102e0c030b200241003a00b8180b200742ffffff1f83500d002034102e0b200041003602000b2030450d032030413c6c450d032031102e0c030b200241003a00b4180b2007a72204450d002004413c6c450d002031102e0b200041003602000b202b450d03202b41386c450d03202d102e0c030b200241003a00b0180b2007a72204450d00200441386c450d00202d102e0b200041003602000b2027450d03202741346c450d03202a102e0c030b200241003a00ac180b2007a72204450d00200441346c450d00202a102e0b200041003602000b2023450d03202341306c450d032025102e0c030b200241003a00a8180b2007a72204450d00200441306c450d002025102e0b200041003602000b201f450d03201f412c6c450d032022102e0c030b200241003a00a4180b2007a72204450d002004412c6c450d002022102e0b200041003602000b201d450d03201d41286c450d032020102e0c030b200241003a00a0180b2007a72204450d00200441286c450d002020102e0b200041003602000b201c450d03201c41246c450d03201e102e0c030b200241003a009c180b2007a72204450d00200441246c450d00201e102e0b200041003602000b201741ffffff3f71450d032019102e0c030b200241003a0098180b200742ffffff3f83500d002019102e0b200041003602000b2013450d032013411c6c450d032016102e0c030b200241003a0094180b2007a72204450d002004411c6c450d002016102e0b200041003602000b200e450d03200e41186c450d032014102e0c030b200241003a0090180b2007a72204450d00200441186c450d002014102e0b200041003602000b2009450d03200941146c450d03200f102e0c030b200241003a008c180b2007a72204450d00200441146c450d00200f102e0b200041003602000b201241ffffffff0071450d03200b102e0c030b200241003a0088180b200742ffffffff0083500d00200b102e0b200041003602000b200d450d00200d410c6c450d002008102e0b200c41ffffffff0171450d002006102e0b200241c0196a24000f0b1036000b1038000bc61e01097f230041f0006b2202240020024200370204024020012802082203450d0020034103742104200128020041046a21030340200220032f0100109806200341086a2103200441786a22040d000b0b0240200141146a2802002203450d002003410c6c2104200128020c41086a2103034020032f0100210520022003417c6a2f0100109806200220051098062003410c6a2103200441746a22040d000b0b0240200141206a2802002203450d00200341047421042001280218410c6a210303402002200341786a2f010010980620022003417c6a2f0100109806200220032f0100109806200341106a2103200441706a22040d000b0b02402001412c6a2802002203450d00200341146c2104200128022441106a210303402002200341746a2f01001098062002200341786a2f010010980620022003417c6a2f0100109806200220032f0100109806200341146a21032004416c6a22040d000b0b0240200141386a2802002203450d00200341186c2104200128023041146a210303402002200341706a2f01001098062002200341746a2f01001098062002200341786a2f010010980620022003417c6a2f0100109806200220032f0100109806200341186a2103200441686a22040d000b0b0240200141c4006a2802002203450d00200128023c21052003411c6c21064100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620062004411c6a2204470d000b0b0240200141d0006a2802002203450d0020012802482105200341057421064100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620022003411c6a2f01001098062006200441206a2204470d000b0b0240200141dc006a2802002203450d0020012802542105200341246c21064100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620022003411c6a2f01001098062002200341206a2f01001098062006200441246a2204470d000b0b0240200141e8006a2802002203450d0020012802602105200341286c21064100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620022003411c6a2f01001098062002200341206a2f01001098062002200341246a2f01001098062006200441286a2204470d000b0b0240200141f4006a2802002203450d00200128026c21052003412c6c21064100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620022003411c6a2f01001098062002200341206a2f01001098062002200341246a2f01001098062002200341286a2f010010980620062004412c6a2204470d000b0b024020014180016a2802002203450d0020012802782105200341306c21064100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620022003411c6a2f01001098062002200341206a2f01001098062002200341246a2f01001098062002200341286a2f010010980620022003412c6a2f01001098062006200441306a2204470d000b0b02402001418c016a2802002203450d002001280284012105200341346c21064100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620022003411c6a2f01001098062002200341206a2f01001098062002200341246a2f01001098062002200341286a2f010010980620022003412c6a2f01001098062002200341306a2f01001098062006200441346a2204470d000b0b024020014198016a2802002203450d002001280290012105200341386c21064100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620022003411c6a2f01001098062002200341206a2f01001098062002200341246a2f01001098062002200341286a2f010010980620022003412c6a2f01001098062002200341306a2f01001098062002200341346a2f01001098062006200441386a2204470d000b0b0240200141a4016a2802002203450d00200128029c0121052003413c6c21064100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620022003411c6a2f01001098062002200341206a2f01001098062002200341246a2f01001098062002200341286a2f010010980620022003412c6a2f01001098062002200341306a2f01001098062002200341346a2f01001098062002200341386a2f010010980620062004413c6a2204470d000b0b0240200141b0016a2802002203450d0020012802a8012105200341067421064100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620022003411c6a2f01001098062002200341206a2f01001098062002200341246a2f01001098062002200341286a2f010010980620022003412c6a2f01001098062002200341306a2f01001098062002200341346a2f01001098062002200341386a2f010010980620022003413c6a2f01001098062006200441c0006a2204470d000b0b0240200141bc016a2802002203450d0020012802b4012105200341c4006c21014100210403402002200520046a220341046a2f01001098062002200341086a2f010010980620022003410c6a2f01001098062002200341106a2f01001098062002200341146a2f01001098062002200341186a2f010010980620022003411c6a2f01001098062002200341206a2f01001098062002200341246a2f01001098062002200341286a2f010010980620022003412c6a2f01001098062002200341306a2f01001098062002200341346a2f01001098062002200341386a2f010010980620022003413c6a2f01001098062002200341c0006a2f01001098062001200441c4006a2204470d000b0b02400240200228020422050d004100210541002103410021060c010b200228020821062002280200210420052103034020052f010621012004450d012004417f6a2104200520014102746a41206a2802002105200328022021030c000b0b200241246a2001360200200241206a200536020020022006360228200242003703182002200336021420022004360210024002400240024002400240024002402006450d0020022006417f6a22063602282003450d0141002105024002400340200520032f0106490d010240200328020022010d002003102e410021030c030b20032f010421052003102e200441016a2104200121030c000b0b200541016a2101200320054101746a41086a2f010021072004450d00200320014102746a41206a2802002103024020044101460d00410121050340200328022021032004200541016a2205470d000b0b410021010b200220013602182002200336021420024100360210417f200641016a220320032006491b220420046a22032004490d052003417f4c0d052003102c2208450d02200820073b0100200241306a41186a200241106a41186a2802002204360200200241306a41106a200241106a41106a290300370300200241306a41086a200241106a41086a2903003703002002200229031037033041012106200341017621072004450d0620022004417f6a220936024820022802342203450d032002280238210520022802302104024002400340200520032f0106490d010240200328020022010d002003102e410021030c030b20032f010421052003102e200441016a2104200121030c000b0b200541016a2101200320054101746a41086a2f0100210a2004450d00200320014102746a41206a2802002103024020044101460d00410121050340200328022021032004200541016a2205470d000b0b410021010b20022001360238200220033602342002410036023041012106034002400240024020072006470d00200720066b417f200941016a220320032009491b22034f0d00200620036a22032006490d09200741017422042003200420034b1b22034104200341044b1b220320036a220520034f41017421030240024020070d00200241003602600c010b2002410236026820022004360264200220083602600b200241d0006a20052003200241e0006a107d2002280258210320022802504101460d0120022802542108200341017621070b200820064101746a200a3b0100200641016a2106200228024822030d010c090b20030d040c070b20022003417f6a220936024820022802342203450d05410120022802306b210420022802382105024002400340200520032f0106490d010240200328020022010d002003102e410021030c030b20032f010421052003102e2004417f6a2104200121030c000b0b200541016a2101200320054101746a41086a2f0100210a20044101460d00200320014102746a41206a280200210302402004450d004100210503402003280220210320042005417f6a2205470d000b0b410021010b2002200136023820022003360234200241003602300c000b0b2000410036020820004202370200200241106a10bf020c060b41e8aac700412b41f8b7c0001039000b1036000b41e8aac700412b41f8b7c0001039000b41e8aac700412b41f8b7c0001039000b1038000b200241306a10bf022000200636020820002007360204200020083602000b200241f0006a24000b870e010c7f024002400240024002400240024002400240024002400240024020002802042202450d00200028020021030c010b4120102c2202450d0141002103200241003b01062002410036020020002002360204200041003602000b200141ffff037121040240034020022f01062205410174210641002107417f210802400340024020062007470d00200521080c020b200220076a2109200841016a2108200741026a2107417f200941086a2f01002209200447200920044b1b41016a0e03010300010b0b02402003450d002003417f6a2103200220084102746a41206a28020021020c010b0b0240024020022f01062207410a4b0d00200241086a2104200741016a21090240200841016a220620074b0d00200420064101746a200420084101746a20092008417f736a41017410ea081a0b200420084101746a20013b0100200220093b01060c010b410521074100210602400240200841054f0d0041042107200821040c010b41052104024002402008417b6a0e020201000b200841796a210441012106410621070c010b41002104410121060b4120102c2208450d02200841003b010620084100360200200820022f010622032007417f736a22093b01062009410c4f0d032003200741016a22056b2009470d04200241086a220320074101746a2f0100210a200841086a200320054101746a200941017410e9081a200220073b01062008200220061b220741086a210920072f0106220341016a21060240200441016a220520034b0d00200920054101746a200920044101746a20062004417f736a41017410ea081a0b200920044101746a20013b0100200720063b0106024002400240200228020022030d00410021010c010b410021012008210b200a210c03404101450d0820022f0104210920032f01062205410b490d024100210641042107024020094105490d0020092107024002402009417b6a0e020201000b200941796a210941012106410621070c010b4100210941012106410521070b41d000102c2208450d05200841003b010620084100360200200820032f0106220a2007417f736a22023b01062002410c4f0d09200a200741016a22046b2002470d0a200341086a220d20074101746a2f0100210a200841086a200d20044101746a200241017410e9081a200320073b010620082f0106220241016a210d2002410c4f0d0b200520076b2207200d470d0c200141016a2101200841206a200320044102746a41206a200741027410e9081a4100210702400340200820074102746a41206a280200220420073b0104200420083602002007200720024922046a220720024b0d0120040d000b0b2008200320061b220441086a210220042f0106220541016a21060240200941016a220720054b0d00200220074101746a200220094101746a2009417f7320066a41017410ea081a0b200220094101746a200c3b0100200441206a21020240200941026a220c200541026a22054f0d002002200c4102746a200220074102746a2007417f7320056a41027410ea081a0b200220074102746a200b360200200420063b01060240200720054f0d00200420094102746a41246a2107034020072802002202200941016a22093b010420022004360200200741046a210720062009470d000b0b200321022003280200220721032008210b200a210c20070d000b0b20002802042202450d0b2000280200210441d000102c2207450d0320072002360220200741003b010620074100360200200241003b010420022007360200200020073602042000200441016a36020020042001470d0c20072f01062202410b4f0d0d2007200241016a22043b0106200720024101746a41086a200a3b0100200720044102746a41206a2008360200200820043b0104200820073602002000200028020841016a3602080f0b200941016a2107200341086a210220032f0106220841016a21040240200920084f22050d00200220074101746a200220094101746a2009417f7320046a41017410ea081a0b200220094101746a200c3b0100200341206a2102200841026a2106024020050d00200941027420026a41086a200220074102746a2007417f7320066a41027410ea081a0b200220074102746a200b360200200320043b0106200720064f0d00200841016a210420032007417f6a22074102746a41246a2108034020082802002202200741016a22073b010420022003360200200841046a210820042007470d000b0b2000200028020841016a3602080b0f0b1036000b2009410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b41ac9cc700413541e49cc7001039000b2002410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b200d410c41f49cc700104d000b41f49bc7004128419c9cc7001039000b41e8aac700412b4194abc7001039000b41e899c700413041989ac7001039000b41a89ac700412041c89ac7001039000bfd8c0103087f057ebb017f230041e00a6b22042400200420033602bc08200441f8096a4200370300200441f0096a4280808080c000370300200441e0096a4200370300200441d8096a4280808080c000370300200441c0086a4188016a4200370300200441c0096a4280808080c000370300200441b0096a4200370300200441a8096a4280808080c00037030020044198096a420037030020044190096a4280808080c00037030020044180096a4200370300200441c0086a41386a4280808080c000370300200441c0086a41286a4200370300200441c0086a41206a4280808080c000370300200441c0086a41106a4200370300200442043703e809200442043703d009200442043703b809200442043703a0092004420437038809200442043703f008200442043703d80820044280808080c0003703c808200442043703c0082001280200220520012802082203412c6c22066a210720012802042108200521010240024002402003450d00200641546a2103200441a00a6a41186a2109200441a00a6a41106a210a200441a00a6a41086a210b2005210602400340200641046a290200210c200628020021012009200641246a290200370300200a2006411c6a290200370300200b200641146a29020037030020042006410c6a2902003703a00a024020010d002006412c6a21010c030b200441800a6a41186a2009290300220d370300200441800a6a41106a200a290300220e370300200441800a6a41086a200b290300220f370300200420042903a00a22103703800a2009200d370300200a200e370300200b200f370300200420103703a00a02400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200c422088a70e1113000102030405060708090a0b0c0d0e0f140b2002280200200441a00a6a10a0022211450d14201128020021122004200441bc086a2001109a06024020042f01002213450d0020042f010221140240024020042802c808221120042802c408470d00201141016a22152011490da201201141017422162015201620154b1b22154104201541044b1b221541ffffffff01712015464102742116201541037421150240024020110d00200441003602d00a0c010b200441043602d80a200420042802c0083602d00a200420114103743602d40a0b200441c00a6a20152016200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602c008200420114103763602c40820042802c80821110b20042802c00820114103746a22112014201720131b22173b010420112012360200200420042802c80841016a3602c8080c110b2011450da0010ca2010b20004281808080203702000c9c010b2002280200200441a00a6a10a0022211450d1420112802002112200441106a200441bc086a2001109a0620042f01102213450d1520042f0112211420012f01202115200441086a200441bc086a200141226a109a06024020042f01082216450d0020042f010a21180240024020042802d408221120042802d008470d00201141016a22192011490da1012011410174221a2019201a20194b1b22194104201941044b1bad420c7e220d422088a7454102742119200da7211a0240024020110d00200441003602d00a0c010b200441043602d80a200420042802cc083602d00a20042011410c6c3602d40a0b200441c00a6a201a2019200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602cc0820042011410c6e3602d00820042802d40821110b20042802cc082011410c6c6a22112018201b20161b221b3b010820112014201c20131b221c3b010420112012360200201141066a20153b0100200420042802d40841016a3602d4080c100b20110da1010c9f010b20004281808080203702000c9b010b2002280200200441a00a6a10a0022211450d1520112802002112200441286a200441bc086a2001109a0620042f01282213450d1620042f012a211420012f01202115200441206a200441bc086a200141226a109a0620042f01202216450d1720042f01222118200141c2006a2f01002119200441186a200441bc086a200141c4006a109a06024020042f0118221a450d0020042f011a211d0240024020042802e008221120042802dc08470d00201141016a221e2011490da0012011410174221f201e201f201e4b1b221e4104201e41044b1b221e41ffffffff0071201e46410274211f201e410474211e0240024020110d00200441003602d00a0c010b200420042802d8083602d00a200441043602d80a200420114104743602d40a0b200441c00a6a201e201f200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602d808200420114104763602dc0820042802e00821110b20042802d80820114104746a2211201d2020201a1b22203b010c20112014202120131b22213b0104201120123602002011410a6a20193b0100201141086a2018202220161b22223b0100201141066a20153b0100200420042802e00841016a3602e0080c0f0b20110da0010c9e010b20004281808080203702000c9a010b2002280200200441a00a6a10a0022211450d1720112802002112200441c8006a200441bc086a2001109a0620042f01482213450d1820042f014a211420012f01202115200441c0006a200441bc086a200141226a109a0620042f01402216450d1920042f01422118200141c2006a2f01002119200441386a200441bc086a200141c4006a109a0620042f0138221a450d1a20042f013a211d200141e4006a2f0100211e200441306a200441bc086a200141e6006a109a06024020042f0130221f450d0020042f013221230240024020042802ec08221120042802e808470d00201141016a22242011490d9f01201141017422252024202520244b1b22244104202441044b1bad42147e220d422088a7454102742124200da721250240024020110d00200441003602d00a0c010b200441043602d80a200420042802e4083602d00a2004201141146c3602d40a0b200441c00a6a20252024200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602e4082004201141146e3602e80820042802ec0821110b20042802e408201141146c6a221120232026201f1b22263b011020112014202720131b22273b0104201120123602002011410e6a201e3b01002011410c6a201d2028201a1b22283b01002011410a6a20193b0100201141086a2018202920161b22293b0100201141066a20153b0100200420042802ec0841016a3602ec080c0e0b20110d9f010c9d010b20004281808080203702000c99010b2002280200200441a00a6a10a0022211450d1a20112802002112200441f0006a200441bc086a2001109a0620042f01702213450d1b20042f0172211420012f01202115200441e8006a200441bc086a200141226a109a0620042f01682216450d1c20042f016a2118200141c2006a2f01002119200441e0006a200441bc086a200141c4006a109a0620042f0160221a450d1d20042f0162211d200141e4006a2f0100211e200441d8006a200441bc086a200141e6006a109a0620042f0158221f450d1e20042f015a212320014186016a2f01002124200441d0006a200441bc086a20014188016a109a06024020042f01502225450d0020042f0152212a0240024020042802f808221120042802f408470d00201141016a222b2011490d9e012011410174222c202b202c202b4b1b222b4104202b41044b1bad42187e220d422088a745410274212b200da7212c0240024020110d00200441003602d00a0c010b200441043602d80a200420042802f0083602d00a2004201141186c3602d40a0b200441c00a6a202c202b200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602f0082004201141186e3602f40820042802f80821110b20042802f008201141186c6a2211202a202d20251b222d3b011420112014202e20131b222e3b010420112012360200201141126a20243b0100201141106a2023202f201f1b222f3b01002011410e6a201e3b01002011410c6a201d2030201a1b22303b01002011410a6a20193b0100201141086a2018203120161b22313b0100201141066a20153b0100200420042802f80841016a3602f8080c0d0b20110d9e010c9c010b20004281808080203702000c98010b2002280200200441a00a6a10a0022211450d1e20112802002112200441a0016a200441bc086a2001109a0620042f01a0012213450d1f20042f01a201211420012f0120211520044198016a200441bc086a200141226a109a0620042f0198012216450d2020042f019a012118200141c2006a2f0100211920044190016a200441bc086a200141c4006a109a0620042f019001221a450d2120042f019201211d200141e4006a2f0100211e20044188016a200441bc086a200141e6006a109a0620042f018801221f450d2220042f018a01212320014186016a2f0100212420044180016a200441bc086a20014188016a109a0620042f0180012225450d2320042f018201212a200141a8016a2f0100212b200441f8006a200441bc086a200141aa016a109a06024020042f0178222c450d0020042f017a2132024002402004280284092211200428028009470d00201141016a22332011490d9d01201141017422342033203420334b1b22334104203341044b1bad421c7e220d422088a7454102742133200da721340240024020110d00200441003602d00a0c010b200441043602d80a200420042802fc083602d00a20042011411c6c3602d40a0b200441c00a6a20342033200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602fc0820042011411c6e3602800920042802840921110b20042802fc082011411c6c6a221120322035202c1b22353b011820112014203620131b22363b010420112012360200201141166a202b3b0100201141146a202a203720251b22373b0100201141126a20243b0100201141106a20232038201f1b22383b01002011410e6a201e3b01002011410c6a201d2039201a1b22393b01002011410a6a20193b0100201141086a2018203a20161b223a3b0100201141066a20153b0100200420042802840941016a360284090c0c0b20110d9d010c9b010b20004281808080203702000c97010b2002280200200441a00a6a10a0022211450d2320112802002112200441d8016a200441bc086a2001109a0620042f01d8012213450d2420042f01da01211420012f01202115200441d0016a200441bc086a200141226a109a0620042f01d0012216450d2520042f01d2012118200141c2006a2f01002119200441c8016a200441bc086a200141c4006a109a0620042f01c801221a450d2620042f01ca01211d200141e4006a2f0100211e200441c0016a200441bc086a200141e6006a109a0620042f01c001221f450d2720042f01c201212320014186016a2f01002124200441b8016a200441bc086a20014188016a109a0620042f01b8012225450d2820042f01ba01212a200141a8016a2f0100212b200441b0016a200441bc086a200141aa016a109a0620042f01b001222c450d2920042f01b2012132200141ca016a2f01002133200441a8016a200441bc086a200141cc016a109a06024020042f01a8012234450d0020042f01aa01213b024002402004280290092211200428028c09470d00201141016a223c2011490d9c012011410174223d203c203d203c4b1b223c4104203c41044b1b223c41ffffff3f71203c46410274213d203c410574213c0240024020110d00200441003602d00a0c010b200441043602d80a20042004280288093602d00a200420114105743602d40a0b200441c00a6a203c203d200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a360288092004201141057636028c0920042802900921110b20042802880920114105746a2211203b203e20341b223e3b011c20112014203f20131b223f3b0104201120123602002011411a6a20333b0100201141186a20322040202c1b22403b0100201141166a202b3b0100201141146a202a204120251b22413b0100201141126a20243b0100201141106a20232042201f1b22423b01002011410e6a201e3b01002011410c6a201d2043201a1b22433b01002011410a6a20193b0100201141086a2018204420161b22443b0100201141066a20153b0100200420042802900941016a360290090c0b0b20110d9c010c9a010b20004281808080203702000c96010b2002280200200441a00a6a10a0022211450d292011280200211220044198026a200441bc086a2001109a0620042f0198022213450d2a20042f019a02211420012f0120211520044190026a200441bc086a200141226a109a0620042f0190022216450d2b20042f0192022118200141c2006a2f0100211920044188026a200441bc086a200141c4006a109a0620042f018802221a450d2c20042f018a02211d200141e4006a2f0100211e20044180026a200441bc086a200141e6006a109a0620042f018002221f450d2d20042f018202212320014186016a2f01002124200441f8016a200441bc086a20014188016a109a0620042f01f8012225450d2e20042f01fa01212a200141a8016a2f0100212b200441f0016a200441bc086a200141aa016a109a0620042f01f001222c450d2f20042f01f2012132200141ca016a2f01002133200441e8016a200441bc086a200141cc016a109a0620042f01e8012234450d3020042f01ea01213b200141ec016a2f0100213c200441e0016a200441bc086a200141ee016a109a06024020042f01e001223d450d0020042f01e201214502400240200428029c092211200428029809470d00201141016a22462011490d9b01201141017422472046204720464b1b22464104204641044b1bad42247e220d422088a7454102742146200da721470240024020110d00200441003602d00a0c010b200441043602d80a20042004280294093602d00a2004201141246c3602d40a0b200441c00a6a20472046200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a360294092004201141246e36029809200428029c0921110b200428029409201141246c6a221120452048203d1b22483b012020112014204920131b22493b0104201120123602002011411e6a203c3b01002011411c6a203b204a20341b224a3b01002011411a6a20333b0100201141186a2032204b202c1b224b3b0100201141166a202b3b0100201141146a202a204c20251b224c3b0100201141126a20243b0100201141106a2023204d201f1b224d3b01002011410e6a201e3b01002011410c6a201d204e201a1b224e3b01002011410a6a20193b0100201141086a2018204f20161b224f3b0100201141066a20153b01002004200428029c0941016a36029c090c0a0b20110d9b010c99010b20004281808080203702000c95010b2002280200200441a00a6a10a0022211450d3020112802002112200441e0026a200441bc086a2001109a0620042f01e0022213450d3120042f01e202211420012f01202115200441d8026a200441bc086a200141226a109a0620042f01d8022216450d3220042f01da022118200141c2006a2f01002119200441d0026a200441bc086a200141c4006a109a0620042f01d002221a450d3320042f01d202211d200141e4006a2f0100211e200441c8026a200441bc086a200141e6006a109a0620042f01c802221f450d3420042f01ca02212320014186016a2f01002124200441c0026a200441bc086a20014188016a109a0620042f01c0022225450d3520042f01c202212a200141a8016a2f0100212b200441b8026a200441bc086a200141aa016a109a0620042f01b802222c450d3620042f01ba022132200141ca016a2f01002133200441b0026a200441bc086a200141cc016a109a0620042f01b0022234450d3720042f01b202213b200141ec016a2f0100213c200441a8026a200441bc086a200141ee016a109a0620042f01a802223d450d3820042f01aa0221452001418e026a2f01002146200441a0026a200441bc086a20014190026a109a06024020042f01a0022247450d0020042f01a20221500240024020042802a809221120042802a409470d00201141016a22512011490d9a01201141017422522051205220514b1b22514104205141044b1bad42287e220d422088a7454102742151200da721520240024020110d00200441003602d00a0c010b200441043602d80a200420042802a0093602d00a2004201141286c3602d40a0b200441c00a6a20522051200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602a0092004201141286e3602a40920042802a80921110b20042802a009201141286c6a22112050205320471b22533b012420112014205420131b22543b010420112012360200201141226a20463b0100201141206a20452055203d1b22553b01002011411e6a203c3b01002011411c6a203b205620341b22563b01002011411a6a20333b0100201141186a20322057202c1b22573b0100201141166a202b3b0100201141146a202a205820251b22583b0100201141126a20243b0100201141106a20232059201f1b22593b01002011410e6a201e3b01002011410c6a201d205a201a1b225a3b01002011410a6a20193b0100201141086a2018205b20161b225b3b0100201141066a20153b0100200420042802a80941016a3602a8090c090b20110d9a010c98010b20004281808080203702000c94010b2002280200200441a00a6a10a0022211450d3820112802002112200441b0036a200441bc086a2001109a0620042f01b0032213450d3920042f01b203211420012f01202115200441a8036a200441bc086a200141226a109a0620042f01a8032216450d3a20042f01aa032118200141c2006a2f01002119200441a0036a200441bc086a200141c4006a109a0620042f01a003221a450d3b20042f01a203211d200141e4006a2f0100211e20044198036a200441bc086a200141e6006a109a0620042f019803221f450d3c20042f019a03212320014186016a2f0100212420044190036a200441bc086a20014188016a109a0620042f0190032225450d3d20042f019203212a200141a8016a2f0100212b20044188036a200441bc086a200141aa016a109a0620042f018803222c450d3e20042f018a032132200141ca016a2f0100213320044180036a200441bc086a200141cc016a109a0620042f0180032234450d3f20042f018203213b200141ec016a2f0100213c200441f8026a200441bc086a200141ee016a109a0620042f01f802223d450d4020042f01fa0221452001418e026a2f01002146200441f0026a200441bc086a20014190026a109a0620042f01f0022247450d4120042f01f2022150200141b0026a2f01002151200441e8026a200441bc086a200141b2026a109a06024020042f01e8022252450d0020042f01ea02215c0240024020042802b409221120042802b009470d00201141016a225d2011490d99012011410174225e205d205e205d4b1b225d4104205d41044b1bad422c7e220d422088a745410274215d200da7215e0240024020110d00200441003602d00a0c010b200441043602d80a200420042802ac093602d00a20042011412c6c3602d40a0b200441c00a6a205e205d200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602ac0920042011412c6e3602b00920042802b40921110b20042802ac092011412c6c6a2211205c205f20521b225f3b012820112014206020131b22603b010420112012360200201141266a20513b0100201141246a2050206120471b22613b0100201141226a20463b0100201141206a20452062203d1b22623b01002011411e6a203c3b01002011411c6a203b206320341b22633b01002011411a6a20333b0100201141186a20322064202c1b22643b0100201141166a202b3b0100201141146a202a206520251b22653b0100201141126a20243b0100201141106a20232066201f1b22663b01002011410e6a201e3b01002011410c6a201d2067201a1b22673b01002011410a6a20193b0100201141086a2018206820161b22683b0100201141066a20153b0100200420042802b40941016a3602b4090c080b20110d99010c97010b20004281808080203702000c93010b2002280200200441a00a6a10a0022211450d412011280200211220044188046a200441bc086a2001109a0620042f0188042213450d4220042f018a04211420012f0120211520044180046a200441bc086a200141226a109a0620042f0180042216450d4320042f0182042118200141c2006a2f01002119200441f8036a200441bc086a200141c4006a109a0620042f01f803221a450d4420042f01fa03211d200141e4006a2f0100211e200441f0036a200441bc086a200141e6006a109a0620042f01f003221f450d4520042f01f203212320014186016a2f01002124200441e8036a200441bc086a20014188016a109a0620042f01e8032225450d4620042f01ea03212a200141a8016a2f0100212b200441e0036a200441bc086a200141aa016a109a0620042f01e003222c450d4720042f01e2032132200141ca016a2f01002133200441d8036a200441bc086a200141cc016a109a0620042f01d8032234450d4820042f01da03213b200141ec016a2f0100213c200441d0036a200441bc086a200141ee016a109a0620042f01d003223d450d4920042f01d20321452001418e026a2f01002146200441c8036a200441bc086a20014190026a109a0620042f01c8032247450d4a20042f01ca032150200141b0026a2f01002151200441c0036a200441bc086a200141b2026a109a0620042f01c0032252450d4b20042f01c203215c200141d2026a2f0100215d200441b8036a200441bc086a200141d4026a109a06024020042f01b803225e450d0020042f01ba0321690240024020042802c009221120042802bc09470d00201141016a226a2011490d98012011410174226b206a206b206a4b1b226a4104206a41044b1bad42307e220d422088a745410274216a200da7216b0240024020110d00200441003602d00a0c010b200441043602d80a200420042802b8093602d00a2004201141306c3602d40a0b200441c00a6a206b206a200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602b8092004201141306e3602bc0920042802c00921110b20042802b809201141306c6a22112069206c205e1b226c3b012c20112014206d20131b226d3b0104201120123602002011412a6a205d3b0100201141286a205c206e20521b226e3b0100201141266a20513b0100201141246a2050206f20471b226f3b0100201141226a20463b0100201141206a20452070203d1b22703b01002011411e6a203c3b01002011411c6a203b207120341b22713b01002011411a6a20333b0100201141186a20322072202c1b22723b0100201141166a202b3b0100201141146a202a207320251b22733b0100201141126a20243b0100201141106a20232074201f1b22743b01002011410e6a201e3b01002011410c6a201d2075201a1b22753b01002011410a6a20193b0100201141086a2018207620161b22763b0100201141066a20153b0100200420042802c00941016a3602c0090c070b20110d98010c96010b20004281808080203702000c92010b2002280200200441a00a6a10a0022211450d4b20112802002112200441e8046a200441bc086a2001109a0620042f01e8042213450d4c20042f01ea04211420012f01202115200441e0046a200441bc086a200141226a109a0620042f01e0042216450d4d20042f01e2042118200141c2006a2f01002119200441d8046a200441bc086a200141c4006a109a0620042f01d804221a450d4e20042f01da04211d200141e4006a2f0100211e200441d0046a200441bc086a200141e6006a109a0620042f01d004221f450d4f20042f01d204212320014186016a2f01002124200441c8046a200441bc086a20014188016a109a0620042f01c8042225450d5020042f01ca04212a200141a8016a2f0100212b200441c0046a200441bc086a200141aa016a109a0620042f01c004222c450d5120042f01c2042132200141ca016a2f01002133200441b8046a200441bc086a200141cc016a109a0620042f01b8042234450d5220042f01ba04213b200141ec016a2f0100213c200441b0046a200441bc086a200141ee016a109a0620042f01b004223d450d5320042f01b20421452001418e026a2f01002146200441a8046a200441bc086a20014190026a109a0620042f01a8042247450d5420042f01aa042150200141b0026a2f01002151200441a0046a200441bc086a200141b2026a109a0620042f01a0042252450d5520042f01a204215c200141d2026a2f0100215d20044198046a200441bc086a200141d4026a109a0620042f019804225e450d5620042f019a042169200141f4026a2f0100216a20044190046a200441bc086a200141f6026a109a06024020042f019004226b450d0020042f01920421770240024020042802cc09221120042802c809470d00201141016a22782011490d9701201141017422792078207920784b1b22784104207841044b1bad42347e220d422088a7454102742178200da721790240024020110d00200441003602d00a0c010b200441043602d80a200420042802c4093602d00a2004201141346c3602d40a0b200441c00a6a20792078200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602c4092004201141346e3602c80920042802cc0921110b20042802c409201141346c6a22112077207a206b1b227a3b013020112014207b20131b227b3b0104201120123602002011412e6a206a3b01002011412c6a2069207c205e1b227c3b01002011412a6a205d3b0100201141286a205c207d20521b227d3b0100201141266a20513b0100201141246a2050207e20471b227e3b0100201141226a20463b0100201141206a2045207f203d1b227f3b01002011411e6a203c3b01002011411c6a203b20800120341b2280013b01002011411a6a20333b0100201141186a2032208101202c1b2281013b0100201141166a202b3b0100201141146a202a20820120251b2282013b0100201141126a20243b0100201141106a2023208301201f1b2283013b01002011410e6a201e3b01002011410c6a201d208401201a1b2284013b01002011410a6a20193b0100201141086a201820850120161b2285013b0100201141066a20153b0100200420042802cc0941016a3602cc090c060b20110d97010c95010b20004281808080203702000c91010b2002280200200441a00a6a10a0022211450d5620112802002112200441d0056a200441bc086a2001109a0620042f01d0052213450d5720042f01d205211420012f01202115200441c8056a200441bc086a200141226a109a0620042f01c8052216450d5820042f01ca052118200141c2006a2f01002119200441c0056a200441bc086a200141c4006a109a0620042f01c005221a450d5920042f01c205211d200141e4006a2f0100211e200441b8056a200441bc086a200141e6006a109a0620042f01b805221f450d5a20042f01ba05212320014186016a2f01002124200441b0056a200441bc086a20014188016a109a0620042f01b0052225450d5b20042f01b205212a200141a8016a2f0100212b200441a8056a200441bc086a200141aa016a109a0620042f01a805222c450d5c20042f01aa052132200141ca016a2f01002133200441a0056a200441bc086a200141cc016a109a0620042f01a0052234450d5d20042f01a205213b200141ec016a2f0100213c20044198056a200441bc086a200141ee016a109a0620042f019805223d450d5e20042f019a0521452001418e026a2f0100214620044190056a200441bc086a20014190026a109a0620042f0190052247450d5f20042f0192052150200141b0026a2f0100215120044188056a200441bc086a200141b2026a109a0620042f0188052252450d6020042f018a05215c200141d2026a2f0100215d20044180056a200441bc086a200141d4026a109a0620042f018005225e450d6120042f0182052169200141f4026a2f0100216a200441f8046a200441bc086a200141f6026a109a0620042f01f804226b450d6220042f01fa04217720014196036a2f01002178200441f0046a200441bc086a20014198036a109a06024020042f01f0042279450d0020042f01f2042186010240024020042802d809221120042802d409470d00201141016a2287012011490d960120114101742288012087012088012087014b1b228701410420870141044b1bad42387e220d422088a745410274218701200da72188010240024020110d00200441003602d00a0c010b200441043602d80a200420042802d0093602d00a2004201141386c3602d40a0b200441c00a6a208801208701200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602d0092004201141386e3602d40920042802d80921110b20042802d009201141386c6a221120860120890120791b2289013b013420112014208a0120131b228a013b010420112012360200201141326a20783b0100201141306a2077208b01206b1b228b013b01002011412e6a206a3b01002011412c6a2069208c01205e1b228c013b01002011412a6a205d3b0100201141286a205c208d0120521b228d013b0100201141266a20513b0100201141246a2050208e0120471b228e013b0100201141226a20463b0100201141206a2045208f01203d1b228f013b01002011411e6a203c3b01002011411c6a203b20900120341b2290013b01002011411a6a20333b0100201141186a2032209101202c1b2291013b0100201141166a202b3b0100201141146a202a20920120251b2292013b0100201141126a20243b0100201141106a2023209301201f1b2293013b01002011410e6a201e3b01002011410c6a201d209401201a1b2294013b01002011410a6a20193b0100201141086a201820950120161b2295013b0100201141066a20153b0100200420042802d80941016a3602d8090c050b20110d96010c94010b20004281808080203702000c90010b2002280200200441a00a6a10a0022211450d6220112802002112200441c0066a200441bc086a2001109a0620042f01c0062213450d6320042f01c206211420012f01202115200441b8066a200441bc086a200141226a109a0620042f01b8062216450d6420042f01ba062118200141c2006a2f01002119200441b0066a200441bc086a200141c4006a109a0620042f01b006221a450d6520042f01b206211d200141e4006a2f0100211e200441a8066a200441bc086a200141e6006a109a0620042f01a806221f450d6620042f01aa06212320014186016a2f01002124200441a0066a200441bc086a20014188016a109a0620042f01a0062225450d6720042f01a206212a200141a8016a2f0100212b20044198066a200441bc086a200141aa016a109a0620042f019806222c450d6820042f019a062132200141ca016a2f0100213320044190066a200441bc086a200141cc016a109a0620042f0190062234450d6920042f019206213b200141ec016a2f0100213c20044188066a200441bc086a200141ee016a109a0620042f018806223d450d6a20042f018a0621452001418e026a2f0100214620044180066a200441bc086a20014190026a109a0620042f0180062247450d6b20042f0182062150200141b0026a2f01002151200441f8056a200441bc086a200141b2026a109a0620042f01f8052252450d6c20042f01fa05215c200141d2026a2f0100215d200441f0056a200441bc086a200141d4026a109a0620042f01f005225e450d6d20042f01f2052169200141f4026a2f0100216a200441e8056a200441bc086a200141f6026a109a0620042f01e805226b450d6e20042f01ea05217720014196036a2f01002178200441e0056a200441bc086a20014198036a109a0620042f01e0052279450d6f20042f01e205218601200141b8036a2f0100218701200441d8056a200441bc086a200141ba036a109a06024020042f01d805228801450d0020042f01da052196010240024020042802e409221120042802e009470d00201141016a2297012011490d950120114101742298012097012098012097014b1b229701410420970141044b1bad423c7e220d422088a745410274219701200da72198010240024020110d00200441003602d00a0c010b200441043602d80a200420042802dc093602d00a20042011413c6c3602d40a0b200441c00a6a209801209701200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602dc0920042011413c6e3602e00920042802e40921110b20042802dc092011413c6c6a22112096012099012088011b2299013b013820112014209a0120131b229a013b010420112012360200201141366a2087013b0100201141346a208601209b0120791b229b013b0100201141326a20783b0100201141306a2077209c01206b1b229c013b01002011412e6a206a3b01002011412c6a2069209d01205e1b229d013b01002011412a6a205d3b0100201141286a205c209e0120521b229e013b0100201141266a20513b0100201141246a2050209f0120471b229f013b0100201141226a20463b0100201141206a204520a001203d1b22a0013b01002011411e6a203c3b01002011411c6a203b20a10120341b22a1013b01002011411a6a20333b0100201141186a203220a201202c1b22a2013b0100201141166a202b3b0100201141146a202a20a30120251b22a3013b0100201141126a20243b0100201141106a202320a401201f1b22a4013b01002011410e6a201e3b01002011410c6a201d20a501201a1b22a5013b01002011410a6a20193b0100201141086a201820a60120161b22a6013b0100201141066a20153b0100200420042802e40941016a3602e4090c040b20110d95010c93010b20004281808080203702000c8f010b2002280200200441a00a6a10a0022211450d6f20112802002112200441b8076a200441bc086a2001109a0620042f01b8072213450d7020042f01ba07211420012f01202115200441b0076a200441bc086a200141226a109a0620042f01b0072216450d7120042f01b2072118200141c2006a2f01002119200441a8076a200441bc086a200141c4006a109a0620042f01a807221a450d7220042f01aa07211d200141e4006a2f0100211e200441a0076a200441bc086a200141e6006a109a0620042f01a007221f450d7320042f01a207212320014186016a2f0100212420044198076a200441bc086a20014188016a109a0620042f0198072225450d7420042f019a07212a200141a8016a2f0100212b20044190076a200441bc086a200141aa016a109a0620042f019007222c450d7520042f0192072132200141ca016a2f0100213320044188076a200441bc086a200141cc016a109a0620042f0188072234450d7620042f018a07213b200141ec016a2f0100213c20044180076a200441bc086a200141ee016a109a0620042f018007223d450d7720042f01820721452001418e026a2f01002146200441f8066a200441bc086a20014190026a109a0620042f01f8062247450d7820042f01fa062150200141b0026a2f01002151200441f0066a200441bc086a200141b2026a109a0620042f01f0062252450d7920042f01f206215c200141d2026a2f0100215d200441e8066a200441bc086a200141d4026a109a0620042f01e806225e450d7a20042f01ea062169200141f4026a2f0100216a200441e0066a200441bc086a200141f6026a109a0620042f01e006226b450d7b20042f01e206217720014196036a2f01002178200441d8066a200441bc086a20014198036a109a0620042f01d8062279450d7c20042f01da06218601200141b8036a2f0100218701200441d0066a200441bc086a200141ba036a109a0620042f01d006228801450d7d20042f01d206219601200141da036a2f0100219701200441c8066a200441bc086a200141dc036a109a06024020042f01c806229801450d0020042f01ca0621a7010240024020042802f009221120042802ec09470d00201141016a22a8012011490d9401201141017422a90120a80120a90120a8014b1b22a801410420a80141044b1b22a80141ffffff1f7120a8014641027421a90120a80141067421a8010240024020110d00200441003602d00a0c010b200441043602d80a200420042802e8093602d00a200420114106743602d40a0b200441c00a6a20a80120a901200441d00a6a107d20042802c80a211120042802c00a4101460d01200420042802c40a3602e809200420114106763602ec0920042802f00921110b20042802e80920114106746a221120a70120aa012098011b22aa013b013c2011201420ab0120131b22ab013b0104201120123602002011413a6a2097013b0100201141386a20960120ac012088011b22ac013b0100201141366a2087013b0100201141346a20860120ad0120791b22ad013b0100201141326a20783b0100201141306a207720ae01206b1b22ae013b01002011412e6a206a3b01002011412c6a206920af01205e1b22af013b01002011412a6a205d3b0100201141286a205c20b00120521b22b0013b0100201141266a20513b0100201141246a205020b10120471b22b1013b0100201141226a20463b0100201141206a204520b201203d1b22b2013b01002011411e6a203c3b01002011411c6a203b20b30120341b22b3013b01002011411a6a20333b0100201141186a203220b401202c1b22b4013b0100201141166a202b3b0100201141146a202a20b50120251b22b5013b0100201141126a20243b0100201141106a202320b601201f1b22b6013b01002011410e6a201e3b01002011410c6a201d20b701201a1b22b7013b01002011410a6a20193b0100201141086a201820b80120161b22b8013b0100201141066a20153b0100200420042802f00941016a3602f0090c030b20110d94010c92010b20004281808080203702000c8e010b2002280200200441a00a6a10a0022211450d7d20112802002112200441b8086a200441bc086a2001109a0620042f01b8082213450d7e20042f01ba08211420012f01202115200441b0086a200441bc086a200141226a109a0620042f01b0082216450d7f20042f01b2082118200141c2006a2f01002119200441a8086a200441bc086a200141c4006a109a0620042f01a808221a450d800120042f01aa08211d200141e4006a2f0100211e200441a0086a200441bc086a200141e6006a109a0620042f01a008221f450d810120042f01a208212320014186016a2f0100212420044198086a200441bc086a20014188016a109a0620042f0198082225450d820120042f019a08212a200141a8016a2f0100212b20044190086a200441bc086a200141aa016a109a0620042f019008222c450d830120042f0192082132200141ca016a2f0100213320044188086a200441bc086a200141cc016a109a0620042f0188082234450d840120042f018a08213b200141ec016a2f0100213c20044180086a200441bc086a200141ee016a109a0620042f018008223d450d850120042f01820821452001418e026a2f01002146200441f8076a200441bc086a20014190026a109a0620042f01f8072247450d860120042f01fa072150200141b0026a2f01002151200441f0076a200441bc086a200141b2026a109a0620042f01f0072252450d870120042f01f207215c200141d2026a2f0100215d200441e8076a200441bc086a200141d4026a109a0620042f01e807225e450d880120042f01ea072169200141f4026a2f0100216a200441e0076a200441bc086a200141f6026a109a0620042f01e007226b450d890120042f01e207217720014196036a2f01002178200441d8076a200441bc086a20014198036a109a0620042f01d8072279450d8a0120042f01da07218601200141b8036a2f0100218701200441d0076a200441bc086a200141ba036a109a0620042f01d007228801450d8b0120042f01d207219601200141da036a2f0100219701200441c8076a200441bc086a200141dc036a109a0620042f01c807229801450d8c0120042f01ca0721a701200141fc036a2f010021a801200441c0076a200441bc086a200141fe036a109a0620042f01c00722a901450d0220042f01c20721b901024020042802fc09221120042802f809470d00201141016a22ba012011490d9101201141017422bb0120ba0120bb0120ba014b1b22ba01410420ba0141044b1bad42c4007e220d422088a74541027421ba01200da721bb010240024020110d00200441003602d00a0c010b200441043602d80a200420042802f4093602d00a2004201141c4006c3602d40a0b200441c00a6a20bb0120ba01200441d00a6a107d20042802c80a211120042802c00a4101460d02200420042802c40a3602f4092004201141c4006e3602f80920042802fc0921110b20042802f409201141c4006c6a221120b90120bc0120a9011b22bc013b01402011201420bd0120131b22bd013b0104201120123602002011413e6a20a8013b01002011413c6a20a70120be012098011b22be013b01002011413a6a2097013b0100201141386a20960120bf012088011b22bf013b0100201141366a2087013b0100201141346a20860120c00120791b22c0013b0100201141326a20783b0100201141306a207720c101206b1b22c1013b01002011412e6a206a3b01002011412c6a206920c201205e1b22c2013b01002011412a6a205d3b0100201141286a205c20c30120521b22c3013b0100201141266a20513b0100201141246a205020c40120471b22c4013b0100201141226a20463b0100201141206a204520c501203d1b22c5013b01002011411e6a203c3b01002011411c6a203b20c60120341b22c6013b01002011411a6a20333b0100201141186a203220c701202c1b22c7013b0100201141166a202b3b0100201141146a202a20c80120251b22c8013b0100201141126a20243b0100201141106a202320c901201f1b22c9013b01002011410e6a201e3b01002011410c6a201d20ca01201a1b22ca013b01002011410a6a20193b0100201141086a201820cb0120161b22cb013b0100201141066a20153b0100200420042802fc0941016a3602fc090b200ca72211450d8e01201141226c450d8e010c8d010b20110d90010c8e010b20004281808080203702000c8a010b200ca72211450d8b01201141226c0d8a010c8b010b20004281808080103702000c88010b20004281808080203702000c87010b20004281808080203702000c86010b20004281808080203702000c85010b20004281808080203702000c84010b20004281808080203702000c83010b20004281808080203702000c82010b20004281808080203702000c81010b20004281808080203702000c80010b20004281808080203702000c7f0b20004281808080203702000c7e0b20004281808080203702000c7d0b20004281808080203702000c7c0b20004281808080203702000c7b0b20004281808080203702000c7a0b20004281808080203702000c790b20004281808080203702000c780b20004281808080203702000c770b20004281808080203702000c760b20004281808080203702000c750b20004281808080203702000c740b20004281808080203702000c730b20004281808080203702000c720b20004281808080203702000c710b20004281808080203702000c700b20004281808080203702000c6f0b20004281808080203702000c6e0b20004281808080203702000c6d0b20004281808080203702000c6c0b20004281808080203702000c6b0b20004281808080203702000c6a0b20004281808080203702000c690b20004281808080203702000c680b20004281808080203702000c670b20004281808080203702000c660b20004281808080203702000c650b20004281808080203702000c640b20004281808080203702000c630b20004281808080203702000c620b20004281808080203702000c610b20004281808080203702000c600b20004281808080203702000c5f0b20004281808080203702000c5e0b20004281808080203702000c5d0b20004281808080203702000c5c0b20004281808080203702000c5b0b20004281808080203702000c5a0b20004281808080203702000c590b20004281808080203702000c580b20004281808080203702000c570b20004281808080203702000c560b20004281808080203702000c550b20004281808080203702000c540b20004281808080203702000c530b20004281808080203702000c520b20004281808080203702000c510b20004281808080203702000c500b20004281808080203702000c4f0b20004281808080203702000c4e0b20004281808080203702000c4d0b20004281808080203702000c4c0b20004281808080203702000c4b0b20004281808080203702000c4a0b20004281808080203702000c490b20004281808080203702000c480b20004281808080203702000c470b20004281808080203702000c460b20004281808080203702000c450b20004281808080203702000c440b20004281808080203702000c430b20004281808080203702000c420b20004281808080203702000c410b20004281808080203702000c400b20004281808080203702000c3f0b20004281808080203702000c3e0b20004281808080203702000c3d0b20004281808080203702000c3c0b20004281808080203702000c3b0b20004281808080203702000c3a0b20004281808080203702000c390b20004281808080203702000c380b20004281808080203702000c370b20004281808080203702000c360b20004281808080203702000c350b20004281808080203702000c340b20004281808080203702000c330b20004281808080203702000c320b20004281808080203702000c310b20004281808080203702000c300b20004281808080203702000c2f0b20004281808080203702000c2e0b20004281808080203702000c2d0b20004281808080203702000c2c0b20004281808080203702000c2b0b20004281808080203702000c2a0b20004281808080203702000c290b20004281808080203702000c280b20004281808080203702000c270b20004281808080203702000c260b20004281808080203702000c250b20004281808080203702000c240b20004281808080203702000c230b20004281808080203702000c220b20004281808080203702000c210b20004281808080203702000c200b20004281808080203702000c1f0b20004281808080203702000c1e0b20004281808080203702000c1d0b20004281808080203702000c1c0b20004281808080203702000c1b0b20004281808080203702000c1a0b20004281808080203702000c190b20004281808080203702000c180b20004281808080203702000c170b20004281808080203702000c160b20004281808080203702000c150b20004281808080203702000c140b20004281808080203702000c130b20004281808080203702000c120b20004281808080203702000c110b20004281808080203702000c100b20004281808080203702000c0f0b20004281808080203702000c0e0b20004281808080203702000c0d0b20004281808080203702000c0c0b20004281808080203702000c0b0b20004281808080203702000c0a0b20004281808080203702000c090b20004281808080203702000c080b20004281808080203702000c070b20004281808080203702000c060b20004281808080203702000c050b20004281808080203702000c040b20004281808080203702000c030b20004281808080203702000c020b20004281808080203702000c010b20004281808080203702000b0240200ca72207450d00200741226c450d002001102e0b02402003450d002006412c6a210103400240200141046a2802002206450d00200641226c450d002001280200102e0b2001412c6a2101200341546a22030d000b0b02402008450d002008412c6c450d002005102e0b200441c0086a109b060c070b2001102e0b200341546a21032006412c6a22062007470d010c040b0b1038000b1036000b20072001460d00034020012203412c6a21010240200341046a2802002206450d00200641226c450d002003280200102e0b20072001470d000b0b02402008450d002008412c6c450d002005102e0b200041046a200441c0086a41c00110e9081a200041003602000b200441e00a6a24000bc60101067f02400240200128020022012802042203450d00200128020021040340200341046a210520032f015e22064102742101410021070240024003402001450d0120022005280200412010ec082208450d022001417c6a2101200741016a2107200541046a21052008417f4a0d000b2007417f6a21060b2004450d022004417f6a2104200320064102746a41e0006a28020021030c010b0b200320074102746a41306a2802002205418080044921010c010b410021010b200020053b0102200020013b01000bf70301017f0240200041046a28020041ffffffff0171450d002000280200102e0b0240200041106a2802002201450d002001410c6c450d00200028020c102e0b02402000411c6a28020041ffffffff0071450d002000280218102e0b0240200041286a2802002201450d00200141146c450d002000280224102e0b0240200041346a2802002201450d00200141186c450d002000280230102e0b0240200041c0006a2802002201450d002001411c6c450d00200028023c102e0b0240200041cc006a28020041ffffff3f71450d002000280248102e0b0240200041d8006a2802002201450d00200141246c450d002000280254102e0b0240200041e4006a2802002201450d00200141286c450d002000280260102e0b0240200041f0006a2802002201450d002001412c6c450d00200028026c102e0b0240200041fc006a2802002201450d00200141306c450d002000280278102e0b024020004188016a2802002201450d00200141346c450d00200028028401102e0b024020004194016a2802002201450d00200141386c450d00200028029001102e0b0240200041a0016a2802002201450d002001413c6c450d00200028029c01102e0b0240200041ac016a28020041ffffff1f71450d0020002802a801102e0b0240200041b8016a2802002201450d00200141c4006c450d0020002802b401102e0b0b8c5103037f017e017f230041106b220224000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002d00000e18000102030405060708090a0b0c0d0e0f1011121314151617180b200241003a00002001200241011074024002400240024002400240200041086a2d00000e060001020304051d0b200241003a00002001200241011074200041106a290300200041186a2d0000200041196a2d0000200110be030c1c0b200241013a000020012002410110742000410c6a2d00002000410d6a2d00002000410e6a2d00002001109d06200041186a290300200041206a2d0000200041216a2d0000200110be030c1b0b200241023a000020012002410110740c1a0b200241033a000020012002410110742001200041096a412010740c190b200241043a000020012002410110742001200041096a412010740c180b200241053a000020012002410110742001200041096a412010744120102c2203450d1820024220370204200220033602002002200041296a41201074200120022802002200200228020810742002280204450d172000102e0c170b200241013a00002001200241011074024002400240200041046a2802000e03000102190b200241003a000020012002410110742002200041086a280200360200200120024104107420022000410c6a28020036020020012002410410740c180b200241013a000020012002410110742002200041086a280200360200200120024104107420022000410c6a28020036020020012002410410740c170b200241023a000020012002410110742002200041086a280200360200200120024104107420022000410c6a280200360200200120024104107402400240200041106a28020022030d00200241003a000020012002410110740c010b200241013a00002001200241011074200041186a28020022042001107620012003200410740b024020002d001c4106460d00200241013a0000200120024101107420002d001c2000411d6a2d00002000411e6a2d00002001109d060c170b200241003a000020012002410110740c160b200241043a00002001200241011074024002400240200041046a2d00000e03000102180b200241003a000020012002410110742001200041056a412010742002200041286a28020036020020012002410410740c170b200241013a000020012002410110742002200041086a28020036020020012002410410740c160b200241023a000020012002410110742002200041286a28020036020020012002410410742001200041056a412010740c150b200241053a0000200120024101107402400240024002400240024002400240200041086a2d00000e080001020304050607000b200241003a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c1b0b200241013a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c1a0b200241023a000020012002410110742001200041096a412010742001200041296a41201074200041d0006a29030021052002200041d8006a2903003703082002200537030020012002411010740c190b200241033a000020012002410110742001200041096a41201074200041306a29030021052002200041386a290300370308200220053703002001200241101074200041c0006a29030021052002200041c8006a2903003703082002200537030020012002411010740c180b200241043a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c170b200241053a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c160b200241063a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c150b200241073a000020012002410110742001200041096a412010742001200041296a41201074200041d0006a29030021052002200041d8006a2903003703082002200537030020012002411010740240200041c9006a2d00004101460d00200241003a000020012002410110740c150b200241013a000020012002410110740c140b200241073a00002001200241011074024002400240024002400240024002400240200041086a2d00000e090001020304050607081c0b200241003a0000200120024101107420022000410c6a2802003602002001200241041074200041106a29030021052002200041186a290300370308200220053703002001200241101074200041206a29030021052002200041286a2903003703082002200537030020012002411010740c1b0b200241013a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c1a0b200241023a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c190b200241033a0000200120024101107420022000410c6a28020036020020012002410410740c180b200241043a000020012002410110740c170b200241053a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c160b200241063a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c150b200241073a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c140b200241083a000020012002410110742001200041096a412010742001200041296a412010740c130b200241083a00002001200241011074200241003a000020012002410110742001200041106a41101074200041046a28020021032000410c6a28020022042001107620012003200410742002200041206a2d00003a000020012002410110740c120b200241093a00002001200241011074200241003a000020012002410110742002200041046a28020036020020012002410410740c110b2002410b3a00002001200241011074024002400240200041046a2802000e03000102130b200241003a00002001200241011074200041086a2802002103200041106a280200220020011076200041286c2200450d12200320006a2100034020012003412010742002200341206a2903003703002001200241081074200341286a22032000470d000c130b0b200241013a000020012002410110740c110b200241023a000020012002410110740c100b2002410c3a00002001200241011074024002400240200041046a2d00000e03000102120b200241003a000020012002410110742001200041056a412010740c110b200241013a000020012002410110740c100b200241023a00002001200241011074200041086a2802002103200041106a280200220020011076200041d0006c2200450d0f03402003200110a101200341d0006a2103200041b07f6a22000d000c100b0b2002410e3a00002001200241011074024002400240024002400240024002400240024002400240024002400240024002400240200041086a2d00000e12000102030405060708090a0b0c0d0e0f1011200b200241003a0000200120024101107420022000410c6a2802003602002001200241041074200041106a29030021052002200041186a2903003703082002200537030020012002411010740c1f0b200241013a0000200120024101107420022000410c6a2802003602002001200241041074200041206a29030021052002200041286a290300370308200220053703002001200241101074200041106a2802002103200041186a2802002200200110762000450d1e2000410574210003402001200341201074200341206a2103200041606a22000d000c1f0b0b200241023a000020012002410110740c1d0b200241033a0000200120024101107420022000410c6a2802003602002001200241041074024002400240200041096a2d00000e030001021f0b200241003a000020012002410110740c1e0b200241013a000020012002410110740c1d0b200241023a000020012002410110740c1c0b200241043a0000200120024101107420022000410c6a28020036020020012002410410740c1b0b200241053a0000200120024101107420022000410c6a28020036020020012002410410740c1a0b200241063a0000200120024101107420022000410c6a28020036020020012002410410740c190b200241073a0000200120024101107420022000410c6a28020036020020012002410410742002200041096a2d00003a000020012002410110740c180b200241083a000020012002410110742001200041096a412010742001200041296a412010740c170b200241093a000020012002410110742001200041096a412010740c160b2002410a3a000020012002410110742001200041096a412010744120102c2203450d1620024220370204200220033602002002200041296a412010742001200228020022032002280208107402402002280204450d002003102e0b2002200028024c36020020012002410410740c150b2002410b3a000020012002410110744120102c2203450d15200041296a210420024220370204200220033602002002200041096a412010742001200228020022032002280208107402402002280204450d002003102e0b2001200441201074200029035021052002200041d8006a2903003703082002200537030020012002411010740c140b2002410c3a000020012002410110744120102c2203450d14200041296a210420024220370204200220033602002002200041096a412010742001200228020022032002280208107402402002280204450d002003102e0b2001200441201074200029035021052002200041d8006a2903003703082002200537030020012002411010740c130b2002410d3a000020012002410110744120102c2203450d1320024220370204200220033602002002200041096a412010742001200228020022032002280208107402402002280204450d002003102e0b2002200028022c36020020012002410410740c120b2002410e3a000020012002410110744120102c2203450d1220024220370204200220033602002002200041096a412010742001200228020022032002280208107402402002280204450d002003102e0b2002200028022c36020020012002410410740c110b2002410f3a000020012002410110744120102c2203450d11200041c9006a2104200041296a210620024220370204200220033602002002200041096a412010742001200228020022032002280208107402402002280204450d002003102e0b2001200641201074200029037021052002200041f8006a29030037030820022005370300200120024110107420012004412010740c100b200241103a000020012002410110742001200041096a412010740c0f0b200241113a000020012002410110744120102c2203450d0f20024220370204200220033602002002200041096a41201074200120022802002200200228020810742002280204450d0e2000102e0c0e0b2002410f3a000020012002410110740240024002400240024002400240200041046a2d00000e0700010203040506140b200241003a000020012002410110742001200041056a412010742002200041c8006a28020036020020012002410410744120102c2203450d1420024220370204200220033602002002200041256a412010742001200228020022032002280208107402402002280204450d002003102e0b2002200028024c36020020012002410410740c130b200241013a000020012002410110742001200041056a412010744120102c2203450d1320024220370204200220033602002002200041256a412010742001200228020022032002280208107402402002280204450d002003102e0b200220002d00453a000020012002410110742002200028024836020020012002410410742002200028024c36020020012002410410740c120b200241023a000020012002410110744120102c2203450d1220024220370204200220033602002002200041056a41201074200120022802002200200228020810742002280204450d112000102e0c110b200241033a000020012002410110744120102c2203450d1120024220370204200220033602002002200041056a41201074200120022802002200200228020810742002280204450d102000102e0c100b200241043a000020012002410110744120102c2203450d1020024220370204200220033602002002200041056a412010742001200228020022032002280208107402402002280204450d002003102e0b024020002d00284106460d00200241013a0000200120024101107420002d0028200041296a2d00002000412a6a2d00002001109d060c100b200241003a000020012002410110740c0f0b200241053a000020012002410110744120102c2203450d0f20024220370204200220033602002002200041056a412010742001200228020022032002280208107402402002280204450d002003102e0b024020002d00284106460d00200241013a0000200120024101107420002d0028200041296a2d00002000412a6a2d00002001109d060c0f0b200241003a000020012002410110740c0e0b200241063a000020012002410110744120102c2203450d0e20024220370204200220033602002002200041056a412010742001200228020022032002280208107402402002280204450d002003102e0b2002200028022836020020012002410410742002200028022c36020020012002410410740c0d0b200241103a000020012002410110740240024002400240024002400240200041046a2d00000e0700010203040506130b200241003a000020012002410110742001200041056a412010742002200041c8006a28020036020020012002410410744120102c2203450d1320024220370204200220033602002002200041256a412010742001200228020022032002280208107402402002280204450d002003102e0b2002200028024c36020020012002410410740c120b200241013a000020012002410110742001200041056a412010744120102c2203450d1220024220370204200220033602002002200041256a412010742001200228020022032002280208107402402002280204450d002003102e0b200220002d00453a000020012002410110742002200028024836020020012002410410742002200028024c36020020012002410410740c110b200241023a000020012002410110744120102c2203450d1120024220370204200220033602002002200041056a41201074200120022802002200200228020810742002280204450d102000102e0c100b200241033a000020012002410110744120102c2203450d1020024220370204200220033602002002200041056a41201074200120022802002200200228020810742002280204450d0f2000102e0c0f0b200241043a000020012002410110744120102c2203450d0f20024220370204200220033602002002200041056a412010742001200228020022032002280208107402402002280204450d002003102e0b024020002d00284106460d00200241013a0000200120024101107420002d0028200041296a2d00002000412a6a2d00002001109d060c0f0b200241003a000020012002410110740c0e0b200241053a000020012002410110744120102c2203450d0e20024220370204200220033602002002200041056a412010742001200228020022032002280208107402402002280204450d002003102e0b024020002d00284106460d00200241013a0000200120024101107420002d0028200041296a2d00002000412a6a2d00002001109d060c0e0b200241003a000020012002410110740c0d0b200241063a000020012002410110744120102c2203450d0d20024220370204200220033602002002200041056a412010742001200228020022032002280208107402402002280204450d002003102e0b2002200028022836020020012002410410742002200028022c36020020012002410410740c0c0b200241113a000020012002410110740240024002400240024002400240200041086a2d00000e0700010203040506120b200241003a000020012002410110742000410c6a2802002103200041146a280200220020011076200041306c2200450d11200320006a210003402001200341201074200341206a29030021052002200341286a290300370308200220053703002001200241101074200341306a22032000470d000c120b0b200241013a000020012002410110740c100b200241023a000020012002410110740c0f0b200241033a000020012002410110742001200041096a412010740c0e0b200241043a000020012002410110742001200041096a412010740c0d0b200241053a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c0c0b200241063a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c0b0b200241123a0000200120024101107402400240024002400240024020002d00010e06000102030405100b200241003a000020012002410110740c0f0b200241013a000020012002410110740c0e0b200241023a000020012002410110740c0d0b200241033a000020012002410110740c0c0b200241043a000020012002410110740c0b0b200241053a000020012002410110740c0a0b200241133a000020012002410110740240024002400240024002400240200041086a2d00000e0700010203040506100b200241003a0000200120024101107420022000410c6a28020036020020012002410410740c0f0b200241013a00002001200241011074200041106a29030021052002200041186a2903003703082002200537030020012002411010740c0e0b200241023a0000200120024101107420022000412c6a2802003602002001200241041074200041306a29030021052002200041386a2903003703082002200537030020012002411010742001200041096a412010740c0d0b200241033a0000200120024101107420022000410c6a2802003602002001200241041074200041106a29030021052002200041186a2903003703082002200537030020012002411010740c0c0b200241043a00002001200241011074200041106a29030021052002200041186a2903003703082002200537030020012002411010740c0b0b200241053a00002001200241011074200041106a29030021052002200041186a2903003703082002200537030020012002411010740c0a0b200241063a00002001200241011074200041106a29030021052002200041186a2903003703082002200537030020012002411010740c090b200241183a00002001200241011074200241003a000020012002410110742001200041186a412010742001200041386a41141074200041086a29030021052002200041106a2903003703082002200537030020012002411010740c080b200241193a00002001200241011074200041096a21030240200041086a2d00004101460d00200241003a000020012002410110742001200341201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c080b200241013a0000200120024101107420012003412010740c070b2002411a3a000020012002410110740240200041086a2d00004106460d00200241003a000020012002410110742002200041046a280200360200200120024104107420002d0008200041096a2d00002000410a6a2d00002001109d060c070b200241013a000020012002410110740c060b2002411c3a000020012002410110740240024002400240024002400240024002400240200041086a2d00000e0a000102030405060708090f0b200241003a000020012002410110742001200041096a412010740c0e0b200241013a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c0d0b200241023a000020012002410110742001200041096a41201074200041306a29030021052002200041386a2903003703082002200537030020012002411010740c0c0b200241033a000020012002410110742001200041096a4120107420022000412c6a28020036020020012002410410740c0b0b200241043a000020012002410110742001200041096a4120107420022000412c6a28020036020020012002410410740c0a0b200241053a000020012002410110742001200041096a4120107420022000412c6a28020036020020012002410410740c090b200241063a0000200120024101107420022000410c6a28020036020020012002410410740c080b200241073a000020012002410110742001200041096a412010742001200041296a41201074200041d0006a29030021052002200041d8006a2903003703082002200537030020012002411010740c070b200241083a000020012002410110742001200041096a412010742001200041296a41201074200041d0006a29030021052002200041d8006a2903003703082002200537030020012002411010740c060b200241093a000020012002410110742001200041096a412010742001200041296a41201074200041d0006a29030021052002200041d8006a2903003703082002200537030020012002411010740c050b2002411d3a00002001200241011074024002400240200041046a2d00000e03000102070b200241003a000020012002410110740240200041086a2d00004106460d00200241013a0000200120024101107420002d0008200041096a2d00002000410a6a2d00002001109d060c070b200241003a000020012002410110740c060b200241013a000020012002410110742001200041056a412010742001200041256a412010740240024002400240024002400240200041c5006a2d00000e0700010203060405060b200241003a000020012002410110740c050b200241013a000020012002410110740c040b200241023a000020012002410110740c030b200241033a000020012002410110740c020b200241053a000020012002410110740c010b200241063a000020012002410110740b200220002f01463b010020012002410210740c050b200241023a000020012002410110742001200041056a412010742001200041256a412010744120102c2203450d0520024220370204200220033602002002200041c5006a41201074200120022802002200200228020810742002280204450d042000102e0c040b2002411e3a000020012002410110740240024002400240200041046a2d00000e0400010203000b200241003a000020012002410110742001200041056a412010742001200041256a412010742001200041c5006a412010740c060b200241013a000020012002410110742001200041056a412010742002200041e8006a28020036020020012002410410742002200041ec006a28020036020020012002410410742001200041256a412010742001200041c5006a412010740c050b200241023a000020012002410110742001200041056a412010742002200041e8006a28020036020020012002410410742002200041ec006a28020036020020012002410410742001200041256a412010742001200041c5006a412010740240200041f0006a2d00004106460d00200241013a0000200120024101107420002d0070200041f1006a2d0000200041f2006a2d00002001109d060c050b200241003a000020012002410110740c040b200241033a000020012002410110742001200041056a412010742002200041e8006a28020036020020012002410410742002200041ec006a28020036020020012002410410742001200041256a412010742001200041c5006a412010740c030b200241223a000020012002410110740240024002400240024002400240200041086a2d00000e0700010203040506090b200241003a0000200120024101107420022000410c6a28020036020020012002410410740c080b200241013a0000200120024101107420022000410c6a2802003602002001200241041074200041106a29030021052002200041186a2903003703082002200537030020012002411010740c070b200241023a0000200120024101107420022000410c6a28020036020020012002410410740c060b200241033a0000200120024101107420022000412c6a28020036020020012002410410742001200041096a412010740c050b200241043a0000200120024101107420022000412c6a2802003602002001200241041074200041306a29030021052002200041386a2903003703082002200537030020012002411010742001200041096a412010740c040b200241053a0000200120024101107420022000410c6a28020036020020012002410410740c030b200241063a0000200120024101107420022000410c6a28020036020020012002410410740c020b200241233a0000200120024101107402400240024002400240200041086a2d00000e050001020304060b200241003a000020012002410110744120102c2203450d0620024220370204200220033602002002200041096a41201074200120022802002200200228020810742002280204450d052000102e0c050b200241013a000020012002410110744120102c2203450d0520024220370204200220033602002002200041096a41201074200120022802002200200228020810742002280204450d042000102e0c040b200241023a000020012002410110744120102c2203450d04200041296a210420024220370204200220033602002002200041096a412010742001200228020022032002280208107402402002280204450d002003102e0b2001200441201074200029035021052002200041d8006a2903003703082002200537030020012002411010740c030b200241033a000020012002410110744120102c2203450d0320024220370204200220033602002002200041096a41201074200120022802002200200228020810742002280204450d022000102e0c020b200241043a000020012002410110744120102c2203450d02200041296a210420024220370204200220033602002002200041096a412010742001200228020022032002280208107402402002280204450d002003102e0b2001200441201074200029035021052002200041d8006a2903003703082002200537030020012002411010740c010b200241243a000020012002410110740240024002400240024002400240200041046a2d00000e06000102030405070b200241003a00002001200241011074024002400240200041056a2d00000e03000102090b200241003a000020012002410110740c080b200241013a000020012002410110740c070b200241023a000020012002410110740c060b200241013a000020012002410110740240200041056a2d000022004103470d00200241003a000020012002410110740c060b200241013a0000200120024101107402400240024020000e03000102080b200241003a000020012002410110740c070b200241013a000020012002410110740c060b200241023a000020012002410110740c050b200241023a000020012002410110742001200041056a412010740c040b200241033a000020012002410110742001200041056a412010740c030b200241043a000020012002410110742002200041086a2802003602000c010b200241053a000020012002410110742002200041086a2802003602000b20012002410410740b200241106a24000f0b1036000bd20101017f230041106b220424000240024002400240024002400240200041ff01710e06000102030405060b200441003a000f20032004410f6a410110740c050b200441013a000f20032004410f6a410110740c040b200441023a000f20032004410f6a410110740c030b200441033a000f20032004410f6a41011074200420013a000f20032004410f6a41011074200420023a000f20032004410f6a410110740c020b200441043a000f20032004410f6a410110740c010b200441053a000f20032004410f6a410110740b200441106a24000b1300200041063602042000418cc7cb003602000b130020004103360204200041c4fcc4003602000b130020004103360204200041f0e6c2003602000b130020004108360204200041ec82c8003602000b1300200041093602042000419cdec6003602000b130020004101360204200041c8aac0003602000b130020004101360204200041ccadc0003602000b130020004103360204200041e0a7c0003602000b130020004103360204200041c883c9003602000b130020004112360204200041b897cb003602000b130020004107360204200041e4edc9003602000b13002000410736020420004184aec2003602000b130020004106360204200041b8b9cc003602000b130020004107360204200041d894c4003602000b13002000410136020420004198f9c1003602000b130020004102360204200041d8eac7003602000b130020004102360204200041e8afc0003602000b13002000410a360204200041f8bec3003602000b13002000410336020420004184fbc0003602000b130020004104360204200041e4f9c3003602000b13002000410736020420004198e4c0003602000b1300200041053602042000419ce3c7003602000b130020004106360204200041d4afc8003602000b7201017f200028020022012001280200417f6a3602000240200028020022012802000d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200028020041046a22012001280200417f6a3602002000280200220041046a2802000d002000102e0b0b980301037f0240200028020022022802082001200228020c28020c110100450d00200041286a2d0000210002400240200128020022024117470d00024002400240024020012d0004417e6a0e050001020403040b2000450d0320012d0025220341ff01712000460d034101210420004101470d05200341ff0171450d050c040b2000450d0220012d0025220341ff01712000460d024101210420004101470d04200341ff0171450d040c030b20000d0341010f0b20000d0241010f0b4101210402400240024002400240024020000e0706010203000405060b000b2002411a4b0d05410120027441cfffbf3f710d04024020024104460d0020024114470d0641012104200141086a280200417f6a41024f0d060c050b20012d0004220141054b0d05410121044101200174412a71450d050c040b2002411a4b0d0441012002744180c0973171450d040c030b200241154b0d034101200274418085800171450d030c020b02402002416b6a0e020200030b200141086a2d0000410a470d020c010b20024117470d0120012d00044109470d010b20040f0b41000b7d01017f2000200110b6062102200028020022012001280200417f6a3602000240200028020022012802000d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200028020041046a22012001280200417f6a3602002000280200220041046a2802000d002000102e0b20020bb51302117f097e230041c0026b2202240020024198016a10f4040240024020022d0098014101460d002000410110f0060c010b200241e8016a22034200370300200241e0016a22044200370300200241d0016a41086a22054200370300200242003703d00120024180026a41a5fec600411a108102200520024180026a41086a220629000037030020022002290080023703d00120024180026a4194c5c800410e10810220032006290000370300200420022900800237030020024190016a200241d0016a4120108e022002280294012103200228029001210520024180026a200141306a1097062003410020051b21032002280288022105024020022802840241808080807872418080808078460d00200228028002102e0b024020032005460d002000410210f0060c010b200241d0016a41186a22064200370300200241d0016a41106a22074200370300200241d0016a41086a22054200370300200242003703d00120024180026a41a5fec600411a108102200520024180026a41086a220329000037030020022002290080023703d00120024180026a4184c4c800410e108102200441086a2003290000370000200420022900800237000020024180026a200241d0016a10ab05200241a0016a41086a22042003290300370300200241a0016a41106a220820024180026a41106a2209290300370300200241a0016a41186a220a20024180026a41186a220b290300370300200241a0016a41206a220c20024180026a41206a220d290300370300200241a0016a41286a220e20024180026a41286a220f29030037030020022002290380023703a001024020022d00bc024103460d0020022802b002211020022802b402211120022802b8022112200241d0016a41286a200141286a290300370300200241d0016a41206a200141206a2903003703002006200141186a2903003703002007200141106a2903003703002005200141086a290300370300200220012903003703d001200f200e290300370300200d200c290300370300200b200a2903003703002009200829030037030020032004290300370300200220022903a0013703800202400240024002404106102c2201450d0020024180016a200229038002221320024180026a41086a2903002214428094ebdc03420010e608200241f0006a20132014428094ebdc03420010e708200241e0006a2002290370200241f0006a41086a29030042a0c21e420010e808200241d0016a41086a290300211520022903d00121160240024020022903602217200229038001221842d00f80a7201842a0c21e7e428094ebdc03824200526aad7c2218200241e0006a41086a2903002018201754ad7c2217844200520d00417f20162013852015201485844200522016201354201520145420152014511b1b21040c010b0240427f201320187c221920192013542204201420177c2004ad7c221920145420192014511b22041b221a4200201320187d221b201b201356201420177d2013201854ad7d221820145620182014511b22031b221b56427f201920041b22174200201820031b22185620172018511b0d00417f20162013852015201485844200522016201354201520145420152014511b1b21040c010b4100210402400240417f2016201b852015201885844200522016201b54201520185420152018511b1b41016a0e03000201020b417f41002016201a54201520175420152017511b1b21040c010b2016201a56201520175620152017511b21040b200120043a00012001201620135a201520145a20152014511b3a0000200241306a200229039002221320024180026a41186a2903002214428094ebdc03420010e608200241d0006a20132014428094ebdc03420010e708200241c0006a2002290350200241d0006a41086a29030042a0c21e420010e808200241d0016a41186a290300211520022903e001211602400240200229034022172002290330221842d00f80a7201842a0c21e7e428094ebdc03824200526aad7c2218200241c0006a41086a2903002018201754ad7c22178450450d00417f20162013852015201485844200522016201354201520145420152014511b1b21040c010b0240427f201320187c221920192013542204201420177c2004ad7c221920145420192014511b22041b221a4200201320187d221b201b201356201420177d2013201854ad7d221820145620182014511b22031b221b56427f201920041b22174200201820031b22185620172018511b0d00417f20162013852015201485844200522016201354201520145420152014511b1b21040c010b4100210402400240417f2016201b852015201885844200522016201b54201520185420152018511b1b41016a0e03010200020b2016201a56201520175620152017511b21040c010b417f41002016201a54201520175420152017511b1b21040b200120043a00032001201620135a201520145a20152014511b3a0002200220022903a002221320024180026a41286a2903002214428094ebdc03420010e608200241206a20132014428094ebdc03420010e708200241106a2002290320200241206a41086a29030042a0c21e420010e808200241d0016a41286a290300211520022903f001211602400240200229031022172002290300221842d00f80a7201842a0c21e7e428094ebdc03824200526aad7c2218200241106a41086a2903002018201754ad7c221784500d000240427f201320187c221920192013542204201420177c2004ad7c221920145420192014511b22041b221a4200201320187d221b201b201356201420177d2013201854ad7d221820145620182014511b22031b221b56427f201920041b22174200201820031b22185620172018511b0d00417f20162013852015201485844200522016201354201520145420152014511b1b21040c020b4100210402400240417f2016201b852015201885844200522016201b54201520185420152018511b1b41016a0e03010300030b2016201a56201520175620152017511b21040c020b417f41002016201a54201520175420152017511b1b21040c010b417f20162013852015201485844200522016201354201520145420152014511b1b21040b200120043a00052001201620135a201520145a20152014511b3a00044100210520012c00010e020102030b1036000b20012d0000450d01024020012c00030e020001020b20012d0002450d0120012d000541ff014621050c010b410121050b2001102e02402012450d0020124106742104201041346a21010340024020012802002203450d00200341306c450d002001417c6a280200102e0b200141c0006a2101200441406a22040d000b0b0240201141ffffff1f71450d002010102e0b20050d002000410310f0060c010b200041063a00000b200241c0026a24000bdc2204057f027e157f097e23004190056b22022400200241306a200141306a41c00110e9081a200241f0016a41286a200141286a290300370300200241f0016a41206a200141206a290300370300200241f0016a41186a200141186a290300370300200241f0016a41106a200141106a290300370300200241f0016a41086a200141086a290300370300200220012903003703f00120012802f0012103200241a0046a41186a22044200370300200241a0046a41106a22014200370300200241a0046a41086a22054200370300200242003703a004200241e0026a41a5fec600411a1081022005200241e0026a41086a2206290000370300200220022900e0023703a004200241e0026a4180c3c800410510810220042006290000370300200120022900e002370300200241286a200241a0046a4120108e020240024002402003200228022c410120022802281b460d0020004281808080c0013703000c010b200241a0026a200241306a109706200442003703002001420037030020054200370300200242003703a004200241e0026a41a5fec600411a10810220052006290000370300200220022900e0023703a004200241e0026a4194c5c800410e108102200141086a2006290000370000200120022900e002370000200241206a200241a0046a4120108e020240024002400240024002402002280220450d00024020022802a80220022802242204460d0020004281808080d0003703000c020b200241e0026a10f504024020022802e0022201450d00200241c0046a41086a200241f4026a28020022053602002002200241ec026a29020022073703c004200220022902e40222083702b402200220013602b002200241c0026a41086a2005360200200220073703c002200242003702d40202402008422088a72205450d00200541386c2106200141086a2101410021050340200241e0026a41186a200141186a290000370300200241e0026a41106a200141106a290000370300200241e0026a41086a200141086a290000370300200220012900003703e002200141386a2101200241d0026a200241e0026a200510a402200541016a2105200641486a22060d000b0b20022802a402210920022802a002210a024002402004450d000240024020022802c802200a2f010022014b0d0041002101410a210b0c010b2002418c056a41026a20022802c00220014105746a220141026a2d00003a000020024180056a200141176a29000037030020024188056a2001411f6a2d00003a0000200220012f00003b018c052002200129000f3703f804200129000721072001280003210541012101410d210b0b200241c0046a41086a2206200241f8046a41086a290300370300200241c0046a41106a2203200241f8046a41106a2d00003a0000200220022903f80422083703e004200220022f018c053b01a004200220083703c00420022002418e056a2d00003a00a204200220073700a704200220053600a304200241bf046a20032d00003a0000200241b7046a2006290300370000200220022903c0043700af042001450d01200241e0026a41186a2201200241a0046a41186a290300370300200241e0026a41106a200241a0046a41106a290300370300200241e0026a41086a200241a0046a41086a290300370300200220022903a0043703e0024120102c220c450d06200c20022903e002370000200c41186a2001290300370000200c41106a200241e0026a41106a290300370000200c41086a200241e0026a41086a2903003700000240024020044101460d00200241af046a210d0240024020022802c802200a2f010222014b0d0041002106410a210b0c010b2002418c056a41026a20022802c00220014105746a220141026a2d00003a000020024180056a200141176a29000037030020024188056a2001411f6a2d00003a0000200220012f00003b018c052002200129000f3703f8042001290007210720012800032103410121060b200241e0026a41086a2201200241f8046a41086a220e290300370300200241e0026a41106a2205200241f8046a41106a220f2d00003a0000200220022903f80422083703e004200220022f018c053b01a004200220083703e00220022002418c056a41026a22102d00003a00a204200220073700a704200220033600a304200d20022903e002370000200d41086a22112001290300370000200d41106a221220052d00003a000020060d010b41012104410121130c080b200a41046a2114200241c0046a41186a2215200241a0046a41186a2216290300370300200241c0046a41106a2217200241a0046a41106a2218290300370300200241c0046a41086a2219200241a0046a41086a221a290300370300200220022903a0043703c0042004410174417c6a21034120211b41022113410121040340200241e0026a41186a221c20152903003703002005201729030037030020012019290300370300200220022903c0043703e00202400240024002402013417f6a2004470d00200441016a22062004490d0a2004410174221d2006201d20064b1b22064104200641044b1b220641ffffff3f71200646211d200641057421060240024020040d00200241003602a0040c010b200241013602a8042002200c3602a004200220044105743602a4040b200241f8046a2006201d200241a0046a107d200228028005210620022802f8044101460d0120022802fc04210c200641057621040b200c201b6a220620022903e002370000200641186a201c290300370000200641106a2005290300370000200641086a20012903003700002003450d0b20022802c80220142f010022064b0d0141002106410a210b0c020b2006450d080c090b201020022802c00220064105746a220641026a2d00003a0000200e200641176a290000370300200f2006411f6a2d00003a0000200220062f00003b018c052002200629000f3703f804200629000721072006280003211c410121060b2001200e2903003703002005200f2d00003a0000200220022903f80422083703e004200220022f018c053b01a004200220083703e002200220102d00003a00a204200220073700a7042002201c3600a304200d20022903e00237000020112001290300370000201220052d00003a00002006450d08201441026a211420152016290300370300201720182903003703002019201a290300370300200220022903a0043703c004201b41206a211b201341016a21132003417e6a21030c000b0b410d210b0b410021044101210c0240200941808080807872418080808078460d00200a102e0b410021130c060b20004281808080e0003703000c010b20004281808080e0003703000b20022802a40241808080807872418080808078460d0420022802a002102e0c040b1038000b1036000b200941808080807872418080808078460d00200a102e0b02400240200b410d460d000240200441ffffff3f71450d00200c102e0b2000200b36020441012106200041013602002000410c6a41003602000c010b200241e0026a200241306a41c00110e9081a200241c0046a200241e0026a200241b0026a200241c0026a108d060240024020022802c0044101470d0020022902c40421072000410c6a200241c0046a410c6a28020036020020002007370204200041013602000c010b20022802c404211b200241c8046a280200211402400240200241c0046a410c6a280200220b412c6c2201450d00201b20016a210e201b2101034041092105200241d0026a2001410c6a10a0022206450d0220022802b802200628020022064d0d022001412c6a210a20022802b002200641386c6a220541306a211720012802002203200128020841226c6a2115200541286a21190240034020152003460d01200341226a211c20172802004105742101201928020021050340024020010d00410821050c060b200141606a210120052003412010ec082106200541206a210520060d000b201c21030c000b0b200a2101200a200e470d000b0b2002200b3602c804200220143602c4042002201b3602c004200241e0026a200241c0046a200241d0026a200241b0026a10e706024020022802e0024101470d0020022902e40221072000410c6a200241e0026a410c6a28020036020020002007370204200041013602000c020b200241e8026a22052802002103200241e0026a200c201320022802e4022214200241e0026a410c6a2201280200221b10b7040240024020022802e0024101460d002005280200211520022802e402210b02400240200128020022130d00427f211e4200211f420021204200212142002122427f21230c010b20134106742105200b41206a2101427f211e427f212342002121420021224200211f4200212003402002200141086a2903002207420020012903002208420010e808200241106a200842002008420010e808427f2020427f200241106a41086a29030022242002290300222520257c7c22252007200229030822268420268442005220252024547222061b7c201f427f200229031020061b7c2224201f542206ad7c221f2006201f202054201f2020511b22061b2120427f202420061b211f200720232008201e54200720235420072023511b22061b21232008201e20061b211e427f202220077c202120087c22082021542206ad7c22072006200720225420072022511b22061b2122427f200820061b2121200141c0006a2101200541406a22050d000b0b200241e0026a41286a2020370300200241e0026a41186a20223703002002201f37038003200220213703f0022002201e3703e002200220233703e8020240200241e0026a200241f0016a413010ec08450d0020004281808080b00137030002402013450d0020134106742105200b41346a21010340024020012802002206450d00200641306c450d002001417c6a280200102e0b200141c0006a2101200541406a22050d000b0b201541ffffff1f71450d02200b102e0c020b20004100360200200041086a20022903f001370300200041c4006a41023a0000200041c0006a20133602002000413c6a2015360200200041386a200b360200200041306a200241f0016a41286a290300370300200041286a200241f0016a41206a290300370300200041206a200241f0016a41186a290300370300200041186a200241f0016a41106a290300370300200041106a200241f0016a41086a2903003703000240201b450d00201b412c6c21052014210103400240200141046a2802002206450d00200641306c450d002001280200102e0b2001412c6a2101200541546a22050d000b0b02402003450d002003412c6c450d002014102e0b0240200441ffffff3f71450d00200c102e0b200241d0026a10bc02024020022802c40241ffffff3f71450d0020022802c002102e0b024020022802b8022201450d00200141386c210520022802b002412c6a210103400240200128020041ffffff3f71450d002001417c6a280200102e0b200141386a2101200541486a22050d000b0b20022802b4022201450d06200141386c450d0620022802b002102e0c060b20022902e40221072000410c6a200128020036020020002007370204200041013602000b0240201b450d00201b412c6c21052014210103400240200141046a2802002206450d00200641306c450d002001280200102e0b2001412c6a2101200541546a22050d000b0b2003450d012003412c6c450d012014102e0c010b20004101360200200020053602040240200b450d00200b412c6c2105201b210103400240200141046a2802002206450d00200641226c450d002001280200102e0b2001412c6a2101200541546a22050d000b0b2014450d002014412c6c450d00201b102e0b41002106200441ffffff3f71450d00200c102e0b200241d0026a10bc02024020022802c40241ffffff3f71450d0020022802c002102e0b024020022802b8022201450d00200141386c210520022802b002412c6a210103400240200128020041ffffff3f71450d002001417c6a280200102e0b200141386a2101200541486a22050d000b0b024020022802b4022201450d00200141386c450d0020022802b002102e0b2006450d010b200241306a109b060b20024190056a24000b130020002002ad4220862001ad84101710da080bcc0101037f200028022822012001280200417f6a220236020020002d0001210302400240024020002d00000d004100210020020d022001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a22023602002002450d010c020b4101210020020d012001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d010b2001102e0b200341ff01714102472000720bf10101047f230041c0006b220224004191cdc20021034109210441042105024002400240024002400240200141ff01710e06000102030405000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a419c8ecc001044000b4186cdc2002103410b2104410021050c030b41feccc200210341082104410121050c020b41f9ccc200210341052104410221050c010b41eeccc2002103410b2104410321050b20004183083b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000bf30202047f017e230041a0026b220224002002200010c802200241a0016a200228020022032002280208220410c902200241f4016a2802002105200241f0016a280200210020022903a0012106200241d8006a200241a8016a41c80010e9081a0240024020064201510d0041002100200241106a410041c80010eb081a410021050c010b200241106a200241d8006a41c80010e9081a0b024002402000200572450d00417f200041016a220120012000491b21000c010b20012802002100200241a0016a41086a41033a0000200241a9016a2000290000370000200241b1016a200041086a290000370000200241b9016a200041106a290000370000200241c1016a200041186a290000370000200241003a00a001200241a0016a10fe01410121000b200241a8016a200241106a41c80010e9082101200241f4016a2005360200200241f0016a2000360200200242013703a00120032004200110c80502402002280204450d002003102e0b200241a0026a24000bf20304037f017e047f027e23004190026b22022400200241086a200010c802200241186a200228020822002002280210220310c902200241f0006a41086a2204200241e0006a28020036020020022903182105200242003703182002200241d8006a22062903003703700240024020054201520d00200241306a2903002105200241ec006a2802002107200241e8006a2802002108200241e4006a28020021092002290328210a2002290320210b20024180016a41086a2004280200360200200220022903703703800141012104024002400240200841014b0d002007200972450d0220090d01410121080b2006200229038001370300200241286a200a370300200241ec006a2007360200200241e4006a2009360200200241306a2005370300200641086a20024180016a41086a2802003602002002200b3703202002420137031820022008417f6a36026820002003200241186a41086a10c8050c030b410221040c020b2001280200210420024190016a41086a41043a000020024199016a2004290000370000200241a1016a200441086a290000370000200241a9016a200441106a290000370000200241b1016a200441186a290000370000200241003a00900120024190016a10fe010b2000200310ff01410021040b0240200228020c450d002000102e0b20024190026a240020040b9b0201047f230041c0006b2202240041c893c9002103410621044108210502400240024002400240024002400240200141ff01710e080001020304050607000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a41a4a9cc001044000b41b693c900210341122105410021040c050b41a693c900210341102105410121040c040b419993c9002103410d2105410221040c030b418d93c9002103410c2105410321040c020b418193c9002103410c2105410421040c010b41ed92c900210341142105410521040b200041830c3b0100200041086a2005360200200041046a2003360200200041026a20043a0000200241c0006a24000bf10101047f230041c0006b2202240041fdc3c10021034109210441042105024002400240024002400240200141ff01710e06000102030405000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a41848fcc001044000b41f1c3c1002103410c2104410021050c030b41dac3c100210341172104410121050c020b41cdc3c1002103410d2104410221050c010b41c7c3c100210341062104410321050b20004183123b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000b935608027f017e027f017e017f027e237f057e230041c0076b22042400200241106a2205290300210620032802102107200328020021082002290300210920044184036a200241e8016a2900003702002004418c036a200241f0016a29000037020020044194036a200241f8016a290000370200200441e7e485f3063602f8022004200241e0016a2900003702fc0220044180056a41106a200328021036020020044180056a41086a200341086a2902003703002004200329020037038005200441d0056a200441f8026a20044180056a109d040240024002400240200428029006220a450d00200441f8006a413e6a200441d0056a41386a290300370100200441f8006a41366a200441d0056a41306a290300370100200441f8006a412e6a200441d0056a41286a290300370100200441f8006a41266a200441d0056a41206a290300370100200441f8006a411e6a200441d0056a41186a290300370100200441f8006a41166a200441d0056a41106a290300370100200441f8006a410e6a200441d0056a41086a290300370100200420042903d00537017e20044198066a290300210b2004280294062103200441c8036a200441f8006a41c60010e9081a200441386a41086a200441c8036a410e6a290100370300200441386a41106a200441c8036a41166a290100370300200441386a41186a200441c8036a411e6a290100370300200441386a41206a200441c8036a41266a290100370300200441386a41286a200441c8036a412e6a290100370300200441386a41306a200441c8036a41366a290100370300200441386a41386a200441c8036a413e6a290100370300200420042901ce033703382002290308210c200441f8006a200541f00110e9081a02400240200c4201520d00200441d0056a200441f8006a41f00110e9081a0240200441d0056a410c6a200441c0066a412010ec080d0020042802d80520042802bc06460d020b200441ec036a2205200441d0056a41086a220241206a280200360200200441e4036a220d200241186a290200370200200441dc036a220e200241106a290200370200200441c8036a410c6a220f200241086a290200370200200441013602c803200420022902003702cc03200441c8036a200441a0076a2210200441fc056a20042903d005200910880721112005200441bc066a220241206a280200360200200d200241186a290200370200200e200241106a290200370200200f200241086a290200370200200441013602c803200420022902003702cc03200441c8036a2010200441e0066a20042903d005200910880721022011450d012002450d010c030b200441d0056a200441f8006a41f00110e9081a0240200441d0056a410c6a200441c0066a412010ec080d0020042802d80520042802bc06460d010b200441ec036a2205200441d0056a41086a220241206a280200360200200441e4036a220d200241186a290200370200200441dc036a220e200241106a290200370200200441c8036a410c6a220f200241086a290200370200200441003602c803200420022902003702cc03200441c8036a200441a0076a2210200441fc056a20042903d005200910880721112005200441bc066a220241206a280200360200200d200241186a290200370200200e200241106a290200370200200f200241086a290200370200200441003602c803200420022902003702cc03200441c8036a2010200441e0066a20042903d005200910880721022011450d0020020d020b200441f8006a410610b007200441df056a200441f8006a41086a2802002202360000200420042903783700d705200041186a41003a000020004200370308200020042900d005370019200041216a200441d0056a41086a290000370000200041286a2002360000200042013703000c020b200441f8006a410510b007200441df056a200441f8006a41086a2802002202360000200420042903783700d705200041186a41003a000020004200370308200020042900d005370019200041216a200441d0056a41086a290000370000200041286a2002360000200042013703000c020b0240024020094200520d00200441d0056a420010ac07200441206a20042802d005220520042802d805108e022004280224210d20042802202102024020042802d405450d002005102e0b4101210e0c010b200441d0056a2009427f7c10ac07200441306a20042802d005220d20042802d805108e022004280234210520042802302102024020042802d405450d00200d102e0b024020024101460d00200441f8006a410610b007200441df056a200441f8006a41086a2802002202360000200420042903783700d705200041186a41003a000020004200370308200020042900d005370019200041216a200441d0056a41086a290000370000200041286a2002360000200042013703000c020b200441d0056a200910ac07200441286a20042802d005220e20042802d805108e02200428022c210d20042802282102024020042802d405450d00200e102e0b4100210e0b024020024101460d00200441f8006a410610b007200441df056a200441f8006a41086a2802002202360000200420042903783700d705200041186a41003a000020004200370308200020042900d005370019200041216a200441d0056a41086a290000370000200041286a2002360000200042013703000c010b024002402008200d4b0d00410121124102200820054d200e1b22024102460d012002410171450d010b200441f8006a410610b007200441df056a200441f8006a41086a2802002202360000200420042903783700d705200041186a41003a000020004200370308200020042900d005370019200041216a200441d0056a41086a290000370000200041286a2002360000200042013703000c010b20012d00002202410146221341057421142001411f6a2d000021052001411e6a2d0000210d2001411d6a2d0000210e2001411c6a2d0000210f2001411b6a2d000021102001411a6a2d00002111200141196a2d00002115200141186a2d00002116200141176a2d00002117200141166a2d00002118200141156a2d00002119200141146a2d0000211a200141136a2d0000211b200141126a2d0000211c200141116a2d0000211d2001410f6a2d0000211e2001410e6a2d0000211f2001410d6a2d000021202001410c6a2d000021212001410b6a2d000021222001410a6a2d00002123200141096a2d00002124200141076a2d00002125200141066a2d00002126200141056a2d00002127200141036a2d00002128200141206a2d0000212920012d0010212a20012d0008212b20012d0004212c20012d0002212d20012d0001212e0240024020024101470d002014102c2212450d010b024002400240024002402014410576222f20134f0d00201441047622012013200120134b1b22014104200141044b1b41057421010240024020024101460d00200441003602d0050c010b200441d8056a4101360200200420143602d405200420123602d0050b200441f8006a20014101200441d0056a107d20044180016a280200210120042802784101460d01200428027c21122001410576212f0b20020d01410021010c020b2001450d020c030b410021012012210203402002411f6a20293a00002002202e41ff0171202d4108747241ffff0371202841ff0171202c4108747241107472ad202741ff017120264108747241ffff0371202541ff0171202b4108747241107472ad422086843700002002202441ff017120234108747241ffff0371202241ff017120214108747241107472ad202041ff0171201f4108747241ffff0371201e41ff0171202a4108747241107472ad422086843700082002411e6a20053a0000200241106a201d41ff0171201c4108747241ffff0371201b41ff0171201a4108747241107472ad201941ff017120184108747241ffff0371201741ff017120164108747241107472ad422086843700002002411c6a200e41ff0171200d410874723b0000200241186a201541ff017120114108747241ffff0371201041ff0171200f4108747241107472360000200241206a2102200141016a2101410041ff01710d000b0b200441d0016a200b370300200441cc016a2003360200200441f8006a41d0006a2203200a360200200441f8006a41186a200441386a41086a290300370300200441f8006a41206a200441386a41106a290300370300200441f8006a41286a200441386a41186a290300370300200441f8006a41306a220a200441386a41206a290300370300200441f8006a41386a220d200441386a41286a290300370300200441b8016a220e200441386a41306a290300370300200441f8006a41c8006a220f200441386a41386a2903003703002004200637038001200420093703782004200429033837038801200420073602dc01200420083602d80141d000102c2205450d01200441a0046a41086a2208200441f8006a41106a220241086a290300370300200441a0046a41106a2210200241106a290300370300200441a0046a41186a2211200241186a290300370300200420022903003703a004200a290300210c200d290300210b200e2903002130200f2903002131200441d0056a200310c501200541386a203137030020052030370330200541286a200b3703002005200c370320200541186a2011290300370300200541106a2010290300370300200541086a2008290300370300200520042903a004370300200520042903d005370340200541c8006a200441d0056a41086a280200360200200420013602f0022004202f3602ec02200420123602e8024100211b200441003602c805200442013703c005200420093703d005200441c0056a200441d0056a41081074200420063703d005200441c0056a200441d0056a41081074200441d0056a418997c500108a03200441c8036a20042802d005220320042802d805108b0320042902cc03420020042802c80322021b210c2002410120021b210d024020042802d405450d002003102e0b2004200c4220883e029c042004200d36029804200441186a20044198046a10ab01410821194100211a024020042802180d00200428021c220f200428029c0441306e22022002200f4b1bad42307e220b422088a70d01200ba72202417f4c0d010240024020020d00410821100c010b2002102c2210450d030b200241306e210e02400240200f0d004100210f0c010b410021110340024002400240200428029c0422034108490d00200428029804220a290000210b2004200a41086a360298042004200341786a220236029c0420024108490d00201141016a21152004200341706a220836029c042004200a41106a36029804200a290008213041002102200441003a00f0052003416f6a21030240034020082002460d01200441d0056a20026a200a20026a220141106a2d00003a00002004200141116a360298042004200241016a22013a00f0052004200336029c042003417f6a21032001210220014120470d000b200441c8036a41186a2202200441d0056a41186a290300370300200441c8036a41106a2203200441d0056a41106a290300370300200441c8036a41086a220a200441d0056a41086a290300370300200420042903d0053703c803200141ff01714120490d0120044180056a41086a200a2903002231370300200441e0046a41186a22012002290300370300200441e0046a41106a22022003290300370300200441e0046a41086a22032031370300200420042903c803223137038005200420313703e004200441c0046a41186a220a2001290300370300200441c0046a41106a22012002290300370300200441c0046a41086a22082003290300370300200420042903e0043703c0042011200e470d03200e41016a2202200e4f0d020c070b200241ff0171450d00200441003a00f0050b4100211b410821190240200e450d00200e41306c450d002010102e0b4100211a0c040b200e41017422032002200320024b1b22024104200241044b1bad42307e2231422088a74541037421022031a7210302400240200e0d00200441003602d0050c010b200441083602d805200420103602d0052004200e41306c3602d4050b200441c8036a20032002200441d0056a107d20042802d0032102024020042802c8034101470d0020020d060c050b20042802cc032110200241306e210e0b2010201141306c6a220220303703082002200b370300200220042903c004370310200241186a2008290300370300200241206a2001290300370300200241286a200a290300370300201521112015200f470d000b0b200f410020101b211a200e410020101b211b2010410820101b21190b200441d0056a418997c500200441c0056a108c03200441c8036a20042802d005220320042802d805108d0320042902cc03420020042802c80322021b210b024020042802d405450d002003102e0b200b422088213020042802c805212a20042802c405212720042802c00521280240200ca7450d00200d102e0b2002410120021b21262030a7211d200ba7211c200441d0056a41086a2202200541086a290300370300200441d0056a41106a2203200541106a290300370300200441d0056a41186a2201200541186a290300370300200441d0056a41206a220a200541206a290300370300200441d0056a41286a2208200541286a290300370300200441d0056a41306a220d200541306a290300370300200441d0056a41386a220e200541386a290300370300200441c8036a41086a220f200541cc006a280200360200200420052903003703d005200420052902443703c80302400240200528024022100d004100210a0c010b20044180056a41386a2211200e29030037030020044180056a41306a220e200d29030037030020044180056a41286a220d200829030037030020044180056a41206a2208200a29030037030020044180056a41186a220a200129030037030020044180056a41106a2201200329030037030020044180056a41086a22032002290300370300200441c0056a41086a2202200f280200360200200420042903d00537038005200420042903c8033703c005200441f8026a41386a2011290300370300200441f8026a41306a200e290300370300200441f8026a41286a200d290300370300200441f8026a41206a2008290300370300200441f8026a41186a200a290300370300200441f8026a41106a2001290300370300200441f8026a41086a200329030037030020042004290380053703f802200420103602b803200441bc036a220320042903c005370200200341086a2002280200360200200442013703d005200441003602d805200420093703c803200441d0056a200441c8036a41081074200420063703c803200441d0056a200441c8036a41081074200441e4056a410029009197453702002004410029008997453702dc052004200441f8026a3602ec05200441e0046a200441d0056a10ae01024020042802d405450d0020042802d005102e0b200441d0056a200441e0046a108e0320042802d005220320042802d805108f022102024020042802d405450d002003102e0b02400240024020020d00200441c8036a200441f8026a41d00010e9081a200441c0046a200441e8026a10c801200441d0056a200441c8036a41d00010e9081a200441d0056a41d0006a220241086a200441c0046a41086a280200360200200220042903c004370200200441c8036a200441e0046a108e0320042802c803220220042802d003200441d0056a108f03024020042802cc03450d002002102e0b02402004280294062202450d00200241306c450d00200428029006102e0b024020042802a40641ffffff3f71450d0020042802a006102e0b200441c8036a41186a220e200441e0046a41186a290300370300200441c8036a41106a220f200441e0046a41106a290300370300200441c8036a41086a2210200441e0046a41086a290300370300200420042903e0043703c803410021020240201a0e020302000b41002102201a210303400240417f20192003410176220a20026a220841306c6a220d290300220c200952200c2009541b22010d00417f200d290308220c200652200c2006541b21010b2002200820014101461b21022003200a6b220341014d0d020c000b0b4100210a20042802bc032202450d02200241306c450d0220042802b803102e0c020b02400240417f2019200241306c6a2201290300220c200952200c2009541b22030d0041ff0121032001290308220c2006540d01200c20065221030b2003450d010b2002200341ff017141ff01466a21020b200441d0056a41186a200e290300370300200441d0056a41106a200f290300370300200441d0056a41086a2010290300370300200420042903c8033703d00502400240201a2002490d000240201a201b470d00201b41016a2203201b490d04201b41017422012003200120034b1b22034104200341044b1bad42307e220c422088a7454103742103200ca7210102400240201b0d00200441003602c0040c010b200441083602c804200420193602c0042004201b41306c3602c4040b200441a0046a20012003200441c0046a107d20042802a804210320042802a0044101460d0220042802a4042119200341306e211b0b2019200241306c6a220341306a2003201a20026b41306c10ea081a2003200637030820032009370300200341286a200441d0056a41186a2201290300370300200341206a200441d0056a41106a2208290300370300200341186a200441d0056a41086a220d290300370300200320042903d0053703102001200441c8036a41186a2903003703002008200441c8036a41106a290300370300200d200441c8036a41086a290300370300200420042903c8033703d0050240201d201c470d00201c41016a2202201c490d04201c41017422032002200320024b1b22024104200241044b1b220241ffffff3f7120024621032002410574210202400240201c0d00200441003602c0040c010b200441013602c804200420263602c0042004201c4105743602c4040b200441a0046a20022003200441c0046a107d20042802a8042102024020042802a0044101470d0020020d060c050b20042802a40421262002410576211c0b4101210a201a41016a211a2026201d4105746a220220042903d005370000200241186a2001290300370000200241106a2008290300370000200241086a200d290300370000201d41016a211d0c020b2002201a1045000b20030d020c010b200541d0006a220220026b220341d0006d210102402003450d00200141d0006c2103200241c4006a21020340024020022802002201450d00200141306c450d002002417c6a280200102e0b200241d0006a2102200341b07f6a22030d000b0b2005102e024002400240200a450d00024002400240201d450d00201d410574210520044194066a2102202621030340200441c0056a2003108e03200441d0056a20042802c005220a20042802c805109003200441c8036a41086a2208200441d0056a41086a290300370300200441c8036a41106a220d200441d0056a41106a290300370300200441c8036a41186a220e200441d0056a41186a290300370300200441c8036a41206a220f200441d0056a41206a290300370300200441c8036a41286a2210200441d0056a41286a290300370300200441c8036a41306a2211200441d0056a41306a290300370300200441c8036a41386a2215200441d0056a41386a290300370300200441e0046a41086a2216200241086a290200370300200441e0046a41106a2217200241106a290200370300200441e0046a41186a2218200241186a280200360200200420042903d0053703c803200420022902003703e00402402004280290062201450d00200441f8026a41386a2015290300370300200441f8026a41306a2011290300370300200441f8026a41286a2010290300370300200441f8026a41206a200f290300370300200441f8026a41186a200e290300370300200441f8026a41106a200d290300370300200441f8026a41086a2008290300370300200441c0046a41086a2016290300370300200441c0046a41106a2017290300370300200441c0046a41186a2018280200360200200420042903c8033703f802200420042903e0043703c0040b024020042802c405450d00200a102e0b20010d02200341206a2103200541606a22050d000b0b4200210c4108210a0c010b20044180056a41386a2202200441f8026a41386a29030037030020044180056a41306a2208200441f8026a41306a29030037030020044180056a41286a220d200441f8026a41286a29030037030020044180056a41206a220e200441f8026a41206a29030037030020044180056a41186a220f200441f8026a41186a29030037030020044180056a41106a2210200441f8026a41106a29030037030020044180056a41086a2211200441f8026a41086a290300370300200441a0046a41086a2215200441c0046a41086a290300370300200441a0046a41106a2216200441c0046a41106a290300370300200441a0046a41186a2217200441c0046a41186a280200360200200420042903f80237038005200420042903c0043703a00441e000102c220a450d05200a200429038005370300200a2001360240200a20042903a004370244200a41386a2002290300370300200a41306a2008290300370300200a41286a200d290300370300200a41206a200e290300370300200a41186a200f290300370300200a41106a2010290300370300200a41086a2011290300370300200a41cc006a2015290300370200200a41d4006a2016290300370200200a41dc006a2017280200360200024020054120470d00428180808010210c0c010b200341206a210f2026201d4105746a222541606a212b200441d0056a41c4006a2102428180808010210c0340200f21030340200441c0056a2003108e03200441d0056a20042802c005220e20042802c805109003200441c8036a41086a2205200441d0056a41086a221e290300370300200441c8036a41106a2208200441d0056a41106a221f290300370300200441c8036a41186a220d200441d0056a41186a2220290300370300200441c8036a41206a220f200441d0056a41206a2221290300370300200441c8036a41286a2210200441d0056a41286a2222290300370300200441c8036a41306a2211200441d0056a41306a2223290300370300200441c8036a41386a2215200441d0056a41386a2224290300370300200441e0046a41086a2216200241086a290200370300200441e0046a41106a2217200241106a290200370300200441e0046a41186a2218200241186a280200360200200420042903d0053703c803200420022902003703e00402402004280290062201450d00200441f8026a41386a2015290300370300200441f8026a41306a2011290300370300200441f8026a41286a2010290300370300200441f8026a41206a200f290300370300200441f8026a41186a200d290300370300200441f8026a41106a2008290300370300200441f8026a41086a2005290300370300200441c0046a41086a2016290300370300200441c0046a41106a2017290300370300200441c0046a41186a2018280200360200200420042903c8033703f802200420042903e0043703c0040b024020042802c405450d00200e102e0b024020010d002025200341206a2203470d010c030b0b20044180056a41386a220e200441f8026a41386a29030037030020044180056a41306a220f200441f8026a41306a29030037030020044180056a41286a2210200441f8026a41286a29030037030020044180056a41206a2211200441f8026a41206a29030037030020044180056a41186a2215200441f8026a41186a29030037030020044180056a41106a2216200441f8026a41106a29030037030020044180056a41086a2217200441f8026a41086a290300370300200441a0046a41086a2218200441c0046a41086a290300370300200441a0046a41106a222c200441c0046a41106a290300370300200441a0046a41186a222d200441c0046a41186a280200360200200420042903f80237038005200420042903c0043703a004201e2017290300370300201f20162903003703002020201529030037030020212011290300370300202220102903003703002023200f2903003703002024200e29030037030020042004290380053703d005200520182903003703002008202c290300370300200d202d280200360200200420042903a0043703c80302400240200c422088a7220e200ca7460d00200c210b0c010b200e41016a220f200e490d06200e4101742210200f200f2010491b220f4104200f41044b1bad42e0007e220b422088a745410374210f200ba7211002400240200e0d00200441003602f8020c010b20044108360280032004200a3602f8022004200e41e0006c3602fc020b200441e0046a2010200f200441f8026a107d20042802e804210f20042802e0044101460d0420042802e404210a200f41e0006ead210b0b200341206a210f200a200e41e0006c6a220e20042903d005370300200e41106a201f290300370300200e41086a201e2903003703002023290300213020242903002131202229030021322021290300213320202903002134200e41c0006a2001360200200e41186a2034370300200e41206a2033370300200e41286a2032370300200e41386a2031370300200e41306a2030370300200e41c4006a20042903c803370200200e41cc006a2005290300370200200e41d4006a2008290300370200200e41dc006a200d280200360200200b42ffffffff0f83200c4280808080107c4280808080708384210c202b2003470d000b0b200441f0056a201a360200200441ec056a201b360200200441e4056a201d360200200441e0056a201c360200200420193602e805200420263602dc052004202a3602d805200420273602d405200420283602d005201a41306c4104722202417f4c0d032002102c2203450d042004410036028003200420023602fc02200420033602f802201a200441f8026a10760240201a450d002019201a41306c6a2101201921020340200420022903003703c803200441f8026a200441c8036a410810742004200241086a2903003703c803200441f8026a200441c8036a410810744120102c2203450d06200442203702cc03200420033602c803200441c8036a200241106a220241201074200441f8026a20042802c803220320042802d0031074024020042802cc03450d002003102e0b200241206a22022001470d000b0b200441c8036a418997c500108a0320042802c803220220042802d003200441f8026a10c502024020042802cc03450d002002102e0b024020042802fc02450d0020042802f802102e0b200441c8036a418997c500200441d0056a108c0320042802c803220220042802d003200441dc056a109103024020042802cc03450d002002102e0b02402027450d002028102e0b0240201c41ffffff3f71450d002026102e0b201b450d02201b41306c450d022019102e0c020b02402027450d002028102e0b0240201c41ffffff3f71450d002026102e0b4100210a0240201b450d00201b41306c450d002019102e0b0c010b200f0d020c010b024020042802ec0241ffffff3f71450d0020042802e802102e0b0240200a0d00024020042802cc012202450d00200241306c450d0020042802c801102e0b200441f8006a410710b007200441df056a200441f8006a41086a2802002202360000200420042903783700d705200041186a41003a000020004200370308200020042900d005370019200041216a200441d0056a41086a290000370000200041286a2002360000200042013703000c040b02400240024020074101200741014b1b2202418094ebdc036e2002418094ebdc03704100476a22034101200341014b1b220320024b0d002002200c422088a7220541036c220120022001491b20036ead428094ebdc037e200220036ead80a7109e042101200541ffffffff03712005470d0320054102742202417f4c0d030240024020020d00410421080c010b2002102c2208450d050b02402002410276220720054f0d00200241017622032005200320054b1b22034104200341044b1b220341ffffffff03712003464102742107200341027421030240024020020d00200441003602d0050c010b200441d8056a4104360200200420023602d405200420083602d0050b200441c8036a20032007200441d0056a107d200441d0036a2802002102024020042802c8034101460d0020042802cc032108200241027621070c030b20020d050c040b20050d01410021020c020b41d0d8c800411941bcd7cc001039000b2005210320082102034020022001360200200241046a21022003417f6a22030d000b200521020b200441086a200a20052008200220042802d801109203200442013703f8022004410036028003200420093703d005200441f8026a200441d0056a41081074200420063703d005200441f8026a200441d0056a410810742004418c036a4100290091974537020020044100290089974537028403200441e3036a200441f8026a41186a280200360000200441db036a200441f8026a41106a290300370000200441d3036a200429038003370000200420042903f8023700cb03200441d9056a200441c8036a41086a290000370000200441e1056a200441c8036a41106a290000370000200441d0056a41186a200441df036a290000370000200441f0056a41013a0000200441053a00d005200420042900c8033700d105200441d0056a10fe0102402007450d002008102e0b02402005450d00200541e0006c2103200a41d4006a210203400240200241706a2802002201450d00200141306c450d002002416c6a280200102e0b0240200228020041ffffff3f71450d002002417c6a280200102e0b200241e0006a2102200341a07f6a22030d000b0b0240200ca72202450d00200241e0006c450d00200a102e0b024020042802cc012202450d00200241306c450d0020042802c801102e0b2000420037030820004200370300200041186a41013a00000c030b1038000b1036000b2003450d00200341306c450d00200a102e0b200441c0076a24000b860301037f230041e0006b22032400200341086a41bed8c8004108108102200341186a41a4fcc8004112108102200320013602482003200341c8006a410410a301370338200341dc006a2201200341c8006a41046a3602002003200341386a41086a3602542003200341c8006a3602582003200341386a360250200341286a200341d0006a107c200320023602442003200341c4006a410410a3013703482001200341c4006a41046a3602002003200341c8006a41086a3602542003200341c4006a3602582003200341c8006a360250200341386a200341d0006a107c0240024020032802302201200328024022046a41206a2202417f4c0d000240024020020d00410121050c010b2002102c2205450d020b2000410036020820002002360204200020053602002000200341086a411010742000200341186a4110107420002003280228220220011074200020032802382201200410740240200328023c450d002001102e0b0240200328022c450d002002102e0b200341e0006a24000f0b1038000b1036000baff4020b027f027e077f027e047f0e7e027f057e047f047e0e7f230022032104200341c00b6b41607122032400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d00000e1a000102030405060708090a0b0c0d0e0f10111213141516171819000b200341d40a6a4101360200200342013702c40a2003419cc3cb003602c00a200341043602940920034194c3cb0036029009200320034190096a3602d00a200341c00a6a41c0accb001044000b200141306a2903002105200141286a2903002106200341e0066a41186a200141196a290000370300200341e0066a41106a200141116a290000370300200341e0066a41086a200141096a290000370300200320012900013703e006200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c102200341b8046a41086a220220034190096a41096a290000370300200341b8046a41106a220120034190096a41116a290000370300200341b8046a41186a220720034190096a41196a29000037030020032003290091093703b80420032d0090094101460d25200341d8046a41186a2007290300370300200341d8046a41106a2001290300370300200341d8046a41086a2002290300370300200320032903b8043703d8040240024020064280a094a58d1d5441002005501b450d00200341c0056a41011093080c010b20034198066a2201420037030020034190066a2202420037030020034180066a41086a220742003703002003420037038006200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c00737038006200341c0076a41b4f6ca00410f10810220012008290000370300200220032900c007370300200341286a20034180066a4120108e02200328022c21092003280228210a2001420037030020024200370300200742003703002003420037038006200341c0076a41de80ca00410910810220072008290000370300200320032900c00737038006200341c0076a418c81ca00410b10810220012008290000370300200220032900c00737030020034194096a41003a00002003410036029009200341206a20034180066a412020034190096a4105410010ca0402402003280220450d00200320032802242201410520014105491b3602c40a200320034190096a3602c00a200341186a200341c00a6a10ab0120032802180d00200328021c41e400490d00200341c0056a41231093080c010b200341c00a6a41186a2201200341e0066a41186a290300370300200341c00a6a41106a2207200341e0066a41106a290300370300200341c00a6a41086a2208200341e0066a41086a290300370300200320032903e0063703c00a20034190096a200341c00a6a10b7080240200328029409220b450d00200328029009210c200142003703002007420037030020084200370300200342003703c00a20034188086a41d9fcc6004106108102200820034188086a41086a220d29000037030020032003290088083703c00a20034188086a4180f4cb0041061081022001200d2900003703002007200329008808370300200341106a200341c00a6a4120108e0202402003280214410020032802101b200c4f0d00200341c0056a410610930820032802980941ffffff3f71450d02200b102e0c020b20032802980941ffffff3f71450d00200b102e0b200341c00a6a200341d8046a2006200510c302200341ca066a220120032d00c30a3a0000200320032f00c10a3b01c806024020032d00c00a22074106470d0020034180066a41186a420037030020034180066a41106a420037030020034180066a41086a220142003703002003420037038006200341c0076a41de80ca0041091081022001200341c0076a41086a2207290000370300200320032900c00737038006200341c0076a41b4f6ca00410f108102200241086a2007290000370000200220032900c007370000200320094100200a1b220141016a3602c00a20034180066a4120200341c00a6a410410b2012003200341d8046a36028006200341c0076a200110940820032802c807210820032802c00721074118102c2209450d6020034218370294092003200936029009410120034190096a107620034190096a20032802800641201074200320053703c80a200320063703c00a20034190096a200341c00a6a4110107420072008200328029009220920032802980910b2010240200328029409450d002009102e0b024020032802c407450d002007102e0b200341cc0a6a200341e0066a41086a290300370200200341d40a6a200341e0066a41106a290300370200200341dc0a6a200341e0066a41186a290300370200200341ec0a6a200341d8046a41086a290300370200200341f40a6a200341d8046a41106a290300370200200341fc0a6a200341d8046a41186a290300370200200320013602c00a200320032903e0063702c40a200320032903d8043702e40a20034180066a41186a420037030020034180066a41106a420037030020034180066a41086a220742003703002003420037038006200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c00737038006200341c0076a418c81ca00410b108102200241086a2008290000370000200220032900c0073700004104102c2202450d60200342043702c407200320023602c0072003200136029009200341c0076a20034190096a410410744120102c2202450d602003422037029409200320023602900920034190096a200341c00a6a41047241201074200341c0076a200328029009220220032802980910740240200328029409450d002002102e0b200341c0076a200341e40a6a4120107420034190096a41086a200341c0076a41086a280200360200200320032903c0073703900920034180066a412020034190096a10c702200341d80a6a2005370300200341d00a6a2006370300200341cc0a6a2001360200200341c00a6a41086a41003a0000200341093a00c00a200341c00a6a10fe01200341063a00c0050c630b20032902c40a2105200320073a00c005200320032f01c8063b00c105200320053702c405200320012d00003a00c3050b20032d00c0054106460d6120032902c40521050c600b200141086a2802002109200141046a2802002101200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c102200341b8046a41086a220220034199096a290000370300200341b8046a41106a2207200341a1096a290000370300200341b8046a41186a2208200341a9096a29000037030020032003290091093703b80420032d0090094101460d23200341d8046a41186a2008290300370300200341d8046a41106a2007290300370300200341d8046a41086a2002290300370300200320032903b8043703d804200341c00a6a200110940820032802c80a210820032802c00a21024100210720034190096a41046a41003a00002003410036029009200341306a2002200820034190096a4105410010ca04024002402003280230450d0020032802342107200341003a00f00802402007410520074105491b2207450d002007417f6a210b024020032d0090092207410371220a4103460d00024002400240200a0e03000102000b2007410276210a410121070c050b200b450d0220032d009109410874200772220741ffff0371418002490d02200741fcff0371410276210a410121070c040b200b4103490d0120032f00910920032d00930941107472410874200772220741ffff034d0d012007410276210a410121070c030b200741034b0d00200b4104490d0041012107200328009109220a41ffffffff034b0d020b41c4a6c000412010ef022002200810c907410021070b0b024020032802c40a450d002002102e0b2007450d220240200a20094d0d00200341c0076a41201093080c5b0b20034190096a2001109408200341c00a6a200328029009220a20032802980910ae052003280294092102024002400240024020032802c00a2208450d00200341d80a6a2903002105200341d00a6a2903002106200341c80a6a280200210920032802c40a210702402002450d00200a102e0b200341c00a6a200341d8046a2006200510c302200341ca066a220220032d00c30a3a0000200320032f00c10a3b01c80620032d00c00a220a4106470d0320034180066a41186a220a200341d8046a41186a29030037030020034180066a41106a220b200341d8046a41106a29030037030020034180066a41086a220c200341d8046a41086a290300370300200320032903d8043703800620092007470d02200741016a220220074f0d010c620b02402002450d00200a102e0b200341c0076a41021093080c5d0b2007410174220d2002200d20024b1b22024104200241044b1b220241ffffff3f71200246210d200241057421020240024020070d00200341003602c00a0c010b200341c80a6a4101360200200320083602c00a200320074105743602c40a0b20034190096a2002200d200341c00a6a107d20034198096a280200210202402003280290094101470d002002450d610c600b2003280294092108200241057621070b200820094105746a2202200329038006370000200241186a200a290300370000200241106a200b290300370000200241086a200c290300370000200341e0066a2001109408200941016a22024105744114722201417f4c0d5f20032802e806210b20032802e006210a2001102c220c450d5e200341003602980920032001360294092003200c36029009200220034190096a107602402002450d00200941057441206a210120082102034020034190096a200241201074200241206a2102200141606a22010d000b0b200320063703c00a200320053703c80a20034190096a200341c00a6a41101074200a200b200328029009220220032802980910b2010240200328029409450d002002102e0b024020032802e406450d00200a102e0b0240200741ffffff3f71450d002008102e0b200341063a00c0070c5d0b20032902c40a21052003200a3a00c007200320032f01c8063b00c107200320053702c407200320022d00003a00c307200741ffffff3f71450d5a2008102e0c5a0b200141046a2802002108200341d0086a41046a22092001410f6a2d00003a000020032001410b6a2800003602d008200141186a2903002105200141106a2903002106200141286a290300210e200141206a290300210f2001410a6a2d00002110200141096a2d00002111200141086a2d00002112200341c00a6a41286a220a200241286a280200360200200341c00a6a41206a220b200241206a290200370300200341c00a6a41186a220c200241186a290200370300200341c00a6a41106a220d200241106a290200370300200341c00a6a41086a2213200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c10220034180066a41086a220220034190096a41096a29000037030020034180066a41106a2201200341a1096a29000037030020034180066a41186a2207200341a9096a29000037030020032003290091093703800620032d0090094101460d1e200341c0076a41186a2007290300370300200341c0076a41106a2001290300370300200341c0076a41086a200229030037030020032003290380063703c00720034198046a41046a20092d00003a0000200320032802d00836029804200341f0086a2008108905200341c00a6a20032802f008220920032802f808108a052002200341800b6a2903003703002001200341880b6a2903003703002007200341900b6a29030037030020034180066a41206a200341980b6a29030037030020034180066a41286a200341a00b6a290300370300200320032800c10a3602c806200320032800c40a3600cb062003200341f80a6a2903003703800602400240024020032d00c00a22024102460d00200341f00a6a2903002114200a2903002115200b2903002116200c2903002117200d290300211820132903002119200341c0056a41286a220120034180066a41286a290300370300200341c0056a41206a220720034180066a41206a290300370300200341c0056a41186a220a20034180066a41186a290300370300200341c0056a41106a220b20034180066a41106a290300370300200341c0056a41086a220c20034180066a41086a29030037030020032003290380063703c005024020032802f408450d002009102e0b200341c00a6a41286a2001290300370300200341c00a6a41206a2007290300370300200341c00a6a41186a200a290300370300200341c00a6a41106a200b290300370300200341c00a6a41086a200c290300370300200320032903c0053703c00a02402002450d0020034190096a4111109308200341d8046a20034190096a41e40010e9081a0c020b20034190096a412c6a201437020020034190096a411c6a201637020020034190096a410c6a201837020020034190096a413c6a200341c00a6a41086a29030037020020034190096a41c4006a200341c00a6a41106a220229030037020020034190096a41cc006a200341c00a6a41186a29030037020020034190096a41d4006a200341c00a6a41206a29030037020020034190096a41dc006a200341c00a6a41286a290300370200200320153702b409200320173702a4092003201937029409200320032903c00a3702c409200341d8046a20034190096a41e40010e9081a200341e0066a41086a200341d8046a413c6a290200370300200341e0066a41106a200341d8046a41c4006a290200370300200341e0066a41186a200341d8046a41cc006a290200370300200341e0066a41206a200341d8046a41d4006a290200370300200341e0066a41286a200341d8046a41dc006a2902003703002003200329028c053703e006200341d8046a410c6a290200211a200341d8046a411c6a290200211b200341d8046a412c6a290200211820032902dc04211c20032902ec04211d20032902fc04211e20034190096a200341c0076a10c802200341c00a6a200328029009220720032802980910c902427f2005200e7c2006200f7c22172006542201ad7c22142001201420055420142005511b220b1b2005201241ff017141014622011b2115427f2017200b1b200620011b21192002290300420020032903c00a42015122021b211620032903c80a420020021b211f0240200328029409450d002007102e0b2019201f56201520165620152016511b450d0220034188086a411b1093080c590b024020032802f408450d002009102e0b20034190096a4111109308200341d8046a20034190096a41e40010e9081a0b20034188086a41086a200341d8046a41086a280200360200200320032902d804370388080c570b200341c0056a200341c0076a10b808200341c00a6a20032802c00520032802c80510b105200341e8086a41026a220220032d00c30a3a000041082107200341d0066a41086a200341a00b6a290300370300200320032f00c10a3b01e8082003200341980b6a2903003703d006200341900b6a2903002120200341880b6a2903002121200341ac0b6a2802002122200341a80b6a28020021230240024020032d00c00a220c4102470d00420021244100210d42002125420021264100211342002119420021274200211f420021284100210c0c010b200341d80a6a2903002127200341d00a6a2903002119200341e80a6a2903002128200341e00a6a290300211f200341800b6a2903002126200341f80a6a2903002125200341c00a6a41086a280200210d200341cc0a6a2802002113200341f00a6a290300212420032802c40a2107200341c0086a41026a20022d00003a000020034190096a41086a200341d0066a41086a290300370300200320032f01e8083b01c008200320032903d006370390090b0240200c450d0020034180066a41181093080c4f0b41002101024002400240024020130e025000010b41002102200728020022012008460d01200120084921010c4f0b4100210220132101034020022001410176220920026a220a2007200a41306c6a28020020084b1b2102200120096b220141014b0d000b02402007200241306c6a28020022012008460d00201341e4004b0d02200220012008496a21010c4f0b201320024d0d220b2007200241306c6a220141206a2109200141186a2903002116200141106a222929030021152001410a6a210a200141096a222a2d0000212b0240024002400240024020012d0008222c4101470d00200141286a290300212d2009290300212e20034198016a20152016420a420010e70820034188016a202e202d420a420010e708201e20157d222f201e56201820167d201e201554ad7d221620185620162018511b0d02202f202e7d2230202f562016202d7d202f202e54ad7d221520165620152016511b0d02201c20032903980122167d222f201c56201a20034198016a41086a2903007d201c201654ad7d2216201a562016201a511b0d01201d20032903880122187d221e201d56201b20034188016a41086a2903007d201d201854ad7d2218201b562018201b511b450d032030211e20152118202f211c2016211a0c020b02400240200a2d0000223141ff0171450d0041062132024002400240024002400240024020314107710e0700010203040506000b410021320c050b410121320c040b410221320c030b410321320c020b410421320c010b410521320b200341b8016a201642002032ad222e420010e808200341c8016a20154200202e420010e808427f200341d0016a290300222e20032903b8017c223020032903c0014200522030202e547222321b212d427f20032903c80120321b212e0c010b200341a8016a20152016420a420010e708200341b0016a290300212d20032903a801212e0b201e20157d2230201e56201820167d201e201554ad7d221520185620152018511b0d010240202b41ff01710d00201d202e7d2218201d56201b202d7d201d202e54ad7d2216201b562016201b511b0d012018211d2016211b201c212f201a21160c040b201c202e7d222f201c56201a202d7d201c202e54ad7d2216201a562016201a511b450d030b2030211e201521180b20034180066a411a1093080c510b201e211d2018211b0b201320024d0d20200141086a2101202c0d4a202b41ff0171222b4102460d4a4200201520287d2030201f54ad7d22182030201f7d221e203056201820155620182015511b222c1b21184200201e202c1b211e0240202b0d004200201b20277d201d201954ad7d2215201d20197d221a201d562015201b562015201b511b222b1b211b4200201a202b1b211d0c4c0b4200201620277d202f201954ad7d2215202f20197d221c202f56201520165620152016511b222b1b211a4200201c202b1b211c0c4c0b20034180066a41211093080c4e0b200141046a280200210b200241196a2d0000210c200241186a2d0000210d200241166a2f01002113200241156a2d00002112200241146a2d00002110200241126a2f01002111200241116a2d00002122200241106a2d000021232002410c6a2802002109200241086a280200210a200241046a2802002108200241026a2f0100212b2002280228210120022d0001212920022d00002107200341c00a6a41086a200241226a28010036020020032002411a6a2901003703c00a02400240024020074101470d0020012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200841ff0171450d010c480b20074103460d0120070d482008410876210220084110762107200a411076212a200a410876212c200941107621322009410876213120032903c00a210520012001280200417f6a22333602002003200537039009024020330d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22332033280200417f6a223336020020330d002001102e0b2003200c3a00d70a2003200d3a00d60a200320133b01d40a200320123a00d30a200320103a00d20a200320113b01d00a200320223a00cf0a200320233a00ce0a200320323b01cc0a200320313a00cb0a200320093a00ca0a2003202a3b01c80a2003202c3a00c70a2003200a3a00c60a200320073b01c40a200320023a00c30a200320083a00c20a2003202b3b01c00a20032003290390093703d80a202941ff0171450d014110102c2202450d5d200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d5d20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d482002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d482002102e0c480b200a41036c2009410174490d460b200341f0086a200b108905200341c00a6a20032802f008220220032802f808108a0520034180066a41086a2201200341800b6a29030037030020034180066a41106a2207200341880b6a29030037030020034180066a41186a2208200341900b6a29030037030020034180066a41206a2209200341980b6a29030037030020034180066a41286a220a200341a00b6a290300370300200320032800c10a3602c806200320032800c40a3600cb062003200341f80a6a2903003703800602400240024020032d00c00a220c4102460d00200341f00a6a2903002116200341c00a6a41286a2903002117200341c00a6a41206a2903002118200341c00a6a41186a2903002119200341c00a6a41106a290300211f200341c00a6a41086a290300211e200341c0056a41286a200a290300370300200341c0056a41206a2009290300370300200341c0056a41186a2008290300370300200341c0056a41106a2007290300370300200341c0056a41086a200129030037030020032003290380063703c005024020032802f408450d002002102e0b200341c0076a41086a200341c0056a41086a2903002205370300200341c0076a41106a200341c0056a41106a2903002206370300200341c0076a41186a200341c0056a41186a290300220e370300200341c0076a41206a200341c0056a41206a290300220f370300200341c0076a41286a200341c0056a41286a2903002214370300200320032903c00522153703c007200341c00a6a41286a22082014370300200341c00a6a41206a2209200f370300200341c00a6a41186a2202200e370300200341c00a6a41106a22012006370300200341c00a6a41086a22072005370300200320153703c00a0240200c450d0020034190096a4111109308200341d8046a20034190096a41e40010e9081a0c020b200341bc096a2016370200200341ac096a20183702002003419c096a201f370200200341cc096a2007290300370200200341d4096a2001290300370200200341dc096a2002290300370200200341e4096a2009290300370200200341ec096a2008290300370200200320173702b409200320193702a4092003201e37029409200320032903c00a3702c409200341d8046a20034190096a41e40010e9081a200341e0066a200341dc046a41e00010e9081a20034180066a41186a200341b0076a290300220537030020034180066a41106a200341a8076a290300220637030020034180066a41086a200341a0076a290300220e3703002003200329039807220f3703800620022005370300200120063703002007200e3703002003200f3703c00a20034190096a200341c00a6a10b9082003280290092201200328029809108f0221020240200328029409450d002001102e0b2002450d0220034188086a41041093080c460b024020032802f408450d002002102e0b20034190096a4111109308200341d8046a20034190096a41e40010e9081a0b20034188086a41086a200341d8046a41086a280200360200200320032902d804370388080c440b200341c00a6a41186a20034180066a41186a290300370300200341c00a6a41106a20034180066a41106a290300370300200341c00a6a41086a220120034180066a41086a29030037030020032003290380063703c00a20034190096a200341c00a6a10b90820032802900921022003280298092107200341013a00f00820022007200341f0086a410110b2010240200328029409450d002002102e0b200341cc0a6a200b360200200141063a0000200341093a00c00a200341c00a6a10fe01200341c00a6a200b10890520032802c00a220220032802c80a10ff01024020032802c40a450d002002102e0b200341063a0088080c440b20034190096a41186a200141196a29000037030020034190096a41106a200141116a29000037030020034190096a41086a200141096a2900003703002003200129000137039009200241026a2f0100210b200241046a2802002108200241086a28020021092002410c6a280200210a200241106a2d0000210c200241116a2d0000210d200241126a2f01002113200241146a2d00002112200241156a2d00002110200241166a2f01002111200241186a2d00002122200241196a2d0000212320022d0001212b2002280228210120022d00002107200341c00a6a41086a200241226a28010036020020032002411a6a2901003703c00a024002400240024020074101470d0020012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200841ff01710d002009410174200a4f0d030b4110102c2202450d5e200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d5e20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d012002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d012002102e0c010b20074103460d0120070d002008410876210220084110762107200941107621292009410876212a200a411076212c200a410876213220032903c00a210520012001280200417f6a2231360200200320053703d804024020310d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22312031280200417f6a223136020020310d002001102e0b200320233a00d70a200320223a00d60a200320113b01d40a200320103a00d30a200320123a00d20a200320133b01d00a2003200d3a00cf0a2003200c3a00ce0a2003202c3b01cc0a200320323a00cb0a2003200a3a00ca0a200320293b01c80a2003202a3a00c70a200320093a00c60a200320073b01c40a200320023a00c30a200320083a00c20a2003200b3b01c00a200320032903d8043703d80a202b41ff0171450d014110102c2202450d5d200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d5d20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200341023a00e0060c010b20034180066a41186a2201420037030020034180066a41106a2202420037030020034180066a41086a220742003703002003420037038006200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c00737038006200341c0076a418081ca00410c10810220012008290000370300200220032900c0073703000240024020034180066a4120108f020d00200341c00a6a41186a20034190096a41186a290300370300200341c00a6a41106a20034190096a41106a290300370300200341c00a6a41086a20034190096a41086a29030037030020032003290390093703c00a200341d8046a200341c00a6a10b708024020032802dc042201450d0020032802d8042107200341d80a6a22084200370300200341d00a6a22094200370300200341c00a6a41086a220a4200370300200342003703c00a20034188086a41d9fcc6004106108102200a20034188086a41086a220b29000037030020032003290088083703c00a20034188086a4180f4cb0041061081022008200b2900003703002009200329008808370300200341d8016a200341c00a6a4120108e02024020032802dc01410020032802d8011b20074f0d00200341e0066a410610930820032802e00441ffffff3f71450d032001102e0c030b20032802e00441ffffff3f71450d002001102e0b200341c00a6a41186a20034190096a41186a290300370300200341c00a6a41106a20034190096a41106a290300370300200341c00a6a41086a20034190096a41086a29030037030020032003290390093703c00a200341003a00e00a20034180066a41186a420037030020034180066a41106a420037030020034180066a41086a220142003703002003420037038006200341c0076a41de80ca0041091081022001200341c0076a41086a2207290000370300200320032900c00737038006200341c0076a418081ca00410c108102200241086a2007290000370000200220032900c00737000020034180066a200341c00a6a10ca05200341063a00e0060c440b200341e0066a41051093080b20032d00e0064106460d420b20032802e0062102200020032902e406370024200041206a2002360000200041186a41003a00002000420037030820004201370300200424000f0b20034190096a41186a200141196a29000037030020034190096a41106a200141116a29000037030020034190096a41086a200141096a2900003703002003200129000137039009200241026a2f0100210b200241046a2802002108200241086a28020021092002410c6a280200210a200241106a2d0000210c200241116a2d0000210d200241126a2f01002113200241146a2d00002112200241156a2d00002110200241166a2f01002111200241186a2d00002122200241196a2d0000212320022d0001212b2002280228210120022d00002107200341c00a6a41086a200241226a28010036020020032002411a6a2901003703c00a02400240024020074101470d0020012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200841ff0171450d010c410b20074103460d0120070d412008410876210220084110762107200941107621292009410876212a200a411076212c200a410876213220032903c00a210520012001280200417f6a2231360200200320053703d804024020310d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22312031280200417f6a223136020020310d002001102e0b200320233a00d70a200320223a00d60a200320113b01d40a200320103a00d30a200320123a00d20a200320133b01d00a2003200d3a00cf0a2003200c3a00ce0a2003202c3b01cc0a200320323a00cb0a2003200a3a00ca0a200320293b01c80a2003202a3a00c70a200320093a00c60a200320073b01c40a200320023a00c30a200320083a00c20a2003200b3b01c00a200320032903d8043703d80a202b41ff0171450d014110102c2202450d5b200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d5b20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d412002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d412002102e0c410b200941056c200a41036c490d3f0b200341c00a6a41186a20034190096a41186a290300370300200341c00a6a41106a20034190096a41106a290300370300200341c00a6a41086a20034190096a41086a29030037030020032003290390093703c00a200341023a00e00a20034180066a41186a2202420037030020034180066a41106a2201420037030020034180066a41086a220742003703002003420037038006200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c00737038006200341c0076a418081ca00410c10810220022008290000370300200120032900c00737030020034180066a200341c00a6a10ca05200041186a41003a000020004200370308200020032800e0063600192000411c6a200341e3066a28000036000020004200370300200424000f0b20034190096a41186a200141196a29000037030020034190096a41106a200141116a29000037030020034190096a41086a200141096a2900003703002003200129000137039009200241026a2f0100210b200241046a2802002108200241086a28020021092002410c6a280200210a200241106a2d0000210c200241116a2d0000210d200241126a2f01002113200241146a2d00002112200241156a2d00002110200241166a2f01002111200241186a2d00002122200241196a2d0000212320022d0001212b2002280228210120022d00002107200341c00a6a41086a200241226a28010036020020032002411a6a2901003703c00a02400240024020074101470d0020012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200841ff01710d002009200a4f0d030b4110102c2202450d5b200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d5b20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d012002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d012002102e0c010b20074103460d0120070d002008410876210220084110762107200941107621292009410876212a200a411076212c200a410876213220032903c00a210520012001280200417f6a2231360200200320053703d804024020310d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22312031280200417f6a223136020020310d002001102e0b200320233a00d70a200320223a00d60a200320113b01d40a200320103a00d30a200320123a00d20a200320133b01d00a2003200d3a00cf0a2003200c3a00ce0a2003202c3b01cc0a200320323a00cb0a2003200a3a00ca0a200320293b01c80a2003202a3a00c70a200320093a00c60a200320073b01c40a200320023a00c30a200320083a00c20a2003200b3b01c00a200320032903d8043703d80a202b41ff0171450d014110102c2202450d5a200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d5a20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200341f0086a41026a200341c0056a41026a2d000022023a0000200320032f00c00522013b01f008200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a000020004201370300200424000f0b200341c00a6a41186a20034190096a41186a290300370300200341c00a6a41106a20034190096a41106a290300370300200341c00a6a41086a20034190096a41086a29030037030020032003290390093703c00a200341013a00e00a20034180066a41186a2202420037030020034180066a41106a2201420037030020034180066a41086a220742003703002003420037038006200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c00737038006200341c0076a418081ca00410c10810220022008290000370300200120032900c00737030020034180066a200341c00a6a10ca05200041186a41003a000020004200370308200020032800e0063600192000411c6a200341e3066a28000036000020004200370300200424000f0b200141286a2802002134200141246a2802002109200241266a2f00002135200241226a28000021082002411a6a2900002105200241196a2d0000210b200241186a2d0000210c200241166a2f0000210d200241156a2d00002129200241146a2d0000212a200241126a2f0000212c200241116a2d00002132200241106a2d000021312002410e6a2f000021122002410d6a2d000021102002410c6a2d000021112002410a6a2f00002122200241096a2d00002123200241086a2d0000212b200241066a2f00002133200241056a2d00002136200241046a2d00002113200241026a2f000021372002280228210720022d0001213820022d00002102200341d8046a41186a200141196a290000370300200341d8046a41106a200141116a290000370300200341d8046a41086a200141096a290000370300200320012900013703d804200941880e490d37200320083602c80a200320053703c00a0240200241ff017122014102470d0020072007280200417f6a220236020020032902c40a2106024020020d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b201341ff01710d364101210a2022411074202341087472202b7241036c2012411074201041087472201172410174490d36410021010c350b024020014103470d00410021014101210a0c350b200241ff01710d3620072007280200417f6a22023602002003200537039009024020020d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b2003200b3a00d70a2003200c3a00d60a2003200d3b01d40a200320293a00d30a2003202a3a00d20a2003202c3b01d00a200320323a00cf0a200320313a00ce0a200320123b01cc0a200320103a00cb0a200320113a00ca0a200320223b01c80a200320233a00c70a2003202b3a00c60a200320333b01c40a200320363a00c30a200320133a00c20a200320373b01c00a200320032903900922053703d80a0240203841ff01710d00410321020c380b4110102c2201450d57200141f8f7c60036020c2001410136020820014281808080103702004110102c2207450d5720074190f8c60036020c20074101360208200742818080801037020020012001280200417f6a220a36020041002102200a0d372001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a220a200a280200417f6a220a360200200a0d372001102e0c370b200341f8066a200141196a290000370300200341e0066a41106a200141116a290000370300200341e0066a41086a200141096a290000370300200320012900013703e0062002280228210102400240024020022d00004102470d00200241246a2802002107200241226a2f01002108200241216a2d00002109200241206a2d0000210a2002411e6a2f0100210b2002411d6a2d0000210c2002411c6a2d0000212b2002411a6a2f01002129200241196a2d0000212a200241116a2900002105200241106a2d0000210d2002410e6a2f000021132002410d6a2d000021122002410c6a2d000021102002410a6a2f00002111200241096a2d00002122200241086a2d00002123200241066a2f0000212c200241056a2d00002132200241046a2d0000210220012001280200417f6a2231360200024020310d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22312031280200417f6a223136020020310d002001102e0b200320073a00df0a200320083b00dd0a200320093a00dc0a2003200a3a00db0a2003200b3b00d90a2003200c3a00d80a2003202b3a00d70a200320293b00d50a2003202a3a00d40a200320053702cc0a2003200d3a00cb0a200320133b00c90a200320123a00c80a200320103a00c70a200320113b00c50a200320223a00c40a200320233a00c30a2003202c3b00c10a200320323a00c00a200241ff01714101460d014110102c2202450d59200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d5920014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200341023a00c0050c010b200320032d00c20a3a00da04200320032f01c00a3b01d804200320073a00f704200320083b00f504200320093a00f4042003200a3a00f3042003200b3b00f1042003200c3a00f0042003200d3a00e304200320133b00e104200320123a00e004200320103a00df04200320113b00dd04200320223a00dc04200320233a00db04200320032903d00a3703e804200320053c00e404200320054218883c00e704200320054208883d00e504200341b8046a41186a22024200370300200341b8046a41106a22014200370300200341b8046a41086a22074200370300200342003703b804200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c0073703b804200341c0076a418081ca00410c10810220022008290000370300200120032900c007370300200341c00a6a200341b8046a10aa0520032d00e00a210220034180066a41186a2201200341c00a6a41186a220729030037030020034180066a41106a2208200341c00a6a41106a220929030037030020034180066a41086a220a200341c00a6a41086a220b290300370300200320032903c00a370380060240024020024103460d0020034190096a41186a2001290300220537030020034190096a41106a2008290300220637030020034190096a41086a200a290300220e3703002003200329038006220f370390092007200537030020092006370300200b200e3703002003200f3703c00a0240200341e0066a200341c00a6a412010ec08450d00200341c0056a41021093080c020b20034190096a200341e0066a10ba08200341c00a6a200328029009220220032802980910b70520032903c80a210520032802c40a21010240200328029409450d002002102e0b2001410120011b210941002102024002400240024002402005420020011b22054220882206a7220a0e020201000b41002102200a210103402001410176220820026a210720072002200920074105746a200341d8046a412010ec084101481b2102200120086b220141014b0d000b0b200920024105746a200341d8046a412010ec082207450d02200341c00a6a41186a200341d8046a41186a290300370300200341c00a6a41106a200341d8046a41106a290300370300200341c00a6a41086a200341d8046a41086a290300370300200320032903d8043703c00a200341c00a6a210120022007411f766a2207200a4d0d012007200a1045000b200341c00a6a41186a200341d8046a41186a290300370300200341c00a6a41106a200341d8046a41106a290300370300200341c00a6a41086a200341d8046a41086a290300370300200320032903d8043703c00a41002107200341c00a6a21010b024002400240200a2005a7460d00200521060c010b200a41016a2202200a490d5d200a4101742208200220022008491b22024104200241044b1b220241ffffff3f7120024621082002410574210202400240200a0d0020034100360290090c010b20034198096a41013602002003200936029009200320064205863e0294090b200341c0076a2002200820034190096a107d200341c8076a280200210220032802c0074101460d0120032802c40721092002410576ad21060b200920074105746a220241206a2002200a20076b41057410ea081a200241186a200141186a290000370000200241106a200141106a290000370000200241086a200141086a29000037000020022001290000370000200341c00a6a41186a22014200370300200341c00a6a41106a22074200370300200341c00a6a41086a22024200370300200342003703c00a20034188086a41d9fcc6004106108102200220034188086a41086a220829000037030020032003290088083703c00a20034188086a4180f4cb004106108102200120082900003703002007200329008808370300200341e8016a200341c00a6a4120108e0220032802e801210120032802ec0121072002200642ffffffff0f8320054280808080107c4280808080708384370300200320093602c40a2003200741c093066a41c0930620011b22023602c00a20034190096a200341e0066a10ba082003280290092201200328029809200341c00a6a10bf050240200328029409450d002001102e0b0240200642ffffff3f83500d002009102e0b200341c00a6a41086a410a3a0000200341c00a6a41096a20032903d804370000200341e90a6a20032903e006370000200341d10a6a200341d8046a41086a290300370000200341d90a6a200341d8046a41106a290300370000200341e10a6a200341d8046a41186a290300370000200341f10a6a200341e0066a41086a290300370000200341f90a6a200341e0066a41106a290300370000200341810b6a200341e0066a41186a290300370000200341093a00c00a2003418c0b6a2002360200200341c00a6a10fe0120034180066a41186a2202420037030020034180066a41106a2201420037030020034180066a41086a220742003703002003420037038006200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c00737038006200341c0076a418081ca00410c10810220022008290000370300200120032900c00737030020034180066a412010ff01200341063a00c0050c370b2002450d5b0c5a0b200341c0056a410a109308200542ffffff3f83500d012009102e0c010b200341c0056a41091093080b20032d00c0054106460d330b20032802c0052102200020032902c405370024200041206a2002360000200041186a41003a00002000420037030820004201370300200424000f0b200141046a2802002101200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a2207200241086a290200370300200320022902003703c00a200341c00a6a10a7050d16200341cc0a6a2001360200200741063a0000200341093a00c00a200341c00a6a10fe01200341c00a6a200110890520032802c00a220220032802c80a10ff01024020032802c40a450d002002102e0b200041186a41003a00002000420037030820002003280090093600192000411c6a20034193096a28000036000020004200370300200424000f0b200141046a2802002101200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a200241086a290200370300200320022902003703c00a200341c00a6a10a7050d14200320013602e806200342e4cab5fbb6ccdcb0e3003703e006410c102c2202450d542003420c3702c407200320023602c007200341c0076a200341e0066a41081074200320013602c00a200341c0076a200341c00a6a41041074200341033a00c00a20034190096a41086a20032802c807360200200320032903c00737039009200341d8046a200341c00a6a20034190096a10c304024020032d00d8044106470d00200341063a0080060c300b20034180066a410210930820032d0080064106460d2f20032902840621050c2e0b200141306a2903002105200141286a2903002106200141216a2d0000210b20034198046a41186a2207200141196a29000037030020034198046a41106a2208200141116a29000037030020034198046a41086a2209200141096a2900003703002003200129000137039804200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c10220034180066a41086a220220034190096a41096a29000037030020034180066a41106a220120034190096a41116a29000037030020034180066a41186a220a20034190096a41196a29000037030020032003290091093703800620032d0090094101460d11200341b8046a41186a200a290300220e370300200341b8046a41106a2001290300220f370300200341b8046a41086a20022903002214370300200320032903800622153703b80420034188086a41186a200e37030020034188086a41106a200f37030020034188086a41086a20143703002003201537038808200341f0086a41186a2007290300370300200341f0086a41106a2008290300370300200341f0086a41086a200929030037030020032003290398043703f008024020034188086a200341f0086a412010ec080d00200341c00a6a411f1093080c2c0b20034190096a20034188086a10c802200341c00a6a200328029009220120032802980910c902200341d00a6a290300420020032903c00a42015122021b210e20032903c80a420020021b210f0240200328029409450d002001102e0b0240200f20065a200e20055a200e2005511b0d00200341c00a6a411b1093080c2c0b200341a8086a20034188086a10b808200341c00a6a20032802a808223720032802b008223910b105200341e8086a41026a220220032d00c30a3a0000200341d0066a41086a2201200341a00b6a290300370300200320032f00c10a3b01e8082003200341980b6a2903003703d006200341ac0b6a280200213a0240024020032d00c00a22074102470d0020034190096a41206a220241003602004200211420034190096a41106a420037030020034190096a41186a4200370300200341083602c40520034190096a41086a4200370300200342003703c805200341003a00c005200342003703d005200342003703d805200342003703900920034190096a41306a29030021192002290300211b20032903b809211f4200210e4200210f420021150c010b200341c00a6a41186a2903002116200341c00a6a41106a2903002117200341e80a6a290300210e200341c00a6a41206a2903002114200341f80a6a2903002115200341900b6a2903002119200341880b6a290300211f200341c00a6a41086a2802002108200341cc0a6a2802002109200341c00a6a41306a290300210f20032802c40a210a20034190096a41206a200341c00a6a41c0006a290300221b37030020034190096a41306a201937030020034190096a41c0006a2001290300370300200320173703d005200320153703a80920032014370390092003201f3703b809200320073a00c005200320032f01e8083b00c105200320093602cc05200320083602c8052003200a3602c4052003200f3703a009200320032903d0063703c809200320163703d8052003200e37039809200320022d00003a00c3052003200341a80b6a280200220a3602b8080b200342003703d807200320053703d007200320063703c807200320032903f0083700e1062003200341f0086a41086a2903003700e9062003200341f0086a41106a2903003700f1062003200341f0086a41176a2900003700f8062003200b3a00c107200320032d008f093a00c007200320153703d8072003200f3703d0072003200e3703c807200341013a00e00620032903e006211620032903e806211820032903f006211e20032903f806211a200320032903d805221d3703f806200320032903d00522273703f006200320032903c805221c3703e806200320032903c00522173703e0062003201a3703d8052003201e3703d005200320183703c805200320163703c00520032903c007211e200320143703c007200341a8096a4200370300200320053703a00920032006370398092003201e3703900920032903c809211e200341c0096a4200370300200342003703c809200342003703b809200342003703b00920032903d009211a200342003703d009200341003602b808200341c8096a2108200341b8096a2109200341b0096a21012016a721070240024002402017a741ff01714101460d002017422088a7210c201ca7210a201c422088a70d02200920034190096a200741ff017141014622021b2207200e37030820072014370300200341a8096a200341c0056a41107220021b2207201d37030820072027370300200820034190096a41106a20021b220720153703082007200f370300200341b8086a200120021b201ba7360200200a450d01200a41306c450d01200c102e0c010b200341c00a6a41176a200341e0066a410172220241176a290000370000200341c00a6a41106a200241106a290000370300200341c00a6a41086a200241086a290000370300200320022900003703c00a20032014a7220c3a00df0a4106210202400240024002400240024002400240200c41087641ff01710e0706000102030405060b410121020c040b410221020c030b410321020c020b410421020c010b410521020b200341b0026a200f42002002ad2214420010e808200341c0026a200e42002014420010e808427f200341c8026a290300221420032903b0027c221620032903b80242005220162014547222021b2114427f20032903c00220021b21160c010b200341a0026a200e200f420a420010e708200341a8026a290300211420032903a00221160b200341c00a6a20162014200e200f10bb081a200920034190096a200741ff017141014622021b220720193703082007201f370300200820034190096a41106a20021b2207201a3703082007201e3703002001200341c0056a41187220021b201b37030020034190096a41186a200341c0056a41107220021b2015370300200341b8086a200120021b200a3602000b02400240200b41ff0171450d00410621020240024002400240024002400240200b4107710e0700010203040506000b410021020c050b410121020c040b410221020c030b410321020c020b410421020c010b410521020b20034180026a200542002002ad220e420010e80820034190026a20064200200e420010e808427f20034198026a290300220e2003290380027c220f200329038802420052200f200e547222021b211a427f20032903900220021b211c0c010b200341f0016a20062005420a420010e708200341f8016a290300211a20032903f001211c0b200341c0086a200341f0086a10b808200341c00a6a20032802c008223b20032802c808223c10b105200341e8086a41026a220220032d00c30a3a000041082138200341d0066a41086a2201200341a00b6a290300370300200320032f00c10a3b01e8082003200341980b6a2903003703d006200341900b6a290300211b200341880b6a2903002128200341ac0b6a280200213d200341a80b6a280200213e0240024020032d00c00a22344102470d004200211f4100213541002136420021184200211e4200211942002121420021204200211d410021340c010b200341d80a6a2903002118200341d00a6a290300211f200341e80a6a2903002119200341e00a6a290300211e200341800b6a290300211d200341f80a6a2903002120200341c00a6a41086a2802002135200341cc0a6a2802002136200341f00a6a290300212120032802c40a2107200341e4086a41026a20022d00003a0000200341d0086a41086a2001290300370300200320032f01e8083b01e408200320032903d0063703d0084101210120344101460d14200721380b427f201920057c201e20067c220f201e542202ad7c220e2002200e201954200e2019511b22021b2119427f200f20021b211e427f2018201a7c201f201c7c220f201f542202ad7c220e2002200e201854200e2018511b22021b2118427f200f20021b211f0240203641306c2202450d00203820026a210c200341f80a6a2101200341c00a6a410172220d41036a2113203821020340200241306a21070240200241086a2d00004101710d00200241096a2d00002133200341d0066a2002280200108905200341c00a6a20032802d006220820032802d8062212108a0520034180066a41086a2229200141086a221029000037030020034180066a41106a222a200141106a221129000037030020034180066a41186a222c200141186a222229000037030020034180066a41206a2232200141206a222329000037030020034180066a41286a2231200141286a222b2900003703002003200d2800003602c806200320132800003600cb062003200129000037038006200341c00a6a41306a2109200341c00a6a41206a210a200341c00a6a41106a210b0240024020032d00c00a22024102470d00410221020c010b2009290300210e200a2903002114200b290300211520032903e80a210f20032903d80a211620032903c80a2117200341d8046a41086a2029290300370300200341d8046a41106a202a290300370300200341d8046a41186a202c290300370300200341d8046a41206a2032290300370300200341d8046a41286a2031290300370300200320032800cb063600eb08200320032802c8063602e80820032003290380063703d80420020d00427f200e20057c200f20067c2227200f542202ad7c220f2002200f200e54200f200e511b22021b210e427f202720021b210f0240024020334101710d00427f2014201a7c2016201c7c22272016542202ad7c22162002201620145420162014511b22021b2114427f202720021b21160c010b427f2015201a7c2017201c7c22272017542202ad7c22172002201720155420172015511b22021b2115427f202720021b21170b410021020b200d20032802e808360000200120032903d8043703002009200e370300200a2014370300200b2015370300201320032800eb083600002010200341d8046a41086a2903003703002011200341d8046a41106a2903003703002022200341d8046a41186a2903003703002023200341d8046a41206a290300370300202b200341d8046a41286a2903003703002003200f3703e80a200320163703d80a200320173703c80a200320023a00c00a0240024020024102470d002008201210ff010c010b20034100360288062003420137038006200341c00a6a20034180066a10bc0520082012200328028006220220032802880610b201200328028406450d002002102e0b20032802d406450d002008102e0b20072102200c2007470d000b0b2038210720342101203621020c2a0b200341c00a6a411d10930820032902c40a210520032802c00a21020240200a450d00200a41306c450d00200c102e0b41012101200741ff01710d2a2018a72207450d2a200741306c450d2a2016422088a7102e0c2a0b200341c00a6a41286a2208200241286a280200360200200341c00a6a41206a2209200241206a290200370300200341c00a6a41186a220a200241186a290200370300200341c00a6a41106a220b200241106a290200370300200341c00a6a41086a220c200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c10220034180066a41086a220220034199096a29000037030020034180066a41106a2201200341a1096a29000037030020034180066a41186a2207200341a9096a29000037030020032003290091093703800620032d0090094101460d0f200341b8046a41186a20072903002205370300200341b8046a41106a20012903002206370300200341b8046a41086a2002290300220e3703002003200329038006220f3703b804200341f0086a41186a2005370300200341f0086a41106a2006370300200341f0086a41086a200e3703002003200f3703f00820034198046a200341f0086a10b808200341c00a6a200328029804220720032802a004220d10b105200341e8086a41026a220220032d00c30a3a0000200341d0066a41086a200341a00b6a290300370300200320032f00c10a3b01e8082003200341980b6a2903003703d0060240024020032d00c00a22014102470d0042002106200342003703d805200342003703d005200342003703c805200342003703c00520034200370388064100210a200341003a00800620034108360284062003420037039006200342003703980620034100360290094100210142002105420021150c010b200341880b6a290300210f200341800b6a2903002114200341f80a6a2903002115200829030021062009290300210e200a2903002116200b2903002117200341f00a6a2903002105200341cc0a6a2802002108200c280200210920032802c40a210a200341a0096a200341900b6a290300370300200341b0096a200341d8066a29030037030020032017370390062003200f37039809200320013a008006200320032f01e8083b0081062003200836028c0620032009360288062003200a36028406200320153703d805200320053703d005200320032903d0063703a809200320163703980620032014370390092003200e3703c005200320063703c805200320022d00003a0083062003200341a80b6a28020022083602a808200e420888a72101200ea7210a0b200341083602e406200341003a00e006200341003602c007200329039806210e200342003703980620032903900621142003420037039006200329038806210f2003420037038806200342003703d805200342003703d005200342003703c805200342003703c0052003200e3703f806200320143703f0062003200f3703e80620032903d80721162003200341a8096a220229030022173703d80720032903d0072118200320032903a009221e3703d00720032903c80721192003200329039809221a3703c80720032903e006210e200320032903800622143703e0062003200e3703800620032903c007211f2003200329039009221c3703c00720022016370300200320183703a00920032019370398092003201f37039009200ea7210902400240024002402014a741ff0171220b4101470d0020032903b009210e200341ef046a20032900f806370000200341e8046a20032900f106370300200341d8046a41086a20032900e906370300200320032900e1063703d8042003200a3a00f70402400240200141ff0171450d0041062102024002400240024002400240024020014107710e0700010203040506000b410021020c050b410121020c040b410221020c030b410321020c020b410421020c010b410521020b200341e8026a200542002002ad220f420010e808200341f8026a20064200200f420010e808427f20034180036a290300220f20032903e8027c221420032903f0024200522014200f547222021b210f427f20032903f80220021b21140c010b200341d8026a20062005420a420010e708200341e0026a290300210f20032903d80221140b200341d8046a2014200f2006200510bb082102200341c00a6a41186a220a4200370300200341c00a6a41106a220b4200370300200341c00a6a41086a220c4200370300200342003703c00a20034188086a41d9fcc6004106108102200c20034188086a41086a221329000037030020032003290088083703c00a20034188086a4180f4cb004106108102200a2013290000370300200b200329008808370300200341d0026a200341c00a6a4120108e0220032802d402410020032802d0021b210c4180c09306210b0240024002400240024020014107710e0706000102030407060b4180ce18210b0c060b41809c31210b0c050b4180b8e200210b0c040b4180f0c401210b0c030b4180e08903210b0c020b200341c00a6a411c10930820032902c40a210520032802c00a21020240200b0d00200fa72201450d00200141306c450d002014422088a7102e0b41012101200941ff01710d0241010d0241010d02200e422088a7102e410121010c020b4100210b0b20034190096a41086a200341c0056a200941ff017141014622011b2209201e3703082009201a37030020034190096a20034180066a41187220011b201c370300200341c0056a41187220034180066a41107220011b2015370300200341a8086a20034190096a20011b2008200b200c6a2209200820094b1b36020020034190096a41186a200341c0056a41107220011b2201200e20052017200656200e200556200e2005511b22081b37030820012017200620081b370300200a200329039806370300200341f80a6a20032903d805370300200341f00a6a20032903d005370300200341e80a6a20032903c805370300200341c00a6a41206a20032903c005370300200341800b6a200329039009370300200341880b6a200329039809370300200341900b6a20034190096a41106a290300370300200341980b6a20032903a809370300200341a00b6a20034190096a41206a290300370300200341a80b6a20032802a80836020020032003290390063703d00a200320032903880622063703c80a200320032903800622053703c00a024002402005a7220141ff01714102470d002007200d10ff010c010b200341d8046a200341c00a6a10c2042007200d20032802d804220820032802e00410b201024020032802dc04450d002008102e0b200141ff01710d002006a72201450d00200141306c450d002005422088a7102e0b410021010b0240200328029c04450d002007102e0b20010d27200341c00a6a41086a41093a0000200341c00a6a41096a20032903f008370000200341d10a6a200341f0086a41086a290300370000200341d90a6a200341f0086a41106a290300370000200341e10a6a200341f0086a41186a290300370000200341093a00c00a200341c00a6a10fe01200320032800d0083602c0082003200341d3086a2800003600c308200041186a41003a0000200041106a2002ad220542f0cfe9037e200542c0f0f50b7e7c20054280c2d72f7e7c42d08dc582017c37030020004201370308200020032802c0083600192000411c6a20032800c30836000020004200370300200424000f0b200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a200241086a290200370300200320022902003703c00a0240200341c00a6a10a705450d00200341e0066a41026a200341d8046a41026a2d000022023a0000200320032f00d80422013b01e006200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a000020004201370300200424000f0b20034180066a41186a2202420037030020034180066a41106a2201420037030020034180066a41086a220742003703002003420037038006200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c00737038006200341c0076a418c81ca00410b10810220022008290000370300200120032900c00737030020034180066a412010ff01200041186a41003a00002000420037030820002003280090093600192000411c6a20034193096a28000036000020004200370300200424000f0b2001410c6a2802002108200141086a2802002107200141046a2802002101200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c10220034180066a41086a220220034199096a29000037030020034180066a41106a2209200341a1096a29000037030020034180066a41186a220a200341a9096a29000037030020032003290091093703800602400240024020032d0090094101460d00200341d8046a41186a200a290300370300200341d8046a41106a2009290300370300200341d8046a41086a200229030037030020032003290380063703d804200320083602c80a200320073602c40a200320013602c00a200341e0066a200341d8046a200341c00a6a10bc08200341c8066a41026a220120032d00e3063a0000200320032f00e1063b01c80620032d00e00622024106460d0220032902e4062105200341c0056a41026a20012d00003a0000200320032f01c8063b01c0050c010b4102210202402007450d002001102e0b0b200341f0086a41026a200341c0056a41026a2d000022013a0000200320032f01c00522073b01f008200041206a20023a0000200041186a41003a000020004200370308200020073b0021200041236a20013a00002000200537002420004201370300200424000f0b200041186a41003a000020004200370308200020032800c0073600192000411c6a200341c3076a28000036000020004200370300200424000f0b2001410c6a2802002132200141086a2802002129200141046a280200212c4101212b200241246a2802002107200241226a2f01002108200241216a2d00002109200241206a2d0000210a2002411e6a2f0100210b2002411d6a2d0000210c200241106a2d0000210d2002410e6a2f000021132002410d6a2d000021122002410c6a2d000021102002410a6a2f01002111200241096a2d00002122200241086a2d0000212320022802282101024020022d00004101470d002002411c6a2d0000212a2002411a6a2f01002131200241196a2d00002133200241116a2900002106200241066a2f01002136200241056a2d00002137200241046a2d0000210220012001280200417f6a2238360200024020380d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22382038280200417f6a223836020020380d002001102e0b200320073a00df0a200320083b00dd0a200320093a00dc0a2003200a3a00db0a2003200b3b00d90a2003200c3a00d80a2003202a3a00d70a200320313b00d50a200320333a00d40a200320063702cc0a2003200d3a00cb0a200320133b00c90a200320123a00c80a200320103a00c70a200320113b00c50a200320223a00c40a200320233a00c30a200320363b00c10a200320373a00c00a200241ff01714101460d0c4110102c2202450d50200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d5020014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a222a360200202a0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a222a202a280200417f6a222a360200202a0d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0c230b2001410c6a2802002108200141086a2802002107200141046a2802002101200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c10220034180066a41086a220220034199096a29000037030020034180066a41106a2209200341a1096a29000037030020034180066a41186a220a200341a9096a29000037030020032003290091093703800602400240024020032d0090094101460d00200341d8046a41186a200a290300370300200341d8046a41106a2009290300370300200341d8046a41086a200229030037030020032003290380063703d804200320083602c80a200320073602c40a200320013602c00a200341e0066a200341d8046a200341c00a6a10bd08200341c8066a41026a220120032d00e3063a0000200320032f00e1063b01c80620032d00e00622024106460d0220032902e4062105200341f0086a41026a20012d00003a0000200320032f01c8063b01f0080c010b4102210202402007450d002001102e0b0b20034188086a41026a2201200341f0086a41026a2d00003a0000200320032800c0073602c005200320032f01f0083b0188082003200341c3076a2800003600c305200041186a41003a000020004200370308200020032802c0053600192000411c6a20032800c305360000200041206a20023a0000200041246a2005370200200020032f0188083b0021200041236a20012d00003a000020004201370300200424000f0b200320032800c0073602c0052003200341c3076a2800003600c305200041186a41013a000020004200370308200020032802c0053600192000411c6a20032800c30536000020004200370300200424000f0b2001410c6a2802002132200141086a2802002129200141046a280200212c4101212b200241246a2802002107200241226a2f01002108200241216a2d00002109200241206a2d0000210a2002411e6a2f0100210b2002411d6a2d0000210c200241106a2d0000210d2002410e6a2f000021132002410d6a2d000021122002410c6a2d000021102002410a6a2f01002111200241096a2d00002122200241086a2d0000212320022802282101024020022d00004101470d002002411c6a2d0000212a2002411a6a2f01002131200241196a2d00002133200241116a2900002106200241066a2f01002136200241056a2d00002137200241046a2d0000210220012001280200417f6a2238360200024020380d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22382038280200417f6a223836020020380d002001102e0b200320073a00df0a200320083b00dd0a200320093a00dc0a2003200a3a00db0a2003200b3b00d90a2003200c3a00d80a2003202a3a00d70a200320313b00d50a200320333a00d40a200320063702cc0a2003200d3a00cb0a200320133b00c90a200320123a00c80a200320103a00c70a200320113b00c50a200320223a00c40a200320233a00c30a200320363b00c10a200320373a00c00a200241ff01714101460d094110102c2202450d4e200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d4e20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a222a360200202a0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a222a202a280200417f6a222a360200202a0d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0c200b200141246a2802002113200341c0056a41186a2207200141196a290000370300200341c0056a41106a2208200141116a290000370300200341c0056a41086a2209200141096a290000370300200320012900013703c005200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a2201200241186a290200370300200341c00a6a41106a220a200241106a290200370300200341c00a6a41086a220b200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c102200341b8046a41086a220220034190096a41096a290000370300200341b8046a41106a220c20034190096a41116a290000370300200341b8046a41186a220d20034190096a41196a29000037030020032003290091093703b8040240024020032d0090094101460d00200341c0076a41186a200d290300370300200341c0076a41106a200c290300370300200341c0076a41086a2002290300370300200320032903b8043703c007200341e4066a41003b0100200341003602e00620012007290300370300200a2008290300370300200b2009290300370300200320032903c0053703c00a20034190096a200341c00a6a10be0820034198036a2003280290092201200328029809200341e0066a4106410010ca0402402003280298030d00200341c00a6a41101093080c1e0b2003200328029c032202410620024106491b22023602dc042003200341e0066a3602d804200341003a00f0080240024002402002450d0020032002417f6a3602dc042003200341e0066a4101723602d80420032d00e0060e020102000b4190c1cb00412910ef02200341c00a6a41101093080c1f0b200341c00a6a41101093080c1e0b20034190036a200341d8046a10ab01200328029003450d014190c1cb00412910ef02200341c00a6a41101093080c1d0b200341023a0098040c1e0b20032802940321020240200328029409450d002001102e0b0240200220134d0d0020034198046a41201093080c1d0b200341f0086a200341c0056a109808200341c00a6a20032802f008220220032802f80810ad0520034190096a41086a2201200341c90a6a29000037030020034190096a41106a2207200341d10a6a29000037030020034190096a41186a2208200341d90a6a29000037030020034190096a411f6a2209200341e00a6a280000360000200320032900c10a3703900902400240024020032d00c00a220a4102460d00200341880b6a2903002105200341800b6a2903002106200341f80a6a2802002112200341f40a6a2802002113200341f00a6a280200210b200341e80a6a280200210c200341e40a6a280200210d200341d8046a411f6a2009280000360000200341d8046a41186a2008290300370300200341d8046a41106a2007290300370300200341d8046a41086a200129030037030020032003290390093703d804024020032802f408450d002002102e0b200341c00a6a411f6a200341d8046a411f6a280000360000200341c00a6a41186a2202200341d8046a41186a290300370300200341c00a6a41106a2201200341d8046a41106a290300370300200341c00a6a41086a2207200341d8046a41086a290300370300200320032903d8043703c00a200a450d01200341e0066a41186a2002290300370300200341e0066a41106a2001290300370300200341e0066a41086a2007290300370300200320032903c00a3703e0060240200c450d00200d102e0b20034180066a41086a200341e0066a41086a290300220e37030020034180066a41106a200341e0066a41106a290300220f37030020034180066a41186a200341e0066a41186a2903002214370300200320032903e00622153703800620034190096a41186a201437030020034190096a41106a200f37030020034190096a41086a200e3703002003201537039009200341c00a6a41186a22024200370300200341c00a6a41106a22014200370300200341c00a6a41086a22074200370300200342003703c00a20034188086a41d9fcc6004106108102200720034188086a41086a220829000037030020032003290088083703c00a20034188086a4180f4cb00410610810220022008290000370300200120032900880837030020034188036a200341c00a6a4120108e02200328028c0341002003280288031b2202200b4180ce184100200341c0076a20034190096a412010ec081b6a4180ce186a4f0d0220034198046a410e1093080c1f0b20032802f408450d002002102e0b20034198046a41101093080c1d0b02402013450d00200220124b0d0020034198046a410f1093080c1d0b200341d8046a20034190096a200341c0076a200620054100108904200341c00a6a200341c0056a10980820032802c00a220220032802c80a10ff01024020032802c40a450d002002102e0b200341c00a6a41086a410f3a0000200341e90a6a200329039009370000200341d10a6a200341c0056a41086a290300370000200341d90a6a200341c0056a41106a290300370000200341e10a6a200341c0056a41186a290300370000200341f10a6a20034190096a41086a290300370000200341f90a6a20034190096a41106a290300370000200341810b6a20034190096a41186a290300370000200341093a00c00a200341c00a6a41096a20032903c005370000200341b00b6a2006370300200341b80b6a2005370300200341a10b6a200341c0076a41186a290300370000200341990b6a200341c0076a41106a290300370000200341910b6a200341c0076a41086a290300370000200341890b6a20032903c007370000200341c00a6a10fe01200341063a0098040c1e0b200341d8046a41186a200141196a290000370300200341d8046a41106a200141116a290000370300200341d8046a41086a200141096a290000370300200320012900013703d804200341c00a6a41286a2201200241286a280200360200200341c00a6a41206a2207200241206a290200370300200341c00a6a41186a2209200241186a290200370300200341c00a6a41106a220a200241106a290200370300200341c00a6a41086a220b200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c10202400240024020032d0090094101460d00200341c0076a200341d8046a10b808200341c00a6a20032802c007220820032802c807220c10b105200341e8086a41026a220220032d00c30a3a0000200341d0066a41086a200341c00a6a41e0006a290300370300200320032f00c10a3b01e8082003200341c00a6a41d8006a2903003703d0060240024020032d00c00a220d4102470d00200341a0096a4200370300200341a8096a4200370300200341b0096a4200370300200341b8096a420037030020034190096a41306a420037030020034190096a41386a420037030020034190096a41c0006a4100360200200341083602940920034190096a41086a4200370300200341003a0090090c010b200341c00a6a41c8006a2903002105200341c00a6a41c0006a2903002106200341c00a6a41386a290300210e2001290300210f2007290300211420092903002115200a2903002116200341c00a6a41306a2903002117200341c00a6a410c6a2802002101200b280200210720032802c40a210920034190096a41d0006a200341c00a6a41d0006a29030037030020034190096a41c8006a200537030020034190096a41c0006a200637030020034190096a41386a200e370300200341b8096a200f370300200341b0096a2014370300200341a8096a2015370300200341a0096a201637030020034190096a41306a201737030020034190096a410c6a200136020020034190096a41086a200736020020034190096a41d8006a20032903d00637030020034190096a41e0006a200341d0066a41086a2903003703002003200d3a009009200320032f01e8083b0091092003200936029409200320022d00003a00930920034190096a41e8006a200341c00a6a41e8006a2903003703000b200341d80a6a22024200370300200341c00a6a41106a22014200370300200341c00a6a41086a22074200370300200342003703c00a20034188086a41d9fcc6004106108102200720034188086a41086a220929000037030020032003290088083703c00a20034188086a4180f4cb004106108102200220092900003703002001200329008808370300200341a0036a200341c00a6a4120108e020240200341f8096a200341d0096a20032d009009220241014622011b28020020032802a403410020032802a0031b4b0d00200341e8096a200341c0096a20011b22014200370300200141106a4100360200200141086a42003703000b0240024020024101470d00200341c0096a290300210e200341b8096a290300210f0c010b200341c8096a290300210e20034190096a41306a290300210f2003419c096a28020041306c2201450d0020032802940941206a21020340200241706a22072903002106200741086a29030021050240200241686a2d00004101470d00427f2005200241086a2903007c200620022903007c22142006542207ad7c22062007200620055420062005511b22071b2105427f201420071b21060b200e20052006200f542005200e542005200e511b22071b210e200f200620071b210f200241306a2102200141506a22010d000b0b200341c00a6a20034190096a41f00010e9081a0240024020032d00c00a22024102470d002008200c10ff010c010b200341e0066a200341c00a6a10c2042008200c20032802e006220120032802e80610b201024020032802e406450d002001102e0b20020d00200341c80a6a2802002202450d00200241306c450d0020032802c40a102e0b024020032802c407450d002008102e0b200f200e844200520d0142e4cab5fbb6ccdcb0e300200341d8046a10ea020c020b200341f0086a41026a200341c0056a41026a2d000022023a0000200320032f00c00522013b01f008200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a000020004201370300200424000f0b42e4cab5fbb6ccdcb0e300200341d8046a200f200e41021085060b200041186a41003a00002000420037030820002003280080063600192000411c6a20034183066a28000036000020004200370300200424000f0b200141046a2802002101200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c10220034180066a41086a220220034199096a29000037030020034180066a41106a2207200341a1096a29000037030020034180066a41186a2208200341a9096a29000037030020032003290091093703800602400240024020032d0090094101470d00200341023a00e0060c010b200341d8046a41186a2008290300370300200341d8046a41106a2007290300370300200341d8046a41086a200229030037030020032003290380063703d804200341e0066a200341d8046a2001410010bf0820032d00e0064106460d0120032902e40621050b20032802e006210320002005370024200041206a2003360000200041186a41003a00002000420037030820004201370300200424000f0b20004200370308200020032800c007360019200041186a41003a00002000411c6a200341c3076a28000036000020004200370300200424000f0b200141246a2802002107200341e0066a41186a200141196a290000370300200341e0066a41106a200141116a290000370300200341e0066a41086a200141096a290000370300200320012900013703e006200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a200241086a290200370300200320022902003703c00a20034190096a200341c00a6a10c10220034180066a41086a220220034190096a41096a29000037030020034180066a41106a220120034190096a41116a29000037030020034180066a41186a220820034190096a41196a29000037030020032003290091093703800620032d0090094101460d03200341d8046a41186a2008290300370300200341d8046a41106a2001290300370300200341d8046a41086a200229030037030020032003290380063703d804200341c00a6a200341e0066a2007200341e0066a200341d8046a412010ec0841004710bf08200341c8066a41026a220120032d00c30a3a0000200320032f00c10a3b01c806024020032d00c00a22024106460d0020032902c40a2105200341c0056a41026a20012d00003a0000200320032f01c8063b01c0050c180b200041186a41003a000020004200370308200020032800c0073600192000411c6a200341c3076a28000036000020004200370300200424000f0b200141246a280200210720034190096a41186a2208200141196a29000037030020034190096a41106a2209200141116a29000037030020034190096a41086a220a200141096a2900003703002003200129000137039009200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a2201200241186a290200370300200341c00a6a41106a220b200241106a290200370300200341c00a6a41086a220c200241086a290200370300200320022902003703c00a024002400240200341c00a6a10a705450d00200341023a00d8040c010b20012008290300370300200b2009290300370300200c200a29030037030020032003290390093703c00a200341d8046a200341c00a6a200710970820032d00d8044106460d0120032902dc0421050b20032802d804210320002005370024200041206a2003360000200041186a41003a00002000420037030820004201370300200424000f0b20004200370308200020032800e006360019200041186a41003a00002000411c6a200341e3066a28000036000020004200370300200424000f0b200141286a280200210a200141246a2802002109200341e0066a41186a200141196a290000370300200341e0066a41106a200141116a290000370300200341e0066a41086a200141096a290000370300200320012900013703e00620022802282101024020022d000022070d002002411a6a2901002105200241196a2d00002107200241186a2d00002108200241166a2f0100210b200241156a2d0000210c200241146a2d0000210d200241126a2f01002113200241116a2d00002112200241106a2d000021102002410e6a2f010021112002410d6a2d000021222002410c6a2d000021232002410a6a2f0100212b200241096a2d00002129200241086a2d0000212a200241066a2f0100212c200241056a2d00002132200241046a2d00002131200241026a2f0100213320022d0001210220012001280200417f6a2236360200024020360d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22362036280200417f6a223636020020360d002001102e0b200320053701d80a200320073a00d70a200320083a00d60a2003200b3b01d40a2003200c3a00d30a2003200d3a00d20a200320133b01d00a200320123a00cf0a200320103a00ce0a200320113b01cc0a200320223a00cb0a200320233a00ca0a2003202b3b01c80a200320293a00c70a2003202a3a00c60a2003202c3b01c40a200320323a00c30a200320313a00c20a200320333b01c00a0240200241ff01710d00410321070c010b4110102c2202450d48200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d4820014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a22083602004100210720080d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22082008280200417f6a220836020020080d002002102e0b024020074103460d0020012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b20034198046a41026a20034188086a41026a2d000022023a0000200320032f00880822013b019804200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a000020004201370300200424000f0b200341c80a6a4200370300200342ffffffff1f3703c00a20034190096a200341e0066a10ba082003280290092202200328029809200341c00a6a10bf050240200328029409450d002002102e0b20034180066a109108200328028806220b450d14200b41c4006c41bc7f6a2101200b410274417c6a41027641016a210841002107200328028006210202400340200241046a200341e0066a412010ec08450d01200141bc7f6a2101200241c4006a21022008200741016a2207470d000c160b0b200228020021072002200241c4006a200110ea081a2003200b417f6a3602880620034190096a2007109408200341c00a6a2003280290092202200328029809220110ae05024020032802c00a220b450d002002200110ff010b200341d80a6a2903002114200341d00a6a290300211520032902c40a21160240200328029409450d002002102e0b200b450d142016422088a74105742207450d13200341d8046a41086a2108200b21020340200241086a2900002105200241106a29000021062002290000210e20034190096a41186a200241186a29000037030020034190096a41106a200637030020034190096a41086a20053703002003200e37039009200341b8036a20034190096a2015201410cb0220032903b80321052003200341b8036a41086a29030022063703c80a200320053703c00a0240024020052006844200520d002003200341c00a6a3602d804200341d8046a10cc020c010b200342f0f2bda1a7ee9cb9f9003703d804200341c00a6a200341d8046a10cd02200341a8036a200341c00a6a2005200610fd01200341d8046a41106a200341a8036a41086a290300220f20067d20032903a803220e200554ad7d2006200f7d2005200e54ad7d200e200556200f200656200f2006511b22011b3703002003200e20057d2005200e7d20011b3703e00420032001ad3703d8040240024020010d00200320083602c007200341c0076a10cc020c010b200320083602c007200341c0076a10ce020b200341c00a6a41186a2006370300200320053703d00a200341063a00c80a2003410e3a00c00a200341c00a6a10fe010b200241206a2102200741606a22070d000c140b0b200141046a2802002109200341c00a6a41286a200241286a280200360200200341c00a6a41206a200241206a290200370300200341c00a6a41186a200241186a290200370300200341c00a6a41106a200241106a290200370300200341c00a6a41086a200241086a290200370300200320022902003703c00a200341c00a6a10fd0641ff01714102460d0e20034190096a10910820032802980921084100210a200341003602980902402008450d004100210c200328029009210b4100210a410021010240034002400240200a450d00200b200141c4006c6a2102200b2001200c6a41c4006c6a2107034020022802002009460d022007200241c40010e9082107200241c4006a2102200741c4006a21072008200141016a22014b0d000c040b0b200b200141c4006c6a2102034020022802002009460d01200241c4006a21022008200141016a22014b0d000b4100210a0c030b200c417f6a210c200a41016a210a2008200141016a22014b0d000b0b0240200a0d004100210a0c010b200b2001200a6b41c4006c6a200b200141c4006c6a200820016b41c4006c10ea081a0b20032008200a6b220236029809200341c00a6a41086a2002360200200320032903900922053703c00a024002402005a722020d0020034198066a2202420037030020034190066a2201420037030020034180066a41086a220742003703002003420037038006200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c00737038006200341c0076a418c81ca00410b10810220022008290000370300200120032900c00737030020034180066a412010ff010c010b20034198066a2201420037030020034190066a2207420037030020034180066a41086a220842003703002003420037038006200341c0076a41de80ca0041091081022008200341c0076a41086a220a290000370300200320032900c00737038006200341c0076a418c81ca00410b1081022001200a290000370300200720032900c00737030020034180066a200341c00a6a10c40520032802c40a2201450d00200141c4006c450d002002102e0b20034190096a2009109408200341c00a6a2003280290092202200328029809220110ae05024020032802c00a2209450d002002200110ff010b2003280294092101024020090d002001450d112002102e0c110b200341d80a6a2903002114200341d00a6a2903002115200341c80a6a280200210720032802c40a210a02402001450d002002102e0b20074105742207450d0f200341d8046a41086a2108200921020340200241086a2900002105200241106a29000021062002290000210e20034190096a41186a200241186a29000037030020034190096a41106a200637030020034190096a41086a20053703002003200e37039009200341e8036a20034190096a2015201410cb0220032903e80321052003200341e8036a41086a29030022063703c80a200320053703c00a0240024020052006844200520d002003200341c00a6a3602d804200341d8046a10cc020c010b200342f0f2bda1a7ee9cb9f9003703d804200341c00a6a200341d8046a10cd02200341d8036a200341c00a6a2005200610fd01200341d8046a41106a200341d8036a41086a290300220f20067d20032903d803220e200554ad7d2006200f7d2005200e54ad7d200e200556200f200656200f2006511b22011b3703002003200e20057d2005200e7d20011b3703e00420032001ad3703d8040240024020010d00200320083602e006200341e0066a10cc020c010b200320083602e006200341e0066a10ce020b200341c00a6a41186a2006370300200320053703d00a200341063a00c80a2003410e3a00c00a200341c00a6a10fe010b200241206a2102200741606a22070d000c100b0b410221020c130b20034190096a41026a20032d00c20a22023a0000200341d8046a41026a20023a0000200320032f01c00a22023b019009200320023b01d8042006420888a721022006421888a7210120032903d00a21052006a7212a4100212b0c170b20034190096a41026a20032d00c20a22023a0000200341d8046a41026a20023a0000200320032f01c00a22023b019009200320023b01d8042006420888a721022006421888a7210120032903d00a21052006a7212a4100212b0c170b410221020c170b410221020c1a0b427f201b20057c202820067c220f2028542202ad7c220e2002200e201b54200e201b511b22021b211b427f200f20021b2128427f201d201a7c2020201c7c220f2020542202ad7c220e2002200e201d54200e201d511b22021b211d427f200f20021b2120410121020c160b200341023a0080060c190b200341e0066a41026a200341d8046a41026a2d000022023a0000200320032f00d80422013b01e006200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a000020004201370300200424000f0b200341023a0088080c380b200220134180c1cb00103c000b2002201341f0c0cb00103c000b200341c0076a41021093080c370b200341023a00c0070c370b200341023a00c0050c3a0b200341c00a6a41026a200341c0056a41026a2d000022023a0000200320032f00c00522013b01c00a200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a0000420121050c020b200a41ffffff3f71450d002009102e0b4200210520004200370308200020032800c00a360019200041186a41003a00002000411c6a200341c30a6a2800003600000b20002005370300200424000f0b201642ffffff3f83500d00200b102e0b200341c00a6a41086a20034180066a41086a280200360200200320032903800622053703c00a024002402005a722020d00200341d0046a22024200370300200341c8046a22014200370300200341b8046a41086a22074200370300200342003703b804200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c0073703b804200341c0076a418c81ca00410b10810220022008290000370300200120032900c007370300200341b8046a412010ff010c010b200341d0046a22014200370300200341c8046a22074200370300200341b8046a41086a22084200370300200342003703b804200341c0076a41de80ca0041091081022008200341c0076a41086a220b290000370300200320032900c0073703b804200341c0076a418c81ca00410b1081022001200b290000370300200720032900c007370300200341b8046a200341c00a6a10c40520032802c40a2201450d00200141c4006c450d002002102e0b20034180066a41186a2202420037030020034180066a41106a2201420037030020034180066a41086a220742003703002003420037038006200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c00737038006200341c0076a418081ca00410c10810220022008290000370300200120032900c007370300200341c00a6a20034180066a10aa0520032d00e00a2102200341b8046a41186a2201200341c00a6a41186a290300370300200341b8046a41106a2207200341c00a6a41106a290300370300200341b8046a41086a2208200341c00a6a41086a290300370300200320032903c00a3703b804024020024103460d0020034190096a41186a200129030037030020034190096a41106a200729030037030020034190096a41086a2008290300370300200320032903b80437039009200320023a00b00920034190096a200341e0066a412010ec080d00200341d0046a22024200370300200341c8046a22014200370300200341b8046a41086a22074200370300200342003703b804200341c0076a41de80ca0041091081022007200341c0076a41086a2208290000370300200320032900c0073703b804200341c0076a418081ca00410c10810220022008290000370300200120032900c007370300200341b8046a412010ff010b02402009450d0020034190096a200a108905200341c00a6a2003280290092202200328029809108a0520034180066a41086a2201200341800b6a29030037030020034180066a41106a2207200341880b6a29030037030020034180066a41186a2208200341900b6a29030037030020034180066a41206a2209200341980b6a29030037030020034180066a41286a220b200341a00b6a290300370300200320032800c10a3602c806200320032800c40a3600cb062003200341f80a6a290300370380060240024020032d00c00a220c4102460d00200341f00a6a2903002116200341c00a6a41286a2903002117200341c00a6a41206a2903002118200341c00a6a41186a2903002119200341c00a6a41106a290300211f200341c00a6a41086a290300211e200341c0056a41286a200b290300370300200341c0056a41206a2009290300370300200341c0056a41186a2008290300370300200341c0056a41106a2007290300370300200341c0056a41086a200129030037030020032003290380063703c0050240200328029409450d002002102e0b200341c0076a41086a200341c0056a41086a2903002205370300200341c0076a41106a200341c0056a41106a2903002206370300200341c0076a41186a200341c0056a41186a290300220e370300200341c0076a41206a200341c0056a41206a290300220f370300200341c0076a41286a200341c0056a41286a2903002214370300200320032903c00522153703c007200341c00a6a41286a22022014370300200341c00a6a41206a2201200f370300200341c00a6a41186a2207200e370300200341c00a6a41106a22082006370300200341c00a6a41086a22092005370300200320153703c00a200c450d01200341d8046a41111093080c020b0240200328029409450d002002102e0b200341d8046a41111093080c010b20034184056a2016370200200341f4046a2018370200200341d8046a410c6a201f37020020034194056a20092903003702002003419c056a2008290300370200200341a4056a2007290300370200200341ac056a2001290300370200200341b4056a2002290300370200200320173702fc04200320193702ec042003201e3702dc04200320032903c00a37028c0520034190096a200341dc046a41e00010e9081a200341c8096a200341e0066a412010ec080d00200341c00a6a410c6a200a360200200341c80a6a41063a0000200341093a00c00a200341c00a6a10fe01200341c00a6a200a10890520032802c00a220220032802c80a10ff0120032802c40a450d002002102e0b200341c00a6a41086a41113a0000200341093a00c00a200341c00a6a41096a20032903e006370000200341c00a6a41116a200341e0066a41086a290300370000200341d90a6a200341f0066a290300370000200341e10a6a200341e0066a41186a290300370000200341c00a6a10fe01200041186a41003a000020004200370308200020032800f0083600192000411c6a200341f3086a28000036000020004200370300200424000f0b200341f0086a41026a200341c0056a41026a2d000022013a0000200320032f01c00522073b01f008200041206a20023a0000200041186a41003a000020004200370308200020073b0021200041236a20013a00002000200537002420004201370300200424000f0b20032902c40a210520032802c00a21020240200328029409450d002001102e0b2003200537029c0420032002360298040b20032d0098044106460d01200329029c0421050b200328029804210320002005370024200041206a2003360000200041186a41003a00002000420037030820004201370300200424000f0b20004200370308200020032800d008360019200041186a41003a00002000411c6a200341d3086a28000036000020004200370300200424000f0b200320032f01d8043b018006200320073a009f06200320083b009d06200320093a009c062003200a3a009b062003200b3b0099062003200c3a0098062003200537039006200320013a008f06200320023b008d062003202a3a008c062003200d3a008b06200320133b008906200320123a008806200320103a008706200320113b008506200320223a008406200320233a008306410221022003200341d8046a41026a2d00003a008206024002400240202b0d00200341b8046a41186a20034180066a41186a2903002205370300200341b8046a41106a20034180066a41106a2903002206370300200341b8046a41086a20034180066a41086a290300220e3703002003200329038006220f3703b804200341c00a6a41186a2005370300200341c00a6a41106a2006370300200341c00a6a41086a200e3703002003200f3703c00a200320323602980920032029360294092003202c36029009200341d8046a200341c00a6a20034190096a10bd08200341c8066a41026a20032d00db043a0000200320032f00d9043b01c80620032d00d80422024106460d0220032902dc042105200341c0056a41026a200341c8066a41026a2d00003a0000200320032f01c8063b01c0050c010b02402029450d00202c102e0b0b200341f0086a41026a2201200341c0056a41026a2d00003a0000200320032800e0063602c007200320032f01c0053b01f0082003200341e3066a2800003600c307200041186a41003a000020004200370308200020032802c0073600192000411c6a20032800c307360000200041206a20023a0000200041246a2005370200200020032f01f0083b0021200041236a20012d00003a000020004201370300200424000f0b200320032800e0063602c0072003200341e3066a2800003600c307200041186a41013a000020004200370308200020032802c0073600192000411c6a20032800c30736000020004200370300200424000f0b200320032f01d8043b018006200320073a009f06200320083b009d06200320093a009c062003200a3a009b062003200b3b0099062003200c3a0098062003200537039006200320013a008f06200320023b008d062003202a3a008c062003200d3a008b06200320133b008906200320123a008806200320103a008706200320113b008506200320223a008406200320233a008306410221022003200341d8046a41026a2d00003a008206024002400240202b0d00200341b8046a41186a20034180066a41186a2903002205370300200341b8046a41106a20034180066a41106a2903002206370300200341b8046a41086a20034180066a41086a290300220e3703002003200329038006220f3703b804200341c00a6a41186a2005370300200341c00a6a41106a2006370300200341c00a6a41086a200e3703002003200f3703c00a200320323602980920032029360294092003202c36029009200341d8046a200341c00a6a20034190096a10bc08200341c8066a41026a20032d00db043a0000200320032f00d9043b01c80620032d00d80422024106460d0220032902dc042105200341c0076a41026a200341c8066a41026a2d00003a0000200320032f01c8063b01c0070c010b02402029450d00202c102e0b0b200341c0056a41026a200341c0076a41026a2d000022013a0000200320032f01c00722073b01c005200041206a20023a0000200041186a41003a000020004200370308200020073b0021200041236a20013a00002000200537002420004201370300200424000f0b200041186a41003a000020004200370308200020032800e0063600192000411c6a200341e3066a28000036000020004200370300200424000f0b200320032800d0083602c0082003200341d3086a2800003600c308200041186a41003a000020004200370308200020032802c0083600192000411c6a20032800c308360000200041246a2005370200200041206a200236020020004201370300200424000f0b200341900b6a201b370300200341880b6a2028370300200341800b6a201d370300200341f80a6a2020370300200341e80a6a2019370300200341e00a6a201e370300200341d80a6a2018370300200341d00a6a201f370300200341f00a6a2021370300200341cc0a6a2036360200200341c00a6a41086a2035360200200341980b6a20032903d008370300200341ac0b6a203d360200200341a80b6a203e360200200341a00b6a200341d0086a41086a290300370300200320032f01e4083b00c10a200320073602c40a2003200341e4086a41026a2d00003a00c30a200320013a00c00a0240024020014102470d00203b203c10ff010c010b200341d8046a200341c00a6a10c204203b203c20032802d804220820032802e00410b201024020032802dc04450d002008102e0b20010d002035450d00203541306c450d002007102e0b024020032802c408450d00203b102e0b20034188086a20062005108307200341d80a6a20032903d805370300200320032903d0053703d00a200320032903c80522063703c80a200320032903c00522053703c00a200341e00a6a20034190096a41c80010e9081a200341ac0b6a203a360200200341a80b6a20032802b80836020002402005a7220141ff01714102470d002037203910ff01410021010c010b200341d8046a200341c00a6a10c2042037203920032802d804220720032802e00410b201024020032802dc04450d002007102e0b0240200141ff01710d002006a72201450d00200141306c450d002005422088a7102e0b410021010b024020032802ac08450d002037102e0b20010d01200341c00a6a41086a41083a0000200341e90a6a20032903f008370000200341093a00c00a200341c00a6a41096a200329038808370000200341d10a6a20034188086a41086a290300370000200341d90a6a20034188086a41106a290300370000200341e10a6a20034188086a41186a290300370000200341f10a6a200341f0086a41086a290300370000200341f90a6a200341f0086a41106a290300370000200341810b6a200341f0086a41186a290300370000200341c00a6a10fe01200320032800910436028804200320034194046a28000036008b04200041186a41003a0000200041106a2002ad220542d8d4ea037e200542c0f0f50b7e7c20054280c2d72f7e7c42b8b8c589027c3703002000420137030820002003280288043600192000411c6a200328008b0436000020004200370300200424000f0b20032902c40a210520032802c00a21020b200320032800910436028804200320034194046a28000036008b04200041186a41003a00002000420037030820002003280288043600192000411c6a200328008b04360000200041246a2005370200200041206a200236020020004201370300200424000f0b200328028006210320002005370024200041206a2003360000200041186a41003a00002000420037030820004201370300200424000f0b20004200370308200020032800c005360019200041186a41003a00002000411c6a200341c3056a28000036000020004200370300200424000f0b20004200370308200020032800f008360019200041186a41003a00002000411c6a200341f3086a28000036000020004200370300200424000f0b0c030b20032005421888a73a00c30a20032005421088a73a00c20a20032005a73b01c00a200320063702c40a20032903c00a21054110102c2202450d21200241f8f7c60036020c2002410136020820024281808080103702004110102c2207450d212006422088210620074190f8c60036020c20074101360208200742818080801037020020022002280200417f6a2201360200024020010d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b2006a72108410221020b20032005370294092003200b3a0093092003200c3a0092092003200d3b0190090b41002101200241ff0171410346220a0d00200341e60a6a20353b0100200341e20a6a2008360100200341da0a6a2005370100200341d90a6a200b3a0000200341d80a6a200c3a0000200341d60a6a200d3b0100200341d50a6a20293a0000200341d40a6a202a3a0000200341d20a6a202c3b0100200341d10a6a20323a0000200341d00a6a20313a0000200341ce0a6a20123b0100200341cd0a6a20103a0000200341cc0a6a20113a0000200341ca0a6a20223b0100200341c90a6a20233a0000200341c80a6a202b3a0000200320073602e80a200320333b01c60a200320363a00c50a200320133a00c40a200320373b01c20a200320383a00c10a200320023a00c00a41012101200341c00a6a10fd0641ff01714102470d00200341023a00c0050c010b200341b8046a41186a22024200370300200341b8046a41106a22084200370300200341b8046a41086a220b4200370300200342003703b804200341c0076a41de80ca004109108102200b200341c0076a41086a220c290000370300200320032900c0073703b804200341c0076a418081ca00410c1081022002200c290000370300200820032900c007370300200341c00a6a200341b8046a10aa0520032d00e00a210220034180066a41186a2208200341c00a6a41186a29030037030020034180066a41106a200341c00a6a41106a29030037030020034180066a41086a200341c00a6a41086a290300370300200320032903c00a370380060240024020024103460d00200341f7066a220b2008290000370000200341e0066a41106a220820034180066a41116a290000370300200341e0066a41086a20034180066a41096a2900002205370300200320032900810622063703e00620032d008006210c20034190096a41096a200537000020034190096a41116a200829030037000020034190096a41186a200b2900003700002003200c3a0090092003200637009109024020020d00200341c0056a41071093080c020b0240200341d8046a20034190096a412010ec08450d00200341c0056a41081093080c020b20034180066a41186a2208420037030020034180066a41106a220b420037030020034180066a41086a220c42003703002003420037038006200341c0076a41de80ca004109108102200c200341c0076a41086a220d290000370300200320032900c00737038006200341c0076a418081ca00410c1081022008200d290000370300200b20032900c00737030020034180066a412010ff01200341c00a6a41186a22084200370300200341c00a6a41106a220b4200370300200341c00a6a41086a220c4200370300200342003703c00a20034188086a41d9fcc6004106108102200c20034188086a41086a220d29000037030020032003290088083703c00a20034188086a4180f4cb0041061081022008200d290000370300200b200329008808370300200341e0016a200341c00a6a4120108e0220032802e401210d20032802e00121132008200341d8046a41186a290300370300200b200341d8046a41106a290300370300200c200341d8046a41086a290300370300200320032903d8043703c00a200d410020131b20096a200341c00a6a200220341095082001200a720d0320072007280200417f6a220236020020020d032007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d032007102e0c030b200341c0056a41021093080b02402001200a724101460d0020072007280200417f6a220236020020020d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22022002280200417f6a220236020020020d002007102e0b20032d00c0054106460d020b20032802c0052102200020032902c405370024200041206a2002360000200041186a41003a00002000420037030820004201370300200424000f0b200341063a00c0050b20004200370308200020032800f008360019200041186a41003a00002000411c6a200341f3086a28000036000020004200370300200424000f0b4110102c2202450d1a200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1a20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200341f0086a41026a200341c0056a41026a2d000022023a0000200320032f00c00522013b01f008200041206a41023a0000200041186a41003a000020004200370308200020013b0021200041236a20023a000020004201370300200424000f0b20004200370308200020032800c005360019200041186a41003a00002000411c6a200341c3056a28000036000020004200370300200424000f0b20032d0088084106470d030b20004200370308200020032800b804360019200041186a41003a00002000411c6a200341bb046a28000036000020004200370300200424000f0b4110102c2202450d15200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1520014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220736020020070d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22072007280200417f6a220736020020070d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200341023a0088080b20032802880821022000200329028c08370024200041206a2002360000200041186a41003a00002000420037030820004201370300200424000f0b2030211e201521180b202f211c2016211a0b200341c00a6a41046a222b20034198046a41046a2d00003a000020032003280298043602c00a202a20113a0000200120123a0000200a20103a00002007200241306c6a2202410f6a202b2d00003a00002002410b6a20032802c00a36000020292005370308202920063703002009200e3703082009200f3703000c010b200341f0086a41046a20034198046a41046a2d00003a000020032003280298043602f00820132001490d0202402013200d470d00200d41016a2202200d490d11200d41017422092002200920024b1b22024104200241044b1bad42307e2215422088a74541037421022015a7210902400240200d0d00200341003602c00a0c010b200341c00a6a41086a4108360200200320073602c00a2003200d41306c3602c40a0b200341d8046a20092002200341c00a6a107d200341e0046a280200210220032802d8044101460d0520032802dc042107200241306e210d0b2007200141306c6a220241306a2002201320016b41306c10ea081a2002410a6a20103a0000200241096a20113a0000200220123a000820022008360200200241286a200e370300200241206a200f370300200241186a2005370300200241106a20063703002002410b6a20032802f0083600002002410f6a200341f4086a2d00003a0000201341016a21130b0240024002400240201241ff01714101470d00200341c8006a20062005420a420010e708200341386a200f200e420a420010e708201e20067c2216201e542202201820057c2002ad7c221520185420152018511b0d022016200f7c220f20165422022015200e7c2002ad7c220e201554200e2015511b0d02201c20032903487c2216201c542202201a200341c8006a41086a2903007c2002ad7c2215201a542015201a511b0d01201d20032903387c221e201d542202201b200341386a41086a2903007c2002ad7c2218201b542018201b511b450d09200f211e200e21182016211c2015211a0c020b02400240201041ff0171450d0041062102024002400240024002400240024020104107710e0700010203040506000b410021020c050b410121020c040b410221020c030b410321020c020b410421020c010b410521020b200341e8006a200542002002ad220e420010e808200341f8006a20064200200e420010e808427f20034180016a290300220e20032903687c220f2003290370420052200f200e547222021b2115427f200329037820021b21160c010b200341d8006a20062005420a420010e708200341e0006a2903002115200329035821160b201e20067c220f201e542202201820057c2002ad7c220e201854200e2018511b0d010240201141ff01710d00201d20167c221e201d542202201b20157c2002ad7c2218201b542018201b511b0d01201241ff0171450d060c080b201c20167c2216201c542202201a20157c2002ad7c2215201a542015201a511b450d020b200f211e200e21180b20034180066a41191093080c010b0240201241ff01710d00201141ff01714102460d00427f201520277c201620197c22182016542202ad7c22162002201620155420162015511b22021b2115427f201820021b2116427f200e20287c200f201f7c2218200f542202ad7c220f2002200f200e54200f200e511b22021b210e427f201820021b210f0b201d211e201b21180c050b024020032d00800622024106470d00201e210f2018210e201d211e201b2118201c2116201a21150c060b200341ca066a20032d0083063a0000200320032f0081063b01c80620032902840621190240200c0d00200d450d00200d41306c450d002007102e0b201e210f2018210e201d211e201b2118201c2116201a21150c060b200120131045000b427f201820277c201e20197c2216201e542202ad7c22152002201520185420152018511b22021b2118427f201620021b211e427f200e20287c200f201f7c2215200f542202ad7c220f2002200f200e54200f200e511b22021b210e427f201520021b210f0c010b2002450d0b0c0a0b201c2116201a21150b200341063a0080060b200341900b6a2020370300200341880b6a2021370300200341800b6a2026370300200341f80a6a2025370300200341e80a6a2028370300200341e00a6a201f370300200341d80a6a2027370300200341d00a6a2019370300200341f00a6a2024370300200341cc0a6a2013360200200341c00a6a41086a200d360200200341980b6a200329039009370300200341ac0b6a2022360200200341a80b6a2023360200200341a00b6a20034190096a41086a290300370300200320032f01c0083b00c10a200320073602c40a2003200341c0086a41026a2d00003a00c30a2003200c3a00c00a20032802c805210220032802c005210102400240200c4102470d002001200210ff010c010b200341d8046a200341c00a6a10c2042001200220032802d804220920032802e00410b201024020032802dc04450d002009102e0b200c0d00200d450d00200d41306c450d002007102e0b200341ca066a20032d0083063a0000200320032f0081063b01c8062003290284062119410621020b024020032802c405450d0020032802c005102e0b200341a8086a41026a2201200341c8066a41026a2d00003a0000200320032f01c8063b01a808024020024106470d00200341c0076a427f2017200b1b2006201241ff017141014622021b427f2014200b1b200520021b108307200341f00a6a200e370300200341c00a6a41286a200f370300200341c00a6a41206a2018370300200341c00a6a41186a201e370300200341c00a6a41106a2015370300200341f80a6a20032903e006370300200341800b6a200341e8066a290300370300200341880b6a200341e0066a41106a290300370300200341900b6a200341e0066a41186a290300370300200341980b6a200341e0066a41206a290300370300200341a00b6a200341e0066a41286a290300370300200320163703c80a200341003a00c00a200341d8046a200810890520032802e004210120032802d804210220034100360298092003420137039009200341c00a6a20034190096a10bc0520022001200328029009220720032802980910b2010240200328029409450d002007102e0b024020032802dc04450d002002102e0b200341063a0088080c030b200320023a008808200320032f01a8083b0089082003201937028c08200320012d00003a008b080b20032d0088084106460d01200329028c0821050b200328028808210320002005370024200041206a2003360000200041186a41003a00002000420037030820004201370300200424000f0b20004200370308200020032800b804360019200041186a41003a00002000411c6a200341bb046a28000036000020004200370300200424000f0b20032d00c0074106460d0120032902c40721050b20032802c007210320002005370024200041206a2003360000200041186a41003a00002000420037030820004201370300200424000f0b20004200370308200020032800c005360019200041186a41003a00002000411c6a200341c3056a28000036000020004200370300200424000f0b1036000b1038000b20032802c005210320002005370024200041206a2003360000200041186a41003a00002000420037030820004201370300200424000f0b20004200370308200020032800f008360019200041186a41003a00002000411c6a200341f3086a28000036000020004200370300200424000bec7a08077f027e017f017e027f017e067f037e230041a00a6b2203240002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d00000e0700010203040506000b200341c4076a4101360200200342013702b4072003419cc3cb003602b007200341043602fc0420034194c3cb003602f8042003200341f8046a3602c007200341b0076a41b8afc9001044000b20012d000121042001412c6a2802002105200141286a2802002106200141246a2802002107200341c8026a41186a2001411a6a290000370300200341c8026a41106a200141126a290000370300200341c8026a41086a2001410a6a2900003703002003200141026a2900003703c802200341b0076a41286a200241286a280200360200200341b0076a41206a200241206a290200370300200341b0076a41186a2208200241186a290200370300200341b0076a41106a2201200241106a290200370300200341b0076a41086a2209200241086a290200370300200320022902003703b007024002400240200341b0076a10a7050d00200842003703002001420037030020094200370300200342003703b007200341f8046a41c8afc90041131081022009200341f8046a41086a2202290000370300200320032900f8043703b007200341f8046a41c7c3cb00410710810220082002290000370300200120032900f804370300200341f8046a200341b0076a10880320032802f804210220032902fc04210a2007200510fc02200341b0076a200720052002410120021b2208200a420020021b220a422088220ba710fe022001280200210120032802b407210220032802b007210920032802bc07220c200341c4076a2802002007200510f5020240200141ffffff3f71450d00200c102e0b0240200241ffffff3f71450d002009102e0b200341f8006a41186a2201200341c8026a41186a290300370300200341f8006a41106a2202200341c8026a41106a290300370300200341f8006a41086a2209200341c8026a41086a290300370300200320032903c802370378200441ff01710d01200341f8046a41186a22014200370300200341f8046a41106a22024200370300200341f8046a41086a22094200370300200342003703f80420034198016a41c8afc9004113108102200920034198016a41086a220429000037030020032003290098013703f80420034198016a41dbc3cb004105108102200120042900003703002002200329009801370300200341f8046a412010ff010c020b0240200641ffffff3f71450d002007102e0b200320032800b8013602f801200320032900a802370388022003200341bb016a2800003600fb012003200341af026a28000036008f02200041186a41003a000020004200370308200020032802f8013600192000411c6a20032800fb01360000200041206a41023a00002000200329038802370021200041286a200328008f02360000200042013703000c200b200341b0076a41186a2001290300370300200341b0076a41106a2002290300370300200341b0076a41086a2009290300370300200320032903783703b007200341f0096a41186a22014200370300200341f0096a41106a22024200370300200341f0096a41086a22094200370300200342003703f009200341f8046a41c8afc90041131081022009200341f8046a41086a2204290000370300200320032900f8043703f009200341f8046a41dbc3cb00410510810220012004290000370300200220032900f8043703004120102c2201450d1a200342203702fc04200320013602f804200341f8046a200341b0076a41201074200341f0096a412020032802f804220120032802800510b20120032802fc04450d002001102e0b2005ad42b882077e200b42c0b5e5097e7c210b0240200641ffffff3f71450d002007102e0b200b42a0c0b291397c210b0240200a42ffffff3f83500d002008102e0b200320032800b8013602f8012003200341bb016a2800003600fb01200041186a41003a0000200041106a200b37030020004201370308200020032802f8013600192000411c6a20032800fb01360000200042003703000c1e0b200141086a2802002104200141046a2802002105200341b0076a41286a200241286a280200360200200341b0076a41206a200241206a290200370300200341b0076a41186a2201200241186a290200370300200341b0076a41106a2207200241106a290200370300200341b0076a41086a2206200241086a290200370300200320022902003703b007200341f8046a200341b0076a10c102200341f8006a41086a220220034181056a290000370300200341f8006a41106a220820034189056a290000370300200341f8006a41186a220920034191056a290000370300200320032900f90437037820032d00f8044101460d0820034198016a41186a200929030037030020034198016a41106a200829030037030020034198016a41086a20022903003703002003200329037837039801200142003703002007420037030020064200370300200342003703b007200341f8046a41c8afc90041131081022006200341f8046a41086a2202290000370300200320032900f8043703b007200341f8046a41c7c3cb00410710810220012002290000370300200720032900f804370300200341f8046a200341b0076a10880320032902fc04420020032802f80422021b220a422088220ba741057421012002410120021b22062102024002400240024003402001450d01200141606a2101200220034198016a412010ec082107200241206a210220070d000b200341003602b807200342013703b0072005200341b0076a10900220032802b8072107024020032802b407450d0020032802b007102e0b0240200720044d0d00200341b0076a410a10f307200320032900b1073703602003200341b8076a2800003600670c020b2003410036028005200342013703f8042005200341f8046a109002200341b0076a20032802f80420032802800510b00120034188026a41186a200341b0076a41186a29030037030020034188026a41106a200341b0076a41106a29030037030020034188026a41086a200341b0076a41086a290300370300200320032903b00737038802024020032802fc04450d0020032802f804102e0b200341f8046a200541b00210e9081a200341a8026a41086a20034198016a41086a290300370300200341a8026a41106a20034198016a41106a290300370300200341a8026a41186a20034198016a41186a29030037030020032003290398013703a8024110102c2202450d1c200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1c20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a2208360200024020080d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22082008280200417f6a220836020020080d002002102e0b024002402001280208200341f8046a200128020c28020c1101000d0041022102200341e8026a41023a0000200341e0026a41003a000020012001280200417f6a22083602004200210d200342003703d002200342013703c802024020080d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22082008280200417f6a220836020020080d002001102e0b200341f8046a10dc02410121010c010b200341b0076a200341f8046a41b00210e9081a200341fd096a200341b0026a290300370000200341850a6a200341b8026a2903003700002003418d0a6a200341c0026a290300370000200341950a6a20032f00783b0000200341970a6a200341fa006a2d00003a0000200341013a00f409200341013a00f009200320032903a8023700f509200320013602980a200341c8026a200341b0076a200341f0096a10dd0220032903c8024201512101200341e8026a2d0000210220032903d002210d0b200341f8046a41186a20034188026a41186a290300370300200341f8046a41106a20034188026a41106a290300370300200341f8046a41086a20034188026a41086a29030037030020032003290388023703f8042003200341f0026a2800003600b707200320032900e9023703b0070240024020010d00410621010c010b200320032800b7073600ff01200320032903b0073703f80141062101200d4202510d00200320032800ff013600ef01200320032903f8013703e801200221010b200341f0096a41086a2202200341f8046a41086a290300370300200341f0096a41106a2208200341f8046a41106a290300370300200341f0096a41186a2209200341f8046a41186a290300370300200320032903f8043703f009200320032903e8013703d801200320032800ef013600df01200341053a00b4072003410a3a00b007200341bd076a2002290300370000200341c5076a2008290300370000200341cd076a2009290300370000200341d8076a20013a0000200320032903f0093700b507200341d5076a20032f00e5013b0000200341d7076a200341e7016a2d00003a0000200341d9076a20032903d801370000200341e0076a20032800df01360000200341fc076a200341b8016a41186a280200360200200341f4076a200341b8016a41106a290200370200200341ec076a200341b8016a41086a290200370200200341e4076a20032902b801370200200341b0076a10fe01200da70d024200210b0c030b200341b0076a410110f307200320032900b1073703602003200341b8076a2800003600670b20032d00b0072101200a42ffffff3f83500d1e2006102e0c1e0b427f2007ad42a01f7e200b4280eb067e7c42d8bbe3167c220b200341c8026a41106a2903007c220d200d200b541b210d4201210b0b0240200a42ffffff3f83500d002006102e0b2005102e2003200341f4006a28000036005b20032003280071360258200041186a41003a0000200041106a200d3703002000200b370308200020032802583600192000411c6a200328005b360000200042003703000c1d0b2001410c6a2802002104200141086a2802002105200141046a280200210c200341b0076a41286a200241286a280200360200200341b0076a41206a200241206a290200370300200341b0076a41186a2201200241186a290200370300200341b0076a41106a2206200241106a290200370300200341b0076a41086a2207200241086a290200370300200320022902003703b007200341f8046a200341b0076a10c102200341c8026a41086a220220034181056a290000370300200341c8026a41106a220820034189056a290000370300200341c8026a41186a220920034191056a290000370300200320032900f9043703c80202400240024020032d00f8044101460d0020034188026a41186a200929030037030020034188026a41106a200829030037030020034188026a41086a2002290300370300200320032903c80237038802200142003703002006420037030020074200370300200342003703b007200341f8046a41c8afc90041131081022007200341f8046a41086a2202290000370300200320032900f8043703b007200341f8046a41c7c3cb00410710810220012002290000370300200620032900f804370300200341f8046a200341b0076a10880320032902fc04420020032802f80422021b220b422088220aa741057421012002410120021b2208210203402001450d02200141606a2101200220034188026a412010ec082107200241206a210220070d000b200341003602b807200342013703b0072005200341b0076a10900220032802b8072101024020032802b407450d0020032802b007102e0b200120044d0d02200341b0076a410a10f3070c1b0b410221010c1c0b200341b0076a410110f3070c190b2003410036028005200342013703f8042005200341f8046a109002200341b0076a20032802f80420032802800510b001200341a8026a41186a2202200341b0076a41186a2207290300370300200341a8026a41106a2209200341b0076a41106a2204290300370300200341a8026a41086a220e200341b0076a41086a220f290300370300200320032903b0073703a802024020032802fc04450d0020032802f804102e0b2007200229030037030020042009290300370300200f200e290300370300200320032903a8023703b007200341f8046a200341b0076a10f40720032802f8042207200328028005108f022102024020032802fc04450d002007102e0b02402002450d00200341b0076a410210f3070c190b024002400240200c41014b0d00200341c8076a4200370300200341c0076a4200370300200341b0076a41086a22024200370300200342003703b007200341f8046a41c8afc90041131081022002200341f8046a41086a2207290000370300200320032900f8043703b007200341f8046a41c7c3cb004107108102200641086a2007290000370000200620032900f804370000200341c8026a200341b0076a1088030240024020032802c80222020d00410021090c010b20032902cc02220d422088a72109200d42ffffff3f83500d002002102e0b200341f8046a200541b00210e9081a4110102c2207450d1a200741f8f7c60036020c2007410136020820074281808080103702004110102c2202450d1a20024190f8c60036020c20024101360208200242818080801037020020072007280200417f6a2206360200024020060d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22062006280200417f6a220636020020060d002007102e0b024002402002280208200341f8046a200228020c28020c1101000d0041022107200341e8026a41023a0000200341e0026a41003a000020022002280200417f6a22063602004200210d200342003703d002200342013703c802024020060d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22062006280200417f6a220636020020060d002002102e0b200341f8046a10dc02410121020c010b200341b0076a200341f8046a41b00210e9081a200341fc096a2009360200200341f0096a41086a4101360200200341f0096a41106a200329019801370300200341880a6a20034198016a41086a290100370300200341f0096a41206a20034198016a41106a290100370300200341003a00f409200341013a00f009200320032f00783b00f5092003200341fa006a2d00003a00f709200320023602980a200341c8026a200341b0076a200341f0096a10dd0220032903c8024201512102200341c8026a41206a2d0000210720032903d002210d0b200341f0096a41186a200341a8026a41186a290300370300200341f0096a41106a200341a8026a41106a290300370300200341f0096a41086a200341a8026a41086a290300370300200320032903a8023703f0092003200341f0026a2800003600b707200320032900e9023703b0070240024020020d00410621020c010b200320032800b7073600ff01200320032903b0073703f80141062102200d4202510d00200320032800ff013600ef01200320032903f8013703e801200721020b200341f8006a41086a2207200341f0096a41086a290300370300200341f8006a41106a2206200341f0096a41106a290300370300200341f8006a41186a2209200341f0096a41186a290300370300200320032903f009370378200320032903e8013703d801200320032800ef013600df01200341043a00b4072003410a3a00b007200341bd076a2007290300370000200341c5076a2006290300370000200341cd076a2009290300370000200341d8076a20023a0000200320032903783700b507200341d5076a20032f00e5013b0000200341d7076a200341e7016a2d00003a0000200341d9076a20032903d801370000200341e0076a20032800df01360000200341fc076a200341b8016a41186a280200360200200341f4076a200341b8016a41106a290200370200200341ec076a200341b8016a41086a290200370200200341e4076a20032902b801370200200341b0076a10fe010240200da70d004200210d0c020b427f2001ad42a01f7e200a42e8dd0d7e7c42d8ce86257c220a200341c8026a41106a2903007c220d200d200a541b210a4201210d0c010b200341b0076a41186a4200370300200341b0076a41106a4200370300200341b0076a41086a22024200370300200342003703b007200341f8046a41c8afc90041131081022002200341f8046a41086a2209290000370300200320032900f8043703b007200341f8046a41dbafc9004109108102200641086a2009290000370000200620032900f804370000200341f8046a200341b0076a4120108d0320032802f804210220032902fc04210d200341f8046a41186a220e200341a8026a41186a290300370300200341f8046a41106a220f200341a8026a41106a2903003703002009200341a8026a41086a290300370300200320032903a8023703f8042002410120021b21070240024002400240200d420020021b220d4220882210a72202200da7470d00200241016a22042002490d1820024101742211200420042011491b22044104200441044b1b220441ffffff3f712004462111200441057421040240024020020d00200341003602b0070c010b200341b8076a4101360200200320073602b007200320104205863e02b4070b200341c8026a20042011200341b0076a107d200341d0026a280200210420032802c8024101460d0120032802cc022107200d422088a721022004410576ad210d0b200720024105746a220420032903f804370000200441186a200e290300370000200441106a200f290300370000200441086a2009290300370000200241016a220241e4004b0d04200320073602b0072003200d42ffffffff0f832002ad2210422086843702b40720070d0120034190056a2202420037030020034188056a22074200370300200341f8046a41086a22094200370300200342003703f80420034198016a41c8afc9004113108102200920034198016a41086a220429000037030020032003290098013703f80420034198016a41dbafc9004109108102200220042900003703002007200329009801370300200341f8046a412010ff010c020b2004450d160c1b0b20034190056a2202420037030020034188056a22094200370300200341f8046a41086a22044200370300200342003703f80420034198016a41c8afc9004113108102200420034198016a41086a220e29000037030020032003290098013703f80420034198016a41dbafc90041091081022002200e2900003703002009200329009801370300200341f8046a200341b0076a10e6042007450d00200d42ffffff3f83500d002007102e0b200341f8046a41186a22024200370300200341f8046a41106a22074200370300200341f8046a41086a22094200370300200342003703f80420034198016a41c8afc9004113108102200920034198016a41086a220429000037030020032003290098013703f80420034198016a41e4afc900410d108102200220042900003703002007200329009801370300200341186a200341f8046a4120108e02200328021c210e2003280218210f200242003703002007420037030020094200370300200342003703f80420034198016a41c8afc90041131081022009200429000037030020032003290098013703f80420034198016a41e4afc900410d108102200220042900003703002007200329009801370300200341106a200341f8046a4120108e022003280210211120032802142112200242003703002007420037030020094200370300200342003703f80420034198016a41c8afc90041131081022009200429000037030020032003290098013703f80420034198016a41e4afc900410d1081022002200429000037030020072003290098013703002003201241016a410120111b3602b007200341f8046a4120200341b0076a410410b201200341b0076a200541b00210e9081a2002200341a8026a41186a2903003703002007200341a8026a41106a2903003703002009200341a8026a41086a290300370300200320032903a8023703f804200341c8026a200341f8046a10f40720032802c802210220032802d0022107200342013703f8042003410036028005200341b0076a200341f8046a1090022002200720032802f80420032802800510b201024020032802fc04450d0020032802f804102e0b024020032802cc02450d002002102e0b200341b0076a108b02200341b0076a41186a4200370300200341b0076a41106a4200370300200341b0076a41086a22024200370300200342003703b007200341f8046a41d9fcc60041061081022002200341f8046a41086a2207290000370300200320032900f8043703b007200341f8046a4180f4cb004106108102200641086a2007290000370000200620032900f804370000200341086a200341b0076a4120108e02200328020c2106200328020821094120102c2202450d192002200329038802370000200241186a20034188026a41186a290300370000200241106a20034188026a41106a290300370000200241086a20034188026a41086a290300370000200341cc076a4100360200200341bc076a4281808080103702002003200641c093066a41c0930620091b3602d0074201210d200342013702c407200320023602b8072003200c3602b4072003200e4100200f1b22063602b007200341f8046a41186a200341a8026a41186a290300370300200341f8046a41106a200341a8026a41106a2903003703002007200341a8026a41086a290300370300200320032903a8023703f804200341c8026a200341f8046a10f50720032802c802220720032802d002200341b0076a10be05024020032802cc02450d002007102e0b2002102e200341bd076a20034188026a41086a290300370000200341c5076a20034188026a41106a290300370000200341cd076a20034188026a41186a290300370000200341d5076a20032903a802370000200341dd076a200341a8026a41086a290300370000200341e5076a200341a8026a41106a290300370000200341ed076a200341a8026a41186a290300370000200341fc076a200c360200200341f8076a2006360200200341003a00b4072003410a3a00b00720032003290388023700b5072001ad4288277e200a42a08a077e7c201042f8fe1c7e7c42a0c28084027c210a200341b0076a10fe010b0240200b42ffffff3f83500d002008102e0b2005102e2003200341e3006a28000036004b20032003280060360248200041186a41003a0000200041106a200a3703002000200d370308200020032802483600192000411c6a200328004b360000200042003703000c1d0b200341b0076a410810f30720032902b407210a20032802b0072101200d42ffffff3f83500d192007102e0c190b200141216a2d00002104200141246a2802002109200341a8026a41186a200141196a290000370300200341a8026a41106a200141116a290000370300200341a8026a41086a200141096a290000370300200320012900013703a802200341b0076a41286a200241286a280200360200200341b0076a41206a200241206a290200370300200341b0076a41186a2201200241186a290200370300200341b0076a41106a2207200241106a290200370300200341b0076a41086a2205200241086a290200370300200320022902003703b007200341f8046a200341b0076a10c102200341f8006a41086a2202200341f8046a41096a290000370300200341f8006a41106a2206200341f8046a41116a290000370300200341f8006a41186a2208200341f8046a41196a290000370300200320032900f904370378024002400240024020032d00f8044101460d00200341c8026a41186a2008290300370300200341c8026a41106a2006290300370300200341c8026a41086a2002290300370300200320032903783703c802200142003703002007420037030020054200370300200342003703b007200341f8046a41c8afc90041131081022005200341f8046a41086a2202290000370300200320032900f8043703b007200341f8046a41c7c3cb00410710810220012002290000370300200720032900f804370300200341f8046a200341b0076a10880320032902fc04420020032802f80422021b220a422088220ba741057421012002410120021b2208210203402001450d02200141606a21012002200341c8026a412010ec082107200241206a210220070d000b200341f8046a200341a8026a10f607200341b0076a20032802f804220220032802800510b30520032802fc04210120032802b807220c450d02200341d0076a2802002113200341cc076a280200210f200341c8076a2802002112200341c4076a2802002114200341c0076a280200210e20032802bc07211120032903b007210d02402001450d002002102e0b2009200da7460d03200341b0076a410410f307200320032900b107370388022003200341b8076a28000036008f020c110b410221010c120b200341b0076a410110f307200320032900b107370388022003200341b8076a28000036008f0220032d00b00721010c100b02402001450d002002102e0b200341b0076a410310f307200320032900b107370388022003200341b8076a28000036008f0220032d00b00721010c0f0b4100210202400240200e0d004101210641002107410021090c010b200e41057441606a41057641016a210541002107200c2101034002402001200341c8026a412010ec080d0041002106410121090c020b200141206a2101410121062005200741016a2207470d000b41002109200521070b02400240024002400240200f450d00200f41057441606a41057641016a2105410021022014210103402001200341c8026a412010ec08450d02200141206a21012005200241016a2202470d000b200521020b2009450d01200441ff01710d03410021050c020b200441ff0171450d052006450d0241002105410121060c130b4100210641012105200441ff01710d120b200341f8046a41186a2202200341c8026a41186a290300370300200341f8046a41106a2206200341c8026a41106a290300370300200341f8046a41086a2215200341c8026a41086a290300370300200320032903c8023703f8040240200f2012470d00201241016a22012012490d13201241017422162001201620014b1b22014104200141044b1b220141ffffff3f712001462116200141057421010240024020120d00200341003602b0070c010b200341b8076a4101360200200320143602b007200320124105743602b4070b200341f0096a20012016200341b0076a107d200341f8096a2802002101024020032802f0094101470d0020010d190c140b20032802f4092114200141057621120b2014200f4105746a220120032903f804370000200141186a2002290300370000200141106a2006290300370000200141086a2015290300370000200f41016a210f2009450d15200e20074d0d04200c200e417f6a220e4105746a220129000021102001290008211720012900102118200c20074105746a220241186a200141186a2900003700002002201837001020022017370008200220103700000c150b200341b0076a410510f307200320032900b107370388022003200341b8076a28000036008f020c0d0b200141286a2802002108200141306a290300210b200141246a2802002107200341a8026a41186a200141196a290000370300200341a8026a41106a200141116a290000370300200341a8026a41086a200141096a290000370300200320012900013703a802200341b0076a41286a200241286a280200360200200341b0076a41206a2201200241206a290200370300200341b0076a41186a2205200241186a290200370300200341b0076a41106a2206200241106a290200370300200341b0076a41086a200241086a290200370300200320022902003703b007200341f8046a200341b0076a10c10202400240024020032d00f8044101460d00200341f8046a200341a8026a10f607200341b0076a20032802f804220920032802800510b30520032802fc042102024020032802b8072204450d002001280200210f200341cc076a280200210c20052802002105200341c4076a280200210e2006280200210120032802bc07210620032903b007210d02402002450d002009102e0b2007200da7460d03200341b0076a410410f307200320032900b107370388022003200341b8076a28000036008f0220032d00b0072102410121070c0c0b02402002450d002009102e0b200341b0076a410310f307200320032900b107370388022003200341b8076a28000036008f0220032d00b00721020c010b410221020b4200210a410021010c0b0b200d422088a7210942002110200341c8076a22074200370300200341c0076a22024200370300200341b0076a41086a22114200370300200342003703b007200341f8046a41c8afc90041131081022011200341f8046a41086a2212290000370300200320032900f8043703b007200341f8046a41c7c3cb00410710810220072012290000370300200220032900f804370300200341c8026a200341b0076a1088030240024020032802c80222070d00410021110c010b20032902cc02220a4220882210a72111200a42ffffff3f83500d002007102e0b0240024020012009490d00200341b0076a200341a8026a2008200b10f70720032d00b407210220032802b0072108200341f8046a200341b0076a41057241b30210e9081a41012107024020084101460d00200341e8096a350200210a200341c8026a200341fb046a41b00210e9081a200341bd076a200341a8026a41086a2202290300370000200341c5076a200341a8026a41106a2207290300370000200341cd076a200341a8026a41186a2208290300370000200341dc076a200c360200200341d8076a2001360200200341063a00b4072003410a3a00b007200320032903a8023700b507200341b0076a10fe0120034194056a200c360200200341f8046a41186a2005360200200341f8046a41106a200136020020034184056a20063602002003200f360298052003200e36028c0520032004360280052003200d3703f804200341f0096a41186a2008290300370300200341f0096a41106a2007290300370300200341f0096a41086a2002290300370300200320032903a8023703f009200341b0076a200341c8026a41b00210e9081a200341386a2011200341f8046a200341f0096a200341b0076a10f807427f200a42b8177e201042b0c60d7e7c200335024042b09c1b7e7c42e0c3b9dc017c220a20032903387c220b200b200a541b210b0c020b200320032900f804370388022003200341ff046a28000036008f020c0a0b4100210741002011200c6b2212201220114b1b2009490d074200210a200341b0076a41186a4200370300200341b0076a41106a4200370300200341b0076a41086a22074200370300200342003703b007200341f8046a41d9fcc60041061081022007200341f8046a41086a2212290000370300200320032900f8043703b007200341f8046a4180f4cb004106108102200241086a2012290000370000200220032900f804370000200341306a200341b0076a4120108e0202402003280234410020032802301b200f4f0d00200341b0076a410710f307200320032900b107370388022003200728000036008f0220032d00b007210241012107410021010c0b0b200341f0096a41186a22024200370300200341f0096a41106a22074200370300200341f0096a41086a22144200370300200342003703f00920034198016a41c8afc9004113108102201420034198016a41086a221329000037030020032003290098013703f00920034198016a41dbc3cb004105108102200220132900003703002007200329009801370300200341b0076a200341f0096a412010f40220032d00b0072102200341f8046a41186a200341c9076a290000370300200341f8046a41106a200341c1076a2900003703002012200341b9076a290000370300200320032900b1073703f8040240024020024101460d00410221020c010b200341c8026a41186a200341f8046a41186a290300220a370300200341c8026a41106a200341f8046a41106a2903002217370300200341c8026a41086a200341f8046a41086a2903002218370300200320032903f80422193703c802200341b0076a41186a200a370300200341b0076a41106a2017370300200341b0076a41086a2018370300200320193703b00720014105742102200421070340024020020d00410021020c020b200241606a21022007200341b0076a412010ec082112200741206a210720120d000b410121020b41002107410020112001200c6a6b2212200220024102477122021b200c6a21142012410020021b20016a22122009490d04200341b0076a200341a8026a2008200b10f70720032d00b407210220032802b0072108200341f8046a200341b0076a41057241b30210e9081a4101210720084101460d05200341e8096a350200210a200341c8026a200341fb046a41b00210e9081a200341bd076a200341a8026a41086a2202290300370000200341c5076a200341a8026a41106a2207290300370000200341cd076a200341a8026a41186a2208290300370000200341dc076a2014360200200341d8076a2012360200200341063a00b4072003410a3a00b007200320032903a8023700b507200341b0076a10fe0120034194056a200c360200200341f8046a41186a2005360200200341f8046a41106a200136020020034184056a20063602002003200f360298052003200e36028c0520032004360280052003200d3703f804200341f0096a41186a2008290300370300200341f0096a41106a2007290300370300200341f0096a41086a2002290300370300200320032903a8023703f009200341b0076a200341c8026a41b00210e9081a200341206a2011200341f8046a200341f0096a200341b0076a10f807427f200a42b8177e201042e0b60d7e7c20033502284280ac1b7e7c42e0fdcfea017c220a20032903207c220b200b200a541b210b0b4201210a410021010c0b0b200341c8026a41186a2207200141196a290000370300200341c8026a41106a2205200141116a290000370300200341c8026a41086a2206200141096a290000370300200320012900013703c802200341b0076a41286a200241286a280200360200200341b0076a41206a200241206a290200370300200341b0076a41186a2201200241186a290200370300200341b0076a41106a2208200241106a290200370300200341b0076a41086a2209200241086a290200370300200320022902003703b00702400240200341b0076a10a705450d00200320032800a80236028802200320032900f0093703b0072003200341ab026a28000036008b022003200341f7096a2800003600b707200041186a41003a00002000420037030820002003280288023600192000411c6a200328008b02360000200041206a41023a0000200020032903b007370021200041286a20032800b7073600004201210a0c010b200341f8046a41186a22022007290300220a370300200341f8046a41106a22072005290300220b370300200341f8046a41086a22052006290300220d370300200320032903c80222103703f804200341bd076a200d370000200341c5076a200b370000200341cd076a200a3700002003410a3a00b007200320103700b507200341033a00b407200341b0076a10fe01200120022903003703002008200729030037030020092005290300370300200320032903f8043703b007200341b0076a10f9072101200320032800a802360288022003200341a8026a41036a28000036008b02200041186a41003a0000200041106a2001ad42d0be1a7e42d0deb8a7017c3703002000420137030820002003280288023600192000411c6a200328008b023600004200210a0b2000200a3703000c190b200341b0076a410510f307200320032900b107370388022003200341b8076a28000036008f020c0a0b2007200e1042000b200341dc076a2014360200200341d8076a2012360200200341bd076a2201200341a8026a41086a2202290300370000200341c5076a2208200341a8026a41106a2209290300370000200341cd076a220c200341a8026a41186a220f290300370000200341063a00b4072003410a3a00b007200320032903a8023700b507200341b0076a10fe01200341f8006a41186a2211200f290300220a370300200341f8006a41106a220f2009290300220b370300200341f8006a41086a22092002290300220d370300200320032903a80222173703782001200d3700002008200b370000200c200a370000200341033a00b4072003410a3a00b007200320173700b507200341b0076a10fe01200341b0076a41186a2011290300370300200341b0076a41106a200f290300370300200341b0076a41086a2009290300370300200320032903783703b007201042c8be0d7e200341b0076a10f907ad42a0ce1a7e7c42c8b9d4d5017c210b0c030b200320032900f804370388022003200341ff046a28000036008f020c030b410221010c130b200341dc076a200c360200200341d8076a2001360200200341bd076a2201200341a8026a41086a2202290300370000200341c5076a2208200341a8026a41106a2209290300370000200341cd076a220c200341a8026a41186a220f290300370000200341063a00b4072003410a3a00b007200320032903a8023700b507200341b0076a10fe01200341f8046a41186a2211200f290300220a370300200341f8046a41106a220f2009290300220b370300200341f8046a41086a22092002290300220d370300200320032903a80222173703f8042001200d3700002008200b370000200c200a370000200341033a00b4072003410a3a00b007200320173700b507200341b0076a10fe01200341b0076a41186a2011290300370300200341b0076a41106a200f290300370300200341b0076a41086a2009290300370300200320032903f8043703b007201042a89f0d7e200341b0076a10f907ad42e8b61a7e7c42a0adc1c7017c210b0b4201210a410121010c010b4200210a410021010b0240200641ffffff3f71450d002004102e0b0240200541ffffff3f71450d00200e102e0b2007450d010b200320032800f8013602e80120032003290388023703b8012003200328008f023600bf012003200341fb016a2800003600eb01200041186a20013a0000200041106a200b3703002000200a370308200020032802e8013600192000411c6a20032800eb01360000200041206a20023a0000200020032903b801370021200041286a20032800bf01360000200042013703000c0f0b200320032800f8013602e8012003200341fb016a2800003600eb01200041186a20013a0000200041106a200b3703002000200a370308200020032802e8013600192000411c6a20032800eb01360000200042003703000c0e0b20032d00b00721010240201141ffffff3f71450d00200c102e0b201241ffffff3f71450d002014102e0b200a42ffffff3f83500d002008102e0b200320032800b8013602f8012003200329038802370398012003200328008f0236009f012003200341bb016a2800003600fb01200041186a41003a000020004200370308200020032802f8013600192000411c6a20032800fb01360000200041206a20013a00002000200329039801370021200041286a200328009f01360000200042013703000c0b0b200341f0096a41186a2207200341c8026a41186a290300370300200341f0096a41106a2209200341c8026a41106a290300370300200341f0096a41086a2215200341c8026a41086a290300370300200320032903c8023703f009200e2011470d02201141016a22012011490d00201141017422162001201620014b1b22014104200141044b1b220141ffffff3f712001462116200141057421010240024020110d00200341003602b0070c010b200341b8076a41013602002003200c3602b007200320114105743602b4070b200341f8046a20012016200341b0076a107d20034180056a280200210120032802f8044101470d0120010d050b1038000b20032802fc04210c200141057621110b200c200e4105746a220120032903f009370000200141186a2007290300370000200141106a2009290300370000200141086a2015290300370000200e41016a210e2006450d00200f20024d0d012014200f417f6a220f4105746a220129000021102001290008211720012900102118201420024105746a220241186a200141186a2900003700002002201837001020022017370008200220103700000b200341d5076a20032903a802370000200341bd076a200341c8026a41086a290300370000200341c5076a200341c8026a41106a290300370000200341cd076a200341c8026a41186a290300370000200341dd076a200341a8026a41086a290300370000200341e5076a200341a8026a41106a290300370000200341ed076a200341a8026a41186a290300370000200341013a00b4072003410a3a00b007200320032903c8023700b507200341fc076a200f360200200341f8076a200e360200200341f5076a20043a0000200341b0076a10fe01200341cc076a200f360200200341b0076a41186a2012360200200341b0076a41106a200e360200200341bc076a2011360200200320133602d007200320143602c4072003200c3602b8072003200d3703b007200341f8046a200341a8026a10f60720032802f8042201200328028005200341b0076a10be05024020032802fc04450d002001102e0b0240201141ffffff3f71450d00200c102e0b0240201241ffffff3f71450d002014102e0b200b42e8ce127e4280cbd9d7007c210b0240200a42ffffff3f83500d002008102e0b200320032800b8013602f8012003200341bb016a2800003600fb01200041186a20053a0000200041106a200b37030020004201370308200020032802f8013600192000411c6a20032800fb01360000200042003703000c060b2002200f1042000b1036000b20032902b407210a20032802b00721010b200b42ffffff3f83500d002008102e0b2005108b022005102e2003200341e3006a28000036004b20032003280060360248200041186a41003a000020004200370308200020032802483600192000411c6a200328004b360000200041246a200a370200200041206a2001360200200042013703000c010b2005108b022005102e2003200341f4006a28000036005b20032003280071360258200320032903603703482003200328006736004f200041186a41003a000020004200370308200020032802583600192000411c6a200328005b360000200041206a20013a000020002003290348370021200041286a200328004f360000200042013703000b200341a00a6a24000b8b7a040a7f047e067f037e230041a00a6b2203240002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d00000e0700010203040506000b200341c4076a4101360200200342013702b4072003419cc3cb003602b007200341043602fc0420034194c3cb003602f8042003200341f8046a3602c007200341b0076a41b8afc9001044000b20012d000121042001412c6a2802002105200141286a2802002106200141246a2802002107200341c8026a41186a22082001411a6a290000370300200341c8026a41106a2209200141126a290000370300200341c8026a41086a220a2001410a6a2900003703002003200141026a2900003703c802200341b0076a41286a200241286a280200360200200341b0076a41206a200241206a290200370300200341b0076a41186a2201200241186a290200370300200341b0076a41106a220b200241106a290200370300200341b0076a41086a220c200241086a290200370300200320022902003703b007024002400240200341b0076a10a7050d0020014200370300200b4200370300200c4200370300200342003703b007200341f8046a4181b0c9004113108102200c200341f8046a41086a2202290000370300200320032900f8043703b007200341f8046a41c7c3cb00410710810220012002290000370300200b20032900f804370300200341f8046a200341b0076a10880320032802f804210120032902fc04210d2007200510fc02200720052001410120011b2202200d420020011b220d422088220ea710fc07200341f8006a41186a2008290300370300200341f8006a41106a2009290300370300200341f8006a41086a200a290300370300200320032903c802370378200441ff01710d0120034190056a2201420037030020034188056a220b4200370300200341f8046a41086a220c4200370300200342003703f80420034198016a4181b0c9004113108102200c20034198016a41086a220429000037030020032003290098013703f80420034198016a41dbc3cb00410510810220012004290000370300200b200329009801370300200341f8046a412010ff010c020b0240200641ffffff3f71450d002007102e0b200320032800b8013602f801200320032900a802370388022003200341bb016a2800003600fb012003200341af026a28000036008f02200041186a41003a000020004200370308200020032802f8013600192000411c6a20032800fb01360000200041206a41023a00002000200329038802370021200041286a200328008f02360000200042013703000c200b200341b0076a41186a200341f8006a41186a290300370300200341b0076a41106a200341f8006a41106a290300370300200341b0076a41086a200341f8006a41086a290300370300200320032903783703b007200341f0096a41186a22014200370300200341f0096a41106a220b4200370300200341f0096a41086a220c4200370300200342003703f009200341f8046a4181b0c9004113108102200c200341f8046a41086a2204290000370300200320032900f8043703f009200341f8046a41dbc3cb00410510810220012004290000370300200b20032900f8043703004120102c2201450d1a200342203702fc04200320013602f804200341f8046a200341b0076a41201074200341f0096a412020032802f804220120032802800510b20120032802fc04450d002001102e0b2005ad42b882077e200e42c0b5e5097e7c210e0240200641ffffff3f71450d002007102e0b200e42a0c0b291397c210e0240200d42ffffff3f83500d002002102e0b200320032800b8013602f8012003200341bb016a2800003600fb01200041186a41003a0000200041106a200e37030020004201370308200020032802f8013600192000411c6a20032800fb01360000200042003703000c1e0b200141086a2802002104200141046a2802002105200341b0076a41286a200241286a280200360200200341b0076a41206a200241206a290200370300200341b0076a41186a2201200241186a290200370300200341b0076a41106a2207200241106a290200370300200341b0076a41086a2206200241086a290200370300200320022902003703b007200341f8046a200341b0076a10c102200341f8006a41086a220220034181056a290000370300200341f8006a41106a220b20034189056a290000370300200341f8006a41186a220c20034191056a290000370300200320032900f90437037820032d00f8044101460d0820034198016a41186a200c29030037030020034198016a41106a200b29030037030020034198016a41086a20022903003703002003200329037837039801200142003703002007420037030020064200370300200342003703b007200341f8046a4181b0c90041131081022006200341f8046a41086a2202290000370300200320032900f8043703b007200341f8046a41c7c3cb00410710810220012002290000370300200720032900f804370300200341f8046a200341b0076a10880320032902fc04420020032802f80422021b220d422088220ea741057421012002410120021b22062102024002400240024003402001450d01200141606a2101200220034198016a412010ec082107200241206a210220070d000b200341003602b807200342013703b0072005200341b0076a10900220032802b8072107024020032802b407450d0020032802b007102e0b0240200720044d0d00200341b0076a410a10fd07200320032900b1073703602003200341b8076a2800003600670c020b2003410036028005200342013703f8042005200341f8046a109002200341b0076a20032802f80420032802800510b00120034188026a41186a200341b0076a41186a29030037030020034188026a41106a200341b0076a41106a29030037030020034188026a41086a200341b0076a41086a290300370300200320032903b00737038802024020032802fc04450d0020032802f804102e0b200341f8046a200541b00210e9081a200341a8026a41086a20034198016a41086a290300370300200341a8026a41106a20034198016a41106a290300370300200341a8026a41186a20034198016a41186a29030037030020032003290398013703a8024110102c2202450d1c200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1c20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220b3602000240200b0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220b200b280200417f6a220b360200200b0d002002102e0b024002402001280208200341f8046a200128020c28020c1101000d0041022102200341e8026a41023a0000200341e0026a41003a000020012001280200417f6a220b3602004200210f200342003703d002200342013703c8020240200b0d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a220b200b280200417f6a220b360200200b0d002001102e0b200341f8046a10dc02410121010c010b200341b0076a200341f8046a41b00210e9081a200341fd096a200341b0026a290300370000200341850a6a200341b8026a2903003700002003418d0a6a200341c0026a290300370000200341950a6a20032f00783b0000200341023a00f009200341970a6a200341f8006a41026a2d00003a0000200341013a00f409200320032903a8023700f509200320013602980a200341c8026a200341b0076a200341f0096a10dd0220032903c8024201512101200341e8026a2d0000210220032903d002210f0b200341f8046a41186a20034188026a41186a290300370300200341f8046a41106a20034188026a41106a290300370300200341f8046a41086a20034188026a41086a29030037030020032003290388023703f8042003200341f0026a2800003600b707200320032900e9023703b0070240024020010d00410621010c010b200320032800b7073600ff01200320032903b0073703f80141062101200f4202510d00200320032800ff013600ef01200320032903f8013703e801200221010b200341f0096a41086a2202200341f8046a41086a290300370300200341f0096a41106a220b200341f8046a41106a290300370300200341f0096a41186a220c200341f8046a41186a290300370300200320032903f8043703f009200320032903e8013703d801200320032800ef013600df01200341053a00b4072003410b3a00b007200341bd076a2002290300370000200341c5076a200b290300370000200341cd076a200c290300370000200341d8076a20013a0000200320032903f0093700b507200341d5076a20032f00e5013b0000200341d7076a200341e7016a2d00003a0000200341d9076a20032903d801370000200341e0076a20032800df01360000200341fc076a200341b8016a41186a280200360200200341f4076a200341b8016a41106a290200370200200341ec076a200341b8016a41086a290200370200200341e4076a20032902b801370200200341b0076a10fe01200fa70d024200210e0c030b200341b0076a410110fd07200320032900b1073703602003200341b8076a2800003600670b20032d00b0072101200d42ffffff3f83500d1e2006102e0c1e0b427f2007ad42a01f7e200e4280eb067e7c42d8bbe3167c220e200341c8026a41106a2903007c220f200f200e541b210f4201210e0b0240200d42ffffff3f83500d002006102e0b2005102e2003200341f4006a28000036005b20032003280071360258200041186a41003a0000200041106a200f3703002000200e370308200020032802583600192000411c6a200328005b360000200042003703000c1d0b2001410c6a2802002104200141086a2802002105200141046a2802002108200341b0076a41286a200241286a280200360200200341b0076a41206a200241206a290200370300200341b0076a41186a2201200241186a290200370300200341b0076a41106a2206200241106a290200370300200341b0076a41086a2207200241086a290200370300200320022902003703b007200341f8046a200341b0076a10c102200341c8026a41086a220220034181056a290000370300200341c8026a41106a220b20034189056a290000370300200341c8026a41186a220c20034191056a290000370300200320032900f9043703c80202400240024020032d00f8044101460d0020034188026a41186a200c29030037030020034188026a41106a200b29030037030020034188026a41086a2002290300370300200320032903c80237038802200142003703002006420037030020074200370300200342003703b007200341f8046a4181b0c90041131081022007200341f8046a41086a2202290000370300200320032900f8043703b007200341f8046a41c7c3cb00410710810220012002290000370300200620032900f804370300200341f8046a200341b0076a10880320032902fc04420020032802f80422021b220e422088220da741057421012002410120021b220b210203402001450d02200141606a2101200220034188026a412010ec082107200241206a210220070d000b200341003602b807200342013703b0072005200341b0076a10900220032802b8072101024020032802b407450d0020032802b007102e0b200120044d0d02200341b0076a410a10fd070c1b0b410221010c1c0b200341b0076a410110fd070c190b2003410036028005200342013703f8042005200341f8046a109002200341b0076a20032802f80420032802800510b001200341a8026a41186a2202200341b0076a41186a2207290300370300200341a8026a41106a220c200341b0076a41106a2204290300370300200341a8026a41086a2209200341b0076a41086a220a290300370300200320032903b0073703a802024020032802fc04450d0020032802f804102e0b200720022903003703002004200c290300370300200a2009290300370300200320032903a8023703b007200341f8046a200341b0076a10fe0720032802f8042207200328028005108f022102024020032802fc04450d002007102e0b02402002450d00200341b0076a410210fd070c190b024002400240200841014b0d00200341c8076a4200370300200341c0076a4200370300200341b0076a41086a22024200370300200342003703b007200341f8046a4181b0c90041131081022002200341f8046a41086a2207290000370300200320032900f8043703b007200341f8046a41c7c3cb004107108102200641086a2007290000370000200620032900f804370000200341c8026a200341b0076a1088030240024020032802c80222020d004100210c0c010b20032902cc02220f422088a7210c200f42ffffff3f83500d002002102e0b200341f8046a200541b00210e9081a4110102c2207450d1a200741f8f7c60036020c2007410136020820074281808080103702004110102c2202450d1a20024190f8c60036020c20024101360208200242818080801037020020072007280200417f6a2206360200024020060d002007280208200728020c2802001103000240200728020c280204450d002007280208102e0b200741046a22062006280200417f6a220636020020060d002007102e0b024002402002280208200341f8046a200228020c28020c1101000d0041022107200341e8026a41023a0000200341e0026a41003a000020022002280200417f6a22063602004200210f200342003703d002200342013703c802024020060d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22062006280200417f6a220636020020060d002002102e0b200341f8046a10dc02410121020c010b200341b0076a200341f8046a41b00210e9081a200341fc096a200c360200200341f0096a41086a4101360200200341f0096a41106a200329019801370300200341880a6a20034198016a41086a290100370300200341f0096a41206a20034198016a41106a290100370300200341003a00f409200320032f00783b00f509200320023602980a200341023a00f0092003200341f8006a41026a2d00003a00f709200341c8026a200341b0076a200341f0096a10dd0220032903c8024201512102200341c8026a41206a2d0000210720032903d002210f0b200341f0096a41186a200341a8026a41186a290300370300200341f0096a41106a200341a8026a41106a290300370300200341f0096a41086a200341a8026a41086a290300370300200320032903a8023703f0092003200341f0026a2800003600b707200320032900e9023703b0070240024020020d00410621020c010b200320032800b7073600ff01200320032903b0073703f80141062102200f4202510d00200320032800ff013600ef01200320032903f8013703e801200721020b200341f8006a41086a2207200341f0096a41086a290300370300200341f8006a41106a2206200341f0096a41106a290300370300200341f8006a41186a220c200341f0096a41186a290300370300200320032903f009370378200320032903e8013703d801200320032800ef013600df01200341043a00b4072003410b3a00b007200341bd076a2007290300370000200341c5076a2006290300370000200341cd076a200c290300370000200341d8076a20023a0000200320032903783700b507200341d5076a20032f00e5013b0000200341d7076a200341e7016a2d00003a0000200341d9076a20032903d801370000200341e0076a20032800df01360000200341fc076a200341b8016a41186a280200360200200341f4076a200341b8016a41106a290200370200200341ec076a200341b8016a41086a290200370200200341e4076a20032902b801370200200341b0076a10fe010240200fa70d004200210f0c020b427f2001ad42a01f7e200d42e8dd0d7e7c42d8ce86257c220d200341c8026a41106a2903007c220f200f200d541b210d4201210f0c010b200341b0076a41186a4200370300200341b0076a41106a4200370300200341b0076a41086a22024200370300200342003703b007200341f8046a4181b0c90041131081022002200341f8046a41086a220c290000370300200320032900f8043703b007200341f8046a41dbafc9004109108102200641086a200c290000370000200620032900f804370000200341f8046a200341b0076a4120108d0320032802f804210220032902fc04210f200341f8046a41186a2209200341a8026a41186a290300370300200341f8046a41106a220a200341a8026a41106a290300370300200c200341a8026a41086a290300370300200320032903a8023703f8042002410120021b21070240024002400240200f420020021b220f4220882210a72202200fa7470d00200241016a22042002490d1820024101742211200420042011491b22044104200441044b1b220441ffffff3f712004462111200441057421040240024020020d00200341003602b0070c010b200341b8076a4101360200200320073602b007200320104205863e02b4070b200341c8026a20042011200341b0076a107d200341d0026a280200210420032802c8024101460d0120032802cc022107200f422088a721022004410576ad210f0b200720024105746a220420032903f804370000200441186a2009290300370000200441106a200a290300370000200441086a200c290300370000200241016a220241e4004b0d04200320073602b0072003200f42ffffffff0f832002ad2210422086843702b40720070d0120034190056a2202420037030020034188056a22074200370300200341f8046a41086a220c4200370300200342003703f80420034198016a4181b0c9004113108102200c20034198016a41086a220429000037030020032003290098013703f80420034198016a41dbafc9004109108102200220042900003703002007200329009801370300200341f8046a412010ff010c020b2004450d160c1b0b20034190056a2202420037030020034188056a220c4200370300200341f8046a41086a22044200370300200342003703f80420034198016a4181b0c9004113108102200420034198016a41086a220929000037030020032003290098013703f80420034198016a41dbafc900410910810220022009290000370300200c200329009801370300200341f8046a200341b0076a10e6042007450d00200f42ffffff3f83500d002007102e0b200341f8046a41186a22024200370300200341f8046a41106a22074200370300200341f8046a41086a220c4200370300200342003703f80420034198016a4181b0c9004113108102200c20034198016a41086a220429000037030020032003290098013703f80420034198016a41e4afc900410d108102200220042900003703002007200329009801370300200341186a200341f8046a4120108e02200328021c21092003280218210a2002420037030020074200370300200c4200370300200342003703f80420034198016a4181b0c9004113108102200c200429000037030020032003290098013703f80420034198016a41e4afc900410d108102200220042900003703002007200329009801370300200341106a200341f8046a4120108e0220032802102111200328021421122002420037030020074200370300200c4200370300200342003703f80420034198016a4181b0c9004113108102200c200429000037030020032003290098013703f80420034198016a41e4afc900410d1081022002200429000037030020072003290098013703002003201241016a410120111b3602b007200341f8046a4120200341b0076a410410b201200341b0076a200541b00210e9081a2002200341a8026a41186a2903003703002007200341a8026a41106a290300370300200c200341a8026a41086a290300370300200320032903a8023703f804200341c8026a200341f8046a10fe0720032802c802210220032802d0022107200342013703f8042003410036028005200341b0076a200341f8046a1090022002200720032802f80420032802800510b201024020032802fc04450d0020032802f804102e0b024020032802cc02450d002002102e0b200341b0076a108b02200341b0076a41186a4200370300200341b0076a41106a4200370300200341b0076a41086a22024200370300200342003703b007200341f8046a41d9fcc60041061081022002200341f8046a41086a2207290000370300200320032900f8043703b007200341f8046a4180f4cb004106108102200641086a2007290000370000200620032900f804370000200341086a200341b0076a4120108e02200328020c21062003280208210c4120102c2202450d192002200329038802370000200241186a20034188026a41186a290300370000200241106a20034188026a41106a290300370000200241086a20034188026a41086a290300370000200341cc076a4100360200200341bc076a4281808080103702002003200641c093066a41c09306200c1b3602d0074201210f200342013702c407200320023602b807200320083602b407200320094100200a1b22063602b007200341f8046a41186a200341a8026a41186a290300370300200341f8046a41106a200341a8026a41106a2903003703002007200341a8026a41086a290300370300200320032903a8023703f804200341c8026a200341f8046a10ff0720032802c802220720032802d002200341b0076a10be05024020032802cc02450d002007102e0b2002102e200341bd076a20034188026a41086a290300370000200341c5076a20034188026a41106a290300370000200341cd076a20034188026a41186a290300370000200341d5076a20032903a802370000200341dd076a200341a8026a41086a290300370000200341e5076a200341a8026a41106a290300370000200341ed076a200341a8026a41186a290300370000200341fc076a2008360200200341f8076a2006360200200341003a00b4072003410b3a00b00720032003290388023700b5072001ad4288277e200d42a08a077e7c201042f8fe1c7e7c42a0c28084027c210d200341b0076a10fe010b0240200e42ffffff3f83500d00200b102e0b2005102e2003200341e3006a28000036004b20032003280060360248200041186a41003a0000200041106a200d3703002000200f370308200020032802483600192000411c6a200328004b360000200042003703000c1d0b200341b0076a410810fd0720032902b407210d20032802b0072101200f42ffffff3f83500d192007102e0c190b200141216a2d00002104200141246a280200210c200341a8026a41186a200141196a290000370300200341a8026a41106a200141116a290000370300200341a8026a41086a200141096a290000370300200320012900013703a802200341b0076a41286a200241286a280200360200200341b0076a41206a200241206a290200370300200341b0076a41186a2201200241186a290200370300200341b0076a41106a2207200241106a290200370300200341b0076a41086a2205200241086a290200370300200320022902003703b007200341f8046a200341b0076a10c102200341f8006a41086a2202200341f8046a41096a290000370300200341f8006a41106a2206200341f8046a41116a290000370300200341f8006a41186a220b200341f8046a41196a290000370300200320032900f904370378024002400240024020032d00f8044101460d00200341c8026a41186a200b290300370300200341c8026a41106a2006290300370300200341c8026a41086a2002290300370300200320032903783703c802200142003703002007420037030020054200370300200342003703b007200341f8046a4181b0c90041131081022005200341f8046a41086a2202290000370300200320032900f8043703b007200341f8046a41c7c3cb00410710810220012002290000370300200720032900f804370300200341f8046a200341b0076a10880320032902fc04420020032802f80422021b220d422088220ea741057421012002410120021b220b210203402001450d02200141606a21012002200341c8026a412010ec082107200241206a210220070d000b200341f8046a200341a8026a108008200341b0076a20032802f804220220032802800510b30520032802fc04210120032802b8072208450d02200341d0076a2802002113200341cc076a280200210a200341c8076a2802002112200341c4076a2802002114200341c0076a280200210920032802bc07211120032903b007210f02402001450d002002102e0b200c200fa7460d03200341b0076a410410fd07200320032900b107370388022003200341b8076a28000036008f020c110b410221010c120b200341b0076a410110fd07200320032900b107370388022003200341b8076a28000036008f0220032d00b00721010c100b02402001450d002002102e0b200341b0076a410310fd07200320032900b107370388022003200341b8076a28000036008f0220032d00b00721010c0f0b410021020240024020090d0041012106410021074100210c0c010b200941057441606a41057641016a21054100210720082101034002402001200341c8026a412010ec080d00410021064101210c0c020b200141206a2101410121062005200741016a2207470d000b4100210c200521070b02400240024002400240200a450d00200a41057441606a41057641016a2105410021022014210103402001200341c8026a412010ec08450d02200141206a21012005200241016a2202470d000b200521020b200c450d01200441ff01710d03410021050c020b200441ff0171450d052006450d0241002105410121060c130b4100210641012105200441ff01710d120b200341f8046a41186a2202200341c8026a41186a290300370300200341f8046a41106a2206200341c8026a41106a290300370300200341f8046a41086a2215200341c8026a41086a290300370300200320032903c8023703f8040240200a2012470d00201241016a22012012490d13201241017422162001201620014b1b22014104200141044b1b220141ffffff3f712001462116200141057421010240024020120d00200341003602b0070c010b200341b8076a4101360200200320143602b007200320124105743602b4070b200341f0096a20012016200341b0076a107d200341f8096a2802002101024020032802f0094101470d0020010d190c140b20032802f4092114200141057621120b2014200a4105746a220120032903f804370000200141186a2002290300370000200141106a2006290300370000200141086a2015290300370000200a41016a210a200c450d15200920074d0d0420082009417f6a22094105746a220129000021102001290008211720012900102118200820074105746a220241186a200141186a2900003700002002201837001020022017370008200220103700000c150b200341b0076a410510fd07200320032900b107370388022003200341b8076a28000036008f020c0d0b200141286a280200210b200141306a290300210e200141246a2802002107200341a8026a41186a200141196a290000370300200341a8026a41106a200141116a290000370300200341a8026a41086a200141096a290000370300200320012900013703a802200341b0076a41286a200241286a280200360200200341b0076a41206a2201200241206a290200370300200341b0076a41186a2205200241186a290200370300200341b0076a41106a2206200241106a290200370300200341b0076a41086a200241086a290200370300200320022902003703b007200341f8046a200341b0076a10c10202400240024020032d00f8044101460d00200341f8046a200341a8026a108008200341b0076a20032802f804220c20032802800510b30520032802fc042102024020032802b8072204450d002001280200210a200341cc076a280200210820052802002105200341c4076a28020021092006280200210120032802bc07210620032903b007210f02402002450d00200c102e0b2007200fa7460d03200341b0076a410410fd07200320032900b107370388022003200341b8076a28000036008f0220032d00b0072102410121070c0c0b02402002450d00200c102e0b200341b0076a410310fd07200320032900b107370388022003200341b8076a28000036008f0220032d00b00721020c010b410221020b4200210d410021010c0b0b200f422088a7210c42002110200341c8076a22074200370300200341c0076a22024200370300200341b0076a41086a22114200370300200342003703b007200341f8046a4181b0c90041131081022011200341f8046a41086a2212290000370300200320032900f8043703b007200341f8046a41c7c3cb00410710810220072012290000370300200220032900f804370300200341c8026a200341b0076a1088030240024020032802c80222070d00410021110c010b20032902cc02220d4220882210a72111200d42ffffff3f83500d002007102e0b024002402001200c490d00200341b0076a200341a8026a200b200e10810820032d00b407210220032802b007210b200341f8046a200341b0076a41057241b30210e9081a410121070240200b4101460d00200341e8096a350200210d200341c8026a200341fb046a41b00210e9081a200341bd076a200341a8026a41086a2202290300370000200341c5076a200341a8026a41106a2207290300370000200341cd076a200341a8026a41186a220b290300370000200341dc076a2008360200200341d8076a2001360200200341063a00b4072003410b3a00b007200320032903a8023700b507200341b0076a10fe0120034194056a2008360200200341f8046a41186a2005360200200341f8046a41106a200136020020034184056a20063602002003200a360298052003200936028c0520032004360280052003200f3703f804200341f0096a41186a200b290300370300200341f0096a41106a2007290300370300200341f0096a41086a2002290300370300200320032903a8023703f009200341b0076a200341c8026a41b00210e9081a200341386a2011200341f8046a200341f0096a200341b0076a108208427f200d42b8177e201042b0c60d7e7c200335024042b09c1b7e7c42e0c3b9dc017c220d20032903387c220e200e200d541b210e0c020b200320032900f804370388022003200341ff046a28000036008f020c0a0b410021074100201120086b2212201220114b1b200c490d074200210d200341b0076a41186a4200370300200341b0076a41106a4200370300200341b0076a41086a22074200370300200342003703b007200341f8046a41d9fcc60041061081022007200341f8046a41086a2212290000370300200320032900f8043703b007200341f8046a4180f4cb004106108102200241086a2012290000370000200220032900f804370000200341306a200341b0076a4120108e0202402003280234410020032802301b200a4f0d00200341b0076a410710fd07200320032900b107370388022003200728000036008f0220032d00b007210241012107410021010c0b0b200341f0096a41186a22024200370300200341f0096a41106a22074200370300200341f0096a41086a22144200370300200342003703f00920034198016a4181b0c9004113108102201420034198016a41086a221329000037030020032003290098013703f00920034198016a41dbc3cb004105108102200220132900003703002007200329009801370300200341b0076a200341f0096a412010f40220032d00b0072102200341f8046a41186a200341c9076a290000370300200341f8046a41106a200341c1076a2900003703002012200341b9076a290000370300200320032900b1073703f8040240024020024101460d00410221020c010b200341c8026a41186a200341f8046a41186a290300220d370300200341c8026a41106a200341f8046a41106a2903002217370300200341c8026a41086a200341f8046a41086a2903002218370300200320032903f80422193703c802200341b0076a41186a200d370300200341b0076a41106a2017370300200341b0076a41086a2018370300200320193703b00720014105742102200421070340024020020d00410021020c020b200241606a21022007200341b0076a412010ec082112200741206a210720120d000b410121020b4100210741002011200120086a6b2212200220024102477122021b20086a21142012410020021b20016a2212200c490d04200341b0076a200341a8026a200b200e10810820032d00b407210220032802b007210b200341f8046a200341b0076a41057241b30210e9081a41012107200b4101460d05200341e8096a350200210d200341c8026a200341fb046a41b00210e9081a200341bd076a200341a8026a41086a2202290300370000200341c5076a200341a8026a41106a2207290300370000200341cd076a200341a8026a41186a220b290300370000200341dc076a2014360200200341d8076a2012360200200341063a00b4072003410b3a00b007200320032903a8023700b507200341b0076a10fe0120034194056a2008360200200341f8046a41186a2005360200200341f8046a41106a200136020020034184056a20063602002003200a360298052003200936028c0520032004360280052003200f3703f804200341f0096a41186a200b290300370300200341f0096a41106a2007290300370300200341f0096a41086a2002290300370300200320032903a8023703f009200341b0076a200341c8026a41b00210e9081a200341206a2011200341f8046a200341f0096a200341b0076a108208427f200d42b8177e201042e0b60d7e7c20033502284280ac1b7e7c42e0fdcfea017c220d20032903207c220e200e200d541b210e0b4201210d410021010c0b0b200341c8026a41186a2207200141196a290000370300200341c8026a41106a2205200141116a290000370300200341c8026a41086a2206200141096a290000370300200320012900013703c802200341b0076a41286a200241286a280200360200200341b0076a41206a200241206a290200370300200341b0076a41186a2201200241186a290200370300200341b0076a41106a220b200241106a290200370300200341b0076a41086a220c200241086a290200370300200320022902003703b00702400240200341b0076a10a705450d00200320032800a80236028802200320032900f0093703b0072003200341ab026a28000036008b022003200341f7096a2800003600b707200041186a41003a00002000420037030820002003280288023600192000411c6a200328008b02360000200041206a41023a0000200020032903b007370021200041286a20032800b7073600004201210d0c010b200341f8046a41186a22022007290300220d370300200341f8046a41106a22072005290300220e370300200341f8046a41086a22052006290300220f370300200320032903c80222103703f804200341bd076a200f370000200341c5076a200e370000200341cd076a200d3700002003410b3a00b007200320103700b507200341033a00b407200341b0076a10fe0120012002290300370300200b2007290300370300200c2005290300370300200320032903f8043703b007200341b0076a1083082101200320032800a802360288022003200341a8026a41036a28000036008b02200041186a41003a0000200041106a2001ad42d0be1a7e42d0deb8a7017c3703002000420137030820002003280288023600192000411c6a200328008b023600004200210d0b2000200d3703000c190b200341b0076a410510fd07200320032900b107370388022003200341b8076a28000036008f020c0a0b200720091042000b200341dc076a2014360200200341d8076a2012360200200341bd076a2201200341a8026a41086a2202290300370000200341c5076a220b200341a8026a41106a220c290300370000200341cd076a2208200341a8026a41186a220a290300370000200341063a00b4072003410b3a00b007200320032903a8023700b507200341b0076a10fe01200341f8006a41186a2211200a290300220d370300200341f8006a41106a220a200c290300220e370300200341f8006a41086a220c2002290300220f370300200320032903a80222173703782001200f370000200b200e3700002008200d370000200341033a00b4072003410b3a00b007200320173700b507200341b0076a10fe01200341b0076a41186a2011290300370300200341b0076a41106a200a290300370300200341b0076a41086a200c290300370300200320032903783703b007201042c8be0d7e200341b0076a108308ad42a0ce1a7e7c42c8b9d4d5017c210e0c030b200320032900f804370388022003200341ff046a28000036008f020c030b410221010c130b200341dc076a2008360200200341d8076a2001360200200341bd076a2201200341a8026a41086a2202290300370000200341c5076a220b200341a8026a41106a220c290300370000200341cd076a2208200341a8026a41186a220a290300370000200341063a00b4072003410b3a00b007200320032903a8023700b507200341b0076a10fe01200341f8046a41186a2211200a290300220d370300200341f8046a41106a220a200c290300220e370300200341f8046a41086a220c2002290300220f370300200320032903a80222173703f8042001200f370000200b200e3700002008200d370000200341033a00b4072003410b3a00b007200320173700b507200341b0076a10fe01200341b0076a41186a2011290300370300200341b0076a41106a200a290300370300200341b0076a41086a200c290300370300200320032903f8043703b007201042a89f0d7e200341b0076a108308ad42e8b61a7e7c42a0adc1c7017c210e0b4201210d410121010c010b4200210d410021010b0240200641ffffff3f71450d002004102e0b0240200541ffffff3f71450d002009102e0b2007450d010b200320032800f8013602e80120032003290388023703b8012003200328008f023600bf012003200341fb016a2800003600eb01200041186a20013a0000200041106a200e3703002000200d370308200020032802e8013600192000411c6a20032800eb01360000200041206a20023a0000200020032903b801370021200041286a20032800bf01360000200042013703000c0f0b200320032800f8013602e8012003200341fb016a2800003600eb01200041186a20013a0000200041106a200e3703002000200d370308200020032802e8013600192000411c6a20032800eb01360000200042003703000c0e0b20032d00b00721010240201141ffffff3f71450d002008102e0b201241ffffff3f71450d002014102e0b200d42ffffff3f83500d00200b102e0b200320032800b8013602f8012003200329038802370398012003200328008f0236009f012003200341bb016a2800003600fb01200041186a41003a000020004200370308200020032802f8013600192000411c6a20032800fb01360000200041206a20013a00002000200329039801370021200041286a200328009f01360000200042013703000c0b0b200341f0096a41186a2207200341c8026a41186a290300370300200341f0096a41106a220c200341c8026a41106a290300370300200341f0096a41086a2215200341c8026a41086a290300370300200320032903c8023703f00920092011470d02201141016a22012011490d00201141017422162001201620014b1b22014104200141044b1b220141ffffff3f712001462116200141057421010240024020110d00200341003602b0070c010b200341b8076a4101360200200320083602b007200320114105743602b4070b200341f8046a20012016200341b0076a107d20034180056a280200210120032802f8044101470d0120010d050b1038000b20032802fc042108200141057621110b200820094105746a220120032903f009370000200141186a2007290300370000200141106a200c290300370000200141086a2015290300370000200941016a21092006450d00200a20024d0d012014200a417f6a220a4105746a220129000021102001290008211720012900102118201420024105746a220241186a200141186a2900003700002002201837001020022017370008200220103700000b200341d5076a20032903a802370000200341bd076a200341c8026a41086a290300370000200341c5076a200341c8026a41106a290300370000200341cd076a200341c8026a41186a290300370000200341dd076a200341a8026a41086a290300370000200341e5076a200341a8026a41106a290300370000200341ed076a200341a8026a41186a290300370000200341013a00b4072003410b3a00b007200320032903c8023700b507200341fc076a200a360200200341f8076a2009360200200341f5076a20043a0000200341b0076a10fe01200341cc076a200a360200200341b0076a41186a2012360200200341b0076a41106a2009360200200341bc076a2011360200200320133602d007200320143602c407200320083602b8072003200f3703b007200341f8046a200341a8026a10800820032802f8042201200328028005200341b0076a10be05024020032802fc04450d002001102e0b0240201141ffffff3f71450d002008102e0b0240201241ffffff3f71450d002014102e0b200e42e8ce127e4280cbd9d7007c210e0240200d42ffffff3f83500d00200b102e0b200320032800b8013602f8012003200341bb016a2800003600fb01200041186a20053a0000200041106a200e37030020004201370308200020032802f8013600192000411c6a20032800fb01360000200042003703000c060b2002200a1042000b1036000b20032902b407210d20032802b00721010b200e42ffffff3f83500d00200b102e0b2005108b022005102e2003200341e3006a28000036004b20032003280060360248200041186a41003a000020004200370308200020032802483600192000411c6a200328004b360000200041246a200d370200200041206a2001360200200042013703000c010b2005108b022005102e2003200341f4006a28000036005b20032003280071360258200320032903603703482003200328006736004f200041186a41003a000020004200370308200020032802583600192000411c6a200328005b360000200041206a20013a000020002003290348370021200041286a200328004f360000200042013703000b200341a00a6a24000bec7b06017f017e147f057e1a7f017e23004190076b220324000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d00000e0700010203040507000b2003419c056a41013602002003420137028c052003419cc3cb0036028805200341043602840420034194c3cb0036028004200320034180046a3602980520034188056a41d4cec8001044000b200341c0016a41086a2001412c6a2802003602002003200141246a2902003703c001200341d0036a41186a200141196a290000370300200341d0036a41106a200141116a290000370300200341d0036a41086a200141096a290000370300200320012900013703d0032002411a6a2901002104200241196a2d00002105200241186a2d00002106200241166a2f01002107200241156a2d00002108200241146a2d00002109200241126a2f0100210a200241116a2d0000210b200241106a2d0000210c2002410e6a2f0100210d2002410d6a2d0000210e2002410c6a2d0000210f2002410a6a2f01002110200241096a2d00002111200241086a2d00002112200241066a2f01002113200241056a2d00002114200241046a2d00002115200241026a2f0100211620022d0001211720022d00002101200228022822022002280200417f6a2218360200024002400240024020010d00024020180d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b201741ff01714101470d01200320043703f801200320053a00f701200320063a00f601200320073b01f401200320083a00f301200320093a00f2012003200a3b01f0012003200b3a00ef012003200c3a00ee012003200d3b01ec012003200e3a00eb012003200f3a00ea01200320103b01e801200320113a00e701200320123a00e601200320133b01e401200320143a00e301200320153a00e201200320163b01e00120032802c8012202418080014d0d02200341f0036a41011098070c030b20180d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b200341023a00f0030c010b20034190066a20032802c0012217200210b001200341d8026a41186a20034190066a41186a290300370300200341d8026a41106a20034190066a41106a290300370300200341d8026a41086a20034190066a41086a29030037030020032003290390063703d80220034188056a200341d8026a1099072003280288052218200328029005108f0221010240200328028c05450d002018102e0b02402001450d00200341f0036a41021098070c010b2003200341d0036a36028c052003200341d8026a3602880520034180046a20034188056a108f0520034188056a20034180046a109a072003280288052218200328029005108f0221010240200328028c05450d002018102e0b02402001450d00200341f0036a41021098070c010b200341086a2002ad42004280c2d72f420010e80820034188056a200341e0016a200329030822194280c8afa0257c2204200341086a41086a2903002004201954ad7c221910c302200320032900890537039006200320034188056a41086a28000036009706024020032d00880522024106470d0020034188056a200341d8026a1099072003280288052202200328029005200341c0016a10c3050240200328028c05450d002002102e0b200341a8056a4100360200200341b4056a200341d8026a41086a290300370200200341bc056a200341d8026a41106a290300370200200341c4056a200341d8026a41186a290300370200200341d4056a200341d0036a41086a290300370200200341dc056a200341d0036a41106a290300370200200341e4056a200341d0036a41186a29030037020020032019370390052003200437038805200342083703a0052003410036029805200320032903d8023702ac05200320032903d0033702cc0520034184066a200341e0016a41186a290300370200200341fc056a200341e0016a41106a290300370200200341f4056a200341e0016a41086a290300370200200341013a008c06200320032903e0013702ec0520034190066a20034180046a109a07200328029006220220032802980620034188056a10bb050240200328029406450d002002102e0b20034188056a41086a41003a000020034191056a20032903800437000020034199056a20034180046a41086a290300370000200341a1056a20034180046a41106a290300370000200341a9056a20034180046a41186a290300370000200341163a00880520034188056a10fe01200341063a00f00320032802c401450d182017102e0c180b200341f0036a41086a200328009706360000200320023a00f00320032003290390063700f1030b024020032802c401450d0020032802c001102e0b20032d00f0034106460d1620032802f0032102200020032902f403370024200041206a2002360000200041186a41003a000020004200370308200042013703000c170b200341c0016a41186a200141196a290000370300200341c0016a41106a200141116a290000370300200341c0016a41086a200141096a290000370300200320012900013703c0012002411a6a2901002104200241196a2d00002105200241186a2d00002106200241166a2f01002107200241156a2d00002108200241146a2d00002109200241126a2f0100210a200241116a2d0000210b200241106a2d0000210c2002410e6a2f0100210d2002410d6a2d0000210e2002410c6a2d0000210f2002410a6a2f01002110200241096a2d00002111200241086a2d00002112200241066a2f01002113200241056a2d00002114200241046a2d00002115200241026a2f0100211620022d0001211720022d00002101200228022822022002280200417f6a2218360200024002400240024020010d00024020180d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b201741ff01714101470d01200320043703e803200320053a00e703200320063a00e603200320073b01e403200320083a00e303200320093a00e2032003200a3b01e0032003200b3a00df032003200c3a00de032003200d3b01dc032003200e3a00db032003200f3a00da03200320103b01d803200320113a00d703200320123a00d603200320133b01d403200320143a00d303200320153a00d203200320163b01d003200341f0036a200341c0016a109a0720034188056a20032802f003220120032802f80310b40520034190056a29030021042003290388052119200328029805210220034190066a2003419c056a41f40010e9081a20024102460d02200341d8026a20034190066a41f40010e9081a024020032802f403450d002001102e0b200341e0016a200341d8026a41f40010e9081a20032004370388042003201937038004200320023602900420034194046a200341e0016a41f40010e9081a200341e4046a200341d0036a412010ec08450d03200341b0016a41041098072003419c046a2802002202450d16200241306c450d16200328029804102e0c160b20180d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b200341023a00b0010c150b024020032802f403450d002001102e0b200341b0016a41031098070c130b20034188056a200341a4046a109907200328028805220220032802900510ff010240200328028c05450d002002102e0b20034188056a200341c0016a109a07200328028805220220032802900510ff010240200328028c05450d002002102e0b02402019200484500d00200341186a200341d0036a2019200410fb010b20034188056a41086a41033a000020034191056a20032903c00137000020034199056a200341c0016a41086a290300370000200341a1056a200341d0016a290300370000200341a9056a200341d8016a290300370000200341163a00880520034188056a10fe0102402003419c046a2802002202450d00200241306c450d00200328029804102e0b200341063a00b0010c140b200141386a2903002119200141306a290300211a200341c0016a41086a2001412c6a2802003602002003200141246a2902003703c001200341d0036a41186a200141196a290000370300200341d0036a41106a200141116a290000370300200341d0036a41086a200141096a290000370300200320012900013703d0032002411a6a2901002104200241196a2d00002105200241186a2d00002106200241166a2f01002107200241156a2d00002108200241146a2d00002109200241126a2f0100210a200241116a2d0000210b200241106a2d0000210c2002410e6a2f0100210d2002410d6a2d0000210e2002410c6a2d0000210f2002410a6a2f01002110200241096a2d00002111200241086a2d00002112200241066a2f01002113200241056a2d00002114200241046a2d00002115200241026a2f0100211620022d0001211720022d00002101200228022822022002280200417f6a221836020002400240024020010d00024020180d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b201741ff01714101470d01200320043703f801200320053a00f701200320063a00f601200320073b01f401200320083a00f301200320093a00f2012003200a3b01f0012003200b3a00ef012003200c3a00ee012003200d3b01ec012003200e3a00eb012003200f3a00ea01200320103b01e801200320113a00e701200320123a00e601200320133b01e401200320143a00e301200320153a00e201200320163b01e001200341e0016a10c3030d02200341023a00f0030c120b20180d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b200341023a00f0030c100b20034190066a20032802c00120032802c80110b001200341d8026a41186a20034190066a41186a290300370300200341d8026a41106a20034190066a41106a290300370300200341d8026a41086a20034190066a41086a29030037030020032003290390063703d80220034188056a200341d8026a1099072003280288052201200328029005108f0221020240200328028c05450d002001102e0b02402002450d00200341f0036a41021098070c100b2003200341d0036a36028c052003200341d8026a3602880520034180046a20034188056a108f0520034188056a200341d8026a1099072003280288052202200328029005200341c0016a10c3050240200328028c05450d002002102e0b2003290380042104200329038804211b200329039004211c200341a9056a200329039804370000200341a1056a201c37000020034199056a201b37000020034191056a200437000020034188056a41086a220141003a0000200341163a00880520034188056a10fe014130102c2202450d0d2002201a370320200220032903e001370100200241286a2019370300200241186a200341e0016a41186a2218290300370100200241106a200341e0016a41106a2217290300370100200241086a200341e0016a41086a220529030037010020034188056a41106a410036020020014200370300200341a4056a428180808010370200200341b4056a200341d8026a41086a290300370200200341bc056a200341d8026a41106a290300370200200341c4056a200341d8026a41186a2903003702002003420037038805200320023602a005200320032903d8023702ac05200341d4056a200341d0036a41086a290300370200200341dc056a200341d0036a41106a290300370200200341e4056a200341d0036a41186a290300370200200320032903d0033702cc0520034184066a2018290300370200200341fc056a2017290300370200200341f4056a2005290300370200200320032903e0013702ec05200341003a008c0620034190066a20034180046a109a07200328029006220120032802980620034188056a10bb050240200328029406450d002001102e0b2002102e200341063a00f00320032802c401450d1020032802c001102e0c100b200141306a2903002119200141286a290300211a200341c0016a41186a200141196a290000370300200341c0016a41106a200141116a290000370300200341c0016a41086a200141096a290000370300200320012900013703c0012002411a6a2901002104200241196a2d00002105200241186a2d00002106200241166a2f01002107200241156a2d00002108200241146a2d00002109200241126a2f0100210a200241116a2d0000210b200241106a2d0000210c2002410e6a2f0100210d2002410d6a2d0000210e2002410c6a2d0000210f2002410a6a2f01002110200241096a2d00002111200241086a2d00002112200241066a2f01002113200241056a2d00002114200241046a2d00002115200241026a2f0100211620022d0001211720022d00002101200228022822022002280200417f6a2218360200024002400240024002400240024002400240024020010d00024020180d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b201741ff01714101470d01200320043703e803200320053a00e703200320063a00e603200320073b01e403200320083a00e303200320093a00e2032003200a3b01e0032003200b3a00df032003200c3a00de032003200d3b01dc032003200e3a00db032003200f3a00da03200320103b01d803200320113a00d703200320123a00d603200320133b01d403200320143a00d303200320153a00d203200320163b01d003200341d0036a10c303450d0120034190066a41186a200341c0016a41186a29030037030020034190066a41106a200341c0016a41106a29030037030020034190066a41086a200341c0016a41086a290300370300200320032903c00137039006200341f0036a20034190066a109b0720034188056a20032802f003220120032802f80310b40520034188056a41086a2903002104200329038805211b200328029805210220034190066a2003419c056a41f40010e9081a20024102460d02200341d8026a20034190066a41f40010e9081a024020032802f403450d002001102e0b200341e0016a200341d8026a41f40010e9081a20032004370388042003201b37038004200320023602900420034194046a200341e0016a41f40010e9081a200341d8026a41186a2201200341d0036a41186a290300370300200341d8026a41106a2218200341d0036a41106a290300370300200341d8026a41086a2217200341d0036a41086a290300370300200320032903d0033703d80241002102200328029804210520034180046a41206a28020022060e020504030b20180d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b200341023a00b0010c150b024020032802f403450d002001102e0b200341b0016a410310980720032d00b0014106460d0620032902b40121040c140b410021022006210103402001410176221720026a2118201820022005201841306c6a200341d8026a412010ec084101481b2102200120176b220141014b0d000b0b2005200241306c6a2201200341d8026a412010ec082218450d0220034188056a41186a200341d8026a41186a29030037030020034188056a41106a200341d8026a41106a29030037030020034188056a41086a200341d8026a41086a290300370300200320032903d8023703880520034188056a2101200620022018411f766a22184f0d01201820061045000b20034188056a41186a200129030037030020034188056a41106a201829030037030020034188056a41086a2017290300370300200320032903d802370388054100211820034188056a21010b0240024020062003419c046a280200470d00200641016a22022006490d10200641017422172002201720024b1b22024104200241044b1bad42307e2204422088a74541037421022004a721170240024020060d0020034100360290060c010b20034190066a41086a410836020020032005360290062003200641306c360294060b200341e0016a2017200220034190066a107d200341e8016a280200210220032802e0014101460d01200320032802e4012205360298042003200241306e36029c040b2005201841306c6a220241306a2002200620186b41306c10ea081a200141086a2903002104200141106a290300211b200141186a290300211c2001290300211d200241286a20193703002002201a370320200241186a201c370300200241106a201b370300200241086a20043703002002201d3703002003200641016a3602a0040c020b2002450d0e0c0f0b200620024d0d0320032901da02210420032901e202211b20032801ea02211820032f01ee02211720032903f002211c200120032f01d8023b01002005200241306c6a2202201a3703202002201c370318200220173b0116200220183601122002201b37010a20022004370102200241286a20193703000b20034180046a41186a2117200341a8066a2201420037030020034190066a41106a2202420037030020034190066a41086a221842003703002003420037039006200341e0016a418ef9c00041101081022018200341e0016a41086a2205290000370300200320032900e00137039006200341e0016a41c7c3cb00410710810220012005290000370300200220032900e00137030020034188056a20034190066a10f102200329028c05210420032003280288052201410820011b221836029005200320183602880520032004420020011b22043e028c05200320182004422088a74106746a3602940520034190066a20034188056a10c00120032003280290062201360288052003200120032802980622184105746a36028c050240024020180d00410021180c010b2003200141206a36028805200121180b200320183602e0012017200341e0016a20034188056a10bb01024020032802940641ffffff3f71450d002001102e0b200341a8066a420037030020034190066a41106a420037030020034190066a41086a220142003703002003420037039006200341e0016a418ef9c00041101081022001200341e0016a41086a2218290000370300200320032900e00137039006200341e0016a41c7c3cb004107108102200241086a2018290000370000200220032900e00137000020034188056a20034190066a10f102200329028c05210420032003280288052201410820011b221836029005200320183602880520032004420020011b22043e028c05200320182004422088a74106746a3602940520034190066a20034188056a10c0012003280298062101024020032802940641ffffff3f71450d00200328029006102e0b024020032802a004200141016a410176490d002003280290044101460d00200341a8066a4200370300200341a0066a420037030020034190066a41086a220142003703002003420037039006200341e0016a41d9fcc60041061081022001200341e0016a41086a2218290000370300200320032900e00137039006200341e0016a4180f4cb004106108102200241086a2018290000370000200220032900e001370000200341286a20034190066a4120108e0220034101360290042003200328022c41c0f0006a41c0f00020032802281b3602940420032903c001210420032903c801211920032903d001211a200341a9056a20032903d801370000200341a1056a201a37000020034199056a201937000020034191056a200437000020034188056a41086a41013a0000200341163a00880520034188056a10fe010b20034188056a20034180046a41880110e9081a20034190066a200341c0016a109a07200328029006220220032802980620034188056a10bb050240200328029406450d002002102e0b0240200341a4056a2802002202450d00200241306c450d0020032802a005102e0b200341063a00b0010b20004200370308200020032800a901360019200041186a41003a00002000411c6a200341ac016a280000360000200042003703000c140b200141196a290000211d200141186a2d0000211e200141176a2d0000211f200141156a2f00002120200141146a2d00002121200141136a2d00002122200141116a2f00002123200141106a2d000021242001410f6a2d000021252001410d6a2f000021262001410c6a2d000021272001410b6a2d00002128200141096a2f00002129200141086a2d0000212a200141076a2d0000212b200141056a2f0000212c200141046a2d0000212d200141036a2d0000212e20022d0001211720022d0000211820012f0001212f200228022822022002280200417f6a2201360200024002400240024020180d00024020010d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b201741ff01714101470d012003201d3703a8062003201e3a00a7062003201f3a00a606200320203b01a406200320213a00a306200320223a00a206200320233b01a006200320243a009f06200320253a009e06200320263b019c06200320273a009b06200320283a009a06200320293b0198062003202a3a0097062003202b3a0096062003202c3b0194062003202d3a0093062003202e3a0092062003202f3b019006200341d0036a20034190066a109b0720034188056a20032802d003220120032802d80310b40520034190056a29030021042003290388052119200328029805210220034190066a2003419c056a41f40010e9081a20024102460d02200341d8026a20034190066a41f40010e9081a024020032802d403450d002001102e0b200341e0016a200341d8026a41f40010e9081a20032004370388042003201937038004200320023602900420034194046a200341e0016a41f40010e9081a20024101470d06200341a8066a22014200370300200341a0066a2202420037030020034190066a41086a221842003703002003420037039006200341e0016a41d9fcc60041061081022018200341e0016a41086a2217290000370300200320032900e00137039006200341e0016a4180f4cb00410610810220012017290000370300200220032900e001370300200341f0006a20034190066a4120108e022003280274410020032802701b2003280294044f0d03200341f0036a41061098070c070b20010d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22012001280200417f6a220136020020010d002002102e0b200341023a00f0030c070b024020032802d403450d002001102e0b200341f0036a41031098070c050b20034188056a200341a4046a109907200328028805220120032802900510ff010240200328028c05450d002001102e0b2003201d3703a0052003201e3a009f052003201f3a009e05200320203b019c05200320213a009b05200320223a009a05200320233b019805200320243a009705200320253a009605200320263b019405200320273a009305200320283a009205200320293b0190052003202a3a008f052003202b3a008e052003202c3b018c052003202d3a008b052003202e3a008a052003202f3b01880520034190066a20034188056a109b07200328029006220120032802980610ff010240200328029406450d002001102e0b20034188056a20034180046a41880110e9081a200341c0016a41086a20034188056a41206a280200360200200320032903a0053703c001200341a8066a420037030020034190066a41106a420037030020034190066a41086a220142003703002003420037039006200341e0016a418ef9c00041101081022001200341e0016a41086a2218290000370300200320032900e00137039006200341e0016a41c7c3cb004107108102200241086a2018290000370000200220032900e001370000200341d8026a20034190066a10f10220032902dc022104200320032802d8022202410820021b220136029806200320013602900620032004420020021b22043e029406200320012004422088a74106746a36029c06200341d8026a20034190066a10c001200320032802d8022202360290062003200220032802e00222014105746a360294060240024020010d00410021010c010b2003200241206a36029006200221010b200320013602e001200341c0016a200341e0016a20034190066a10bb01024020032802dc0241ffffff3f71450d002002102e0b20032802c001211302400240024020032802c801221641144b0d00201641014d0d0a20132016417f6a221841306c6a2107410021170340201620182202417f6a2218490d030240201620186b22094102490d002013200241306c6a220241206a22052903002013201841306c6a220141206a2206290300221a5a200241286a22082903002219200141286a220a29030022045a20192004511b0d0020034190066a41186a220b200141186a220c29030037030020034190066a41106a220d200141106a220e29030037030020034190066a41086a220f200141086a22102903003703002003200129030037039006200120022903003703002010200241086a290300370300200e200241106a290300370300200c200241186a29030037030020062005290300370300200a2008290300370300024020094103490d002017417f6a210841002101200721020340200241d0006a2205290300201a5a200241d8006a2206290300221920045a20192004511b0d0120082001460d05200241286a2006290300370300200241206a2005290300370300200241186a200241c8006a290300370300200241106a200241c0006a290300370300200241086a200241386a2903003703002002200241306a22052903003703002005210220172001417f6a2201470d000b200521020b2002201a3703202002200329039006370300200241286a2004370300200241186a200b290300370300200241106a200d290300370300200241086a200f2903003703000b200741506a21072017417f6a211720180d000c0b0b0b2016410176ad42307e2204422088a70d0c2004a72230417f4c0d0c2030102c2231450d0d201341506a2132201341907f6a21334104210c410021344100210a20162110034020102107410021104101210602402007417f6a2217450d0002400240024002400240024002402013201741306c6a220241206a290300200741306c220820136a41406a2201290300221954200241286a290300221a200141086a290300220454201a2004511b0d002007417e6a2106203320086a210241002110410021010340024020062001470d00200721060c090b20192002290300221b5a21182004200241086a290300221a5121172004201a5a2105200241506a2102200141016a2101201b2119201a21042018200520171b0d000b200141016a21062001417f7320076a21170c010b203320086a210202400340024020174101470d00410021170c020b20192002290300221b5421012004200241086a290300221a5121182004201a542105200241506a21022017417f6a2117201b2119201a21042001200520181b0d000b0b20072017490d01200720164b0d02200720176b22064101762218450d00203220086a21022013201741306c6a2101034020034190066a41286a2205200141286a220829030037030020034190066a41206a2209200141206a220b29030037030020034190066a41186a220d200141186a220e29030037030020034190066a41106a220f200141106a221029030037030020034190066a41086a2211200141086a22122903003703002003200129030037039006200241086a22142903002104200241106a22152903002119200241186a2235290300211a200241206a2236290300211b200241286a2237290300211c200120022903003703002008201c370300200b201b370300200e201a370300201020193703002012200437030020372005290300370300203620092903003703002035200d2903003703002015200f290300370300201420112903003703002002200329039006370300200241506a2102200141306a21012018417f6a22180d000b0b024020170d00201721100c060b0240200641094d0d00201721100c060b200720164b0d03201720076b21182013201741306c6a2108034020072017417f6a2210490d050240200720106b22064102490d002013201741306c6a220241206a22172903002013201041306c6a220141206a2205290300221a5a200241286a22092903002219200141286a220b29030022045a20192004511b0d0020034190066a41186a220d200141186a220e29030037030020034190066a41106a220f200141106a221129030037030020034190066a41086a2212200141086a22142903003703002003200129030037039006200120022903003703002014200241086a2903003703002011200241106a290300370300200e200241186a29030037030020052017290300370300200b2009290300370300024020064103490d0041012101200821020340200241d0006a2217290300201a5a200241d8006a2205290300221920045a20192004511b0d01201820016a4101460d06200241286a2005290300370300200241206a2017290300370300200241186a200241c8006a290300370300200241106a200241c0006a290300370300200241086a200241386a2903003703002002200241306a2217290300370300201721022018200141016a22016a0d000b201721020b2002201a3703202002200329039006370300200241286a2004370300200241186a200d290300370300200241106a200f290300370300200241086a20122903003703000b2010450d06200841506a21082018417f6a2118201021172006410a4f0d060c000b0b2017200741e4d1cc001057000b2007201641e4d1cc00104d000b2001200641d4d1cc00103c000b20072017417f6a2210490d002007201641f4d1cc00104d000b2010200741f4d1cc001057000b0240200a2034470d00203441016a22022034490d0e203441017422012002200120024b1b22024104200241044b1b220241ffffffff01712002464102742101200241037421020240024020340d0020034100360290060c010b20034104360298062003200c3602900620032034410374360294060b200341d8026a2002200120034190066a107d20032802e0022102024020032802d8024101470d0020020d100c0f0b20032802dc02210c200241037621340b200c200a4103746a2202200636020420022010360200200a41016a2211210a024020114102490d0002400240024003400240024002400240200c2011220a417f6a22114103746a2202280200450d00200a410374200c6a220541746a2802002217200228020422014d0d00200a41024d0d08200c200a417d6a22024103746a2802042218200120176a4d0d01200a41034d0d08200541646a280200201820176a4b0d080c010b200a4103490d0120022802042101200c200a417d6a22024103746a28020421180b20182001490d010b200a417e6a21020b0240200a200241016a22124d0d00200a20024d0d02200c20024103746a220d2802042214200d2802006a2202200c20124103746a220e280200220f490d03200220164b0d04200d41046a21152013200f41306c6a2209200e280204220b41306c22016a2117200241306c2118024002402002200f6b2206200b6b2202200b490d0020312009200110e908220820016a210502400240200b4101480d002006200b4a0d010b20092102200821010c020b201320186a210720082101200921020340200220172001201741206a290300200141206a29030054201741286a2903002204200141286a29030022195420042019511b22061b2218290300370300200241086a201841086a290300370300200241106a201841106a290300370300200241186a201841186a290300370300200241206a201841206a290300370300200241286a201841286a2903003703002001200141306a20061b2101200241306a2102201741306a201720061b221720074f0d02200520014b0d000c020b0b20312017200241306c220110e908220620016a210502400240200b4101480d00200241014e0d010b20172102200621010c010b203220186a21182017210203402018200241506a2207200541506a2208200541706a2201290300200241706a221729030054200141086a2903002204201741086a29030022195420042019511b22171b2201290300370300201841086a200141086a290300370300201841106a200141106a290300370300201841186a200141186a290300370300201841206a200141206a290300370300201841286a200141286a2903003703002005200820171b2105024020092007200220171b2202490d00200621010c020b201841506a21182006210120062005490d000b0b20022001200520016b221820184130706b10e9081a20152014200b6a360200200d200f360200200e200e41086a200a2012417f736a41037410ea081a4101210a201141014d0d050c010b0b2012200a4184d2cc00103c000b2002200a4194d2cc00103c000b200f200241a4d2cc001057000b2002201641a4d2cc00104d000b2010450d090c000b0b410120016b200941d4d1cc00103c000b2018201641c4d1cc001056000b2002200641ecd3c800103c000b200341d0036a41186a2218200141196a290000370300200341d0036a41106a2217200141116a290000370300200341d0036a41086a2205200141096a290000370300200320012900013703d0032002280228210102400240024002400240024002400240024020022d00000e0400010203020b20022d0001210220012001280200417f6a2206360200024020060d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22062006280200417f6a220636020020060d002001102e0b200241ff0171450d024110102c2202450d11200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1120014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a221836020020180d012002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22182018280200417f6a221836020020180d012002102e0c010b200241046a2d00002106200241086a28020021072002410c6a280200210820012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200641ff01710d00200741017420084b0d020b4110102c2202450d10200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1020014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a221836020020180d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22182018280200417f6a221836020020180d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b200341023a00f0030c010b20034188056a41186a201829030037030020034188056a41106a201729030037030020034188056a41086a2005290300370300200320032903d00337038805200341c0016a20034188056a109b0720034188056a20032802c001220220032802c801220110b405024020032802980522184102460d002002200110ff0120034190056a2903002104200329038805211920034190066a20034188056a41146a41f40010e9081a200341d8026a20034190066a41f40010e9081a024020032802c401450d002002102e0b200341e0016a200341d8026a41f40010e9081a20032018360290042003201937038004200320043703880420034180046a41146a200341e0016a41f40010e9081a2019200484500d0320034188016a200341e4046a2019200410cb022003290388012104200320034188016a41086a290300221937039005200320043703880520042019844200520d02200320034188056a3602900620034190066a10cc020c030b20034190066a2003419c056a41f40010e9081a024020032802c401450d002002102e0b200341f0036a410310980720032d00f0034106460d0320032902f40321040b20032802f003210220002004370024200041206a2002360000200041186a41003a000020004200370308420121040c030b200342f0f2bda1a7ee9cb9f9003703900620034188056a20034190066a10cd02200341f8006a20034188056a2004201910fd01200341a0066a200341f8006a41086a290300221b20197d2003290378221a200454ad7d2019201b7d2004201a54ad7d201a200456201b201956201b2019511b22021b3703002003201a20047d2004201a7d20021b3703980620032002ad3703900620034190066a41086a21010240024020020d00200320013602d802200341d8026a10cc020c010b200320013602d802200341d8026a10ce020b200341a0056a201937030020034198056a200437030020034190056a41063a00002003410e3a00880520034188056a10fe010b20034188056a200341a4046a109907200328028805220220032802900510ff010240200328028c05450d002002102e0b20034180046a41086a2903002104200329038004211920034188056a41086a41043a000020034191056a20032903d00337000020034199056a200341d0036a41086a290300370000200341a1056a200341e0036a290300370000200341a9056a200341e8036a290300370000200341b1056a20032902e404370000200341b9056a200341ec046a290200370000200341c1056a200341f4046a290200370000200341c9056a200341fc046a290200370000200341163a008805200341e0056a2004370300200341d8056a201937030020034188056a10fe0102402003419c046a2802002202450d00200241306c450d00200328029804102e0b200341063a00f0030b42002104200042003703082000200328008805360019200041186a41003a00002000411c6a2003418b056a2800003600000b200020043703000c110b200341f0036a41051098070b2003419c046a2802002202450d00200241306c450d00200328029804102e0b20032d00f0034106460d0320032902f40321040b20032802f003210220002004370024200041206a2002360000200041186a41003a000020004200370308200042013703000c0d0b0240203441ffffffff0171450d00200c102e0b2030413070210220304130490d0020302002460d002031102e0b200342f0f2bda1a7ee9cb9f90037039006200341e0016a20034190066a10cd02200342f0f2bda1a7ee9cb9f90037039006200341d8026a20034190066a10cd02200341d0036a200341d8026a10c80220034190066a20032802d003220220032802d80310c9022003290390062104200341a0066a2903002119200329039806211a024020032802d403450d002002102e0b20032802c8012202200241017622014d0d0120032802c001200141306c6a2202290320221b4200201a4200200442015122011b22044280b8d0df5a7c221a201a2004562019420020011b221920044280c8afa02554ad7d221a201956200442ffc7afa025561b22011b221c56200241286a29030022044200201a20011b22195620042019511b21020240200329038805221a20034190056a290300223884500d00200341e0006a200341ec056a201a203810fb010b2019200420021b2119201c201b20021b2104024020032d008c06450d0020034188056a41e4006a2202200341cc056a412010ec08450d00200341d0006a2004201942e400420010e608200341c0006a2004201942e400420010e708200341306a2003290340200341c0006a41086a2903004214420010e80820034190066a200341e0016a20022003290330221b2003280250220141ffff037141056e200141146c41fcff037141e4007041324b6aad42ff01837c221a200341306a41086a290300201a201b54ad7c221b410010ca022019201b7d2004201a54ad7d21192004201a7d21040b200341d8026a200341e0016a200341cc056a20042019410010ca02200341b1066a201d370000200341b0066a201e3a0000200341af066a201f3a0000200341ad066a20203b0000200341ac066a20213a0000200341ab066a20223a0000200341a9066a20233b0000200341a8066a20243a0000200341a7066a20253a0000200341a5066a20263b0000200341a4066a20273a0000200341a3066a20283a0000200341a1066a20293b0000200341a0066a202a3a00002003419f066a202b3a00002003419d066a202c3b00002003419c066a202d3a00002003419b066a202e3a000020034199066a202f3b000020034198066a41023a0000200341163a009006200341e0066a2004370300200341e8066a2019370300200341d1066a200341e4056a290200370000200341c9066a200341dc056a290200370000200341c1066a200341d4056a290200370000200341b9066a20032902cc0537000020034190066a10fe01024020032802c4012202450d00200241306c450d0020032802c001102e0b200341063a00f0030b20004200370308200020032800b001360019200041186a41003a00002000411c6a200341b3016a280000360000200042003703000c0a0b2001200241fcd3c800103c000b1038000b1036000b20032802b001210220002004370024200041206a2002360000200041186a41003a000020004200370308200042013703000c060b024020032802c401450d0020032802c001102e0b20032d00f0034106460d0020032802f0032102200020032902f403370024200041206a2002360000200041186a41003a000020004200370308200042013703000c050b20004200370308200020032800b001360019200041186a41003a00002000411c6a200341b3016a280000360000200042003703000c040b20032d00b0014106460d0120032902b40121040b20032802b001210220002004370024200041206a2002360000200041186a41003a000020004200370308200042013703000c020b20004200370308200020032800a901360019200041186a41003a00002000411c6a200341ac016a280000360000200042003703000c010b20004200370308200020032800b001360019200041186a41003a00002000411c6a200341b3016a280000360000200042003703000b20034190076a24000b8e7906097f017e0b7f037e037f017e230041c0026b22032400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d00000e080001020304050607000b200341d4016a4101360200200342013702c4012003419cc3cb003602c0012003410436029c0120034194c3cb0036029801200320034198016a3602d001200341c0016a41a4c3cb001044000b20034198016a41186a200141196a29000037030020034198016a41106a200141116a29000037030020034198016a41086a200141096a29000037030020032001290001370398012002410e6a2f010021042002410d6a2d000021052002410c6a2d000021062002410a6a2f01002107200241096a2d00002108200241086a2d00002109200241046a2d0000210a20022802282101024020022d0000220b0d002002411a6a290100210c200241196a2d0000210b200241186a2d0000210d200241166a2f0100210e200241156a2d0000210f200241146a2d00002110200241126a2f01002111200241116a2d00002112200241106a2d00002113200241066a2f01002114200241056a2d00002115200241026a2f0100211620022d0001210220012001280200417f6a2217360200024020170d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22172017280200417f6a221736020020170d002001102e0b2003200c3703d8012003200b3a00d7012003200d3a00d6012003200e3b01d4012003200f3a00d301200320103a00d201200320113b01d001200320123a00cf01200320133a00ce01200320043b01cc01200320053a00cb01200320063a00ca01200320073b01c801200320083a00c701200320093a00c601200320143b01c401200320153a00c3012003200a3a00c201200320163b01c0010240200241ff01710d004103210b0c010b4110102c2202450d18200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1820014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220d3602004100210b200d0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220d200d280200417f6a220d360200200d0d002002102e0b0240024002400240200b417f6a0e03000102010b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200a41ff01710d00200741107420084108747220097241017420044110742005410874722006724b0d020b4110102c2202450d1a200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1a20014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220b360200200b0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220b200b280200417f6a220b360200200b0d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b410221020c010b200341d8016a22024200370300200341d0016a22014200370300200341c0016a41086a220b4200370300200342003703c001200341c8006a41b4c3cb004113108102200b200341c8006a41086a220a290000370300200320032900483703c001200341c8006a41c7c3cb0041071081022002200a29000037030020012003290048370300200341f8006a200341c0016a1088030240200328027822040d0041002106200341003602302003420137032841012104410021050c170b2003200329027c220c37022c20032004360228200ca721054100210202400240200c422088a722060e021801000b410021022006210103402001410176220a20026a210b200b20022004200b4105746a20034198016a412010ec084101481b21022001200a6b220141014b0d000b0b0240200420024105746a20034198016a412010ec082201450d00200341c0016a41186a20034198016a41186a290300370300200341c0016a41106a20034198016a41106a290300370300200341c0016a41086a20034198016a41086a29030037030020032003290398013703c001200620022001411f766a220b490d08200341c0016a21010c180b0240200541ffffff3f71450d002004102e0b410321020b200041cec3cb00360024200041123b002120004200370308200041286a410d360000200041206a20023a0000200041186a41003a0000200042013703000c180b200341f8006a41186a200141196a290000370300200341f8006a41106a200141116a290000370300200341f8006a41086a200141096a290000370300200320012900013703782002410e6a2f010021042002410d6a2d000021052002410c6a2d000021062002410a6a2f01002107200241096a2d00002108200241086a2d00002109200241046a2d0000210a20022802282101024020022d0000220b0d002002411a6a290100210c200241196a2d0000210b200241186a2d0000210d200241166a2f0100210e200241156a2d0000210f200241146a2d00002110200241126a2f01002111200241116a2d00002112200241106a2d00002113200241066a2f01002114200241056a2d00002115200241026a2f0100211620022d0001210220012001280200417f6a2217360200024020170d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22172017280200417f6a221736020020170d002001102e0b2003200c3703d8012003200b3a00d7012003200d3a00d6012003200e3b01d4012003200f3a00d301200320103a00d201200320113b01d001200320123a00cf01200320133a00ce01200320043b01cc01200320053a00cb01200320063a00ca01200320073b01c801200320083a00c701200320093a00c601200320143b01c401200320153a00c3012003200a3a00c201200320163b01c0010240200241ff01710d004103210b0c010b4110102c2202450d17200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1720014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220d3602004100210b200d0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220d200d280200417f6a220d360200200d0d002002102e0b0240024002400240200b417f6a0e03000102010b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200a41ff01710d00200741107420084108747220097241017420044110742005410874722006724b0d020b4110102c2202450d19200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1920014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220b360200200b0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220b200b280200417f6a220b360200200b0d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b410221020c010b200341d8016a22024200370300200341d0016a22014200370300200341c0016a41086a220b4200370300200342003703c001200341c8006a41b4c3cb004113108102200b200341c8006a41086a220a290000370300200320032900483703c001200341c8006a41c7c3cb0041071081022002200a2900003703002001200329004837030020034198016a200341c0016a1088030240024020032802980122040d0020034100360210200342013703080c010b2003200329029c01220c37020c20032004360208200ca741ffffff3f71210641002102024002400240200c422088a722050e020201000b410021022005210103402001410176220a20026a210b200b20022004200b4105746a200341f8006a412010ec084101481b21022001200a6b220141014b0d000b0b200420024105746a200341f8006a412010ec080d00200520024d0d09200420024105746a2201200141206a20052002417f736a41057410ea081a20032005417f6a2202360210200341c0016a41186a220b4200370300200341c0016a41106a220a4200370300200341c0016a41086a22074200370300200342003703c00120034198016a41b4c3cb004113108102200720034198016a41086a220129000037030020032003290098013703c00120034198016a41c7c3cb004107108102200b2001290000370300200a200329009801370300200341c0016a200341086a109a03200b200341f8006a41186a290300370300200a200341f8006a41106a2903003703002007200341f8006a41086a290300370300200320032903783703c001200341c0016a41012004200210840820034198016a41186a220a420037030020034198016a41106a22074200370300200142003703002003420037039801200341c8006a41b4c3cb0041131081022001200341c8006a41086a220b2900003703002003200329004837039801200341c8006a41dbc3cb004105108102200a200b29000037030020072003290048370300200341c0016a20034198016a412010f40220032d00c0012108200341c8006a41186a2209200341d9016a290000370300200341c8006a41106a220d200341d1016a290000370300200b200341c9016a290000370300200320032900c101370348024020084101470d00200341286a41186a2009290300220c370300200341286a41106a200d2903002218370300200341286a41086a200b290300221937030020032003290348221a370328200a200c37030020072018370300200120193703002003201a370398014100210102400240024002402005417f6a0e020201000b4100210103402002410176220a20016a210b200b20012004200b4105746a20034198016a412010ec084101481b21012002200a6b220241014b0d000b0b200420014105746a20034198016a412010ec08450d010b200341e0006a22024200370300200341d8006a22014200370300200341c8006a41086a220b420037030020034200370348200341c0016a41b4c3cb004113108102200b200341c0016a41086a220a290000370300200320032900c001370348200341c0016a41dbc3cb0041051081022002200a290000370300200120032900c001370300200341c8006a412010ff010c010b200341d9016a200341b0016a290300370000200341d1016a200341a8016a290300370000200341c9016a200341a0016a29030037000020032003290398013700c101200341013a00c001200341c0016a1086080b2003418d023b01c001200341c0016a10fe0102402006450d002004102e0b200041186a41003a000020004200370308200020032800683600192000411c6a200341eb006a280000360000200042003703000c1a0b2006450d002004102e0b410321020b200041e0c3cb0036002420004192023b002120004200370308200041286a4109360000200041206a20023a0000200041186a41003a0000200042013703000c170b200341086a41186a200141196a290000370300200341086a41106a200141116a290000370300200341086a41086a200141096a29000037030020032001290001370308200341f8006a41186a200141396a290000370300200341f8006a41106a200141316a290000370300200341f8006a41086a200141296a2900003703002003200141216a2900003703782002410e6a2f010021042002410d6a2d000021052002410c6a2d000021062002410a6a2f01002107200241096a2d00002108200241086a2d00002109200241046a2d0000210a20022802282101024020022d0000220b0d002002411a6a290100210c200241196a2d0000210b200241186a2d0000210d200241166a2f0100210e200241156a2d0000210f200241146a2d00002110200241126a2f01002111200241116a2d00002112200241106a2d00002113200241066a2f01002114200241056a2d00002115200241026a2f0100211620022d0001210220012001280200417f6a2217360200024020170d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22172017280200417f6a221736020020170d002001102e0b2003200c3703d8012003200b3a00d7012003200d3a00d6012003200e3b01d4012003200f3a00d301200320103a00d201200320113b01d001200320123a00cf01200320133a00ce01200320043b01cc01200320053a00cb01200320063a00ca01200320073b01c801200320083a00c701200320093a00c601200320143b01c401200320153a00c3012003200a3a00c201200320163b01c0010240200241ff01710d004103210b0c010b4110102c2202450d16200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1620014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220d3602004100210b200d0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220d200d280200417f6a220d360200200d0d002002102e0b024002400240200b417f6a0e03000102010b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200a41ff01710d00200741107420084108747220097241017420044110742005410874722006724b0d020b4110102c2202450d17200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1720014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220b360200200b0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220b200b280200417f6a220b360200200b0d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b410221020c100b200341086a200341f8006a412010ec08450d11200341d8016a22024200370300200341d0016a22014200370300200341c0016a41086a220b4200370300200342003703c001200341c8006a41b4c3cb004113108102200b200341c8006a41086a220a290000370300200320032900483703c001200341c8006a41c7c3cb0041071081022002200a2900003703002001200329004837030020034198016a200341c0016a108803024020032802980122040d0020034100360270200342013703684109210641e0c3cb002107410121050c0f0b2003200329029c01220c37026c2003200436026841012105200ca741ffffff3f7121094100210241e0c3cb0021074109210602400240200c422088a722080e020f01000b410021022008210103402001410176220a20026a210b200b20022004200b4105746a200341086a412010ec084101481b21022001200a6b220141014b0d000b0b200420024105746a200341086a412010ec080d0d4100210541002101024020080e02110d000b410021012008210b0340200b410176220620016a210a200a20012004200a4105746a200341f8006a412010ec084101481b2101200b20066b220b41014b0d000c0d0b0b2002410e6a2f010021072002410d6a2d000021082002410c6a2d000021092002410a6a2f0100210d200241096a2d0000210e200241086a2d0000210f200241046a2d000021042001410c6a2802002105200141086a2802002106200141046a280200210a20022802282101024020022d0000220b0d002002411a6a290100210c200241196a2d0000210b200241186a2d00002110200241166a2f01002111200241156a2d00002112200241146a2d00002113200241126a2f01002114200241116a2d00002115200241106a2d00002116200241066a2f01002117200241056a2d0000211b200241026a2f0100211c20022d0001210220012001280200417f6a221d3602000240201d0d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a221d201d280200417f6a221d360200201d0d002001102e0b2003200c3703d8012003200b3a00d701200320103a00d601200320113b01d401200320123a00d301200320133a00d201200320143b01d001200320153a00cf01200320163a00ce01200320073b01cc01200320083a00cb01200320093a00ca012003200d3b01c8012003200e3a00c7012003200f3a00c601200320173b01c4012003201b3a00c301200320043a00c2012003201c3b01c0010240200241ff01710d004103210b0c010b4110102c2202450d15200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1520014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a22103602004100210b20100d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a22102010280200417f6a221036020020100d002002102e0b024002400240200b417f6a0e03000102010b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200441ff01710d00200d411074200e41087472200f7241017420074110742008410874722009724b0d020b4110102c2202450d16200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1620014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220b360200200b0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220b200b280200417f6a220b360200200b0d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200641ffffff3f71450d00200a102e0b20004200370308200041206a41023a0000200041186a41003a0000200042013703000c160b200a200510fc02200341c0016a41186a22014200370300200341c0016a41106a220b4200370300200341c0016a41086a22044200370300200342003703c001200341c8006a41b4c3cb0041131081022004200341c8006a41086a2202290000370300200320032900483703c001200341c8006a41c7c3cb00410710810220012002290000370300200b200329004837030020034198016a200341c0016a108803200a20052003280298012201410120011b2208200329029c01420020011b220c422088a710fc0720034198016a41186a2201420037030020034198016a41106a220b420037030020034198016a41086a220442003703002003420037039801200341c8006a41b4c3cb004113108102200420022900003703002003200329004837039801200341c8006a41dbc3cb00410510810220012002290000370300200b2003290048370300200341c0016a20034198016a412010f40220032d00c0012107200341c8006a41186a2209200341d9016a290000370300200341c8006a41106a220d200341d1016a2900003703002002200341c9016a290000370300200320032900c101370348024020074101470d00200341286a41186a20092903002218370300200341286a41106a200d2903002219370300200341286a41086a2002290300221a37030020032003290348221e37032820012018370300200b20193703002004201a3703002003201e3703980141002102024002400240024020050e020201000b410021022005210103402001410176220420026a210b200b2002200a200b4105746a20034198016a412010ec084101481b2102200120046b220141014b0d000b0b200a20024105746a20034198016a412010ec08450d010b200341e0006a22024200370300200341d8006a22014200370300200341c8006a41086a220b420037030020034200370348200341c0016a41b4c3cb004113108102200b200341c0016a41086a2204290000370300200320032900c001370348200341c0016a41dbc3cb00410510810220022004290000370300200120032900c001370300200341c8006a412010ff010c010b200341d9016a200341b0016a290300370000200341d1016a200341a8016a290300370000200341c9016a200341a0016a29030037000020032003290398013700c101200341013a00c001200341c0016a1086080b2005ad4220862006ad8421180240200c42ffffff3f83500d002008102e0b2003201837029c012003200a36029801200341c8006a41186a22024200370300200341d8006a22014200370300200341c8006a41086a220b420037030020034200370348200341c0016a41b4c3cb004113108102200b200341c0016a41086a2204290000370300200320032900c001370348200341c0016a41c7c3cb00410710810220022004290000370300200120032900c001370300200341c8006a20034198016a109a030240200641ffffff3f71450d00200a102e0b2003418d063b01c001200341c0016a10fe01200041186a41003a000020004200370308200020032800783600192000411c6a200341fb006a280000360000200042003703000c150b200341086a41186a200141196a290000370300200341086a41106a200141116a290000370300200341086a41086a200141096a29000037030020032001290001370308200341c0016a41286a200241286a280200360200200341c0016a41206a200241206a290200370300200341c0016a41186a200241186a290200370300200341c0016a41106a200241106a290200370300200341c0016a41086a200241086a290200370300200320022902003703c00120034198016a200341c0016a10c102200341286a41086a220220034198016a41096a290000370300200341286a41106a220120034198016a41116a290000370300200341286a41186a220b20034198016a41196a2900003703002003200329009901370328024020032d0098014101460d00200341f8006a41186a200b290300370300200341f8006a41106a2001290300370300200341f8006a41086a200229030037030020032003290328370378200341f8006a200341086a412010ec08450d08200341d8016a22024200370300200341d0016a22014200370300200341c0016a41086a220b4200370300200342003703c001200341c8006a41b4c3cb004113108102200b200341c8006a41086a220a290000370300200320032900483703c001200341c8006a41c7c3cb0041071081022002200a2900003703002001200329004837030020034198016a200341c0016a108803024020032802980122040d0020034100360230200342013703284109210641e0c3cb00210741012105410321020c0a0b2003200329029c01220c37022c2003200436022841012105200ca741ffffff3f7121094100210241e0c3cb0021074109210602400240200c422088a722080e020801000b410021022008210103402001410176220a20026a210b200b20022004200b4105746a200341f8006a412010ec084101481b21022001200a6b220141014b0d000b0b200420024105746a200341f8006a412010ec080d064100210541002101024020080e020806000b410021012008210b0340200b410176220620016a210a200a20012004200a4105746a200341086a412010ec084101481b2101200b20066b220b41014b0d000c060b0b410221020c080b20034198016a41186a200141196a29000037030020034198016a41106a200141116a29000037030020034198016a41086a200141096a29000037030020032001290001370398012002410e6a2f010021042002410d6a2d000021052002410c6a2d000021062002410a6a2f01002107200241096a2d00002108200241086a2d00002109200241046a2d0000210a20022802282101024020022d0000220b0d002002411a6a290100210c200241196a2d0000210b200241186a2d0000210d200241166a2f0100210e200241156a2d0000210f200241146a2d00002110200241126a2f01002111200241116a2d00002112200241106a2d00002113200241066a2f01002114200241056a2d00002115200241026a2f0100211620022d0001210220012001280200417f6a2217360200024020170d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22172017280200417f6a221736020020170d002001102e0b2003200c3701d8012003200b3a00d7012003200d3a00d6012003200e3b01d4012003200f3a00d301200320103a00d201200320113b01d001200320123a00cf01200320133a00ce01200320043b01cc01200320053a00cb01200320063a00ca01200320073b01c801200320083a00c701200320093a00c601200320143b01c401200320153a00c3012003200a3a00c201200320163b01c0010240200241ff01710d004103210b0c010b4110102c2202450d13200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1320014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220d3602004100210b200d0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220d200d280200417f6a220d360200200d0d002002102e0b0240024002400240200b417f6a0e03000102010b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200a41ff01710d00200741107420084108747220097241017420044110742005410874722006724b0d020b4110102c2202450d15200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1520014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220b360200200b0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220b200b280200417f6a220b360200200b0d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b410221020c010b200341d8016a22024200370300200341d0016a22014200370300200341c0016a41086a220b4200370300200342003703c001200341c8006a41b4c3cb004113108102200b200341c8006a41086a220a290000370300200320032900483703c001200341c8006a41c7c3cb0041071081022002200a29000037030020012003290048370300200341f8006a200341c0016a10880320032802782201410120011b210441002102024002400240200329027c420020011b220c422088a722010e020201000b4100210203402001410176220a20026a210b200b20022004200b4105746a20034198016a412010ec084101481b21022001200a6b220141014b0d000b0b200420024105746a20034198016a412010ec080d000240200c42ffffff3f83500d002004102e0b200341e0006a22024200370300200341d8006a22014200370300200341c8006a41086a220b420037030020034200370348200341c0016a41b4c3cb004113108102200b200341c0016a41086a220a290000370300200320032900c001370348200341c0016a41dbc3cb0041051081022002200a290000370300200120032900c0013703004120102c2202450d14200342203702c401200320023602c001200341c0016a20034198016a41201074200341c8006a412020032802c001220220032802c80110b201024020032802c401450d002002102e0b200341d9016a20034198016a41186a290300370000200341d1016a200341a8016a290300370000200341c9016a200341a0016a29030037000020032003290398013700c101200341013a00c001200341c0016a108608200041186a41003a000020004200370308200020032800283600192000411c6a2003412b6a280000360000200042003703000c150b0240200c42ffffff3f83500d002004102e0b410321020b200041e0c3cb0036002420004192023b002120004200370308200041286a4109360000200041206a20023a0000200041186a41003a0000200042013703000c130b2002410e6a2f010021042002410d6a2d000021052002410c6a2d000021062002410a6a2f01002107200241096a2d00002108200241086a2d00002109200241046a2d0000210a20022802282101024020022d0000220b0d002002411a6a290100210c200241196a2d0000210b200241186a2d0000210d200241166a2f0100210e200241156a2d0000210f200241146a2d00002110200241126a2f01002111200241116a2d00002112200241106a2d00002113200241066a2f01002114200241056a2d00002115200241026a2f0100211620022d0001210220012001280200417f6a2217360200024020170d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22172017280200417f6a221736020020170d002001102e0b2003200c3701d8012003200b3a00d7012003200d3a00d6012003200e3b01d4012003200f3a00d301200320103a00d201200320113b01d001200320123a00cf01200320133a00ce01200320043b01cc01200320053a00cb01200320063a00ca01200320073b01c801200320083a00c701200320093a00c601200320143b01c401200320153a00c3012003200a3a00c201200320163b01c0010240200241ff01710d004103210b0c010b4110102c2202450d12200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1220014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220d3602004100210b200d0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220d200d280200417f6a220d360200200d0d002002102e0b0240024002400240200b417f6a0e03000102010b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b0240200a41ff01710d00200741107420084108747220097241017420044110742005410874722006724b0d020b4110102c2202450d14200241f8f7c60036020c2002410136020820024281808080103702004110102c2201450d1420014190f8c60036020c20014101360208200142818080801037020020022002280200417f6a220b360200200b0d002002280208200228020c2802001103000240200228020c280204450d002002280208102e0b200241046a220b200b280200417f6a220b360200200b0d002002102e0b20012001280200417f6a2202360200024020020d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22022002280200417f6a220236020020020d002001102e0b20004200370308200041206a41023a0000200041186a41003a00004201210c0c010b4200210c200341c8006a41186a22024200370300200341d8006a22014200370300200341c8006a41086a220b420037030020034200370348200341c0016a41b4c3cb004113108102200b200341c0016a41086a220a290000370300200320032900c001370348200341c0016a41dbc3cb0041051081022002200a290000370300200120032900c001370300200341c8006a412010ff01200341003a00c001200341c0016a108608200041186a41003a000020004200370308200020032800c0013600192000411c6a200341c3016a2800003600000b2000200c3703000c120b200b20061045000b200220051046000b200420014105746a200341086a412010ec080d0141cec3cb002107410d21060b02402009450d002004102e0b410321020c020b20034198016a41186a2201200341086a41186a29030037030020034198016a41106a220b200341086a41106a29030037030020034198016a41086a220a200341086a41086a2903003703002003200329030837039801200820024d0d02200420024105746a2202200329039801370000200241186a2001290300370000200241106a200b290300370000200241086a200a2903003700002004200810fc02200341c8006a41186a22014200370300200341c8006a41106a22024200370300200341c8006a41086a220b420037030020034200370348200341c0016a41b4c3cb004113108102200b200341c0016a41086a220a290000370300200320032900c001370348200341c0016a41c7c3cb0041071081022001200a290000370300200220032900c001370300200341c8006a200341286a109a03200341c0016a41186a200341f8006a41186a290300370300200341c0016a41106a200341f8006a41106a290300370300200a200341f8006a41086a290300370300200320032903783703c00141012105200341c0016a4101200420081084082001420037030020024200370300200b420037030020034200370348200341c0016a41b4c3cb004113108102200b200a290000370300200320032900c001370348200341c0016a41dbc3cb0041051081022001200a290000370300200220032900c001370300200341c0016a200341c8006a412010f40220032d00c001210a2001200341c0016a41196a2900003703002002200341c0016a41116a290000370300200b200341c0016a41096a290000370300200320032900c10137034802400240200a4101460d0041002105200341003a0098010c010b20034198016a41096a200341d0006a29030037000020034198016a41116a200341d8006a29030037000020034198016a41196a200341e0006a290300370000200341013a00980120032003290348370099010b200341d9016a20034190016a290300370000200341d1016a20034188016a290300370000200341c9016a20034180016a290300370000200320032903783700c101200341013a00c00102402005450d0020034198016a410172200341c0016a410172412010ec080d00200341e0006a4200370300200341d8006a4200370300200341c8006a41086a2201420037030020034200370348200341c0016a41b4c3cb0041131081022001200341c0016a41086a220b290000370300200320032900c001370348200341c0016a41dbc3cb004105108102200241086a200b290000370000200220032900c0013700004120102c2202450d0d200342203702c401200320023602c001200341c0016a200341086a41201074200341c8006a412020032802c001220220032802c80110b201024020032802c401450d002002102e0b200341d9016a200341206a290300370000200341d1016a200341186a290300370000200341c9016a200341106a290300370000200320032903083700c101200341013a00c001200341c0016a1086080b2009450d002004102e0b2003418d083b01c001200341c0016a10fe01200041186a41003a000020004200370308200020032800683600192000411c6a200341eb006a280000360000200042003703000c0c0b20002007360024200020053a0022200041123a002120004200370308200041286a2006360000200041206a20023a0000200041186a41003a0000200042013703000c0b0b2002200841fcc3cb00103c000b200420014105746a200341f8006a412010ec080d0341cec3cb002107410d21060b2009450d002004102e0b410321020b20002007360024200020053a0022200041123a002120004200370308200041286a2006360000200041206a20023a0000200041186a41003a0000200042013703000c060b200341c0016a41186a2201200341f8006a41186a290300370300200341c0016a41106a220b200341f8006a41106a290300370300200341c0016a41086a220a200341f8006a41086a290300370300200320032903783703c001200820024d0d01200420024105746a220220032903c001370000200241186a2001290300370000200241106a200b290300370000200241086a200a2903003700002004200810fc0220014200370300200b4200370300200a4200370300200342003703c00120034198016a41b4c3cb004113108102200a20034198016a41086a220229000037030020032003290098013703c00120034198016a41c7c3cb00410710810220012002290000370300200b200329009801370300200341c0016a200341e8006a109a032001200341086a41186a290300370300200b200341086a41106a290300370300200a200341086a41086a290300370300200320032903083703c001200341c0016a41012004200810840820034198016a41186a220b420037030020034198016a41106a220a4200370300200242003703002003420037039801200341c8006a41b4c3cb0041131081022002200341c8006a41086a22012900003703002003200329004837039801200341c8006a41dbc3cb004105108102200b2001290000370300200a2003290048370300200341c0016a20034198016a412010f40220032d00c0012102200341c8006a41186a200341d9016a290000370300200341c8006a41106a200341d1016a2900003703002001200341c9016a290000370300200320032900c101370348024020024101470d00200341286a41186a200341c8006a41186a220a290300220c370300200341286a41106a200341c8006a41106a22052903002218370300200341286a41086a200341c8006a41086a2206290300221937030020032003290348221a37032820034198016a41186a200c37030020034198016a41106a201837030020034198016a41086a20193703002003201a3703980141002102024002400240024020080e020201000b4100210203402008410176220b20026a210120012002200420014105746a20034198016a412010ec084101481b21022008200b6b220841014b0d000b0b200420024105746a20034198016a412010ec08450d010b200a4200370300200542003703002006420037030020034200370348200341c0016a41b4c3cb0041131081022006200341c0016a41086a2202290000370300200320032900c001370348200341c0016a41dbc3cb004105108102200a2002290000370300200520032900c001370300200341c8006a412010ff010c010b200341d9016a200341b0016a290300370000200341d1016a200341a8016a290300370000200341c9016a200341a0016a29030037000020032003290398013700c101200341013a00c001200341c0016a1086080b2003418d043b01c001200341c0016a10fe012009450d002004102e0b2000420037030820002003280001360019200041186a41003a00002000411c6a200341046a280000360000200042003703000c040b2002200841ecc3cb00103c000b200341c0016a41186a20034198016a41186a290300370300200341c0016a41106a20034198016a41106a290300370300200341c0016a41086a20034198016a41086a29030037030020032003290398013703c0014100210b200341c0016a21010b0240024020062005470d00200541016a22022005490d042005410174220a2002200a20024b1b22024104200241044b1b220241ffffff3f71200246210a200241057421020240024020050d00200341003602780c010b20034180016a4101360200200320043602782003200541057436027c0b200341c8006a2002200a200341f8006a107d200341d0006a280200210220032802484101460d012003200328024c22043602282003200241057636022c0b2004200b4105746a220241206a20022006200b6b41057410ea081a20022001290000370000200241186a200141186a290000370000200241106a200141106a290000370000200241086a200141086a2900003700002003200641016a2201360230200341c8006a41186a220b4200370300200341c8006a41106a220a4200370300200341c8006a41086a2204420037030020034200370348200341c0016a41b4c3cb0041131081022004200341c0016a41086a2202290000370300200320032900c001370348200341c0016a41c7c3cb004107108102200b2002290000370300200a20032900c001370300200341c8006a200341286a109a03200341c0016a41186a20034198016a41186a290300370300200341c0016a41106a20034198016a41106a290300370300200220034198016a41086a29030037030020032003290398013703c00141d4e2cc0041002003280228220220011084082003410d3b01c001200341c0016a10fe010240200328022c41ffffff3f71450d002002102e0b200041186a41003a000020004200370308200020032800083600192000411c6a2003410b6a280000360000200042003703000c020b2002450d020b1036000b200341c0026a24000f0b1038000be33a0b037f017e037f017e047f017e017f037e027f017e0c7f230041d0096b22022400024002400240200128020422034108490d002001280200220429000021052001200341786a22063602042001200441086a22073602002006450d0120072d000021062001200341776a22083602042001200741016a36020002400240024002400240024020060e020001070b20084108490d062007290001210920012003416f6a220a3602042001200741096a36020041002107200241003a00a80820032106200a210b0240024002400340200a2007460d0120024188086a20076a200420076a220841116a2d00003a000020012006416e6a3602042001200841126a3602002002200741016a22083a00a8082006417f6a2106200b417f6a210b2008210720084120470d000b20024188076a41086a220720024188086a41086a29030037030020024188076a41106a220a20024188086a41106a29030037030020024188076a41186a220c20024188086a41186a290300370300200220022903880837038807200841ff0171411f4d0d09200320086b416f6a210d200241e8036a41086a2007290300370300200241e8036a41106a200a290300370300200241e8036a41186a200c2903003703002002200229038807220e3703c8052002200e3703e80341002107200241003a00a808200420086a210f2006416e6a210a0340200d2007460d0220024188086a20076a200f20076a220c41116a2d00003a00002001200a3602042001200c41126a3602002002200741016a220c3a00a808200a417f6a210a2003417f6a2103200c2107200c4120470d000b20024188076a41086a220720024188086a41086a29030037030020024188076a41106a220320024188086a41106a29030037030020024188076a41186a220a20024188086a41186a290300370300200220022903880837038807200c41ff0171411f4d0d09200241c8056a41086a2007290300370300200241c8056a41106a2003290300370300200241c8056a41186a200a29030037030020022002290388073703c8052006200c6b2207416f6a4104490d092004200b411f200b411f491b6a20086a41126a280000210820012007416b6a360204200241e8066a41086a2207200241c8056a41086a290300370300200241e8066a41106a2203200241c8056a41106a290300370300200241e8066a41186a2204200241c8056a41186a2903003703002001200f200c6a41156a360200200220022903c8053703e80620024188086a200110a70120022d0088084101460d0920024188076a41386a200241c1086a290000220e37030020024188076a41306a200241b9086a290000221037030020024188076a41286a200241b1086a290000221137030020024188076a41206a200241a9086a290000221237030020024188066a41086a220620024191086a29000037030020024188066a41106a220b20024199086a29000037030020024188066a41186a220a200241a1086a29000037030020024188066a41206a220c201237030020024188066a41286a220d201137030020024188066a41306a220f201037030020024188066a41386a2213200e370300200220022900890837038806200241c8066a41186a22142004290300370300200241c8066a41106a22042003290300370300200241c8066a41086a22032007290300370300200220022903e8063703c806200241a8056a41186a22072014290300370300200241a8056a41106a22142004290300370300200241a8056a41086a22042003290300370300200220022903c8063703a805200241e8046a41386a22032013290300370300200241e8046a41306a2213200f290300370300200241e8046a41286a220f200d290300370300200241e8046a41206a220d200c290300370300200241e8046a41186a220c200a290300370300200241e8046a41106a220a200b290300370300200241e8046a41086a220b200629030037030020022002290388063703e804200241c8046a41186a2007290300370300200241c8046a41106a2014290300370300200241c8046a41086a2004290300370300200220022903a8053703c80420024188046a41386a200329030037030020024188046a41306a201329030037030020024188046a41286a200f29030037030020024188046a41206a200d29030037030020024188046a41186a200c29030037030020024188046a41106a200a29030037030020024188046a41086a200b290300370300200220022903e8043703880441002107200241003a00a80820012802042106417f2103034020062007460d0320024188086a20076a200128020022042d00003a00002001200620036a3602042001200441016a3602002002200741016a22043a00a8082003417f6a21032004210720044120470d000b20024188076a41086a220720024188086a41086a29030037030020024188076a41106a220320024188086a41106a29030037030020024188076a41186a220b20024188086a41186a290300370300200220022903880837038807200441ff0171411f4d0d09200241c8056a41086a2007290300370300200241c8056a41106a2003290300370300200241c8056a41186a200b29030037030020022002290388073703c805200620046b22074104490d0920012802002204280000210320012007417c6a3602042001200441046a360200200241e8066a41086a2207200241c8056a41086a290300370300200241e8066a41106a2204200241c8056a41106a290300370300200241e8066a41186a2206200241c8056a41186a290300370300200220022903c8053703e80620024188086a200110a70120022d0088084101460d0920024188076a41386a200241c1086a290000220e37030020024188076a41306a200241b9086a290000221037030020024188076a41286a200241b1086a290000221137030020024188076a41206a200241a9086a290000221237030020024188076a41186a200241a1086a290000221537030020024188066a41086a220120024191086a29000037030020024188066a41106a220b20024199086a29000037030020024188066a41186a220a201537030020024188066a41206a220c201237030020024188066a41286a220d201137030020024188066a41306a220f201037030020024188066a41386a2213200e370300200220022900890837038806200241c8066a41186a22142006290300370300200241c8066a41106a22062004290300370300200241c8066a41086a22042007290300370300200220022903e8063703c806200241a8056a41186a22072014290300370300200241a8056a41106a22142006290300370300200241a8056a41086a22062004290300370300200220022903c8063703a805200241e8046a41386a22042013290300370300200241e8046a41306a2213200f290300370300200241e8046a41286a220f200d290300370300200241e8046a41206a220d200c290300370300200241e8046a41186a220c200a290300370300200241e8046a41106a220a200b290300370300200241e8046a41086a220b200129030037030020022002290388063703e804200241c8026a41186a2007290300370300200241c8026a41106a2014290300370300200241c8026a41086a2006290300370300200220022903a8053703c80220024188026a41386a200429030037030020024188026a41306a201329030037030020024188026a41286a200f29030037030020024188026a41206a200d29030037030020024188026a41186a200c29030037030020024188026a41106a200a29030037030020024188026a41086a200b290300370300200220022903e80437038802200241c8036a41186a2201200241e8036a41186a290300370300200241c8036a41106a2207200241e8036a41106a290300370300200241c8036a41086a2204200241e8036a41086a290300370300200220022903e8033703c803200241a8036a41186a200241c8046a41186a290300370300200241a8036a41106a200241c8046a41106a290300370300200241a8036a41086a200241c8046a41086a290300370300200220022903c8043703a803200241e8026a41386a20024188046a41386a290300370300200241e8026a41306a20024188046a41306a290300370300200241e8026a41286a20024188046a41286a290300370300200241e8026a41206a20024188046a41206a290300370300200241e8026a41186a20024188046a41186a290300370300200241e8026a41106a20024188046a41106a290300370300200241e8026a41086a20024188046a41086a29030037030020022002290388043703e802200241e8016a41186a2001290300370300200241e8016a41106a2007290300370300200241e8016a41086a2004290300370300200220022903c8033703e8014200210e0c040b200741ff0171450d08200241003a00a8080c080b200741ff0171450d07200241003a00a8080c070b200741ff0171450d06200241003a00a8080c060b20084108490d052007290001210920012003416f6a220a3602042001200741096a36020041002107200241003a00a80820032106200a210b0340200a2007460d0220024188086a20076a200420076a220841116a2d00003a000020012006416e6a3602042001200841126a3602002002200741016a22083a00a8082006417f6a2106200b417f6a210b2008210720084120470d000b20024188076a41086a220720024188086a41086a29030037030020024188076a41106a220a20024188086a41106a29030037030020024188076a41186a220c20024188086a41186a290300370300200220022903880837038807200841ff0171411f4d0d05200320086b416f6a210d200241e8036a41086a2007290300370300200241e8036a41106a200a290300370300200241e8036a41186a200c2903003703002002200229038807220e3703c8052002200e3703e80341002107200241003a00a808200420086a210f2006416e6a210a0340200d2007460d0320024188086a20076a200f20076a220c41116a2d00003a00002001200a3602042001200c41126a3602002002200741016a220c3a00a808200a417f6a210a2003417f6a2103200c2107200c4120470d000b20024188076a41086a220720024188086a41086a29030037030020024188076a41106a220320024188086a41106a29030037030020024188076a41186a220a20024188086a41186a290300370300200220022903880837038807200c41ff0171411f4d0d05200241c8056a41086a2007290300370300200241c8056a41106a2003290300370300200241c8056a41186a200a29030037030020022002290388073703c8052006200c6b2207416f6a4104490d052004200b411f200b411f491b6a20086a41126a280000210820012007416b6a360204200241e8066a41086a2207200241c8056a41086a290300370300200241e8066a41106a2203200241c8056a41106a290300370300200241e8066a41186a2204200241c8056a41186a2903003703002001200f200c6a41156a360200200220022903c8053703e80620024188086a200110a70120022d0088084101460d0520024188076a41386a200241c1086a290000220e37030020024188076a41306a200241b9086a290000221037030020024188076a41286a200241b1086a290000221137030020024188076a41206a200241a9086a290000221237030020024188066a41086a220620024191086a29000037030020024188066a41106a220b20024199086a29000037030020024188066a41186a220a200241a1086a29000037030020024188066a41206a220c201237030020024188066a41286a220d201137030020024188066a41306a220f201037030020024188066a41386a2213200e370300200220022900890837038806200241c8066a41186a22142004290300370300200241c8066a41106a22042003290300370300200241c8066a41086a22032007290300370300200220022903e8063703c806200241a8056a41186a22072014290300370300200241a8056a41106a22142004290300370300200241a8056a41086a22042003290300370300200220022903c8063703a805200241e8046a41386a22032013290300370300200241e8046a41306a2213200f290300370300200241e8046a41286a220f200d290300370300200241e8046a41206a220d200c290300370300200241e8046a41186a220c200a290300370300200241e8046a41106a220a200b290300370300200241e8046a41086a220b200629030037030020022002290388063703e804200241c8046a41186a2007290300370300200241c8046a41106a2014290300370300200241c8046a41086a2004290300370300200220022903a8053703c80420024188046a41386a200329030037030020024188046a41306a201329030037030020024188046a41286a200f29030037030020024188046a41206a200d29030037030020024188046a41186a200c29030037030020024188046a41106a200a29030037030020024188046a41086a200b290300370300200220022903e8043703880441002107200241003a00a80820012802042106417f2103034020062007460d0420024188086a20076a200128020022042d00003a00002001200620036a3602042001200441016a3602002002200741016a22043a00a8082003417f6a21032004210720044120470d000b20024188076a41086a220720024188086a41086a29030037030020024188076a41106a220320024188086a41106a29030037030020024188076a41186a220b20024188086a41186a290300370300200220022903880837038807200441ff0171411f4d0d05200241c8056a41086a2007290300370300200241c8056a41106a2003290300370300200241c8056a41186a200b29030037030020022002290388073703c805200620046b22074104490d0520012802002204280000210320012007417c6a3602042001200441046a360200200241e8066a41086a2207200241c8056a41086a290300370300200241e8066a41106a2204200241c8056a41106a290300370300200241e8066a41186a2206200241c8056a41186a290300370300200220022903c8053703e80620024188086a200110a70120022d0088084101460d0520024188076a41386a200241c1086a290000220e37030020024188076a41306a200241b9086a290000221037030020024188076a41286a200241b1086a290000221137030020024188076a41206a200241a9086a290000221237030020024188076a41186a200241a1086a290000221537030020024188066a41086a220120024191086a29000037030020024188066a41106a220b20024199086a29000037030020024188066a41186a220a201537030020024188066a41206a220c201237030020024188066a41286a220d201137030020024188066a41306a220f201037030020024188066a41386a2213200e370300200220022900890837038806200241c8066a41186a22142006290300370300200241c8066a41106a22062004290300370300200241c8066a41086a22042007290300370300200220022903e8063703c806200241a8056a41186a22072014290300370300200241a8056a41106a22142006290300370300200241a8056a41086a22062004290300370300200220022903c8063703a805200241e8046a41386a22042013290300370300200241e8046a41306a2213200f290300370300200241e8046a41286a220f200d290300370300200241e8046a41206a220d200c290300370300200241e8046a41186a220c200a290300370300200241e8046a41106a220a200b290300370300200241e8046a41086a220b200129030037030020022002290388063703e804200241c8026a41186a2007290300370300200241c8026a41106a2014290300370300200241c8026a41086a2006290300370300200220022903a8053703c80220024188026a41386a200429030037030020024188026a41306a201329030037030020024188026a41286a200f29030037030020024188026a41206a200d29030037030020024188026a41186a200c29030037030020024188026a41106a200a29030037030020024188026a41086a200b290300370300200220022903e80437038802200241c8036a41186a2201200241e8036a41186a290300370300200241c8036a41106a2207200241e8036a41106a290300370300200241c8036a41086a2204200241e8036a41086a290300370300200220022903e8033703c803200241a8036a41186a200241c8046a41186a290300370300200241a8036a41106a200241c8046a41106a290300370300200241a8036a41086a200241c8046a41086a290300370300200220022903c8043703a803200241e8026a41386a20024188046a41386a290300370300200241e8026a41306a20024188046a41306a290300370300200241e8026a41286a20024188046a41286a290300370300200241e8026a41206a20024188046a41206a290300370300200241e8026a41186a20024188046a41186a290300370300200241e8026a41106a20024188046a41106a290300370300200241e8026a41086a20024188046a41086a29030037030020022002290388043703e802200241e8016a41186a2001290300370300200241e8016a41106a2007290300370300200241e8016a41086a2004290300370300200220022903c8033703e8014201210e0b200241c8016a41186a2201200241a8036a41186a290300370300200241c8016a41106a2207200241a8036a41106a290300370300200241c8016a41086a2204200241a8036a41086a29030037030020024188016a41086a2206200241e8026a41086a29030037030020024188016a41106a220b200241e8026a41106a29030037030020024188016a41186a220a200241e8026a41186a29030037030020024188016a41206a220c200241e8026a41206a29030037030020024188016a41286a220d200241e8026a41286a29030037030020024188016a41306a220f200241e8026a41306a29030037030020024188016a41386a2213200241e8026a41386a290300370300200220022903a8033703c801200220022903e80237038801200241e8006a41186a2214200241c8026a41186a290300370300200241e8006a41106a2216200241c8026a41106a290300370300200241e8006a41086a2217200241c8026a41086a290300370300200241286a41386a221820024188026a41386a290300370300200241286a41306a221920024188026a41306a290300370300200241286a41286a221a20024188026a41286a290300370300200241286a41206a221b20024188026a41206a290300370300200241286a41186a221c20024188026a41186a290300370300200241286a41106a221d20024188026a41106a290300370300200241286a41086a221e20024188026a41086a290300370300200220022903c8023703682002200229038802370328200241086a41186a221f200241e8016a41186a290300370300200241086a41106a2220200241e8016a41106a290300370300200241086a41086a2221200241e8016a41086a290300370300200220022903e801370308200041186a2008360200200020093703102000200e37030820002005370300200020022903c80137021c200041246a20042903003702002000412c6a2007290300370200200041346a2001290300370200200020022903880137023c200041c4006a2006290300370200200041cc006a200b290300370200200041d4006a200a290300370200200041dc006a200c290300370200200041e4006a200d290300370200200041ec006a200f290300370200200041f4006a20132903003702002000200336027c20004198016a201429030037020020004190016a201629030037020020004188016a201729030037020020004180016a2002290368370200200041d8016a2018290300370200200041d0016a2019290300370200200041c8016a201a290300370200200041c0016a201b290300370200200041b8016a201c290300370200200041b0016a201d290300370200200041a8016a201e290300370200200041a0016a2002290328370200200041f8016a201f290300370300200041f0016a2020290300370300200041e8016a2021290300370300200041e0016a20022903083703000c050b200741ff0171450d03200241003a00a8080c030b200741ff0171450d02200241003a00a8080c020b200741ff0171450d01200241003a00a8080c010b200042023703080c010b200042023703080b200241d0096a24000bde17020b7f057e23004190076b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a36020020050e06010203040506070b200041073a00000c1a0b200241086a200110ab0102402002280208450d0020024100360280040c190b20024180046a2001200228020c1092012002280280042205450d18200228028404210420012802042206450d0620024188046a2802002107200128020022032d0000210820012006417f6a22063602042001200341016a360200410021030240024020080e020100080b20024180046a200110930120022d0080044101460d07200241e8016a20024199046a290000370300200241e0016a20024191046a290000370300200241d8016a20024189046a29000037030020022002290081043703d00120012802042106410121030b200241d0006a41186a2208200241d0016a41186a290300370300200241d0006a41106a2209200241d0016a41106a290300370300200241d0006a41086a220a200241d0016a41086a290300370300200220022903d001370350024020064104490d002001280200220b280000210c20012006417c6a3602042001200b41046a360200200241b0016a41086a200a290300220d370300200241b0016a41106a2009290300220e370300200241b0016a41186a2008290300220f3703002002200229035022103703b001200020033a0001200041013a0000200041026a20103700002000410a6a200d370000200041126a200e3700002000411a6a200f370000200041306a200c3602002000412c6a2007360100200041286a2004360100200041246a2005360100200041226a20022f0190013b01000c1a0b200041073a00000c070b20024180046a20011098012002280280042105200241d0016a20024180046a41047241ac0210e9081a024002402005411c460d0020024180046a200241d0016a41ac0210e9081a41b002102c22040d010c180b200041073a00000c190b20042005360200200441046a20024180046a41ac0210e9081a200241106a200110ab01024020022802100d0020022802142101200041023a0000200020022f00b0013b0001200041086a2001360200200041046a20043602002000410c6a2002290250370200200041036a200241b0016a41026a2d00003a0000200041146a200241d0006a41086a2902003702002000411c6a200241e0006a290200370200200041246a200241e8006a2902003702002000412c6a200241f0006a290200370200200041346a200241f8006a2802003602000c190b200041073a00002004108b022004102e0c180b200241206a200110ab0120022802200d072002280224210620024180046a20011098012002280280042105200241d0016a20024180046a41047241ac0210e9081a2005411c460d0620024180046a200241d0016a41ac0210e9081a41b002102c2204450d1520042005360200200441046a20024180046a41ac0210e9081a200241186a200110ab01024020022802180d00200228021c2101200041033a0000200020022f00b0013b00012000410c6a2001360200200041086a2004360200200041046a2006360200200041106a2002290350370300200041036a200241b2016a2d00003a0000200041186a200241d0006a41086a290300370300200041206a200241d0006a41106a290300370300200041286a200241d0006a41186a290300370300200041306a200241d0006a41206a2903003703000c180b200041073a00002004108b022004102e0c170b41002105200241003a00a0042003417e6a21030240034020062005460d0120024180046a20056a200420056a220841016a2d00003a0000200120033602042001200841026a3602002002200541016a22083a00a0042003417f6a21032008210520084120460d100c000b0b200541ff0171450d0f200241003a00a0040c0f0b41002105200241003a00a0042003417e6a21030240034020062005460d0120024180046a20056a200420056a220841016a2d00003a0000200120033602042001200841026a3602002002200541016a22083a00a0042003417f6a21032008210520084120460d0a0c000b0b200541ff0171450d09200241003a00a0040c090b41002105200241003a00a0042003417e6a21030240034020062005460d0120024180046a20056a200420056a220841016a2d00003a0000200120033602042001200841026a3602002002200541016a22083a00a0042003417f6a21032008210520084120460d070c000b0b200541ff0171450d06200241003a00a0040c060b200041073a00000c130b200041073a00000b200441ffffff3f71450d112005102e0c110b200041073a00000c100b200041073a00000c0f0b200241d0016a41086a220120024180046a41086a290300370300200241d0016a41106a220520024180046a41106a290300370300200241d0016a41186a220420024180046a41186a29030037030020022002290380043703d001200841ff0171411f4d0d00200241b0016a41086a2001290300220d370300200241b0016a41106a2005290300220e370300200241b0016a41186a2004290300220f370300200220022903d00122103703b001200041063a000020002010370001200041096a200d370000200041116a200e370000200041196a200f370000200041216a200229009001370000200041296a20024190016a41086a290000370000200041306a2002419f016a2900003700000c0e0b200041073a00000c0d0b200241d0016a41086a220520024180046a41086a290300370300200241d0016a41106a220420024180046a41106a290300370300200241d0016a41186a220620024180046a41186a29030037030020022002290380043703d001200841ff0171411f4d0d00200241b0016a41086a2005290300370300200241b0016a41106a2004290300370300200241b0016a41186a2006290300370300200220022903d0013703b001200241c8006a200110ab0120022802480d01200228024c2105200241386a200110d9042002290338a70d022002290340210d200241306a200110ab0120022802300d032002280234210120024190016a41186a200241b0016a41186a290300220e37030020024190016a41106a200241b0016a41106a290300220f37030020024190016a41086a200241b0016a41086a2903002210370300200220022903b001221137039001200041053a000020002011370001200041096a2010370000200041116a200f370000200041196a200e370000200041216a20022f0080013b0000200041236a20024182016a2d00003a0000200041306a200d370300200041286a2001360200200041246a20053602000c0c0b200041073a00000c0b0b200041073a00000c0a0b200041073a00000c090b200041073a00000c080b200241d0016a41086a220520024180046a41086a290300370300200241d0016a41106a220420024180046a41106a290300370300200241d0016a41186a220620024180046a41186a29030037030020022002290380043703d001200841ff0171411f4d0d00200241b0016a41086a2005290300370300200241b0016a41106a2004290300370300200241b0016a41186a2006290300370300200220022903d0013703b001200241286a200110ab0120022802280d0120012802042205450d04200228022c2103200128020022042d0000210620012005417f6a3602042001200441016a3602004100210120060e020302040b200041073a00000c060b200041073a00000c050b410121010b20024190016a41186a200241b0016a41186a290300220d37030020024190016a41106a200241b0016a41106a290300220e37030020024190016a41086a200241b0016a41086a290300220f370300200220022903b001221037039001200041043a000020002010370001200041096a200f370000200041116a200e370000200041196a200d370000200041246a2003360200200041216a20013a0000200041286a200229038001370300200041306a20024180016a41086a2903003703000c030b200041073a00000c020b1036000b200041073a00000b20024190076a24000bb20401057f23004180056b22022400024002400240024002400240024002400240024020012802042203450d00200128020022042d0000210520012003417f6a22063602042001200441016a36020020050e03010203040b200041043b01000c080b2002200110ab0102402002280200450d00200241003602200c070b200241206a200120022802041097012002280220450d06200241da026a200241206a41086a280200360100200220022903203701d202200041013b0100200020022901d002370102200041086a200241d6026a2901003701000c070b024020064102490d0020042f0001210520012003417d6a3602042001200441036a360200200241d0026a200110980120022802d0022101200241206a200241d0026a41047241ac0210e9081a024002402001411c460d00200241d0026a200241206a41ac0210e9081a41b002102c22030d011036000b200041043b01000c080b20032001360200200341046a200241d0026a41ac0210e9081a200041046a2003360200200020053b0102200041023b01000c070b200041043b01000c060b200241086a200110ab012002280208450d01200241003602200c020b200041043b01000c040b200241206a2001200228020c10970120022802200d010b200041043b01000c020b200241da026a200241206a41086a280200360100200220022903203701d202200041033b0100200020022901d002370102200041086a200241d6026a2901003701000c010b200041043b01000b20024180056a24000bb54507047f017e017f027e047f077e107f230041d00d6b220224000240024002402001280200220328020422044108490d002003280200220529000021062003200441786a3602042003200541086a360200200128020022032802042204450d01200328020022052d0000210720032004417f6a3602042003200541016a3602000240024002400240024002400240024020070e020001090b2001280200220328020422044108490d082003280200220529000021082003200441786a3602042003200541086a36020041002104200241003a00a80a024002400240024002400340200128020022032802042205450d01200241880a6a20046a200328020022072d00003a000020032005417f6a3602042003200741016a3602002002200441016a22033a00a80a2003210420034120470d000b200241d00a6a41186a200241880a6a41186a2903002209370300200241c8096a41086a2203200241880a6a41086a290300370300200241c8096a41106a2204200241880a6a41106a290300370300200241c8096a41186a22052009370300200220022903880a3703c809200241e8036a41186a2005290300370300200241e8036a41106a2004290300370300200241e8036a41086a2003290300370300200220022903c8093703e80341002104200241003a00a80a0340200128020022032802042205450d02200241880a6a20046a200328020022072d00003a000020032005417f6a3602042003200741016a3602002002200441016a22033a00a80a2003210420034120470d000b200241d00a6a41186a200241880a6a41186a2903002209370300200241c8096a41086a2204200241880a6a41086a290300370300200241c8096a41106a2205200241880a6a41106a290300370300200241c8096a41186a22072009370300200220022903880a3703c80920012802002203280204220a4104490d0d2003280200220b280000210c2003200a417c6a3602042003200b41046a360200200241e8066a41086a2004290300370300200241e8066a41106a2005290300370300200241e8066a41186a2007290300370300200220022903c8093703e80641002104200241003a00c80a0340200128020022032802042205450d03200241880a6a20046a200328020022072d00003a000020032005417f6a3602042003200741016a3602002002200441016a22033a00c80a20032104200341c000470d000b200241d00a6a41086a2203200241880a6a41086a290300370300200241d00a6a41106a2204200241880a6a41106a290300370300200241d00a6a41186a2205200241880a6a41186a290300370300200241d00a6a41206a2207200241880a6a41206a290300370300200241d00a6a41286a220a200241880a6a41286a290300370300200241d00a6a41306a220b200241880a6a41306a290300370300200241d00a6a41386a220d200241880a6a41386a290300370300200220022903880a3703d00a200241c8096a41086a2003290300220e370300200241c8096a41106a20042903002209370300200241c8096a41186a2005290300220f370300200241c8096a41206a20072903002210370300200241c8096a41286a200a2903002211370300200241c8096a41306a200b2903002212370300200241c8096a41386a2203200d290300370300200220022903d00a22133703c80920024188076a41306a201237030020024188076a41286a201137030020024188076a41206a201037030020024188076a41186a200f37030020024188076a41106a200937030020024188076a41386a2003290300221437030020024188066a41306a2203201237030020024188066a41286a2204201137030020024188066a41206a2205201037030020024188066a41186a2207200f37030020024188066a41106a220a200937030020024188066a41086a220b200e37030020024188066a41386a220d20143703002002201337038806200241c8066a41186a2215200241e8066a41186a290300370300200241c8066a41106a2216200241e8066a41106a290300370300200241c8066a41086a2217200241e8066a41086a290300370300200220022903e8063703c806200241a8056a41186a22182015290300370300200241a8056a41106a22152016290300370300200241a8056a41086a22162017290300370300200220022903c8063703a805200241e8046a41386a2217200d290300370300200241e8046a41306a220d2003290300370300200241e8046a41286a22032004290300370300200241e8046a41206a22042005290300370300200241e8046a41186a22052007290300370300200241e8046a41106a2207200a290300370300200241e8046a41086a220a200b29030037030020022002290388063703e804200241c8046a41186a2018290300370300200241c8046a41106a2015290300370300200241c8046a41086a2016290300370300200220022903a8053703c80420024188046a41386a201729030037030020024188046a41306a200d29030037030020024188046a41286a200329030037030020024188046a41206a200429030037030020024188046a41186a200529030037030020024188046a41106a200729030037030020024188046a41086a200a290300370300200220022903e8043703880441002104200241003a00a80a0340200128020022032802042205450d04200241880a6a20046a200328020022072d00003a000020032005417f6a3602042003200741016a3602002002200441016a22033a00a80a2003210420034120470d000b200241d00a6a41186a200241880a6a41186a2903002209370300200241c8096a41086a2204200241880a6a41086a290300370300200241c8096a41106a2205200241880a6a41106a290300370300200241c8096a41186a22072009370300200220022903880a3703c80920012802002203280204220a4104490d0d2003280200220d280000210b2003200a417c6a3602042003200d41046a360200200241e8066a41086a2004290300370300200241e8066a41106a2005290300370300200241e8066a41186a2007290300370300200220022903c8093703e80641002104200241003a00c80a0340200128020022032802042205450d05200241880a6a20046a200328020022072d00003a000020032005417f6a3602042003200741016a3602002002200441016a22033a00c80a20032104200341c000470d000b200241d00a6a41086a2201200241880a6a41086a290300370300200241d00a6a41106a2203200241880a6a41106a290300370300200241d00a6a41186a2204200241880a6a41186a290300370300200241d00a6a41206a2205200241880a6a41206a290300370300200241d00a6a41286a2207200241880a6a41286a290300370300200241d00a6a41306a220a200241880a6a41306a290300370300200241d00a6a41386a220d200241880a6a41386a290300370300200220022903880a3703d00a200241c8096a41386a2215200d290300370300200241c8096a41306a200a2903002209370300200241c8096a41286a2007290300220f370300200241c8096a41206a20052903002210370300200241c8096a41186a20042903002211370300200241c8096a41106a20032903002212370300200241c8096a41086a2001290300220e370300200220022903d00a22133703c80920024188076a41306a2201200937030020024188076a41286a2203200f37030020024188076a41206a2204201037030020024188076a41186a2205201137030020024188076a41106a2207201237030020024188076a41086a220a200e37030020024188076a41386a220d2015290300370300200220133703880720024188066a41386a2215200d29030037030020024188066a41306a220d200129030037030020024188066a41286a2201200329030037030020024188066a41206a2203200429030037030020024188066a41186a2204200529030037030020024188066a41106a2205200729030037030020024188066a41086a2207200a290300370300200220022903880737038806200241c8066a41186a220a200241e8066a41186a290300370300200241c8066a41106a2216200241e8066a41106a290300370300200241c8066a41086a2217200241e8066a41086a290300370300200220022903e8063703c806200241a8056a41186a2218200a290300370300200241a8056a41106a220a2016290300370300200241a8056a41086a22162017290300370300200220022903c8063703a805200241e8046a41386a22172015290300370300200241e8046a41306a2215200d290300370300200241e8046a41286a220d2001290300370300200241e8046a41206a22012003290300370300200241e8046a41186a22032004290300370300200241e8046a41106a22042005290300370300200241e8046a41086a2205200729030037030020022002290388063703e804200241c8026a41186a2018290300370300200241c8026a41106a200a290300370300200241c8026a41086a2016290300370300200220022903a8053703c80220024188026a41386a201729030037030020024188026a41306a201529030037030020024188026a41286a200d29030037030020024188026a41206a200129030037030020024188026a41186a200329030037030020024188026a41106a200429030037030020024188026a41086a2005290300370300200220022903e80437038802200241c8036a41186a2201200241e8036a41186a290300370300200241c8036a41106a2203200241e8036a41106a290300370300200241c8036a41086a2204200241e8036a41086a290300370300200220022903e8033703c803200241a8036a41186a200241c8046a41186a290300370300200241a8036a41106a200241c8046a41106a290300370300200241a8036a41086a200241c8046a41086a290300370300200220022903c8043703a803200241e8026a41386a20024188046a41386a290300370300200241e8026a41306a20024188046a41306a290300370300200241e8026a41286a20024188046a41286a290300370300200241e8026a41206a20024188046a41206a290300370300200241e8026a41186a20024188046a41186a290300370300200241e8026a41106a20024188046a41106a290300370300200241e8026a41086a20024188046a41086a29030037030020022002290388043703e802200241e8016a41186a2001290300370300200241e8016a41106a2003290300370300200241e8016a41086a2004290300370300200220022903c8033703e801420021090c060b200441ff0171450d0c200241003a00a80a0c0c0b200441ff0171450d0b200241003a00a80a0c0b0b200441ff0171450d0a200241003a00c80a0c0a0b200441ff0171450d09200241003a00a80a0c090b200441ff0171450d08200241003a00c80a0c080b2001280200220328020422044108490d072003280200220529000021082003200441786a3602042003200541086a36020041002104200241003a00a80a0340200128020022032802042205450d02200241880a6a20046a200328020022072d00003a000020032005417f6a3602042003200741016a3602002002200441016a22033a00a80a2003210420034120470d000b200241d00a6a41186a200241880a6a41186a2903002209370300200241c8096a41086a2203200241880a6a41086a290300370300200241c8096a41106a2204200241880a6a41106a290300370300200241c8096a41186a22052009370300200220022903880a3703c809200241e8036a41186a2005290300370300200241e8036a41106a2004290300370300200241e8036a41086a2003290300370300200220022903c8093703e80341002104200241003a00a80a0340200128020022032802042205450d03200241880a6a20046a200328020022072d00003a000020032005417f6a3602042003200741016a3602002002200441016a22033a00a80a2003210420034120470d000b200241d00a6a41186a200241880a6a41186a2903002209370300200241c8096a41086a2204200241880a6a41086a290300370300200241c8096a41106a2205200241880a6a41106a290300370300200241c8096a41186a22072009370300200220022903880a3703c80920012802002203280204220a4104490d072003280200220b280000210c2003200a417c6a3602042003200b41046a360200200241e8066a41086a2004290300370300200241e8066a41106a2005290300370300200241e8066a41186a2007290300370300200220022903c8093703e80641002104200241003a00c80a0340200128020022032802042205450d04200241880a6a20046a200328020022072d00003a000020032005417f6a3602042003200741016a3602002002200441016a22033a00c80a20032104200341c000470d000b200241d00a6a41086a2203200241880a6a41086a290300370300200241d00a6a41106a2204200241880a6a41106a290300370300200241d00a6a41186a2205200241880a6a41186a290300370300200241d00a6a41206a2207200241880a6a41206a290300370300200241d00a6a41286a220a200241880a6a41286a290300370300200241d00a6a41306a220b200241880a6a41306a290300370300200241d00a6a41386a220d200241880a6a41386a290300370300200220022903880a3703d00a200241c8096a41086a2003290300220e370300200241c8096a41106a20042903002209370300200241c8096a41186a2005290300220f370300200241c8096a41206a20072903002210370300200241c8096a41286a200a2903002211370300200241c8096a41306a200b2903002212370300200241c8096a41386a2203200d290300370300200220022903d00a22133703c80920024188076a41306a201237030020024188076a41286a201137030020024188076a41206a201037030020024188076a41186a200f37030020024188076a41106a200937030020024188076a41386a2003290300221437030020024188066a41306a2203201237030020024188066a41286a2204201137030020024188066a41206a2205201037030020024188066a41186a2207200f37030020024188066a41106a220a200937030020024188066a41086a220b200e37030020024188066a41386a220d20143703002002201337038806200241c8066a41186a2215200241e8066a41186a290300370300200241c8066a41106a2216200241e8066a41106a290300370300200241c8066a41086a2217200241e8066a41086a290300370300200220022903e8063703c806200241a8056a41186a22182015290300370300200241a8056a41106a22152016290300370300200241a8056a41086a22162017290300370300200220022903c8063703a805200241e8046a41386a2217200d290300370300200241e8046a41306a220d2003290300370300200241e8046a41286a22032004290300370300200241e8046a41206a22042005290300370300200241e8046a41186a22052007290300370300200241e8046a41106a2207200a290300370300200241e8046a41086a220a200b29030037030020022002290388063703e804200241c8046a41186a2018290300370300200241c8046a41106a2015290300370300200241c8046a41086a2016290300370300200220022903a8053703c80420024188046a41386a201729030037030020024188046a41306a200d29030037030020024188046a41286a200329030037030020024188046a41206a200429030037030020024188046a41186a200529030037030020024188046a41106a200729030037030020024188046a41086a200a290300370300200220022903e8043703880441002104200241003a00a80a0340200128020022032802042205450d05200241880a6a20046a200328020022072d00003a000020032005417f6a3602042003200741016a3602002002200441016a22033a00a80a2003210420034120470d000b200241d00a6a41186a200241880a6a41186a2903002209370300200241c8096a41086a2204200241880a6a41086a290300370300200241c8096a41106a2205200241880a6a41106a290300370300200241c8096a41186a22072009370300200220022903880a3703c80920012802002203280204220a4104490d072003280200220d280000210b2003200a417c6a3602042003200d41046a360200200241e8066a41086a2004290300370300200241e8066a41106a2005290300370300200241e8066a41186a2007290300370300200220022903c8093703e80641002104200241003a00c80a0340200128020022032802042205450d06200241880a6a20046a200328020022072d00003a000020032005417f6a3602042003200741016a3602002002200441016a22033a00c80a20032104200341c000470d000b200241d00a6a41086a2201200241880a6a41086a290300370300200241d00a6a41106a2203200241880a6a41106a290300370300200241d00a6a41186a2204200241880a6a41186a290300370300200241d00a6a41206a2205200241880a6a41206a290300370300200241d00a6a41286a2207200241880a6a41286a290300370300200241d00a6a41306a220a200241880a6a41306a290300370300200241d00a6a41386a220d200241880a6a41386a290300370300200220022903880a3703d00a200241c8096a41386a2215200d290300370300200241c8096a41306a200a2903002209370300200241c8096a41286a2007290300220f370300200241c8096a41206a20052903002210370300200241c8096a41186a20042903002211370300200241c8096a41106a20032903002212370300200241c8096a41086a2001290300220e370300200220022903d00a22133703c80920024188076a41306a2201200937030020024188076a41286a2203200f37030020024188076a41206a2204201037030020024188076a41186a2205201137030020024188076a41106a2207201237030020024188076a41086a220a200e37030020024188076a41386a220d2015290300370300200220133703880720024188066a41386a2215200d29030037030020024188066a41306a220d200129030037030020024188066a41286a2201200329030037030020024188066a41206a2203200429030037030020024188066a41186a2204200529030037030020024188066a41106a2205200729030037030020024188066a41086a2207200a290300370300200220022903880737038806200241c8066a41186a220a200241e8066a41186a290300370300200241c8066a41106a2216200241e8066a41106a290300370300200241c8066a41086a2217200241e8066a41086a290300370300200220022903e8063703c806200241a8056a41186a2218200a290300370300200241a8056a41106a220a2016290300370300200241a8056a41086a22162017290300370300200220022903c8063703a805200241e8046a41386a22172015290300370300200241e8046a41306a2215200d290300370300200241e8046a41286a220d2001290300370300200241e8046a41206a22012003290300370300200241e8046a41186a22032004290300370300200241e8046a41106a22042005290300370300200241e8046a41086a2205200729030037030020022002290388063703e804200241c8026a41186a2018290300370300200241c8026a41106a200a290300370300200241c8026a41086a2016290300370300200220022903a8053703c80220024188026a41386a201729030037030020024188026a41306a201529030037030020024188026a41286a200d29030037030020024188026a41206a200129030037030020024188026a41186a200329030037030020024188026a41106a200429030037030020024188026a41086a2005290300370300200220022903e80437038802200241c8036a41186a2201200241e8036a41186a290300370300200241c8036a41106a2203200241e8036a41106a290300370300200241c8036a41086a2204200241e8036a41086a290300370300200220022903e8033703c803200241a8036a41186a200241c8046a41186a290300370300200241a8036a41106a200241c8046a41106a290300370300200241a8036a41086a200241c8046a41086a290300370300200220022903c8043703a803200241e8026a41386a20024188046a41386a290300370300200241e8026a41306a20024188046a41306a290300370300200241e8026a41286a20024188046a41286a290300370300200241e8026a41206a20024188046a41206a290300370300200241e8026a41186a20024188046a41186a290300370300200241e8026a41106a20024188046a41106a290300370300200241e8026a41086a20024188046a41086a29030037030020022002290388043703e802200241e8016a41186a2001290300370300200241e8016a41106a2003290300370300200241e8016a41086a2004290300370300200220022903c8033703e801420121090b200241c8016a41186a2201200241a8036a41186a290300370300200241c8016a41106a2203200241a8036a41106a290300370300200241c8016a41086a2204200241a8036a41086a29030037030020024188016a41086a2205200241e8026a41086a29030037030020024188016a41106a2207200241e8026a41106a29030037030020024188016a41186a220a200241e8026a41186a29030037030020024188016a41206a220d200241e8026a41206a29030037030020024188016a41286a2215200241e8026a41286a29030037030020024188016a41306a2216200241e8026a41306a29030037030020024188016a41386a2217200241e8026a41386a290300370300200220022903a8033703c801200220022903e80237038801200241e8006a41186a2218200241c8026a41186a290300370300200241e8006a41106a2219200241c8026a41106a290300370300200241e8006a41086a221a200241c8026a41086a290300370300200241286a41386a221b20024188026a41386a290300370300200241286a41306a221c20024188026a41306a290300370300200241286a41286a221d20024188026a41286a290300370300200241286a41206a221e20024188026a41206a290300370300200241286a41186a221f20024188026a41186a290300370300200241286a41106a222020024188026a41106a290300370300200241286a41086a222120024188026a41086a290300370300200220022903c8023703682002200229038802370328200241086a41186a2222200241e8016a41186a290300370300200241086a41106a2223200241e8016a41106a290300370300200241086a41086a2224200241e8016a41086a290300370300200220022903e801370308200041186a200c360200200020083703102000200937030820002006370300200020022903c80137021c200041246a20042903003702002000412c6a2003290300370200200041346a2001290300370200200020022903880137023c200041c4006a2005290300370200200041cc006a2007290300370200200041d4006a200a290300370200200041dc006a200d290300370200200041e4006a2015290300370200200041ec006a2016290300370200200041f4006a20172903003702002000200b36027c20004198016a201829030037020020004190016a201929030037020020004188016a201a29030037020020004180016a2002290368370200200041d8016a201b290300370200200041d0016a201c290300370200200041c8016a201d290300370200200041c0016a201e290300370200200041b8016a201f290300370200200041b0016a2020290300370200200041a8016a2021290300370200200041a0016a2002290328370200200041f8016a2022290300370300200041f0016a2023290300370300200041e8016a2024290300370300200041e0016a20022903083703000c070b200441ff0171450d05200241003a00a80a0c050b200441ff0171450d04200241003a00a80a0c040b200441ff0171450d03200241003a00c80a0c030b200441ff0171450d02200241003a00a80a0c020b200441ff0171450d01200241003a00c80a0c010b200042023703080c010b200042023703080b200241d00d6a24000bdc1704087f037e037f027e230041a0086b220224000240024002400240024002400240024002400240024002400240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020060e06010203040506070b200041073a00000c0a0b20024190046a200110e40102402002280290042207450d0020022802940421080240200128020022032802042204450d0020024198046a2802002109200328020022052d0000210620032004417f6a3602042003200541016a3602004100210302400240024020060e020100030b41002104200241003a00b0040340200128020022032802042205450d0220024190046a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00b0042003210420034120470d000b200241e0016a41086a20024190046a41086a290300220a37030020024190016a41186a20024190046a41186a290300220b37030020024190016a41106a20024190046a41106a290300220c370300200241c0016a41186a200b370300200241c0016a41106a200c370300200241c0016a41086a200a37030020022002290390043703c001410121030b200241f0006a41186a2204200241c0016a41186a290300370300200241f0006a41106a2205200241c0016a41106a290300370300200241f0006a41086a2206200241c0016a41086a290300370300200220022903c00137037020012802002201280204220d4104490d092001280200220e280000210f2001200d417c6a3602042001200e41046a360200200241d0006a41086a2006290300220a370300200241d0006a41106a2005290300220b370300200241d0006a41186a2004290300220c370300200220022903702210370350200020033a0001200041013a0000200041026a20103700002000410a6a200a370000200041126a200b3700002000411a6a200c370000200041306a200f3602002000412c6a2009360100200041286a2008360100200041246a2007360100200041226a20022f014e3b01000c0c0b200441ff0171450d00200241003a00b0040b200041073a00000c080b200041073a00000c090b2001200128020441016a220336020402400240200320012802084b0d0020024190046a20011095012002280290042103200241e0016a20024190046a41047241ac0210e9081a2003411c460d0020024190046a200241e0016a41ac0210e9081a41b002102c22040d010c0b0b200041073a00000c090b20042003360200200441046a20024190046a41ac0210e9081a20012001280204417f6a360204200241086a200110ad012002280208450d07200041073a00002004108b022004102e0c080b200241186a200110ad0102400240024020022802180d00200228021c21052001200128020441016a2203360204200320012802084b0d0120024190046a20011095012002280290042103200241e0016a20024190046a41047241ac0210e9081a2003411c460d0120024190046a200241e0016a41ac0210e9081a41b002102c2204450d0b20042003360200200441046a20024190046a41ac0210e9081a20012001280204417f6a360204200241106a200110ad0120022802100d0220022802142101200041033a0000200020022f00c0013b00012000410c6a2001360200200041086a2004360200200041046a2005360200200041106a200229039001370300200041036a200241c2016a2d00003a0000200041186a20024190016a41086a290300370300200041206a20024190016a41106a290300370300200041286a20024190016a41186a290300370300200041306a20024190016a41206a2903003703000c0a0b200041073a00000c090b200041073a00000c080b200041073a00002004108b022004102e0c070b41002104200241003a00b004024002400240024002400340200128020022032802042205450d0120024190046a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00b0042003210420034120470d000b200241e0016a41186a20024190046a41186a290300220a37030020024190016a41086a20024190046a41086a29030037030020024190016a41106a20024190046a41106a29030037030020024190016a41186a200a370300200220022903900437039001200241206a200110ad0120022802200d01200128020022012802042203450d0420022802242106200128020022042d0000210520012003417f6a3602042001200441016a3602004100210120050e020302040b0240200441ff0171450d00200241003a00b0040b200041073a00000c0a0b200041073a00000c090b410121010b200241c0016a41186a20024190016a41186a290300220a370300200241c0016a41106a20024190016a41106a290300220b370300200241c0016a41086a20024190016a41086a290300220c370300200220022903900122103703c001200041043a000020002010370001200041096a200c370000200041116a200b370000200041196a200a370000200041246a2006360200200041216a20013a0000200041286a2002290370370300200041306a200241f0006a41086a2903003703000c070b200041073a00000c060b41002104200241003a00b00402400240024002400340200128020022032802042205450d0120024190046a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00b0042003210420034120470d000b200241e0016a41186a20024190046a41186a290300220a37030020024190016a41086a20024190046a41086a29030037030020024190016a41106a20024190046a41106a29030037030020024190016a41186a200a370300200220022903900437039001200241c0006a200110ad0120022802400d0120022802442103200241306a200110da042002290330a70d022002290338210a200241286a200110ad0120022802280d03200228022c2101200241c0016a41186a20024190016a41186a290300220b370300200241c0016a41106a20024190016a41106a290300220c370300200241c0016a41086a20024190016a41086a2903002210370300200220022903900122113703c001200041053a000020002011370001200041096a2010370000200041116a200c370000200041196a200b370000200041216a20022f00703b0000200041236a200241f2006a2d00003a0000200041306a200a370300200041286a2001360200200041246a20033602000c090b0240200441ff0171450d00200241003a00b0040b200041073a00000c080b200041073a00000c070b200041073a00000c060b200041073a00000c050b41002104200241003a00b00402400340200128020022032802042205450d0120024190046a20046a200328020022062d00003a000020032005417f6a3602042003200641016a3602002002200441016a22033a00b0042003210420034120470d000b200241e0016a41186a20024190046a41186a290300220a37030020024190016a41086a220120024190046a41086a29030037030020024190016a41106a220320024190046a41106a29030037030020024190016a41186a2204200a370300200220022903900437039001200041063a00002000200229039001370001200041096a2001290300370000200041116a2003290300370000200041196a2004290300370000200041216a20022900c001370000200041296a200241c0016a41086a290000370000200041306a200241cf016a2900003700000c050b0240200441ff0171450d00200241003a00b0040b200041073a00000c040b200041073a00000c030b200041073a00000b200841ffffff3f71450d012007102e0c010b200228020c2101200041023a0000200020022f00c0013b0001200041086a2001360200200041046a20043602002000410c6a200229029001370200200041036a200241c0016a41026a2d00003a0000200041146a20024190016a41086a2902003702002000411c6a200241a0016a290200370200200041246a200241a8016a2902003702002000412c6a200241b0016a290200370200200041346a200241b8016a2802003602000b200241a0086a24000f0b1036000beb0401057f23004180056b2202240002400240024002400240024002400240024002400240200128020022032802042204450d00200328020022052d0000210620032004417f6a3602042003200541016a36020020060e03010203040b200041043b01000c090b2002200110ad0102402002280200450d00200241003602200c080b200241206a200120022802041094012002280220450d07200241da026a200241206a41086a280200360100200220022903203701d202200041013b0100200020022901d002370102200041086a200241d6026a2901003701000c080b024002402001280200220328020422044102490d00200328020022052f0000210620032004417e6a3602042003200541026a3602002001200128020441016a2203360204200320012802084b0d01200241d0026a200110950120022802d0022103200241206a200241d0026a41047241ac0210e9081a2003411c460d01200241d0026a200241206a41ac0210e9081a41b002102c2204450d0620042003360200200441046a200241d0026a41ac0210e9081a200041046a2004360200200020063b0102200041023b010020012001280204417f6a3602040c090b200041043b01000c080b200041043b01000c070b200241086a200110ad012002280208450d01200241003602200c020b200041043b01000c050b200241206a2001200228020c10940120022802200d020b200041043b01000c030b1036000b200241da026a200241206a41086a280200360100200220022903203701d202200041033b0100200020022901d002370102200041086a200241d6026a2901003701000c010b200041043b01000b20024180056a24000ba40e01127f230041b0026b2203240020012802002104200128020422052f01062106200341f0006a41386a2207200541086a2208200128020822094106746a220141386a290000370300200341f0006a41306a220a200141306a290000370300200341f0006a41286a220b200141286a290000370300200341f0006a41206a220c200141206a290000370300200341f0006a41186a220d200141186a290000370300200341f0006a41106a220e200141106a290000370300200341f0006a41086a220f200141086a2900003703002003200129000037037020012008200941016a22104106746a20062009417f736a220841067410ea081a200341b0016a41186a2211200541c8056a221220094105746a220141186a290000370300200341b0016a41106a2213200141106a290000370300200341b0016a41086a2214200141086a290000370300200320012900003703b0012001201220104105746a200841057410ea081a20052006417f6a22013b0106200341d0016a41386a2007290300370300200341d0016a41306a200a290300370300200341d0016a41286a200b290300370300200341d0016a41206a200c290300370300200341d0016a41186a200d290300370300200341d0016a41106a200e290300370300200341d0016a41086a200f29030037030020034198026a2014290300370300200341a0026a2013290300370300200341a8026a2011290300370300200320032903703703d001200320032903b00137039002200341106a200341d0016a41e00010e9081a200341d0016a200341106a41e00010e9081a0240200141ffff037141044b0d0002400240024020052802002206450d00200441016a21080240024020052f010422070d0020062f01060d01200341246a4101360200200342013702142003419cc3cb0036021020034104360274200341849dc7003602702003200341f0006a360220200341106a418c9dc7001044000b024020062007417f6a22074102746a41a8086a280200220a2f0106200141ffff03716a41016a410b4b0d00200341286a2005360200200341206a200a360200200320043602242003200436021c200320073602182003200636021420032008360210200341b0016a200341106a4101200910cf060c040b200341286a2005360200200341206a200a360200200320043602242003200436021c200320073602182003200636021420032008360210200341106a410110d006200320103602b8010c020b0240200141ffff0371200741027420066a41ac086a28020022012f01066a41016a410b4b0d00200341286a2001360200200341206a2005360200200320043602242003200436021c200320073602182003200636021420032008360210200341b0016a200341106a4100200910cf060c030b200341286a2001360200200341206a2005360200200320043602242003200436021c200320073602182003200636021420032008360210200341106a410110d1060b200320093602b8010b200320053602b401200320043602b0010b20032802b801210920032802b001210420032802b40122052802002201450d0020012f0106220741044b0d00200141066a2108200441016a21060240034020012802002210450d01200741ffff0371210b200641016a210a024002400240024020012f010422070d0020102f01060d01200341246a4101360200200342013702142003419cc3cb0036021020034104360274200341849dc7003602702003200341f0006a360220200341106a418c9dc7001044000b20102007417f6a220c4102746a41a8086a28020021072003200136028801200320063602840120032007360280012003200636027c2003200c360278200320103602742003200a360270024020072f010620082f01006a41016a410b4b0d00200341106a41186a200341f0006a41186a280200360200200341106a41106a200341f0006a41106a290300370300200341106a41086a200341f0006a41086a29030037030020032003290370370310200341086a200341106a10d206200328020c2101200328020821060c030b200341f0006a4105200b6b10d0060c010b2003200741027420106a41ac086a280200220c36028801200320063602840120032001360280012003200636027c20032007360278200320103602742003200a360270024020082f0100200c2f01066a41016a410b4b0d00200341106a41186a200341f0006a41186a280200360200200341106a41106a200341f0006a41106a290300370300200341106a41086a200341f0006a41086a290300370300200320032903703703102003200341106a10d20620032802042101200328020021060c020b200341f0006a4105200b6b10d1060b410021010b2001450d02200141066a210820012f0106220741044d0d000c020b0b200741ffff03710d00200241013a00000b2000200341d0016a41e00010e908220141e8006a2009360200200141e4006a200536020020012004360260200341b0026a24000bc50701167f230041e0006b22042400024002400240200141186a28020022052f01062206200141106a28020022072f0106220820021b2003490d00200841016a220920066a220a410c4f0d01200128020c210b2001280208210c2001280200210d2001280204220e2f0106210f2007200a3b0106200441386a2210200e41086a2211200c4106746a221241386a290000370300200441306a2213201241306a290000370300200441286a2214201241286a290000370300200441206a2215201241206a290000370300200441186a2216201241186a290000370300200441106a2217201241106a290000370300200441086a2218201241086a2900003703002004201229000037030020122011200c41016a22014106746a200f200c417f736a221141067410ea081a200741086a221920084106746a221241386a2010290300370000201241306a2013290300370000201241286a2014290300370000201241206a2015290300370000201241186a2016290300370000201241106a2017290300370000201241086a201829030037000020122004290300370000201920094106746a200541086a200641067410e9081a200441c0006a41186a2210200e41c8056a2213200c4105746a221241186a290000370300200441c0006a41106a2214201241106a290000370300200441c0006a41086a2215201241086a290000370300200420122900003703402012201320014105746a201141057410ea081a200741c8056a221120084105746a221241186a2010290300370000201241106a2014290300370000201241086a201529030037000020122004290340370000201120094105746a200541c8056a200641057410e9081a200e41a8086a221220014102746a200c410274220c20126a41086a200f2001417f736a41027441046a10ea081a02402001200f4f0d00200c200e6a41ac086a211203402012280200220c20013b0104200c200e360200201241046a2112200f200141016a2201470d000b0b200e200e2f0106417f6a3b01060240200d4102490d002006200a20096b470d03200720094102746a41a8086a200541a8086a200641016a41027410e9081a200a20084d0d00200641016a210c200720084102746a41ac086a21012009211203402001280200220e20123b0104200e2007360200200141046a2101201241016a2112200c417f6a220c0d000b0b2005102e200020073602042000200b36020020002009410020021b20036a360208200441e0006a24000f0b41f09fc7004191014184a1c7001039000b419c9dc700412a41c89dc7001039000b41f49bc7004128419c9cc7001039000be307040c7f017e017f0c7e0240024002400240200041186a2802002f0106220220016a2203410c4f0d00200041106a28020022042f010622052001490d012004200520016b22063b0106200041186a220428020020033b0106200428020041086a220720014106746a2007200241067410ea081a200428020041c8056a220720014105746a2007200241057410ea081a2005200641016a22076b22022001417f6a470d02200428020041086a200041106a220828020020074106746a41086a2002410674220910e9081a200428020041c8056a200828020020074105746a41c8056a2002410574220a10e9081a200041046a280200220b2000280208220c4106746a220241c0006a220d290000210e2008280200220f20064105746a220541e0056a2900002110200541c8056a2900002111200541d0056a2900002112200541d8056a2900002113200f20064106746a220641086a2900002114200641106a2900002115200641186a2900002116200641206a2900002117200641286a2900002118200641306a2900002119200641386a290000211a200d200641c0006a290000370000200241386a2206290000211b2006201a370000200241306a2206290000211a20062019370000200241286a2206290000211920062018370000200241206a2206290000211820062017370000200241186a2206290000211720062016370000200241106a2206290000211620062015370000200241086a2202290000211520022014370000200b200c4105746a220241d8056a2206290000211420062013370000200241d0056a2206290000211320062012370000200241c8056a2206290000211220062011370000200241e0056a2202290000211120022010370000200428020020096a220241c0006a200e370000200241386a201b370000200241306a201a370000200241286a2019370000200241206a2018370000200241186a2017370000200241106a2016370000200241086a20153700002004280200200a6a220241e0056a2011370000200241d8056a2014370000200241d0056a2013370000200241c8056a2012370000200028020c21020240024020002802140d002002450d010c050b2002450d04200828020021022004280200220641a8086a2200200141027422046a2000200320016b41027441046a10ea081a2000200220074102746a41a8086a200410e9081a200341016a21044100210103402000280200220220013b010420022006360200200041046a21002004200141016a2201470d000b0b0f0b41e49ec700413341989fc7001039000b41a89fc700412741d09fc7001039000b41f49bc7004128419c9cc7001039000b41e2a0cc00412841e09fc7001039000bb60806097f017e037f047e017f087e0240024002400240200041106a28020022022f0106220320016a2204410c4f0d00200041186a2802002f010622052001490d01200220043b0106200041186a2206280200200520016b22073b0106200041046a2802002208200028020822094106746a220241206a220a290000210b2006280200220c2001417f6a220d410574220e6a220541e0056a290000210f200541c8056a2900002110200541d0056a2900002111200541d8056a2900002112200c200d41067422136a220541286a2900002114200541306a2900002115200541386a2900002116200541c0006a2900002117200541086a2900002118200541106a2900002119200541186a290000211a200a200541206a290000370000200241186a2205290000211b2005201a370000200241106a2205290000211a20052019370000200241086a2205290000211920052018370000200241c0006a2205290000211820052017370000200241386a2205290000211720052016370000200241306a2205290000211620052015370000200241286a2202290000211520022014370000200820094105746a220241d8056a2205290000211420052012370000200241d0056a2205290000211220052011370000200241c8056a2205290000211120052010370000200241e0056a220229000021102002200f370000200041106a220528020020034106746a220241c0006a2018370000200241386a2017370000200241306a2016370000200241286a2015370000200241206a200b370000200241186a201b370000200241106a201a370000200241086a2019370000200528020020034105746a220241e0056a2010370000200241d8056a2014370000200241d0056a2012370000200241c8056a2011370000200d2004200341016a22026b470d02200528020020024106746a41086a200628020041086a201310e9081a200528020020024105746a41c8056a200628020041c8056a200e10e9081a200628020041086a220d200d20014106746a200741067410ea081a200628020041c8056a220d200d20014105746a200741057410ea081a200028020c210d0240024020002802140d00200d450d010c050b200d450d042005280200220d20024102746a41a8086a2006280200220641a8086a22002001410274220510e9081a2000200020056a200741027441046a10ea081a0240200420034d0d002003410274200d6a41ac086a210003402000280200220520023b01042005200d360200200041046a2100200241016a21022001417f6a22010d000b0b2007417f460d00200641a8086a2102200741016a21054100210003402002280200220120003b010420012006360200200241046a21022005200041016a2200470d000b0b0f0b41d89dc7004132418c9ec7001039000b419c9ec700412841c49ec7001039000b41f49bc7004128419c9cc7001039000b41e2a0cc00412841d49ec7001039000b8c0701157f230041e0006b2202240002400240200141106a28020022032f0106220441016a2205200141186a28020022062f010622076a2208410c4f0d00200128020821092001280200210a2001280204220b2f0106210c200320083b0106200241386a220d200b41086a220e20094106746a220f41386a290000370300200241306a2210200f41306a290000370300200241286a2211200f41286a290000370300200241206a2212200f41206a290000370300200241186a2213200f41186a290000370300200241106a2214200f41106a290000370300200241086a2215200f41086a2900003703002002200f290000370300200f200e200941016a22014106746a200c2009417f736a220e41067410ea081a200341086a221620044106746a220f41386a200d290300370000200f41306a2010290300370000200f41286a2011290300370000200f41206a2012290300370000200f41186a2013290300370000200f41106a2014290300370000200f41086a2015290300370000200f2002290300370000201620054106746a200641086a200741067410e9081a200241c0006a41186a220d200b41c8056a221020094105746a220f41186a290000370300200241c0006a41106a2211200f41106a290000370300200241c0006a41086a2212200f41086a2900003703002002200f290000370340200f201020014105746a200e41057410ea081a200341c8056a220e20044105746a220f41186a200d290300370000200f41106a2011290300370000200f41086a2012290300370000200f2002290340370000200e20054105746a200641c8056a200741057410e9081a200b41a8086a220f20014102746a20094102742209200f6a41086a200c2001417f736a41027441046a10ea081a02402001200c4f0d002009200b6a41ac086a210f0340200f280200220920013b01042009200b360200200f41046a210f200c200141016a2201470d000b0b200b200b2f0106417f6a3b01060240200a4102490d002007200820056b470d02200320054102746a41a8086a200641a8086a200741016a41027410e9081a200820044d0d00200741016a210f200441027420036a41ac086a210103402001280200220920053b010420092003360200200141046a2101200541016a2105200f417f6a220f0d000b0b2006102e2000200b3602042000200a360200200241e0006a24000f0b419c9dc700412a41c89dc7001039000b41f49bc7004128419c9cc7001039000b130020004108360204200041a8a1c7003602000bb90706057f017e017f017e037f037e23004180016b22022400200241106a200110d8062002280210210120022002280218220336022420022001360220200241286a2001200310ed02024002400240024020022802282204450d00200228022c21052002200241306a28020036023c20022004360238200241086a200241386a10ab010240024020022802080d0002400240200228020c2206200228023c4105762201200120064b1b22014105742203417f4c0d000240024020010d00410821030c010b2003102c2203450d080b2001ad2107024002402006450d00200241d8006a41036a21080340200241e8006a200241386a10a50120022d00684101460d04200228023c22014110490d04200229006921092002200141706a220a36023c20022002280238220b41106a220c360238200a450d04200b41086a290000210d200b290000210e20022001416f6a36023c2002200c41016a3602384100210b024002400240200c2d00000e03020001070b4101210b0c010b4102210b0b20022002280058360240200220082800003600432002200228004336005320022002280240360250200220022802503602482002200228005336004b02402007422088220fa722012007a7470d00200141016a220c2001490d042001410174220a200c200c200a491b220c4104200c41044b1b220c41ffffff3f71200c46410374210a200c410574210c0240024020010d00200241003602680c010b20024108360270200220033602682002200f4205863e026c0b200241d8006a200c200a200241e8006a107d2002280260210c20022802584101460d03200228025c2103200742808080807083200c410576ad8421070b200320014105746a2201200b3a00182001200d3703082001200e37030020012009370310200120022802483600192001411c6a200228004b36000020074280808080107c21072006417f6a22060d000b0b2003450d030c040b200c0d070b1038000b0240200742ffffff3f83500d002003102e0b0b4100210320024100360260200242013703582002410a3602442002200241206a3602402002200241d8006a360250200241fc006a41013602002002420137026c200241909dc5003602682002200241c0006a360278200241d0006a419cebc000200241e8006a103d1a2002280258200228026010ef02200228025c450d002002280258102e0b02402005450d002004102e0b20030d010b20004100360208200042083702000c010b20002007370204200020033602000b02402002280214450d002002280210102e0b20024180016a24000f0b1036000bf91106027f0a7e017f017e037f047e230041a0026b22032400200341c0006a200010c802200341a0016a20032802402204200328024810c902200341a0016a41386a2903002105200341a0016a41306a2903002106200341a0016a41286a2903002107200341a0016a41206a2903002108200341a0016a41186a2903002109200341a0016a41106a290300210a200341e0016a290300210b20032903a801210c20032903a001210d200341f0006a41086a200341f0016a2903003703002003200341e8016a29030037037002400240200d4201510d0042002108200341386a4200370300200341306a4200370300200341286a4200370300200341206a4200370300200341186a4200370300200341106a4200370300200341086a4200370300200342003703004200210c4200210a4200210942002107420021064200210d420021050c010b200341206a2007370300200341286a2006370300200341106a2009370300200341306a2005370300200320083703182003200c3703002003200b3703382003200a370308200c210d200a21050b02402003280244450d002004102e0b02400240200d2005844200520d0020072003290310842006200341186a29030084844200520d002003290330200341386a2903008450450d004200210e4100210f0c010b4201210e4101210f0b420021100240200e4201510d004200210c4200210a42002109420021080b0240024020020d00420021054200210b420021070c010b2002410574211142002110420021054200210b42002107200121040340024002400240200441186a2d00002212417f6a41ff017141014b0d002007200441086a2903002206200b2004290300220d56200720065620072006511b22131b2107200b200d20131b210b201241ff01714102460d010c020b201241ff01710d01200441086a29030021062004290300210d0b200520062010200d56200520065620052006511b22121b21052010200d20121b21100b200441206a2104201141606a22110d000b0b200341d8016a2005370300200341c8016a221120073703002003200c3703a001200320103703d0012003200b3703c001200320083703b8012003200a3703a801200320093703b001420021074201210d200e420152ad210b02400240427f200c20097c22062006200c542204200a20087c2004ad7c2206200a542006200a511b22041b221042ffc7afa02556427f200620041b22064200522006501b0d002009200c842008200a848422075021044200210d2007420052ad21070c010b200341d0016a290300211420112903002115200341c0016a2903002116200341b0016a290300210e20032903b801211720032903a801210820032903a0012109410121040b200341e8006a2006370300200341e0006a22112010370300200341d0006a200a3703002003200c370348200320073703582003200b3703400240024002400240200f200d420152720d00200320003602a0012000200341a0016a10bd060c010b0240200f4101732212200d420151720d00200320003602a0012000200341a0016a10be0641ff017122124103460d01024020120e03030200030b20040d03200320113602a001200341a0016a10cc020c030b200d4201522012710d010b20034180016a200010c802200341a0016a2003280280012211200328028801221210c90220032903a0012106200341f0006a41086a2204200341f0016a2903003703002003200341e8016a2903003703700240024020064201510d0020034190016a41086a420037030020034200370390010c010b20034190016a41086a200429030037030020032003290370370390010b200341e8016a200329039001370300200341f0016a20034190016a41086a290300370300200342013703a001200341d8016a20144200200d42015122041b370300200341d0016a2015420020041b370300200341a0016a41286a2016420020041b370300200341c0016a2017420020041b370300200341b8016a200e420020041b370300200341a0016a41106a2008420020041b370300200341e0016a2005420020041b37030020032009420020041b3703a80120112012200341a0016a41086a10c8050240200328028401450d002011102e0b200341c0006a41106a290300210a200341c0006a41286a29030021062003290348210c200329036021102003290340210b200329035821070b0240200b4201520d00200341d8016a200a370300200341d0016a200c370300200341a0016a41086a41003a0000200341a9016a2000290000370000200341b1016a200041086a290000370000200341b9016a200041106a290000370000200341c1016a200041186a290000370000200341033a00a001200341a0016a10fe010b02400240200750450d00420021070c010b200341a0016a41186a200041186a290000370300200341a0016a41106a200041106a290000370300200341a0016a41086a200041086a290000370300200320002900003703a001420121070b200341186a200341a0016a41186a2204290300220d370300200341106a200341a0016a41106a22112903002205370300200341086a200341a0016a41086a290300220b370300200320032903a001220a370300200341d0016a2006370300200341c8016a221220103703002011200b37030020042005370300200341c0016a200d370300200320073703a0012003200a3703a801200341a0016a10d20420032903a001500d0020032012360240200341c0006a10cc020b200341a0016a200010d80620032802a001221120032802a801108f022104024020032802a401450d002011102e0b024002400240024020020d00200341a0016a200010d80620032802a001221120032802a80110ff01024020032802a401450d002011102e0b2004450d012000108a060c010b2003200010d80620024105744104722211417f4c0d0120032802082113200328020021122011102c220f450d02200341003602a801200320113602a4012003200f3602a0012002200341a0016a107620012002200341a0016a109e012012201320032802a001221120032802a80110b201024020032802a401450d002011102e0b02402003280204450d002012102e0b20040d0020001083061a0b200341a0026a24000f0b1038000b1036000bc70101047f230041c0006b220224004109210341ceeac7002104410221050240024002400240200141ff01710e0400010203000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602242002418883ca003602202002200241206a360218200241086a41b4eac7001044000b410a210341c4eac7002104410021050c010b411721034194a4c7002104410121050b20004183323b0100200041086a2003360200200041046a2004360200200041026a20053a0000200241c0006a24000bcf0202027f047e230041f0006b220724000240024020022003844200520d00200041063a00000c010b200741e0006a200110c802200741086a20072802602208200728026810c90220072903084201512101200741386a2903002102200741306a2903002103200741c8006a2903002109200741c0006a290300210a02402007280264450d002008102e0b2002420020011b210b2003420020011b210c2009420020011b2102200a420020011b210302400240024041004102410120044101711b200441ff01714101461b0e03020100020b200b2002200c200356200b200256200b2002511b22011b2102200c200320011b21030c010b200c2103200b21020b02402003200558200220065820022006511b0d00200041830a3b0100200041086a4115360200200041046a41a0a3c700360200200041026a41013a00000c010b200041063a00000b200741f0006a24000bac0201037f230041e0006b22022400200241f8fcc6004108108102200241106a41f0faca004105108102024002404120102c2203450d002002422037023420022003360230200241306a200141201074200241c0006a200228023022012002280238220310d803200241dc006a200120036a360200200220013602582002200241d0006a3602542002200241c0006a360250200241206a200241d0006a107c02402002280234450d002001102e0b2002280228220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b20004100360208200020013602042000200436020020002002411010742000200241106a411010742000200228022022012003107402402002280224450d002001102e0b200241e0006a24000f0b1036000b1038000b8e3504087f017e047f0d7e230041a0036b2201240020014190016a2202420037030020014188016a22034200370300200141f8006a41086a2204420037030020014200370378200141b0026a41a0dac800410f1081022004200141b0026a41086a2205290000370300200120012900b002370378200141b0026a41afdac800410d10810220022005290000370300200320012900b00237030020014120360294032001200141f8006a36029003200141e8006a200141f8006a412010ed0202400240200128026822020d00410221040c010b200128026c21062001200141e8006a41086a28020022043602e402200120023602e0020240024020044104490d00200228000021052001200241046a3602e00220012004417c6a22073602e40220074104490d00200228000421072001200441786a3602e4022001200241086a3602e002200141e0006a200141e0026a10ab0102402001280260450d00200141003602f0020c010b200141f0026a200141e0026a200128026410990120012802f0022208450d0020012902f402210941002104200141003a00d0020240024020012802e402220a450d0020012802e002220b2d0000210c2001200a417f6a220d3602e4022001200b41016a3602e0020240200c4101460d000c040b200d41044f0d010b0c020b200b280001210c2001200a417b6a3602e4022001200b41056a3602e002410121040c010b200141003602b802200142013703b0022001410a3602d402200120014190036a3602d0022001200141b0026a36029c0320014184036a4101360200200142013702f402200141909dc5003602f0022001200141d0026a360280032001419c036a419cebc000200141f0026a103d1a20012802b00220012802b80210ef02024020012802b402450d0020012802b002102e0b410221040b2006450d002002102e0b0240024002400240024002400240024020044102460d0020014188036a200c360200200141fc026a20093702002001200436028403200120083602f802200120073602f402200120053602f002200141f8026a2108024020052000470d00024020044101460d00200141b0026a200810e00120014188016a200736020020014184016a200141b8026a28020036020020014100360278200120012903b00237027c200141f8006a108c060c010b200141b0026a200810e0012001418c016a2007360200200141f8006a41086a20012903b00237030020014188016a200141b0026a41086a2802003602002001200c36027c20014101360278200141f8006a108c060b024020012802f40220012802f0026a2000470d0020014180036a28020041286c4105722202417f4c0d022002102c2204450d0620014100360280012001200236027c20012004360278200141013a00d002200141f8006a200141d0026a4101107420012802f80221022001280280032204200141f8006a10760240200441286c2204450d00200220046a21040340200141f8006a2002412010742001200241206a2903003703b002200141f8006a200141b0026a41081074200241286a22022004470d000b0b41bcdac80041142001280278220220012802800110b2010240200128027c450d002002102e0b200141f8006a41086a2202200829020037030020014188016a2204200841086a2802003602002001410036027c200141073a0078200141f8006a10fe0120014190016a4200370300200442003703002002420037030020014200370378200141b0026a41a0dac800410f1081022002200141b0026a41086a2204290000370300200120012900b002370378200141b0026a41afdac800410d108102200341086a2004290000370000200320012900b002370000200141f8006a412010ff010c010b20012802fc022202450d00200241286c450d0020012802f802102e0b20014190016a420037030020014188016a4200370300200141f8006a41086a2202420037030020014200370378200141b0026a41a0dac800410f1081022002200141b0026a41086a2204290000370300200120012900b002370378200141b0026a41d0dac8004105108102200341086a2004290000370000200320012900b002370000200141203602e4022001200141f8006a3602e002200141e8006a200141f8006a412010ed02024020012802682202450d00200141e8006a41086a2802002105200128026c210741002104200141003a00d0020240024002402005450d0002400240024020022d00000e0405000102030b2005417f6a4108490d0220022900012109410121040c040b410221040c020b2005417f6a4108490d0020022900012109410321040c020b200141003602b802200142013703b0022001410a3602d4022001200141e0026a3602d0022001200141b0026a3602900320014184036a4101360200200142013702f402200141909dc5003602f0022001200141d0026a3602800320014190036a419cebc000200141f0026a103d1a20012802b00220012802b80210ef02024020012802b402450d0020012802b002102e0b410421040b0b02402007450d002002102e0b024002402004417f6a0e03010200020b2009422088a7210202402009a722042000470d00200141043602782001200236027c200141f8006a108c060b200220046a2000470d0120014190016a420037030020014188016a4200370300200141f8006a41086a2202420037030020014200370378200141b0026a41a0dac800410f1081022002200141b0026a41086a2204290000370300200120012900b002370378200141b0026a41d0dac8004105108102200341086a2004290000370000200320012900b002370000200141f0026a41002001200110da06200141f8006a412020012802f002220220012802f80210b201024020012802f402450d002002102e0b2001410236027c200141073a0078200141f8006a10fe010c010b2009422088a7210202402009a722042000470d00200141033602782001200236027c200141f8006a108c060b200220046a2000470d0020014190016a420037030020014188016a4200370300200141f8006a41086a2202420037030020014200370378200141b0026a41a0dac800410f1081022002200141b0026a41086a2204290000370300200120012900b002370378200141b0026a41d0dac8004105108102200341086a2004290000370000200320012900b002370000200141f0026a41022001200110da06200141f8006a412020012802f002220220012802f80210b201024020012802f402450d002002102e0b2001410136027c200141073a0078200141f8006a10fe010b200141f0026a109403024020012903f002427f7c4202540d00200141f0026a41106a2903002109200141b0026a41186a22044200370300200141b0026a41106a22034200370300200141b0026a41086a22024200370300200142003703b002200141e8006a41e8fcc60041091081022002200141e8006a41086a2200290000370300200120012900683703b002200141e8006a41b08ec90041031081022004200029000037030020032001290068370300200141d0006a200141b0026a108503200141c0006a2001290358420020012802501b220e42e80780420042e807420010e808200141f8006a41186a22044200370300200141f8006a41106a22034200370300200141f8006a41086a2200420037030020014200370378200141b0026a4192fdc600410710810220002002290000370300200120012900b002370378200141b0026a41d0adc600410910810220042002290000370300200320012900b002370300200141003602b802200142013703b002200120093e0268200141b0026a200141e8006a41041074200141013a00d002200141b0026a200141d0026a41011074200120012903402209200e42e807827c220e427f200141c0006a41086a290300200e200954ad7c501b370368200141b0026a200141e8006a41081074200141f8006a412020012802b002220220012802b80210b20120012802b402450d002002102e0b20014190016a22034200370300200141f8006a41106a22024200370300200141f8006a41086a2204420037030020014200370378200141f0026a4190dac800410a1081022004200141f0026a41086a2200290000370300200120012900f002370378200141f0026a419adac800410610810220032000290000370300200220012900f002370300200141f8006a412010ff0120034200370300200242003703002004420037030020014200370378200141f0026a4190dac800410a10810220042000290000370300200120012900f002370378200141f0026a41d097c900410c10810220032000290000370300200220012900f002370300200141f8006a412010ff0120034200370300200242003703002004420037030020014200370378200141f0026a4180fdc600411210810220042000290000370300200120012900f002370378200141f0026a41dc98c500411110810220032000290000370300200220012900f002370300200141286a200141f8006a10e904200141286a41106a290300210f2001290330211020012802282103200141f8006a4201420042808090bbbad6adf00d420042c0843d420010ea040240024020012802784101470d00427f2111427f21090c010b20022903002109200429030021110b200141f8006a10a903200141f8006a41086a200141a8016a200141a0016a290300501b290300210e200141c8026a22044200370300200141b0026a41106a22004200370300200141b0026a41086a22054200370300200142003703b002200141e8006a41d9fcc60041061081022005200141e8006a41086a2207290000370300200120012900683703b002200141e8006a41d4f2cb00410b1081022004200729000037030020002001290068370300200141f0026a200141b0026a10f20420012903f802211220012903f0022113200141f0026a4203420042808090bbbad6adf00d420042a08d06420010ea04200e2012420020134201511b22122012200e561b21120240024020012802f0024101470d00427f2113427f21140c010b200141f0026a41106a2903002114200141f0026a41086a29030021130b200141186a200e42808090bbbad6adf00d8222154200428080e4ceceb58bbc03420010e808200141086a2001290318200141186a41086a29030042808090bbbad6adf00d420010e608200141f0026a2012200e42808090bbbad6adf00d80428080e4ceceb58bbc037e20154202882001290308428080c89d9deb96f80656200141086a41086a29030022154200522015501bad7c7c2215201220155622041b22162015201220041b22177d42002016201754ad7d42808090bbbad6adf00d4200200e4201200e4201561b420010ea040240024020012802f0024101470d00427f210e427f21160c010b20014180036a2903002116200141f0026a41086a290300210e0b200141f0026a200e2016200e201642808090bbbad6adf00d420010ea040240024020012802f0024101470d00427f2117427f21180c010b20014180036a2903002118200141f8026a29030021170b200141f0026a201320142013201442808090bbbad6adf00d420010ea040240024020012802f0024101470d00427f2119427f211a0c010b20014180036a290300211a200141f8026a29030021190b200141f0026a2019201a42808090bbbad6adf00d4200428080a0f6f4acdbe01b420010ea0420012802f0024101460d052011201042808090bbbad6adf00d20031b22195421042009200f420020031b220f5121032009200f54210020014180036a22052903002110200141f8026a2207290300211a200141f0026a20132014200e201642808090bbbad6adf00d420010ea040240024020012802f0024101470d00427f2116427f21140c010b20052903002114200729030021160b2004200020031b2104200141f0026a201a20102017201842808090bbbad6adf00d420010ea040240024020012802f0024101470d00427f2110427f21170c010b20014180036a2903002117200141f8026a29030021100b200f200920041b210e2019201120041b21130240024020122015540d00427f2115200141f0026a427f201620107c221220122016542204201420177c2004ad7c221220145420122014511b22041b427f201220041b2013200e42808090bbbad6adf00d420010ea040240024020012802f0024101470d00427f21120c010b20014180036a2903002112200141f8026a29030021150b427f200e20127c201320157c22142013542204ad7c221220042012200e542012200e511b22041b220e2009427f201420041b2212201156200e200956200e2009511b22041b21092012201120041b210e0c010b200141f0026a4200201620107d22122012201656201420177d2016201054ad7d221220145620122014511b22041b4200201220041b2013200e42808090bbbad6adf00d420010ea040240024020012802f0024101470d00427f2112427f21140c010b20014180036a2903002114200141f8026a29030021120b4200200e20147d2013201254ad7d2214201320127d22122013562014200e562014200e511b22041b220e20094200201220041b2212201156200e200956200e2009511b22041b21092012201120041b210e0b200141f8006a41186a4200370300200141f8006a41106a4200370300200141f8006a41086a2204420037030020014200370378200141f0026a4180fdc60041121081022004200141f0026a41086a2203290000370300200120012900f002370378200141f0026a41dc98c5004111108102200241086a2003290000370000200220012900f002370000200120093703f8022001200e3703f002200141f8006a4120200141f0026a411010b201200141b0026a41186a22044200370300200141b0026a41106a22024200370300200141b0026a41086a22034200370300200142003703b002200141e8006a41e8fcc60041091081022003200141e8006a41086a2200290000370300200120012900683703b002200141e8006a41d48ec90041091081022004200029000037030020022001290068370300200141b0026a108603220441ff01714102460d06200141b0026a412010ff012004410171450d06200141b0026a41186a4200370300200141b0026a41106a4200370300200141b0026a41086a22044200370300200142003703b002200141e8006a41a8f8c60041041081022004200141e8006a41086a2203290000370300200120012900683703b002200141e8006a41978cc500410b108102200241086a200329000037000020022001290068370000200141f8006a200141b0026a10a004024020012d007822044102460d00200141b0026a412010ff010b200141f0026a41186a20014191016a290000370300200141f0026a41106a20014189016a290000370300200141f0026a41086a20014181016a290000370300200120012900793703f0020240200441037122044103460d0020040e03040004040b200141f8006a41186a200141f0026a41186a290300370300200141f8006a41106a200141f0026a41106a290300370300200141f8006a41086a200141f0026a41086a290300370300200120012903f002370378200141b0026a41186a4200370300200141b0026a41106a4200370300200141b0026a41086a22044200370300200142003703b002200141e8006a41a8f8c60041041081022004200141e8006a41086a2203290000370300200120012900683703b002200141e8006a41ee8bc500410c108102200241086a2003290000370000200220012900683700002001200141b0026a4120108e0241002104200141b0026a2001280204410020012802001b220510db06200141e8006a20012802b002220720012802b80210b60502400240200128026822030d00200141003602d802200142013703d00241012103410021000c010b2001200129026c22093702d402200120033602d0022009422088a721002009a721040b024020012802b402450d002007102e0b200041ff014b0d01200141b0026a41186a220c200141f8006a41186a290300370300200141b0026a41106a2208200141f8006a41106a290300370300200141b0026a41086a2206200141f8006a41086a290300370300200120012903783703b0020240024020002004470d00200441016a22072004490d022004410174220a2007200a20074b1b22074104200741044b1b220741ffffff3f71200746210a200741057421070240024020040d00200141003602680c010b200141f0006a4101360200200120033602682001200441057436026c0b200141e0026a2007200a200141e8006a107d200141e8026a280200210420012802e0024101460d01200120012802e40222033602d0022001200441057622043602d4020b200320004105746a220720012903b002370000200741186a200c290300370000200741106a2008290300370000200741086a20062903003700002001200041016a3602d8022005200141d0026a10dc060c030b20040d040b1038000b4120102c2200450d0220002001290378370000200041186a200141f8006a41186a290300370000200041106a200141f8006a41106a290300370000200041086a200141f8006a41086a29030037000020014281808080103702b402200120003602b002200541016a2205200141b0026a10dc062000102e200141b0026a41186a4200370300200141b0026a41106a4200370300200141b0026a41086a22004200370300200142003703b002200141e8006a41a8f8c60041041081022000200141e8006a41086a2207290000370300200120012900683703b002200141e8006a41ee8bc500410c108102200241086a20072900003700002002200129006837000020012005360268200141b0026a4120200141e8006a410410b2010b200441ffffff3f71450d002003102e0b200141c8026a22004200370300200141c0026a22054200370300200141b0026a41086a22044200370300200142003703b002200141e8006a41a8f8c60041041081022004200141e8006a41086a2203290000370300200120012900683703b002200141e8006a41848cc5004113108102200241086a2207200329000037000020022001290068370000200141b0026a412010ff01200042003703002005420037030020044200370300200142003703b002200141e8006a41a8f8c600410410810220042003290000370300200120012900683703b002200141e8006a41a28cc50041081081022007200329000037000020022001290068370000200141b0026a412010ff01200141a0036a24000f0b1036000b10dd06000b41d2d9c800412b4180dac8001039000bd00101017f230041106b2204240020004100360208200042013702000240024002400240024020010e0400010203000b200441003a000c20002004410c6a410110740c030b200441013a000c20002004410c6a410110742004200236020c20002004410c6a410410742004200336020c20002004410c6a410410740c020b200441023a000c20002004410c6a410110740c010b200441033a000c20002004410c6a410110742004200236020c20002004410c6a410410742004200336020c20002004410c6a410410740b200441106a24000b850201037f230041d0006b22022400200241086a41a8f8c6004104108102200241186a4197dbc8004111108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000bd60101057f230041206b220224002002200010db0602400240200128020822004105744104722203417f4c0d002001280200210120022802082104200228020021052003102c2206450d012002410036021820022003360214200220063602102000200241106a107602402000450d00200041057421000340200241106a200141201074200141206a2101200041606a22000d000b0b2005200420022802102201200228021810b20102402002280214450d002001102e0b02402002280204450d002005102e0b200241206a24000f0b1038000b1036000b110041c9dbcc00411f41e8dbcc001039000ba7cc010a077f017e027f017e177f037e0b7f027e067f037e230022012102200141a0136b41607122012400200141b8016a10f40402400240024020012d00b8014101470d0020012802bc012000470d00200141a0056a41014196a9c700412410df0602400240024020012802a0052203450d00200141a8056a28020041034d0d0002402003280000220420004b0d00200441056a2000490d010b20012802a405450d012003102e0c030b200120003602c001200120003602b003200141d80f6a41086a200141a0056a41086a280200360200200120012903a0053703d80f41014196a9c7004124200141d80f6a200141b0036a410410e0060d010b0c010b200141d80f6a10e10620012802d80f410b702105200141d80f6a10f5040240024002400240024020012802d80f2206450d00200141d80f6a41106a22072903002108200141e40f6a2209280200210a20012902dc0f210b200141d00e6a41186a22044200370300200141d00e6a41106a220c4200370300200141d00e6a41086a220d4200370300200142003703d00e200141d80f6a41a5fec600411a108102200d200141d80f6a41086a2203290000370300200120012900d80f3703d00e200141d80f6a4194c5c800410e10810220042003290000370300200c20012900d80f370300200141b0016a200141d00e6a4120108e02024020012802b001450d0020012802b401210e200120083702940d2001200a3602900d2001200b3702a405200120063602a005200141d80f6a200141900d6a200141a0056a10b904200141f00e6a41086a20032802002204360200200120012903d80f220b3703f00e200141800f6a41086a200141ec0f6a2802002206360200200120012902e40f22083703800f200141900d6a41086a20043602002001200b3703900d200141a0056a41086a2006360200200120083703a005200141d80f6a200e200141900d6a200141a0056a10e206200141a80a6a41086a200141d80f6a41186a280200360200200120072903003703a80a024020012802d80f4101470d000c060b2003280200210f2009280200210420012802dc0f2110200141900f6a41086a200141a80a6a41086a280200360200200120012903a80a3703900f200141900f6a20054200420010c004201020044102746a2107024002400240200e0d00201021032010210d0c010b201021032010210d2004450d0020044102742105201021032010210d024003402003220641046a210320062802002204450d022004280208220a41016a41004c0d032004200a36020802400240200441f4006a2d00000d0020042004280200417f6a220636020020060d01200441046a22062006280200417f6a220636020020060d012004102e0c010b200d2004360200200d41046a210d200e417f6a220e450d020b2005417c6a22050d000b200721030c010b200641046a21030b0240200720036b2204450d00200441027541027421040340200328020022062006280200417f6a3602000240200328020022062802000d00200641046a22062006280200417f6a3602002003280200220641046a2802000d002006102e0b200341046a21032004417c6a22040d000b0b02400240200d20106b2211410275221241144b0d00201241014d0d074102210320102012417e6a22044102746a2106034020122004490d022006200310e3062006417c6a2106200341016a21032004417f6a2204417f470d000c080b0b2012410176220341ffffffff03712003470d0a20034102742213417f4c0d0a2013102c2214450d092010417c6a2115201041746a21164104211741002118410021192012211a0340201a210a4100211a410121040240200a417f6a220d450d000240024002400240024002400240024002400240024002402010200d4102746a2802002203280208220441016a41004c0d00200320043602082010200a417e6a22054102746a2802002204280208220641016a41004c0d01200328025021032004200636020820032004280250490d042016200a4102746a21034100211a410021060340024020052006470d00200a21040c0e0b200341046a2802002204280208220d41016a41004c0d032004200d3602082003280200220d280208220e41016a41004c0d0420042802502104200d200e3602082003417c6a2103200641016a21062004200d2802504f0d000b200641016a21042006417f73200a6a210d0c050b41bcd9cc004118200141d80f6a41c4f8c90041d4f8c900103e000b41bcd9cc004118200141d80f6a41c4f8c90041d4f8c900103e000b41bcd9cc004118200141d80f6a41c4f8c90041d4f8c900103e000b41bcd9cc004118200141d80f6a41c4f8c90041d4f8c900103e000b2016200a41027422056a2103024003400240200d4101470d004100210d0c020b200341046a2802002204280208220641016a41004c0d032004200636020820032802002206280208220e41016a41004c0d04200428025021042006200e3602082003417c6a2103200d417f6a210d20042006280250490d000b0b200a200d490d03200a20124b0d04200a200d6b2204410176220e450d002010200d4102746a2103201520056a21060340200328020021052003200628020036020020062005360200200341046a21032006417c6a2106200e417f6a220e0d000b0b0240200d0d00200d211a0c070b0240200441094d0d00200d211a0c070b200a20124b0d04200a200d6b2104200d417f6a21032015200d4102746a21060340200a2003490d0d2006200441016a220410e3062003417f6a220d20034f0d062006417c6a2106200d21032004410a490d000c060b0b41bcd9cc004118200141d80f6a41c4f8c90041d4f8c900103e000b41bcd9cc004118200141d80f6a41c4f8c90041d4f8c900103e000b200d200a41e4d1cc001057000b200a201241e4d1cc00104d000b200a200d417f6a2203490d07200a201241f4d1cc00104d000b200d41016a211a0b024020192018470d00201841016a22032018490d0c201841017422062003200620034b1b22034104200341044b1b220341ffffffff01712003464102742106200341037421030240024020180d00200141003602d80f0c010b200141043602e00f200120173602d80f200120184103743602dc0f0b200141a0056a20032006200141d80f6a107d20012802a8052103024020012802a0054101470d0020030d0c0c0d0b20012802a4052117200341037621180b201720194103746a220320043602042003201a360200201941016a221b21190240201b4102490d000240024002400240024002400240034002400240024002402017201b2219417f6a221b4103746a2203280200450d00201941037420176a220e41746a280200220d200328020422044d0d00201941024d0d0c20172019417d6a22034103746a28020422062004200d6a4d0d01201941034d0d0c200e41646a2802002006200d6a4b0d0c0c010b20194103490d012003280204210420172019417d6a22034103746a28020421060b20062004490d010b2019417e6a21030b02402019200341016a221c4d0d00201920034d0d02201720034103746a221d280204221e201d2802006a22032017201c4103746a221f2802002220490d03200320124b0d04201020204102746a2221201f280204222241027422046a21062003410274210e02400240200320206b220520226b22032022490d0020142021200410e908220320046a210d0240024020224101480d00200520224a0d010b20212104200321030c020b2010200e6a2107200321032021210403402006280200220e280208220541016a41004c0d08200e200536020820032802002205280208220a41016a41004c0d09200e280250210e2005200a360208200420062003200e200528025049220e1b2802003602002003200341046a200e1b2103200441046a2104200641046a2006200e1b220620074f0d02200d20034b0d000c020b0b201420062003410274220410e908220720046a210d0240024020224101480d00200341014e0d010b20062104200721030c010b2015200e6a210a200621040340200d417c6a22032802002206280208220e41016a41004c0d092006200e3602082004417c6a220e2802002205280208220941016a41004c0d0a2006280250210620052009360208200a200e2003200620052802504922061b280200360200200d200320061b210d02402021200e200420061b2204490d00200721030c020b200a417c6a210a200721032007200d490d000b0b20042003200d20036b417c7110e9081a201d41046a201e20226a360200201d2020360200201f201f41086a2019201c417f736a41037410ea081a41012119201b41014d0d090c010b0b201c20194184d2cc00103c000b200320194194d2cc00103c000b2020200341a4d2cc001057000b2003201241a4d2cc00104d000b41bcd9cc004118200141d80f6a41c4f8c90041d4f8c900103e000b41bcd9cc004118200141d80f6a41c4f8c90041d4f8c900103e000b41bcd9cc004118200141d80f6a41c4f8c90041d4f8c900103e000b41bcd9cc004118200141d80f6a41c4f8c90041d4f8c900103e000b201a450d060c000b0b2004201241c4d1cc001056000b41bcd9cc004118200141d80f6a4190b7c00041a0b7c000103e000b0240200842ffffff3f83500d00200a102e0b0240200b422088a72203450d00200341386c21042006412c6a210303400240200328020041ffffff3f71450d002003417c6a280200102e0b200341386a2103200441486a22040d000b0b200ba72203450d00200341386c450d002006102e0b20014198076a200141d8086a41c00110e9081a0c040b2003200a41f4d1cc001057000b0240201841ffffffff0171450d002017102e0b2013450d002014102e0b20012802980f210420012802940f2106200120012802900f22033602a80f200120063602a40f200120033602a00f20012003200441e0006c6a221d3602ac0f4104211e024002402004450d00200141900d6a410472211f200141d80f6a41346a2104024002400340200141a0056a41286a220d200341286a290300370300200141a0056a41206a220e200341206a290300370300200141a0056a41186a2205200341186a290300370300200141a0056a41106a220a200341106a290300370300200141a0056a41086a2207200341086a290300370300200120032903003703a005200341306a2802002106200141a80a6a41086a22092003413c6a290200370300200141a80a6a41106a2221200341c4006a290200370300200141a80a6a41186a2219200341cc006a290200370300200141a80a6a41206a2222200341d4006a290200370300200141a80a6a41286a2217200341dc006a2802003602002001200341346a2902003703a80a2006450d01200141d80f6a41286a200d290300370300200141d80f6a41206a200e290300370300200141d80f6a41186a2005290300370300200141d80f6a41106a200a290300370300200141d80f6a41086a2007290300370300200420012903a80a370200200441086a2009290300370200200441106a2021290300370200200441186a2019290300370200200441206a2022290300370200200441286a2017280200360200200120012903a0053703d80f2001200636028810200141900d6a200141d80f6a10e406024020012802900d22060d00200341e0006a2203201d470d010c030b0b200141b00f6a41206a201f41206a290200220b370300200141b00f6a41186a201f41186a2902002208370300200141b00f6a41106a201f41106a2902002223370300200141b00f6a41086a201f41086a29020022243703002001200341e0006a3602a80f2001201f29020022253703b00f20012802b40f210720012802d40f212220012802cc0f211920012802c40f212120012802bc0f2109412c102c221e450d06201e2022360228201e200ba7221b360224201e2019360220201e2008a7222036021c201e2021360218201e2023a7221f360214201e2009360210201e2024a7221d36020c201e2007360208201e2025a72217360204201e2006360200200141d00e6a41086a200141a00f6a41086a290300220b370300200120012903a00f3703d00e024002400240200ba7220620012802dc0e2226470d0041012127410121130c010b200141d80f6a41346a2104200141900d6a410472212841012127410121130340200141a0056a41286a220d2006220341286a290300370300200141a0056a41206a220e200341206a290300370300200141a0056a41186a2205200341186a290300370300200141a0056a41106a220a200341106a290300370300200141a0056a41086a221c200341086a290300370300200120032903003703a005200341306a2802002106200141a80a6a41086a22142003413c6a290200370300200141a80a6a41106a221a200341c4006a290200370300200141a80a6a41186a2218200341cc006a290200370300200141a80a6a41206a2215200341d4006a290200370300200141a80a6a41286a2216200341dc006a2802003602002001200341346a2902003703a80a024002402006450d00200141d80f6a41286a200d290300370300200141d80f6a41206a220d200e290300370300200141d80f6a41186a220e2005290300370300200141d80f6a41106a2205200a290300370300200141d80f6a41086a220a201c290300370300200420012903a80a370200200441086a2014290300370200200441106a201a290300370200200441186a2018290300370200200441206a2015290300370200200441286a2016280200360200200120012903a0053703d80f2001200636028810200141900d6a200141d80f6a10e40620012802900d22060d01200341e0006a22062026470d020b2001200341e0006a3602d80e0c020b200141b00f6a41106a202841106a290200220b370300200141e00b6a41086a221c202841086a290200370300200141e00b6a41106a2214200b370300200141e00b6a41186a221a202841186a290200370300200141e00b6a41206a2218202841206a2902003703002001200341e0006a3602d80e200120282902003703e00b200d2018290300370300200e201a29030037030020052014290300370300200a201c290300370300200120012903e00b3703d80f024020132027470d00202741016a22032027490d0b2027410174221c2003201c20034b1b22034104200341044b1bad422c7e220b422088a7454102742103200ba7211c0240024020270d00200141003602a0050c010b200141043602a8052001201e3602a00520012027412c6c3602a4050b200141900d6a201c2003200141a0056a107d20012802980d210320012802900d4101460d0320012802940d211e2003412c6e21270b201e2013412c6c6a220320063602002003410c6a200a290300370200200320012903d80f370204200341146a20052903003702002003411c6a200e290300370200200341246a200d290300370200201341016a211320012802d80e220620012802dc0e2226470d000b0b200141d00e6a10ac020c040b2003450d070c060b200341e0006a211d0b2001201d3602a80f0b200141a00f6a10ac0241002127410021130b2013412c6c2104410021030240034020042003460d01200141a8016a201e20036a10be042003412c6a210320012802a801450d000b02402013450d002013412c6c2104201e210303400240200341046a2802002206450d00200641226c450d002003280200102e0b2003412c6a2103200441546a22040d000b0b02402027450d002027412c6c450d00201e102e0b02402011450d0020124102742104201021030340200328020022062006280200417f6a3602000240200328020022062802000d00200641046a22062006280200417f6a3602002003280200220641046a2802000d002006102e0b200341046a21032004417c6a22040d000b0b200f41ffffffff0371450d012010102e0c010b2012ad42307e220b422088a70d03200ba72203417f4c0d030240024020030d00410821290c010b2003102c2229450d030b0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200341306e222a20124f0d00202a41017422042012200420124b1b22044104200441044b1bad42307e220b422088a7454103742104200ba72106024002402003412f4b0d00200141003602d80f0c010b200141d80f6a41086a4108360200200120293602d80f2001202a41306c3602dc0f0b200141a0056a20062004200141d80f6a107d200141a8056a280200210320012802a0054101460d0120012802a4052129200341306e212a0b2012410274210420110d0141002118201021030c020b2003450d170c160b201020046a21152012410274210d2011417c6a41027641016a2116200141d00e6a41186a210e200141d00e6a41106a2105200141d00e6a41086a210a410021182029210420102106024003400240200628020022030d00200641046a21030c020b200328020841016a221c41004c0d032003201c360208200e200341ec006a2900003703002005200341e4006a290000370300200a200341dc006a2900003703002001200341d4006a2900003703d00e2003280208221c41016a221241004c0d0420032012360208200e290300210b20052903002108200a29030021232003201c417f6a360208200141d80f6a41086a221c2023370300200141d80f6a41106a22122008370300200141d80f6a41186a2214200b370300200120012903d00e3703d80f200341c8006a290300210b2003290340210820032003280200417f6a221a3602000240201a0d00200341046a221a201a280200417f6a221a360200201a0d002003102e0b200641046a2106200420012903d80f370300201c29030021232012290300212420142903002125200441286a200b370300200441206a2008370300200441186a2025370300200441106a2024370300200441086a2023370300200441306a2104201841016a2118200d417c6a220d0d000b20152103201621180b201520036b220441027521120b02402004450d00201241027421040340200328020022062006280200417f6a3602000240200328020022062802000d00200641046a22062006280200417f6a3602002003280200220641046a2802000d002006102e0b200341046a21032004417c6a22040d000b0b0240200f41ffffffff0371450d002010102e0b200141d80f6a10f504024020012802d80f2203450d00200141e40f6a2802002104200141d80f6a41106a290300210b200120012902dc0f37029c0a200120033602980a2001200b3702f40e200120043602f00e200141e80e6a4200370300200141d00e6a41106a4200370300200141d00e6a41086a22034200370300200142003703d00e200141d80f6a41a5fec600411a1081022003200141d80f6a41086a2204290000370300200120012900d80f3703d00e200141d80f6a4194c5c800410e108102200c41086a2004290000370000200c20012900d80f370000200141a0016a200141d00e6a4120108e02024020012802a001450d0020012802a401212b200142003702840f024020012802a00a2203450d00200341386c210620012802980a41086a2103410021040340200141d80f6a41186a200341186a290000370300200141d80f6a41106a200341106a290000370300200141d80f6a41086a200341086a290000370300200120032900003703d80f200341386a2103200141800f6a200141d80f6a200410a402200441016a2104200641486a22060d000b0b2001200141800f6a3602a40a200142003702940f024020012802f80e2203450d0020012802f00e220520034105746a21154100210d41002112034002400240200d450d0020012802900f211c0c010b41e000102c220d450d194100211c200d4100360200200d41003b015e2001200d3602940f200141003602900f0b200541206a2114024002400340200d41046a211a200d2f015e2210410274210e41002103417f2104024003400240200e2003470d00201021040c020b2005200d20036a220a41046a280200412010ec082206450d03200441016a2104200341046a21032006417f4a0d000b0b0240201c450d00201c417f6a211c200d20044102746a41e0006a280200210d0c010b0b024002402010410a4b0d00201041016a21030240200420104f0d00201a200441016a41027422066a201a2004410274220e6a20032004417f736a410274220a10ea081a200d41306a221c20066a201c200e6a200a10ea081a0b201a200441027422046a2005360200200d20046a41306a2012360200200d20033b015e0c010b4100210a4104210302400240200441054f0d00200421060c010b4105210341052106024002402004417b6a0e020201000b200441796a21064101210a410621030c010b410021064101210a0b41e000102c2204450d1b200441003b015e200441003602002004200d2f015e221c2003417f736a220e3b015e200e410c4f0d09201c200341016a22106b200e470d0a200d41306a221c200341027422116a2802002116201a20116a2802002111200441046a201a201041027422106a200e410274220e10e9081a200441306a201c20106a200e10e9081a200d20033b015e2004200d200a1b220341046a210e20032f015e221c41016a210a0240200641016a2210201c4b0d00200e2010410274221c6a200e200641027422106a200a2006417f736a410274221a10ea081a200341306a2226201c6a202620106a201a10ea081a0b200e200641027422066a2005360200200320066a41306a20123602002003200a3b015e024002400240200d280200220a0d004100211a0c010b4100211a201121262016210f200421280340200d2f015c210e200a2f015e221c410b490d0241002105410421030240200e4105490d00200e210302400240200e417b6a0e020201000b200e41796a210e41012105410621030c010b4100210e41012105410521030b419001102c2204450d1e200441003b015e200441003602002004200a2f015e220d2003417f736a22063b015e2006410c4f0d0e200d200341016a22106b2006470d0f200a41306a222c2003410274220d6a2802002116200a41046a222d200d6a2802002111200441046a202d2010410274220d6a2006410274220610e9081a200441306a202c200d6a200610e9081a200a20033b015e20042f015e220641016a21102006410c4f0d10201c20036b22032010470d11201a41016a211a200441e0006a200a200d6a41e0006a200341027410e9081a4100210302400340200420034102746a41e0006a280200220d20033b015c200d200436020020032003200649220d6a220320064b0d01200d0d000b0b2004200a20051b220d41046a222c200e410274221c6a2110200d2f015e220641016a210502400240200e41016a220320064d0d0020102026360200200d41306a21100c010b202c2003410274222d6a2010200e417f7320056a410274222c10ea081a20102026360200200d41306a2210202d6a2010201c6a202c10ea081a0b2010201c6a200f360200200d41e0006a21100240200e41026a2226200641026a22064f0d00201020264102746a201020034102746a2003417f7320066a41027410ea081a0b201020034102746a2028360200200d20053b015e0240200320064f0d00200d201c6a41e4006a2103034020032802002206200e41016a220e3b015c2006200d360200200341046a21032005200e470d000b0b200a210d200a2802002203210a201121262016210f2004212820030d000b0b20012802940f2206450d1020012802900f210d419001102c2203450d1c20032006360260200341003b015e2003410036020020062003360200200641003b015c200120033602940f2001200d41016a3602900f200d201a470d1120032f015e2206410b4f0d122003200641016a220d3b015e200320064102746a220641306a2016360200200641046a2011360200200341e0006a200d4102746a2004360200200420033602002004200d3b015c200120012802980f41016a3602980f0c030b200a41046a2104201c41016a210602400240200e201c490d002004200e41027422036a2026360200200a20036a41306a200f360200200a41e0006a2104201c41026a210d200e41016a21030c010b2004200e41016a2203410274220d6a2004200e41027422056a2204200e417f7320066a410274220e10ea081a20042026360200200a41306a2204200d6a200420056a2204200e10ea081a2004200f3602002005200a41e0006a22046a41086a2004200d6a2003417f73201c41026a220d6a41027410ea081a0b20042003410274220e6a2028360200200a20063b015e2003200d4f0d00200a200e6a41e0006a210403402004280200220620033b015c2006200a360200200441046a2104200d200341016a2203470d000b0b200120012802980f41016a3602980f0c010b200a41306a20123602000b20142015460d01201241016a211220012802940f210d201421050c000b0b201e2013412c6c6a211c0240024020130d00201e2104201e21030c010b200141a0056a410c6a2110200141a0056a4104722104200141e00b6a41206a210d200141e00b6a41186a210e200141e00b6a41106a2105200141e00b6a41086a210a201e21060340200622032802002106200d200341246a290200370300200e2003411c6a2902003703002005200341146a290200370300200a2003410c6a2902003703002001200341046a2902003703e00b024020060d002003412c6a21040c020b200420012903e00b370200200441086a200a290300370200200441106a2005290300370200200441186a200e290300370200200441206a200d290300370200200120063602a0054200210b0240200141800f6a201010a0022206450d0020012802a00a200628020022064d0d0020012802980a200641386c6a290300210b0b200141d80f6a41286a200141a0056a41286a280200360200200141d80f6a41206a200141a0056a41206a290300370300200141d80f6a41186a200141a0056a41186a290300370300200141d80f6a41106a200141a0056a41106a290300370300200141d80f6a41086a200141a0056a41086a290300370300200120012903a0053703d80f200141900d6a200141d80f6a200b420010bd04200341286a200141900d6a41286a280200360200200341206a200141900d6a41206a290300370200200341186a200141900d6a41186a290300370200200341106a200141900d6a41106a290300370200200341086a200141900d6a41086a290300370200200320012903900d3702002003412c6a2206201c470d000b2003412c6a2103201c21040b2027ad210b201c20046b2206412c6d210d02402006450d00200d412c6c210603400240200441046a280200220d450d00200d41226c450d002004280200102e0b2004412c6a2104200641546a22060d000b0b2003201e6b220e412c6d220d412c6c2104200dad422086200b842108201e210602400340200621032004450d014200210b0240200141800f6a2003410c6a10a0022206450d0020012802a00a200628020022064d0d0020012802980a200641386c6a290300210b0b2003412c6a210620014198016a2003200b420010bf04200441546a2104200128029801450d000b0240200e450d00201e200d412c6c6a210d201e2103034020032204412c6a21030240200441046a2802002206450d00200641306c450d002004280200102e0b200d2003470d000b0b2027450d0f2027412c6c450d0f201e102e0c0f0b200120083702a40f2001201e3602a00f201e200d412c6c6a212d200141a00f6a10e5060240200e0d00201e211c201e21050c0e0b200141e00b6a41086a2112200141e00b6a41206a212e200141e00b6a41186a212f200141e00b6a41106a2130201e211c02400340201c22052802002114202e200541246a2213290200370300202f2005411c6a22112902003703002030200541146a222629020037030020122005410c6a290200370300200120052902043703e00b2005412c6a211c2014450d0f200141a80a6a41086a220f201241086a290200370300200141a80a6a41106a2228201241106a290200370300200141a80a6a41186a222c201241186a290200370300200120122902003703a80a20012802e00b21160240024020012802e40b220e41306c220d0d00420021084200210b0c010b201441206a210342002108200d21044200210b0340427f200b200341086a2903007c200820032903007c22232008542206ad7c220820062008200b542008200b511b22061b210b427f202320061b2108200341306a2103200441506a22040d000b0b024002400240200e41306c2204450d002014200d6a2110201421030340200341286a2903002123200341206a2903002124200341086a2903002125200341106a290300213120032903002132200141d00e6a41186a2206200341186a290300370300200141d00e6a41106a220d2031370300200141d00e6a41086a220e2025370300200120323703d00e202420232008200b10e606220a41ffff03710d02200341306a2103200441506a22040d000b0b410021154102211a02402016450d00201641306c450d002014102e0b4100210a0c010b200141900d6a41086a2215200e290300370300200141900d6a41106a2233200d290300370300200141900d6a41186a22342006290300370300200120012903d00e22233703a005200120233703900d4122102c221a450d19201a20012903900d370100201a200a3b0120201a41186a2034290300370100201a41106a2033290300370100201a41086a20152903003701000240024020044130470d00410121154101210a0c010b200341306a2134201041506a2135410121154101210a03402034210302400340200341286a2903002123200341206a29030021242006200341186a290300370300200d200341106a290300370300200e200341086a290300370300200120032903003703d00e202420232008200b10e606220441ffff03710d012010200341306a2203470d000c030b0b200141a0056a41086a200e2903002223370300200141a0056a41106a200d2903002224370300200141a0056a41186a20062903002225370300200120012903d00e22313703a005200141d80f6a41186a22362025370300200141d80f6a41106a22372024370300200141d80f6a41086a22382023370300200120313703d80f0240200a2015470d00201541016a22332015490d1d201541017422342033203420334b1b22334104203341044b1bad42227e2223422088a74541017421332023a721340240024020150d00200141003602900d0c010b200141023602980d2001201a3602900d2001201541226c3602940d0b200141b00f6a20342033200141900d6a107d20012802b80f211520012802b00f4101460d0520012802b40f211a201541226e21150b200341306a2134201a200a41226c6a223320012903d80f370100203829030021232037290300212420362903002125203320043b0120203341186a2025370100203341106a2024370100203341086a2023370100200a41016a210a20352003470d000b0b2016450d00201641306c450d002014102e0b200141d80f6a41186a2203202c290300370300200141d80f6a41106a22042028290300370300200141d80f6a41086a2206200f290300370300200120012903a80a3703d80f200520153602042005201a3602002005200a360208200520012903d80f37020c202620062903003702002011200429030037020020132003290300370200201c202d470d000b201c2105202d211c0c0e0b2015450d170c160b024020012802f40e41ffffff3f71450d0020012802f00e102e0b024020012802a00a2203450d00200341386c210420012802980a412c6a210303400240200328020041ffffff3f71450d002003417c6a280200102e0b200341386a2103200441486a22040d000b0b200128029c0a2203450d00200341386c450d0020012802980a102e0b0240202a450d00202a41306c450d002029102e0b02402013450d00201e2013412c6c6a210d201e2103034020032204412c6a21030240200441046a2802002206450d00200641226c450d002004280200102e0b200d2003470d000b0b2027450d122027412c6c450d12201e102e0c120b41bcd9cc004118200141d80f6a41f09cc50041c09dc500103e000b41bcd9cc004118200141d80f6a41f09cc50041d09dc500103e000b200e410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b2006410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b2010410c41f49cc700104d000b41f49bc7004128419c9cc7001039000b41e8aac700412b4194abc7001039000b41e899c700413041989ac7001039000b41a89ac700412041c89ac7001039000b202d201c6b2203412c6d210402402003450d002004412c6c210303400240201c41046a2802002204450d00200441306c450d00201c280200102e0b201c412c6a211c200341546a22030d000b0b201e2005201e6b220d412c6d2206412c6c6a2104201e21030240034020042003460d0120014190016a200310be042003412c6a2103200128029001450d000b0240200d450d00201e2006412c6c6a210d201e2103034020032204412c6a21030240200441046a2802002206450d00200641226c450d002004280200102e0b200d2003470d000b0b2027450d012027412c6c450d01201e102e0c010b200120063602980d200120273602940d2001201e3602900d200141d80f6a200141900d6a200141a40a6a200141900f6a109906200141e00f6a280200210e200141e40f6a280200210620012802dc0f210520012802d80f2103200141a0056a200141e80f6a41b40110e9081a20034101460d00200141a80a6a200141a0056a41b40110e9081a20012802a00a212f20012802f80e2135200141d80f6a10df040240024002400240200141f00f6a2903004200510d00200141f80f6a210a02400240202f0d00410021040c010b4200200a290300220b42809ce8af6d7c22082008200b561b210b2035ad42889b047e202fad222442f0aefa017e7c2108202bad42a0ede0017e2123202f21030240202f410176220d450d00202f21040340024002400240417f2008202442e8aede067e7c20237c4280e59af7007c2224200b522024200b541b41016a0e03000501000b02402004200d6a220320044f0d00200421030c040b2003202f490d01200421030c030b2004200d6b220320044d0d00200421030c020b20032004460d022003ad212420032104200d410176220d0d000b0b024003402003220441016a2203202f4b0d0120082003ad42e8aede067e7c20237c4280e59af7007c200b540d000b0b4100211c02402004417f6a20044b0d000340024020082004ad42e8aede067e7c20237c4280e59af7007c200b560d002004211c0c020b2004417e6a21032004417f6a220d21042003200d4d0d000b0b202f201c201c202f4b1b21040b2001200e3602dc0f200120053602d80f200120063602e00f200141e40f6a200141a80a6a41b40110e9081a02400240417f417f417f417f417f417f417f417f417f417f417f417f417f417f417f2006200141ec0f6a2802006a220320032006491b2203200a2802006a220d200d2003491b220320014184106a2802006a220d200d2003491b220320014190106a2802006a220d200d2003491b22032001419c106a2802006a220d200d2003491b2203200141a8106a2802006a220d200d2003491b2203200141b4106a2802006a220d200d2003491b2203200141c0106a2802006a220d200d2003491b2203200141cc106a2802006a220d200d2003491b2203200141d8106a2802006a220d200d2003491b2203200141e4106a2802006a220d200d2003491b2203200141f0106a2802006a220d200d2003491b2203200141fc106a2802006a220d200d2003491b2203200141d80f6a41b0016a2802006a220d200d2003491b220320014194116a2802006a220d200d2003491b220320046b223320034b0d0020330d010b20012802e40f2103200141a0056a200141e80f6a41b00110e9081a200141e00b6a200141a0056a41b00110e9081a0c070b200141b00f6a10f50420012802b00f2210450d0320012902b40f21080240200141c00f6a29030042ffffff3f83500d00200141bc0f6a280200102e0b2008422088a7220d41386c220641386d2203ad42287e220b422088a70d0d200ba72204417f4c0d0d0240024020040d00410821260c010b2004102c2226450d0d0b0240024002400240200441286e223620034f0d002036410174220e2003200e20034b1b220e4104200e41044b1bad42287e220b422088a745410374210e200ba7210502400240200441274b0d00200141003602b00f0c010b200141b00f6a41086a4108360200200120263602b00f2001203641286c3602b40f0b200141d00e6a2005200e200141b00f6a107d200141d80e6a280200210420012802d00e4101460d0120012802d40e2126200441286e21360b201020066a221e2010470d014100212c2010210e0c020b2004450d0f0c0e0b200d41037441786a41037641016a21124100212c2010210320262104024003402003290300210b200141b00f6a41186a2206200341206a290300370300200141b00f6a41106a220d200341186a290300370300200141b00f6a41086a220e200341106a2903003703002001200341086a2903003703b00f0240200341286a280200221c0d00200341386a210e0c020b2003412c6a2802002105200141d00e6a41186a220a2006290300370300200141d00e6a41106a2206200d290300370300200141d00e6a41086a220d200e290300370300200120012903b00f3703d00e0240200541ffffff3f71450d00201c102e0b200420012903d00e370300200441186a200a290300370300200441106a2006290300370300200441086a200d290300370300200441206a200b370300200441286a2104202c41016a212c200341386a2203201e470d000b201e210e2012212c0b201e200e6b220641386d21030b2008a7210d02402006450d00200341386c2104200e412c6a210303400240200328020041ffffff3f71450d002003417c6a280200102e0b200341386a2103200441486a22040d000b0b0240200d450d00200d41386c450d002010102e0b024002400240202c41144b0d00202c41014d0d052026202c417f6a220641286c6a21054100210d0340202c20062203417f6a2206490d030240202c20066b221c4102490d002026200341286c6a220341206a220e2903002026200641286c6a220441206a220a290300220b5a0d00200141d00e6a41186a221e200441186a2210290300370300200141d00e6a41106a2212200441106a2214290300370300200141d00e6a41086a221a200441086a2215290300370300200120042903003703d00e200420032903003703002015200341086a2903003703002014200341106a2903003703002010200341186a290300370300200a200e2903003703000240201c4103490d00200d417f6a210a41002104200521030340200341c8006a220e290300200b5a0d01200a2004460d05200341206a200e290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a2903003703002003200341286a220e290300370300200e2103200d2004417f6a2204470d000b200e21030b200320012903d00e3703002003200b370320200341186a201e290300370300200341106a2012290300370300200341086a201a2903003703000b200541586a2105200d417f6a210d20060d000c060b0b202c410176ad42287e220b422088a70d0f200ba72237417f4c0d0f2037102c222d450d0e202641586a2130202641a87f6a2134410421144100212e41002110202c2113034020132105410021134101210e02402005417f6a220d450d0002400240024002400240024002402026200d41286c6a41206a290300200541286c220a20266a41506a290300220b540d002005417e6a210d2034200a6a2104410021134100210303400240200d2003470d002005210e0c090b200341016a2103200b200429030022085a2106200441586a21042008210b20060d000b200341016a210e2003417f7320056a210d0c010b2034200a6a2103024003400240200d4101470d004100210d0c020b200d417f6a210d200b20032903002208542104200341586a21032008210b20040d000b0b2005200d490d012005202c4b0d022005200d6b220e4101762206450d002030200a6a21032026200d41286c6a21040340200141b00f6a41206a220a200441206a221c290300370300200141b00f6a41186a221e200441186a2212290300370300200141b00f6a41106a221a200441106a2215290300370300200141b00f6a41086a2216200441086a2213290300370300200120042903003703b00f200341206a2227290300210b200341186a22112903002108200341106a220f2903002123200341086a2228290300212420042003290300370300201320243703002015202337030020122008370300201c200b3703002027200a2903003703002011201e290300370300200f201a29030037030020282016290300370300200320012903b00f370300200341586a2103200441286a21042006417f6a22060d000b0b0240200d0d00200d21130c060b0240200e41094d0d00200d21130c060b2005202c4b0d03200d20056b21062026200d41286c6a210a03402005200d417f6a2213490d050240200520136b220e4102490d002026200d41286c6a220341206a220d2903002026201341286c6a220441206a221c290300220b5a0d00200141d00e6a41186a221e200441186a2212290300370300200141d00e6a41106a221a200441106a2215290300370300200141d00e6a41086a2216200441086a2227290300370300200120042903003703d00e200420032903003703002027200341086a2903003703002015200341106a2903003703002012200341186a290300370300201c200d2903003703000240200e4103490d0041012104200a21030340200341c8006a220d290300200b5a0d01200620046a4101460d06200341206a200d290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a2903003703002003200341286a220d290300370300200d21032006200441016a22046a0d000b200d21030b200320012903d00e3703002003200b370320200341186a201e290300370300200341106a201a290300370300200341086a20162903003703000b2013450d06200a41586a210a2006417f6a21062013210d200e410a4f0d060c000b0b200d200541e4d1cc001057000b2005202c41e4d1cc00104d000b2004200e41d4d1cc00103c000b2005200d417f6a2213490d002005202c41f4d1cc00104d000b2013200541f4d1cc001057000b02402010202e470d00202e41016a2203202e490d11202e41017422042003200420034b1b22034104200341044b1b220341ffffffff017120034641027421042003410374210302400240202e0d00200141003602b00f0c010b200141043602b80f200120143602b00f2001202e4103743602b40f0b200141d00e6a20032004200141b00f6a107d20012802d80e2103024020012802d00e4101470d002003450d120c110b20012802d40e21142003410376212e0b201420104103746a2203200e36020420032013360200201041016a22272110024020274102490d0002400240024003400240024002400240201420272210417f6a22274103746a2203280200450d00201041037420146a220e41746a280200220d200328020422044d0d00201041024d0d0820142010417d6a22034103746a28020422062004200d6a4d0d01201041034d0d08200e41646a2802002006200d6a4b0d080c010b20104103490d012003280204210420142010417d6a22034103746a28020421060b20062004490d010b2010417e6a21030b02402010200341016a22114d0d00201020034d0d02201420034103746a221a280204220f201a2802006a2203201420114103746a22152802002216490d032003202c4b0d04201a41046a21282026201641286c6a221e2015280204221241286c22046a210e200341286c210602400240200320166b220520126b22032012490d00202d201e200410e908221c20046a210d0240024020124101480d00200520124a0d010b201e2103201c21040c020b202620066a210a201c2104201e210303402003200e2004200e41206a290300200441206a2903005422051b2206290300370300200341206a200641206a290300370300200341186a200641186a290300370300200341106a200641106a290300370300200341086a200641086a2903003703002004200441286a20051b2104200341286a2103200e41286a200e20051b220e200a4f0d02200d20044b0d000c020b0b202d200e200341286c220410e908220520046a210d0240024020124101480d00200341014e0d010b200e2103200521040c010b203020066a2106200e210303402006200341586a220a200d41586a221c200d41786a290300200341786a29030054220e1b2204290300370300200641206a200441206a290300370300200641186a200441186a290300370300200641106a200441106a290300370300200641086a200441086a290300370300200d201c200e1b210d0240201e200a2003200e1b2203490d00200521040c020b200641586a2106200521042005200d490d000b0b20032004200d20046b220620064128706b10e9081a2028200f20126a360200201a20163602002015201541086a20102011417f736a41037410ea081a41012110202741014d0d050c010b0b201120104184d2cc00103c000b200320104194d2cc00103c000b2016200341a4d2cc001057000b2003202c41a4d2cc00104d000b2013450d040c000b0b410120046b201c41d4d1cc00103c000b2006202c41c4d1cc001056000b41baa9c700413e41f8a9c700105d000b0240202e41ffffffff0171450d002014102e0b2037412870210320374128490d0020372003460d00202d102e0b2026202c41286c6a211e4100210a20012802a40a2110202621050340201e2005460d03024002400240024002400240024002400240024002400240024002400240024002402010200510a0022203450d0020032802002103024020012802e00f220e450d00200e41037441786a41037641016a210d4100210620012802d80f2104034020042802002003460d03200441086a2104200d200641016a2206470d000b0b024020012802ec0f221c450d00201c410c6c41746a2106201c410274417c6a41027641016a210e4100210d20012802e40f2104034020042802002003460d04200641746a21062004410c6a2104200e200d41016a220d470d000b0b024020012802f80f220e450d00200e41047441706a41047641016a210d4100210620012802f00f2104034020042802002003460d05200441106a2104200d200641016a2206470d000b0b0240200128028410221c450d00201c41146c416c6a2106201c410274417c6a41027641016a210e4100210d20012802fc0f2104034020042802002003460d062006416c6a2106200441146a2104200e200d41016a220d470d000b0b0240200128029010221c450d00201c41186c41686a2106201c41037441786a41037641016a210e4100210d2001280288102104034020042802002003460d07200641686a2106200441186a2104200e200d41016a220d470d000b0b0240200128029c10221c450d00201c411c6c41646a2106201c410274417c6a41027641016a210e4100210d2001280294102104034020042802002003460d08200641646a21062004411c6a2104200e200d41016a220d470d000b0b024020012802a810220e450d00200e41057441606a41057641016a210d4100210620012802a0102104034020042802002003460d09200441206a2104200d200641016a2206470d000b0b024020012802b410221c450d00201c41246c415c6a2106201c410274417c6a41027641016a210e4100210d20012802ac102104034020042802002003460d0a2006415c6a2106200441246a2104200e200d41016a220d470d000b0b024020012802c010221c450d00201c41286c41586a2106201c41037441786a41037641016a210e4100210d20012802b8102104034020042802002003460d0b200641586a2106200441286a2104200e200d41016a220d470d000b0b024020012802cc10221c450d00201c412c6c41546a2106201c410274417c6a41027641016a210e4100210d20012802c4102104034020042802002003460d0c200641546a21062004412c6a2104200e200d41016a220d470d000b0b024020012802d810221c450d00201c41306c41506a2106201c41047441706a41047641016a210e4100210d20012802d0102104034020042802002003460d0d200641506a2106200441306a2104200e200d41016a220d470d000b0b024020012802e410221c450d00201c41346c414c6a2106201c410274417c6a41027641016a210e4100210d20012802dc102104034020042802002003460d0e2006414c6a2106200441346a2104200e200d41016a220d470d000b0b024020012802f010221c450d00201c41386c41486a2106201c41037441786a41037641016a210e4100210d20012802e8102104034020042802002003460d0f200641486a2106200441386a2104200e200d41016a220d470d000b0b024020012802fc10221c450d00201c413c6c41446a2106201c410274417c6a41027641016a210e4100210d20012802f4102104034020042802002003460d10200641446a21062004413c6a2104200e200d41016a220d470d000b0b024002400240200128028811220e450d00200e41067441406a41067641016a210d410021062001280280112104034020042802002003460d02200441c0006a2104200d200641016a2206470d000b0b024020012802941122120d00410021040c130b201241c4006c41bc7f6a210d2012410274417c6a41027641016a211c4100210e200128028c112106034020062802002003460d02200d41bc7f6a210d200641c4006a210641002104201c200e41016a220e470d000c130b0b2004200441c0006a200e2006417f736a41067410ea081a2001200e417f6a360288110c100b2006200641c4006a200d10ea081a20012012417f6a360294110c0f0b2036450d11203641286c450d112026102e0c110b2004200441086a200e2006417f736a41037410ea081a2001200e417f6a3602e00f0c0d0b20042004410c6a200610ea081a2001201c417f6a3602ec0f0c0c0b2004200441106a200e2006417f736a41047410ea081a2001200e417f6a3602f80f0c0b0b2004200441146a200610ea081a2001201c417f6a360284100c0a0b2004200441186a200610ea081a2001201c417f6a360290100c090b20042004411c6a200610ea081a2001201c417f6a36029c100c080b2004200441206a200e2006417f736a41057410ea081a2001200e417f6a3602a8100c070b2004200441246a200610ea081a2001201c417f6a3602b4100c060b2004200441286a200610ea081a2001201c417f6a3602c0100c050b20042004412c6a200610ea081a2001201c417f6a3602cc100c040b2004200441306a200610ea081a2001201c417f6a3602d8100c030b2004200441346a200610ea081a2001201c417f6a3602e4100c020b2004200441386a200610ea081a2001201c417f6a3602f0100c010b20042004413c6a200610ea081a2001201c417f6a3602fc100b410121040b200541286a2105200a20046a220a2033490d000c030b0b200141d80f6a109b060b202a450d02202a41306c450d022029102e0c020b20012802e40f210320012802e00f210620012802dc0f210e20012802d80f2105200141a0056a200141e80f6a41b00110e9081a02402036450d00203641286c450d002026102e0b200141e00b6a200141a0056a41b00110e9081a0b2001200336029c0d200120063602980d2001200e3602940d200120053602900d200141a00d6a200141e00b6a41b00110e9081a20012029201841306c6a3602e40f200120293602e00f2001202a3602dc0f200120293602d80f200141b00f6a200141d80f6a10c201200141a0056a200141900d6a10ca0120012802b80f210320012802b00f211c200141d80f6a200141a0056a41c00110e9081a200141e00b6a200141d80f6a200141980a6a200141f00e6a108d06024020012802e00b4101460d00200141e00b6a41086a280200210420012802e40b21062001200141e00b6a410c6a2802003602e80b200120043602e40b200120063602e00b200141d80f6a200141e00b6a200141800f6a200141980a6a10e70620012802d80f4101460d00200141d80f6a41086a280200211e200141d80f6a201c200320012802dc0f2212200141d80f6a410c6a280200221010b704024020012802d80f4101460d00200141e00f6a280200211820012802dc0f2114200141e40f6a2802002203410674211a024020030d0042002131417f210e20142103420021234200213242002124417f2105417f210a417f21150c040b201441206a2103201a2105427f2139427f21254200213242002124420021314200212303400240200341106a280200220a0d00200341206a21032039422088a721052025422088a721152039a7210e2025a7210a0c050b200341146a280200210e200141f0006a200341086a290300220b420020032903002208420010e80820014180016a200842002008420010e8082031427f200129038001200b2001290378223a84203a8442005220014180016a41086a290300223a2001290370223b203b7c7c223b203a547222041b7c223a20315422062023427f203b20041b7c2006ad7c223120235420312023511b21042008203954200b202554200b2025511b2106203220087c223b203254220d2024200b7c200dad7c223220245420322024511b210d0240200e450d00200e41306c450d00200a102e0b427f203120041b2123427f203a20041b2131200b202520061b21252008203920061b2139427f2032200d1b2124427f203b200d1b2132200341c0006a2103200541406a22050d000b2039422088a721052025422088a721152039a7210e2025a7210a0c040b02402010450d002010412c6c21042012210303400240200341046a2802002206450d00200641306c450d002003280200102e0b2003412c6a2103200441546a22040d000b0b201e450d00201e412c6c450d002012102e0b024020012802b40f41ffffff3f71450d00201c102e0b200141900d6a109b060b200141900f6a10bd02200141800f6a10bc02024020012802f40e41ffffff3f71450d0020012802f00e102e0b024020012802a00a2203450d00200341386c210420012802980a412c6a210303400240200328020041ffffff3f71450d002003417c6a280200102e0b200341386a2103200441486a22040d000b0b200128029c0a2203450d02200341386c450d0220012802980a102e0c020b2014201a6a220d2003460d0003402003220441c0006a21030240200441346a2802002206450d00200641306c450d00200441306a280200102e0b200d2003470d000b0b0240201841ffffff1f71450d002014102e0b02402010450d002010412c6c21042012210303400240200341046a2802002206450d00200641306c450d002003280200102e0b2003412c6a2103200441546a22040d000b0b0240201e450d00201e412c6c450d002012102e0b200141e80e6a4200370300200141e00e6a4200370300200141d00e6a41086a22034200370300200142003703d00e200141d80f6a41a5fec600411a1081022003200141d80f6a41086a2204290000370300200120012900d80f3703d00e200141d80f6a4180c3c8004105108102200c41086a2004290000370000200c20012900d80f370000200141e8006a200141d00e6a4120108e02200128026c21062001280268210d200141d8086a200141900d6a41c00110e9081a024020012802b40f41ffffff3f71450d00201c102e0b200141900f6a10bd02200141800f6a10bc02024020012802f40e41ffffff3f71450d0020012802f00e102e0b024020012802a00a2203450d00200341386c210420012802980a412c6a210303400240200328020041ffffff3f71450d002003417c6a280200102e0b200341386a2103200441486a22040d000b0b20064101200d1b21040240200128029c0a2203450d00200341386c450d0020012802980a102e0b20014198076a200141d8086a41c00110e9081a200141a0056a41286a22062023370300200141a0056a41186a220d2024370300200120313703c005200120323703b005200120153602ac052001200a3602a805200120053602a4052001200e3602a005200141a0056a41306a20014198076a41c00110e90821032001200436029007200141d80f6a200141a0056a10b8060240024020012d00d80f4106470d00200141900d6a200310ca01200141d80f6a41286a2006290300370300200141d80f6a41206a200141a0056a41206a290300370300200141d80f6a41186a200d290300370300200141d80f6a41106a200141a0056a41106a290300370300200141d80f6a41086a200141a0056a41086a290300370300200120012903a0053703d80f2001280290072104200141d80f6a41306a200141900d6a41c00110e9081a200120043602c811200141d8086a200141d80f6a10b90620012802d8084101470d010b2003109b060c020b20014194096a280200210e20014190096a280200210d0240200141d8086a41c0006a2802002203450d0020034106742104200d41346a21030340024020032802002206450d00200641306c450d002003417c6a280200102e0b200341c0006a2103200441406a22040d000b0b200141ac056a21030240200e41ffffff1f71450d00200d102e0b20012903a005210b20012802a8052104200141b0036a200341ec0110e9081a200141c0016a200141b0036a41ec0110e9081a200141a0056a200141c0016a41ec0110e9081a20014180116a2004360200200141f8106a200b3703002001411b3602f010200142023703c01020014184116a200141a0056a41ec0110e9081a200141f4126a2035360200200141f0126a202f3602002001200141d80f6a3602b003200141c0016a200141b0036a109005200141b0036a41086a200141c0016a41086a280200360200200120012903c0013703b003200141b0036a10e8061a024020012903c0104202510d0020012d00d80f41ff01714102470d0020012802e00f450d0020012802dc0f102e0b200141f0106a108b020c010b20014198076a200141d8086a41c00110e9081a0b024010e906450d00200141d80f6a41186a220e4200370300200141d80f6a41106a22044200370300200141d80f6a41086a22034200370300200142003703d80f200141a0056a41a8f8c60041041081022003200141a0056a41086a2206290000370300200120012900a0053703d80f200141a0056a41c98bc500410b108102200e2006290000370300200420012900a005370300200141d8006a200141d80f6a1085032001290360210820012802582105200141d00e6a41186a220a4200370300200141d00e6a41106a220d4200370300200141d00e6a41086a221c4200370300200142003703d00e200141d80f6a41a8f8c6004104108102201c2003290000370300200120012900d80f3703d00e200141d80f6a41fa8bc500410a108102200a2003290000370300200d20012900d80f370300200141c8006a200141d00e6a108503200141386a2001290350420020012802481b420042e012420010e80802400240024002400240200129034050450d002001290338210b200e42003703002004420037030020034200370300200142003703d80f200141a0056a41a8f8c600410410810220032006290000370300200120012900a0053703d80f200141a0056a41e38bc500410b108102200441086a2006290000370000200420012900a005370000200141286a200141d80f6a1085030240200b2001290330420020012802281b7c2223200b540d00024042002008420020051b220b20237d22082008200b561b42017c220b42e012200b42e012541b421880a741ff017141314b0d00200120223602840c2001201b3602800c200120193602fc0b200120203602f80b200120213602f40b2001201f3602f00b200120093602ec0b2001201d3602e80b200120073602e40b200120173602e00b41002103200141e00b6a211e200141b00f6a21170c060b200141d00e6a41186a4200370300200141d00e6a41106a4200370300200141d00e6a41086a22044200370300200142003703d00e200141d80f6a41a081ca0041071081022004200141d80f6a41086a2203290000370300200120012900d80f3703d00e200141d80f6a41e4d1c100410c108102200d41086a2003290000370000200d20012900d80f370000200141206a200141d00e6a4120108e022001280224212720012802202111200141d80f6a41186a22044200370300200141d80f6a41106a2206420037030020034200370300200142003703d80f200141a0056a41bed8c80041081081022003200141a0056a41086a220d290000370300200120012900a0053703d80f200141a0056a41e9d8c80041041081022004200d290000370300200620012900a005370300200141b0036a41046a41003a0000200141003602b003200141186a200141d80f6a4120200141b0036a4105410010ca040240024002402001280218450d002001200128021c2203410520034105491b3602a4052001200141b0036a3602a005200141106a200141a0056a10ab012001280210450d010b410021160c010b200128021421160b200141b0036a108703200141d80f6a41e9dabdf30610ea0620012802dc0f211320012802d80f22102103024020012802e00f2204450d0020044105742104201021030340200341206a2103200441606a22040d000b0b02400240200320106b410575221241144b0d00201241014d0d0620102012417e6a22034105746a210441022106034020122003490d022004200610eb06200441606a2104200641016a21062003417f6a2203417f470d000c070b0b2012410176220341ffffff3f712003470d0920034105742226417f4c0d092026102c2214450d08201041606a2115201041a07f6a210c4104212241002118410021212012211a0340201a211b4100211a410121060240201b417f6a220d450d000240024002400240024002402010200d4105746a201b410574220520106a41406a412010ec084100480d00201b417e6a210d200c20056a21034100211a4100210403400240200d2004470d00201b21060c080b200441016a2104200341206a2003412010ec082106200341606a21032006417f4a0d000b200441016a21062004417f73201b6a210d0c010b200c20056a2103024003400240200d4101470d004100210d0c020b200d417f6a210d200341206a2003412010ec082104200341606a210320044100480d000b0b201b200d490d01201b20124b0d02201b200d6b2206410176220e450d00201520056a21032010200d4105746a21040340200141d00e6a41186a2205200441186a220a290000370300200141d00e6a41106a2207200441106a2209290000370300200141d00e6a41086a2219200441086a2217290000370300200120042900003703d00e200341086a221d290000210b200341106a221f2900002108200341186a2220290000212320042003290000370000200a2023370000200920083700002017200b37000020202005290300370000201f2007290300370000201d2019290300370000200320012903d00e370000200341606a2103200441206a2104200e417f6a220e0d000b0b0240200d0d00200d211a0c050b0240200641094d0d00200d211a0c050b201b20124b0d02201b200d6b2106200d417f6a21032015200d4105746a21040340201b2003490d0a2004200641016a220610eb062003417f6a220d20034f0d04200441606a2104200d21032006410a490d000c040b0b200d201b41e4d1cc001057000b201b201241e4d1cc00104d000b201b200d417f6a2203490d06201b201241f4d1cc00104d000b200d41016a211a0b024020212018470d00201841016a22032018490d0b201841017422042003200420034b1b22034104200341044b1b220341ffffffff01712003464102742104200341037421030240024020180d00200141003602d80f0c010b200141043602e00f200120223602d80f200120184103743602dc0f0b200141a0056a20032004200141d80f6a107d20012802a8052103024020012802a0054101470d002003450d0c0c0b0b20012802a4052122200341037621180b202220214103746a220320063602042003201a360200202141016a22202121024020204102490d0002400240024003400240024002400240202220202221417f6a22204103746a2203280200450d00202141037420226a220e41746a280200220d200328020422044d0d00202141024d0d0820222021417d6a22034103746a28020422062004200d6a4d0d01202141034d0d08200e41646a2802002006200d6a4b0d080c010b20214103490d012003280204210420222021417d6a22034103746a28020421060b20062004490d010b2021417e6a21030b02402021200341016a221b4d0d00202120034d0d02202220034103746a2217280204221c20172802006a22032022201b4103746a221d280200221f490d03200320124b0d04201741046a211e2010201f4105746a2209201d280204221941057422046a210d20034105742106024002402003201f6b220520196b22032019490d0020142009200410e908220720046a210e0240024020194101480d00200520194a0d010b20092103200721040c020b201020066a210a200721042009210303402003200d2004200d2004412010ec0841004822051b2206290000370000200341186a200641186a290000370000200341106a200641106a290000370000200341086a200641086a2900003700002004200441206a20051b2104200341206a2103200d41206a200d20051b220d200a4f0d02200e20044b0d000c020b0b2014200d2003410574220410e908220720046a210e0240024020194101480d00200341014e0d010b200d2103200721040c010b201520066a2106200d21030340200341606a2104200e41606a210d20062004200d200d2004412010ec08410048220a1b2205290000370000200641186a200541186a290000370000200641106a200541106a290000370000200641086a200541086a290000370000200e200d200a1b210e0240200920042003200a1b2203490d00200721040c020b200641606a2106200721042007200e490d000b0b20032004200e20046b41607110e9081a201e201c20196a3602002017201f360200201d201d41086a2021201b417f736a41037410ea081a41012121202041014d0d050c010b0b201b20214184d2cc00103c000b200320214194d2cc00103c000b201f200341a4d2cc001057000b2003201241a4d2cc00104d000b201a450d050c000b0b2003201241c4d1cc001056000b41e8b2c40041fa0041f4b3c400105d000b41e8b2c40041fa0041e4b3c400105d000b2003201b41f4d1cc001057000b0240201841ffffffff0171450d002022102e0b2026450d002014102e0b20012802b403210420012802b003210320012802b8032106200120163602d40f200120003602d00f20012027410020111b220d3602cc0f200120123602c80f200120133602c40f200120103602c00f200141003602bc0f2001200320064105746a22063602b80f200120033602b40f200120043602b00f200120163602840c200120003602800c2001200d3602fc0b200120123602f80b200120133602f40b200120103602f00b200141003602ec0b200120063602e80b200120033602e40b200120043602e00b200141e00b6a211e200141b00f6a21170b200141d80f6a41106a2204201741106a221d290200220b370300200141d80f6a41186a2206201741186a221f2902002208370300200141b0036a41086a220d201741086a2220290200370300200141b0036a41106a220e200b370300200141b0036a41186a22052008370300200141b0036a41206a220a201741206a221b290200370300200141c0016a41206a2207200141a0056a41206a290200370300200141c0016a41186a2209200141a0056a41186a290200370300200141c0016a41106a2221200141a0056a41106a290200370300200141c0016a41086a2219200141a0056a41086a290200370300200120172902003703b003200120012902a0053703c001200141900d6a41206a2222200141d80f6a41206a221c290300370300200141900d6a41186a22102006290300370300200141900d6a41106a22122004290300370300200141900d6a41086a2214200141d80f6a41086a221a290300370300200120012903d80f3703900d200120033602dc0f200141013602d80f201a20012903b0033703002004200d2903003703002006200e290300370300201c200529030037030020014180106a200a29030037030020014100360288102001418c106a220320012903c00137020020014194106a20192903003702002001419c106a2021290300370200200141a4106a2009290300370200200141ac106a2007290300370200200141003602b410200141d8106a2022290300370300200141d0106a2010290300370300200141c8106a2012290300370300200141c0106a2014290300370300200141b8106a221020012903900d370300200141b4106a211c20014188106a2122200141f40f6a2106200141ec0f6a210d200141e40f6a210e20014190106a210920014198106a2121200141a0106a2119410021040340024002402004450d00202210ec064108470d0102402001280288102204450d000240200128028c1041ffffff3f71450d002004102e0b20012802a01041ffffff3f71450d00200128029c10102e0b20032017290200370200200341086a2020290200370200200341106a201d290200370200200341186a201f290200370200200341206a201b29020037020020014100360288100b20062902002108200620012903b805370200200d2902002123200d20012903b005370200200e2902002124200e20012903a805370200200141003602a00520012902dc0f210b200120012903a0053702dc0f0240200ba72204450d0020012802fc0f2105200128028010210a20012802841021072001200b37038810200920243703002021202337030020192008370300200120073602b0102001200a3602ac10200120053602a8100c020b024020012802b410450d00201c10ec064108470d01024020012802b4102203450d000240200141b8106a28020041ffffff3f71450d002003102e0b200141cc106a28020041ffffff3f71450d0020012802c810102e0b2010201e290200370200201041086a201e41086a290200370200201041106a201e41106a290200370200201041186a201e41186a290200370200201041206a201e41206a290200370200200141003602b4100b024020012802d80f450d0020012802dc0f2203450d00024020012802e00f41ffffff3f71450d002003102e0b200141f40f6a28020041ffffff3f71450d00200141f00f6a280200102e0b02402001280288102203450d000240200128028c1041ffffff3f71450d002003102e0b20012802a01041ffffff3f71450d00200128029c10102e0b20012802b4102203450d020240200141b8106a28020041ffffff3f71450d002003102e0b200141cc106a28020041ffffff3f71450d0220012802c810102e0c020b20012802881021040c000b0b200224000f0b1036000b1038000b1800200020014101472003ad4220862002ad84101a10da080b8d0101017f230041206b22062400200641086a200310dc0820004101472002ad4220862001ad84200641186a200641106a2200200628020822014101461b2903002005ad4220862004ad841019210202402001450d002000280200450d00200628020c102e0b024020032802002201450d00200341046a280200450d002001102e0b200641206a240020024101460b4401017f2000101d2201290000370000200041186a200141186a290000370000200041106a200141106a290000370000200041086a200141086a2900003700002001102e0bc11d09097f027e057f017e027f017e017f047e037f230041f0006b220424000240200241086a22052802002206200120062001491b2207450d00410021080240024002400240024003402002280200210902402006410274220a450d00200a210b2009210c02400340200c28020022012802080d012001417f3602080240200141f4006a2d00000d0002402001290330220d200141386a290300220e844200520d00200142013703202001427f370310200141286a4200370300200141186a427f3703000c010b200441086a427f427f200d200e10e7082001427f370320200141286a427f370300200141186a200441086a41086a290300370300200120042903083703100b200c41046a210c20014100360208200b417c6a220b0d000c020b0b4194dacc004110200441186a41c498c90041d498c900103e000b2003280200220f2003280208221041e0006c6a211102402010450d00200f21120340024020122802382201450d00200141d8006c2113201228023041306a210c02400340200c28020022012802080d01417f210b2001417f3602080240200141f4006a2d00000d002001290330220d200141386a290300220e84500d00200441186a2012290310201241186a2903002012290300201241086a290300200d200e10ea0420012001290310220d427f200d427f20042903202004280218410146220b1b22147c220e200e200d542215200141186a2216290300220d427f200441186a41106a290300200b1b22177c2015ad7c220e200d54200e200d511b220b1b20142017845022151b3703102016200d427f200e200b1b20151b3703002001280208210b0b2001200b41016a360208200c41d8006a210c201341a87f6a2213450d020c000b0b4194dacc004110200441186a41c498c900418499c900103e000b201241e0006a22122011470d000b0b200841016a21182009200a6a2116200641027421012009417c6a210b03402001450d07200b41046a220b280200220c280208221341016a41004c0d06200c20133602082001417c6a2101200c41f4006a2d00000d000b200b2802002213280208220c41016a41004c0d042013200c36020802402001450d00200b41046a210c201341286a2903002114201341186a2903002119201329032021172013290310211a0340200c2802002201280208221341016a41004c0d05200120133602080240200141f4006a2d00000d0020012013360208200141186a290300210d2001290310210e02400240024020172001290320221b852014200141286a290300221c85844200520d00201a200e542019200d542019200d511b0d03201a200e852019200d858442005221120c010b2017201484500d01201b201c84500d024110102c2201450d072001201a3e020c2001201a4220883e0208200120193e0204200120194220883e020020044284808080c00037025420042001360250200441d0006a10bb074110102c2201450d072001201b3e020c2001201b4220883e02082001201c3e02042001201c4220883e020020044284808080c00037026420042001360260200441e0006a10bb07200441186a41086a2213200441d0006a41086a221228020036020020042004290350370318200441306a200441186a200441e0006a10bc070240200428026441ffffffff0371450d002004280260102e0b4110102c2201450d072001200e3e020c2001200e4220883e02082001200d3e02042001200d4220883e020020044284808080c00037025420042001360250200441d0006a10bb074110102c2201450d07200120173e020c200120174220883e0208200120143e0204200120144220883e020020044284808080c00037026420042001360260200441e0006a10bb072013201228020036020020042004290350370318200441c0006a200441186a200441e0006a10bc070240200428026441ffffffff0371450d002004280260102e0b2004280230211d024002402004280238221e0d0041012106410021130c010b201e4102742212417c6a41027641016a211541002113201d2101034002402001280200450d00410021060c020b200141046a210141012106201341016a21132012417c6a22120d000b201521130b2004280240210a024002400240024002402004280248221f450d00200a201f4102746a210941002112201f2115200a2101034020012802000d022015417f6a2115201241016a2112200141046a22012009470d000b0b410121124100210920060d010c030b410121092006450d010b410020096b21120c010b201e2013490d07417f201f20126b2212201e20136b22064720062012491b22120d00201d20134102746a21092015200620152006491b41016a211541002113034002402015417f6a22150d00410021120c020b200120136a2112200920136a2106201341046a2113417f20062802002206201228020022124720062012491b2212450d000b0b0240200428024441ffffffff0371450d00200a102e0b200428023441ffffffff0371450d00201d102e0b20124101470d010b200e211a200d2119201b2117201c2114200c210b0b200c41046a220c2016470d000b0b200b450d060240200b280200220c2802080d00417f2101200c417f360208200c2008360250200c41f4006a41013a000002402010450d00200c41106a41c4006a21120340200f221341e0006a210f02402013280238220b450d0020132802302101200b41d8006c210b03400240200141346a2012412010ec080d00201341186a22152903002117200c41186a2216290300210d20132903102114200c290310210e200c2903202119200141186a200c41286a2206290300370300200141106a20193703002001200d4200200d20177d200e201454ad7d2219200e20147d221b200e562019200d562019200d511b22091b201420178450220a1b3703082001200e4200201b20091b200a1b3703002016290300210d2006290300210e200c29031021142013200c290320370320201341286a200e370300201320143703102015200d3703000b200141d8006a2101200b41a87f6a220b0d000b0b200f2011470d000b200c28020821010b200c200141016a36020820182007460d0720052802002106201821080c010b0b4194dacc004110200441186a41c498c900419499c900103e000b2013201e41d4dacc001056000b1036000b41bcd9cc004118200441186a41f09cc50041f498c900103e000b41bcd9cc004118200441186a41b4ebc00041e09dc500103e000b41bcd9cc004118200441186a41e498c90041f498c900103e000b20032802002201200328020841e0006c6a2111200441286a2116024003400240024002402001220b2011460d00200b41386a220a280200220c0d0141002115200a4100360200410021090c020b200441186a41086a2201200241086a280200360200200441186a41146a200341086a2802003602002000410036020020002002290200370204200420032902003702242000410c6a2001290300370200200041146a200441286a2903003702000c030b200b2802302101200c41d8006c2113024003400240200141306a2212280200220c280208221541016a41004a0d0041bcd9cc004118200441186a41e498c90041a499c900103e000b200c201536020802400240200c41f4006a2d0000450d00200441186a200b290300200b41086a2903002001290300200141086a290300200b290310200b41186a29030010ea042004290320210d200141286a427f20162903002004280218410146220c1b370300200141206a427f200d200c1b3703000c010b200141286a4200370300200141206a42003703000b02402012280200220c2802080d00200c417f360208200141206a290300210d200141286a290300210e200c4100360208200c427f200d200c29034022147c220d200d2014542212200e200c41c8006a2215290300220d7c2012ad7c220e200d54200e200d511b22121b3703402015427f200e20121b370300200141d8006a2101201341a87f6a2213450d020c010b0b4194dacc004110200441186a41c498c90041b499c900103e000b200a280200211541002109200a41003602002015450d0041002106410021094100210c02400340024002402009450d00200c41d8006c21010340200b280230221220016a221341206a290300201341286a290300844200510d02201220066a20016a201341d80010e9081a200141d8006a21012015200c41016a220c4b0d000c040b0b200b2802302212200c41d8006c6a41206a210103402001290300200141086a29030084500d01200141d8006a21012015200c41016a220c4b0d000b410021090c030b2012200c41d8006c6a220128023022132013280200417f6a360200200c41016a210c0240200128023022132802000d00201341046a22132013280200417f6a360200200141306a280200220141046a2802000d002001102e0b200941016a2109200641a87f6a21062015200c4b0d000b0b024020090d00410021090c010b200b2802302201200c20096b41d8006c6a2001200c41d8006c6a2015200c6b41d8006c10ea081a0b200b41e0006a2101200a201520096b3602002004200b10bb042004280200220c450d000b200428020421012000428180808030370200200041086a2001ad422086200cad8437020020032802002115024020032802082201450d002015200141e0006c6a211220152101034002402001221341386a2802002201450d00200141d8006c210c201328023041306a210103402001280200220b200b280200417f6a36020002402001280200220b2802000d00200b41046a220b200b280200417f6a3602002001280200220b41046a2802000d00200b102e0b200141d8006a2101200c41a87f6a220c0d000b0b201341e0006a21010240201341346a280200220c450d00200c41d8006c450d002013280230102e0b20012012470d000b0b0240200341046a2802002201450d00200141e0006c450d002015102e0b200228020021130240200241086a2802002201450d002001410274210c2013210103402001280200220b200b280200417f6a36020002402001280200220b2802000d00200b41046a220b200b280200417f6a3602002001280200220b41046a2802000d00200b102e0b200141046a2101200c417c6a220c0d000b0b200241046a28020041ffffffff0371450d002013102e0b200441f0006a24000b930301067f230041106b2202240002400240024002400240024020014102490d0020002802042203280208220441016a41004c0d022003200436020820002802002204280208220541016a41004c0d032003280250210320042005360208200320042802504f0d00200028020021032000200028020436020002400240200141034f0d00200041046a21000c010b200041046a21042001417f6a21060340200441046a22002802002205280208220741016a41004c0d06200520073602082003280208220741016a41004c0d072005280250210520032007360208024020052003280250490d00200421000c020b2006450d0320042000280200360200200021042006417f6a22064101470d000b0b200020033602000b200241106a24000f0b2001200141d4d1cc00103c000b41bcd9cc004118200241086a41c4f8c90041d4f8c900103e000b41bcd9cc004118200241086a41c4f8c90041d4f8c900103e000b41bcd9cc004118200241086a41c4f8c90041d4f8c900103e000b41bcd9cc004118200241086a41c4f8c90041d4f8c900103e000bb51006037f017e017f017e0c7f027e23004180026b22022400200141346a2802002103200141386a2802002104200141086a29030021052001280230210620012903002107200241086a41186a200141d4006a290000370300200241086a41106a200141cc006a290000370300200241086a41086a200141c4006a2900003703002002200129003c37030820022005370330200220073703282006200441d8006c22086a21092006210102400240024002402004450d004100210a20024198016a41086a210b20024198016a41106a210c20024198016a41186a210d024002400340200b2006200a6a2201413c6a290200370300200c200141c4006a290200370300200d200141cc006a29020037030020024198016a41206a200141d4006a2802003602002002200141346a29020037039801200141306a280200220e450d02200141286a2903002105200141206a2903002107200241e0016a41186a220f200d290300370300200241e0016a41106a2210200c290300370300200241e0016a41086a2211200b29030037030020022002290398013703e00102400240200720052002290328200241286a41086a29030010e606221241ffff03710d004100210f0c010b200241c0016a41186a200f290300370300200241c0016a41106a2010290300370300200241c0016a41086a2011290300370300200220022903e0013703c0014101210f201221130b200e200e280200417f6a2210360200024020100d00200e41046a22102010280200417f6a221036020020100d00200e102e0b200f0d012008200a41d8006a220a470d000b200921010c020b200241386a41086a220e200241c0016a41086a290300370300200241386a41106a220b200241c0016a41106a290300370300200241386a41186a220c200241c0016a41186a290300370300200220022903c00122053703582002200537033802404122102c2208450d0020082002290338370100200820133b0120200841186a200c290300370100200841106a200b290300370100200841086a200e290300370100200220093602442002200141d8006a220b3602402002200336023c200220063602382002200241286a360248024002400240200441d8006c41a87f6a200a470d0041012103410121040c010b20024198016a41086a210a20024198016a41106a210c20024198016a41186a210d410121034101210403402002200b220141d8006a220b360240200141306a280200210e200141286a2903002105200141206a2903002107200a2001413c6a290200370300200c200141c4006a290200370300200d200141cc006a29020037030020024198016a41206a200141d4006a2802003602002002200141346a2902003703980102400240200e450d00200241e0016a41186a2210200d290300370300200241e0016a41106a2211200c290300370300200241e0016a41086a2212200a29030037030020022002290398013703e00102400240200720052002280248220f290300200f41086a29030010e606220641ffff03710d004100210f0c010b200241c0016a41186a2010290300370300200241c0016a41106a2011290300370300200241c0016a41086a2012290300370300200220022903e0013703c0014101210f200621130b200e200e280200417f6a2210360200024020100d00200e41046a22102010280200417f6a221036020020100d00200e102e0b200f0d012009200b470d020b200141d8006a210b0c020b200241d8006a41086a200241c0016a41086a2903002205370300200241d8006a41106a200241c0016a41106a2903002207370300200241d8006a41186a200241c0016a41186a2903002214370300200220022903c0012215370358200d2014370300200c2007370300200a20053703002002201537039801024020042003470d00200341016a22012003490d092003410174220e2001200e20014b1b22014104200141044b1bad42227e2205422088a74541017421012005a7210e0240024020030d00200241003602e0010c010b200241023602e801200220083602e0012002200341226c3602e4010b200241c0016a200e2001200241e0016a107d20022802c801210120022802c0014101460d0320022802c4012108200141226e21030b2008200441226c6a2201200229039801370100200c2903002105200d2903002107200a2903002114200120133b0120200141086a2014370100200141186a2007370100200141106a2005370100200441016a21042002280240220b20022802442209470d000b0b2009200b6b220141d8006d210e02402001450d00200e41d8006c210e200b41306a210103402001280200220a200a280200417f6a36020002402001280200220a2802000d00200a41046a220a200a280200417f6a3602002001280200220a41046a2802000d00200a102e0b200141d8006a2101200e41a87f6a220e0d000b0b0240200228023c2201450d00200141d8006c450d002002280238102e0b2004450d042000200336020420002008360200200041086a20043602002000410c6a2002290308370000200041146a200241086a41086a2903003700002000411c6a200241186a290300370000200041246a200241206a2903003700000c050b2001450d050b1036000b200141d8006a21010b024020092001460d000340200141306a220e280200220a200a280200417f6a360200200141d8006a21010240200e280200220a2802000d00200a41046a220a200a280200417f6a360200200e280200220e41046a2802000d00200e102e0b20092001470d000b0b02402003450d00200341d8006c450d002006102e0b200041003602000c010b200041003602002003450d00200341226c450d002008102e0b20024180026a24000f0b1038000bd6d20102517f0d7e230041c0076b22012400200141003602e4022001420037020c0240024002400240200041086a220228020022030d002001410036020c0c010b200141f8016a41c0006a2104200141c8066a41c0006a2105200141a8036a41c0006a2106200141c8066a41206a2107200141386a41206a2108200141186a41106a2109200141186a41186a210a200141c8066a41d8006a210b200141c8066a41d0006a210c200141c8066a41c8006a210d4100210e03400240024002402002280200220f200e4d0d00200141186a41086a22102000280200200e412c6c22116a220f41146a2900003703002009200f411c6a290000370300200a200f41246a2900003703002001200f29000c370318200f280208221241ffffff3f712012470d0620124105742213417f4c0d06200f280200210f0240024020130d00410121140c010b2013102c2214450d060b0240024002402013410576221520124f0d00201341047622162012201620124b1b22164104201641044b1b221641ffffff3f712016462117201641057421160240024020130d00200141003602c8060c010b200141013602d006200120133602cc06200120143602c8060b200141c8056a20162017200141c8066a107d20012802d005211320012802c8054101460d0120012802cc052114201341057621150b200f200f201241306c22136a460d03201341506a41306e21182014211203402012200f290000370000201241186a200f41186a290000370000201241106a200f41106a290000370000201241086a200f41086a290000370000201241206a2112200f41306a210f201341506a22130d000b201841016a22194102490d032019417f6a20196c410176220f41ffffff1f71200f470d08200f410674220f417f4c0d084101211a4101211b0240200f450d00200f102c221b450d080b201441206a211c200f410676211d410021134100211e0c010b20130d060c070b03400240201e220f41016a221e20194f0d0002400240200f20194f0d00201a201a2019201a20194b1b6b211f2014200f4105746a2116201e2019201e20194b1b2120201341017421212013410674211720182122201c21120340200141a8066a41186a220f201641186a290000370300200141a8066a41106a2223201641106a290000370300200141a8066a41086a2224201641086a290000370300200120162900003703a806201f450d02200141c8066a41186a2225200f290300370300200141c8066a41106a22262023290300370300200141c8066a41086a22232024290300370300200120012903a8063703c80620072012290000370000200741086a201241086a290000370000200741106a201241106a290000370000200741186a201241186a290000370000024002402013201d470d00201341016a220f2013490d0d2021200f2021200f4b1b220f4104200f41044b1b220f41ffffff1f71200f462124200f410674210f0240024020130d00200141003602c8050c010b200141013602d005200120173602cc052001201b3602c8050b20014188046a200f2024200141c8056a107d200128029004210f2001280288044101460d01200128028c04211b200f410676211d0b201b20176a220f20012903c806370000200f41386a200141c8066a41386a290300370000200f41306a200141c8066a41306a290300370000200f41286a200141c8066a41286a290300370000200f41206a2007290300370000200f41186a2025290300370000200f41106a2026290300370000200f41086a2023290300370000201f41016a211f201241206a2112202141026a2121201741c0006a2117201341016a21132022417f6a2222450d040c010b0b200f450d0a0c090b200f201941b8aac700103c000b2020201941c8aac700103c000b2018417f6a2118201a41016a211a201c41206a211c201e2019470d000b2013450d02201b20134106746a2127201b21230340200141386a41386a202341386a290000370300200141386a41306a202341306a290000370300200141386a41286a202341286a2900003703002008202341206a290000370300200141386a41186a202341186a220f290000370300200141386a41106a202341106a2212290000370300200141386a41086a202341086a221329000037030020012023290000370338200141f8006a41186a2216200f290000370300200141f8006a41106a220f2012290000370300200141f8006a41086a221220132900003703002001202329000037037820014198016a41186a200841186a221329000037030020014198016a41106a200841106a221729000037030020014198016a41086a200841086a221f2900003703002001200829000037039801200141c8066a41186a22252016290300370300200141c8066a41106a2226200f290300370300200141c8066a41086a2219201229030037030020072008290000370000200741086a201f290000370000200741106a2017290000370000200741186a2013290000370000200120012903783703c80602400240200128020c221f450d00200128020821210c010b41a808102c221f450d0741002121201f41003b0106201f41003602002001201f36020c200141003602080b202341c0006a21230340201f41286a210f201f2f010621164100211203400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020162012460d0002400240200141c8066a200f41606a412010ec082213450d002013417f4c0d010c270b2007200f412010ec082213450d02201341004e0d260b201221160b2021450d012021417f6a2121201f20164102746a41a8086a280200211f0c260b2002280200221e200e4d0d022000280200222220116a220f28020841306c2216450d22201f20124105746a41c8056a2124200f280200210f41002113034002400240200f200141f8006a412010ec080d00410121170c010b200f20014198016a412010ec084521170b200f41306a210f201720136a2113201641506a22160d000b20134102470d22201e412c6c210f202241546a21130340200f450d23200f41546a210f2013412c6a21132022410c6a21162022412c6a212220162024412010ec080d000b0240201341086a280200220f450d0020132802002217200f41306c22226a2116410021130340201720136a220f200141f8006a412010ec08450d03200f20014198016a412010ec08450d032022201341306a2213470d000b0b4108211e4100211a0c0f0b200141b8016a41386a220f200141c8066a41386a2228290300370300200141b8016a41306a2212200141c8066a41306a2229290300370300200141b8016a41286a2213200141c8066a41286a222a290300370300200141b8016a41206a22172007290300370300200141b8016a41186a22212025290300370300200141b8016a41106a22222026290300370300200141b8016a41086a22242019290300370300200120012903c8063703b801200141a8036a41386a222b200f290300370300200141a8036a41306a222c2012290300370300200141a8036a41286a222d2013290300370300200141a8036a41206a222e2017290300370300200141a8036a41186a222f2021290300370300200141a8036a41106a22302022290300370300200141a8036a41086a22312024290300370300200120012903b8013703a803200141a8066a41186a2232200a290300370300200141a8066a41106a22332009290300370300200141a8066a41086a22342010290300370300200120012903183703a8060240201f2f0106220f410a4b0d00200141c8056a41186a22172032290300370300200141c8056a41106a22212033290300370300200141c8056a41086a22222034290300370300200120012903a8063703c8052028202b2903003703002029202c290300370300202a202d2903003703002007202e2903003703002025202f2903003703002026203029030037030020192031290300370300200120012903a8033703c806201f41086a2113200f41016a21120240201641016a2224200f4b221e0d00201320244106746a201320164106746a20122016417f736a41067410ea081a0b201320164106746a220f20012903c806370000200f41386a2028290300370000200f41306a2029290300370000200f41286a202a290300370000200f41206a2007290300370000200f41186a2025290300370000200f41106a2026290300370000200f41086a2019290300370000200141e8026a41186a22132017290300370300200141e8026a41106a22172021290300370300200141e8026a41086a22212022290300370300200120012903c8053703e802201f41c8056a210f0240201e0d00200f20244105746a200f20164105746a20122016417f736a41057410ea081a0b200f20164105746a220f20012903e802370000200f41186a2013290300370000200f41106a2017290300370000200f41086a2021290300370000201f20123b01060c210b410021214104211302400240201641054f0d00201621170c010b4105211341052117024002402016417b6a0e020201000b201641796a211741012121410621130c010b41002117410121210b41a808102c2212450d2b201241003b0106201241003602002012201f2f010622222013417f736a22163b0106200141c8056a41386a2235201f41086a222420134106746a220f41386a290000370300200141c8056a41306a2236200f41306a290000370300200141c8056a41286a2237200f41286a290000370300200141c8056a41206a2238200f41206a290000370300200141c8056a41186a2239200f41186a290000370300200141c8056a41106a223a200f41106a290000370300200141c8056a41086a223b200f41086a2900003703002001200f2900003703c805200141e8026a41186a223c201f41c8056a221e20134105746a220f41186a290000370300200141e8026a41106a223d200f41106a290000370300200141e8026a41086a223e200f41086a2900003703002001200f2900003703e8022016410c4f0d022022201341016a220f6b2016470d03201241086a2024200f4106746a201641067410e9081a201241c8056a201e200f4105746a201641057410e9081a201f20133b01062028203529030037030020292036290300370300202a203729030037030020072038290300370300202520392903003703002026203a2903003703002019203b290300370300200520012903e802370000200541086a223f203e290300370000200541106a2240203d290300370000200541186a2241203c290300370000200120012903c8053703c806200141c8056a200141c8066a41e00010e9081a200141e8046a41186a22422032290300370300200141e8046a41106a22432033290300370300200141e8046a41086a22442034290300370300200120012903a8063703e8042012201f20211b22132f0106210f2028202b2903003703002029202c290300370300202a202d2903003703002007202e2903003703002025202f2903003703002026203029030037030020192031290300370300200120012903a8033703c806201341086a2121200f41016a21160240201741016a2222200f4b22240d00202120224106746a202120174106746a20162017417f736a41067410ea081a0b202120174106746a220f20012903c806370000200f41386a2028290300370000200f41306a2029290300370000200f41286a202a290300370000200f41206a2007290300370000200f41186a2025290300370000200f41106a2026290300370000200f41086a2019290300370000203c2042290300370300203d2043290300370300203e2044290300370300200120012903e8043703e802201341c8056a210f024020240d00200f20224105746a200f20174105746a20162017417f736a41057410ea081a0b200f20174105746a220f20012903e802370000200f41186a203c290300370000200f41106a203d290300370000200f41086a203e290300370000201320163b010620014188046a200141c8056a41e00010e9081a200141a8036a20014188046a41e00010e9081a024002400240201f28020022210d00410021450c010b41002145201221460340201f2f01042117200141e8046a41386a2247202b290300370300200141e8046a41306a2248202c290300370300200141e8046a41286a2249202d290300370300200141e8046a41206a224a202e2903003703002042202f2903003703002043203029030037030020442031290300370300200120012903a8033703e804200141a8056a41186a224b200641186a290000370300200141a8056a41106a224c200641106a290000370300200141a8056a41086a224d200641086a290000370300200120062900003703a8054101450d0720212f0106224e410b490d024100212041042116024020174105490d0020172116024002402017417b6a0e020201000b201741796a211741012120410621160c010b4100211741012120410521160b41d808102c2212450d2e201241003b010620124100360200201220212f0106224f2016417f736a22133b010620014188046a41386a221f202141086a225020164106746a220f41386a29000037030020014188046a41306a2222200f41306a29000037030020014188046a41286a2224200f41286a29000037030020014188046a41206a221e200f41206a29000037030020014188046a41186a221a200f41186a29000037030020014188046a41106a2218200f41106a29000037030020014188046a41086a221c200f41086a2900003703002001200f29000037038804203c202141c8056a225120164105746a220f41186a290000370300203d200f41106a290000370300203e200f41086a2900003703002001200f2900003703e8022013410c4f0d08204f201641016a220f6b2013470d09201241086a2050200f4106746a201341067410e9081a201241c8056a2051200f4105746a201341057410e9081a202120163b01062028201f29030037030020292022290300370300202a20242903003703002007201e2903003703002025201a290300370300202620182903003703002019201c290300370300200520012903e802370000203f203e2903003700002040203d2903003700002041203c29030037000020012001290388043703c80620122f0106221341016a214f2013410c4f0d0a204e20166b2216204f470d0b204541016a2145201241a8086a2021200f4102746a41a8086a201641027410e9081a4100210f024003402012200f4102746a41a8086a2802002216200f3b010420162012360200200f200f20134922166a220f20134b0d0120160d000b0b200141c8056a200141c8066a41e00010e9081a201f20472903003703002022204829030037030020242049290300370300201e204a290300370300201a204229030037030020182043290300370300201c2044290300370300200120012903e804370388042032204b2903003703002033204c2903003703002034204d290300370300200120012903a8053703a8062012202120201b22162f010621202028201f29030037030020292022290300370300202a20242903003703002007201e2903003703002025201a290300370300202620182903003703002019201c29030037030020012001290388043703c806201641086a210f202041016a211f0240201741016a221320204b22220d00200f20134106746a200f20174106746a2017417f73201f6a41067410ea081a0b200f20174106746a220f20012903c806370000200f41386a2028290300370000200f41306a2029290300370000200f41286a202a290300370000200f41206a2007290300370000200f41186a2025290300370000200f41106a2026290300370000200f41086a201929030037000020014188036a41186a2224203229030037030020014188036a41106a221e203329030037030020014188036a41086a221a2034290300370300200120012903a80637038803201641c8056a210f024020220d00200f20134105746a200f20174105746a2017417f73201f6a41057410ea081a0b200f20174105746a220f200129038803370000200f41186a2024290300370000200f41106a201e290300370000200f41086a201a290300370000201641a8086a210f0240201741026a2224202041026a22224f0d00200f20244102746a200f20134102746a2013417f7320226a41027410ea081a0b200f20134102746a20463602002016201f3b01060240201320224f0d00201620174102746a41ac086a210f0340200f2802002213201741016a22173b010420132016360200200f41046a210f201f2017470d000b0b200141a8036a200141c8056a41e00010e9081a2021211f2021280200220f212120122146200f0d000b0b200141f8016a200141a8036a41e00010e9081a203b200141f8016a41086a290200370300203a200141f8016a41106a2902003703002039200141f8016a41186a2902003703002038200141f8016a41206a2902003703002037200141f8016a41286a2902003703002036200141f8016a41306a2902003703002035200141f8016a41386a2902003703002034200441086a2902003703002033200441106a2902003703002032200441186a290200370300200120012902f8013703c805200120042902003703a806200128020c2213450d0a2001280208211641d808102c220f450d2c200f20133602a808200f41003b0106200f4100360200201341003b01042013200f3602002001200f36020c2001201641016a3602082028203529030037030020292036290300370300202a203729030037030020072038290300370300202520392903003703002026203a2903003703002019203b290300370300200120012903c8053703c80620014188046a41186a2217203229030037030020014188046a41106a221f203329030037030020014188046a41086a22212034290300370300200120012903a8063703880420162045470d0b200f2f01062216410b4f0d0c200f20164106746a221341086a20012903c806370000201341106a2019290300370000201341186a2026290300370000201341206a2025290300370000201341286a2007290300370000201341306a202a290300370000201341386a2029290300370000201341c0006a2028290300370000200f20164105746a221341c8056a200129038804370000201341d0056a2021290300370000201341d8056a201f290300370000201341e0056a2017290300370000200f201641016a22133b0106200f20134102746a41a8086a2012360200201220133b01042012200f3602002001200128021041016a36021020121a0c220b20014188046a41386a220f204729030037030020014188046a41306a2212204829030037030020014188046a41286a2216204929030037030020014188046a41206a221f204a29030037030020014188046a41186a2222204229030037030020014188046a41106a2224204329030037030020014188046a41086a221e2044290300370300200120012903e804370388042032204b2903003703002033204c2903003703002034204d290300370300200120012903a8053703a80620212f010621132028200f29030037030020292012290300370300202a20162903003703002007201f29030037030020252022290300370300202620242903003703002019201e29030037030020012001290388043703c806201741016a2112202141086a210f201341016a21160240201720134f221f0d00200f20124106746a200f20174106746a2017417f7320166a41067410ea081a0b200f20174106746a220f20012903c806370000200f41386a2028290300370000200f41306a2029290300370000200f41286a202a290300370000200f41206a2007290300370000200f41186a2025290300370000200f41106a2026290300370000200f41086a201929030037000020014188036a41186a2222203229030037030020014188036a41106a2224203329030037030020014188036a41086a22252034290300370300200120012903a80637038803202141c8056a210f0240201f0d00200f20124105746a200f20174105746a2017417f7320166a41057410ea081a0b200f20174105746a220f200129038803370000200f41186a2022290300370000200f41106a2024290300370000200f41086a2025290300370000202141a8086a210f201341026a21130240201f0d002017410274200f6a41086a200f20124102746a2012417f7320136a41027410ea081a0b200f20124102746a2046360200202120163b0106201220134f0d2020212012417f6a220f4102746a41ac086a2112034020122802002213200f41016a220f3b010420132021360200201241046a21122016200f470d000c210b0b2019200f41086a2903003703002026200f41106a2903003703002025200f41186a2903003703002001200f2903003703c806200f41286a2903002152200f41206a29030021534130102c221e450d2a201e2053370320201e20012903c806370300201e41286a2052370300201e41186a2025290300370300201e41106a2026290300370300201e41086a2019290300370300200120163602cc052001200f41306a220f3602c805200120014198016a3602d4052001200141f8006a3602d005202241506a2013460d0b4101211a200141f8006a211720014198016a21224101211803402001200f41306a22133602c8050240200f2017412010ec08450d00200f2022412010ec08450d002013210f20162013470d010c0e0b200f41286a2903002152200f41206a29030021532025200f41186a2903003703002026200f41106a2903003703002019200f41086a2903003703002001200f2903003703c806024002402018201a470d00201a41016a220f201a490d2e201a4101742213200f2013200f4b1b220f4104200f41044b1bad42307e2254422088a745410374210f2054a7211302400240201a0d0020014100360288040c010b20014108360290042001201e360288042001201a41306c36028c040b200141a8036a2013200f20014188046a107d20012802b003210f20012802a8034101460d0120012802ac03211e200f41306e211a0b201e201841306c6a220f20012903c806370300202629030021542025290300215520192903002156200f2053370320200f41086a2056370300200f41286a2052370300200f41186a2055370300200f41106a2054370300201841016a211820012802c805220f20012802cc052216460d0e20012802d405212220012802d00521170c010b0b200f450d2b0c2a0b200e201e41d8aac700103c000b2016410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b41ac9cc700413541e49cc7001039000b2013410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b204f410c41f49cc700104d000b41f49bc7004128419c9cc7001039000b41e8aac700412b4194abc7001039000b41e899c700413041989ac7001039000b41a89ac700412041c89ac7001039000b4101211a0c010b201841014d0d0020184102470d0b41e000102c2218450d1d2002280200220f200e4d0d010240200028020020116a220f28020841306c22170d00410221200c100b200f280200210f4102212041002113024002400240034002400240200f200141f8006a412010ec08450d00200f20014198016a412010ec080d010b200141a8066a41186a2216200f41186a290300370300200141a8066a41106a2222200f41106a290300370300200141a8066a41086a221c200f41086a2903003703002001200f2903003703a806200f41286a2903002152200f41206a2903002153024020132020470d00201341016a22202013490d24201341017422282020202820204b1b22204104202041044b1bad42307e2254422088a74541037421202054a721280240024020130d00200141003602c8060c010b200141083602d006200120183602c8062001201341306c3602cc060b200141c8056a20282020200141c8066a107d20012802d005212020012802c8054101460d0320012802cc052118202041306e21200b201c2903002154202229030021552016290300215620012903a80621572018201341306c6a2216205337032020162057370300201641286a2052370300201641186a2056370300201641106a2055370300201641086a2054370300201341016a21130b200f41306a210f201741506a22170d000b20134102470d120240201e2018412010ec08450d00200141c8066a41286a220f201e41286a22132903003703002007201e41206a22162903003703002025201e41186a22172903003703002026201e41106a22222903003703002019201e41086a221c2903003703002001201e2903003703c8062013201e41d8006a22282903003703002016201e41d0006a22132903003703002017201e41c8006a22162903003703002022201e41c0006a2217290300370300201c201e41386a2222290300370300201e201e2903303703002028200f29030037030020132007290300370300201620252903003703002017202629030037030020222019290300370300201e20012903c8063703300b2001427f3703d0052001427f3703c805200141003602a80641c00141e000201e1b41e0004100201e1b20181b21132018201e72221c0d014108210f0c020b2020450d200c1f0b2013102c220f450d1e0b200141003602f0042001200f3602e8042001201341306e22173602ec0402400240024020180d0041022113201e0d01410021220c020b41044102201e1b21130b41002116410021220240201720134f0d00201741017422222013202220134b1b22134104201341044b1b41306c211302400240201c0d00200141003602c8060c010b200141083602d0062001200f3602c8062001201741306c3602cc060b20014188046a20134108200141c8066a107d20012802900421132001280288044101460d052001200128028c04220f3602e8042001201341306e3602ec0420012802f00421220b200f202241306c6a210f02402018450d00201841e0006a221c2018460d00200141c8056a41086a290300215420012903c805215841002116201821130340201341306a21170240201341206a2903002253205856201341286a290300225220545620522054511b0d00200120533703c805200120163602a806200120523703d00520532158205221540b200f2013290300370300201341086a2903002155201341106a2903002156201341186a2903002157200f41286a2052370300200f41206a2053370300200f41186a2057370300200f41106a2056370300200f41086a2055370300200f41306a210f201641016a211620172113201c2017470d000b202220166a21220b201e450d00201e41e0006a221c201e460d00200141c8056a41086a290300215420012903c8052158201e21130340201341306a21170240201341206a2903002253205856201341286a290300225220545620522054511b0d00200120533703c805200120163602a806200120523703d00520532158205221540b200f2013290300370300201341086a2903002155201341106a2903002156201341186a2903002157200f41286a2052370300200f41206a2053370300200f41186a2057370300200f41106a2056370300200f41086a2055370300200f41306a210f201641016a2116202241016a212220172113201c2017470d000b0b200120223602f00420012802a806210f200141003602c80620014188046a41104104200141c8066a107d200128029004211302402001280288044101470d002013450d1f0c1e0b200128028c042232200f360200201341027621330240024020012802a806220f41014b0d00200141003602c80620014188046a41104104200141c8066a107d20012802900421132001280288044101460d06200128028c0422294101200f6b360200024020334101470d0020014284808080c0003702cc06200120323602c80620014188046a41104104200141c8066a107d20012802900421162001280288044101460d08200128028c042132201641027621330b20324103200f6b36020420012802a806210f024002402013410276222a4101470d0020014284808080c0003702cc06200120293602c80620014188046a41104104200141c8066a107d20012802900421132001280288044101460d01200128028c0421292013410276212a0b2029200f41026a3602040c020b2013450d200c1f0b200141003602c80620014188046a41104104200141c8066a107d20012802900421132001280288044101460d07200128028c042229200f410171410373220f360200024020334101470d0020014284808080c0003702cc06200120323602c80620014188046a41104104200141c8066a107d20012802900421162001280288044101460d09200128028c042132201641027621330b2032200f417e6a36020420012802a806210f02402013410276222a4101470d0020014284808080c0003702cc06200120293602c80620014188046a41104104200141c8066a107d20012802900421132001280288044101460d0a200128028c0421292013410276212a0b2029200f417e6a3602040b4104102c220f450d1d200142013702fc012001200f3602f801024002402029280200220f41014b0d002025200a2903003703002026200929030037030020192010290300370300200120012903183703c8060c010b2025202441186a2900003703002026202441106a2900003703002019202441086a290000370300200120242900003703c8060b024020022802002213450d002000280200221c2013412c6c6a212803400240201c410c6a200141c8066a412010ec080d00201c2802082216450d00201c2802002113201641306c21174100212220012802f004211603402016200f4d0d060240201320012802e804200f41306c6a412010ec08450d00201341306a2113202241016a2122201741506a22170d010c020b0b201341206a2216427f2016290300225220012903c8057c225320532052542216201341286a22132903002252200141c8056a41086a2903007c2016ad7c225320525420532052511b22161b3703002013427f205320161b3703000b201c412c6a221c2028470d000b0b024002402029280204220f4102490d002025202441186a2900003703002026202441106a2900003703002019202441086a290000370300200120242900003703c8060c010b2025200a2903003703002026200929030037030020192010290300370300200120012903183703c8060b024020022802002213450d002000280200221c2013412c6c6a212803400240201c410c6a200141c8066a412010ec080d00201c2802082216450d00201c2802002113201641306c21174100212220012802f004211603402016200f4d0d060240201320012802e804200f41306c6a412010ec08450d00201341306a2113202241016a2122201741506a22170d010c020b0b201341206a2216427f2016290300225220012903c8057c225320532052542216201341286a22132903002252200141c8056a41086a2903007c2016ad7c225320525420532052511b22161b3703002013427f205320161b3703000b201c412c6a221c2028470d000b0b202a0d090c0a0b20242001290318370000202441186a200a290300370000202441106a2009290300370000202441086a20102903003700000c0f0b200e200f41a4abc700103c000b200f201641b4abc700103c000b2013450d1a0c190b2013450d190c180b2016450d180c170b2013450d170c160b2016450d160c150b2013450d150c140b2029102e0b024002402032280200220f41014b0d002025200a2903003703002026200929030037030020192010290300370300200120012903183703c8060c010b2025202441186a2900003703002026202441106a2900003703002019202441086a290000370300200120242900003703c8060b024002400240024020022802002213450d002000280200221c2013412c6c6a212803400240201c410c6a200141c8066a412010ec080d00201c41086a222a2802002229450d00201c2802002113202941306c41506a21174100212220012802f004211603402016200f4d0d040240201320012802e804200f41306c6a412010ec08450d00201341306a2113202241016a2122201741506a22174150470d010c020b0b0240201341206a2216290300225320012903c805225556201341286a22222903002252200141c8056a41086a29030022545620522054511b0d002013201341306a201710ea081a202a2029417f6a3602000240200128028002221320012802fc01470d00201341016a22162013490d1b201341017422172016201720164b1b22164104201641044b1b221641ffffffff03712016464102742117201641027421160240024020130d0020014100360288040c010b2001410436029004200120012802f801360288042001201341027436028c040b200141a8036a2016201720014188046a107d20012802b003211320012802a8034101460d0b200120012802ac033602f801200120134102763602fc0120012802800221130b20012802f80120134102746a200f360200200120012802e40241016a3602e402200120012802800241016a360280020c010b20224200205220547d2053205554ad7d2254205320557d2255205356205420525620542052511b22131b37030020164200205520131b3703000b201c412c6a221c2028470d000b0b024002402032280204220f4102490d002025202441186a2900003703002026202441106a2900003703002019202441086a290000370300200120242900003703c8060c010b2025200a2903003703002026200929030037030020192010290300370300200120012903183703c8060b024020022802002213450d00200028020022262013412c6c6a2119034002402026410c6a200141c8066a412010ec080d00202641086a2228280200221c450d0020262802002113201c41306c41506a21174100212220012802f004211603402016200f4d0d040240201320012802e804200f41306c6a412010ec08450d00201341306a2113202241016a2122201741506a22174150470d010c020b0b0240201341206a2216290300225320012903c805225556201341286a22222903002252200141c8056a41086a29030022545620522054511b0d002013201341306a201710ea081a2028201c417f6a3602000240200128028002221320012802fc01470d00201341016a22162013490d1b201341017422172016201720164b1b22164104201641044b1b221641ffffffff0371201646410274211720164102742116024002402013450d002001410436029004200120012802f801360288042001201341027436028c040c010b20014100360288040b200141a8036a2016201720014188046a107d20012802b003211320012802a8034101460d0b200120012802ac033602f801200120134102763602fc0120012802800221130b20012802f80120134102746a200f360200200120012802e40241016a3602e402200120012802800241016a360280020c010b20224200205220547d2053205554ad7d2254205320557d2255205356205420525620542052511b22131b37030020164200205520131b3703000b2026412c6a22262019470d000b0b20330d010c020b200f201641c4abc700103c000b2032102e0b20012802f8012222417c6a2116200128028002410274220f211302400340024020130d00410021160c020b2013417c6a2113201641046a221628020041014b0d000b0b20012802fc012126202221130240024002400340200f450d01200f417c6a210f20132802002117201341046a211320174102490d000b0240202641ffffffff0371450d002022102e0b20160d0120242001290318370000202441186a200a290300370000202441106a2009290300370000202441086a20102903003700000c020b0240202641ffffffff0371450d002022102e0b20160d0141d4abc70041294180acc7001039000b200141003a00a803024002402021450d002021417f6a2113201f20124102746a41a8086a280200210f02400340200f2f010621122013450d012013417f6a2113200f20124102746a41a8086a280200210f0c000b0b200141003602880420012012417f6a410020121b360290042001200f410020121b36028c04200141c8066a20014188046a200141a8036a10ce0620252903002152200141c8066a41386a22172903002153200141c8066a41306a221f2903002154200141c8066a41286a22212903002155200b2903002156200c2903002157200d290300215820012903d806215920012903d006215a20012903c806215b20012903e806215c200129038807215d20012802a80721160240024020012802b007221320012802ac0722122f01064f0d002012210f0c010b034002402012280200220f0d004100210f0c020b201641016a211620122f01042113200f21122013200f2f01064f0d000b0b200f20134106746a221241206a2222290000215e20222052370000201241186a2222290000215220222059370000201241106a222229000021592022205a370000201241086a2222290000215a2022205b370000201241c0006a2222290000215b20222053370000201241386a2222290000215320222054370000201241306a2222290000215420222055370000201241286a221229000021552012205c370000200f20134105746a221241d8056a2222290000215c20222057370000201241d0056a2222290000215720222058370000201241c8056a222229000021582022205d370000201241e0056a2212290000215d20122056370000201341016a211202402016450d00200f20124102746a41a8086a280200210f02402016417f6a2212450d000340200f2802a808210f2012417f6a22120d000b0b410021120b200d205737030020212054370300200c205c370300201f2053370300200b205d3703002017205b3703002025205e3703002001205837038807200120553703e8062001205a3703c806200120123602b0072001200f3602ac07200141003602a807200120593703d006200120523703d8060c010b20012012360290042001201f36028c042001410036028804200141c8066a20014188046a200141a8036a10ce060b20012001280210417f6a36021020012d00a803450d00200128020c220f450d0220012802082212450d032001200f2802a808221336020c20012012417f6a36020820134100360200200f102e0b024020012802ec04220f450d00200f41306c450d0020012802e804102e0b2020450d00202041306c450d002018102e0b201a450d07201a41306c0d050c070b41e8aac700412b4190acc7001039000b41b39bc700412141d49bc7001039000b2013450d0f0c0e0b2020450d00202041306c450d002018102e0b201a450d02201a41306c450d020b201e102e0c010b2001200128021041016a3602100b20232027470d030c060b201241016a2112200f41c0006a210f0c000b0b0b0b200e200f41a8aac700103c000b4100211d4101211b0b0240201d41ffffff1f71450d00201b102e0b200e41016a210e02402015450d002014102e0b200e2003470d000b200128020c210f2001410036020c200f450d00024020012802082212450d002012417f6a21120340200f2802a808210f2012450d012012417f6a21120c000b0b024020012802102216450d00200141c8066a41c0006a21174100210703402016417f6a2116410121120240024003402007200f2f0106490d010240200f28020022130d00200f102e4100210f0c030b200f2f01042107200f102e2012417f6a21122013210f0c000b0b20014188046a41386a221f200f20074106746a221341c0006a29000037030020014188046a41306a2221201341386a29000037030020014188046a41286a2222201341306a29000037030020014188046a41206a2223201341286a29000037030020014188046a41186a2224201341206a29000037030020014188046a41106a2225201341186a29000037030020014188046a41086a2226201341106a2900003703002001201341086a2900003703880420014188036a41186a221b200f20074105746a221341e0056a29000037030020014188036a41106a221d201341d8056a29000037030020014188036a41086a2219201341d0056a2900003703002001201341c8056a29000037038803200741016a2107024020124101460d00200f20074102746a41a8086a280200210f02402012450d000340201241016a220720124f2113200f2802a808210f2007211220130d000b0b410021070b2017200129038803370000200141c8066a41386a201f290300370300200141c8066a41306a2021290300370300200141c8066a41286a2022290300370300200141c8066a41206a2023290300370300200141c8066a41186a2024290300370300200141c8066a41106a2025290300370300200141c8066a41086a2026290300370300201741086a2019290300370000201741106a201d290300370000201741186a201b29030037000020012001290388043703c806200141c8056a200141c8066a41e00010e9081a0b20160d000b0b0340200f2802002112200f102e2012210f20120d000b0b200141003602d8022001420037029c0102400240200041086a222828020022020d002001410036029c010c010b20282802002112200141c8066a410472211d200141386a41106a2142200141386a41186a2143200141a8036a41206a213d4100211602400340200120163602dc02201220164d0d01201641016a2114200141386a41086a22442000280200220f2016412c6c6a220741146a29000037030020422007411c6a2900003703002043200741246a2900003703002001200729000c3703384100212003400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200f2016412c6c6a220f28020820204b0d002014211620142002470d2c200128029c01210f2001410036029c01200f450d2e2001280298012212450d012012417f6a21120340200f2802a003210f2012450d022012417f6a21120c000b0b200141a8066a41186a200f280200202041306c6a220f41186a2207290300370300200141a8066a41106a200f41106a2213290300370300200141a8066a41086a200f41086a22172903003703002001200f2903003703a806200141e8046a41186a221f2043290300370300200141e8046a41106a22212042290300370300200141e8046a41086a22222044290300370300200120012903383703e804200141003a008805200141f8016a41186a22122007290000370300200141f8016a41106a22072013290000370300200141f8016a41086a221320172900003703002001200f2900003703f801200141013a00980220014198016a200141e8046a109f02211720014198016a200141f8016a109f022125200141c8056a41186a221a2043290300370300200141c8056a41106a22182042290300370300200141c8056a41086a221c2044290300370300200120012903383703c805200141003a00e805200141c8066a20014198016a200141c8056a10a302203d20012d0088053a0000200141a8036a41186a222a201f290300370300200141a8036a41106a22322021290300370300200141a8036a41086a22332022290300370300200120012903e8043703a8030240024020012802c8064101460d00200141c8056a41306a201d41306a280200360200200141c8056a41286a201d41286a290200370300200141c8056a41206a201d41206a290200370300201a201d41186a2902003703002018201d41106a290200370300201c201d41086a2902003703002001201d2902003703c80520014188046a41086a221f203329030037030020014188046a41106a2221203229030037030020014188046a41186a2222202a29030037030020014188046a41206a2223203d2d00003a0000200120012903a803370388044134102c220f450d30200f4200370208200f428180808010370200200f200129038804370210200f20012f00b8013b0031200f41186a201f290300370200200f41206a2021290300370200200f41286a2022290300370200200f41306a20232d00003a0000200f41336a200141b8016a41026a2d00003a0000200141c8056a200f10ed06210f0c010b20012802d00620012802d4064102746a41046a210f0b200f280200222428020041016a220f41014d0d1e2024200f360200201a201229030037030020182007290300370300201c2013290300370300200120012903f8013703c805200141013a00e805200141c8066a20014198016a200141c8056a10a302203d200141f8016a41206a2d00003a0000202a20122903003703002032200729030037030020332013290300370300200120012903f8013703a8030240024020012802c8064101460d00200141c8056a41306a201d41306a280200360200200141c8056a41286a201d41286a290200370300200141c8056a41206a201d41206a290200370300201a201d41186a2902003703002018201d41106a290200370300201c201d41086a2902003703002001201d2902003703c80520014188046a41086a2212203329030037030020014188046a41106a2207203229030037030020014188046a41186a2213202a29030037030020014188046a41206a221f203d2d00003a0000200120012903a803370388044134102c220f450d30200f4200370208200f428180808010370200200f200129038804370210200f20012f00b8013b0031200f41186a2012290300370200200f41206a2007290300370200200f41286a2013290300370200200f41306a201f2d00003a0000200f41336a200141b8016a41026a2d00003a0000200141c8056a200f10ed06210f0c010b20012802d00620012802d4064102746a41046a210f0b200f2802002223280200221241016a220f41014d0d1e2023200f360200024002400240024002400240024020170d0020250d01202428020041016a220f41014d0d252024200f36020020232802080d0a2023417f3602080240202328020c220f450d00200f200f280200417f6a360200202328020c220f2802000d00200f410c6a10cd04202328020c41046a220f200f280200417f6a360200202328020c220f41046a2802000d00200f102e0b2023202436020c2023202328020841016a3602080c2f0b2025450d01200141c8066a202410ee0620012802d406214720012802d006214c20012802cc06213c20012802c806210e200141c8066a202310ee0620012802d406214620012802d006214d20012802cc06213e0240200e20012802c8062245460d00200e28020841016a220f41004c0d08200e200f3602082045280208220f41016a221241004c0d0920452012360208200e41106a204541106a412010ec080d03200e2d003020452d0030470d032045200f360208200e200e280208417f6a3602080b203e2046410274221e6a2122203c204741027422196a211220190d03410021170c040b2012417e4f0d232023201241026a36020020242802080d092024417f3602080240202428020c220f450d00200f200f280200417f6a360200202428020c220f2802000d00200f410c6a10cd04202428020c41046a220f200f280200417f6a360200202428020c220f41046a2802000d00200f102e0b2024202336020c2024202428020841016a3602080c2d0b202428020041016a220f41014d0d222024200f36020020232802080d092023417f3602080240202328020c220f450d00200f200f280200417f6a360200202328020c220f2802000d00200f410c6a10cd04202328020c41046a220f200f280200417f6a360200202328020c220f41046a2802000d00200f102e0b2023202436020c2023202328020841016a3602080c2c0b2045200f360208200e200e280208417f6a360208204dad422086203ead842252204cad422086203cad842253204720464b220f1b2254a72116024020462047200f1b22074102742212450d00201620126a21254101211341002121201621172016211f0340024020214101710d00202520176b4102762013417f6a4d0d02201720134102746a21170b20172025460d012017450d01201f280200222128020041016a221341014d0d2320212013360200201728020022132802080d0b201f41046a211f2013417f3602080240201328020c2222450d0020222022280200417f6a360200201328020c22222802000d002022410c6a10cd04201328020c41046a22222022280200417f6a360200201328020c222241046a2802000d002022102e0b201741046a21172013202136020c410121212013201328020841016a360208410021132025201f470d000b0b2007450d0a20472046200f1b221f0d024100410041e0acc700103c000b204641ffffffff0371212541002117202221132012211603400240203e2013470d00202521170c020b024002402016417c6a2216280200220f2013417c6a22132802002207460d00200f28020841016a221f41004c0d0d200f201f3602082007280208221f41016a222141004c0d0e20072021360208200f41106a200741106a412010ec080d01200f2d003020072d0030470d012007201f360208200f200f280208417f6a3602080b201741016a2117203c2016470d010c020b0b2007201f360208200f200f280208417f6a3602080b204720176b211f204620176b225141016a210702400240203e450d0020072022203e6b410276220f200f20074b1b410020071b201f2012203c6b410276220f200f201f4b1b4100201f1b6a210f0c010b201f2012203c6b410276220f200f201f4b1b4100201f1b210f0b200f41ffffffff0371200f470d30200f4102742213417f4c0d300240024020130d004104210f0c010b2013102c220f450d300b20014100360290032001200f3602880320012013410276221336028c0302400240203e450d0020072022203e6b4102762216201620074b1b410020071b201f2012203c6b41027622162016201f4b1b4100201f1b6a21160c010b201f2012203c6b41027622162016201f4b1b4100201f1b21160b0240024020132016490d00410021260c010b201341017422212016202120164b1b22164104201641044b1b221641ffffffff03712016464102742121201641027421160240024020130d00200141003602c8060c010b200141043602d0062001200f3602c806200120134102743602cc060b200141c8056a20162021200141c8066a107d20012802d005211320012802c8054101460d1d200120012802cc05220f360288032001201341027636028c0320012802900321260b200f20264102746a210f0240203e450d002007450d00203e201e6a21212046417f7320176a2113202620466a20176b41016a2122203e2107034020212007460d012007280200221628020041016a221741014d0d2120162017360200200f2016360200202641016a2126200f41046a210f200741046a2107201341016a221620134f21172016211320170d000b202221260b0240201f450d0002402012203c6b4102762207201f4d0d002007201f417f736a221320074f0d01201220134102746b417c6a203c20132007491b21120b2012203c460d0003402012417c6a2212280200220728020041016a221341014d0d2120072013360200200f2007360200202641016a2126200f41046a210f203c2012470d000b0b20012026360290032001427f3703b0052001427f3703a805200141b8016a41186a224e4200370300200141b8016a41106a224f4200370300200141b8016a41086a22504200370300200142003703b801202a42003703002032420037030020334200370300200142003703a80341002106200141003602e002200141003602e402200120014188036a360208200120014188036a360218410021254100214b4100213402402026450d00427f21534100214b200128028803211b41002134427f215220262125410021210340202520214d0d0d201b20214102746a280200220f280208221241016a41004c0d0e202141016a21220240200f2d00300d00200f201236020820014188046a41186a2225200f41286a29000037030020014188046a41106a2208200f41206a29000037030020014188046a41086a2229200f41186a2900003703002001200f29001037038804200128029003220f20224100200f417f6a20214b1b22124d0d10201b20124102746a280200220f280208221241016a41004c0d11200f2012360208201a200f41286a2900003703002018200f41206a290000370300201c200f41186a2900003703002001200f2900103703c805200128029003220f2021200f20211b417f6a22124d0d12201b20124102746a280200220f280208221241016a41004c0d13200f2012360208200141c8066a41186a2248200f41286a290000370300200141c8066a41106a2249200f41206a290000370300200141c8066a41086a224a200f41186a2900003703002001200f2900103703c8062028280200412c6c221221072000280200220f41546a22162117200f2113024003402007450d01200741546a21072017412c6a21172013410c6a211f2013412c6a2113201f20014188046a412010ec080d000b201741086a28020041306c21072017280200211303402007450d01200741506a21072013200141c8056a412010ec082117201341306a221f211320170d000b2053201f41706a22072903002255582052200741086a29030022545820522054511b0d002050201c290300370300204f2018290300370300204e201a2903003703002033202929030037030020322008290300370300202a2025290300370300200120553703a805200120012903c8053703b80120012001290388043703a803200120213602e002200120543703b0054101214b200141013602e4022021213420552153205421520b03402012450d01201241546a21122016412c6a2116200f410c6a2107200f412c6a210f200720014188046a412010ec080d000b201641086a28020041306c210f201628020021120340200f450d01200f41506a210f2012200141c8066a412010ec082107201241306a2213211220070d000b2053201341706a220f2903002255582052200f41086a29030022545820522054511b0d002050204a290300370300204f2049290300370300204e20482903003703002033202929030037030020322008290300370300202a2025290300370300200120553703a805200120012903c8063703b80120012001290388043703a803200120213602e002200120543703b0054100214b200141003602e4022021213420552153205421520b20012802900321252022212120222026470d000b0b20014100360290042001420437038804204b20346a214941012129024020250d004100210f0c1f0b20494101712108410021062025210f4100211f03402001201f360278200f201f4d0d122001280288032213201f4102746a280200220f28020841016a221241004c0d13201f41016a211b200f20123602082001200f41086a22073602ec022001200f410c6a3602e8020240200f2d00300d00201f210f0240201f0d00200128021841086a280200210f0b2001280290032212200f417f6a220f4d0d152013200f4102746a280200220f28020841016a221241004c0d16200f20123602082001200f41086a3602cc052001200f410c6a3602c805024002402028280200220f0d00201b210f0c010b20002802002216200f412c6c6a212141002117034002402016410c6a20012802e80241046a412010ec080d00201641086a22262802002222450d002016280200210f20012802c80541046a2113202241306c41506a21124100210702400340200f2013412010ec08450d01200f41306a210f200741016a2107201241506a22124150470d000c020b0b200f41286a22072903002152200f41206a22132903002153200141a8056a41086a290300215520012903a805215402400240201f4101710d0002402008450d00427f205220557c205320547c22542053542248ad7c22532048205320525420532052511b22481b2152427f205420481b21530c020b4200205220557d2053205454ad7d2255205320547d2254205356205520525620552052511b22481b21524200205420481b21530c010b02402008450d004200205220557d2053205454ad7d2255205320547d2254205356205520525620552052511b22481b21524200205420481b21530c010b427f205220557c205320547c22542053542248ad7c22532048205320525420532052511b22481b2152427f205420481b21530b0240024020532052844200520d0020012802dc022107200f200f41306a201210ea081a20262022417f6a360200200120012802d80241016a3602d8024100202920072017461b21292001280278221f20012802e0022234470d0120012802e4020d01201f21340c020b20072052370300201320533703000c010b200128029003220f201f4d0d1a200128028803201f4102746a280200220f28020041016a221241014d0d24200f2012360200201f21120240201f0d00200128021841086a28020021120b20012802900322072012417f6a22124d0d1b20012802880320124102746a280200221228020041016a220741014d0d242012200736020002402006200128028c04470d0020014188046a10bc0120012802900421060b20012802880420064103746a220720123602042007200f3602002001200641016a2206360290040b201741016a21172016412c6a22162021470d000b201f41016a210f0b2001280290032212200f4100200128020841086a280200417f6a201f4b1b220f4d0d19200128028803200f4102746a280200220f28020841016a221241004c0d1a200f20123602082001200f41086a22073602cc062001200f410c6a3602c80602402028280200220f450d0020002802002216200f412c6c6a212141002117034002402016410c6a20012802e80241046a412010ec080d00201641086a22262802002222450d002016280200210f20012802c80641046a2113202241306c41506a21124100210702400340200f2013412010ec08450d01200f41306a210f200741016a2107201241506a22124150470d000c020b0b200f41286a22072903002152200f41206a22132903002153200141a8056a41086a290300215520012903a805215402400240201f4101710d0002402008450d004200205220557d2053205454ad7d2255205320547d2254205356205520525620552052511b22481b21524200205420481b21530c020b427f205220557c205320547c22542053542248ad7c22532048205320525420532052511b22481b2152427f205420481b21530c010b02402008450d00427f205220557c205320547c22542053542248ad7c22532048205320525420532052511b22481b2152427f205420481b21530c010b4200205220557d2053205454ad7d2255205320547d2254205356205520525620552052511b22481b21524200205420481b21530b0240024020532052844200520d0020012802dc022107200f200f41306a201210ea081a20262022417f6a360200200120012802d80241016a3602d8024100202920072017461b21292001280278221f20012802e0022234470d0120012802e4024101470d01201f21340c020b20072052370300201320533703000c010b200128029003220f201f4d0d1e200128028803201f4102746a280200220f28020041016a221241014d0d24200f20123602002001280290032207201f41016a4100200128020841086a280200417f6a201f4b1b22124d0d1f20012802880320124102746a280200221228020041016a220741014d0d242012200736020002402006200128028c04470d0020014188046a10bc0120012802900421060b20012802880420064103746a220720123602042007200f3602002001200641016a2206360290040b201741016a21172016412c6a22162021470d000b20012802cc06220728020021120b20072012417f6a36020020012802cc05220f200f280200417f6a36020020012802ec02220728020021120b20072012417f6a360200200128029003210f201b211f201b2025460d1e0c000b0b20532052200f1b2252a72217280200220728020041016a220f41014d0d1e2007200f3602002016280200220f2802080d1a200f417f3602080240200f28020c2213450d0020132013280200417f6a360200200f28020c22132802000d002013410c6a10cd04200f28020c41046a22132013280200417f6a360200200f28020c221341046a2802000d002013102e0b200f200736020c200f200f28020841016a360208201f41027421072017210f0340200f28020022132013280200417f6a3602000240200f28020022132802000d002013410c6a10cd04200f28020041046a22132013280200417f6a360200200f280200221341046a2802000d002013102e0b200f41046a210f2007417c6a22070d000b024020524280808080f0ffffff3f83500d002017102e0b2016210f0340200f28020022072007280200417f6a3602000240200f28020022072802000d002007410c6a10cd04200f28020041046a22072007280200417f6a360200200f280200220741046a2802000d002007102e0b200f41046a210f2012417c6a22120d000b024020544280808080f0ffffff3f83500d002016102e0b20452045280200417f6a220f360200202041016a2120200f0d272045410c6a10cd04204541046a220f200f280200417f6a220f360200200f0d272045102e0c270b024020012802a0012217450d004100210720014188036a41186a211f20014188036a41106a212120014188036a41086a212203402017417f6a2117410121120240024003402007200f2f0132490d010240200f28020022130d00200f102e0c030b200f2f01302107200f102e2012417f6a21122013210f0c000b0b201f200f200741216c6a221341cc006a2900003703002021201341c4006a29000037030020222013413c6a2900003703002001201341346a29000037038803200741016a2113200f20074102746a41046a28020021160240024020124101470d00201321070c010b200f20134102746a41a0036a280200210f02402012450d000340201241016a220720124f2113200f2802a003210f2007211220130d000b0b410021070b200141e8026a41186a201f290300370300200141e8026a41106a2021290300370300200141e8026a41086a202229030037030020012001290388033703e8020b20162016280200417f6a2212360200024020120d002016410c6a10cd04201641046a22122012280200417f6a221236020020120d002016102e0b20170d000b0b0340200f2802002112200f102e2012210f20120d000c2d0b0b41bcd9cc004118200141b8076a41c0acc70041c4bfcc00103e000b41bcd9cc004118200141b8076a41c0acc70041d4bfcc00103e000b4194dacc004110200141b8076a4190c1cc0041b0c1cc00103e000b4194dacc004110200141b8076a4190c1cc0041b0c1cc00103e000b4194dacc004110200141b8076a4190c1cc0041b0c1cc00103e000b4194dacc004110200141b8076a4190c1cc0041b0c1cc00103e000b4100410041d0acc700103c000b41bcd9cc004118200141b8076a41c0acc70041c4bfcc00103e000b41bcd9cc004118200141b8076a41c0acc70041d4bfcc00103e000b2021202541f0acc700103c000b41bcd9cc004118200141b8076a41c0acc7004180adc700103e000b2012200f4190adc700103c000b41bcd9cc004118200141b8076a41c0acc70041a0adc700103e000b2012200f41b0adc700103c000b41bcd9cc004118200141b8076a41c0acc70041c0adc700103e000b201f200f41d0adc700103c000b41bcd9cc004118200141b8076a41c0acc70041e0adc700103e000b200f201241f0adc700103c000b41bcd9cc004118200141b8076a41c0acc7004180aec700103e000b201f200f4190aec700103c000b2012200741a0aec700103c000b200f201241b0aec700103c000b41bcd9cc004118200141b8076a41c0acc70041c0aec700103e000b201f200f41d0aec700103c000b2012200741e0aec700103c000b4194dacc004110200141b8076a4190c1cc0041b0c1cc00103e000b2013450d130c120b20012802e402214b0b024002402034200f417f6a470d00204b4101460d010b41c000102c2212450d11201220012903a803370000201220012903b801370020201241186a202a290300370000201241106a2032290300370000201241086a2033290300370000201241286a2050290300370000201241306a204f290300370000201241386a204e29030037000002400240204920514d0d0002400240024002400240024002402047417f6a2222450d0020474101204741014b1b417f6a2121410021130340201322072047460d02203c20074102746a221f280200220f280200221641016a221341014d0d0b200f2013360200200f280208221741016a41004c0d03200741016a2113200f2017360208200f2016360200201a200f41286a2900003703002018200f41206a290000370300201c200f41186a2900003703002001200f2900103703c80520072021460d04203c20134102746a2217280200220f280200220741016a221641014d0d0b200f2016360200200f280208221641016a41004c0d05200f2016360208200f2007360200200141c8066a41186a200f41286a290000370300200141c8066a41106a200f41206a290000370300200141c8066a41086a200f41186a2900003703002001200f2900103703c8064100210f02400340200f41c000460d012012200f6a2107200f41206a210f2007200141c8056a412010ec080d000b4100210f0340200f41c000460d012012200f6a2107200f41206a210f2007200141c8066a412010ec080d000c030b0b201f280200220728020041016a220f41014d0d0b2007200f3602002017280200220f2802080d06200f417f3602080240200f28020c2216450d0020162016280200417f6a360200200f28020c22162802000d002016410c6a10cd04200f28020c41046a22162016280200417f6a360200200f28020c221641046a2802000d002016102e0b200f200736020c200f200f28020841016a36020820132022470d000b0b202328020041016a220f41014d0d092023200f36020020242802080d052024417f3602080240202428020c220f450d00200f200f280200417f6a360200202428020c220f2802000d00200f410c6a10cd04202428020c41046a220f200f280200417f6a360200202428020c220f41046a2802000d00200f102e0b2024202336020c2024202428020841016a3602080c070b2047204741f0aec700103c000b41bcd9cc004118200141b8076a41c0acc7004180afc700103e000b201320474190afc700103c000b41bcd9cc004118200141b8076a41c0acc70041a0afc700103e000b4194dacc004110200141b8076a4190c1cc0041b0c1cc00103e000b4194dacc004110200141b8076a4190c1cc0041b0c1cc00103e000b02402046417f6a2222450d0020464101204641014b1b417f6a2121410021130340201322072046460d05203e20074102746a221f280200220f280200221641016a221341014d0d04200f2013360200200f280208221741016a41004c0d06200741016a2113200f2017360208200f2016360200201a200f41286a2900003703002018200f41206a290000370300201c200f41186a2900003703002001200f2900103703c80520072021460d07203e20134102746a2217280200220f280200220741016a221641014d0d04200f2016360200200f280208221641016a41004c0d08200f2016360208200f2007360200200141c8066a41186a200f41286a290000370300200141c8066a41106a200f41206a290000370300200141c8066a41086a200f41186a2900003703002001200f2900103703c8064100210f02400340200f41c000460d012012200f6a2107200f41206a210f2007200141c8056a412010ec080d000b4100210f0340200f41c000460d012012200f6a2107200f41206a210f2007200141c8066a412010ec080d000c030b0b201f280200220728020041016a220f41014d0d042007200f3602002017280200220f2802080d09200f417f3602080240200f28020c2216450d0020162016280200417f6a360200200f28020c22162802000d002016410c6a10cd04200f28020c41046a22162016280200417f6a360200200f28020c221641046a2802000d002016102e0b200f200736020c200f200f28020841016a36020820132022470d000b0b202428020041016a220f41014d0d022024200f36020020232802080d082023417f3602080240202328020c220f450d00200f200f280200417f6a360200202328020c220f2802000d00200f410c6a10cd04202328020c41046a220f200f280200417f6a360200202328020c220f41046a2802000d00200f102e0b2023202436020c2023202328020841016a3602080b2012102e0b200128028804221720064103746a2113200128028c04211f20172112024002402006450d0020172107024003402007280200220f450d0102400240200f200741046a280200221210ef06450d00200f2802080d0d200f417f3602080240200f28020c2216450d0020162016280200417f6a360200200f28020c22162802000d002016410c6a10cd04200f28020c41046a22162016280200417f6a360200200f28020c221641046a2802000d002016102e0b200f410036020c200f200f28020841016a3602080c010b2012200f10ef06450d0020122802080d0d2012417f3602080240201228020c2216450d0020162016280200417f6a360200201228020c22162802000d002016410c6a10cd04201228020c41046a22162016280200417f6a360200201228020c221641046a2802000d002016102e0b2012410036020c2012201228020841016a3602080b20122012280200417f6a2216360200024020160d002012410c6a10cd04201241046a22162016280200417f6a221636020020160d002012102e0b200f200f280200417f6a2212360200024020120d00200f410c6a10cd04200f41046a22122012280200417f6a221236020020120d00200f102e0b200741086a22072013470d000c030b0b200741086a21120b20132012460d0003402012220f28020022122012280200417f6a3602000240200f28020022122802000d002012410c6a10cd04200f28020041046a22122012280200417f6a360200200f280200221241046a2802000d002012102e0b200f41086a2112200f41046a220f28020022072007280200417f6a3602000240200f28020022072802000d002007410c6a10cd04200f28020041046a22072007280200417f6a360200200f280200220f41046a2802000d00200f102e0b20132012470d000b0b0240201f41ffffffff0171450d002017102e0b02402001280290032212450d00200128028803210f201241027421120340200f28020022072007280200417f6a3602000240200f28020022072802000d002007410c6a10cd04200f28020041046a22072007280200417f6a360200200f280200220741046a2802000d002007102e0b200f41046a210f2012417c6a22120d000b0b0240200128028c0341ffffffff0371450d00200128028803102e0b02402046450d00203e210f0340200f28020022122012280200417f6a3602000240200f28020022122802000d002012410c6a10cd04200f28020041046a22122012280200417f6a360200200f280200221241046a2802000d002012102e0b200f41046a210f201e417c6a221e0d000b0b0240204d41ffffffff0371450d00203e102e0b20452045280200417f6a220f3602000240200f0d002045410c6a10cd04204541046a220f200f280200417f6a220f360200200f0d002045102e0b202941ff0171210702402047450d00203c210f0340200f28020022122012280200417f6a3602000240200f28020022122802000d002012410c6a10cd04200f28020041046a22122012280200417f6a360200200f280200221241046a2802000d002012102e0b200f41046a210f2019417c6a22190d000b0b202020076a2120204c41ffffffff0371450d09203c102e0c090b00000b2046204641b0afc700103c000b41bcd9cc004118200141b8076a41c0acc70041c0afc700103e000b2013204641d0afc700103c000b41bcd9cc004118200141b8076a41c0acc70041e0afc700103e000b4194dacc004110200141b8076a4190c1cc0041b0c1cc00103e000b4194dacc004110200141b8076a4190c1cc0041b0c1cc00103e000b4194dacc004110200141b8076a4190c1cc0041a0c1cc00103e000b4194dacc004110200141b8076a4190c1cc0041a0c1cc00103e000b200e200e280200417f6a220f3602000240200f0d00200e410c6a10cd04200e41046a220f200f280200417f6a220f360200200f0d00200e102e0b20232023280200417f6a220f3602000240200f0d002023410c6a10cd04202341046a220f200f280200417f6a220f360200200f0d002023102e0b20242024280200417f6a220f3602000240200f0d002024410c6a10cd04202441046a220f200f280200417f6a220f360200200f0d002024102e0b20012802dc0221160c010b20232023280200417f6a220f3602000240200f0d002023410c6a10cd04202341046a220f200f280200417f6a220f360200200f0d002023102e0b20242024280200417f6a220f3602000240200f0d002024410c6a10cd04202441046a220f200f280200417f6a220f360200200f0d002024102e0b202041016a21200b2000280200210f2028280200221220164b0d000b0b2016201241b0acc700103c000b2016201241a0acc700103c000b200141c0076a24000f0b1036000b1038000ba50302027f037e230041d0006b22042400200441386a20024201200242015620034200522003501b22051b22022003420020051b220342ffff03420010e708200441286a2002200342ffff03420010e608200441186a20022003200429033822062004290328200441286a41086a29030084420052ad7c220742012007420156200441386a41086a2903002007200654ad7c22074200522007501b22051b22062007420020051b220710e7080240024002402004290318220842808004544100200441186a41086a290300501b450d00200441086a200220002002200054200320015420032001511b22051b2003200120051b2006200710e7082004290308220342808004544100200441086a41086a290300501b450d012008a741ffff037122050d0241d0d8c80041194180a1c9001039000b2004411136024c2004419cd5cc0036024841add5cc0041de00200441c8006a41bcdcc8004180a1c900103e000b2004411136024c2004419cd5cc0036024841add5cc0041de00200441c8006a41bcdcc8004180a1c900103e000b200441d0006a24002003a741ffff037141ffff036c20056e0baf08030b7f017e017f230041d0016b2204240020042003360214200420023602102001280200220520012802082202412c6c22066a2107200128020421080240024020020d0020052102200521010c010b200441f0006a410c6a2109200441f0006a4104722103200441186a41086a210a200441186a41106a210b200441186a41186a210c200441186a41206a210d200521020340200a20022201410c6a290200370300200b200141146a290200370300200c2001411c6a290200370300200d200141246a2902003703002004200141046a2902003703182001412c6a21022001280200220e450d0120032004290318370200200341086a200a290300370200200341106a200b290300370200200341186a200c290300370200200341206a200d2903003702002004200e3602704200210f02402004280210200910a002220e450d0020042802142210280208200e280200220e4d0d002010280200200e41386c6a290300210f0b200441a0016a41286a200441f0006a41286a280200360200200441a0016a41206a200441f0006a41206a290300370300200441a0016a41186a200441f0006a41186a290300370300200441a0016a41106a200441f0006a41106a290300370300200441a0016a41086a200441f0006a41086a290300370300200420042903703703a001200441c0006a200441a0016a200f420010bd04200141286a200441c0006a41286a280200360200200141206a200441c0006a41206a290300370200200141186a200441c0006a41186a290300370200200141106a200441c0006a41106a290300370200200141086a200441c0006a41086a29030037020020012004290340370200200641546a22060d000b20022101200721020b200720026b2203412c6d210602402003450d002006412c6c210303400240200241046a2802002206450d00200641226c450d002002280200102e0b2002412c6a2102200341546a22030d000b0b200441053602a001200120056b220b412c6d220a412c6c21022005210302400340200321012002450d014200210f024020042802102001410c6a10a0022203450d0020042802142206280208200328020022034d0d002006280200200341386c6a290300210f0b2001412c6a2103200441086a2001200f420010bf04200241546a210220042802082201450d000b200428020c2102200441033602a00120042002ad4220862001ad843702a4010b0240024020042802a00122014105470d00200020053602042000410c6a200a360200200041086a2008360200410021010c010b20042902a401210f20002001360204200041086a200f3702000240200b450d00200a412c6c21022005210103400240200141046a2802002203450d00200341306c450d002001280200102e0b2001412c6a2101200241546a22020d000b0b410121012008450d002008412c6c450d002005102e0b20002001360200200441d0016a24000b850103027f017e027f230041106b22012400024002400240200035020842208620002802002202ad84101e2203428080808010540d00410021042003a722052d00000e020201000b41cae0cc00412e200141086a41f8e0cc004188e1cc00103e000b410121040b2005102e0240200041046a280200450d002002102e0b200141106a240020040b070010184101460b8b0705017f017e077f037e027f23004180026b220224002002200136020c0240024002402002410c6a10082203422088a722010d0020004100360208200042013702000c010b2002200136021420022003a722043602102002200241106a10ab01024002400240024020022802000d002002280204220520022802144105762201200120054b1b22014105742206417f4c0d050240024020010d00410121070c010b2006102c2207450d030b2001ad210302402005450d00410021080340200241003a00b8012002280214417f6a2101200841016a210841002106024002400240024003402001417f460d0120024198016a20066a200228021022092d00003a00002002200941016a3602102002200641016a22093a00b801200220013602142001417f6a21012009210620094120470d000b200241c0016a41086a220120024198016a41086a290300370300200241c0016a41106a220620024198016a41106a290300370300200241c0016a41186a220a20024198016a41186a29030037030020022002290398013703c001200941ff0171411f4d0d01200241386a41086a2001290300220b370300200241386a41106a2006290300220c370300200241386a41186a200a290300220d370300200241186a41186a2209200d370300200241186a41106a220a200c370300200241186a41086a220e200b370300200220022903c001220b3703582002200b3703382002200b3703182003422088220ba722012003a7470d03200141016a220620014f0d020c0b0b200641ff0171450d00200241003a00b8010b200342ffffff3f83500d042007102e0c040b2001410174220f20062006200f491b22064104200641044b1b220641ffffff3f71200646210f200641057421060240024020010d0020024100360298010c010b200241013602a00120022007360298012002200b4205863e029c010b200241c0016a2006200f20024198016a107d20022802c801210620022802c0014101460d0420022802c40121072006410576ad21030b200720014105746a22062002290318370000200641186a2009290300370000200641106a200a290300370000200641086a200e290300370000200342ffffffff0f83200141016aad42208684210320082005470d000b0b20070d030b41cae0cc00412e20024198016a41c4dfcc0041d4dfcc00103e000b2006450d030b1036000b20002003370204200020073602002004102e0b20024180026a24000f0b1038000bfa0203027f017e067f230041206b220224000240024020014102490d00200041206a22032000412010ec08417f4a0d002000290000210420002003290000370000200241186a2205200041186a2206290000370300200241106a2207200041106a2208290000370300200241086a2209200041086a220a290000370300200a200341086a2900003700002008200341106a2900003700002006200341186a29000037000020022004370300024020014103490d00200041206a210320002001417f6a22064105746a21080340200341206a22002002412010ec08417f4a0d012006450d0320032000290000370000200341186a200041186a290000370000200341106a200041106a290000370000200341086a200041086a290000370000200021032006417f6a22064101470d000b200821030b20032002290300370000200341186a2005290300370000200341106a2007290300370000200341086a20092903003700000b200241206a24000f0b2001200141d4d1cc00103c000bb719030a7f047e0d7f230041a0076b220124000240024020002802082202200028020c2203470d00410821020c010b2000200241206a22043602082000280210210520014190026a41186a200241186a29000037030020014190026a41106a200241106a29000037030020014190026a41086a200241086a2900003703002001200229000037039002200028021421064100210202400240024002402000411c6a28020022070e020201000b410021022007210803402008410176220920026a210a200a20022006200a4105746a20014190026a412010ec084101481b2102200820096b220841014b0d000b0b200620024105746a20014190026a412010ec08450d010b03402000200541016a2205360210024020042003470d00410821020c030b2000200441206a220936020820014190026a41186a200441186a29000037030020014190026a41106a200441106a29000037030020014190026a41086a200441086a290000370300200120042900003703900241002102200921040240024020070e020201000b410021022007210403402004410176220a20026a210820082002200620084105746a20014190026a412010ec084101481b21022004200a6b220441014b0d000b0b20092104200620024105746a20014190026a412010ec080d000b0b02400240200720024d0d00200141186a200620024105746a220241186a290000220b370300200141106a200241106a290000220c370300200141086a200241086a290000220d37030020012002290000220e3703002000200541016a360210200041246a2802002109200041286a280200210320002802202107200141206a41186a200b370300200141206a41106a200c370300200141206a41086a200d3703002001200e370320410221022005109e070d0202400240411b102c220a450d00200a41176a4100280093db48360000200a41106a410029008cdb48370000200a41086a4100290084db48370000200a41002900fcda483700004104102c2202450d00200142043702c401200120023602c0012001200536029002200141c0016a20014190026a4104107420012802c401210820012802c0012104024020012802c80122020d00411b210f2002411b6a21000c040b2002411b6a22002002490d012001429b80808010370294022001200a36029002200141d8056a20004136200041364b1b410120014190026a107d200141e0056a280200210f024020012802d8054101460d0020012802dc05210a0c040b200f450d010b1036000b1038000b2002200741ecdac800103c000b200a411b6a2004200210e9081a02402008450d002004102e0b200141c0016a4101200a200010df0602400240024002400240024002400240024020012802c0012202450d00200141c8016a28020022044104490d002004417c714104460d0020022800002007470d00200228000441036a20094b0d010b200141003602e005200142013703d805200120073602900241042102200141d8056a20014190026a410410742001200936029002200141d8056a20014190026a4104107420012802d805210420012802e005210820014190026a41086a200141c0016a41086a280200360200200120012903c001370390024101200a200020014190026a2004200810e0062108024020012802dc05450d002004102e0b2008450d0120014190026a109f072001280290022210450d04200141a0026a280200211120014190026a410c6a2802002112200141a4026a280200211320014190026a41086a2802002114200128029402211520014100360288022001420137038002200120093602900220014180026a20014190026a41041074201420014180026a107620014180026a201020141074201320014180026a107602402013450d0020122013410c6c6a210620122102034020022802002104200241086a280200220820014180026a107620014180026a2004200810742002410c6a22022006470d000b0b200120073602900220014180026a20014190026a41041074200120053602900220014180026a20014190026a41041074200120033602900220014180026a20014190026a4104107420014190026a41e9dabdf306200141206a200128028002220420012802880210a0074101210220012d0090024101460d02410321080c030b024020012802c401450d002002102e0b410121020b200f0d050c060b200141fe016a20012d0093023a0000200141d8056a41086a200141a4026a290200370300200141e8056a200141ac026a290200370300200141f0056a200141b4026a290200370300200141f8056a200141bc026a29020037030020014180066a200141c4026a29020037030020014185066a200141c9026a290000370000200120012f0091023b01fc0120012001419c026a2902003703d80520014190026a41086a28020021062001280294022108410021020b200141f8016a41026a2216200141fc016a41026a2d00003a0000200141c0016a41086a2217200141d8056a41086a290300370300200141c0016a41106a2218200141d8056a41106a290300370300200141c0016a41186a2219200141d8056a41186a290300370300200141c0016a41206a221a200141d8056a41206a290300370300200141c0016a41286a221b200141d8056a41286a290300370300200141c0016a41306a200141d8056a41306a290300370300200120012f01fc013b01f801200120012903d8053703c001024020020d00200141bc016a41026a20162d00003a000020014190026a41086a201729030037030020014190026a41106a201829030037030020014190026a41186a201929030037030020014190026a41206a201a29030037030020014190026a41286a201b29030037030020014190026a412d6a200141c0016a412d6a290000370000200120012f01f8013b01bc01200120012903c001370390020240200128028402450d002004102e0b200120012f01bc013b01d8052001200141be016a2d00003a00da05410021020c030b0240200128028402450d002004102e0b02402015450d002010102e0b02402013450d002013410c6c21042012210203400240200241046a280200450d002002280200102e0b2002410c6a2102200441746a22040d000b0b4101210202402011450d002011410c6c450d002012102e0b20082109200621100c010b41012102410521090b0b20014180016a41086a220420014190026a41086a29030037030020014180016a41106a221620014190026a41106a29030037030020014180016a41186a221720014190026a41186a29030037030020014180016a41206a221820014190026a41206a29030037030020014180016a41286a221920014190026a41286a29030037030020014180016a412d6a221a20014190026a412d6a290000370000200120012d00da053a00ba01200120012f01d8053b01b80120012001290390023703800102400240024020020d00200141c0006a41086a22022004290300370300200141c0006a41106a22042016290300370300200141c0006a41186a22162017290300370300200141c0006a41206a22172018290300370300200141c0006a41286a22182019290300370300200141c0006a412d6a2219201a290000370000200120012d00ba013a007e200120012f01b8013b017c2001200129038001370340200141d0036a2003360200200141cc036a2005360200200141c8036a2007360200200141c4036a2013360200200141c0036a2011360200200141bc036a2012360200200141b8036a2014360200200141b4036a2015360200200141b0036a2010360200200141ac036a200936020020014190026a41c4016a20012f017c3b0100200141d6036a20012d007e3a0000200141db036a2006360000200141d7036a20083600002001410b3602a803200142023703f8022001418c046a201929000037000020014187046a2018290300370000200141ff036a2017290300370000200141f7036a2016290300370000200141ef036a2004290300370000200141e7036a2002290300370000200120012903403700df0320014194046a200141d8056a41c40110e9081a200120014190026a3602d805200141c0016a200141d8056a109005200141d8056a41086a200141c0016a41086a280200360200200120012903c0013703d805200141d8056a10e8062104024020012903f8024202510d0020012d00900241ff01714102470d00200128029802450d00200128029402102e0b200141a8036a108b02410721024106210920040d010c020b4107210220094107460d010b20014100360298022001420137039002200120073602d80520014190026a200141d8056a41041074200141003602d80520014190026a200141d8056a410410744101200a2000200128029002220220012802980210a1070240200128029402450d002002102e0b200921020b200f450d010b200a102e0b200141a0076a240020020bc41c07127f017e017f017e017f027e097f230041b0016b22022400200028020821032000280200210420002802042105200241206a41206a2206200041306a2d00003a0000200241206a41186a2207200041286a290000370300200241206a41106a2208200041206a290000370300200241206a41086a2209200041186a29000037030020022000290010370320024002400240024002400240024002400240024002400240024002400240024002400240024020052f0132220a410a4b0d0020024188016a41206a20062d00003a000020024188016a41186a200729030037030020024188016a41106a200829030037030020024188016a41086a20092903003703002002200229032037038801200541346a2106200a41016a2107200341016a2208200a4d0d012006200341216c6a220a200229038801370000200a41206a20024188016a41206a2d00003a0000200a41186a20024188016a41186a290300370000200a41106a20024188016a41106a290300370000200a41086a20024188016a41086a290300370000200541046a210a0c020b4105210a4100210b02400240200341054f0d004104210a200321060c010b41052106024002402003417b6a0e020201000b200341796a21064101210b4106210a0c010b410021064101210b0b41a003102c2203450d05200341003b013220034100360200200320052f0132220c200a417f736a22073b013220024190016a200541346a220d200a41216c6a2208410c6a29000037030020024198016a200841146a2900003703002002419d016a200841196a29000037000020022008290004370388012007410c4f0d06200c200a41016a22096b2007470d07200541046a220c200a4102746a280200210e2008280000210f200341346a200d200941216c6a200741216c10e9081a200341046a200c20094102746a200741027410e9081a2005200a3b0132200241e8006a41086a20024188016a41086a2208290300370300200241e8006a41106a20024188016a41106a2209290300370300200241e8006a41156a20024188016a41156a290000370000200220022903880137036820032005200b1b220a2f0132210720024188016a41206a220d200241206a41206a2d00003a000020024188016a41186a2210200241206a41186a2903003703002009200241206a41106a2903003703002008200241206a41086a2903003703002002200229032037038801200a41346a210b200741016a210c02400240200641016a221120074d0d00200b200641216c6a2207200229038801370000200741206a200d2d00003a0000200741186a2010290300370000200741106a2009290300370000200741086a2008290300370000200a41046a21070c010b200b201141216c6a200b200641216c6a220b200720066b41216c10ea081a200b41206a200d2d00003a0000200b41186a2010290300370000200b41106a2009290300370000200b41086a2008290300370000200b200229038801370000200a41046a220720114102746a200720064102746a200c2006417f736a41027410ea081a0b200720064102746a22122001360200200a200c3b0132200241086a2213200241e8006a41086a22102903002214370300200241106a2215200241e8006a41106a22112903002216370300200241186a200241e8006a41186a2217290300221837030020022002290368221937030020172018370300201120163703002010201437030020022019370368200528020022010d02410021040c030b2006200841216c6a2006200341216c6a2206200a20036b41216c10ea081a200641206a20024188016a41206a2d00003a0000200641186a20024188016a41186a290300370000200641106a20024188016a41106a290300370000200641086a20024188016a41086a2903003700002006200229038801370000200541046a220a20084102746a200a20034102746a20072003417f736a41027410ea081a0b200a20034102746a22122001360200200520073b01320c0e0b200e211a4100210a2003211b200f211c034020052f01302107200241c8006a41156a221d200241e8006a41156a290000370000200241c8006a41106a221e2011290300370300200241c8006a41086a221f2010290300370300200220022903683703482004200a470d0620012f01322209410b490d024100210841042105024020074105490d0020072105024002402007417b6a0e020201000b200741796a210741012108410621050c010b4100210741012108410521050b41d003102c2203450d03200341003b013220034100360200200320012f0132220b2005417f736a220a3b0132200141346a220c200541216c6a2206280000210f200241156a2220200641196a2900003700002015200641146a29000037030020132006410c6a29000037030020022006290004370300200a410c4f0d07200b200541016a22066b200a470d08200141046a220b20054102746a280200210e200341346a200c200641216c6a200a41216c10e9081a200341046a200b200641027422066a200a41027410e9081a200120053b013220024188016a41086a220b201329030037030020024188016a41106a220c201529030037030020024188016a41156a220d2020290000370000200220022903003703880120032f0132220a41016a2120200a410c4f0d09200920056b22052020470d0a200441016a2104200341a0036a200120066a41a0036a200541027410e9081a4100210502400340200320054102746a41a0036a280200220620053b01302006200336020020052005200a4922066a2205200a4b0d0120060d000b0b200241206a41186a222020024188016a41186a290300370300200241206a41106a2221200c290300370300200241206a41086a2222200b29030037030020022002290388013703202003200120081b22062f01322109200d201d290000370000200c201e290300370300200b201f2903003703002002200229034837038801200641346a210a0240200741016a220520094b221d0d00200a200541216c6a200a200741216c6a200920076b41216c10ea081a0b200941016a2108200a200741216c6a220a201c360000200a200229038801370004200a410c6a200b290300370000200a41146a200c290300370000200a41196a200d290000370000200641046a210a0240201d0d00200a20054102746a200a20074102746a2007417f7320086a41027410ea081a0b200a2007410274220b6a201a360200200641a0036a210a0240200741026a220c200941026a22094f0d00200a200c4102746a200a20054102746a2005417f7320096a41027410ea081a0b200a20054102746a201b360200200620083b01320240200520094f0d002006200b6a41a4036a210503402005280200220a200741016a22073b0130200a2006360200200541046a210520082007470d000b0b2010202229030037030020112021290300370300201720202903003703002002200229032037036820012105200128020022062101200e211a2004210a2003211b200f211c20060d000b0b20024188016a41186a201729030037030020024188016a41106a2011290300221437030020024188016a41086a2010290300221637030020022002290368221837038801200241e8006a41156a20024188016a41156a290000370000201120143703002010201637030020022018370368200028020c220a2802042206450d09200a280200210741d003102c2205450d01200520063602a003200541003b013220054100360200200641003b013020062005360200200a2005360204200a200741016a360200200241206a41156a200241e8006a41156a290000370000200241206a41106a200241e8006a41106a290300370300200241206a41086a200241e8006a41086a2903003703002002200229036837032020072004470d0a20052f01322207410b4f0d0b2005200741216c6a220641346a200f360000200641386a2002290320370000200641c0006a200241286a290300370000200641c8006a200241306a290300370000200641cd006a200241356a2900003700002005200741016a22063b0132200520064102746a41a0036a2003360200200520074102746a41046a200e360200200320063b013020032005360200200a200a28020841016a3602080c0d0b20012f0132210320024188016a41156a2209200241c8006a41156a29000037000020024188016a41106a2204200241c8006a41106a29030037030020024188016a41086a220b200241c8006a41086a2903003703002002200229034837038801200741016a2105200141346a210a0240200320074d22060d00200a200541216c6a200a200741216c6a200320076b41216c10ea081a0b200341016a2108200a200741216c6a220a201c360000200a200229038801370004200a410c6a200b290300370000200a41146a2004290300370000200a41196a2009290000370000200141046a210a024020060d00200a20054102746a200a20074102746a2007417f7320086a41027410ea081a0b200a200741027422096a201a360200200141a0036a210a200341026a2107024020060d002009200a6a41086a200a20054102746a2005417f7320076a41027410ea081a0b200a20054102746a201b360200200120083b0132200520074f0d0b200341016a210620012005417f6a22054102746a41a4036a210303402003280200220a200541016a22053b0130200a2001360200200341046a210320062005470d000c0c0b0b1036000b2007410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b41ac9cc700413541e49cc7001039000b200a410b41e49bc700104d000b41f49bc7004128419c9cc7001039000b2020410c41f49cc700104d000b41f49bc7004128419c9cc7001039000b41e8aac700412b4194abc7001039000b41e899c700413041989ac7001039000b41a89ac700412041c89ac7001039000b200028020c2205200528020841016a3602080b200241b0016a240020120be80a010f7f230041206b220224000240200128020041016a220341014d0d002001200336020020024100360210200241104104200241106a107d200241086a28020021030240024002400240024020022802004101460d00200228020422042001360200200128020041016a220541024f0d010c050b2003450d010c030b2001200536020020024100360210200241104104200241106a107d200241086a28020021060240024020022802004101460d00200228020422072001360200200128020041016a22054102490d052003410276210820012005360200200641027621094104210a4101210b0240024002400340200541016a220341014d0d0920012003360200200128020841016a220341004c0d0120012003360208200128020c2205450d07200541106a210c2007200b410274220d6a210e2007210602400340200e2006460d01200628020022032005460d09200328020841016a220f41004c0d042003200f3602082005280208220f41016a221041004c0d05200520103602080240200341106a200c412010ec080d0020032d003020052d0030470d002005200f36020820032003280208417f6a3602080c0a0b200641046a21062005200f36020820032003280208417f6a3602080c000b0b200128020c220328020041016a220541014d0d09200320053602000240200b2008470d00200b41016a2205200b490d07200b41017422062005200620054b1b22054104200541044b1b220541ffffffff037120054641027421062005410274210502400240200b0d00200241003602100c010b20024104360218200220043602102002200d3602140b200220052006200241106a107d2002280208210520022802004101460d0620022802042104200541027621080b2004200d6a2003360200200128020c220328020041016a220541014d0d092003200536020020012001280200417f6a2205360200024020050d002001410c6a10cd04200141046a22052005280200417f6a220536020020050d002001102e0b200328020041016a220541014d0d092003200536020002400240200b2009470d00200b41016a2205200b490d08200b41017422062005200620054b1b22054104200541044b1b220541ffffffff037120054641027421062005410274210502400240200b0d00200241003602100c010b20024104360218200220073602102002200d3602140b200220052006200241106a107d2002280208210520022802004101460d0120022802042107200541027621090b2007200d6a200336020020012001280208417f6a36020820012001280200417f6a2205360200024020050d002001410c6a10cd04200141046a22052005280200417f6a220536020020050d002001102e0b200b41016a210b200a41046a210a20032802002105200321010c010b0b20050d070c050b41bcd9cc004118200241106a41a4bfcc0041c0c1cc00103e000b41bcd9cc004118200241106a41c4ffc40041c4bfcc00103e000b41bcd9cc004118200241106a41c4ffc40041d4bfcc00103e000b20060d030c010b20050d020b1038000b20012001280208417f6a36020820012001280200417f6a2203360200024020030d002001410c6a10cd04200141046a22032003280200417f6a220336020020030d002001102e0b20002004360204200020013602002000410c6a200b360200200041086a20083602000240200b450d00200721030340200328020022052005280200417f6a3602000240200328020022052802000d002005410c6a10cd04200328020041046a22052005280200417f6a3602002003280200220541046a2802000d002005102e0b200341046a2103200a417c6a220a0d000b0b0240200941ffffffff0371450d002007102e0b200241206a24000f0b1036000b00000bae0201047f230041106b220224004100210302400240024002400240024002402000280208220441016a220541004c0d0020002004360208200028020c2204450d0620002005360208024020042001470d00410121030c060b200428020841016a220341004c0d01200420033602082001280208220541016a220341004c0d0220012003360208200441106a200141106a412010ec080d034101210320042d003020012d0030470d030c040b41bcd9cc004118200241086a41a4bfcc0041b4bfcc00103e000b41bcd9cc004118200241086a41a4bfcc0041c4bfcc00103e000b41bcd9cc004118200241086a41a4bfcc0041d4bfcc00103e000b410021030b2001200536020820042004280208417f6a360208200028020821050b20002005417f6a3602080b200241106a240020030bc80101047f230041c0006b220224004119210341e0b2c7002104410221050240024002400240200141ff01710e0400010203000b2002411c6a41013602002002420137020c2002419cc3cb00360208200241043602242002418883ca003602202002200241206a360218200241086a41c4afc8001044000b411a21034198b2c7002104410021050c010b411b210341bcb2c7002104410121050b20004183c8003b0100200041086a2003360200200041046a2004360200200041026a20053a0000200241c0006a24000b130020004103360204200041c4b1c7003602000bc40403027f017e037f230041a0036b22022400200241d0026a410c6a200041f0016a290200370200200241e4026a200041f8016a290200370200200241ec026a20004180026a290200370200200241e2c289ab063602d002200220002902e8013702d4022001280200210320024190036a200141046a10c301200241f8026a410c6a20024190036a41086a280200360200200220033602f80220022002290390033702fc02200220012802103602880320024180026a200241d0026a200241f8026a109d0402400240024020022802c002450d00200241a8016a41056a20024180026a41d00010e9081a200241d0006a200241a8016a41d50010e9081a2002200241d0006a41056a41d00010e908220141a8016a200141d00010e9081a200141d0006a410c6a210320002903002104410021054100210002400340200041d000460d014108102c2206450d0420014208370254200120063602502001200437038002200141d0006a20014180026a41081074200341086a41002900a197453700002003410029009997453700002001200141a8016a20006a36026c20014180026a200141d0006a10ae0102402001280254450d002001280250102e0b200141d0006a20014180026a108e03200128025022072001280258108f02210602402001280254450d002007102e0b200041d0006a210020060d000b410221050b0240200141ec016a2802002200450d00200041306c450d00200141e8016a280200102e0b41800621010c010b4100210541800821010b200241a0036a240020012005720f0b1036000b130020004106360204200041b4b4c7003602000b3400200041bad7c70036020420004100360200200041146a4102360200200041106a41c4d7c700360200200041086a42083702000b130020004105360204200041f8dcc7003602000b4401027f230041106b2202240002404104102c22030d001036000b200042043702042000200336020020024180800136020c20002002410c6a41041074200241106a24000b4901027f230041106b2202240002404110102c22030d001036000b20004210370204200020033602002002420037030820024280c2d72f3703002000200241101074200241106a24000b4a01027f230041106b2202240002404110102c22030d001036000b20004210370204200020033602002002420037030820024280c8afa0253703002000200241101074200241106a24000b4201027f230041106b2202240002404101102c22030d001036000b2000420137020420002003360200200241143a000f20002002410f6a41011074200241106a24000b4401027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241c0f00036020c20002002410c6a41041074200241106a24000bab0301087f230041106b2203240020032000200220016b10fc060240024020032802004101470d00200341086a2802000d0141d0f0cc00411141e4f0cc001039000b02400240200028020022044125490d002000410c6a22052802002106200041086a28020021070c010b200041056a21072004210620002105412421040b024002400240200620044f0d00034020022001460d02200720066a20012d00003a0000200141016a21012004200641016a2206470d000b200421060b2005200636020020012002460d01200141016a21062000410c6a2108200041056a210920012d0000210a034002400240200028020022074125490d00200028020c210120002802082105200821040c010b200721012000210420092105412421070b024020012007470d0020032000410110fc06024020032802004101470d00200341086a2802000d0541d0f0cc00411141e4f0cc001039000b200028020c210120002802082105200821040b200520016a200a3a00002004200428020041016a36020020022006460d0220062d0000210a200641016a21060c000b0b200520063602000b200341106a24000f0b1036000baa0301047f02400240200128020022034125490d002001410c6a2802002104200321050c010b41242105200321040b0240200520046b2002490d00200041003602000f0b0240024002400240200420026a22022004490d004100417f2002417f6a677620024102491b220441016a22052004490d000240024020034125490d002001410c6a2802002104200141086a2802002102200321060c010b200141056a210241242106200321040b200420054b0d010240200541244b0d000240200341244b0d00200041003602000f0b200141003a0004200141056a2002200410e9081a200120043602002002102e0c040b20062005460d030240200341244b0d0002402005102c2203450d0020032002200410e9081a0c040b2000200536020420004101360200200041086a41013602000f0b200220062005103022030d022000200536020420004101360200200041086a41013602000f0b2000200536020420004101360200200041086a41003602000f0b41c2f1cc00412041e4f1cc001039000b200141013a0004200120053602002001410c6a2004360200200141086a20033602000b200041003602000bd60501047f20002802282101024002400240024020002d000022024102470d002000410c6a2802002102200041086a2802002103200041046a280200210020012001280200417f6a2204360200024020040d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22042004280200417f6a220436020020040d002001102e0b0240200041ff01710d0041002104200320024f0d030b4110102c2200450d03200041f8f7c60036020c2000410136020820004281808080103702004110102c2201450d0320014190f8c60036020c20014101360208200142818080801037020020002000280200417f6a220436020020040d012000280208200028020c2802001103000240200028020c280204450d002000280208102e0b200041046a22042004280200417f6a220436020020040d012000102e0c010b410021040240024020020e0400010103010b20002d0001210020012001280200417f6a2204360200024020040d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22042004280200417f6a220436020020040d002001102e0b0240200041ff01710d0041010f0b4110102c2200450d03200041f8f7c60036020c2000410136020820004281808080103702004110102c2201450d0320014190f8c60036020c20014101360208200142818080801037020020002000280200417f6a220436020020040d012000280208200028020c2802001103000240200028020c280204450d002000280208102e0b200041046a22042004280200417f6a220436020020040d012000102e0c010b4101210420024103460d010b20012001280200417f6a22003602004102210420000d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22002000280200417f6a220036020020000d002001102e0b20040f0b1036000be21205027f0c7e037f027e017f230041c0026b220524000240024020022003844200520d0020004100360200200041106a4200370300200041086a42003703000c010b2005200136020c200541d0006a200110c802200541c0016a20052802502206200528025810c902200541c0016a41386a2903002107200541c0016a41306a2903002108200541c0016a41286a2903002109200541c0016a41206a290300210a200541c0016a41186a290300210b200541c0016a41106a290300210c20054180026a290300210d20052903c801210e20052903c001210f20054190016a41086a20054190026a290300370300200520054188026a2903003703900102400240200f4201510d004200210d200541106a41386a4200370300200541106a41306a4200370300200541106a41286a4200370300200541106a41206a4200370300200541106a41186a4200370300200541106a41106a4200370300200541106a41086a4200370300200542003703104200210a4200210942002108420021074200210e4200210c4200210b42002110420021114200210f420021120c010b200541106a41206a2009370300200541106a41286a2008370300200541106a41106a200b370300200541106a41306a20073703002005200a3703282005200e3703102005200d3703482005200c3703182009211020082111200e210f200c21120b02402005280254450d002006102e0b02400240200f2012844200520d0020102005290320842011200541286a29030084844200520d002005290340200541c8006a2903008450450d0042002110410021130c010b42012110410121130b024020104201510d004200210a4200210b4200210d4200210942002108420021074200210e4200210c0b41032106024002400240200e20027d2212200e56200c20037d200e200254ad7d220f200c56200f200c511b450d004113211441c8a3c700211541052101410321130c010b02402012200b7c221642ffc7afa02556200f200a7c20162012542214ad7c22114200522011501b0d00200e200b7c221742ffc7afa02556200c200a7c2017200e54ad7c220e420052200e501b450d00410921144180a4c700211541052113410521010c010b200541c0016a20012002200320042012200f10d706024020052d00c00122064106460d00200541c8016a280200211420052802c401211520052d00c301210420052d00c201211320052d00c10121010c010b200541e8016a22152008370300200541f0016a221820073703002005200b3703d001200541d8016a200a370300200520093703e001200520123703c0012005200f3703c8014200210c2002422088a721062002a7210402400240427f201620142011200f542011200f511b22141b220242ffc7afa02556427f201120141b220e420052200e501b0d002012200b84200f200a8484220c5021144200210b200c420052ad210c0c010b2018290300211720152903002116200541e0016a2903002111200541d0016a290300210920052903d801210720052903c801210820052903c001210a4201210b410121140b200541f8006a200e370300200541f0006a22152002370300200541e0006a200f370300200520123703582005200337038801200520063602840120052004360280012005200c37036820052010420152ad22033703500240024002400240024002402013200b420152720d00200520013602c0012001200541c0016a10bd060c010b024020134101732206200b420151720d00200520013602c0012001200541c0016a10be0641ff017122064103460d01024020060e03030200030b20054180016a2101024020140d00200520153602c001200541c0016a10cc020b200520013602c001200541c0016a10cc02410421064100210441002113410021010c070b200b4201522006710d020b200541a0016a200110c802200541c0016a20052802a001220420052802a801221310c90220052903c001210e20054190016a41086a220620054190026a290300370300200520054188026a2903003703900102400240200e4201510d00200541b0016a41086a4200370300200542003703b0010c010b200541b0016a41086a200629030037030020052005290390013703b0010b20054188026a20052903b00137030020054190026a200541b0016a41086a290300370300200542013703c001200541c0016a41386a20174200200b42015122061b370300200541f0016a2016420020061b370300200541c0016a41286a2011420020061b370300200541e0016a2007420020061b370300200541d8016a2009420020061b370300200541c0016a41106a2008420020061b37030020054180026a200d420020061b3703002005200a420020061b3703c80120042013200541c0016a41086a10c805024020052802a401450d002004102e0b200541d0006a41106a290300210f200541d0006a41286a290300210e200541d0006a41386a290300210920052903582112200529037021022005290380012108200529035021032005290368210c0c030b20054188016a29030021090c010b20054188016a29030021090b20052903800121080b024020034201520d00200541f8016a200f370300200541f0016a2012370300200541c0016a41086a41003a0000200541c9016a2001290000370000200541d1016a200141086a290000370000200541d9016a200141106a290000370000200541e1016a200141186a290000370000200541033a00c001200541c0016a10fe010b02400240200c50450d004200210c0c010b200541c0016a41086a200528020c220141086a290000370300200541c0016a41106a200141106a290000370300200541c0016a41186a200141186a290000370300200520012900003703c0014201210c0b200541d0006a41186a200541c0016a41186a22012903002203370300200541d0006a41106a200541c0016a41106a2206290300220b370300200541d0006a41086a200541c0016a41086a290300220a370300200520052903c001220f370350200541f0016a200e370300200541e8016a220420023703002006200a3703002001200b370300200541e0016a20033703002005200c3703c0012005200f3703c801200541c0016a10d204024020052903c001500d0020052004360210200541106a10cc020b20004100360200200041106a2009370300200041086a20083703000c020b2014ad4220862015ad84210e0b200041086a200e3702002000410136020020002004411874201341ff017141107472200141ff0171410874722006723602040b200541c0026a24000bdb0403027f027e037f230041a0036b22022400200241d0026a410c6a200041e8016a290200370200200241e4026a200041f0016a290200370200200241ec026a200041f8016a290200370200200241e7e485f3063602d0022002200041e0016a2902003702d4022001280200210320024190036a200141046a10c301200241f8026a410c6a20024190036a41086a280200360200200220033602f80220022002290390033702fc02200220012802103602880320024180026a200241d0026a200241f8026a109d040240024020022802c002450d00200241a8016a41056a20024180026a41d00010e9081a200241d0006a200241a8016a41d50010e9081a2002200241d0006a41056a41d00010e9082101200041106a290300210420002903002105200141a8016a200141d00010e9081a200141d0006a410c6a2103410021064100210002400340200041d000460d0120014201370350200141003602582001200537038002200141d0006a20014180026a410810742001200437038002200141d0006a20014180026a41081074200341086a410029009197453700002003410029008997453700002001200141a8016a20006a36026c20014180026a200141d0006a10ae0102402001280254450d002001280250102e0b200141d0006a20014180026a108e03200128025022072001280258108f02210802402001280254450d002007102e0b200041d0006a210020080d000b410221060b0240200141ec016a2802002200450d00200041306c450d00200141e8016a280200102e0b41800621010c010b4100210641800821010b200241a0036a240020012006720b130020004104360204200041fcedc7003602000b3400200041bcdbc80036020420004100360200200041146a4101360200200041106a41a480c800360200200041086a42073702000b130020004101360204200041cc81c8003602000b900706027f017e027f017e087f057e23002203210420034180016b4160712203240042e4cab5fbb6ccdcb0e3002105200342e4cab5fbb6ccdcb0e3003703180240024002402001200284500d00200341e0006a200010d40620032802602106200328026421074201210802400240200328026822090d002006210a0c010b200620094105746a210b200341c0006a41196a210c200621092006210a0340200341286a41106a220d200941106a290300370300200341286a41086a220e200941086a29030037030020032009290300370328200941186a2d0000210f2003200941196a28000036022020032009411c6a280000360023200f4103460d01200c2003280220360000200c41036a22102003280023360000200341c0006a41106a200d2903002211370300200341c0006a41086a220d200e290300370300200320032903283703402003200f3a005802400240024020112003290318520d002008a7210e200341033a0078200329037021052003290360211220032903682113200329037821080240200e41ff0171220e4103470d0020122101201321020c030b200d2903002211200220032903402214200156201120025620112002511b220d1b211120142001200d1b2114200f4102200f200e461b210f2003290350211520122101201321020c010b2003200c28000036026020032010280000360063200d290300211120032903402114200329035021150b200a2014370300200a200f3a0018200a2015370310200a2003280260360019200a2011370308200a411c6a2003280063360000200a41206a210a0b200941206a2209200b470d000b0b200a20066b410575210902400240200842ff018342038550450d00200721030c010b0240024020092007460d0020072103200921070c010b200741016a22092007490d042007410174220a2009200a20094b1b22094104200941044b1b220941ffffff3f71200946410374210a200941057421090240024020070d00200341003602600c010b200341e0006a41086a410836020020032006360260200320074105743602640b200341c0006a2009200a200341e0006a107d200341c8006a280200210920032802404101460d0320032802442106200941057621030b200620074105746a220920053703102009200237030820092001370300200941186a2008370300200741016a21090b20002006200910d506200341ffffff3f71450d002006102e0b200424000f0b2009450d001036000b1038000b130020004104360204200041888dc8003602000b3400200041f8fcc60036020420004100360200200041146a4104360200200041106a41c8a7c800360200200041086a42083702000b130020004101360204200041acaec8003602000bf00101037f230041106b2202240020004100360208200042013702002001200010e805200141106a200010e8052002200128022036020c20002002410c6a410410742002200128022436020c20002002410c6a410410742002200128022836020c20002002410c6a41041074200141306a2802002103200141386a200141346a200128022c4101461b28020022042000107602402004410c6c2204450d00200320046a2104034020002003410810742002200341086a28020036020c20002002410c6a410410742003410c6a22032004470d000b0b2002200128023c36020c20002002410c6a41041074200241106a24000bcf0301027f230041206b2205240020054100360208200542013703000240024002400240024020002802000e03000102030b200541003a00102005200541106a410110744120102c2206450d032005422037021420052006360210200541106a200041086a412010742005200528021022062005280218107402402005280214450d002006102e0b200520002802043602102005200541106a410410740c020b200541013a00102005200541106a410110744120102c2206450d022005422037021420052006360210200541106a200041086a412010742005200528021022062005280218107402402005280214450d002006102e0b200520002802043602102005200541106a410410740c010b200541023a00102005200541106a410110744120102c2206450d012005422037021420052006360210200541106a200041086a412010742005200528021022062005280218107402402005280214450d002006102e0b200520002802043602102005200541106a410410740b200520033703102005200541106a41081074200520043703102005200541106a4108107420022005280200220620052802082001108907210002402005280204450d002006102e0b200541206a240020000f0b1036000b150020002002ad4220862001ad84200310034101460b130020004101360204200041ecb7c8003602000b3400200041a5fec60036020420004100360200200041146a4106360200200041106a41f0bec800360200200041086a421a3702000b130020004103360204200041c8cac8003602000b4301027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241d80436020c20002002410c6a41041074200241106a24000b100020002802002000280204200110680bbc0201037f23004180016b2202240020002802002100024002400240024020012802002203411071450d0020002802002104410021000340200220006a41ff006a2004410f712203413072200341d7006a2003410a491b3a00002000417f6a2100200441047622040d000b20004180016a22044181014f0d02200141ac88c0004102200220006a4180016a410020006b104b21000c010b2000280200210402402003412071450d00410021000340200220006a41ff006a2004410f712203413072200341376a2003410a491b3a00002000417f6a2100200441047622040d000b20004180016a22044181014f0d03200141ac88c0004102200220006a4180016a410020006b104b21000c010b2004ad2001104821000b20024180016a240020000f0b2004418001419c88c0001056000b2004418001419c88c0001056000b8a0702027f047e230041f0016b2202240020002802002100024002400240024020012802002203411071450d00200041086a290300210420002903002105418001210002400340024020000d00410021000c020b200241f0006a20006a417f6a2005a7410f712203413072200341d7006a2003410a491b3a00002000417f6a210020054204882004423c8684220520044204882204844200520d000b20004181014f0d030b200141ac88c0004102200241f0006a20006a41800120006b104b21000c010b200041086a29030021042000290300210502402003412071450d00418001210002400340024020000d00410021000c020b200241f0006a20006a417f6a2005a7410f712203413072200341376a2003410a491b3a00002000417f6a210020054204882004423c8684220520044204882204844200520d000b20004181014f0d040b200141ac88c0004102200241f0006a20006a41800120006b104b21000c010b2002412736026c02400240200442ffff1f560d0020054213882004422d868442bda282a38eab04802104420021060c010b200241386a2005420042f3b2d8c19e9ebdcc957f420010e808200241286a2005420042d2e1aadaeda7c987f600420010e808200241d8006a2004420042f3b2d8c19e9ebdcc957f420010e808200241c8006a2004420042d2e1aadaeda7c987f600420010e808200241c8006a41086a290300200241286a41086a290300200241386a41086a290300220620022903287c2204200654ad7c220720022903487c2206200754ad7c2006200241d8006a41086a290300200420022903587c200454ad7c7c2204200654ad7c2207423e8821062004423e8820074202868421040b200241186a20042006428080e0b0b79fb79cf500427f10e808200229031820057c200241f0006a200241ec006a106702402004200684500d00200241f0006a41146a4130200228026c416c6a10eb081a2002411436026c200241086a20044213882006422d8684220542bda282a38eab048022062004428080e0b0b79fb79cf500427f10e808200229030820047c200241f0006a200241ec006a1067200542bda282a38eab04540d00200241f1006a4130200228026c417f6a10eb081a20022006a74130723a00702002410036026c0b200141d4e2cc004100200241f0006a200228026c22006a412720006b104b21000b200241f0016a240020000f0b2000418001419c88c0001056000b2000418001419c88c0001056000ba90705017f047e027f017e017f230041c0016b22022400200241b0016a200141186a2903002203200041186a29020085420020012903102204200029021085420010e808200241a0016a2003200041086a2902008542002004200029020085420010e8082001200141086a2903002205200241a0016a41086a29030020022903a001857c2005200241b0016a41086a29030020022903b001857c200129030042adfed5e4d485fda8d8007e42a0cbbf9599b5a19f0a7c8542178985421789220637030002400240200028022022074125490d002000412c6a2802002107200041286a28020021080c010b200041256a21080b20024190016a20062007ad220985420042adfed5e4d485fda8d800420010e808200120024198016a2903002002290390018520097c42adfed5e4d485fda8d8007e22063703000240024002400240024020074109490d00200741104d0d01200241c0006a2003200720086a41706a220a41086a2900008542002004200a29000085420010e80820012005200241c0006a41086a2903002002290340857c20068542178922063703000340200241306a2003200841086a2900008542002004200829000085420010e808200841106a21082005200241306a41086a2903002002290330857c2006854217892106200741706a220741104b0d000c040b0b0240200741014b0d002007450d0420024180016a2006200831000085420042adfed5e4d485fda8d800420010e80820024188016a2903002002290380018521060c030b200741034b0d01200241f0006a200720086a417f6a310000422086200833000084200685420042adfed5e4d485fda8d800420010e808200241f8006a29030020022903708521060c020b200241d0006a2003200720086a41786a2900008542002004200829000085420010e8082005200241d8006a2903002002290350857c20068542178921060c010b200241e0006a2003200720086a417c6a3500008542002004200835000085420010e8082005200241e8006a2903002002290360857c20068542178921060b200120063703000b02400240200041cc006a2d00000d0020022006420042adfed5e4d485fda8d800420010e808200241086a29030020022903008521060c010b200241206a2006420185420042adfed5e4d485fda8d800420010e808200241106a200241206a41086a290300200229032085200041cd006a31000085420042adfed5e4d485fda8d800420010e808200241106a41086a29030020022903108521060b20012006370300200241c0016a24000b6901017f230041206b220324002003200136020420032000360200200341086a41106a200241106a290200370300200341086a41086a200241086a29020037030020032002290200370308200341a4cec800200341046a41a4cec800200341086a4180a2cc001058000bd30202027f017e23004180016b2202240020002802002100024002400240024020012802002203411071450d0020002903002104418001210002400340024020000d00410021000c020b200220006a417f6a2004a7410f712203413072200341d7006a2003410a491b3a00002000417f6a2100200442048822044200520d000b20004181014f0d030b200141ac88c0004102200220006a41800120006b104b21000c010b2000290300210402402003412071450d00418001210002400340024020000d00410021000c020b200220006a417f6a2004a7410f712203413072200341376a2003410a491b3a00002000417f6a2100200442048822044200520d000b20004181014f0d040b200141ac88c0004102200220006a41800120006b104b21000c010b20042001104821000b20024180016a240020000f0b2000418001419c88c0001056000b2000418001419c88c0001056000b13002000410636020420004194cfc8003602000b110041e2a0cc00412841acd3c8001039000b110041e2a0cc00412841bcd3c8001039000bfb0501087f230041206b22042400024002400240200141086a280200220541036a2206417f4c0d0020012d000021072001280204210820012d000121094101210102402006450d002006102c2201450d020b20002001360200200041086a4100360200200041046a2006360200200541017420076a220141ffff03200141ffff03491b220641c0006a41ff0020062006413e2006413e491b220a461b21012006200a6b21064101210a02400340024002400240200a41ff01714102470d002001210b0c010b4100210b200a410171450d004100210a0c010b2006450d020240200641ff014b0d002006417f6a21014102210a410021060c010b200641817e6a210641ff0121014102210a0b200420013a00102000200441106a41011074200b21010c000b0b024002400240024020070d00200041046a2802002106200041086a28020021010c010b0240200041086a220b280200220a200041046a2802002206470d00200a41016a2201200a490d04200a41017422062001200620014b1b22014108200141084b1b210102400240200a0d00200441003602100c010b200441106a41086a41013602002004200a360214200420002802003602100b200420014101200441106a10d104200441086a280200210620042802004101460d0220002004280204360200200041046a20063602000b200b200a41016a22013602002000280200200a6a2009410f713a00000b200620016b2005490d01200028020021060c040b2006450d010c020b200120056a220a2001490d002006410174220b200a200b200a4b1b220a4108200a41084b1b210a0240024020060d00200441003602100c010b200441106a41086a410136020020042006360214200420002802003602100b2004200a4101200441106a10d104200441086a280200210a024020042802004101460d00200020042802042206360200200041046a200a3602000c030b200a0d010b1038000b1036000b200620016a2008200510e9081a200041086a200120056a3602002003200010762000200220031074200441206a24000bff0101047f230041c0006b2202240041aab4c700210341092104410521050240024002400240024002400240200141ff01710e0700010203040506000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a41c4c5cb001044000b419eb4c7002103410c2104410021050c040b4192b4c7002103410c2104410121050c030b4188b4c7002103410a2104410221050c020b41ffb3c7002103410321050c010b41f6b3c7002103410421050b20004183c6003b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000bf50101047f230041306b22022400200241bad7c7004108108102200241106a41dcd9c7004107108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bb40201037f230041e0006b22022400200241086a41bad7c7004108108102200241186a41f4d8c7004104108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241c8006a41086a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000bb40201037f230041e0006b22022400200241086a41bad7c7004108108102200241186a41f4d8c7004104108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241c8006a41086a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000b1300200041033602042000418cd4c8003602000b9a0801097f230041e0006b220224000240024020012802202203109e07450d0020004180063b0001200041013a0000200041036a410a3a00000c010b200241386a22044200370300200241306a22054200370300200241206a41086a420037030020024200370320200241206a41a081ca004107108102200241c0006a41e4d1c100410c1081022004200241c0006a41086a29000037030020052002290040370300200241086a200241206a4120108e020240200128021c200228020c410020022802081b2206460d0020004180063b0001200041013a0000200041036a410a3a00000c010b200241106a10870302400240200228021822052001280224460d00200041800e3b0001200041013a0000200041036a410a3a00000c010b0240200520034b0d0020004180083b0001200041013a0000200041036a410a3a00000c010b200141286a2107200228021020034105746a2108200241003602282002420137032020022001280200360240200241206a200241c0006a41041074200128020421042001410c6a2802002209200241206a1076200241206a200420091074200141106a2802002104200141186a2802002209200241206a10762006210a02402009450d0020042009410c6c6a2109034020042802002103200441086a2802002205200241206a1076200241206a2003200510742004410c6a22042009470d000b2001280224210520012802202103200128021c210a0b2002200a360240200241206a200241c0006a4104107420022003360240200241206a200241c0006a4104107420022005360240200241206a200241c0006a410410742007200228022022012002280228200810fa04210402402002280224450d002001102e0b024020040d0020004180083b0001200041013a0000200041036a410a3a00000c010b0240024002404110102c2204450d0020024210370254200220043602504108200241d0006a1076200241d0006a41bed8c8004108107420022006360220200241d0006a200241206a41041074200241d0006a20084120107420024100360220200241c0006a41304104200241206a107d200241c0006a41086a280200210120022802404101470d012001450d020b1036000b200228024422042002290350370200200441086a200241d0006a41086a280200360200200220022800203602402002200241236a280000360043200041306a41013a00002000412c6a4101360200200041286a2001410c6e360200200041246a2004360200200041206a4100360200200041186a4204370300200041106a42b009370300200041086a427f370300200041003a0000200041316a2002280240360000200041346a2002280043360000200228021441ffffff3f71450d022002280210102e0c020b1038000b200228021441ffffff3f71450d002002280210102e0b200241e0006a24000bdc0102037f017e230041306b22012400200141186a22024200370300200141106a22034200370300200141086a420037030020014200370300200141a081ca004107108102200141206a41f09dc500410a1081022002200141206a41086a29000037030020032001290020370300200141206a200110880320012802202202410120021b21030240024002402001290224420020021b2204422088a720004b0d0041002100200442ffffff3f8350450d010c020b2000200320004105746a10be012100200442ffffff3f83500d010b2003102e0b200141306a240020000bec0505017f017e097f027e027f230041306b2201240002400240101c2202422088a722030d002001200336020c200141013602080c010b2001200336020c20012002a7220436020820042d0000210520012003417f6a36020c2001200441016a3602080240024002400240024020050e020001050b200141206a200141086a10db0820012802202206450d04200141286a2802002107200128022421082001200141086a10ab0120012802000d03024020012802042209200128020c410c6e2205200520094b1bad420c7e2202422088a70d002002a72205417f4c0d000240024020050d004104210a0c010b2005102c220a450d040b2005410c6ead2102024002402009450d000340200141206a200141086a10db0802402001280220220b0d0002402002422088a72205450d002005410c6c2109200a210503400240200541046a280200450d002005280200102e0b2005410c6a2105200941746a22090d000b0b2002a72205450d082005410c6c450d08200a102e0c080b2001290224210c02402002422088220da722052002a7470d00200541016a220e2005490d042005410174220f200e200e200f491b220e4104200e41044b1bad420c7e220d422088a745410274210e200da7210f0240024020050d00200141003602200c010b200141043602282001200a36022020012005410c6c3602240b200141106a200f200e200141206a107d2001280218210e20012802104101460d032001280214210a2002422088220da72105200e410c6ead21020b200a2005410c6c6a2205200c3702042005200b360200200d422086200242ffffffff0f83844280808080107c21022009417f6a22090d000b0b200a450d0520060d030c060b200e0d030b1038000b410021060b2000200836020420002006360200200041106a20023702002000410c6a200a360200200041086a200736020002402003450d002004102e0b200141306a24000f0b1036000b2008450d002006102e0b41cae0cc00412e200141206a41f8e0cc004188e1cc00103e000bd10302017f017e230041a0016b220524002005200136020c024002402005410c6a20022004ad4220862003ad8410092206422088a722030d00410121020c010b2006a721020b200520033602542005200236025002402003450d0020022d0000210420052003417f6a3602542005200241016a360250410021030240024020040e020100020b200541d8006a200541d0006a10a70120052d00584101460d01200541c8006a20054191016a290000370300200541c0006a20054189016a290000370300200541386a20054181016a290000370300200541306a200541f9006a290000370300200541286a200541f1006a290000370300200541206a200541e9006a290000370300200541186a200541e1006a29000037030020052005290059370310410121030b200020033a000020002005290310370001200041096a200541186a290300370000200041116a200541206a290300370000200041196a200541286a290300370000200041216a200541306a290300370000200041296a200541386a290300370000200041316a200541c0006a290300370000200041396a200541c8006a2903003700002002102e200541a0016a24000f0b41cae0cc00412e200541d8006a41f8e0cc004188e1cc00103e000b1d0020004101472002ad4220862001ad842004ad4220862003ad84101b0b930201017f230041106b22022400200220002903003703082001200241086a410810740240024020002903084201510d00200241003a00082001200241086a410110740c010b200241013a00082001200241086a410110742002200041106a2903003703082001200241086a410810740b0240024020002903184201510d00200241003a00082001200241086a410110740c010b200241013a00082001200241086a410110742002200041206a2903003703082001200241086a410810740b0240024020002903284201510d00200241003a00082001200241086a410110740c010b200241013a00082001200241086a410110742002200041306a2903003703082001200241086a410810740b200241106a24000b850201037f230041d0006b22022400200241086a41d9fcc6004106108102200241186a41d8f3cb00410d108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000b830101037f230041206b2202240020022000108c02200228020821032002280200210002404120102c2204450d002002422037021420022004360210200241106a2001412010742000200320022802102201200228021810b20102402002280214450d002001102e0b02402002280204450d002000102e0b200241206a24000f0b1036000b130020004103360204200041d0ddc8003602000b3400200041a0dac80036020420004100360200200041146a4106360200200041106a41fce8c800360200200041086a420f3702000b4201027f230041106b2202240002404108102c22030d001036000b2000420837020420002003360200200242003703082000200241086a41081074200241106a24000b0d00200041002000200010da060b3001017f0240200128020022022001280204470d00200041003602000f0b2001200241e0016a3602002000200210d0030b290020004101360204200041086a200128020420012802006b41e0016e2201360200200020013602000ba20801087f230041d0006b22052400200541306a22064200370300200541286a22074200370300200541186a41086a2208420037030020054200370318200541386a41a0dac800410f1081022008200541386a41086a220929000037030020052005290038370318200541386a41afdac800410d1081022006200929000037030020072005290038370300024002400240200541186a4120108f020d0020064200370300200742003703002008420037030020054200370318200541186a41d9fcc6004106108102200541386a4180f4cb0041061081022006200929000037030020072005290038370300200541106a200541186a4120108e022005280214410020052802101b2106024020034101470d00200541306a220a4200370300200541286a220b4200370300200541186a41086a2208420037030020054200370318200541386a41a0dac800410f1081022008200541386a41086a220929000037030020052005290038370318200541386a41fcedc800410a108102200741086a220c200929000037000020072005290038370000200541086a200541186a4120108e0202402005280208450d00200528020c20064d0d002000410410b0070c030b200a4200370300200b42003703002008420037030020054200370318200541386a41a0dac800410f1081022008200929000037030020052005290038370318200541386a41fcedc800410a108102200c2009290000370000200720052900383700002005200241017420066a360238200541186a4120200541386a410410b2010b200128020421082001280200210920012802082101200541306a4200370300200541286a4200370300200541186a41086a220a420037030020054200370318200541386a41a0dac800410f108102200a200541386a41086a220b29000037030020052005290038370318200541386a41afdac800410d108102200741086a200b29000037000020072005290038370000200541003602402005420137033820052006360248200541386a200541c8006a4104107420052002360248200541386a200541c8006a410410742001200541386a10760240200141286c2207450d00200920076a2101200921070340200541386a2007412010742005200741206a290300370348200541386a200541c8006a41081074200741286a22072001470d000b0b0240024020034101460d00200541003a0048200541386a200541c8006a410110740c010b200541013a0048200541386a200541c8006a4101107420052004360248200541386a200541c8006a410410740b200541186a412020052802382207200528024010b2010240200528023c450d002007102e0b02402008450d00200841286c450d002009102e0b200041063a00000c020b2000410310b0070b200141046a2802002207450d00200741286c450d002001280200102e0b200541d0006a24000b840201047f230041d0006b22022400200241a0dac800410f108102200241106a4194efc800410c108102200220013703302002200241306a410810a301370338200241c0006a410c6a200241306a41086a3602002002200241386a41086a3602442002200241306a3602482002200241386a360240200241206a200241c0006a107c024002402002280228220341206a2204417f4c0d000240024020040d00410121050c010b2004102c2205450d020b20004100360208200020043602042000200536020020002002411010742000200241106a411010742000200228022022042003107402402002280224450d002004102e0b200241d0006a24000f0b1038000b1036000bd30302057f017e230041b0016b2202240002400240200128020022032001280204470d00200041003602000c010b2001200341e0016a3602002002200341206a41e2c289ab0610d103200228020421042002280200210541002101200241003a00680240024002400240034020042001460d01200241c8006a20016a200520016a2d00003a00002002200141016a22063a00682006210120064120460d020c000b0b200141ff0171450d01200241003a00680c010b200241f0006a41086a2201200241c8006a41086a290300370300200241f0006a41106a2204200241c8006a41106a290300370300200241f0006a41186a2205200241c8006a41186a29030037030020022002290348370370200641ff0171411f4d0d00200241286a41186a20052903002207370300200241086a41086a2001290300370300200241086a41106a2004290300370300200241086a41186a2007370300200220022903703703080c010b200241106a4200370300200241186a4200370300200241206a4200370300200242003703080b20002003360200200020022903083700042000410c6a200241106a290300370000200041146a200241186a2903003700002000411c6a200241206a2903003700000b200241b0016a24000b3001017f0240200128020022022001280204470d00200041003602000f0b2001200241e0016a3602002000200210d2030bd30302057f017e230041b0016b2202240002400240200128020022032001280204470d00200041003602000c010b2001200341e0016a3602002002200341206a41e1ea91cb0610d103200228020421042002280200210541002101200241003a00680240024002400240034020042001460d01200241c8006a20016a200520016a2d00003a00002002200141016a22063a00682006210120064120460d020c000b0b200141ff0171450d01200241003a00680c010b200241f0006a41086a2201200241c8006a41086a290300370300200241f0006a41106a2204200241c8006a41106a290300370300200241f0006a41186a2205200241c8006a41186a29030037030020022002290348370370200641ff0171411f4d0d00200241286a41186a20052903002207370300200241086a41086a2001290300370300200241086a41106a2004290300370300200241086a41186a2007370300200220022903703703080c010b200241106a4200370300200241186a4200370300200241206a4200370300200242003703080b20002003360200200020022903083700042000410c6a200241106a290300370000200041146a200241186a2903003700002000411c6a200241206a2903003700000b200241b0016a24000b9b0201047f230041c0006b2202240041baddc8002103411621044106210502400240024002400240024002400240200141ff01710e080001020304050607000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a41b48dcc001044000b41afddc8002103410b2104410021050c050b41a3ddc8002103410c2104410121050c040b4196ddc8002103410d2104410221050c030b418fddc800210341072104410321050c020b41f7dcc800210341182104410421050c010b41dfdcc800210341182104410521050b20004183163b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000b130020004101360204200041c8f3c8003602000b3400200041bed8c80036020420004100360200200041146a4104360200200041106a41b0f8c800360200200041086a42083702000b1300200041013602042000418487c9003602000b3400200041e8fcc60036020420004100360200200041146a4102360200200041106a41808dc900360200200041086a42093702000b130020004101360204200041cc8fc9003602000b4301027f230041106b2202240002404108102c22030d001036000b2000420837020420002003360200200242b8173703082000200241086a41081074200241106a24000b130020004101360204200041d093c9003602000b340020004190dac80036020420004100360200200041146a4103360200200041106a41dc94c900360200200041086a420a3702000b02000b2f01017f02404104102c22020d001036000b2000420437020420002002360200410020001076410441002000109f010b810201057f0240024002400240200041086a2802002201450d0020014102742102410021032000280200220421050240034020052802000d01200541046a2105200341016a21032002417c6a22020d000b2001417f6a21030b2003450d0020012003490d01200120036b220541ffffffff03712005470d0220054102742202417f4c0d024104210102402002450d002002102c2201450d040b2001200420034102746a200541027410e9082103200241027621020240200041046a28020041ffffffff0371450d002000280200102e0b20002003360200200041086a2005360200200041046a20023602000b0f0b2003200141dcd8cc001056000b1038000b1036000b9c04030d7f017e017f02400240200241086a2802002203200141086a28020022046a22054101200541014b1b220641ffffffff03712006470d0020064102742205417f4c0d0002400240024020050d00410421070c010b200510322207450d010b20002007360200200041086a2006360200200020054102763602042004450d022006417f6a2108200341027420022802006a417c6a2109200641027420076a417c6a210a4100210b200141086a210c2004210d0240034002400240024002400240024002402004200d200b417f736a220e4d0d002001280200200e4102746a220f280200450d06024020030d00410021000c060b420021104100210020092102200a21050340200d200e4d0d022003200320006a2211417f6a4d0d032006200820006a22114d0d0420052002350200200f3502007e20107c20053502007c22103e02002002417c6a21022005417c6a21052010422088211020032000417f6a22006a450d050c000b0b200e200441ccd7cc00103c000b200e200d41ccd7cc00103c000b2011417f6a200341ccd7cc00103c000b2011200641ccd7cc00103c000b2010a721000b2006200b20036a417f736a220520064f0d02200720054102746a20003602000b200b41016a220b2004460d04200a417c6a210a2008417f6a2108200c280200210d0c000b0b2005200641ecd8cc00103c000b1036000b1038000b0240200141046a28020041ffffffff0371450d002001280200102e0b0bab1006037f017e017f017e0c7f027e23004180026b22022400200141346a2802002103200141386a2802002104200141086a29030021052001280230210620012903002107200241086a41186a200141d4006a290000370300200241086a41106a200141cc006a290000370300200241086a41086a200141c4006a2900003703002002200129003c37030820022005370330200220073703282006200441d8006c22086a21092006210102400240024002402004450d004100210a20024198016a41086a210b20024198016a41106a210c20024198016a41186a210d024002400340200b2006200a6a2201413c6a290200370300200c200141c4006a290200370300200d200141cc006a29020037030020024198016a41206a200141d4006a2802003602002002200141346a29020037039801200141306a280200220e450d02200141286a2903002105200141206a2903002107200241e0016a41186a220f200d290300370300200241e0016a41106a2210200c290300370300200241e0016a41086a2211200b29030037030020022002290398013703e00102400240200720052002290328200241286a41086a29030010820522120d004100210f0c010b200241c0016a41186a200f290300370300200241c0016a41106a2010290300370300200241c0016a41086a2011290300370300200220022903e0013703c0014101210f201221130b200e200e280200417f6a2210360200024020100d00200e41046a22102010280200417f6a221036020020100d00200e102e0b200f0d012008200a41d8006a220a470d000b200921010c020b200241386a41086a220e200241c0016a41086a290300370300200241386a41106a220b200241c0016a41106a290300370300200241386a41186a220c200241c0016a41186a290300370300200220022903c00122053703582002200537033802404124102c2208450d002008200229033837020020082013360220200841186a200c290300370200200841106a200b290300370200200841086a200e290300370200200220093602442002200141d8006a220b3602402002200336023c200220063602382002200241286a360248024002400240200441d8006c41a87f6a200a470d0041012103410121040c010b20024198016a41086a210a20024198016a41106a210c20024198016a41186a210d410121034101210403402002200b220141d8006a220b360240200141306a280200210e200141286a2903002105200141206a2903002107200a2001413c6a290200370300200c200141c4006a290200370300200d200141cc006a29020037030020024198016a41206a200141d4006a2802003602002002200141346a2902003703980102400240200e450d00200241e0016a41186a2210200d290300370300200241e0016a41106a2211200c290300370300200241e0016a41086a2212200a29030037030020022002290398013703e00102400240200720052002280248220f290300200f41086a29030010820522060d004100210f0c010b200241c0016a41186a2010290300370300200241c0016a41106a2011290300370300200241c0016a41086a2012290300370300200220022903e0013703c0014101210f200621130b200e200e280200417f6a2210360200024020100d00200e41046a22102010280200417f6a221036020020100d00200e102e0b200f0d012009200b470d020b200141d8006a210b0c020b200241d8006a41086a200241c0016a41086a2903002205370300200241d8006a41106a200241c0016a41106a2903002207370300200241d8006a41186a200241c0016a41186a2903002214370300200220022903c0012215370358200d2014370300200c2007370300200a20053703002002201537039801024020042003470d00200341016a22012003490d092003410174220e2001200e20014b1b22014104200141044b1bad42247e2205422088a74541027421012005a7210e0240024020030d00200241003602e0010c010b200241043602e801200220083602e0012002200341246c3602e4010b200241c0016a200e2001200241e0016a107d20022802c801210120022802c0014101460d0320022802c4012108200141246e21030b2008200441246c6a2201200229039801370200200c2903002105200d2903002107200a290300211420012013360220200141086a2014370200200141186a2007370200200141106a2005370200200441016a21042002280240220b20022802442209470d000b0b2009200b6b220141d8006d210e02402001450d00200e41d8006c210e200b41306a210103402001280200220a200a280200417f6a36020002402001280200220a2802000d00200a41046a220a200a280200417f6a3602002001280200220a41046a2802000d00200a102e0b200141d8006a2101200e41a87f6a220e0d000b0b0240200228023c2201450d00200141d8006c450d002002280238102e0b2004450d042000200336020420002008360200200041086a20043602002000410c6a2002290308370000200041146a200241086a41086a2903003700002000411c6a200241186a290300370000200041246a200241206a2903003700000c050b2001450d050b1036000b200141d8006a21010b024020092001460d000340200141306a220e280200220a200a280200417f6a360200200141d8006a21010240200e280200220a2802000d00200a41046a220a200a280200417f6a360200200e280200220e41046a2802000d00200e102e0b20092001470d000b0b02402003450d00200341d8006c450d002006102e0b200041003602000c010b200041003602002003450d00200341246c450d002008102e0b20024180026a24000f0b1038000b130020004107360204200041d499c9003602000b13002000410236020420004188a0c9003602000b13002000410736020420004190a1c9003602000b1f0002402000280200450d00200041086a280200450d002000280204102e0b0b940202017f027e230041e0006b2202240002402001450d00200241d4006a410f3602002002411c6a41023602002002420237020c200241a0a7c9003602082002410436024c20024198a7c9003602482002200241c8006a3602182002200241d8006a360250200241086a41b0a7c9001044000b200241c0006a41002903e8f846370300200241386a41002903e0f846370300200241306a41002903d8f846370300200241286a41002903d0f846370300200241206a41002903c8f846370300200241186a41002903c0f846370300200241106a41002903b8f846370300200241002903b0f846370308200241c8006a200241086a1087072002350250210320023502482104200241e0006a240020042003422086840bfd1d02087f047e230041900a6b22022400200242808080808020370214200220013602a4062002200041d4e2cc0020011b3602a0062002200241a0066a360210200241b0066a200241106a10990202400240024020022802b4062203450d00200241bc066a280200210420022802b806210520022802b0062106200241e0026a200241c0066a41e00010e9081a200241b0066a200241106a10ec0120022802b00622070d0102402004450d00200441246c21002003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b2005450d00200541246c450d002003102e0b200241f0016a200241f0006a41e00010e9081a0c010b200241b8066a280200210820022802b4062109200241f0006a200241e0026a41e00010e9081a200241f0016a200241f0006a41e00010e9081a200241b8056a200241f0016a41e00010e9081a0240024020022802102802040d00200241b0066a200241b8056a41e00010e9081a0c010b02402004450d00200441246c21002003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402005450d00200541246c450d002003102e0b02402008450d00200841c8036c210020072103034002402003220141e8006a2903004202510d0020012d00004102470d00200141086a280200450d00200141046a280200102e0b200141c8036a210320014198016a109601200041b87c6a22000d000b0b410021032009450d00200941c8036c450d002007102e0b2003450d00200241106a200241b0066a41e00010e9081a200241fc006a2004360200200241f0006a41086a20053602002002200336027420022006360270200241f0006a41106a200241106a41e00010e9082101200241e8016a2008360200200241e4016a2009360200200220073602e001200241f0006a10c4070240024002400240024002402006450d00200241b8056a2006417f6a108c02200241b0066a20022802b805220320022802c005108d0220022d00b0062100200241e0026a41186a2206200241c9066a290000370300200241e0026a41106a200241c1066a290000370300200241e0026a41086a200241b9066a290000370300200220022900b1063703e0020240024020004101460d00200241f0016a41186a420037030020024180026a4200370300200241f8016a4200370300200242003703f0010c010b200241f0016a41186a2006290300370300200241f0016a41106a200241e0026a41106a290300370300200241f0016a41086a200241e0026a41086a290300370300200220022903e0023703f0010b024020022802bc05450d002003102e0b200241f0016a2001412010ec080d0010c507200241f0016a200241f0006a41f00010e9081a2007200841c8036c6a210320022802f001210602400240024020080d00200721000c010b200241b0066a41f0006a21002007210102400340200241b8056a200141e80010e9081a200141e8006a290300210a200241e0026a200141f0006a41d80210e9081a200a4203510d01200241b0066a200241b8056a41e80010e9081a2002200a370398072000200241e0026a41d80210e9081a200241a0066a200241b0066a10c60720022d00a0060d05200141c8036a22012003470d000c030b0b200141c8036a21000b20032000460d002007200841c8036c6a210303402000220141c8036a21000240200141e8006a2903004202510d0020012d00004102470d00200141086a280200450d00200141046a280200102e0b20014198016a108b0220032000470d000b0b02402009450d00200941c8036c450d002007102e0b200241fcc6cb004110108e02200228020421080240200228020022094101470d0041fcc6cb00411010ff010b200241e0026a41186a22014200370300200241e0026a41106a22004200370300200241e0026a41086a22034200370300200242003703e002200241b0066a41d9fcc60041061081022003200241b0066a41086a2207290000370300200220022900b0063703e002200241b0066a41acf2cb00410e10810220012007290000370300200020022900b00637030020022008410020091b3602b006200241e0026a4120200241b0066a410410b2014101200210eb04200142003703002000420037030020034200370300200242003703e002200241b0066a41d9fcc600410610810220032007290000370300200220022900b0063703e002200241b0066a41d4f2cb00410b10810220012007290000370300200020022900b006370300200241b0066a200241e0026a10f20420022903b006210a200241b0066a41106a290300210b20022903b806210c200241b0066a41186a290300210d200241b0066a10a903024020022903b806427f427f200c4200200a42015122011b220a200b420020011b7c220b200b200a541b220a200d420020011b7c220b200b200a541b580d004200410210f1040b200610d90610c707450d02200241b0066a10c8072002200241f0016a410c6a28020022083602a0062002200241b0066a410c6a28020022013602b80520082001470d032008450d0520022802b406210920022802f401210641002103034002400240200620036a22012d00002207200920036a22002d0000470d0002400240024002400240024020070e06000304050102000b200141016a200041016a412010ec080d050c060b200141046a2802002205200041046a280200470d042005450d05200141086a280200200041086a280200470d042001410c6a2802002000410c6a280200470d040c050b2001410c6a28020022052000410c6a280200470d03200141046a280200200041046a280200200510ec080d030c040b200141016a280000200041016a280000470d02200141106a2802002205200041106a280200470d02200141086a280200200041086a280200200510ec080d020c030b200141016a280000200041016a280000470d01200141106a2802002205200041106a280200470d01200141086a280200200041086a280200200510ec080d010c020b200141016a280000200041016a280000470d00200141106a2802002205200041106a280200470d00200141086a280200200041086a280200200510ec08450d010b418ba4cc00411410ef02200241e0026a200110ef0420022802e002220720022802e80210c907024020022802e402450d002007102e0b200241e0026a200010ef0420022802e002220720022802e80210c907024020022802e402450d002007102e0b20012d000020002d00002207470d060b024002400240024002400240024020070e06050203040001050b200141046a2802002207200041046a280200470d0b2007450d05200141086a280200200041086a280200470d0b2001410c6a2802002000410c6a280200470d0b0c050b2001410c6a28020022072000410c6a280200470d0a200141046a280200200041046a280200200710ec080d0a0c040b200141016a280000200041016a280000470d09200141106a2802002207200041106a280200470d09200141086a280200200041086a280200200710ec080d090c030b200141016a280000200041016a280000470d08200141106a2802002207200041106a280200470d08200141086a280200200041086a280200200710ec080d080c020b200141016a280000200041016a280000470d07200141106a2802002207200041106a280200470d07200141086a280200200041086a280200200710ec08450d010c070b200141016a200041016a412010ec080d060b200341246a21032008417f6a22080d000c060b0b418aa1cc00411c41a8a1cc001039000b200241086a20022f00a10620022d00a3064110747210fb05200220022903083703f809200241c4066a4101360200200242013702b406200241c4e2cc003602b006200241043602840a2002200241800a6a3602c0062002200241f8096a3602800a200241b0066a41b8a1cc001044000b41c8a1cc00411e41e8a1cc001039000b200241f4026a4100360200200241f0026a41d4e2cc00360200200242013702e402200241f8a1cc003602e002200241a0066a200241b8056a200241e0026a109207000b4190a2cc00412741b8a2cc001039000b0240200241f0016a41306a2201200241b0066a41306a2200412010ec08450d0041dee8cc00410e10ef022001412010c9072000412010c9070b024020012000412010ec08450d0041c8a2cc00412841f0a2cc001039000b0240200241f0016a41d0006a200241b0066a41d0006a412010ec080d00024020022802bc062200450d0020022802b4062101200041246c210003400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b0240200241b8066a2802002201450d00200141246c450d0020022802b406102e0b024020022802fc012200450d0020022802f4012101200041246c210003400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b0240200241f8016a2802002201450d00200141246c450d0020022802f401102e0b200241900a6a240042010f0b4180a3cc00412441a4a3cc001039000b200241fc006a410f360200200241f4026a4102360200200242023702e402200241a0a7c9003602e00220024104360274200241e4a7c9003602702002200241f0006a3602f0022002200241880a6a360278200241e0026a41b0a7c9001044000b99cc010a0b7f027e047f017e017f097e037f027e087f047e230041f0096b2201240020014100360298042001420437039004024002400240024002400240024002400240024002402000410c6a28020041246c2202450d0020002802042103410421044104210541002106410021070340024020032d00004101470d00200341106a2802002208417f4c0d0c200341086a2802002109200341016a280000210a0240024020080d004101210b0c010b2008102c220b450d0c0b200b2009200810e90821092001200a3602a00520014190096a41086a220b200141b0086a41086a2902003703002001200a3602c004200120012800a3053600c304200120012902b00837039009024020072006470d0020062006470d00200641016a220a2006490d0d20064101742204200a2004200a4b1b220a4104200a41044b1bad42247e220c422088a745410274210a200ca721040240024020060d0020014100360280060c010b200141043602880620012005360280062001200641246c360284060b200141b8056a2004200a20014180066a107d20012802c005210620012802b8054101460d04200120012802bc052204360290042001200641246e2206360294040b2004200741246c6a220741013a000020012802c004210a20012800c3042105200720083602102007200836020c20072009360208200741046a20053600002007200a36000120072001290390093702142007411c6a200b290300370200200120012802980441016a220736029804200421050b200341246a21032002415c6a22020d000b0b200141d8046a22034200370300200141c0046a41106a22064200370300200141c0046a41086a22074200370300200142003703c004200141e0046a41d9fcc60041061081022007200141e0046a41086a290300370300200120012903e0043703c004200141f0046a41ccf6cb0041121081022003200141f0046a41086a290300370300200620012903f004370300200141203602a4052001200141c0046a3602a005200141b0086a200141c0046a412010ed0220012802b00822070d01410221080c020b20060d070c080b20012802b40821042001200141b0086a41086a2802003602bc05200120073602b80520014188046a200141b8056a10ab01200128028c04210a024002402001280288040d0020014180046a200141b8056a10ab012001280280040d0020012802bc0522082001280284042203490d002003417f4c0d090240024020030d00410121020c010b200310322202450d0920012802bc0521080b024020082003490d00200220012802b805200310e9081a20012802bc0522082003490d042001200820036b3602bc05200120012802b80520036a3602b805410121080c020b2002102e0b200141003602980920014201370390092001410a360294052001200141a0056a36029005200120014190096a3602f00420014194066a41013602002001420137028406200141909dc50036028006200120014190056a36029006200141f0046a419cebc00020014180066a103d1a20012802900920012802980910ef020240200128029409450d00200128029009102e0b410221080b2004450d002007102e0b024020084102460d00410121070240200a411e490d0041002107024020034108470d00200229000042f0deb1db968cd9b7f4005121070b200741017321070b02402003450d002002102e0b20070d004200210d20014190096a210e0c050b2001418c066a41002903b8f8463702002001411e36028006200141002903b0f84637028406200141c0046a41186a22074200370300200141d0046a22084200370300200141c0046a41086a22034200370300200142003703c004200141e0046a41d9fcc60041061081022003200141e0046a41086a2202290300370300200120012903e0043703c004200141f0046a41ccf6cb004112108102200641086a220a200141f0046a41086a2204290300370000200620012903f00437000020014100360298092001420137039009411e20014190096a107620014180066a41047220014190096a10e805200141c0046a4120200128029009220920012802980910b2010240200128029409450d002009102e0b200742003703002008420037030020034200370300200142003703c004200141e0046a41d9fcc600410610810220032002290300370300200120012903e0043703c004200141f0046a41c0f7cb004118108102200a2004290300370000200620012903f0043700000240200141c0046a108603220341ff01714102460d002003410171450d004200210c20014190056a210f0c040b200141c0046a41186a4200370300200141c0046a41106a4200370300200141c0046a41086a22034200370300200142003703c004200141e0046a41d9fcc60041061081022003200141e0046a41086a290300370300200120012903e0043703c004200141f0046a41c0f7cb004118108102200641086a200141f0046a41086a290300370000200620012903f004370000200141013a009005200141c0046a412020014190056a410110b201200141e0046a41d9fcc6004106108102200141f0046a41dcf1cb0041071081024120102c2203450d05200142203702bc05200120033602b805200141b8056a200141e0046a41101074200141b8056a200141f0046a4110107420012802c0052208417f4c0d0620012802b805210a0240024020080d00410121030c010b2008102c2203450d060b20014180066a2003200a200810e9082008108b052008ad220c422086200c84210c2001280280062207450d02200141b8066a210e200141a8066a211020014198066a2111034020032102200c211220072103024002402008200129028406220c422088a722074b0d00200a2003200810ec08450d010b200ca7450d032003102e0c030b02402012a7450d002002102e0b200120073602c404200120033602c004200141b0086a2003200710ed020240024020012802b0082202450d0020012802b408210402400240024020012802b80822094104490d002009417c71220b4104460d00200b4108460d00200941746a4110490d00200941646a4110490d00200941546a4110490d00200941446a410f4b0d010b200141003602980920014201370390092001410a360294052001200141c0046a36029005200120014190096a3602a00520014101360294062001420137028406200141909dc50036028006200120014190056a36029006200141a0056a419cebc00020014180066a103d1a20012802900920012802980910ef020240200128029409450d00200128029009102e0b410021090c010b2002280000210f2002280004211320022800082105200241146a2900002114200229000c2115200241c4006a2900002116200241346a2900002117200241246a2900002118200229003c2119200229002c211a200229001c211b410121090b02402004450d002002102e0b2009450d00200820074b0d01200141d4e2cc00200320086a41106a200720086b22024110491b3602900920014100200241706a2204200420024b1b3602940920014180066a20014190096a10930120012d0080064101460d00200e20163703002010201737030020112018370300200120193703b0062001201a3703a0062001201b370390062001201537038006200141003602cc06200120053602c806200120133602c4062001200f3602c00620012014370388062003200720014180066a10c9050b20014180066a20032007108b0520012802800622070d010c040b0b2008200741c4dbc8001056000b2003200841b8b2c0001056000b2012210c200221030b0240200ca7450d002003102e0b024020012802bc05450d00200a102e0b20014180066a10a903200129038806210c20014190056a210f0b200141b0086a41d9fcc600410610810220014190096a419f8dcc00411410810220014180066a41086a200141b0086a41086a220329020037030020014180066a41106a20012903900937030020014180066a41186a20014190096a41086a290300370300200120012902b0083703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00900520014190096a200f41011074200141003a00900520014190096a200f4101107420014180066a4120200128029009220720012802980910b2010240200128029409450d002007102e0b200141c0046a41186a4200370300200141c0046a41106a4200370300200141c0046a41086a22074200370300200142003703c004200141b8056a41a8f8c60041041081022007200141b8056a41086a290000370300200120012900b8053703c004200141b0086a41d48bc500410f108102200641086a2003290000370000200620012900b008370000200141203602a4052001200141c0046a3602a005200141b0086a200141c0046a412010ed0241042103024020012802b0082207450d0020012802b40821082001200141b8086a28020022033602bc05200120073602b805200141003a009005024002402003450d0020012003417f6a3602bc052001200741016a3602b8054103210302400240024020072d00000e020100030b20014180066a200141b8056a10950220012d00900622034103460d01200141e0046a41086a20014180066a41086a290300221237030020014190096a41086a22022012370300200120012800910636028005200120014194066a28000036008305200120012903800637039009200120012802800536029005200120012800830536009305200141f0046a41086a200229030037030020012001290390093703f00420012001280093053600b30520012001280290053602b0050b20014180066a41086a200141f0046a41086a290300370300200120012800b30536008b05200120012802b00536028805200120012903f004370380062001200128028805360290052001200128008b05360093050c020b200120012903e004370390090b200141003602980920014201370390092001410a360294052001200141a0056a36029005200120014190096a3602f00420014194066a41013602002001420137028406200141909dc50036028006200120014190056a36029006200141f0046a419cebc00020014180066a103d1a20012802900920012802980910ef020240200128029409450d00200128029009102e0b410421030b2008450d002007102e0b200141e0046a41086a220820014180066a41086a29030037030020012001290380063703e00420012001280290053602800520012001280093053600830541032107024020034104460d0020014190096a41086a2008290300370300200120012903e0043703900920012001280280053602b00820012001280083053600b308200321070b42c0b6fc9a012117024020074103460d0020014194066a20012800b30836000020014180066a41086a20014190096a41086a290300370300200120012903900937038006200120073a009006200120012802b0083600910620014180066a10ed0442c0f8d3ca0121170b200141d8046a22074200370300200141c0046a41106a22084200370300200141c0046a41086a22034200370300200142003703c004200141e0046a41a8f8c60041041081022003200141e0046a41086a2202290300370300200120012903e0043703c004200141f0046a41d48bc500410f108102200641086a220a200141f0046a41086a2204290300370000200620012903f004370000200141c0046a412010ff01200742003703002008420037030020034200370300200142003703c004200141e0046a41a8f8c600410410810220032002290300370300200120012903e0043703c004200141f0046a418c8bc500410b108102200a2004290300370000200620012903f004370000200141c0046a42014204410210c205200742003703002008420037030020034200370300200142003703c004200141e0046a41a8f8c600410410810220032002290300370300200120012903e0043703c004200141f0046a41d48bc500410f108102200a2004290300370000200620012903f004370000200141c0046a42014204410210c205200141e0046a418ef9c0004110108102200141f0046a41fbafc90041061081024120102c2203450d012001422037029409200120033602900920014190096a200141e0046a4110107420014190096a200141f0046a411010742001280298092208417f4c0d0220012802900921054101210202402008450d002008102c2202450d020b427f200c4280c2d72f7c22122012200c541b211920022005200810e9081a20014198066a21132008210a20082107034020014180066a20022007108b05024002400240024002402001280280062203450d002001280284062104024020012802880622072008490d0020052003200810ec08450d020b2004450d002003102e0b0240200a450d002002102e0b0240200128029409450d002005102e0b20014180066a10df04200129038806210c200141c0046a41a5fec600411a108102200141b8056a419f8dcc00411410810220014180066a41086a2207200141c0046a41086a220829000037030020014180066a41106a220220012900b80537030020014180066a41186a220a200141b8056a41086a2204290000370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220920012802980910b201200141b0086a41106a21030240200128029409450d002009102e0b200141c0046a41f4d8c7004104108102200141b8056a419f8dcc004114108102200320012900b805370000200341086a20042900003700002007200829000037030020022003290300370300200a200141b0086a41186a290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220720012802980910b2010240200128029409450d002007102e0b200141c0046a419dfec6004108108102200141b0086a419f8dcc00411410810220014190096a41086a2207200141c0046a41086a29000037030020014190096a41106a220820012900b008370300200141a8096a2202200141b0086a41086a220a290000370300200120012900c0043703900920014100360288062001420137038006200141033b01b00820014180066a200141b0086a41021074200141003a00b00820014180066a200141b0086a41011074200141003a00b00820014180066a200141b0086a4101107420014190096a4120200128028006220420012802880610b2010240200128028406450d002004102e0b200141b8056a4195fec6004108108102200141b0086a419f8dcc0041141081022007200141b8056a41086a290000370300200820012900b0083703002002200a290000370300200120012900b8053703900920014100360288062001420137038006200141033b01b00820014180066a200141b0086a41021074200141003a00b00820014180066a200141b0086a41011074200141003a00b00820014180066a200141b0086a4101107420014190096a4120200128028006220720012802880610b2010240200128028406450d002007102e0b200141e0046a4190fec6004105108102200141f0046a419f8dcc004114108102200141c0046a41086a2207200141e0046a41086a290300370300200141c0046a41106a20012903f004370300200141c0046a41186a200141f0046a41086a290300370300200120012903e0043703c00420014100360288062001420137038006200141033b01900920014180066a20014190096a41021074200141003a00900920014180066a20014190096a41011074200141003a00900920014180066a20014190096a41011074200141c0046a4120200128028006220820012802880610b2010240200128028406450d002008102e0b200141c0046a4188fec6004108108102200141b8056a419f8dcc004114108102200141b0086a41086a2007290000370300200141b0086a41106a20012900b805370300200141b0086a41186a200141b8056a41086a290000370300200120012900c0043703b00820014100360288062001420137038006200141033b01900920014180066a20014190096a41021074200141003a00900920014180066a20014190096a41011074200141003a00900920014180066a20014190096a41011074200141b0086a4120200128028006220720012802880610b2010240200128028406450d002007102e0b200141c0046a4181fec6004107108102200141b0086a419f8dcc00411410810220014180066a41086a2207200141c0046a41086a29000037030020014180066a41106a220820012900b00837030020014180066a41186a2202200141b0086a41086a220a290000370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00900520014190096a200f41011074200141003a00900520014190096a200f4101107420014180066a4120200128029009220420012802980910b2010240200128029409450d002004102e0b200141b8056a41bcdbc8004107108102200141b0086a419f8dcc004114108102200620012900b008370000200641086a200a2900003700002007200141b8056a41086a2900003703002008200141c0046a41106a2903003703002002200141c0046a41186a290300370300200120012900b8053703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220720012802980910b2010240200128029409450d002007102e0b20014180066a41106a2108200141e0046a41b6d1cc004106108102200141f0046a419f8dcc004114108102200320012903f004370000200341086a200141f0046a41086a29030037000020014180066a41086a200141e0046a41086a29030037030020014180066a41106a2207200141b0086a41106a29030037030020014180066a41186a220a200141b0086a41186a290300370300200120012903e0043703800620014100360298092001420137039009200141003b01b00820014190096a200141b0086a41021074200141083a00b00820014190096a200141b0086a410110742001411e3a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220220012802980910b2010240200128029409450d002002102e0b20014180066a41106a2102200141c0046a41bad7c7004108108102200141b8056a419f8dcc004114108102200820012900b805370000200841086a200141b8056a41086a29000037000020014190096a41086a200141c0046a41086a29000037030020014190096a41106a200729030037030020014190096a41186a200a290300370300200120012900c0043703900920014100360288062001420137038006200141033b01b00820014180066a200141b0086a41021074200141003a00b00820014180066a200141b0086a41011074200141003a00b00820014180066a200141b0086a4101107420014190096a4120200128028006220720012802880610b2010240200128028406450d002007102e0b20014190096a41106a2107200141b8056a41eefdc6004113108102200141b0086a419f8dcc004114108102200220012900b008370000200241086a200141b0086a41086a2202290000370000200141c0046a41086a200141b8056a41086a290000370300200141c0046a41106a20014180066a41106a290300370300200141c0046a41186a20014180066a41186a290300370300200120012900b8053703c00420014100360288062001420137038006200141033b01900920014180066a20014190096a41021074200141003a00900520014180066a200f41011074200141003a00900520014180066a200f41011074200141c0046a4120200128028006220a20012802880610b2010240200128028406450d00200a102e0b200141e0046a41ddfdc6004111108102200141f0046a419f8dcc004114108102200720012903f004370000200741086a200141f0046a41086a2903003700002002200141e0046a41086a290300370300200141b0086a41106a20014190096a41106a290300370300200141b0086a41186a20014190096a41186a290300370300200120012903e0043703b00820014100360288062001420137038006200141033b01900920014180066a20014190096a41021074200141003a00900920014180066a20014190096a41011074200141003a00900920014180066a20014190096a41011074200141b0086a4120200128028006220220012802880610b2010240200128028406450d002002102e0b200141c0046a41cbfdc6004112108102200141b8056a419f8dcc004114108102200320012900b805370000200341086a2202200141b8056a41086a220a29000037000020014180066a41086a2204200141c0046a41086a220929000037030020014180066a41106a220b200141b0086a41106a220529030037030020014180066a41186a2213200141b0086a41186a220e290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009221020012802980910b2010240200128029409450d002010102e0b200141c0046a41c4fdc6004107108102200141b8056a419f8dcc004114108102200320012900b8053700002002200a29000037000020042009290000370300200b20052903003703002013200e290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220220012802980910b2010240200128029409450d002002102e0b200141e0046a41de80ca004109108102200141f0046a419f8dcc004114108102200820012903f004370000200841086a200141f0046a41086a29030037000020014190096a41086a200141e0046a41086a29030037030020014190096a41106a220220014180066a41106a29030037030020014190096a41186a220a20014180066a41186a290300370300200120012903e0043703900920014100360288062001420137038006200141033b01b00820014180066a200141b0086a41021074200141003a00b00820014180066a200141b0086a41011074200141003a00b00820014180066a200141b0086a4101107420014190096a4120200128028006220420012802880610b2010240200128028406450d002004102e0b200141c0046a41b2fdc6004112108102200141b8056a419f8dcc004114108102200720012900b805370000200741086a200141b8056a41086a290000370000200141b0086a41086a200141c0046a41086a290000370300200141b0086a41106a2002290300370300200141b0086a41186a200a290300370300200120012900c0043703b00820014100360288062001420137038006200141033b01900920014180066a20014190096a41021074200141003a00900920014180066a20014190096a41011074200141003a00900920014180066a20014190096a41011074200141b0086a4120200128028006220220012802880610b2010240200128028406450d002002102e0b200141e0046a41bed8c8004108108102200141f0046a419f8dcc004114108102200320012903f004370000200341086a2202200141f0046a41086a220a29030037000020014180066a41086a2204200141e0046a41086a220929030037030020014180066a41106a220b200141b0086a41106a220529030037030020014180066a41186a2213200141b0086a41186a220e290300370300200120012903e0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009221020012802980910b2010240200128029409450d002010102e0b200141e0046a41abfdc6004107108102200141f0046a419f8dcc004114108102200320012903f0043700002002200a29030037000020042009290300370300200b20052903003703002013200e290300370300200120012903e0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220220012802980910b2010240200128029409450d002002102e0b200141c0046a41a081ca004107108102200141b8056a419f8dcc004114108102200820012900b805370000200841086a200141b8056a41086a29000037000020014190096a41086a200141c0046a41086a29000037030020014190096a41106a220820014180066a41106a29030037030020014190096a41186a220220014180066a41186a290300370300200120012900c0043703900920014100360288062001420137038006200141033b01b00820014180066a200141b0086a41021074200141003a00b00820014180066a200141b0086a41011074200141003a00b00820014180066a200141b0086a4101107420014190096a4120200128028006220a20012802880610b2010240200128028406450d00200a102e0b200141e0046a41a1fdc600410a108102200141f0046a419f8dcc004114108102200720012903f004370000200741086a200141f0046a41086a290300370000200141b0086a41086a200141e0046a41086a290300370300200141b0086a41106a2008290300370300200141b0086a41186a2002290300370300200120012903e0043703b00820014100360288062001420137038006200141033b01900920014180066a20014190096a41021074200141003a00900920014180066a20014190096a41011074200141003a00900920014180066a20014190096a41011074200141b0086a4120200128028006220820012802880610b2010240200128028406450d002008102e0b200141c0046a4199fdc6004108108102200141b8056a419f8dcc004114108102200320012900b805370000200341086a200141b8056a41086a29000037000020014180066a41086a200141c0046a41086a29000037030020014180066a41106a200141b0086a41106a29030037030020014180066a41186a200141b0086a41186a290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220820012802980910b2010240200128029409450d002008102e0b20014190096a41186a420037030020014190096a41106a420037030020014190096a41086a220842003703002001420037039009200141e0046a4192fdc60041071081022008200141e0046a41086a290300370300200120012903e00437039009200141f0046a419cfdca00410e108102200741086a200141f0046a41086a290300370000200720012903f004370000200141203602c404200120014190096a3602c004200141b8056a20014190096a412010ed0220012802b80522080d01410621070c020b0240200a450d002002102e0b20014180066a2003200710e90220012802a0062209450d022013290300210c20014180066a41086a29030021152001290390062112200129038006211420012903a806211b20012802a406210b20014100200720086b220241786a220a200a20024b1b3602b408200141d4e2cc00200320086a41086a20024108491b3602b00820014180066a200141b0086a109301024020012d0080064101470d00200321022004210a200b41ffffff3f71450d042009102e0c030b420021184280e8eda1ba01211a024020124280cab5ee0185200c84500d0020124280e8eda1ba0185200c84500d002012211a200c21180b201320183703002001201a3703900620012014370380062001201b3703a806200120093602a00620012015370388062001200b3602a4062003200720014180066a10b905200b41ffffff3f71450d022009102e0c020b200141c0056a280200210220012802bc05210a41002107200141003a00a005024002402002450d000240024002400240024020082d00000e06060001020304050b410121070c050b410221070c040b410321070c030b410421070c020b410521070c010b200141003602b808200142013703b0082001410a360294052001200141c0046a360290052001200141b0086a3602a00520014194066a41013602002001420137028406200141909dc50036028006200120014190056a36029006200141a0056a419cebc00020014180066a103d1a20012802b00820012802b80810ef02024020012802b408450d0020012802b008102e0b410621070b200a450d002008102e0b42c0acb7a20b2112024020074104470d00200141c8086a22084200370300200141c0086a22024200370300200141b0086a41086a22074200370300200142003703b008200141c0046a4192fdc60041071081022007200141c0046a41086a220a290000370300200120012900c0043703b008200141b8056a41dd8cc5004112108102200341086a2204200141b8056a41086a2209290000370000200320012900b805370000200141b0086a412010ff01200842003703002002420037030020074200370300200142003703b008200141c0046a4192fdc60041071081022007200a290000370300200120012900c0043703b008200141b8056a419c8dc500411210810220042009290000370000200320012900b805370000200141b0086a412010ff01200842003703002002420037030020074200370300200142003703b008200141c0046a4192fdc60041071081022007200a290000370300200120012900c0043703b008200141b8056a41fa8cc500410d10810220042009290000370000200320012900b805370000200141b0086a412010ff01200842003703002002420037030020074200370300200142003703b008200141c0046a4192fdc60041071081022007200a290000370300200120012900c0043703b008200141b8056a41ef8cc500410b10810220042009290000370000200320012900b805370000200141b0086a412010ff01200842003703002002420037030020074200370300200142003703b008200141c0046a4192fdc60041071081022007200a290000370300200120012900c0043703b008200141b8056a41cc8cc500411110810220042009290000370000200320012900b805370000200141b0086a412010ff01200842003703002002420037030020074200370300200142003703b008200141c0046a4192fdc60041071081022007200a290000370300200120012900c0043703b008200141b8056a41878dc500411510810220042009290000370000200320012900b805370000200141b0086a412010ff01200842003703002002420037030020074200370300200142003703b008200141c0046a4192fdc60041071081022007200a290000370300200120012900c0043703b008200141b8056a419cfdca00410e10810220042009290000370000200320012900b80537000020014100360288062001420137038006200141053a00a00520014180066a200141a0056a41011074200141b0086a4120200128028006220720012802880610b2010240200128028406450d002007102e0b42808aa6e40d21120b200141c0046a4192fdc6004107108102200141b8056a419f8dcc004114108102200320012900b805370000200341086a2207200141b8056a41086a220829000037000020014180066a41086a2202200141c0046a41086a220a29000037030020014180066a41106a2204200141b0086a41106a220929030037030020014180066a41186a220b200141b0086a41186a2205290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00900520014190096a200f41011074200141003a00900520014190096a200f4101107420014180066a4120200128029009221320012802980910b2010240200128029409450d002013102e0b200141c0046a4190dac800410a108102200141b8056a419f8dcc004114108102200320012900b805370000200720082900003700002002200a29000037030020042009290300370300200b2005290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220720012802980910b2010240200128029409450d002007102e0b200141c0046a4180fdc6004112108102200141b8056a419f8dcc004114108102200320012900b805370000200341086a2207200141b8056a41086a220829000037000020014180066a41086a2202200141c0046a41086a220a29000037030020014180066a41106a2204200141b0086a41106a220929030037030020014180066a41186a220b200141b0086a41186a2205290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009221320012802980910b2010240200128029409450d002013102e0b2017200c7c210c200141c0046a41f8fcc6004108108102200141b8056a419f8dcc004114108102200320012900b805370000200720082900003700002002200a29000037030020042009290300370300200b2005290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220720012802980910b2010240200128029409450d002007102e0b200c2017542107200141c0046a41f1fcc6004107108102200141b8056a419f8dcc004114108102200320012900b805370000200341086a2208200141b8056a41086a220229000037000020014180066a41086a220a200141c0046a41086a220429000037030020014180066a41106a2209200141b0086a41106a220b29030037030020014180066a41186a2205200141b0086a41186a2213290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220f20012802980910b2010240200128029409450d00200f102e0b427f200c20071b210c200141c0046a41e8fcc6004109108102200141b8056a419f8dcc004114108102200320012900b80537000020082002290000370000200a20042900003703002009200b29030037030020052013290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220720012802980910b2010240200128029409450d002007102e0b2019200c7c210c200141c0046a41a8f8c6004104108102200141b8056a419f8dcc004114108102200320012900b805370000200341086a2207200141b8056a41086a220829000037000020014180066a41086a2202200141c0046a41086a220a29000037030020014180066a41106a2204200141b0086a41106a220929030037030020014180066a41186a220b200141b0086a41186a2205290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009221320012802980910b2010240200128029409450d002013102e0b200c2019542113200141c0046a41dffcc6004109108102200141b8056a419f8dcc004114108102200320012900b805370000200720082900003700002002200a29000037030020042009290300370300200b2005290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00b00820014190096a200141b0086a41011074200141003a00b00820014190096a200141b0086a4101107420014180066a4120200128029009220720012802980910b2010240200128029409450d002007102e0b427f200c20131b210c200141c0046a41f4c2cc004118108102200141b8056a419f8dcc004114108102200320012900b805370000200341086a200141b8056a41086a29000037000020014180066a41086a200141c0046a41086a29000037030020014180066a41106a200141b0086a41106a29030037030020014180066a41186a200141b0086a41186a290300370300200120012900c0043703800620014100360298092001420137039009200141033b01b00820014190096a200141b0086a41021074200141003a00a00520014190096a200141a0056a41011074200141003a00a00520014190096a200141a0056a4101107420014180066a4120200128029009220320012802980910b2010240200128029409450d002003102e0b427f200c20127c22122012200c541b210d20014190096a210e0c020b200321022004210a0c000b0b4102200110eb04200141003602800641fcc6cb00411020014180066a410410b201200141c0046a41186a22074200370300200141c0046a41106a22084200370300200141c0046a41086a22034200370300200142003703c004200141e0046a41d9fcc60041061081022003200141e0046a41086a2202290300370300200120012903e0043703c004200141f0046a4180f4cb004106108102200641086a220a200141f0046a41086a2209290300370000200620012903f00437000020012000280200220436028006200141c0046a412020014180066a410410b20120014190046a10ee04200041106a220b10f0042004417f6a200b10a407200742003703002008420037030020034200370300200142003703c004200141e0046a41d9fcc600410610810220032002290300370300200120012903e0043703c004200141f0046a41d4f2cb00410b108102200a2009290300370000200620012903f004370000200141c0046a412010ff01200742003703002008420037030020034200370300200142003703c004200141e0046a41d9fcc600410610810220032002290300370300200120012903e0043703c004200141f0046a41e0f4cb004106108102200a2009290300370000200620012903f004370000200141c0046a412010ff01200742003703002008420037030020034200370300200142003703c004200141e0046a41d9fcc600410610810220032002290300370300200120012903e0043703c004200141f0046a41a4f5cb00410a108102200a2009290300370000200620012903f004370000200141c0046a412010ff01200742003703002008420037030020034200370300200142003703c004200141e0046a41d9fcc600410610810220032002290300370300200120012903e0043703c004200141f0046a41c0f5cb00410b108102200a2009290300370000200620012903f004370000200141c0046a412010890320014190096a41186a220b420037030020014190096a41106a2200420037030020014190096a41086a220542003703002001420037039009200141c0046a4192fdc600410710810220052003290000370300200120012900c00437039009200141b0086a4194adc600410a108102200b200141b0086a41086a2213290000370300200020012900b008370300200141f8036a200e4120108e0220012802fc03210f20012802f8032110200b420037030020004200370300200542003703002001420037039009200141c0046a4192fdc600410710810220052003290000370300200120012900c00437039009200141b0086a4198b7c6004115108102200b2013290000370300200020012900b008370300200141f0036a200e4120108e0220012802f403210b20012802f003210520014180066a200f410020101b109503200141e8036a2001280280062210200128028806108e0220012802ec03211320012802e803210f0240200128028406450d002010102e0b200742003703002008420037030020034200370300200142003703c004200141e0046a41a8f8c600410410810220032002290300370300200120012903e0043703c004200141f0046a41fa8bc500410a108102200a2009290300370000200620012903f004370000200141d8036a200141c0046a108503200141c8036a20012903e003420020012802d8031b420042e012420010e808024002400240024020012903d00350450d0020012903c803210c20014198066a2207420037030020014190066a2209420037030020014180066a41086a220342003703002001420037038006200141b8056a41a8f8c60041041081022003200141b8056a41086a2208290000370300200120012900b80537038006200141b0086a41e38bc500410b1081022007200141b0086a41086a2202290000370300200920012900b008370300200141b8036a20014180066a108503200c20012903c003420020012802b8031b7c2212200c540d012007420037030020094200370300200342003703002001420037038006200141b8056a41a8f8c600410410810220032008290000370300200120012900b80537038006200141b0086a41c98bc500410b108102200941086a2002290000370000200920012900b008370000200141a8036a20014180066a1085034100417f2004417f41004100417f2004427f201242e0127c220c200c2012541b221220012903b003420020012802a8031b7d220ca7417f200c428080808010541b6a220320032004491b200c2012561b220320046b2207200720034b1b22034100410041064100200b410020051b220720134100200f1b6b2208200820074b1b6b2207200741064b1b2207417f6a2208200820074b1b41e0126c6a220720072003491b6a220320032004491b220320046b2207200720034b1b2108200141a0036a10f40442a082c0dd00211c0240024020012d00a0032202417e6a22074102200741ff01714102491b41ff01710e020001050b200320044d0d04200841d8044b0d040c030b200320044d0d03200841d904490d020c030b41e8b2c40041fa0041e4b3c400105d000b41e8b2c40041fa0041f4b3c400105d000b4290cad9c400210c42002112024002400240200241ff01714103460d0020014180066a410141ffff0310ef052001280280064101460d0320014198066a2208290300210c20014190066a220328020021072001418c066a2213280200210a20014180066a41086a2202280200210b20014180066a4101417f10e9052001280280064101460d022008290300211220032802002105201328020021132002280200210f2008420037030020034200370300200242003703002001420037038006200141b0086a4192fdc60041071081022002200141b0086a41086a2210290000370300200120012900b00837038006200141b0086a41b4aac600410e10810220082010290000370300200320012900b00837030020014198036a20014180066a4120108e02200741ffff034b0d01200128029c0341002001280298031b211d200120073602bc05200120053602b80520014198066a2210420037030020014180066a41106a2211420037030020014180066a41086a220842003703002001420037038006200141b0086a41a5fec600411a1081022008200141b0086a41086a2202290000370300200120012900b00837038006200141b0086a41ccc5c8004110108102200341086a221e2002290000370000200320012900b00837000020014100360298092001420137039009200141b8056a20014190096a109102200141b8056a41047220014190096a10910220014180066a4120200128029009221f20012802980910b2010240200128029409450d00201f102e0b2010420037030020114200370300200842003703002001420037038006200141b0086a41a5fec600411a10810220082002290000370300200120012900b00837038006200141b0086a4194c5c800410e108102201e2002290000370000200320012900b0083700002001201d3602900920014180066a412020014190096a410410b201200141a4096a200736020020014190096a41106a200a3602002001200b36029c09200120053602980920012013360294092001200f360290092010420037030020114200370300200842003703002001420037038006200141b0086a41a5fec600411a10810220082002290000370300200120012900b00837038006200141b0086a41c8c4c8004108108102201e2002290000370000200320012900b008370000200141003602b808200142013703b00820014190096a200141b0086a10b6012007200141b0086a107602402007450d0020074105742107200b21030340200141b0086a200341201074200341206a2103200741606a22070d000b0b20014180066a412020012802b008220320012802b80810b201024020012802b408450d002003102e0b02402005450d00200541386c2107200f412c6a210303400240200328020041ffffff3f71450d002003417c6a280200102e0b200341386a2103200741486a22070d000b0b02402013450d00201341386c450d00200f102e0b0240200a41ffffff3f71450d00200b102e0b427f427f200c20127c22122012200c541b220c42c0b6fc9a017c22122012200c541b21124290bad8ce02210c0b4101200410ec04200141d8046a4200370300200141d0046a4200370300200141c0046a41086a22034200370300200142003703c004200141e0046a41a5fec600411a1081022003200141e0046a41086a290300370300200120012903e0043703c004200141f0046a4180c3c8004105108102200641086a200141f0046a41086a290300370000200620012903f00437000020014190036a200141c0046a4120108e0220014180066a41086a20012802940341012001280290031b360200200141053a008406200141173a008006427f200c427f20124280c2d72f7c221520152012541b7c22122012200c541b211c20014180066a10fe010c020b02402005450d00200541386c2107200f412c6a210303400240200328020041ffffff3f71450d002003417c6a280200102e0b200341386a2103200741486a22070d000b0b2013450d00201341386c450d00200f102e0b200a41ffffff3f71450d00200b102e0b42002120420021210240200441808c15700d00200142f0f2bda1a7ee9cb9f9003703800620014190096a20014180066a10cd02200141b0086a20014190096a10c80220014180066a20012802b008220a20012802b80810c9024100210341002107410021084100210202402001290380064201520d0020014190066a28020021072001280288062102200128028c06210820012802940621030b024020012802b408450d00200a102e0b200142002003ad4220862007ad8422122008ad4220862002ad84220c4280c8afa02554ad7d2215200c4280b8d0df5a7c2214200c562015201256200c42ffc7afa025561b22031b220c3703980520014200201420031b22123703900520014180066a41186a200c37030020014180066a41106a201237030020014180066a41086a221341013a00002001410e3a00800620014180066a10fe01200142f0f2bda1a7ee9cb9f90037038006200141b8056a20014180066a10cd0241002110200141003a008005200142003703a805200142003703a00520014190096a41186a2222420037030020014190096a41106a2223420037030020014190096a41086a220a42003703002001420037039009200141c0046a41bad7c7004108108102200a200141c0046a41086a2224290000370300200120012900c00437039009200141b0086a4194ccc2004109108102200041086a2225200141b0086a41086a2226290000370000200020012900b00837000020014180066a200e109b03200129028406220c4200200128028006221d1b221b42ffffffff0f832118200c422088211a201d4104201d1b21110240201b422088a7220b450d0020014180066a41096a2127200141d0096a211f200141b0096a21284100211e200141b8066a21294100211041002107024003400240024002402010450d00201120074102746a210320112007201e6a4102746a21080340200141c0046a2003280200220510d60320014180066a20012802c004220f20012802c80410b805200129038006210c20014190096a201341e00010e9081a410021020240200c4201520d00200141b0086a20014190096a41e00010e9081a410121020b024020012802c404450d00200f102e0b2002450d0320014190096a200141b0086a41e00010e9081a200129039005221520012903900922145420014190056a41086a290300220c200a290300221254200c2012511b450d02200141013a00800520082003280200360200200341046a2103200841046a2108200741016a2207200b490d000c050b0b201120074102746a21030340200141c0046a2003280200220510d60320014180066a20012802c004220220012802c80410b805200129038006210c20014190096a201341e00010e9081a410021080240200c4201520d00200141b0086a20014190096a41e00010e9081a410121080b024020012802c404450d002002102e0b2008450d0220014190096a200141b0086a41e00010e9081a200129039005221520012903900922145a20014190056a41086a290300220c200a29030022125a200c2012511b0d01200341046a2103200141013a008005200741016a2207200b490d000b410021100c040b2001201520147d370390052001200c20127d2015201454ad7d3703980520014180066a200510d603200128028006220320012802880610ff010240200128028406450d002003102e0b20014180036a202820012903a009202229030010fb01200141f0026a201f200129039009200a29030010fd01200141a0056a41086a2203427f2003290300220c200141f0026a41086a2903007c20012903a005221220012903f0027c22152012542203ad7c221220032012200c542012200c511b22031b3703002001427f201520031b3703a005200129039009210c2029200a2903003703002027201f290000370000202741086a201f41086a290000370000202741106a201f41106a290000370000202741186a201f41186a2900003700002001200c3703b006200141023a0088062001410e3a008006200120053602ac0620014180066a10fe010b201e417f6a211e201041016a2110200741016a2207200b490d000b0b024020100d00410021100c010b2011200720106b4102746a201120074102746a200b20076b41027410ea081a0b201a4200201d1b210c200120113602800620012018200b20106bad42208684370284062022420037030020234200370300200a42003703002001420037039009200141c0046a41bad7c7004108108102200a2024290000370300200120012900c00437039009200141b0086a4194ccc200410910810220252026290000370000200020012900b008370000200e20014180066a10c7050240201b42ffffffff0383500d002011102e0b200120014180056a3602b0082001200141a0056a3602b005200120014190056a36028805200141d8046a22004200370300200141d0046a220e4200370300200141c0046a41086a22134200370300200142003703c004200141e0046a41bad7c70041081081022013200141e0046a41086a2210290300370300200120012903e0043703c004200141f0046a41c0dac000410f108102200641086a2211200141f0046a41086a221e290300370000200620012903f004370000200c42f89fb81d7e200c42c0d1e1237e7c2115200c4280c6868f017e211420014180066a200141c0046a109b03200129028406420020012802800622031b221242ffffffff0f83211b2003410420031b2105024002402012422088220ca7220a0d004100210b0c010b4100210f4100210b410021070240034002400240200b450d00200520074102746a210320052007200f6a4102746a21080340200120032802002202360290092001200141b0086a36028c06200120014190096a360288062001200141b0056a36028406200120014188056a36028006200220014180066a10f801450d0220082003280200360200200341046a2103200841046a2108200741016a2207200a490d000c040b0b200520074102746a21030340200120032802002208360290092001200141b0086a36028c06200120014190096a360288062001200141b0056a36028406200120014188056a36028006200820014180066a10f801450d01200341046a2103200741016a2207200a490d000b4100210b0c030b200f417f6a210f200b41016a210b200741016a2207200a490d000b0b0240200b0d004100210b0c010b20052007200b6b4102746a200520074102746a200a20076b41027410ea081a0b201520147c211520012005360280062001201b200a200b6bad422086843702840620004200370300200e420037030020134200370300200142003703c004200141e0046a41bad7c700410810810220132010290300370300200120012903e0043703c004200141f0046a41c0dac000410f1081022011201e290300370000200620012903f004370000200141c0046a20014180066a10c7050240201242ffffffff0383500d002005102e0b201542f8a8df8c017c2115200c42c0b6fc1d7e200c42c0d1e1237e7c200c4280c6868f017e7c2114024020012d0080050d0042002117200141e0026a200129039005221220014190056a41086a2203290300220c42c0843d420010e608200141d0026a2012200c42c0843d420010e708200141c0026a20012903d002200141d0026a41086a2903004290ce00420010e8082003200c200c200141c0026a41086a29030020012903c002221b20012903e002221842e40080a720184290ce007e42c0843d8242a0c21e566aad7c2218201b54ad7c221b2018201256201b200c56201b200c511b22071b221b7d20122012201820071b220c54ad7d37030020012012200c7d3703900502400240200c201b844200520d00200142003703880620014200370380064200211942002112420021180c010b200141d8046a22084200370300200141c0046a41106a22024200370300200141c0046a41086a22034200370300200142003703c004200141e0046a41f8fcc60041081081022003200141e0046a41086a220a290300370300200120012903e0043703c004200141f0046a41a8aac800410d108102200641086a220b200141f0046a41086a2205290300370000200620012903f004370000200141a8026a200141c0046a412010f802200141a8026a41106a290300211220012903b002211820012802a8022107200842003703002002420037030020034200370300200142003703c004200141e0046a41f8fcc60041081081022003200a290300370300200120012903e0043703c004200141f0046a41a8aac800410d108102200b2005290300370000200620012903f004370000200142002012420020071b2212201b7d2018420020071b2218200c54ad7d221a2018200c7d2217201856201a201256201a2012511b22031b3703880620014200201720031b37038006200141c0046a412020014180066a411010b2012001201b370388062001200c370380062012201b20031b21192018200c20031b211720014180066a109803200129038806211820012903800621120b200141a8056a2203427f2003290300221a20197c20012903a005221920177c22162019542203ad7c221720032017201a542017201a511b22031b3703002001427f201620031b3703a005200120123703800620012018370388060240024020122018844200520d00200120014180066a3602900920014190096a10cc020c010b20012018370388062001201237038006200120014180066a3602900920014190096a10cc020b20014198066a201b37030020014190066a200c37030020014188066a41043a00002001410e3a00800620014180066a10fe010b201420157c211520014190096a200141b8056a20012903a005220c200141a0056a41086a2903002212410210fe060240024002402001280290090d0020014180066a41106a20014190096a41106a290300221b20127d2001290398092214200c54ad7d2012201b7d200c201454ad7d2014200c56201b201256201b2012511b22031b37030020012014200c7d200c20147d20031b3703880620012003ad3703800620014180066a41086a210720030d01200120073602b008200141b0086a10ce020c020b419dccc20041ca0010ef0220012012370388062001200c37038006200120014180066a3602900920014190096a10ce020c010b200120073602b008200141b0086a10cc020b201542c0b2cd3b7c2121200129039005210c20014198066a20014190056a41086a29030037030020014190066a200c37030020014180066a41086a41053a00002001410e3a00800620014180066a10fe010b0240200441c09306700d0010f70221200b20014180066a10a903200129038806212a42002112024020044180ce18700d0020014198066a420037030020014190066a420037030020014180066a41086a220342003703002001420037038006200141b8056a41de80ca0041091081022003200141b8056a41086a290000370300200120012900b80537038006200141b0086a41a8fbca004115108102200941086a200141b0086a41086a290000370000200920012900b0083700000240024020014180066a108603220341ff01714102460d0020014180066a412010ff012003410171450d0020014180066a2004109008024020012d0080064106460d0020014190096a20041096080c020b200141063a0090090c010b20014180066a2004109608024020012d0080064106460d0020014190096a20041090080c010b200141063a0090090b0240024020012d0090094106460d0020014180066a41131093080c010b200141063a0080060b202a21120b20014198066a2207420037030020014190066a220842003703004108210a20014180066a41086a220342003703002001420037038006200141b8056a41de80ca0041091081022003200141b8056a41086a2202290000370300200120012900b80537038006200141b0086a41f4f8ca00410d108102200941086a220b200141b0086a41086a2205290000370000200920012900b008370000200141a0026a20014180066a4120108e0220012802a402211320012802a002210f2007420037030020084200370300200342003703002001420037038006200141b8056a41de80ca00410910810220032002290000370300200120012900b80537038006200141b0086a41ccf8ca00410f108102200b2005290000370000200920012900b00837000020014198026a20014180066a4120108e02200128029c0221032001280298022107200120043602f00420012003410020071b22003602a405200120134100200f1b220e3602a0052001200141f0046a3602a80520014180066a200141a0056a200141a0056a200141a0056a41086a1088050240024020012d00e00622034103460d0020014190096a20014180066a41e00010e9081a200120014180066a41e4006a28000036008b05200120012800e1063602880541e800102c220a450d02200a20014190096a41e00010e908220720033a00602007200128028805360061200741e4006a200128008b05360000200141c0046a41086a220b200141a0056a41086a280200360200200120012903a0053703c00420014180066a200141c0046a200141c0046a200b108805024020012d00e00622094103470d0041012102410121070c020b41c9012108200141e1066a220541036a211341012102410121070240034020014190096a20014180066a41e00010e9081a200120132800003600b305200120052800003602b00520014180066a20014190096a41e00010e9081a200120012800b30536009305200120012802b00536029005024020072002470d00200241016a22032002490d062002410174220f2003200f20034b1b22034104200341044b1bad42e8007e220c422088a7454103742103200ca7210f0240024020020d00200141003602b0080c010b200141083602b8082001200a3602b0082001200241e8006c3602b4080b200141b8056a200f2003200141b0086a107d20012802c005210320012802b8054101460d0220012802bc05210a200341e8006e21020b200a20086a2203419f7f6a20014180066a41e00010e9081a2003417f6a20093a00002003200128029005360000200341036a20012800930536000020014180066a200141c0046a200141c0046a200b108805200841e8006a2108200741016a210720012d00e00622094103470d000c030b0b2003450d030c020b41002102410021070b427f41002000200e6b2203200320004b1bad220c428899d2027e200c42c0f0f50b7e7c20127c42d0f4c53f7c220c200c2012541b210c02402007450d00200a280200210920014180066a200a41046a41dc0010e9081a2001200a41e1006a280000360280052001200a41e4006a28000036008305200a41e0006a2d000022054103460d00200a200741e8006c6a210f200141c8096a211320014180066a41086a212220014180066a4101722127200141b0086a41046a210020014180066a41096a211e200141e9096a220e41036a2110200141b8096a2111200a21080340200141b0086a20014180066a41dc0010e9081a20012001280083053600b30520012001280280053602b00520014190096a200041d80010e9081a200e20012802b005360000201020012800b305360000200120053a00e809200141c0046a41186a4200370300200141c0046a41106a4200370300200141c0046a41086a22034200370300200142003703c004200141e0046a41f8fcc60041081081022003200141e0046a41086a290300370300200120012903e0043703c004200141f0046a41a8aac800410d108102200641086a200141f0046a41086a290300370000200620012903f00437000020014180026a200141c0046a412010f80220014180026a41106a29030021152001280280022107200129038802211420014190096a41186a290300211620014190096a41086a290300212b20012903a009212c200129039009212d41002103024020012903b009221a42028820112903002218423e8684220c2018420288221284500d0041002103200c201a85201220188584500d00410021030340200141f0016a201a2018200341046a41fe007110e408200341026a210320012903f001220c200141f0016a41086a290300221284500d01200c201a8520122018858450450d000b0b2015420020071b21172014420020071b2119200841e8006a210b42002114420021120340200141d0016a20124201862014423f88842212420020144201862214420184220c420010e808200141e0016a200c4200200c420010e8080240201220012903d801221584201584420052200141e0016a41086a290300221520012903d001221b201b7c7c221b201554720d0020012903e0012115200141c0016a201a2018200341ff007110e40820122012201520012903c00156201b200141c0016a41086a290300221556201b2015511b22071b21122014200c20071b21140b02402003450d0041002003417e6a2207200720034b1b21030c010b0b41002103024020194202882017423e8684220c2017420288221584500d00200c201985201520178584500d00410021030340200141b0016a20192017200341046a41fe007110e408200341026a210320012903b001220c200141b0016a41086a290300221584500d01200c20198520152017858450450d000b0b420021154200210c034020014190016a200c4201862015423f8884220c420020154201862215420184221b420010e808200141a0016a201b4200201b420010e8080240200c200129039801221884201884420052200141a0016a41086a2903002218200129039001221a201a7c7c221a201854720d0020012903a001211820014180016a20192017200341ff007110e408200c200c201820012903800156201a20014180016a41086a290300221856201a2018511b22071b210c2015201b20071b21150b02402003450d0041002003417e6a2207200720034b1b21030c010b0b02400240024002402014201284500d00024002400240024002400240200541ff01710e03000102000b0340200141306a202c20162014201210e70820152215200c221b844200510d04200141306a41086a290300210c20012903302118200141206a202d202b2015201b10e70820182001290320221754200c200141206a41086a290300221a54200c201a5122031b0d032017201854201a200c5420031b0d06200141106a202c20162014201210e6082001202d202b2015201b10e6082001290300220c200141086a290300221884500d062014212d2012212b200c2114201821122015212c201b211620012903102215200141106a41086a290300220c8450450d000c030b0b034020122112201421142015200c844200510d04200141f0006a202c20162015200c10e708200141e0006a202d202b2014201210e7082001290370221a2001290360221754200141f0006a41086a290300221b200141e0006a41086a290300221854201b20185122031b0d022017201a542018201b5420031b0d05200141d0006a202c20162015200c10e608200141c0006a202d202b2014201210e6082001290340221b200141c0006a41086a290300221884500d052015212d200c212b201b21152018210c2014212c2012211620012903502214200141d0006a41086a29030022128450450d000c020b0b202d202c58202b201658202b2016511b0d030b2001200936028c06200141043a008806200141093a00800620014180066a10fe01024020012802c40922030d0020014180066a41186a201341186a29000037030020014180066a41106a201341106a2900003703002022201341086a2900003703002001201329000037038006200141b8056a20014180066a2009109708410121030c060b200141c0046a201310980820014180066a20012802c004220520012802c804221d10ad05200320046a2107024020012d00800622034103712223410346221f0d00024020030e03000100000b02400240201f0d0020230e03010001010b20012802a806450d0020012802a406102e0b202720012f00a0053b0000202741026a200141a0056a41026a2d00003a000041002103200141003a00800620012007360284062022200141b8056a41c80010e9081a0c040b200120073602b806200141013602b40620034102470d032005201d10ff010c040b41d0d8c8004119418cd5cc001039000b41d0d8c8004119418cd5cc001039000b2001200936028c06200141053a008806200141093a00800620014180066a10fe01410021030c020b200141003602c005200142013703b80520014180066a200141b8056a10ac082005201d20012802b805221f20012802c00510b201024020012802bc05450d00201f102e0b0240200341037122034103460d0020030e03010001010b20012802a806450d0020012802a406102e0b024020012802c404450d002005102e0b2001200936029805200142e4cab5fbb6ccdcb0e30037039005410c102c2203450d032001420c3702f404200120033602f004200141f0046a20014190056a410810742001200936028006200141f0046a20014180066a41041074200141a0056a41086a20012802f804360200200120012903f0043703a005200141003b01b805201e2013290000370000201e41086a201341086a290000370000201e41106a201341106a290000370000201e41186a201341186a290000370000200141173a0088062001410d36028006200120093602ac06200141c0046a200141a0056a41002007410020014100413f200141b8056a20014180066a10c9044101210320012802c0044101470d0041ac80ca00413210ef020b2001200436028406200120033a008106200141013a008006200141b8056a200910890520012802c005210720012802b80521032001410036029809200142013703900920014180066a20014190096a10bc0520032007200128029009220920012802980910b2010240200128029409450d002009102e0b024020012802bc05450d002003102e0b0240200b200f460d002008280268210920014180066a200841ec006a41dc0010e9081a2001200841c9016a280000360280052001200841cc016a28000036008305200841c8016a2103200b210820032d000022054103470d010b0b202a210c0b02402002450d00200241e8006c450d00200a102e0b2004108303211220014180066a10a903427f427f200d427f201c427f2021427f2020427f200c20127c22122012200c541b7c220c200c2020541b7c220c200c2021541b7c220c200c201c541b7c220c200c200d541b220c2001290380067c22122012200c541b410210f1044100410010eb04200128029004210802402001280298042203450d00200341246c21072008210303400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a280200102e0c030b2003410c6a280200450d02200341086a280200102e0c020b2003410c6a280200450d01200341086a280200102e0c010b200341086a280200450d00200341046a280200102e0b200341246a21032007415c6a22070d000b0b02402001280294042203450d00200341246c450d002008102e0b200141f0096a24000f0b1036000b1038000b0400100b0ba33f04067f087e057f027e230041b0126b22022400200220013602900a200241f0006a200241900a6a109005200228027821032002280270210420022802742105200241900a6a200141c80310e9081a20024188076a200241900a6a108a0220022d008807210120022f008907210620022d008b07210720024180046a20024188076a41047241840310e9081a02400240024002400240024002400240024020014101460d0020024180016a20024180046a41046a41800310e9081a200241e8006a41fcc6cb004110108e02200228026c21012002280268210620022003360290072002200536028c072002200436028807200241900a6a2001410020061b10a30720022802900a220120022802980a20024188076a10c502024020022802940a450d002001102e0b02402005450d002004102e0b200241d80d6a20024180016a41d0006a109704200241900a6a20024180016a41800310e9081a02400240024002400240024002400240024020022903b00a22084202520d0020022903d80d20022d00e00d2003109f05220141ff01714102470d08200241a0076a4200370300200241a8076a4200370300200241b0076a4200370300200242003703800f200242003703900720024200370388072002420037039807200242003703b80720022802e00a417e6a0e1a010b0b0b0b0b0b0b02040b0b0b0b0b0b0b050b0b0b0b0b0b0b060b0b200241980e6a41186a200241900a6a41186a290300370300200241980e6a41106a200241900a6a41106a290300370300200241980e6a41086a200241900a6a41086a290300370300200220022903900a3703980e200241900a6a41c0006a2903002109200241900a6a41386a290300210a200241900a6a41c8006a280200210120022903b80a210b200241f0116a41186a22054200370300200241f0116a41106a22044200370300200241f0116a41086a22064200370300200242003703f011200241d0116a41d9fcc60041061081022006200241d0116a41086a2207290000370300200220022900d0113703f011200241d0116a4180f4cb00410610810220052007290000370300200420022900d011370300200241e0006a200241f0116a4120108e02024020084201520d00200b4200510d0a0b200241d0116a200241980e6a10c80220024188076a20022802d011220420022802d81110c90220024188076a41c8006a2802002105200229038807210820024188116a41086a20024188076a41106a29030037030020024188116a41106a20024188076a41186a29030037030020024188116a41186a20024188076a41206a29030037030020024188116a41206a20024188076a41286a29030037030020024188116a41286a220620024188076a41306a29030037030020024188116a41306a220720024188076a41386a29030037030020024188116a41386a20024188076a41c0006a290300370300200220022903900737038811200241a0106a41086a200241dc076a280200360200200220022902d4073703a0100240024020084201510d00200241a8126a4200370300200241f0116a41306a4200370300200241f0116a41286a420037030020024190126a420037030020024188126a420037030020024180126a4200370300200241f0116a41086a420037030041002105200241e0116a41086a4100360200200242003703f011200242003703e0110c010b200241f0116a41386a20024188116a41386a290300370300200241f0116a41306a2007290300370300200241f0116a41286a2006290300370300200241f0116a41206a20024188116a41206a290300370300200241f0116a41186a20024188116a41186a290300370300200241f0116a41106a20024188116a41106a290300370300200241f0116a41086a20024188116a41086a290300370300200241e0116a41086a200241a0106a41086a28020036020020022002290388113703f011200220022903a0103703e0110b024020022802d411450d002004102e0b024020052001470d0020024188076a41386a200241f0116a41386a29030037030020024188076a41306a200241f0116a41306a29030037030020024188076a41286a200241f0116a41286a29030037030020024188076a41206a200241f0116a41206a29030037030020024188076a41186a200241f0116a41186a29030037030020024188076a41106a200241f0116a41106a29030037030020024188076a41086a200241f0116a41086a290300370300200220022903f011370388072002200141016a3602c807200241d4076a200241e0116a41086a280200360200200220022903e0113702cc0720024188116a200241980e6a10c802200228028811220120022802901120024188076a10c9050240200228028c11450d002001102e0b418012210120022d00e00d22054102460d0e20022903d80d220820052003109f05220141ff01714102470d0e20024188076a20032008200a200920022d00e10d410047200510e7044200210c4200210b4200210802402002290388074201520d00427f427f20024198076a2903002208200241a8076a2903007c200229039007220b200241a0076a2903007c220d200b542201ad7c220b2001200b200854200b2008511b22011b2208200241b8076a2903007c427f200d20011b220b200241b0076a2903007c220d200b542201ad7c220b2001200b200854200b2008511b22011b2108427f200d20011b210b0b02400240024002400240200b20022903c007220d84200820024188076a41c0006a290300220e848450450d000c010b20024188076a200241980e6a427f200b200d7c220c200c200b5422012008200e7c2001ad7c220b200854200b2008511b22011b427f200b20011b41014111200a200984501b10fe062002280288074101460d0120024198076a290300210f200229039007210e4201210c0b200241a0106a41086a200241980e6a41086a2903002208370300200241a0106a41106a200241980e6a41106a290300220b370300200241a0106a41186a200241980e6a41186a290300220d37030020024188116a41c0006a200f370300200241c0116a2201200e37030020024188116a41186a200837030020024188116a41206a200b37030020024188116a41286a200d370300200220022903980e22083703a0102002200a3703881120022008370398112002200c3703b811200220093703901120024188076a200241980e6a200241900a6a41d0006a10800320022d0088074101460d01200241b4076a280200210720024188076a41286a2802002104200241ac076a2802002110200241a4076a280200210620024188076a41186a2802002111024020024188076a41206a2802002201450d002001410c6c21052011210103400240200141046a280200450d002001280200102e0b2001410c6a2101200541746a22050d000b0b02402006450d002006410c6c450d002011102e0b02402007450d002007410c6c21052010210103400240200141046a280200450d002001280200102e0b2001410c6a2101200541746a22050d000b0b2004450d022004410c6c450d022010102e0c020b200241a0106a41086a200241f0116a41086a290300370300200241a0106a41106a200241f0116a41106a290300370300200241a0106a41186a200241f0116a41186a290300370300200220022903f0113703a01041800221010c100b20022d00890722054102470d0e0b200241c0106a20024188116a41c80010e9081a200241d00f6a41046a200241c0106a41c80010e9081a200241800f6a200241d00f6a41cc0010e9081a200241b80e6a200241800f6a41046a41c80010e9081a200241f80d6a41086a200241980e6a41086a290300370300200241f80d6a41106a200241980e6a41106a290300370300200241f80d6a41186a200241980e6a41186a290300370300200220022903980e3703f80d20024187046a200241b80e6a41c80010e9081a410121010c0c0b418006418004200520014b1b21010c0d0b4100210141002105200241e80a6a2802004102470d05200241800b6a200241ec0a6a10f20622014180feff077141087621050c010b4100210141002105200241e80a6a2802004102470d04200241800b6a200241ec0a6a10ff0622014180feff077141087621050b200141ff01714102470d030c070b200241d00f6a200241e40a6a109d07024020022d00d00f4101460d00200241fc0f6a2802002107200241f80f6a2802002104200241f40f6a2802002110200241ec0f6a2802002106200241e80f6a28020021110240200241f00f6a2802002201450d002001410c6c21052011210103400240200141046a280200450d002001280200102e0b2001410c6a2101200541746a22050d000b0b02402006450d002006410c6c450d002011102e0b02402007450d002007410c6c21052010210103400240200141046a280200450d002001280200102e0b2001410c6a2101200541746a22050d000b0b2004450d072004410c6c450d072010102e0c070b20022d00d10f22014102460d0620022f01d20f21050c020b200241d00f6a200241e80a6a10df02024020022d00d00f4101460d00200241fc0f6a2802002107200241f80f6a2802002104200241f40f6a2802002110200241ec0f6a2802002106200241e80f6a28020021110240200241f00f6a2802002201450d002001410c6c21052011210103400240200141046a280200450d002001280200102e0b2001410c6a2101200541746a22050d000b0b02402006450d002006410c6c450d002011102e0b02402007450d002007410c6c21052010210103400240200141046a280200450d002001280200102e0b2001410c6a2101200541746a22050d000b0b2004450d062004410c6c450d062010102e0c060b20022d00d10f22014102460d0520022f01d20f21050c010b200241d00f6a200241e80a6a10b80641002101410021050240024020022d00d00f417d6a0e0400010106010b20022d00d20f21050b200541087441077221050b2005410874200141ff017172210120022903b807500d072002200241c0076a3602d00f200241d00f6a10cc020c070b200241800f6a41186a200241d00f6a41186a290300370300200241800f6a41106a200241d00f6a41106a2903003703000c060b2000200620074110747222013b0001200041013a0000200041036a20014110763a00002005450d072004102e0c070b41d0e7cc00411941ece7cc001039000b20024187046a20024188076a41c80010e9081a410021010b200241a0106a41186a2205200241f80d6a41186a290300370300200241a0106a41106a2204200241f80d6a41106a290300370300200241a0106a41086a2206200241f80d6a41086a290300370300200220022903f80d3703a010200241d00f6a20024187046a41c80010e9081a20024180046a200241e00a6a41b00210e9081a20024188076a41186a2207200529030037030020024188076a41106a2205200429030037030020024188076a41086a22102006290300370300200220022903a010370388074102210402402001450d00200241800f6a41186a2007290300370300200241800f6a41106a2005290300370300200241800f6a41086a201029030037030020022002290388073703800f410121040b200241c0106a41086a200241800f6a41086a290300370300200241c0106a41106a200241800f6a41106a290300370300200241c0106a41186a200241800f6a41186a290300370300200220022903800f3703c01002404110102c2205450d00200541f8f7c60036020c2005410136020820054281808080103702004110102c2201450d0020014190f8c60036020c20014101360208200142818080801037020020052005280200417f6a2206360200024020060d002005280208200528020c2802001103000240200528020c280204450d002005280208102e0b200541046a22062006280200417f6a220636020020060d002005102e0b02400240200128020820024180046a200128020c28020c1101000d00200241a8116a41023a0000200241a0116a41003a000020012001280200417f6a22053602002002420037039011420121082002420137038811024020050d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22052005280200417f6a220536020020050d002001102e0b20024180046a10dc020c010b20024188076a20024180046a41b00210e9081a2002418a0f6a200241c8106a290300370100200241920f6a200241d0106a2903003701002002419a0f6a200241d8106a290300370100200241a00f6a200241de106a290100370100200220043a00810f200241003a00800f200220022903c0103701820f200220013602a80f20024188116a20024188076a200241800f6a10dd0220022903881121080b20024198116a2903002109200241a0116a2d00002106200229039011210a20024180046a200241d00f6a41c80010e9081a200241a8116a2d0000210520022d00e00d21010240024002400240024002402008500d00200a4202510d00200141ff01714102470d004102210120054106460d00200241b0116a2802002104200241ac116a280200210120023100aa11210820023100a911210b41e09fc500410d10ef024191eacc00410d10ef020240024002400240024020050e06000102030406000b2001200410ef020c060b41f8e9cc00410d10ef020c050b41eee9cc00410a10ef020c040b200b10cc08200810cc082001450d032001200410ef020c030b41dce9cc00411210ef020c020b20022903d80d21084200210e0240200a4201520d0020082009580d004200200820097d220b200b2008561b210b200241f0116a41186a22124200370300200241f0116a41106a22044200370300200241f0116a41086a22074200370300200242003703f011200241d0116a41d9fcc60041061081022007200241d0116a41086a2210290000370300200220022900d0113703f011200241d0116a41d4f2cb00410b10810220122010290000370300200420022900d01137030020024188076a200241f0116a10f2042002200229039007420020022903880742015122111b3703800f200220024188076a41106a2213290300420020111b3703c010200220024188076a41186a2214290300420020111b3703b80e200241b80e6a211102400240024020014103710e03010002010b200241c0106a21110c010b200241800f6a21110b201142002011290300220c200b7d220b200b200c561b370300201420022903b80e370300201320022903c010370300200220022903800f370390072002420137038807201242003703002004420037030020074200370300200242003703f011200241d0116a41d9fcc600410610810220072010290000370300200220022900d0113703f011200241d0116a41d4f2cb00410b108102200441086a2010290000370000200420022900d011370000200241f0116a20024188076a41086a10f3040b20024180046a41c0006a290300210c200241b8046a290300210b20024180046a41086a290300210d20022903b0042115200229038004210f200241b80e6a41186a20024180046a41286a290300370300200241b80e6a41106a20024180046a41206a290300370300200241b80e6a41086a20024180046a41186a29030037030020022002290390043703b80e20024188076a20032008200920092008561b2008200a4201511b200f200d20022d00e10d410146200641ff017141014672200110e7044200210802402002290388074201520d00427f427f20024188076a41106a290300220820024188076a41206a2903007c200229039007220920024188076a41186a2903007c220a2009542201ad7c22092001200920085420092008511b22011b2208200241b8076a2903007c427f200a20011b220920024188076a41286a2903007c220a2009542201ad7c22092001200920085420092008511b22011b2108427f200a20011b210e0b024020154201520d0020024188076a200241b80e6a4200200b427f200e20022903c0077c22092009200e542201200820024188076a41c0006a2903007c2001ad7c220920085420092008511b22011b22087d220a200a200b56200c427f200920011b7d200b200854ad7d2208200c562008200c511b22011b4200200820011b108b06420020024188076a41086a29030020022802880741014622011b2208200b7d200b20087d2008200b56420020024188076a41106a29030020011b220a200c56200a200c511b22011b2109200a200c7d2008200b54ad7d200c200a7d200b200854ad7d20011b210820010d05200241800f6a41106a200d20082009200f562008200d562008200d511b22011b220a370300200241a00f6a22042009200f200920011b220b7d2215370300200241a80f6a2008200a7d2009200b54ad7d220e370300200242003703980f200242023703800f2002200b3703880f200241c0006a200b420042d000420010e808200241306a200a420042d000420010e808200241d0006a2002290340200241c0006a41086a290300220820022903307c220c42e400420010e708200242dc9e8aae8f85d7c702200241d0006a41086a2903002002290338420052200c2008547222011b2208200a42c2eba3e1f5d1f0fa28200229035020011b220d200b542008200a542008200a511b22011b220c370390072002200d200b20011b220837038807427f200a200c7d200b200854ad7d220a200e7c200920087d220d200b20087d2216542201ad7c220b2001200b200a54200b200a511b22011b2109427f200d20011b210b024002402008200c844200520d00200220024188076a3602c010200241c0106a10cc020c010b200242f0f2bda1a7ee9cb9f9003703c01020024188076a200241c0106a10cd02200241206a20024188076a2008200c10fd01200241d0106a200241206a41086a290300220f200c7d2002290320220d200854ad7d200c200f7d2008200d54ad7d200d200856200f200c56200f200c511b22011b3703002002200d20087d2008200d7d20011b3703c81020022001ad3703c010200241c0106a41086a21030240024020010d00200220033602f011200241f0116a10cc020c010b200220033602f011200241f0116a10ce020b200241a0076a200c37030020024198076a200837030020024190076a41063a00002002410e3a00880720024188076a10fe010b2002200b370388072002200937039007024002402016201584200a200e84844200520d00200220024188076a3602c010200241c0106a10cc020c010b200241c0106a10e20420024188076a10e204200241106a20024188076a200b200910fd0120024180126a200241106a41086a290300220a20097d20022903102208200b54ad7d2009200a7d200b200854ad7d2008200b56200a200956200a2009511b22011b37030020022008200b7d200b20087d20011b3703f81120022001ad3703f011200241f0116a41086a21030240024020010d00200220033602980e200241980e6a10cc020c010b200220033602980e200241980e6a10ce020b200241c0076a2009370300200241b8076a200b37030020024188076a41086a41043a000020024191076a20022903c01037000020024199076a200241c0106a41086a290300370000200241a1076a200241d0106a290300370000200241a9076a200241d8106a290300370000200241033a00880720024188076a10fe010b0240024020022903800f22084202560d002008a70e03010001010b2002200241800f6a41086a3602880720024188076a10cc020b024020022903980f22084202560d002008a70e03010001010b200220043602880720024188076a10cc020b200241ec0d6a41026a2201200241a9116a220441026a2d00003a0000200220042f000022043b01f00d200220043b01ec0d20022902ac11210b20022903d80d2208200229039811220920092008561b2008200229039011220d4201511b210820022903e00d2109200229038811220a4201510d022009210c410021040c030b4185eacc00410c10ef020b418010210120022903b004500d072002200241b8046a3602880720024188076a10cc020c070b200241d00f6a41026a20012d00003a0000200220022f01ec0d3b01d00f410121042008210c200b21080b200241900a6a41086a20043a0000200241990a6a20022f0080043b00002002419c0a6a20053a00002002419d0a6a20022f01d00f3b0000200241900a6a41206a2009370300200241900a6a41186a200c370300200241900a6a41106a2008370300200241b80a6a2002290388073703002002419b0a6a20024180046a41026a2d00003a00002002419f0a6a200241d00f6a41026a2d00003a0000200241c00a6a20024188076a41086a290300370300200241c80a6a20024188076a41106a290300370300200241d00a6a20024188076a41186a290300370300200241d80a6a20024188076a41206a290300370300200241003a00900a200241900a6a10fe01200241086a41fcc6cb004110108e022002200228020c41016a410120022802081b22043602900a41fcc6cb004110200241900a6a410410b2014100200410eb04200241900a6a41026a20012d00003a0000200220022f01ec0d3b01900a02400240200a4201510d00410621010c010b20024188076a41026a2204200241900a6a41026a22032d00003a0000200220022f01900a3b01880741062101200d4202510d00200320042d00003a0000200220022f0188073b01900a200521010b200041003a0000200041046a20013a0000200041056a20022f01900a3b0000200041086a200b370000200041076a200241920a6a2d00003a00000c060b20022009370388072002200837039007200220024188076a3602800f200241800f6a10ce0241800221010c040b1036000b20022f018a074108742104024020022903b811500d00200220013602880720024188076a10cc020b200420057221010b200241800f6a200241d00f6a41cc0010e9081a0b200241e00a6a108b020b200241f00d6a41026a200241f40d6a41026a2d00003a0000200220022f01f40d3b01f00d200041036a20014110763a0000200020013b0001200041013a00000b200241b0126a24000b070010044101460ba922030a7f027e027f230041c0026b22012400200141f0016a41186a22024200370300200141f0016a41106a22034200370300200141f0016a41086a22044200370300200142003703f001200141c8016a41d9fcc60041061081022004200141c8016a41086a2205290000370300200120012900c8013703f001200141c8016a41e8f7cb00410e10810220022005290000370300200320012900c801370300200141f0016a412010ff01200242003703002003420037030020044200370300200142003703f001200141c8016a41d9fcc600410610810220042005290000370300200120012900c8013703f001200141c8016a4188f3cb00411010810220022005290000370300200320012900c801370300200141f0016a412010ff01200242003703002003420037030020044200370300200142003703f001200141c8016a41d9fcc600410610810220042005290000370300200120012900c8013703f001200141c8016a4180f4cb00410610810220022005290000370300200320012900c801370300200141086a200141f0016a4120108e02200128020c210620012802082107200242003703002003420037030020044200370300200142003703f001200141c8016a41d9fcc600410610810220042005290000370300200120012900c8013703f001200141c8016a41a0f4cb00410a10810220022005290000370300200320012900c801370300200141c8016a200141f0016a4120108d0220012d00c80121052002200141e1016a2900003703002003200141d9016a2900003703002004200141d1016a290000370300200120012900c9013703f0010240024020054101460d00200141106a41186a4200370300200141106a41106a4200370300200141106a41086a4200370300200142003703100c010b200141106a41186a2002290300370300200141106a41106a2003290300370300200141106a41086a2004290300370300200120012903f0013703100b20014188026a2205420037030020014180026a22084200370300200141f0016a41086a22024200370300200142003703f001200141c8016a41d9fcc60041061081022002200141c8016a41086a2204290000370300200120012900c8013703f001200141c8016a41b4f4cb004106108102200341086a22092004290000370000200320012900c801370000200141c8016a200141f0016a10a10420012802c801210a20012902cc01210b200542003703002008420037030020024200370300200142003703f001200141c8016a41d9fcc600410610810220022004290000370300200120012900c8013703f001200141c8016a41acf2cb00410e10810220092004290000370000200320012900c8013700002001200141f0016a4120108e0241012103200128020421020240024020012802004101460d00410021030c010b200141f0016a412010ff010b02402002410020031b2209ad420c7e220c422088a70d00200ca72203417f4c0d00024002400240024002400240024020030d004104210d0c010b2003102c220d450d010b0240024002402003410c6e220e20094f0d00200e41017422022009200220094b1b22024104200241044b1bad420c7e220c422088a7454102742102200ca72104024002402003410b4b0d00200141003602c8010c010b200141d0016a41043602002001200d3602c8012001200e410c6c3602cc010b200141f0016a20042002200141c8016a107d200141f8016a2802002103024020012802f0014101460d0020012802f401210d2003410c6e210e0c020b20030d030c080b20090d00410021090c010b41002103200d21020340200141f0016a200310a307200141c8016a20012802f001220520012802f8012208108b030240024020012802c80122040d004200210c410121040c010b2005200810ff0120012902cc01210c0b200341016a2103024020012802f401450d002005102e0b20022004360200200241046a200c3702002002410c6a210220092003470d000b0b200120093602d0012001200e3602cc012001200d3602c801200141306a200141c8016a10cd0802402006410020071b220541e212490d00200141c8016a41002005419f6d6a2203200320054b1b108c0220012802c801220320012802d00110ff0120012802cc01450d002003102e0b20014180016a10ce0820012802880121022001280280012103200141003a00e8012002450d04200120032d00003a00c801200141013a00e80120024101460d03200120032d00013a00c901200141023a00e80120024102460d03200120032d00023a00ca01200141033a00e80120024103460d03200120032d00033a00cb01200141043a00e80120024104460d03200120032d00043a00cc01200141053a00e80120024105460d03200120032d00053a00cd01200141063a00e80120024106460d03200120032d00063a00ce01200141073a00e80120024107460d03200120032d00073a00cf01200141083a00e80120024108460d03200120032d00083a00d001200141093a00e80120024109460d03200120032d00093a00d1012001410a3a00e8012002410a460d03200120032d000a3a00d2012001410b3a00e8012002410b460d03200120032d000b3a00d3012001410c3a00e8012002410c460d03200120032d000c3a00d4012001410d3a00e8012002410d460d03200120032d000d3a00d5012001410e3a00e8012002410e460d03200120032d000e3a00d6012001410f3a00e8012002410f460d03200120032d000f3a00d701200141103a00e80120024110460d03200120032d00103a00d801200141113a00e80120024111460d03200120032d00113a00d901200141123a00e80120024112460d03200120032d00123a00da01200141133a00e80120024113460d03200120032d00133a00db01200141143a00e80120024114460d03200120032d00143a00dc01200141153a00e80120024115460d03200120032d00153a00dd01200141163a00e80120024116460d03200120032d00163a00de01200141173a00e80120024117460d03200120032d00173a00df01200141183a00e80120024118460d03200120032d00183a00e001200141193a00e80120024119460d03200120032d00193a00e1012001411a3a00e8012002411a460d03200120032d001a3a00e2012001411b3a00e8012002411b460d03200120032d001b3a00e3012001411c3a00e8012002411c460d03200120032d001c3a00e4012001411d3a00e8012002411d460d03200120032d001d3a00e5012001411e3a00e8012002411e460d03200120032d001e3a00e6012001411f3a00e8012002411f460d03200141d0006a41106a200141c8016a41106a290300370300200141d0006a41086a200141c8016a41086a290300370300200120032d001f3a00e701200141d0006a41186a200141c8016a41186a290300370300200141203a00e801200120012903c801220c3703f0012001200c3703500240200128028401450d002003102e0b200141003602f801200142013703f0014120102c2203450d00200142203702cc01200120033602c801200141c8016a200141106a41201074200141f0016a20012802c801220320012802d0011074024020012802cc01450d002003102e0b200141f0006a20012802f001220320012802f80110cf08024020012802f401450d002003102e0b200b4200200a1b210c200a4104200a1b21040240024020012802702203450d00200141f8006a28020021022001280274210d200141003a00e8012002450d04200120032d00003a00c801200141013a00e80120024101460d03200120032d00013a00c901200141023a00e80120024102460d03200120032d00023a00ca01200141033a00e80120024103460d03200120032d00033a00cb01200141043a00e80120024104460d03200120032d00043a00cc01200141053a00e80120024105460d03200120032d00053a00cd01200141063a00e80120024106460d03200120032d00063a00ce01200141073a00e80120024107460d03200120032d00073a00cf01200141083a00e80120024108460d03200120032d00083a00d001200141093a00e80120024109460d03200120032d00093a00d1012001410a3a00e8012002410a460d03200120032d000a3a00d2012001410b3a00e8012002410b460d03200120032d000b3a00d3012001410c3a00e8012002410c460d03200120032d000c3a00d4012001410d3a00e8012002410d460d03200120032d000d3a00d5012001410e3a00e8012002410e460d03200120032d000e3a00d6012001410f3a00e8012002410f460d03200120032d000f3a00d701200141103a00e80120024110460d03200120032d00103a00d801200141113a00e80120024111460d03200120032d00113a00d901200141123a00e80120024112460d03200120032d00123a00da01200141133a00e80120024113460d03200120032d00133a00db01200141143a00e80120024114460d03200120032d00143a00dc01200141153a00e80120024115460d03200120032d00153a00dd01200141163a00e80120024116460d03200120032d00163a00de01200141173a00e80120024117460d03200120032d00173a00df01200141183a00e80120024118460d03200120032d00183a00e001200141193a00e80120024119460d03200120032d00193a00e1012001411a3a00e8012002411a460d03200120032d001a3a00e2012001411b3a00e8012002411b460d03200120032d001b3a00e3012001411c3a00e8012002411c460d03200120032d001c3a00e4012001411d3a00e8012002411d460d03200120032d001d3a00e5012001411e3a00e8012002411e460d03200120032d001e3a00e6012001411f3a00e8012002411f460d0320014180016a41106a2202200141c8016a41106a220829030037030020014180016a41086a220e200141c8016a41086a2209290300370300200120032d001f3a00e70120014180016a41186a2206200141c8016a41186a220a290300370300200141203a00e801200120012903c801220b3703f0012001200b370380012009200e29030037030020082002290300370300200a200629030037030020012001290380013703c801200141a4016a41026a220e200141fd006a41026a2d00003a0000200120012f007d3b01a40102400240200c422088a72202200ca7460d00200c210b0c010b200241016a22062002490d0820024101742207200620062007491b22064104200641044b1bad42247e220b422088a7454102742106200ba721070240024020020d00200141003602f0010c010b200141f8016a4104360200200120043602f0012001200241246c3602f4010b200141b0026a20072006200141f0016a107d200141b8026a280200210220012802b0024101460d0220012802b4022104200c42808080807083200241246ead84210b200c422088a721020b2004200241246c6a220241003a0000200220012903c801370001200241096a2009290300370000200241116a2008290300370000200241196a200a290300370000200220012f01a4013b0021200241236a200e2d00003a0000200b4280808080107c210c200d450d002003102e0b200020012903103700102000200536020020002001290350370030200041286a200141106a41186a290300370000200041206a200141106a41106a290300370000200041186a200141106a41086a290300370000200041386a200141d0006a41086a290300370000200041c0006a200141d0006a41106a290300370000200041c8006a200141d0006a41186a290300370000200041086a200c37020020002004360204200041e8006a200141306a41186a290300370000200041e0006a200141306a41106a290300370000200041d8006a200141306a41086a29030037000020002001290330370050200141c0026a24000f0b2002450d050b1036000b200141003a00e8010b41d1a4cc00412c200141c8016a4180a5cc0041a0a5cc00103e000b200141003a00e8010b41d1a4cc00412c200141c8016a4180a5cc004190a5cc00103e000b1038000b0e002001ad4220862000ad8410140bd20501057f230041d0026b22022400200242808080808020370204200220013602142002200041d4e2cc0020011b3602102002200241106a360200200241d8016a2002109902200241e4016a280200210320022802e001210420022802dc01210520022802d8012106200241f8006a200241e8016a41e00010e9081a02402005450d00200241186a200241f8006a41e00010e9081a0240024020022802002802040d00200241f8006a200241186a41e00010e9081a0c010b02402003450d00200341246c21002005210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402004450d00200441246c450d002005102e0b410021050b2005450d00200241d8016a410c6a2003360200200241d8016a41086a2004360200200220053602dc01200220063602d801200241e8016a200241f8006a41e00010e9081a200241d8016a10c40702402003450d00200341246c21002005210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402004450d00200441246c450d002005102e0b200241d0026a240042010f0b200241246a410f360200200241ec016a4102360200200242023702dc01200241a0a7c9003602d8012002410436021c200241fca7c9003602182002200241186a3602e8012002200241c8026a360220200241d8016a41b0a7c9001044000b840c04017f017e097f017e230041306b220224000240024002400240024020010d0020024100360220200242043703184108102c2201450d0420014110360204200141b1afc8003602002002200141086a36020c200220013602082002410136020420022001360200200241186a200210a9014108102c2201450d042001410e360204200141cdb7c0003602002002200141086a36020c200220013602082002410136020420022001360200200241186a200210a9014108102c2201450d042001410c360204200141dbb7c0003602002002200141086a36020c200220013602082002410136020420022001360200200241186a200210a9014108102c2201450d042001410e360204200141e7b7c0003602002002200141086a36020c200220013602082002410136020420022001360200200241186a200210a9014108102c2201450d042001410a360204200141b4d8c8003602002002200141086a36020c200220013602082002410136020420022001360200200241186a200210a9014108102c2201450d042001410b360204200141d59fc5003602002002200141086a36020c200220013602082002410136020420022001360200200241186a200210a9014108102c2201450d0420014118360204200141e48ac5003602002002200141086a36020c200220013602082002410136020420022001360200200241186a200210a9014108102c2201450d0420014112360204200141c4f9c0003602002002200141086a36020c200220013602082002410136020420022001360200200241186a200210a90120022802202201ad420c7e2203422088a70d032003a72204417f4c0d0320022802182105200228021c21060240024020040d00410421070c010b2004102c2207450d050b02402004410c6e220820014f0d00200841017422092001200920014b1b22094104200941044b1bad420c7e2203422088a74541027421092003a7210a024002402004410b4b0d00200241003602000c010b200241086a41043602002002200736020020022008410c6c3602040b200241186a200a20092002107d200241206a2802002104024020022802184101460d00200228021c21072004410c6e21080c030b2004450d040c050b20010d01410021090c020b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c20024194a8c9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b200520014103746a210b200141037441786a41037641016a210c41002109200721012005210403402004280200220a450d01200141086a200441046a280200360200200141046a200a360200200141003602002001410c6a2101200941016a2109200441086a2204200b470d000b200c21090b0240200641ffffffff0171450d002005102e0b2002410036020820024201370300200241edcad18b063602182002200241186a410410742002410c3a00182002200241186a41011074411f2002107641d8fec600411f20021079200241043a00182002200241186a4101107420092002107602402009450d002009410c6c2104200741086a210103402001417c6a28020021092001280200220a2002107620022009200a10742001410c6a2101200441746a22040d000b0b200228020821012002280204210a2002280200210902402008450d002008410c6c450d002007102e0b200141046a2204417f4c0d0002400240024002400240024020040d002002410036020820022004360204200241013602000c010b2004102c220b450d0620024100360208200220043602042002200b360200200141c000490d01200141808001490d022001418080808004490d030b200241033a00182002200241186a41011074200220013602182002200241186a410410740c030b200220014102743a00182002200241186a410110740c020b200220014102744101723b01182002200241186a410210740c010b200220014102744102723602182002200241186a410410740b2002200920011074200235020821032002350200210d0240200a450d002009102e0b200241306a24002003422086200d840f0b1038000b1036000bde0504017f017e017f017e230041f00a6b22022400200242808080808020370204200220013602142002200041d4e2cc0020011b3602102002200241106a360200200241a0076a200210ed01200241b8066a200241a0076a41e80010e9081a2002290388082103200241e0036a200241a0076a41f0006a41d80210e9081a0240024020034203510d00200241186a200241b8066a41e80010e9081a2002200337038001200241186a41f0006a200241e0036a41d80210e90821010240024020022802002802040d00200241e0036a200241186a41e80010e9081a200241a0076a200141d80210e9081a0c010b024020034202510d0020022d001841ff01714102470d002002280220450d00200228021c102e0b200241b0016a108b02420321030b20034203510d00200241b8066a200241e0036a41e80010e9081a200241186a200241a0076a41d80210e9081a200241a0076a200241b8066a41e80010e9081a200220033703880820024190086a200241186a41d80210e9081a200241e0036a200241a0076a10c6074101410220022d00e00322014101461b2200102c2204450d01200241003602a807200220003602a407200220043602a0070240024020014101470d00200241013a0018200241a0076a200241186a41011074200241e0036a410172200241a0076a108e050c010b200241003a0018200241a0076a200241186a41011074024020022d00e40322014106460d00200241013a0018200241a0076a200241186a41011074200120022d00e50320022d00e603200241a0076a109d060c010b200241003a0018200241a0076a200241186a410110740b20023502a807210320023502a0072105200241f00a6a240020052003422086840f0b200241c4066a410f3602002002412c6a41023602002002420237021c200241a0a7c900360218200241043602bc06200241a4a8c9003602b8062002200241b8066a3602282002200241e80a6a3602c006200241186a41b0a7c9001044000b1036000ba30a02067f047e23004180026b220224000240024020010d00200241086a41fcc6cb004110108e02200228020c21030240200228020822044101470d0041fcc6cb00411010ff010b200241c8016a41186a22014200370300200241c8016a41106a22054200370300200241c8016a41086a22064200370300200242003703c801200241106a41d9fcc60041061081022006200241106a41086a2207290000370300200220022900103703c801200241106a41acf2cb00410e108102200120072900003703002005200229001037030020022003410020041b360210200241c8016a4120200241106a410410b2014101200210eb04200142003703002005420037030020064200370300200242003703c801200241106a41d9fcc600410610810220062007290000370300200220022900103703c801200241106a4180f4cb00410610810220012007290000370300200520022900103703002002200241c8016a4120108e022002280204210320022802002104200142003703002005420037030020064200370300200242003703c801200241106a41d9fcc600410610810220062007290000370300200220022900103703c801200241106a41d4f2cb00410b1081022001200729000037030020052002290010370300200241106a200241c8016a10f20420022903102108200241106a41106a29030021092002290318210a200241106a41186a290300210b200241106a10a9032003410020041b210502402002290318427f427f200a4200200842015122011b22082009420020011b7c220920092008541b2208200b420020011b7c220920092008541b580d004200410210f1040b200510d906200241106a10c807200241003602f001200242013703e8014120102c2201450d01200242203702cc01200220013602c801200241c8016a200241206a41201074200241e8016a20022802c801220120022802d0011074024020022802cc01450d002001102e0b200241106a200241e8016a1091024120102c2201450d01200242203702cc01200220013602c801200241c8016a200241c0006a41201074200241e8016a20022802c801220120022802d0011074024020022802cc01450d002001102e0b4120102c2201450d01200242203702cc01200220013602c801200241c8016a200241e0006a41201074200241e8016a20022802c801220120022802d0011074024020022802cc01450d002001102e0b200228021421032002411c6a2802002207200241e8016a10760240200741246c2205450d00200321010340200241c8016a200110ef04200241e8016a20022802c801220620022802d0011074024020022802cc01450d002006102e0b200141246a21012005415c6a22050d000b0b20023502f001210820023502e801210902402007450d00200741246c21052003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012005415c6a22050d000b0b0240200241186a2802002201450d00200141246c450d002003102e0b20024180026a240020084220862009840f0b200241d4016a410f360200200241246a410236020020024202370214200241a0a7c900360210200241043602cc01200241bca8c9003602c8012002200241c8016a3602202002200241f8016a3602d001200241106a41b0a7c9001044000b1036000bd40704017f017e017f017e230041f0036b220224002002428080808080203702dc022002200136022c2002200041d4e2cc0020011b3602282002200241286a3602d802200241386a200241d8026a10ef01024002400240024020022802384101460d0020024180036a41086a2201200241c4006a2802003602002002200229023c37038003024020022802d8022802040d00200241186a41086a2001280200220136020020022002290380032203370318200241286a41086a200136020020022003370328200241386a200241286a108e0120022802384101460d02200241386a41086a22012903002103200241386a41186a22004200370300200241386a41106a220442003703002001420037030020024200370338200241386a41e8fcc600410910810220024180036a41b08ec9004103108102200020024180036a41086a22012900003703002004200229008003370300200241086a200241386a10850320022802082104200229031021052002410036023820024180036a41a00e4108200241386a107d2001280200210002402002280280034101470d002000450d040c050b20022802840320024180036a41e80010e908220142023703682001410336029801200120022903d802370370200141f8006a200241d8026a41086a29030037030020014180016a200241d8026a41106a29030037030020014188016a200241d8026a41186a29030037030020014190016a200241f8026a290300370300200141a0016a2003200542b8177c42b81720041b220520032005561b370300200141a8016a200241386a41a00210e9081a200241286a10f10141cc03102c2204450d04200242cc03370284032002200436028003410120024180036a1076200220013602d802200241386a200241d8026a10900520024180036a20022802382204200228024010740240200228023c450d002004102e0b20023502800321032002350288032105024020012903684202510d0020012d00004102470d00200141086a280200450d00200141046a280200102e0b20014198016a109601200041c8037021040240200041c803490d0020002004460d002001102e0b200241f0036a240020054220862003840f0b20024180036a10f1010b2002418c036a410f360200200241cc006a41023602002002420237023c200241a0a7c9003602382002410436028403200241d4a8c90036028003200220024180036a3602482002200241e8036a36028803200241386a41b0a7c9001044000b20024188036a200241c4006a2902003703002002200229023c3703800341e4a4c900412820024180036a418ca5c900419ca5c900103e000b1038000b1036000bfe1a070a7f017e057f027e037f027e057f230041c0056b2202240020024280808080802037021c2002200136022c2002200041d4e2cc0020011b3602282002200241286a360218200241c8046a200241186a109902024020022802cc042203450d00200241d4046a280200210420022802d004210520022802c8042101200241e8036a200241d8046a41e00010e9081a200241c8046a200241186a10ec01024020022802c80422060d0002402004450d00200441246c21002003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b2005450d01200541246c450d012003102e0c010b200241c8046a41086a280200210720022802cc04210820024188036a200241e8036a41e00010e9081a200241a8026a20024188036a41e00010e9081a200241c8046a200241186a10ef01024020022802c8044101470d0002402004450d00200441246c21002003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402005450d00200541246c450d002003102e0b02402007450d00200741c8036c210020062109034002402009220141e8006a2903004202510d0020012d00004102470d00200141086a280200450d00200141046a280200102e0b200141c8036a210920014198016a109601200041b87c6a22000d000b0b2008450d01200841c8036c450d012006102e0c010b200241b8016a41086a2200200241c8046a410c6a280200360200200220022902cc043703b801200241c8016a200241a8026a41e00010e9081a200241306a410c6a2004360200200241306a41086a20053602002002200336023420022001360230200241c0006a200241c8016a41e00010e9081a200241a8016a2007360200200241a4016a2008360200200241b4016a2000280200360200200220063602a001200220022903b8013702ac01200241ac016a210a0240024020022802182802040d00200241e8036a41086a200a41086a2802003602002002200a2902003703e8030c010b02402004450d00200441246c210103400240024002400240024020032d00000e050400010204030b2003410c6a280200450d03200341086a280200102e0c030b2003410c6a280200450d02200341086a280200102e0c020b2003410c6a280200450d01200341086a280200102e0c010b200341086a280200450d00200341046a280200102e0b200341246a21032001415c6a22010d000b0b02402005450d00200541246c450d002002280234102e0b02402007450d00200741c8036c210020062109034002402009220141e8006a2903004202510d0020012d00004102470d00200141086a280200450d00200141046a280200102e0b200141c8036a210920014198016a109601200041b87c6a22000d000b0b02402008450d00200841c8036c450d002006102e0b200a10f101410021030b2003450d00200241c8016a41086a200241e8036a41086a220b2802002201360200200220022903e803220c3703c801200241a8026a41086a20013602002002200c3703a802200241013b01f403200242003702ec0302400240024002402007450d002006200741c8036c6a210d200241c8046a410472210e200241c0006a210f200241c8006a2110200621110340201141e8006a2903004202520d0102402011280298014103470d0020112903a0012112200241306a200241a8026a108e010240024020022802304101460d002002290338210c20104200370300200f4200370300200241306a41086a2201420037030020024200370330200241c8046a41e8fcc60041091081022001200241c8046a41086a2200290000370300200220022900c804370330200241c8046a41b08ec9004103108102200f41086a2000290000370000200f20022900c804370000200241086a200241306a10850302402012200c42b0ea017c580d00201342808080807083211341dea5c900ad210c4280808080d00421124100211441012115410021160c020b2012200229031042b8177c42b81720022802081b220c5a0d02200c42808080807083211241002115410121140c010b2002290338220c428080808070832112200228023421164101211541002114201742808080807083200235024084221721130b200220133703d804200220163602cc04200220153602c80420022012200c42ffffffff0f838422183703d004024002400240024020022d00f503450d004131210141b8a6c90021000c010b0240024002402015450d00200241e8036a10f101200242003702ec03200242f4d2b59bc7ae98b8303703300c010b20022802ec03210a200242f4d2b59bc7ae98b830370330200a450d0020022802e80321190c010b41e401102c220a450d0841002119200a4100360200200a41003b018a012002200a3602ec03200241003602e8030b2012422088a7211a200ca7211b02400340200a2f018a01221c410374211d41002101417f2100024003400240201d2001470d00201c21000c020b200241306a200a20016a418c016a410810ec082209450d03200041016a2100200141086a21012009417f4a0d000b0b02402019450d002019417f6a2119200a20004102746a41e4016a280200210a0c010b0b200242f4d2b59bc7ae98b830370340200220003602382002200a360234200241003602302002200241e8036a36023c2002410036029003200242013703880320150d02200241003a00b80120024188036a200241b8016a41011074200220183703b80120024188036a200241b8016a410810740c030b412d210141e9a6c90021000b20022001360234200220003602304183a6c9004122200241306a41a8a6c90041aca5c900103e000b200241013a00b80120024188036a200241b8016a41011074200e20024188036a10e8050b200241306a20024188036a10f001200220153a00f503200241003a00f40302402015450d0020024188036a41086a200241e8036a41086a290300370300200220022903e803370388032016450d04201a450d04201b102e0c040b2014201645720d00201a450d00201b102e0b201141c8036a2211200d470d000b0b20024188036a41086a200b290300370300200220022903e803370388030b200241a8026a10f10102402004450d00200441246c21002003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402005450d00200541246c450d002003102e0b02402007450d00200741c8036c210020062109034002402009220141e8006a2903004202510d0020012d00004102470d00200141086a280200450d00200141046a280200102e0b200141c8036a210920014198016a109601200041b87c6a22000d000b0b02402008450d00200841c8036c450d002006102e0b200241003602d004200242013703c804200220022d0094033a00b801200241c8046a200241b8016a41011074200220022d0095033a00b801200241c8046a200241b8016a41011074200228029003220a200241c8046a10760240200228028c0322000d0041002101410021004100210a0c020b200228028803210920002101034020002f018a01211d2009450d022009417f6a21092000201d4102746a41e4016a280200210020012802e40121010c000b0b1036000b200241c4006a201d360200200241c0006a20003602002002200a3602482002420037033820022001360234200241003602300240200a450d0003402002200a417f6a360248200241306a410020011b221d280200210902400240201d280208220a201d28020422002f018a014f0d00200021010c010b03400240200028020022010d00410021010c020b200941016a210920002f018801210a20012100200a20012f018a014f0d000b0b200a41016a21190240024020090d00200121000c010b200120194102746a41e4016a280200210002402009417f6a2209450d00034020002802e40121002009417f6a22090d000b0b410021190b201d2000360204201d4100360200201d2019360208200241c8046a2001200a4103746a418c016a410810742001200a410c6c6a220141046a28020021002001410c6a2802002201200241c8046a1076200241c8046a2000200110742002280248220a450d01200228023421010c000b0b20023502d004210c20023502c804211220024188036a10f101200241c0056a24002012200c422086840f0b200241d4046a410f360200200241c4006a410236020020024202370234200241a0a7c900360230200241043602cc04200241f0a8c9003602c8042002200241c8046a3602402002200241b8056a3602d004200241306a41b0a7c9001044000bbd0702087f027e23004180016b2202240002400240024020010d00200241003602082002420137030020024100360230200241d8006a41204101200241306a107d200241d8006a41086a22012802002103024020022802584101470d002003450d020c030b200228025c21042002200336020420022004360200200241d8006a41186a22034200370300200241d8006a41106a220442003703002001420037030020024200370358200241106a41a8f8c60041041081022001200241106a41086a220529000037030020022002290010370358200241106a41978bc500410e1081022003200529000037030020042002290010370300200241306a200241d8006a10a30420022d003021052003200241c9006a2900003703002004200241c1006a2900003703002001200241396a290000370300200220022900313703580240024020054101460d00200241106a41186a4200370300200241106a41106a4200370300200241186a4200370300200242003703100c010b200241106a41186a2003290300370300200241106a41106a2004290300370300200241106a41086a200241d8006a41086a290300370300200220022903583703100b2002200241106a41201074200241d8006a20022802002206200228020810b001200241306a41186a2205200241d8006a41186a2201290300370300200241306a41106a2207200241d8006a41106a2203290300370300200241306a41086a2208200241d8006a41086a22042903003703002002200229035837033020014200370300200342003703002004420037030020024200370358200241106a41a8f8c60041041081022004200241106a41086a220929000037030020022002290010370358200241106a41b08bc500410a1081022001200929000037030020032002290010370300200241106a200241d8006a4120109d0302402002280204450d002006102e0b2004200829030037030020032007290300370300200120052903003703002002200229033037035820024100360218200242013703104120102c2201450d022002422037023420022001360230200241306a200241d8006a41201074200241106a200228023022012002280238107402402002280234450d002001102e0b2002350218210a2002350210210b20024180016a2400200b200a422086840f0b200241e4006a410f360200200241c4006a410236020020024202370234200241a0a7c9003602302002410436025c20024188a9c9003602582002200241d8006a3602402002200241f8006a360260200241306a41b0a7c9001044000b1038000b1036000bbf5d05027f027e0c7f077e027f230041e0176b220224002002428080808080203702ac17200220013602e4162002200041d4e2cc0020011b22033602e0162002200241e0166a3602a81741002100200241003a00901102400240024002402001450d0020022001417f6a3602e4162002200341016a3602e016024020032d00000e03030200010b410221000c020b420321040c020b410121000b200241c0076a200241a8176a10ed0142032104024020022903a80822054203520d000c010b2002418f0b6a200241c0076a41e80010e9081a20024190116a200241b0086a41d80210e9081a200241286a200241880b6a41ef0010e9081a200521040b200241d0066a200241286a41ef0010e9081a200241880e6a20024190116a41d80210e9081a02400240024002400240024002400240024020044203510d00200220003a00800320024180036a410172200241d0066a41ef0010e9082101200241f0036a2004370300200241f8036a200241880e6a41d80210e90821030240024020022802a8172802040d0020024190116a200141ef0010e9081a200241c0076a200341d80210e9081a0c010b024020044202510d0020022d0088034102470d0020024190036a280200450d00200228028c03102e0b200241a0046a108b02420321040b20044203510d0020024180036a20024190116a41ef0010e9081a200241d0066a20024187036a41e80010e9081a200241286a200241c0076a41d80210e9081a200241c0076a200241d0066a41e80010e9081a200220043703a808200241b0086a200241286a41d80210e9081a2002200241c0076a3602901120024180036a20024190116a10900520022802880321060240200228028403450d00200228028003102e0b20024180036a200241c0076a41c80310e9081a20024190116a20024180036a108a0220022d009011210120022f009111210320022d0093112107200241880e6a20024190116a41047241840310e9081a024020014101460d00200241880b6a200241880e6a41046a41800310e9081a20024198146a200241d80b6a22081097040240024020022903a80b4202520d0020024190116a41206a2201420037030020024190116a41186a22034280808080c000370300200241013a00b811200242043703a0112002427f37039811200242003703901120024180036a41206a2207420037030020024180036a41186a22094280808080c000370300200241013a00a80320024204370390032002427f370388032002420037038003200241f0146a20024190116a20024180036a10d20720024190116a41286a220a200241f0146a41286a2903003703002001200241f0146a41206a2903003703002003200241f0146a41186a29030037030020024190116a41106a220b200241f0146a41106a29030037030020024190116a41086a220c200241f0146a41086a290300370300200220022903f014370390112007420037030020094280808080c000370300200241013a00a80320024204370390032002427f370388032002420037038003200241a0156a20024190116a20024180036a10d207200a200241a0156a41286a2903003703002001200241a0156a41206a2903003703002003200241a0156a41186a290300370300200b200241a0156a41106a290300370300200c200241a0156a41086a290300370300200220022903a015370390112007420037030020094280808080c000370300200241013a00a80320024204370390032002427f370388032002420037038003200241d0156a20024190116a20024180036a10d207200a200241d0156a41286a2903003703002001200241d0156a41206a2903003703002003200241d0156a41186a290300370300200b200241d0156a41106a290300370300200c200241d0156a41086a290300370300200220022903d015370390112007420037030020094280808080c000370300200241013a00a80320024204370390032002427f37038803200242003703800320024180166a20024190116a20024180036a10d207200a20024180166a41286a290300370300200120024180166a41206a290300370300200320024180166a41186a290300370300200b20024180166a41106a290300370300200c20024180166a41086a2903003703002002200229038016370390112007420037030020094280808080c000370300200241013a00a80320024204370390032002427f370388032002420037038003200241b0166a20024190116a20024180036a10d207200241a8176a41286a220d200241b0166a41286a290300370300200241a8176a41206a220e200241b0166a41206a290300370300200241a8176a41186a220f200241b0166a41186a290300370300200241a8176a41106a2210200241b0166a41106a290300370300200241a8176a41086a2211200241b0166a41086a290300370300200220022903b0163703a81720024180036a20022903981420022d00a014200610a005200c20024180036a410c6a290200370300200b20024180036a41146a290200370300200320024180036a411c6a290200370300200120024180036a41246a290200370300200a20024180036a412c6a290200370300200241c0116a200241b4036a28020036020020022002290284033703901120022d0080034101470d0120022d008303210720022f008103210920022802b81721030240200f2802002201450d002001410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b0240200241bc176a2802002201450d002001410c6c450d002003102e0b2007411074210720022802c41721030240200241cc176a2802002201450d002001410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b200920077221010240200241c8176a2802002200450d002000410c6c450d002003102e0b200241013a008003200220013b008103200220014110763a0083032008108b020c0a0b20024190116a41206a2200420037030020024190116a41186a22034280808080c000370300200241013a00b811200242043703a011427f21042002427f37039811200242003703901120024180036a41206a2207420037030020024180036a41186a22014280808080c000370300200241013a00a80320024204370390032002427f370388032002420037038003200241c0146a20024190116a20024180036a10d20720024190116a41286a2209200241c0146a41286a2903003703002000200241c0146a41206a2903003703002003200241c0146a41186a29030037030020024190116a41106a220a200241c0146a41106a29030037030020024190116a41086a220b200241c0146a41086a290300370300200220022903c014370390112007420037030020014280808080c000370300200241013a00a80320024204370390032002427f370388032002420037038003200241f0146a20024190116a20024180036a10d2072009200241f0146a41286a2903003703002000200241f0146a41206a2903003703002003200241f0146a41186a290300370300200a200241f0146a41106a290300370300200b200241f0146a41086a290300370300200220022903f014370390112007420037030020014280808080c000370300200241013a00a80320024204370390032002427f370388032002420037038003200241a0156a20024190116a20024180036a10d2072009200241a0156a41286a2903003703002000200241a0156a41206a2903003703002003200241a0156a41186a290300370300200a200241a0156a41106a290300370300200b200241a0156a41086a290300370300200220022903a015370390112001420037030020024180036a41106a2203420037030020024180036a41086a220942003703002002420037038003200241880e6a41d9fcc60041061081022009200241880e6a41086a2200290000370300200220022900880e37038003200241880e6a4180f4cb00410610810220012000290000370300200320022900880e370300200241206a20024180036a4120108e022002280224410020022802201bad2105024020022903a80b4201520d0020022903b00b22044200510d04200241b80b6a290300221220047c4200200520127d221220122005561b22127c20122004827d21040b2007420037030020014280808080c000370300200220022800880e3602a81720022002418b0e6a2800003600ab17200241ac036a20022800ab17360000200241013a00a8032002420437039003200242003703800320024200200420057d220520052004561b37038803200220022802a8173600a903200241d0156a20024190116a20024180036a10d207200241880e6a41286a200241d0156a41286a290300370300200241880e6a41206a200241d0156a41206a290300370300200241880e6a41186a200241d0156a41186a290300370300200241880e6a41106a200241d0156a41106a2903003703002000200241d0156a41086a290300370300200220022903d0153703880e200241a8176a200241880b6a10c80220024180036a20022802a817220020022802b01710c902200241c8036a28020041002002290380034201511b2101024020022802ac17450d002000102e0b0240024020022802d00b22002001490d00410c102c2203450d0c410421074104102c2209450d0c2002420437028403200220093602800320024180036a200241880b6a41201074200220003602a81720024180036a200241a8176a41041074200341086a2002280288033602002003200229038003370200410021090240200120004f0d00410c102c2207450d0d4104102c2201450d0d2002420437028403200220013602800320024180036a200241880b6a4120107420022000417f6a3602a81720024180036a200241a8176a41041074200741086a2002280288033602002007200229038003370200410121090b20024190116a41206a42818080801037030020024190116a41186a2201200936020020024190116a41146a2009360200200220022800e0163602b8142002200241e3166a2800003600bb1420024190116a412c6a20022800bb14360000200241013a00b811200220033602ac11200220073602a0112002427f370398112002420037039011200220022802b8143600b91120024180166a200241880e6a20024190116a10d207200241a8176a41286a20024180166a41286a290300370300200241a8176a41206a20024180166a41206a290300370300200241a8176a41186a20024180166a41186a290300370300200241a8176a41106a20024180166a41106a290300370300200241a8176a41086a20024180166a41086a29030037030020022002290380163703a817024020022d00a01422004102470d0020024198116a2002418c036a29020037030020024190116a41106a20024180036a41146a29020037030020012002419c036a290200370300200241b0116a200241a4036a29020037030020024190116a41286a20024180036a412c6a290200370300200241c0116a200241b4036a28020036020020022002290284033703901141801221010c0a0b20024180036a2002290398142000200610a00520024190116a41086a20024180036a410c6a29020037030020024190116a41106a20024180036a41146a290200370300200120024180036a411c6a29020037030020024190116a41206a20024180036a41246a29020037030020024190116a41286a20024180036a412c6a290200370300200241c0116a200241b4036a28020036020020022002290284033703901120022d0080034101470d0120022f00810320022d0083034110747221010c090b200220022800e0163602b8142002200241e3166a2800003600bb142002410a3a00830320024180063b008103200241013a00800320022802980e21030240200241a00e6a2802002201450d002001410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b02402002419c0e6a2802002201450d002001410c6c450d002003102e0b20022802a40e21030240200241ac0e6a2802002201450d002001410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b200241a80e6a2802002201450d092001410c6c450d092003102e2008108b020c0a0b200241880e6a41286a2201200241bc116a290200370300200241880e6a41206a220320024190116a41246a290200370300200241880e6a41186a220720024190116a411c6a290200370300200241880e6a41106a2209200241a4116a290200370300200241880e6a41086a220a20024190116a410c6a29020037030020022002290294113703880e200241b0166a200241a8176a200241880e6a10d2072001200241b0166a41286a2903003703002003200241b0166a41206a2903003703002007200241b0166a41186a2903003703002009200241b0166a41106a290300370300200a200241b0166a41086a290300370300200220022903b0163703880e20024180036a2006200229039814221320022903c00b2214200241880b6a41c0006a290300221520022d00a114410047200010e704420021054200210402402002290380034201520d00427f427f20024180036a41106a2903002204200241a0036a2903007c200229038803220520024180036a41186a2903007c22122005542201ad7c22052001200520045420052004511b22011b2204200241b0036a2903007c427f201220011b220520024180036a41286a2903007c22122005542201ad7c22052001200520045420052004511b22011b2104427f201220011b21050b427f200420024180036a41c0006a29030022167c200520022903b80322177c22182005542201ad7c22122001201220045420122004511b22011b2112427f201820011b2118024002400240024020052017842004201684844200520d00200220183703a817200242003703b817200220123703b0170c010b20024190176a200241880b6a20182012410141112014201584501b10fe062002280290174101460d01200241c0176a2201200229039817370300200241c8176a200241a0176a290300370300200220183703a817200242013703b817200220123703b017200220013602800320024180036a10cc020b20024180036a10a9032002290388032104200241013a00b811200220124200418080f00120064101200641014b1b6ead220520042013420120134201561b80220420042005561b2204420010e808200241106a201842002004420010e80820024190116a41206a2200420037030020024190116a41186a22034280808080c0003703002002200241ab146a2800003600bb14200220022800a8143602b81420024190116a412c6a220720022800bb14360000200242043703a011200220022802b8143600b91120022903082105200241106a41086a2903002104200229030021122002427f370398112002427f20022903102005420052200420127c22052004547222011b427f427f200520011b501b37039011200241e0166a200241880e6a20024190116a10d207200241880e6a41286a200241e0166a41286a290300370300200241880e6a41206a200241e0166a41206a290300370300200241880e6a41186a2201200241e0166a41186a290300370300200241880e6a41106a200241e0166a41106a290300370300200241880e6a41086a200241e0166a41086a290300370300200220022903e0163703880e20024180036a200241880b6a20081080032002200241b1036a2800003602b8142002200241b4036a2800003600bb1420022d0080034101460d01200241b0036a22012d0000210920024180036a41286a220a280200210b20024180036a41246a280200210c20024180036a41206a2206280200210f2002419c036a280200210d20024180036a41186a220e280200211020024180036a41106a2211290300210420024180036a41086a2219290300210520024190116a41246a20024180036a412c6a2802003602002000200b3602002003200f360200200241a4116a200d360200200720022800bb14360000200220093a00b8112002200c3602ac11200220103602a01120022004370398112002200537039011200220022802b8143600b911200241a8176a200241880e6a20024190116a10d207201920022903a8173703002011200241a8176a41086a290300370300200e200241a8176a41106a2903003703002006200241a8176a41186a290300370300200a200241a8176a41206a2903003703002001200241a8176a41286a290300370300200241003a0080032008108b020c0b0b200220022800a8143602b8142002200241ab146a2800003600bb14200241003a00830320024180023b008103200241013a00800320022802980e21030240200241a00e6a2802002201450d002001410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b02402002419c0e6a2802002201450d002001410c6c450d002003102e0b20022802a40e21030240200241ac0e6a2802002201450d002001410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b200241a80e6a2802002201450d092001410c6c450d092003102e2008108b020c0a0b20022d008303210020022f0081032103200241013a0080032002200320004110747222003b008103200220004110763a00830320022802980e2103024020012802002201450d002001410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b02402002419c0e6a2802002201450d002001410c6c450d002003102e0b20022802a40e21030240200241ac0e6a2802002201450d002001410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b200241a80e6a2802002201450d082001410c6c450d082003102e2008108b020c090b200241880e6a41286a20024190116a412c6a290200370300200241880e6a41206a220620024190116a41246a290200370300200241880e6a41186a221920024190116a411c6a290200370300200241880e6a41106a20024190116a41146a290200370300200241880e6a41086a221a20024190116a410c6a29020037030020022002290294113703880e200241e0166a200241a8176a200241880e6a10d207200a200241e0166a41286a2903003703002001200241e0166a41206a2903003703002003200241e0166a41186a290300370300200b200241e0166a41106a290300370300200c200241e0166a41086a290300370300200220022903e016370390112007420037030020094280808080c000370300200241013a00a80320024204370390032002427f370388032002420037038003200241a8176a20024190116a20024180036a10d207200a200d2903003703002001200e2903003703002003200f290300370300200b2010290300370300200c2011290300370300200220022903a817370390112007420037030020094280808080c000370300200241013a00a80320024204370390032002427f370388032002420037038003200241880e6a20024190116a20024180036a10d207200241c0146a410c6a201a290300370200200220022903880e3702c414200241880e6a41146a28020021032019280200210120062802002107200241880e6a41246a280200210920022802980e210a20022802a40e210b20022903b00e210420024190176a41106a200241c0146a41106a28020036020020024190176a41086a200241c0146a41086a290200370300200220022902c01437039017200241a8146a41086a20024190176a410c6a29020037030020022002290294173703a814024002400240024002400240024020022802d80b417e6a0e1a0100000000000000020500000000000000030000000000000004000b200241003a00830320024181023b0081030c0a0b0240200241e00b6a2802004102460d002002410a3a008303200241003b0081030c0a0b0240200041ff01714102490d002002410a3a008303200241003b0081030c0a0b0240200241f80b6a200241e40b6a10f206220c41ff01714102470d0020024180036a41086a427f370300200241b4036a2200411036020020024180036a41206a420037030020024180036a41186a4280808080c0003703002002427f37038003200241d8b2c4003602b003200241013a00a8032002420437039003200241a8176a41186a200241f80d6a2903002205370300200241a8176a41106a200241f00d6a2903002212370300200241a8176a41086a200241e80d6a29030022183703002002200241e00d6a29030022133703a817200220022903f80b22163703c81720024190116a41106a201837030020024190116a41186a201237030020024190116a41206a2005370300200241b8116a220c20163703002002200241b0036a360290112002201337039811411c102c2206450d0f2002421c37028416200220063602801620022802b00321062000280200220020024180166a107620024180166a20062000107420024180166a20024190116a41086a412010742002200c2903003703b01620024180166a200241b0166a410810740240024020022802a403220c20022802a0032200470d00200041016a220c2000490d0b20004101742206200c2006200c4b1b220c4104200c41044b1bad420c7e2205422088a745410274210c2005a721060240024020000d0020024100360290110c010b20024198116a41043602002002200228029c033602901120022000410c6c360294110b200241b0166a2006200c20024190116a107d200241b8166a280200210020022802b0164101460d01200220022802b41636029c0320022000410c6e3602a00320022802a403210c0b200228029c03200c410c6c6a2200200229038016370200200041086a20024180166a41086a28020036020020024190116a41086a220020024198036a220c290300370300200220022802a40341016a3602a40320024190116a41106a2206200241a0036a220f2903003703002002200229039003370390112002200241a9036a220d2900003703b0162002200d41076a2900003700b716200229038003210520024180036a41106a4280ce1837030020024180036a41086a2005370300200241a8036a2006290300370300200f2000290300370300200c20022903901137030041002100200241b0036a41003a0000200241b4036a20022800b316360000200241b1036a20022802b016360000200241003a0080030c0c0b2000450d090c0f0b41012100200241013a0080032002200c3b0081032002200c4110763a0083030c0a0b0240200241e00b6a2802004102460d002002410a3a008303200241003b0081030c090b0240200041ff01714102490d002002410a3a008303200241003b0081030c090b0240200241f80b6a200241e40b6a10ff06220c41ff01714102470d0020024190116a41086a427f370300200241c4116a2200411336020020024190116a41206a420037030020024190116a41186a4280808080c0003703002002427f37039011200241ccdcc8003602c011200241013a00b811200242043703a011200241a8176a41106a200241e00d6a2903002205370300200241a8176a41186a200241e80d6a2903002212370300200241a8176a41206a200241f00d6a29030022183703002002200241d80d6a29030022133703b0172002200241880c6a29030022163703d017200220022903f80b22173703a81720024180036a41106a220c201337030020024180036a41186a200537030020024180036a41206a2012370300200241a8036a201837030020024180036a41306a22062016370300200220024190116a41306a3602800320022017370388034127102c220f450d0e20024227370284162002200f3602801620022802c011210f2000280200220020024180166a107620024180166a200f2000107420024180166a200c4120107420022002290388033703b01620024180166a200241b0166a41081074200220062903003703b01620024180166a200241b0166a410810740240024020022802b411220c20022802b0112200470d00200041016a220c2000490d0a20004101742206200c2006200c4b1b220c4104200c41044b1bad420c7e2205422088a745410274210c2005a721060240024020000d0020024100360280030c010b20024188036a4104360200200220022802ac113602800320022000410c6c360284030b200241b0166a2006200c20024180036a107d200241b8166a280200210020022802b0164101460d01200220022802b4163602ac1120022000410c6e3602b01120022802b411210c0b20022802ac11200c410c6c6a2200200229038016370200200041086a20024180166a41086a280200360200200241b0166a41086a220020024190116a41186a290300370300200220022802b41141016a3602b411200241b0166a41106a220c20024190116a41206a290300370300200220022903a0113703b0162002200241b9116a2206290000370380162002200641076a29000037008716200229039011210520024180036a41106a4280ce1837030020024180036a41086a2005370300200241a8036a200c29030037030020024180036a41206a200029030037030020024180036a41186a20022903b01637030041002100200241b0036a41003a0000200241b4036a200228008316360000200241b1036a200228028016360000200241003a0080030c0b0b20000d0e0c080b41012100200241013a0080032002200c3b0081032002200c4110763a0083030c090b20024180036a200241e00b6a10df020c020b0240200041ff01714102490d002002410a3a008303200241003b0081030c070b20024190116a200241e00b6a10b806024020022d009011220c4106460d00200241800e3b00810341012100200241013a008003200220022d0092114100200c4103461b3a0083030c080b200241e80b6a290300210520022903e00b2112200241d00d6a28020021004118102c220c450d0b200242183702ac172002200c3602a8174110200241a8176a1076200241a8176a41e6b3c700411010742002200036028003200241a8176a20024180036a4104107441002100200241003602800320024190116a4130410420024180036a107d20024190116a41086a280200210602402002280290114101470d0020060d0c0c060b200228029411220c20022903a817370200200c41086a200241a8176a41086a28020036020020024180036a41306a41003a0000200241ac036a4101360200200241a8036a2006410c6e360200200241a4036a200c360200200241a0036a410036020020024198036a420437030020024180036a41106a42d80437030020024180036a41086a427f2012427f2005501b220542e5cc99b3e6cc99b3667c221220122005541b37030020022002280090113602b016200220024193116a2800003600b316200241b4036a20022800b316360000200241b1036a20022802b016360000200241003a0080030c070b20024180036a200241dc0b6a109d070b20022d00800321000c050b200241013a0080032002200320074110747222013b008103200220014110763a0083030c070b200241940e6a410f36020020024194036a41023602002002420237028403200241a0a7c900360280032002410436028c0e2002419ca9c9003602880e2002200241880e6a360290032002200241d8176a3602900e20024180036a41b0a7c9001044000b41d0e7cc00411941ece7cc001039000b1038000b41012100200241013a0080030b200241880e6a41086a220c20024180036a410c6a290200370300200241880e6a41106a20024180036a41146a290200370300200241880e6a41186a220620024180036a411c6a290200370300200241880e6a41206a220f20024180036a41246a290200370300200241880e6a41286a20024180036a412c6a290200370300200241880e6a41306a200241b4036a28020036020020022002290284033703880e0240200041ff01714101460d00200241e0166a41286a2200200241880e6a412c6a290200370300200241e0166a41206a220d200241880e6a41246a220e290200370300200241e0166a41186a2210200241880e6a411c6a290200370300200241e0166a41106a2211200241880e6a41146a2219290200370300200241e0166a41086a221a200241880e6a410c6a2902003703002002200229028c0e3703e016200c200241a8146a41086a290300370300200e2009360200200f20073602002006200136020020192003360200200220022903a8143703880e200220043703b00e2002200b3602a40e2002200a3602980e20024190116a41286a200029030037030020024190116a41206a200d29030037030020024190116a41186a201029030037030020024190116a41106a201129030037030020024190116a41086a201a290300370300200220022903e01637039011200241a8176a200241880e6a20024190116a10d20720024180036a41086a20022903a81737030020024180036a41106a200241a8176a41086a29030037030020024180036a41186a200241a8176a41106a29030037030020024180036a41206a200241a8176a41186a29030037030020024180036a41286a200241a8176a41206a29030037030020024180036a41306a200241a8176a41286a290300370300200241003a0080032008108b020c030b20022d008303210020022f008103210c200241013a0080032002200c20004110747222003b008103200220004110763a00830302402001450d002001410c6c2100200a210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b02402003450d002003410c6c450d00200a102e0b02402009450d002009410c6c2100200b210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b2007450d012007410c6c450d01200b102e0c010b200241013a008003200220013b008103200220014110763a00830320022802b81721030240200241c0176a2802002201450d002001410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b0240200241bc176a2802002201450d002001410c6c450d002003102e0b20022802c41721030240200241cc176a2802002201450d002001410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b200241c8176a2802002201450d002001410c6c450d002003102e2008108b020c010b2008108b020b4101102c2201450d00200242013702c407200220013602c0070240024020022d0080034101470d00200241013a009011200241c0076a20024190116a4101107420024180036a410172200241c0076a108e050c010b200241003a009011200241c0076a20024190116a41011074200220024180036a41086a29030037039011200241c0076a20024190116a4108107420024198036a2802002101200241a0036a2802002200200241c0076a107602402000450d0020012000410c6c6a2107034020012802002100200141086a2802002203200241c0076a1076200241c0076a2000200310742001410c6a22012007470d000b0b200241a4036a2802002101200241ac036a2802002200200241c0076a107602402000450d0020012000410c6c6a2107034020012802002100200141086a2802002203200241c0076a1076200241c0076a2000200310742001410c6a22012007470d000b0b200220024190036a29030037039011200241c0076a20024190116a410810742002200241b0036a2d00003a009011200241c0076a20024190116a410110740b20023502c807210420023502c0072105024020022d0080030d000240200241a0036a2802002200450d0020024198036a28020021012000410c6c210003400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b02402002419c036a2802002201450d002001410c6c450d00200228029803102e0b0240200241ac036a2802002200450d00200241a4036a28020021012000410c6c210003400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b200241a8036a2802002201450d002001410c6c450d0020022802a403102e0b200241e0176a240020044220862005840f0b1036000bb30304017f027e067f027e230041206b22032400200229030021042001290300210520022802102106200141106a200241186a2207280200220810e0082001280210200141186a2209280200220a410c6c6a20062008410c6c10e9081a200741003602002009200a20086a2208360200200341086a200836020020032001290210370300200228021c21072001411c6a200241246a2209280200220810e008200128021c200141246a220a280200220b410c6c6a20072008410c6c10e9081a20094100360200200a200b20086a2208360200200341106a41086a20083602002003200129021c3703102002290308210c2001290308210d0240024020012d0028450d004101210120022d00280d010b410021010b200020032903003702102000200329031037021c200020013a0028200041186a200341086a280200360200200041246a200341106a41086a2802003602002000200c200d200d200c561b3703082000427f200520047c220c200c2005541b3703000240200241146a2802002201450d002001410c6c450d002006102e0b0240200241206a2802002201450d002001410c6c450d002007102e0b200341206a24000bb30b01087f230041f0026b220224002002428080808080203702dc02200220013602cc022002200041d4e2cc0020011b3602c8022002200241c8026a3602d802200241c8016a200241d8026a109902200241d4016a280200210320022802d001210420022802cc01210520022802c8012106200241e8006a200241d8016a41e00010e9081a024002402005450d00200241086a200241e8006a41e00010e9081a0240024020022802d8022802040d00200241e8006a200241086a41e00010e9081a0c010b02402003450d00200341246c21002005210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402004450d00200441246c450d002005102e0b410021050b2005450d00200241d4016a2003360200200241c8016a41086a2004360200200220053602cc01200220063602c801200241c8016a41106a200241e8006a41e00010e9082107200241b8026a200241c8016a41047210c7014102200110eb042002410036026841fcc6cb004110200241e8006a410410b201200241e8006a41186a22014200370300200241e8006a41106a22004200370300200241e8006a41086a2208420037030020024200370368200241086a41d9fcc60041061081022008200241086a41086a220929000037030020022002290008370368200241086a4180f4cb004106108102200120092900003703002000200229000837030020022006360208200241e8006a4120200241086a410410b201200241b8026a10ee04200710f0042006417f6a200710a40720014200370300200042003703002008420037030020024200370368200241086a41d9fcc60041061081022008200929000037030020022002290008370368200241086a41d4f2cb00410b1081022001200929000037030020002002290008370300200241e8006a412010ff01200241086a200241c8016a109a042001200241086a41186a2903003703002000200241086a41106a2903003703002008200929030037030020022002290308370368200241c8026a2006108c0220022802d002210020022802c80221014120102c2208450d01200242203702dc02200220083602d802200241d8026a200241e8006a412010742001200020022802d802220820022802e00210b201024020022802dc02450d002008102e0b024020022802cc02450d002001102e0b200610de0620022802b8022106024020022802c0022201450d00200141246c21002006210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b024020022802bc022201450d00200141246c450d002006102e0b02402003450d00200341246c21002005210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402004450d00200441246c450d002005102e0b200241f0026a240042010f0b200241146a410f360200200241dc016a4102360200200242023702cc01200241a0a7c9003602c8012002410436020c200241b8a9c9003602082002200241086a3602d8012002200241e8026a360210200241c8016a41b0a7c9001044000b1036000bab0102017f027e230041306b220224000240024020010d004104102c2201450d0120024204370204200220013602004100200210762002350208210320023502002104200241306a240020042003422086840f0b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c200241d0a9c9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b1036000be10102017f027e230041306b220224000240024020010d004104102c2201450d012002420437020420022001360200410020021076200241003602182002200241186a41041074200241003602182002200241186a41041074200241003602182002200241186a410410742002350208210320023502002104200241306a240020042003422086840f0b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c200241e4a9c9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b1036000bab0102017f027e230041306b220224000240024020010d004104102c2201450d0120024204370204200220013602004100200210762002350208210320023502002104200241306a240020042003422086840f0b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c200241fca9c9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b1036000bcb0102017f027e230041306b2202240002400240200041d4e2cc0020011b200110fc0541ff01714103460d004101102c2201450d012002420137020420022001360200200241003a00182002200241186a410110742002350208210320023502002104200241306a240020042003422086840f0b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c20024198aac9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b1036000bb210040d7f017e017f017e230041f0006b22022400200242808080808020370254200220013602642002200041d4e2cc0020011b22003602602002200241e0006a3602500240024002400240024002400240024020014104490d0020022001417c6a3602642002200041046a360260200241286a200241d0006a10e80120022802282203450d00200241306a2802002104200228022c2105200241206a200241d0006a10ad010240024020022802200d004104210620022802242207200228025022012802044104762200200020074b1b22084104742200417f4c0d0902402008450d002000102c2206450d050b2002200228025441016a22003602540240024002400240200020022802584b0d00024020070d00410021070c030b2007417f6a21094100210a4100210b024002400340200128020422004104490d022001280200220c280000210d20012000417c6a3602042001200c41046a360200200241186a200241d0006a10ad0120022802180d022001280204220c200228021c2200490d022000417f4c0d100240024020000d004101210e0c010b20001032220e450d0c2001280204210c0b200c2000490d01200e2001280200200010e908210c2001280204220e2000490d0c2001200e20006b3602042001200128020020006a360200200c450d02024002400240200b2008460d002008210e200b21080c010b200841016a22012008490d122008410174220e2001200e20014b1b22014104200141044b1b220141ffffffff0071200146410274210e200141047421010240024020080d00200241003602280c010b20022006360228200241043602302002200841047436022c0b200241c0006a2001200e200241286a107d2002280248210120022802404101460d01200228024421062001410476210e0b200620084104746a2201200c3602042001200d360200200141086a2000ad220f422086200f843702002009200b460d05200b41016a210b200a41106a210a20022802502101200e21080c010b0b20010d0a0c0f0b200e102e0b200b450d00200641086a2101034002402001280200450d002001417c6a280200102e0b200141106a2101200a41706a220a0d000b0b200841ffffffff00710d020c030b20022802542100200e21080b20022000417f6a3602542006450d01200228025021014100210b200241003a0040024020012802042200450d002001280200220c2d0000210d20012000417f6a3602042001200c41016a360200024002400240200d0e020100030b200241106a200241d0006a10ad0120022802100d022001280204220c20022802142200490d022000417f4c0d0d0240024020000d004101210b0c010b20001032220b450d092001280204210c0b200c2000490d01200b2001280200200010e908210c2001280204220d2000490d0a2001200d20006b3602042001200128020020006a360200200c450d022000ad220f422086200f84210f0b200fa72110200241086a200241d0006a10ad01024020022802080d002001280204220c200228020c2200490d002000417f4c0d0d0240024020000d004101210d0c010b20001032220d450d092001280204210c0b0240200c2000490d00200d2001280200200010e908210c2001280204220e2000490d0c2001200e20006b3602042001200128020020006a360200200c450d012000ad220f422086200f84a7210e0240200128020422004104490d0020012000417c6a220a36020420012001280200220941046a360200200a41034b0d070b200e450d010b200d102e0b200b450d012010450d010b200b102e0b02402007450d00200741047421004100210103400240200620016a220b41086a280200450d00200b41046a280200102e0b2000200141106a2201470d000b0b200841ffffffff0071450d010b2006102e0b02402004450d002004410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b2005450d012005410c6c450d012003102e0c010b2001200041786a3602042001200941086a3602002003450d002002280250280204450d0102402004450d002004410c6c21004100210103400240200320016a220d41046a280200450d00200d280200102e0b20002001410c6a2201470d000b0b02402005450d002005410c6c450d002003102e0b02402007450d0020074104742100200641086a2101034002402001280200450d002001417c6a280200102e0b200141106a2101200041706a22000d000b0b0240200841ffffffff0071450d002006102e0b0240200b450d002010450d00200b102e0b200e450d00200c102e0b200241cc006a410f3602002002413c6a41023602002002420237022c200241a0a7c90036022820024104360244200241bcaac9003602402002200241c0006a3602382002200241e8006a360248200241286a41b0a7c9001044000b02402004450d002004410c6c21002003210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b02402005450d002005410c6c450d002003102e0b02402007450d0020074104742100200641086a2101034002402001280200450d002001417c6a280200102e0b200141106a2101200041706a22000d000b0b0240200841ffffffff0071450d002006102e0b0240200b450d002010450d00200b102e0b0240200e450d00200c102e0b4101102c22010d040b1036000b2000200e41b8b2c0001056000b2000200d41b8b2c0001056000b2000200e41b8b2c0001056000b2002420137022c20022001360228200241003a0040200241286a200241c0006a410110742002350230210f20023502282111200241f0006a24002011200f422086840f0b1038000bb70102017f027e230041306b220224000240024020010d004104102c2201450d012002420437020420022001360200200241003602182002200241186a410410742002350208210320023502002104200241306a240020042003422086840f0b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c200241dcaac9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b1036000bba0102017f027e230041306b220224000240024020014104470d004101102c2201450d012002420137020420022001360200200241003a00182002200241186a410110742002350208210320023502002104200241306a240020042003422086840f0b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c200241fcaac9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b1036000b950102017f017e230041306b220224000240200041d4e2cc0020011b200110fc0541ff01714103470d00200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c20024190abc9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b20024100360200200210ce042103200241306a240020030b910102017f017e230041306b220224000240024020014108470d002001417c714104470d010b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c200241a8abc9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b20024100360200200210ce042103200241306a240020030be30303017f027e017f230041e0026b220224000240024020014104470d0020024100360284024101102c2201450d01200242013702c402200220013602c002200241003a00d702200241c0026a200241d7026a4101107420023502c002210320023502c802210402402002280284022201450d000240200228028c022205450d002005410c6c210503400240200141046a280200450d002001280200102e0b2001410c6a2101200541746a22050d000b0b02402002280288022201450d002001410c6c450d00200228028402102e0b024020024198026a2802002201450d002001410474210520024190026a28020041086a2101034002402001280200450d002001417c6a280200102e0b200141106a2101200541706a22050d000b0b024020024194026a28020041ffffffff0071450d00200228029002102e0b02402002419c026a2802002201450d00200241a0026a280200450d002001102e0b200241ac026a280200450d00200241a8026a280200102e0b200241e0026a240020044220862003840f0b200241cc026a410f360200200241146a410236020020024202370204200241a0a7c900360200200241043602c402200241ccabc9003602c0022002200241c0026a3602102002200241d8026a3602c802200241b0a7c9001044000b1036000bab0102017f027e230041306b220224000240024020010d004104102c2201450d0120024204370204200220013602004100200210762002350208210320023502002104200241306a240020042003422086840f0b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c200241f4abc9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b1036000bae0102017f027e230041306b220224000240024020014104470d004104102c2201450d0120024204370204200220013602004100200210762002350208210320023502002104200241306a240020042003422086840f0b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c2002418cacc9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b1036000bae0102017f027e230041306b220224000240024020014104470d004104102c2201450d0120024204370204200220013602004100200210762002350208210320023502002104200241306a240020042003422086840f0b200241246a410f360200200241146a410236020020024202370204200241a0a7c9003602002002410436021c200241a0acc9003602182002200241186a3602102002200241286a360220200241b0a7c9001044000b1036000bd30704067f017e017f037e230041f0006b22022400024002400240024020010d002002411436021c200241bcdac800360218200241206a41bcdac800411410ed0202400240024020022802202201450d00200228022421032002200241286a280200220436023c200220013602380240024002402004450d0020012d0000210520022004417f6a36023c2002200141016a3602382002200241386a10ab0102402002280200450d00200241003602500c010b200241d0006a200241386a200228020410990120022802502206450d004101210720022902542108200541ff01714101460d012008a72204450d00200441286c450d002006102e0b4100210720024100360210200242013703082002410a3602442002200241186a3602402002200241086a36024c41012104200241e4006a410136020020024201370254200241909dc5003602502002200241c0006a360260200241cc006a419cebc000200241d0006a103d1a2002280208200228021010ef020240200228020c450d002002280208102e0b0c010b2002200636022c200220083702302008422088a721052008a72109410021040b02402003450d002001102e0b2004450d010b200242003702304108210641002105410021090c010b20070d0020062802082205ad42287e2208422088a70d022008a72203417f4c0d02024020030d0041082106410021090c010b200628020021012003102c2206450d03200341286e210920034128490d00200621042009210703402003450d012007450d05200141086a2903002108200141106a290300210a2001290320210b2001290300210c200441186a200141186a290300370300200441106a200a370300200441086a20083703002004200c370300200441206a200b370300200441286a2104200341586a2103200141286a21012007417f6a22070d000b0b200541286c4104722201417f4c0d012001102c2204450d022002410036025820022001360254200220043602502005200241d0006a10760240200541286c2201450d00200620016a2104200621010340200241d0006a2001412010742002200141206a290300370308200241d0006a200241086a41081074200141286a22012004470d000b0b200235025821082002350250210a02402009450d00200941286c450d002006102e0b200241f0006a24002008422086200a840f0b200241146a410f360200200241e4006a410236020020024202370254200241a0a7c9003602502002410436020c200241c8acc9003602082002200241086a3602602002200241e8006a360210200241d0006a41b0a7c9001044000b1038000b1036000b200920094188decc00103c000bb80804017f027e027f017e230041f0076b220224002002428080808080203702cc07200220013602dc072002200041d4e2cc0020011b3602d8072002200241d8076a3602c80720024180046a200241c8076a10cb06024020022903880422034202510d00200229038004210420024180026a20024190046a41f00110e9081a200241086a200241c8076a10ad0120022802080d0020022802dc072200200228020c2201490d0002400240024002402001417f4c0d000240024020010d00410121050c010b200110322205450d0420022802dc0721000b0240024020002001490d00200520022802d807200110e908210020022802dc07220520014f0d012001200541b8b2c0001056000b2005102e0c050b2002200520016b22053602dc07200220022802d80720016a3602d807200241106a20024180026a41f00110e9081a2005450d01420221032001450d022000102e0c020b1038000b20024180046a200241106a41f00110e9081a0b20034202510d01200241106a20024180046a41f00110e9081a20024180026a200241106a41f00110e9081a200220013602dc07200220003602d80720024180046a200241d8076a10f7010240024020022802840422050d00410021050c010b200241d0076a20024190046a28020036020020022002290388043703c80720022802800421060b02402001450d002000102e0b20024180046a41086a2200200241c8076a41086a2201280200360200200220022903c80737038004024002402005450d00200241f0036a41086a20002802002200360200200220022903800422073703f003200241a8056a2005360200200241a4056a2006360200200241a0056a4102360200200241ac056a2007370200200241b4056a2000360200200241c0056a2003370300200241b8056a20043703002002410a36029805200242023703e804200241c8056a20024180026a41f00110e9081a200241c0076a2001290300370300200241b8076a20022903c807370300200220024180046a3602c807200241d8076a200241c8076a1090052001200241d8076a41086a280200360200200220022903d8073703c807200241c8076a10e8061a024020022903e8044202510d0020022d00800441ff01714102470d00200228028804450d00200228028404102e0b20024198056a108b02410121010c010b410021010b4101102c2200450d00200242013702840420022000360280040240024020010d00200241003a00800220024180046a20024180026a410110740c010b200241013a00800220024180046a20024180026a410110740b20023502880421032002350280042104200241f0076a240020042003422086840f0b1036000b2002411c6a410f36020020024194026a41023602002002420237028402200241a0a7c9003602800220024104360214200241e4acc9003602102002200241106a360290022002200241e8076a36021820024180026a41b0a7c9001044000b902508047f017e037f017e027f027e0f7f037e230041d0056b22022400024020014108490d00200241003a008004200041d4e2cc0020011b41086a2103200141786a2104410021010340200241003a008801024020042001470d00200141ff0171450d02200241003a0080040c020b200241e0036a20016a200320016a2d00003a00002002200141016a22003a0080042000210120004120470d000b20024188016a41186a2201200241e0036a41186a29030037030020024188016a41106a2203200241e0036a41106a29030037030020024188016a41086a2205200241e0036a41086a290300370300200220022903e00337038801200041ff01714120490d00200241286a41086a2005290300370300200241286a41106a2003290300370300200241286a41186a2001290300370300200220022903880122063703482002200637032820042000470d00200241e0036a41186a2205200241286a41186a22072903002206370300200241e0036a41106a2208200241286a41106a2209290300220a3703004108210b200241e0036a41086a2204200241286a41086a220c290300220d37030020022002290328220e3703e003200241086a41186a2006370300200241086a41106a200a370300200241086a41086a200d3703002002200e370308200241e8006a41186a2006370300200241e8006a41106a200a370300200241e8006a41086a200d3703002002200e3703682007420037030020094200370300200c420037030020024200370328200241e0036a41a081ca004107108102200c2004290000370300200220022900e003370328200241e0036a41e4d1c100410c10810220072004290000370300200920022900e0033703002002200241286a4120108e022002280204210f200228020021102007420037030020094200370300200c420037030020024200370328200241e0036a41a081ca004107108102200c2004290000370300200220022900e003370328200241e0036a41f09dc500410a10810220072004290000370300200920022900e003370300200241e0036a200241286a10880320022802e0032201410120011b211120022902e403420020011b2206a72112024002400240024002400240024002402006422088a72201450d002011200141057422136a2114200241bc056a2115200241e0036a41206a2100201121010340200241b8036a41186a2203200141186a2216290000370300200241b8036a41106a2217200141106a2218290000370300200241b8036a41086a2219200141086a221a290000370300200220012900003703b803200241c8006a41086a221b201a290000370300200241c8006a41106a221a2018290000370300200241c8006a41186a2218201629000037030020022001290000370348200520032903003703002008201729030037030020042019290300370300200220022903b8033703e00320024198056a200241e0036a10bf01200720182903003703002009201a290300370300200c201b290300370300200220022903483703280240024020022802b80522030d00410021030c010b2000200229039805370300200041186a20024198056a41186a290300370300200041106a20024198056a41106a290300370300200041086a20024198056a41086a29030037030020052007290300370300200820092903003703002004200c29030037030020024188056a41086a201541086a280200360200200220022903283703e003200220152902003703880520024188016a41386a200241e0036a41386a29030037030020024188016a41306a200241e0036a41306a29030037030020024188016a41286a200241e0036a41286a29030037030020024188016a41206a200029030037030020024188016a41186a200529030037030020024188016a41106a200829030037030020024188016a41086a2004290300370300200220022903e003370388010b20030d02200141206a2101201341606a22130d000b0b0240201241ffffff3f71450d002011102e0b41002118410021190c010b20024188026a41386a220020024188016a41386a29030037030020024188026a41306a220420024188016a41306a29030037030020024188026a41286a220520024188016a41286a29030037030020024188026a41206a220820024188016a41206a29030037030020024188026a41186a220720024188016a41186a29030037030020024188026a41106a220920024188016a41106a29030037030020024188026a41086a220c20024188016a41086a290300370300200241e8046a41086a221620024188056a41086a28020036020020022002290388013703880220022002290388053703e804200241e0026a41086a2217200c290300370300200241e0026a41106a220c2009290300370300200241e0026a41186a22092007290300370300200241e0026a41206a22072008290300370300200241e0026a41286a22082005290300370300200241e0026a41306a22052004290300370300200241e0026a41386a22042000290300370300200241f8046a41086a2200201628020036020020022002290388023703e002200220022903e8043703f80441d000102c220b450d05200b20022903e002370300200b2003360240200b20022903f804370244200b41386a2004290300370300200b41306a2005290300370300200b41286a2008290300370300200b41206a2007290300370300200b41186a2009290300370300200b41106a200c290300370300200b41086a2017290300370300200b41cc006a20002802003602000240024020134120470d0041012119410121180c010b200141206a2109201441606a211a200241bc056a2117200241e0036a41206a210041012119410121180340200921010340200241b8036a41186a2204200141186a2203290000370300200241b8036a41106a2208200141106a2205290000370300200241b8036a41086a2207200141086a2209290000370300200220012900003703b803200241c8006a41186a220c2003290000370300200241c8006a41106a22132005290000370300200241c8006a41086a2216200929000037030020022001290000370348200241e0036a41186a22032004290300370300200241e0036a41106a22052008290300370300200241e0036a41086a22082007290300370300200220022903b8033703e00320024198056a200241e0036a10bf01200241286a41186a2207200c290300370300200241286a41106a22092013290300370300200241286a41086a220c2016290300370300200220022903483703280240024020022802b80522040d00410021040c010b2000200229039805370300200041186a20024198056a41186a290300370300200041106a20024198056a41106a290300370300200041086a20024198056a41086a29030037030020032007290300370300200520092903003703002008200c29030037030020024188056a41086a201741086a280200360200200220022903283703e003200220172902003703880520024188016a41386a200241e0036a41386a29030037030020024188016a41306a200241e0036a41306a29030037030020024188016a41286a200241e0036a41286a29030037030020024188016a41206a200029030037030020024188016a41186a200329030037030020024188016a41106a200529030037030020024188016a41086a2008290300370300200220022903e003370388010b024020040d002014200141206a2201470d010c030b0b20024188026a41386a220720024188016a41386a29030037030020024188026a41306a220920024188016a41306a29030037030020024188026a41286a220c20024188016a41286a29030037030020024188026a41206a221320024188016a41206a29030037030020024188026a41186a221620024188016a41186a29030037030020024188026a41106a221b20024188016a41106a29030037030020024188026a41086a221520024188016a41086a290300370300200241e8046a41086a221c20024188056a41086a28020036020020022002290388013703880220022002290388053703e804200241e0026a41086a221d2015290300370300200241e0026a41106a2215201b290300370300200241e0026a41186a221b2016290300370300200241e0026a41206a22162013290300370300200241e0026a41286a2213200c290300370300200241e0026a41306a220c2009290300370300200241e0026a41386a22092007290300370300200241f8046a41086a2207201c28020036020020022002290388023703e002200220022903e8043703f8042008201d290300370300200520152903003703002003201b29030037030020002016290300370300200241e0036a41286a22162013290300370300200241e0036a41306a2213200c290300370300200241e0036a41386a220c2009290300370300200220022903e0023703e00320024198056a41086a221b2007280200360200200220022903f80437039805024020182019470d00201941016a22072019490d07201941017422092007200920074b1b22074104200741044b1bad42d0007e2206422088a74541037421072006a721090240024020190d0020024100360288010c010b20024108360290012002200b360288012002201941d0006c36028c010b20024188026a2009200720024188016a107d20022802900221072002280288024101460d04200228028c02210b200741d0006e21190b200141206a2109200b201841d0006c6a220720022903e003370300200529030021062003290300210a2000290300210d2016290300210e2013290300211e200c290300211f2008290300212020072004360240200741086a2020370300200741386a201f370300200741306a201e370300200741286a200e370300200741206a200d370300200741186a200a370300200741106a20063703002007200229039805370244200741cc006a201b280200360200201841016a2118201a2001470d000b0b201241ffffff3f71450d002011102e0b200220183602a0052002201936029c052002200b36029805200241e0036a20024198056a10a30341002101024020022802e0034101460d00200241b8036a41206a20024188046a280200360200200241b8036a41186a200241e0036a41206a290300370300200241b8036a41106a200241e0036a41186a290300370300200241b8036a41086a200241e0036a41106a2903003703002002200241e0036a41086a2903003703b8032002418c046a2802002101200241e0026a20024190046a41d80010e9081a0b20024198056a41086a2200200241b8036a41086a29030037030020024198056a41106a2204200241b8036a41106a29030037030020024198056a41186a2203200241b8036a41186a29030037030020024198056a41206a2205200241b8036a41206a280200360200200220022903b80337039805200241e0036a200241e0026a41d80010e9081a02402001450d0020024188016a41206a200528020036020020024188016a41186a200329030037030020024188016a41106a200429030037030020024188016a41086a200029030037030020022002290398053703880120024188026a200241e0036a41d80010e9081a200241ac016a2001360200200241b0016a20024188026a41d80010e9081a200241e0036a41186a200241e8006a41186a290300370300200241e0036a41106a200241e8006a41106a290300370300200241e0036a41086a200241e8006a41086a290300370300200220022903683703e003200241e0026a20024188016a41e7e485f306200241e0036a10e40720022902e402210620022802e002210420024188016a10b80220040d020b4100210120024100360288010c020b2007450d020c030b200241e8036a2006370300200220183602f003200220043602e4032002200f410020101b3602e00320024188016a200241e0036a1097022006a7210302402006422088a72201450d002001410c6c21002004210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b02402003450d002003410c6c450d002004102e0b024020022802880122010d00410021010c010b20024190016a2802002100200228028c0121030b4101102c2204450d01200242013702e403200220043602e0030240024020010d00200241003a008801200241e0036a20024188016a410110740c010b200241013a008801200241e0036a20024188016a410110742000200241e0036a1076200241e0036a2001200010740b20023502e803210620023502e003210a02402001450d002003450d002001102e0b200241d0056a24002006422086200a840f0b1038000b1036000b20024194016a410f360200200241f4036a4102360200200242023702e403200241a0a7c9003602e0032002410436028c012002419cadc90036028801200220024188016a3602f0032002200241c8056a36029001200241e0036a41b0a7c9001044000b891003037f017e067f230041e0016b220424000240024002400240024002400240024002400240200141e0006a22052001413c6a412010ec08450d00200441d0006a41186a200541186a290000370300200441d0006a41106a200541106a290000370300200441d0006a41086a200541086a2900003703002004200529000037035002402001200441d0006a10af022206450d00200628020c41004a0d010b200441206a41086a2201200541086a290000370300200441206a41106a2203200541106a290000370300200441206a41186a2202200541186a290000370300200420052900003703204130102c2205450d01200541003a00002005200429032037000120052004290050370021200541096a2001290300370000200541116a2003290300370000200541196a2002290300370000200541286a2201200441d7006a2900003700000240024020052d00000e040a0a000a010b200541086a280200450d09200541046a280200102e0c090b2001280200450d08200541246a280200102e0c080b2004410036020c20042005360208200441bc81ca0036020420042001360200200442003703182004420437031020044188016a4120360200200420033602840120042002360280014124102c2205450d00200442243702a401200420053602a001200441a0016a20044180016a410410744120200441a0016a1076200441a0016a200341201074200441d0006a200420042802a001220120042802a801200441106a10a702024002400240024020042802504101470d0002400240200428025422052d00000e0403030003010b200541086a280200450d02200541046a280200102e0c020b200541286a280200450d01200541246a280200102e0c010b20042802542202450d0102400240200441d8006a2903002207422088a741044f0d00410021050c010b20022800002103410121050b2007a7450d022002102e0c020b2005102e0b410021050b024020042802a401450d002001102e0b0240024002402005450d0020042003360244200441d0006a2004200441c4006a4104200441106a10a702024020042802504101470d0002400240200428025422052d00000e040a0a000a010b200541086a280200450d09200541046a280200102e0c090b200541286a280200450d08200541246a280200102e0c080b20042802542202450d08200441d8006a29030021072004200236024820042007422088a7220636024c41002105200441003a00702006417f6a210102400240034020062005460d01200441d0006a20056a200220056a22032d00003a00002004200341016a3602482004200541016a22033a00702004200136024c2001417f6a21012003210520034120470d000b200441a0016a41086a2205200441d0006a41086a290300370300200441a0016a41106a2201200441d0006a41106a290300370300200441a0016a41186a2206200441d0006a41186a290300370300200420042903503703a001200341ff0171411f4b0d010c030b200541ff0171450d02200441003a0070410021050c030b200441206a41086a2005290300370300200441206a41106a2001290300370300200441206a41186a2006290300370300200420042903a001370320200441d0006a200441c8006a10850520042802702205450d01200441f4006a28020021010c020b200041003602000c080b410021050b02402007a7450d002002102e0b2005450d0502402001450d00200141306c450d002005102e0b2004280214210820042802102109200442043703102004280218210620044100360218200641306c220a41306d2202ad420c7e2207422088a70d032007a72201417f4c0d034104210502402001450d002001102c2205450d010b2000200536020041002103200041086a4100360200200041046a2001410c6e220b36020002400240200b20024f0d00200b410174220c2002200c20024b1b220c4104200c41044b1bad420c7e2207422088a745410274210c2007a7210d024002402001410b4b0d00200441003602500c010b200441d8006a4104360200200420053602502004200b410c6c3602540b200441a0016a200d200c200441d0006a107d200441a8016a280200210120042802a0014101460d01200020042802a4012205360200200041046a2001410c6e3602000b20060d02200921010c030b2001450d030b1036000b2009200a6a210a200641306c2102200941306a2101200641047441706a41047641016a210b4100210302400340200141546a2802002206450d01200541046a200141586a290200370200200520063602002005410c6a2105200141306a2101200341016a2103200241506a22020d000b200a2101200b21030b200a20016b220a41306d21020b200041086a20033602000240200a450d00200241306c2103200141086a2105034002402005280200450d002005417c6a280200102e0b200541306a2105200341506a22030d000b0b02402008450d00200841306c450d002009102e0b20042802102103024020042802182205450d00200541306c2101200341086a2105034002402005280200450d002005417c6a280200102e0b200541306a2105200141506a22010d000b0b20042802142205450d05200541306c450d052003102e0c050b1038000b2005102e0b200041003602000b20042802102103024020042802182205450d00200541306c2101200341086a2105034002402005280200450d002005417c6a280200102e0b200541306a2105200141506a22010d000b0b20042802142205450d01200541306c450d012003102e0c010b2005102e200041003602000b200441e0016a24000b8c0804057f017e037f017e230041c0016b22022400024020010d0020024198016a41186a2203420037030020024198016a41106a2204420037030020024198016a41086a220542003703002002420037039801200241f0006a41a8f8c60041041081022005200241f0006a41086a22012900003703002002200229007037039801200241f0006a41a58bc500410b1081022003200129000037030020042002290070370300200220024198016a10a2042002280200210620022902042107200241186a22084200370300200241106a22094200370300200241086a220a420037030020024200370300200241f0006a41a8f8c6004104108102200a200129000037030020022002290070370300200241f0006a41c28cc500410a1081022008200129000037030020092002290070370300200241f0006a200210a30420022d00702101200320024189016a290000370300200420024181016a2900003703002005200241f9006a29000037030020022002290071370398012007420020061b21072006410820061b21080240024020014101460d00200241d0006a41186a4200370300200241d0006a41106a4200370300200241d0006a41086a4200370300200242003703500c010b200241d0006a41186a2003290300370300200241d0006a41106a2004290300370300200241d0006a41086a200529030037030020022002290398013703500b200241246a2007370200200241186a4204370300200241346a200241d0006a41086a2903003702002002413c6a200241e0006a290300370200200241c4006a200241d0006a41186a29030037020020024201370310200242e012370308200242f02e3703002002200229035037022c200241023a004c200220083602202002410036027820024201370370200242f02e37039801200241f0006a20024198016a41081074200242e01237039801200241f0006a20024198016a410810742002420137039801200241f0006a20024198016a410810742002420437039801200241f0006a20024198016a410810742007422088a72201200241f0006a10762007a721030240200141286c2201450d00200820016a2106200821010340200241f0006a2001412010742002200141206a29030037039801200241f0006a20024198016a41081074200141286a22012006470d000b0b200241f0006a2002412c6a41201074200241023a009801200241f0006a20024198016a41011074200235027021072002350278210b02402003450d00200341286c450d002008102e0b200241c0016a2400200b4220862007840f0b200241fc006a410f360200200241146a410236020020024202370204200241a0a7c90036020020024104360274200241c0adc9003602702002200241f0006a3602102002200241b8016a360278200241b0a7c9001044000b820402047f027e230041f0006b22022400024002400240024020010d00200241d0006a22014200370300200241c8006a22034200370300200241386a41086a2204420037030020024200370338200241386a41a8f8c6004104108102200241d8006a41fa8bc500410a1081022001200241d8006a41086a220529000037030020032002290058370300200241286a200241386a108503200241186a2002290330420020022802281b420042e012420010e808200229032050450d012002290318210620014200370300200342003703002004420037030020024200370338200241386a41a8f8c6004104108102200241d8006a41e38bc500410b1081022001200529000037030020032002290058370300200241086a200241386a10850320062002290310420020022802081b7c22072006540d024108102c2201450d032002420837023c2002200136023820022007370358200241386a200241d8006a410810742002350240210620023502382107200241f0006a240020072006422086840f0b200241e4006a410f360200200241cc006a41023602002002420237023c200241a0a7c9003602382002410436025c200241d8adc9003602582002200241d8006a3602482002200241e8006a360260200241386a41b0a7c9001044000b41e8b2c40041fa0041e4b3c400105d000b41e8b2c40041fa0041f4b3c400105d000b1036000be10c04047f017e037f027e23004190026b22022400024002400240024020010d00200241e8016a41186a22034200370300200241e8016a41106a22014200370300200241e8016a41086a22044200370300200242003703e801200241c8006a41a8f8c60041041081022004200241c8006a41086a2205290000370300200220022900483703e801200241c8006a41fa8bc500410a1081022003200529000037030020012002290048370300200241386a200241e8016a1085032002290340210620022802382107200241c8006a41186a22084200370300200241c8006a41106a220942003703002005420037030020024200370348200241c8006a41a8f8c6004104108102200241e8016a41fa8bc500410a10810220082004290000370300200920022900e801370300200241286a200241c8006a108503200241186a2002290330420020022802281b420042e012420010e808200229032050450d012002290318210a200342003703002001420037030020044200370300200242003703e801200241c8006a41a8f8c600410410810220042005290000370300200220022900483703e801200241c8006a41e38bc500410b108102200141086a200529000037000020012002290048370000200241086a200241e8016a108503200a2002290310420020022802081b7c220b200a540d02200241e8016a41186a22054200370300200241e8016a41106a22034200370300200241e8016a41086a22044200370300200242003703e801200241c8006a41a8f8c60041041081022004200241c8006a41086a2208290000370300200220022900483703e801200241c8006a41a58bc500410b108102200141086a200829000037000020012002290048370000200241c8006a200241e8016a10a20420022802482109200229024c210a200542003703002003420037030020044200370300200242003703e801200241c8006a41a8f8c600410410810220042008290000370300200220022900483703e801200241c8006a41c28cc500410a1081022005200829000037030020032002290048370300200241c8006a200241e8016a10a30420022d004821082005200241e1006a2900003703002003200241d9006a2900003703002004200241d1006a290000370300200220022900493703e8010240024020084101460d00200241a8016a41186a4200370300200241a8016a41106a4200370300200241a8016a41086a4200370300200242003703a8010c010b200241a8016a41186a2005290300370300200241a8016a41106a2003290300370300200241a8016a41086a2004290300370300200220022903e8013703a8010b200241e8016a41186a4200370300200241e8016a41106a4200370300200241e8016a41086a22044200370300200242003703e801200241c8006a41a8f8c60041041081022004200241c8006a41086a2205290000370300200220022900483703e801200241c8006a418c8bc500410b108102200141086a200529000037000020012002290048370000200241c8006a200241e8016a10b005200241d8016a41086a22012005290300370300200220022903483703d801200220022800593602d0012002200241dc006a2800003600d30120022d005822054103460d0320042001290300370300200241fc006a200a420020091b220a3702002002418c016a200241a8016a41086a29030037020020024194016a200241a8016a41106a2903003702002002419c016a200241a8016a41186a290300370200200220022903d8013703e801200220022802d0013602c801200220022800d3013600cb0120022009410820091b2203360278200242e0123703582002200b37035020022006420020071b370348200220022903a80137028401200241e8006a2004290300370300200220022903e801370360200241c8006a41286a20053a0000200241f4006a20022800cb01360000200241f1006a20022802c801360000200241c8006a10cf0421060240200aa72201450d00200141286c450d002003102e0b20024190026a240020060f0b200241f4016a410f360200200241dc006a41023602002002420237024c200241a0a7c900360248200241043602ec01200241f4adc9003602e8012002200241e8016a360258200220024188026a3602f001200241c8006a41b0a7c9001044000b41e8b2c40041fa0041e4b3c400105d000b41e8b2c40041fa0041f4b3c400105d000b41a8b6c40041c8004180b7c400105d000bde0d05047f027e027f017e047f23004190026b220224000240024002400240024020010d0020024180026a22034200370300200241f8016a22014200370300200241e8016a41086a22044200370300200242003703e801200241306a41a8f8c60041041081022004200241306a41086a2205290000370300200220022900303703e801200241306a41fa8bc500410a1081022003200529000037030020012002290030370300200241206a200241e8016a1085032002290328420020022802201b220642017c22072006540d01200241106a2007420042e012420010e808200229031850450d022002290310210620024180026a22054200370300200241f8016a22084200370300200241e8016a41086a22034200370300200242003703e801200241306a41a8f8c60041041081022003200241306a41086a2204290000370300200220022900303703e801200241306a41e38bc500410b108102200141086a22092004290000370000200120022900303700002002200241e8016a10850320062002290308420020022802001b7c220a2006540d03200542003703002008420037030020034200370300200242003703e801200241306a41a8f8c600410410810220032004290000370300200220022900303703e801200241306a41ba8bc500410f1081022009200429000037000020012002290030370000200241306a200241e8016a10a2042002280230210920022902342106200542003703002008420037030020034200370300200242003703e801200241306a41a8f8c600410410810220032004290000370300200220022900303703e801200241306a41978bc500410e1081022005200429000037030020082002290030370300200241306a200241e8016a10a30420022d003021042005200241c9006a2900003703002008200241c1006a2900003703002003200241396a290000370300200220022900313703e8010240024020044101460d00200241a8016a4200370300200241a0016a420037030020024198016a420037030020024200370390010c010b20024190016a41186a200241e8016a41186a29030037030020024190016a41106a200241e8016a41106a29030037030020024190016a41086a200241e8016a41086a290300370300200220022903e801370390010b20024180026a22084200370300200241f8016a220b4200370300200241e8016a41086a22044200370300200242003703e801200241306a41a8f8c60041041081022004200241306a41086a2203290000370300200220022900303703e801200241306a41d48bc500410f108102200141086a220c200329000037000020012002290030370000200241306a200241e8016a10b005200241c0016a41086a220d2003290300370300200220022903303703c001200220022800413602b8012002200241c4006a220e2800003600bb010240024020022d004022054103470d0020084200370300200b420037030020044200370300200242003703e801200241306a41a8f8c600410410810220042003290000370300200220022900303703e801200241306a418c8bc500410b108102200c200329000037000020012002290030370000200241306a200241e8016a10b005200241d8016a41086a2003290300370300200220022903303703d801200220022800413602d0012002200e2800003600d30120022d004022054103460d06200241e8016a41086a200241d8016a41086a290300370300200220022903d8013703e801200220022802d0013602b001200220022800d3013600b3010c010b2004200d290300370300200220022903c0013703e801200220022802b8013602b001200220022800bb013600b3010b200241e4006a2006420020091b2206370200200241f4006a20024190016a41086a290300370200200241fc006a200241a0016a29030037020020024184016a200241a8016a290300370200200241d0006a200241e8016a41086a29030037030020022009410820091b2203360260200242e0123703402002200a37033820022007370330200220022903900137026c200220022903e801370348200241306a41286a20053a0000200241d9006a20022802b001360000200241dc006a20022800b301360000200241306a10cf04210702402006a72201450d00200141286c450d002003102e0b20024190026a240020070f0b200241f4016a410f360200200241c4006a410236020020024202370234200241a0a7c900360230200241043602ec012002418caec9003602e8012002200241e8016a360240200220024188026a3602f001200241306a41b0a7c9001044000b41a8b5c40041ef004198b6c400105d000b41e8b2c40041fa0041e4b3c400105d000b41e8b2c40041fa0041f4b3c400105d000b41a8b6c40041c80041f0b6c400105d000b902508047f017e037f017e027f027e0f7f037e230041d0056b22022400024020014108490d00200241003a008004200041d4e2cc0020011b41086a2103200141786a2104410021010340200241003a008801024020042001470d00200141ff0171450d02200241003a0080040c020b200241e0036a20016a200320016a2d00003a00002002200141016a22003a0080042000210120004120470d000b20024188016a41186a2201200241e0036a41186a29030037030020024188016a41106a2203200241e0036a41106a29030037030020024188016a41086a2205200241e0036a41086a290300370300200220022903e00337038801200041ff01714120490d00200241286a41086a2005290300370300200241286a41106a2003290300370300200241286a41186a2001290300370300200220022903880122063703482002200637032820042000470d00200241e0036a41186a2205200241286a41186a22072903002206370300200241e0036a41106a2208200241286a41106a2209290300220a3703004108210b200241e0036a41086a2204200241286a41086a220c290300220d37030020022002290328220e3703e003200241086a41186a2006370300200241086a41106a200a370300200241086a41086a200d3703002002200e370308200241e8006a41186a2006370300200241e8006a41106a200a370300200241e8006a41086a200d3703002002200e3703682007420037030020094200370300200c420037030020024200370328200241e0036a41a081ca004107108102200c2004290000370300200220022900e003370328200241e0036a41e4d1c100410c10810220072004290000370300200920022900e0033703002002200241286a4120108e022002280204210f200228020021102007420037030020094200370300200c420037030020024200370328200241e0036a41a081ca004107108102200c2004290000370300200220022900e003370328200241e0036a41f09dc500410a10810220072004290000370300200920022900e003370300200241e0036a200241286a10880320022802e0032201410120011b211120022902e403420020011b2206a72112024002400240024002400240024002402006422088a72201450d002011200141057422136a2114200241bc056a2115200241e0036a41206a2100201121010340200241b8036a41186a2203200141186a2216290000370300200241b8036a41106a2217200141106a2218290000370300200241b8036a41086a2219200141086a221a290000370300200220012900003703b803200241c8006a41086a221b201a290000370300200241c8006a41106a221a2018290000370300200241c8006a41186a2218201629000037030020022001290000370348200520032903003703002008201729030037030020042019290300370300200220022903b8033703e00320024198056a200241e0036a10bf01200720182903003703002009201a290300370300200c201b290300370300200220022903483703280240024020022802b80522030d00410021030c010b2000200229039805370300200041186a20024198056a41186a290300370300200041106a20024198056a41106a290300370300200041086a20024198056a41086a29030037030020052007290300370300200820092903003703002004200c29030037030020024188056a41086a201541086a280200360200200220022903283703e003200220152902003703880520024188016a41386a200241e0036a41386a29030037030020024188016a41306a200241e0036a41306a29030037030020024188016a41286a200241e0036a41286a29030037030020024188016a41206a200029030037030020024188016a41186a200529030037030020024188016a41106a200829030037030020024188016a41086a2004290300370300200220022903e003370388010b20030d02200141206a2101201341606a22130d000b0b0240201241ffffff3f71450d002011102e0b41002118410021190c010b20024188026a41386a220020024188016a41386a29030037030020024188026a41306a220420024188016a41306a29030037030020024188026a41286a220520024188016a41286a29030037030020024188026a41206a220820024188016a41206a29030037030020024188026a41186a220720024188016a41186a29030037030020024188026a41106a220920024188016a41106a29030037030020024188026a41086a220c20024188016a41086a290300370300200241e8046a41086a221620024188056a41086a28020036020020022002290388013703880220022002290388053703e804200241e0026a41086a2217200c290300370300200241e0026a41106a220c2009290300370300200241e0026a41186a22092007290300370300200241e0026a41206a22072008290300370300200241e0026a41286a22082005290300370300200241e0026a41306a22052004290300370300200241e0026a41386a22042000290300370300200241f8046a41086a2200201628020036020020022002290388023703e002200220022903e8043703f80441d000102c220b450d05200b20022903e002370300200b2003360240200b20022903f804370244200b41386a2004290300370300200b41306a2005290300370300200b41286a2008290300370300200b41206a2007290300370300200b41186a2009290300370300200b41106a200c290300370300200b41086a2017290300370300200b41cc006a20002802003602000240024020134120470d0041012119410121180c010b200141206a2109201441606a211a200241bc056a2117200241e0036a41206a210041012119410121180340200921010340200241b8036a41186a2204200141186a2203290000370300200241b8036a41106a2208200141106a2205290000370300200241b8036a41086a2207200141086a2209290000370300200220012900003703b803200241c8006a41186a220c2003290000370300200241c8006a41106a22132005290000370300200241c8006a41086a2216200929000037030020022001290000370348200241e0036a41186a22032004290300370300200241e0036a41106a22052008290300370300200241e0036a41086a22082007290300370300200220022903b8033703e00320024198056a200241e0036a10bf01200241286a41186a2207200c290300370300200241286a41106a22092013290300370300200241286a41086a220c2016290300370300200220022903483703280240024020022802b80522040d00410021040c010b2000200229039805370300200041186a20024198056a41186a290300370300200041106a20024198056a41106a290300370300200041086a20024198056a41086a29030037030020032007290300370300200520092903003703002008200c29030037030020024188056a41086a201741086a280200360200200220022903283703e003200220172902003703880520024188016a41386a200241e0036a41386a29030037030020024188016a41306a200241e0036a41306a29030037030020024188016a41286a200241e0036a41286a29030037030020024188016a41206a200029030037030020024188016a41186a200329030037030020024188016a41106a200529030037030020024188016a41086a2008290300370300200220022903e003370388010b024020040d002014200141206a2201470d010c030b0b20024188026a41386a220720024188016a41386a29030037030020024188026a41306a220920024188016a41306a29030037030020024188026a41286a220c20024188016a41286a29030037030020024188026a41206a221320024188016a41206a29030037030020024188026a41186a221620024188016a41186a29030037030020024188026a41106a221b20024188016a41106a29030037030020024188026a41086a221520024188016a41086a290300370300200241e8046a41086a221c20024188056a41086a28020036020020022002290388013703880220022002290388053703e804200241e0026a41086a221d2015290300370300200241e0026a41106a2215201b290300370300200241e0026a41186a221b2016290300370300200241e0026a41206a22162013290300370300200241e0026a41286a2213200c290300370300200241e0026a41306a220c2009290300370300200241e0026a41386a22092007290300370300200241f8046a41086a2207201c28020036020020022002290388023703e002200220022903e8043703f8042008201d290300370300200520152903003703002003201b29030037030020002016290300370300200241e0036a41286a22162013290300370300200241e0036a41306a2213200c290300370300200241e0036a41386a220c2009290300370300200220022903e0023703e00320024198056a41086a221b2007280200360200200220022903f80437039805024020182019470d00201941016a22072019490d07201941017422092007200920074b1b22074104200741044b1bad42d0007e2206422088a74541037421072006a721090240024020190d0020024100360288010c010b20024108360290012002200b360288012002201941d0006c36028c010b20024188026a2009200720024188016a107d20022802900221072002280288024101460d04200228028c02210b200741d0006e21190b200141206a2109200b201841d0006c6a220720022903e003370300200529030021062003290300210a2000290300210d2016290300210e2013290300211e200c290300211f2008290300212020072004360240200741086a2020370300200741386a201f370300200741306a201e370300200741286a200e370300200741206a200d370300200741186a200a370300200741106a20063703002007200229039805370244200741cc006a201b280200360200201841016a2118201a2001470d000b0b201241ffffff3f71450d002011102e0b200220183602a0052002201936029c052002200b36029805200241e0036a20024198056a10a30341002101024020022802e0034101460d00200241b8036a41206a20024188046a280200360200200241b8036a41186a200241e0036a41206a290300370300200241b8036a41106a200241e0036a41186a290300370300200241b8036a41086a200241e0036a41106a2903003703002002200241e0036a41086a2903003703b8032002418c046a2802002101200241e0026a20024190046a41d80010e9081a0b20024198056a41086a2200200241b8036a41086a29030037030020024198056a41106a2204200241b8036a41106a29030037030020024198056a41186a2203200241b8036a41186a29030037030020024198056a41206a2205200241b8036a41206a280200360200200220022903b80337039805200241e0036a200241e0026a41d80010e9081a02402001450d0020024188016a41206a200528020036020020024188016a41186a200329030037030020024188016a41106a200429030037030020024188016a41086a200029030037030020022002290398053703880120024188026a200241e0036a41d80010e9081a200241ac016a2001360200200241b0016a20024188026a41d80010e9081a200241e0036a41186a200241e8006a41186a290300370300200241e0036a41106a200241e8006a41106a290300370300200241e0036a41086a200241e8006a41086a290300370300200220022903683703e003200241e0026a20024188016a41e2c289ab06200241e0036a10e40720022902e402210620022802e002210420024188016a10b80220040d020b4100210120024100360288010c020b2007450d020c030b200241e8036a2006370300200220183602f003200220043602e4032002200f410020101b3602e00320024188016a200241e0036a1097022006a7210302402006422088a72201450d002001410c6c21002004210103400240200141046a280200450d002001280200102e0b2001410c6a2101200041746a22000d000b0b02402003450d002003410c6c450d002004102e0b024020022802880122010d00410021010c010b20024190016a2802002100200228028c0121030b4101102c2204450d01200242013702e403200220043602e0030240024020010d00200241003a008801200241e0036a20024188016a410110740c010b200241013a008801200241e0036a20024188016a410110742000200241e0036a1076200241e0036a2001200010740b20023502e803210620023502e003210a02402001450d002003450d002001102e0b200241d0056a24002006422086200a840f0b1038000b1036000b20024194016a410f360200200241f4036a4102360200200242023702e403200241a0a7c9003602e0032002410436028c012002419cadc90036028801200220024188016a3602f0032002200241c8056a36029001200241e0036a41b0a7c9001044000be115020a7f027e230041d00b6b2202240020024280808080802037020c2002200136021c2002200041d4e2cc0020011b3602182002200241186a36020820024180086a200241086a1098020240024002400240024002402002418c086a2802002203450d00200241f0076a41086a20024180086a41086a28020036020020022002290380083703f00720024190086a280200210420024194086a280200210520024188076a20024198086a41e40010e9081a20024184096a280200210620024180086a4180016a2802002107200241fc086a280200210820024188066a20024188096a41800110e9081a2002200241086a10ad01024020022802000d0020022802082201280204220020022802042209490d002009417f4c0d030240024020090d004101210a0c010b20091032220a450d06200128020421000b024020002009490d00200a2001280200200910e9081a200128020422002009490d072001200020096b3602042001200128020020096a360200200241f8056a41086a200241f0076a41086a280200360200200220022903f0073703f80520024190056a20024188076a41e40010e9081a20024190046a20024188066a41800110e9081a0c030b200a102e0b02402005450d00200541246c21002003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402004450d00200441246c450d002003102e0b02402006450d00200641246c21002008210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b2007450d00200741246c450d002008102e0b410021030b20024180046a41086a2201200241f8056a41086a280200360200200220022903f8053703800420024198036a20024190056a41e40010e9081a20024198026a20024190046a41800110e9081a2003450d0120024188026a41086a2001280200360200200220022903800437038802200241a0016a20024198036a41e40010e9081a200241206a20024198026a41800110e9081a0240024020022802082802040d0020024190056a41086a20024188026a41086a28020036020020022002290388023703900520024188066a200241a0016a41e40010e9081a20024180086a200241206a41800110e9081a0c010b02402005450d00200541246c21002003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402004450d00200441246c450d002003102e0b02402006450d00200641246c21002008210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402007450d00200741246c450d002008102e0b410021032009450d00200a102e0b2003450d01200241f0076a41086a220120024190056a41086a28020036020020022002290390053703f00720024188076a20024188066a41e40010e9081a20024190046a20024180086a41800110e9081a200241a0016a41086a2001280200360200200220022903f0073703a001200241206a20024188076a41e40010e9081a20024188066a20024190046a41800110e9081a20022009360294052002200a3602900520024180086a20024190056a10f7010240024020022802840822010d00410021010c010b20024198026a41086a20024190086a28020036020020022002290388083703980220022802800821000b02402009450d00200a102e0b200241f8056a41086a220920024198026a41086a220a28020036020020022002290398023703f805024002402001450d0020024198036a41086a220b2009280200360200200220022903f8053703980320024180086a20024198026a41e80010e9081a200241a8096a2001360200200241a4096a2000360200200241a0096a4102360200200241f8086a20024190056a41086a220129030037030020024180086a4180016a200241a0056a29030037030020024188096a200241a8056a29030037030020024190096a200241b0056a290300370300200241ac096a200229039803370200200241b4096a200b280200360200200241023602980920022002290390053703f008200242023703e808200241c4096a2003360200200241c8096a2004360200200241cc096a2005360200200241c0096a200241a0016a41086a280200360200200241b8096a20022903a001370300200241d0096a200241206a41e40010e9081a200241bc0a6a2006360200200241b80a6a2007360200200241b40a6a2008360200200241c00a6a20024188066a41800110e9081a200220024180086a3602980220024190056a20024198026a109005200a200128020036020020022002290390053703980220024198026a10e8061a024020022903e8084202510d0020022d00800841ff01714102470d00200228028808450d00200228028408102e0b20024198096a108b02410121010c010b02402005450d00200541246c21002003210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b02402004450d00200441246c450d002003102e0b02402006450d00200641246c21002008210103400240024002400240024020012d00000e050400010204030b2001410c6a280200450d03200141086a280200102e0c030b2001410c6a280200450d02200141086a280200102e0c020b2001410c6a280200450d01200141086a280200102e0c010b200141086a280200450d00200141046a280200102e0b200141246a21012000415c6a22000d000b0b410021012007450d00200741246c450d002008102e0b4101102c2200450d02200242013702840820022000360280080240024020010d00200241003a00880620024180086a20024188066a410110740c010b200241013a00880620024180086a20024188066a410110740b200235028808210c200235028008210d200241d00b6a2400200d200c422086840f0b1038000b200241a4026a410f360200200241a4046a41023602002002420237029404200241a0a7c900360290042002410436029c02200241e4acc90036029802200220024198026a3602a0042002200241c80b6a3602a00220024190046a41b0a7c9001044000b1036000b2009200041b8b2c0001056000b901706057f017e017f037e157f017e230041c0006b22022400024002400240024002400240024002400240024020010d00200241306a22014200370300200241286a22034200370300200241186a41086a2204420037030020024200370318200241186a41b2fdc6004112108102200241086a41e9d8c80041041081022001200241086a41086a220529000037030020032002290008370300200241086a200241186a10ac0520022802082106200229020c210720014200370300200342003703002004420037030020024200370318200241186a41b2fdc6004112108102200241086a41b4d3c10041081081022001200529000037030020032002290008370300200241086a200241186a10ac052006410120061b21080240024002402007420020061b2209a7220420094220882207a722016b200229020c4200200228020822031b220a422088220ba722064f0d00200120066a22052001490d0c200441017422012005200120054b1b22014104200141044b1b220141ffffff3f712001462105200141057421010240024020040d00200241003602180c010b200241206a4101360200200220083602182002200441057436021c0b200241086a20012005200241186a107d200241106a280200210420022802084101460d01200228020c210820094220882207a721012004410576ad21090b200820014105746a2003410120031b2201200641057410e9081a2007200b7c21070240200a42ffffff3f83500d002001102e0b2007a7220c41144b0d01200c41014b0d050c080b2004450d0a0c090b200c410176220141ffffff3f712001470d092001410574220d417f4c0d09200d102c220e450d08200841606a210f200841a07f6a2110410421114100211241002113200c2114034020142115410021144101210602402015417f6a2204450d00024002400240024002400240200820044105746a2015410574221620086a41406a412010ec084100480d002015417e6a2104201020166a210141002114410021030340024020042003470d00201521060c080b200341016a2103200141206a2001412010ec082106200141606a21012006417f4a0d000b200341016a21062003417f7320156a21040c010b201020166a210102400340024020044101470d00410021040c020b2004417f6a2104200141206a2001412010ec082103200141606a210120034100480d000b0b20152004490d012015200c4b0d02201520046b22064101762205450d00200f20166a2101200820044105746a21030340200241186a41186a2216200341186a2217290000370300200241186a41106a2218200341106a2219290000370300200241186a41086a221a200341086a221b29000037030020022003290000370318200141086a221c2900002107200141106a221d290000210a200141186a221e290000210b200320012900003700002017200b3700002019200a370000201b2007370000201e2016290300370000201d2018290300370000201c201a29030037000020012002290318370000200141606a2101200341206a21032005417f6a22050d000b0b024020040d00200421140c050b0240200641094d0d00200421140c050b2015200c4b0d02201520046b21062004417f6a2101200f20044105746a2103034020152001490d082003200641016a220610eb062001417f6a220420014f0d04200341606a2103200421012006410a490d000c040b0b2004201541e4d1cc001057000b2015200c41e4d1cc00104d000b20152004417f6a2201490d042015200c41f4d1cc00104d000b200441016a21140b024020132012470d00201241016a22012012490d0b201241017422032001200320014b1b22014104200141044b1b220141ffffffff01712001464102742103200141037421010240024020120d00200241003602180c010b20024104360220200220113602182002201241037436021c0b200241086a20012003200241186a107d20022802102101024020022802084101470d0020010d0b0c0c0b200228020c2111200141037621120b201120134103746a2201200636020420012014360200201341016a221e21130240201e4102490d00024002400240034002400240024002402011201e2213417f6a221e4103746a2201280200450d00201341037420116a220541746a2802002204200128020422034d0d00201341024d0d0820112013417d6a22014103746a2802042206200320046a4d0d01201341034d0d08200541646a280200200620046a4b0d080c010b20134103490d012001280204210320112013417d6a22014103746a28020421060b20062003490d010b2013417e6a21010b02402013200141016a22154d0d00201320014d0d02201120014103746a221b280204221f201b2802006a2201201120154103746a221c280200221d490d032001200c4b0d04201b41046a21202008201d4105746a2219201c280204221a41057422036a210420014105742106024002402001201d6b2216201a6b2201201a490d00200e2019200310e908221820036a210502400240201a4101480d002016201a4a0d010b20192101201821030c020b200820066a21172018210320192101034020012004200320042003412010ec0841004822161b2206290000370000200141186a200641186a290000370000200141106a200641106a290000370000200141086a200641086a2900003700002003200341206a20161b2103200141206a2101200441206a200420161b220420174f0d02200520034b0d000c020b0b200e20042001410574220310e908221820036a210502400240201a4101480d00200141014e0d010b20042101201821030c010b200f20066a2106200421010340200141606a2103200541606a210420062003200420042003412010ec0841004822171b2216290000370000200641186a201641186a290000370000200641106a201641106a290000370000200641086a201641086a2900003700002005200420171b2105024020192003200120171b2201490d00201821030c020b200641606a21062018210320182005490d000b0b20012003200520036b41607110e9081a2020201f201a6a360200201b201d360200201c201c41086a20132015417f736a41037410ea081a41012113201e41014d0d050c010b0b201520134184d2cc00103c000b200120134194d2cc00103c000b201d200141a4d2cc001057000b2001200c41a4d2cc00104d000b2014450d030c000b0b200241146a410f3602002002412c6a41023602002002420237021c200241a0a7c9003602182002410436020c200241a0aec9003602082002200241086a3602282002200241386a360210200241186a41b0a7c9001044000b2001201541f4d1cc001057000b0240201241ffffffff0171450d002011102e0b200d450d01200e102e0c010b2008200c417e6a22014105746a21034102210603402001200c4b0d022003200610eb06200341606a2103200641016a21062001417f6a2201417f470d000b0b200c4102490d01200841206a21014101210641012103034002402001200341057420086a220441606a412010ec08450d00024020062003460d002001290000210720012004290000370000200141186a2205290000210a2005200441186a2216290000370000200141106a2205290000210b2005200441106a2217290000370000200141086a220529000021212005200441086a2218290000370000201820213700002017200b3700002016200a370000200420073700000b200341016a21030b200141206a2101200c200641016a2206470d000b2003200c4d0d0241c4f1c000412341e8f1c0001039000b2001200c41c4d1cc001056000b200c21030b20034105744104722201417f4c0d012001102c2206450d00200241003602202002200136021c200220063602182003200241186a107602402003450d0020034105742103200821010340200241186a200141201074200141206a2101200341606a22030d000b0b200235022021072002350218210a0240200942ffffff3f83500d002008102e0b200241c0006a24002007422086200a840f0b1036000b1038000b890e04027f017e027f017e230041a0036b2202240020024280808080802037020c200220013602ec022002200041d4e2cc0020011b22003602e8022002200241e8026a360208024002400240024002402001450d0020022001417f6a22013602ec022002200041016a3602e802024002400240024020002d00000e020100040b2002200241086a10ad0120022802000d0320022802ec02220320022802042200490d032000417f4c0d060240024020000d00410121010c010b200010322201450d0820022802ec0221030b20032000490d02200120022802e802200010e9081a20022802ec0222032000490d042002200320006b22033602ec02200220022802e80220006a3602e80220030d012000ad220442208620048421040c050b20010d02410021010c040b2000450d010b2001102e0b200241f4026a410f3602002002411c6a41023602002002420237020c200241a0a7c900360208200241043602ec02200241b4aec9003602e8022002200241e8026a360218200220024198036a3602f002200241086a41b0a7c9001044000b2000200341b8b2c0001056000b410021030240024020010d00410021050c010b2004422088a72200417f4c0d010240024020000d00410121050c010b2000102c2205450d030b20052001200010e9081a0b200241106a220620003602002002200036020c20022005360208200241c8016a41e7e485f306200241086a10ed070240024020010d000c010b2004422088a72200417f4c0d010240024020000d00410121030c010b2000102c2203450d030b20032001200010e9081a0b200620003602002002200036020c20022003360208200241e8016a41e2c289ab06200241086a10ee07410021030240024020010d00410021050c010b2004422088a72200417f4c0d010240024020000d00410121050c010b2000102c2205450d030b20052001200010e9081a0b200241106a220620003602002002200036020c2002200536020820024188026a41e9dabdf306200241086a10ee070240024020010d000c010b2004422088a72200417f4c0d010240024020000d00410121030c010b2000102c2203450d030b20032001200010e9081a0b200620003602002002200036020c20022003360208200241a8026a41f0c2c98b06200241086a10ee07410021050240024020010d00410021030c010b2004422088a72200417f4c0d010240024020000d00410121030c010b2000102c2203450d030b20032001200010e9081a0b200241086a41086a220620003602002002200036020c20022003360208200241c8026a41e1e69df306200241086a10ee070240024020010d00410021030c010b2004422088a72200417f4c0d010240024020000d00410121030c010b2000102c2203450d030b20032001200010e9081a200121050b20024188036a41086a20003602002002200036028c032002200336028803200241e8026a41e1ea91cb0620024188036a10ee072006200241c8016a41086a290300370300200241086a41106a200241c8016a41106a290300370300200241086a41186a200241c8016a41186a290300370300200241306a200241e8016a41086a290300370300200241386a200241e8016a41106a290300370300200241c0006a200241e8016a41186a290300370300200241d0006a20024188026a41086a290300370300200241d8006a20024188026a41106a290300370300200241e0006a20024188026a41186a290300370300200220022903c801370308200220022903e801370328200220022903880237034820024180016a200241a8026a41186a290300370300200241f8006a200241a8026a41106a290300370300200241f0006a200241a8026a41086a29030037030020024190016a200241c8026a41086a29030037030020024198016a200241c8026a41106a290300370300200241a0016a200241c8026a41186a290300370300200241b0016a200241e8026a41086a290300370300200241b8016a200241e8026a41106a290300370300200241c0016a200241e8026a41186a290300370300200220022903a802370368200220022903c80237038801200220022903e8023703a8012002420137038803200241003602900320024188036a200241086a4120107420024188036a200241086a41206a4120107420024188036a200241c8006a4120107420024188036a200241e8006a4120107420024188036a20024188016a4120107420024188036a200241a8016a4120107402402001450d002004a7450d002005102e0b200228029003220041046a2201417f4c0d0020022802880321030240024020010d00410121050c010b2001102c2205450d020b200241003602102002200136020c200220053602082000200241086a1076200241086a20032000107420023502102104200235020821070240200228028c03450d002003102e0b200241a0036a240020044220862007840f0b1038000b1036000bff0101067f230041c0006b2203240020032001360204200341086a200210dc08200341206a41186a2204200341046a200341086a41106a200341086a41086a2205200328020822064101461b2903001002220141186a290000370300200341206a41106a2207200141106a290000370300200341206a41086a2208200141086a290000370300200320012900003703202001102e200041186a2004290300370000200041106a2007290300370000200041086a20082903003700002000200329032037000002402006450d002005280200450d00200328020c102e0b024020022802002200450d00200241046a280200450d002000102e0b200341c0006a24000bff0101067f230041c0006b2203240020032001360204200341086a200210dc08200341206a41186a2204200341046a200341086a41106a200341086a41086a2205200328020822064101461b2903001007220141186a290000370300200341206a41106a2207200141106a290000370300200341206a41086a2208200141086a290000370300200320012900003703202001102e200041186a2004290300370000200041106a2007290300370000200041086a20082903003700002000200329032037000002402006450d002005280200450d00200328020c102e0b024020022802002200450d00200241046a280200450d002000102e0b200341c0006a24000bef1103037f017e017f230041c0036b220224002002428080808080203702cc012002200136020c2002200041d4e2cc0020011b3602082002200241086a3602c8012002200241c8016a10ad010240024002400240024020022802000d00200228020c220020022802042201490d002001417f4c0d040240024020010d00410121030c010b200110322203450d04200228020c21000b024020002001490d0020032002280208200110e9082104200228020c22002001490d032002200020016b36020c2002200228020820016a3602082004450d012001ad22054220862005842105200228020c450d022005a7450d010b2003102e0b200241146a410f360200200241dc016a4102360200200242023702cc01200241a0a7c9003602c8012002410436020c200241d4aec9003602082002200241086a3602d8012002200241b8036a360210200241c8016a41b0a7c9001044000b200220054220883e0294032002200436029003200241c8016a20024190036a109903024002400240024002400240024002400240024020022d00c8014101470d00410021010c010b200241086a200241c8016a41017241c00110e9081a200241c8016a200241086a41c00110e9081a4120102c2200450d0a200020022903c801370000200041186a200241c8016a41186a290300370000200041106a200241c8016a41106a290300370000200041086a200241c8016a41086a290300370000200241003602a80320024198036a41c0004104200241a8036a107d20024198036a41086a28020021062002280298034101460d01200228029c03220141e7e485f30636020c200142a08080808004370204200120003602004120102c2203450d0a200320022903e801370000200341186a20024180026a290300370000200341106a200241f8016a290300370000200341086a200241f0016a2903003700000240200641047622004101470d0020024290808080c0003702ac03200220013602a80320024198036a41c0004104200241a8036a107d20024198036a41086a28020021002002280298034101460d03200228029c032101200041047621000b200120033602102001411c6a41e2c289ab06360200200141146a42a080808080043702004120102c2203450d0a2003200229038802370000200341186a200241a0026a290300370000200341106a20024198026a290300370000200341086a20024190026a290300370000024020004102470d00200242a0808080c0003702ac03200220013602a80320024198036a41c0004104200241a8036a107d20024198036a41086a28020021002002280298034101460d04200228029c032101200041047621000b200120033602202001412c6a41e9dabdf306360200200141246a42a080808080043702004120102c2203450d0a200320022903a802370000200341186a200241c0026a290300370000200341106a200241b8026a290300370000200341086a200241b0026a290300370000024020004103470d00200242b0808080c0003702ac03200220013602a80320024198036a41e0004104200241a8036a107d20024198036a41086a28020021002002280298034101460d05200228029c032101200041047621000b200120033602302001413c6a41f0c2c98b06360200200141346a42a080808080043702004120102c2203450d0a200320022903c802370000200341186a200241e0026a290300370000200341106a200241d8026a290300370000200341086a200241d0026a290300370000024020004104470d00200242c0808080c0003702ac03200220013602a80320024198036a4180014104200241a8036a107d20024198036a41086a28020021002002280298034101460d06200228029c032101200041047621000b20012003360240200141cc006a41e1e69df306360200200141c4006a42a080808080043702004120102c2203450d0a200320022903e802370000200341186a20024180036a290300370000200341106a200241f8026a290300370000200341086a200241f0026a290300370000024020004105470d00200242d0808080c0003702ac03200220013602a80320024198036a41a0014104200241a8036a107d20024198036a41086a28020021002002280298034101460d07200228029c032101200041047621000b20012003360250200141dc006a41e1ea91cb06360200200141d4006a42a080808080043702000b02402005a7450d002004102e0b41e500410120011b2204102c2203450d09200241003602d001200220043602cc01200220033602c80120010d06200241003a0008200241c8016a200241086a4101107420022802c801210420022802d00121030c070b20060d080c090b2000450d080c070b2000450d070c060b2000450d060c050b2000450d050c040b2000450d040c030b200241013a0008200241c8016a200241086a410110744106200241c8016a10762001280200210420012802082203200241c8016a1076200241c8016a200420031074200241c8016a2001410c6a410410742001280210210420012802182203200241c8016a1076200241c8016a200420031074200241c8016a2001411c6a410410742001280220210420012802282203200241c8016a1076200241c8016a200420031074200241c8016a2001412c6a410410742001280230210420012802382203200241c8016a1076200241c8016a200420031074200241c8016a2001413c6a410410742001280240210420012802482203200241c8016a1076200241c8016a200420031074200241c8016a200141cc006a410410742001280250210420012802582203200241c8016a1076200241c8016a200420031074200241c8016a200141dc006a4104107420022802d001210320022802c80121040240200141046a280200450d002001280200102e0b0240200141146a280200450d002001280210102e0b0240200141246a280200450d002001280220102e0b0240200141346a280200450d002001280230102e0b0240200141c4006a280200450d002001280240102e0b0240200141d4006a280200450d002001280250102e0b200041ffffffff0071450d002001102e0b200241c0036a24002003ad4220862004ad840f0b2001200041b8b2c0001056000b1036000b1038000b9a0c02067f047e23004190026b22022400200241003a00800102402001450d002002200041d4e2cc0020011b22002d00003a0060200241013a008001024020014101460d00200220002d00013a0061200241023a00800120014102460d00200220002d00023a0062200241033a00800120014103460d00200220002d00033a0063200241043a00800120014104460d00200220002d00043a0064200241053a00800120014105460d00200220002d00053a0065200241063a00800120014106460d00200220002d00063a0066200241073a00800120014107460d00200220002d00073a0067200241083a00800120014108460d00200220002d00083a0068200241093a00800120014109460d00200220002d00093a00692002410a3a0080012001410a460d00200220002d000a3a006a2002410b3a0080012001410b460d00200220002d000b3a006b2002410c3a0080012001410c460d00200220002d000c3a006c2002410d3a0080012001410d460d00200220002d000d3a006d2002410e3a0080012001410e460d00200220002d000e3a006e2002410f3a0080012001410f460d00200220002d000f3a006f200241103a00800120014110460d00200220002d00103a0070200241113a00800120014111460d00200220002d00113a0071200241123a00800120014112460d00200220002d00123a0072200241133a00800120014113460d00200220002d00133a0073200241143a00800120014114460d00200220002d00143a0074200241153a00800120014115460d00200220002d00153a0075200241163a00800120014116460d00200220002d00163a0076200241173a00800120014117460d00200220002d00173a0077200241183a00800120014118460d00200220002d00183a0078200241193a00800120014119460d00200220002d00193a00792002411a3a0080012001411a460d00200220002d001a3a007a2002411b3a0080012001411b460d00200220002d001b3a007b2002411c3a0080012001411c460d00200220002d001c3a007c2002411d3a0080012001411d460d00200220002d001d3a007d2002411e3a0080012001411e460d00200220002d001e3a007e2002411f3a0080012001411f460d00200241106a2203200241e0006a41106a2204290300370300200241086a2205200241e0006a41086a2206290300370300200220002d001f3a007f200241186a2200200241e0006a41186a2207290300370300200241203a0080012002200229036022083703202002200837030020014120470d01200241206a41186a20002903002208370300200241206a41106a20032903002209370300200241206a41086a2005290300220a37030020022002290300220b37032020072008370300200420093703002006200a3703002002200b370360200241b8016a41d9fcc6004106108102200241c8016a41dcf1cb004107108102024002404120102c2201450d00200242203702ec01200220013602e801200241e8016a200241e0006a41201074200241f8016a20022802e801220120022802f001220010d8032002410c6a200120006a36020020022001360208200220024188026a3602042002200241f8016a360200200241d8016a2002107c024020022802ec01450d002001102e0b20022802e001220041206a2201417f4c0d010240024020010d00410121030c010b2001102c2203450d010b2002410036020820022001360204200220033602002002200241b8016a411010742002200241c8016a41101074200220022802d801220120001074024020022802dc01450d002001102e0b200241e0006a20022802002200200228020810c902200241a8016a28020021012002290360210802402002280204450d002000102e0b4104102c2200450d00200242043702642002200036026020022001410020084201511b360220200241e0006a200241206a41041074200235026821082002350260210920024190026a240020092008422086840f0b1036000b1038000b200241003a0080010b2002412c6a410f360200200241f4006a410236020020024202370264200241a0a7c90036026020024104360224200241f0aec9003602202002200241206a360270200220024188026a360228200241e0006a41b0a7c9001044000bd10504017f027e017f037e23004180086b22022400200241d0036a200041d4e2cc0020011b200110a602024020022903b8044203510d00200241d0036a41c8036a2802002101200241086a200241d0036a41c80310e9081a200241d0036a200241086a41c80310e9081a200241a0076a200241e8046a220010970442002103200241b0076a200120022903a00722044200420020022d00a90741004720022d00a807220510e70442002106024020022903b0074201520d00427f427f200241c0076a2903002206200241d0076a2903007c20022903b8072203200241c8076a2903007c22072003542201ad7c22032001200320065420032006511b22011b2206200241e0076a2903007c427f200720011b2203200241d8076a2903007c22072003542201ad7c22032001200320065420032006511b22011b2106427f200720011b21030b200241f0076a290300210720022903e8072108024020022903b8044202510d0020022d00d00341ff01714102470d0020022802d803450d0020022802d403102e0b2000108b022002410036021020024201370308200220043703d003200241086a200241d0036a41081074024002400240024020050e03000102030b200241003a00d003200241086a200241d0036a410110740c020b200241013a00d003200241086a200241d0036a410110740c010b200241023a00d003200241086a200241d0036a410110740b2002427f200620077c200320087c22042003542201ad7c22032001200320065420032006511b22011b3703d8032002427f200420011b3703d003200241086a200241d0036a41101074200235021021062002350208210320024180086a240020032006422086840f0b200241bc076a410f3602002002411c6a41023602002002420237020c200241a0a7c900360208200241043602b40720024188afc9003602b0072002200241b0076a3602182002200241f8076a3602b807200241086a41b0a7c9001044000bd60402017f027e23004180086b2202240020024198046a200041d4e2cc0020011b200110a60202402002290380054203510d0020024198046a41c8036a2802002101200241d0006a20024198046a41c80310e9081a20024198046a200241d0006a41c80310e9081a200241e8076a200241b0056a2200109704200241086a200120022903e8074200420020022d00f10741004720022d00f00710e70402402002290380054202510d0020022d00980441ff01714102470d0020022802a004450d00200228029c04102e0b2000108b0220024100360258200242013703500240024020022903084201510d00200241003a009804200241d0006a20024198046a410110740c010b200241013a009804200241d0006a20024198046a41011074200229031021032002200241086a41106a2903003703a0042002200337039804200241d0006a20024198046a41101074200241206a29030021032002200241286a2903003703a0042002200337039804200241d0006a20024198046a41101074200241306a29030021032002200241386a2903003703a0042002200337039804200241d0006a20024198046a411010740b200229034021032002200241c8006a2903003703a0042002200337039804200241d0006a20024198046a41101074200235025821032002350250210420024180086a240020042003422086840f0b200241146a410f360200200241e4006a410236020020024202370254200241a0a7c9003602502002410436020c2002419cafc9003602082002200241086a3602602002200241f8076a360210200241d0006a41b0a7c9001044000bd60201047f230041c0006b2202240041d0b0c9002103411321044109210502400240024002400240024002400240024002400240200141ff01710e0b000102030405060708090a000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a418caacc001044000b41e0c3cb00210341092104410021050c080b41a186ca00210341112104410121050c070b41c986ca002103410f2104410221050c060b41c6b0c9002103410a2104410321050c050b41b9b0c9002103410d2104410421050c040b41a7b0c900210341122104410521050c030b41ab85ca00210341082104410621050c020b41e086ca00210341102104410721050c010b4194b0c9002103410821050b200041831e3b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000bf50101047f230041306b22022400200241c8afc9004113108102200241106a41f1afc900410a108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bf50101047f230041306b22022400200241c8afc9004113108102200241106a41fbafc9004106108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bf50101047f230041306b22022400200241c8afc9004113108102200241106a41fbafc9004106108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000ba70401037f230041900c6b22042400200441106a200110fb07200441086a20042802102205200428021841d4e2cc004100410010ca0402400240024002402004280208450d000240200428020c220620024d0d00200441a8076a410a10f307200041013602002000410c6a200441b0076a280200360200200020042903a8073702040c020b200441d8096a200110fb07200441a8076a20042802d809220220042802e00910af0520042802a8072101200441e4096a200441a8076a41047241ac0210e9081a024002402001411c460d00200441fc046a200441e4096a41ac0210e9081a024020042802dc09450d002002102e0b200441d0026a200441fc046a41ac0210e9081a20042001360220200441206a410472200441d0026a41ac0210e9081a200441a8076a200441206a10970420042903a8072003580d01200441a8076a410910f307200041013602002000410c6a200441b0076a280200360200200020042903a807370204200441206a108b020c030b024020042802dc09450d002002102e0b200441a8076a410310f307200041013602002000410c6a200441b0076a280200360200200020042903a8073702040c020b200041086a200441206a41b00210e9081a20004100360200200041b8026a20063602002004280214450d030c020b200441a8076a410310f307200041013602002000410c6a200441b0076a280200360200200020042903a8073702040b2004280214450d010b2005102e0b200441900c6a24000bb40b06017f017e047f017e017f017e23004190066b22052400200541bd036a200341086a290000370000200541c5036a200341106a290000370000200541cd036a200341186a290000370000200541023a00b4032005410a3a00b003200520032900003700b503200541b0036a10fe01200541b0036a200410970420052903b00321062002280204210702404110102c2208450d00200841f8f7c60036020c2008410136020820084281808080103702004110102c2209450d0020094190f8c60036020c20094101360208200942818080801037020020082008280200417f6a220a3602000240200a0d002008280208200828020c2802001103000240200828020c280204450d002008280208102e0b200841046a220a200a280200417f6a220a360200200a0d002008102e0b200541d8006a200441b00210e9081a200541a0036a41026a2208200541256a41026a2d00003a000020054188036a41086a22042005410c6a41086a29010037030020054188036a41106a220a2005410c6a41106a290100370300200520052f00253b01a0032005200529010c37038803024002402009280208200541d8006a200928020c28020c1101000d00200541c8006a41023a0000200541c0006a41003a000020092009280200417f6a22083602004200210b2005420037033020054201370328024020080d002009280208200928020c2802001103000240200928020c280204450d002009280208102e0b200941046a22082008280200417f6a220836020020080d002009102e0b200541d8006a10dc0241012109410221080c010b200541b0036a200541d8006a41b00210e9081a200541ec056a2001360200200541e0056a41086a2007360200200541e0056a41106a200529038803370300200541f8056a2004290300370300200541e0056a41206a200a290300370300200541003a00e405200541013a00e005200520052f01a0033b00e505200520082d00003a00e7052005200936028806200541286a200541b0036a200541e0056a10dd0220052903284201512109200541286a41206a2d000021082005290330210b0b200541b0036a41186a200341186a290000370300200541b0036a41106a200341106a290000370300200541b0036a41086a200341086a290000370300200520032900003703b0032005200541d0006a28000036005f200520052900493703580240024020090d00410621090c010b2005200528005f3600e705200520052903583703e00541062109200b4202510d00200520052800e70536008f03200520052903e00537038803200821090b200541d8006a41086a2208200541b0036a41086a2204290300370300200541d8006a41106a220a200541b0036a41106a2201290300370300200541d8006a41186a2207200541b0036a41186a220c290300370300200520052903b00337035820052005290388033703a0032005200528008f033600a703200541043a00b4032005410a3a00b003200541bd036a2008290300370000200541c5036a200a290300370000200541cd036a2007290300370000200541d8036a20093a0000200520052903583700b503200541d5036a20052f0088033b0000200541d7036a2005418a036a2d00003a0000200541d9036a20052903a003370000200541e0036a20052800a703360000200541fc036a200541e0056a41186a280200360200200541f4036a200541e0056a41106a290200370200200541ec036a200541e0056a41086a290200370200200541e4036a20052902e005370200200541b0036a10fe01200541286a41106a290300210d200c200341186a2900003703002001200341106a2900003703002004200341086a290000370300200520032900003703b003200541b0036a10f907210302402002410c6a28020041ffffff3f71450d002002280208102e0b0240200241186a28020041ffffff3f71450d002002280214102e0b200020033602082000200d2006200ba71b37030020054190066a24000f0b1036000bba0503067f027e067f230041c0006b22012400200141106a200010fb0720012802102202200128021810ff0102402001280214450d002002102e0b200141106a200010f60720012802102202200128021810ff0102402001280214450d002002102e0b200141106a41186a22034200370300200141106a41106a22044200370300200141106a41086a2205420037030020014200370310200141106a41c8afc9004113108102200141306a41dbafc90041091081022003200141306a41086a220629000037030020042001290030370300200141306a200141106a4120108d0320012902344200200128023022021b220742ffffffff0f8321082002410120021b2109024002402007422088a7220a0d004100210b0c010b4100210c4100210b4100210d0240034002400240200b450d002009200d4105746a21022009200d200c6a4105746a210e034020022000412010ec08450d02200e2002290000370000200e41186a200241186a290000370000200e41106a200241106a290000370000200e41086a200241086a290000370000200e41206a210e200241206a2102200d41016a220d200a490d000c040b0b2009200d4105746a2102034020022000412010ec08450d01200241206a2102200d41016a220d200a490d000b4100210b0c030b200c417f6a210c200b41016a210b200d41016a220d200a490d000b0b0240200b0d004100210b0c010b2009200d200b6b4105746a2009200d4105746a200a200d6b41057410ea081a0b2001200936020020012008200a200b6b2202ad4220868437020420034200370300200442003703002005420037030020014200370310200141106a41c8afc9004113108102200141306a41dbafc90041091081022003200629000037030020042001290030370300200141106a200110e6040240200742ffffff3f83500d002009102e0b200141c0006a2400200241016a0bfa0203027f017e067f230041206b220224000240024020014102490d00200041206a22032000412010ec08417f4a0d002000290000210420002003290000370000200241186a2205200041186a2206290000370300200241106a2207200041106a2208290000370300200241086a2209200041086a220a290000370300200a200341086a2900003700002008200341106a2900003700002006200341186a29000037000020022004370300024020014103490d00200041206a210320002001417f6a22064105746a21080340200341206a22002002412010ec08417f4a0d012006450d0320032000290000370000200341186a200041186a290000370000200341106a200041106a290000370000200341086a200041086a290000370000200021032006417f6a22064101470d000b200821030b20032002290300370000200341186a2005290300370000200341106a2007290300370000200341086a20092903003700000b200241206a24000f0b2001200141d4d1cc00103c000bf50101047f230041306b22022400200241c8afc9004113108102200241106a41f1afc900410a108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000be909010e7f230041c0006b220424002002410020031b21052000410020011b2106200241206a200220031b2107200041206a200020011b2108200020014105746a2109200220034105746a210a4101210b41002103410021024101210c4100210d4100210e02400240034002400240024020050d002006450d010c020b02402006450d00024020052006412010ec08220f0d00410020082008200946220f1b2106410020072007200a4622101b21052008200841206a200f1b21082007200741206a20101b21070c040b200f417f4a0d02200441186a220f200541186a290000370300200441106a2210200541106a290000370300200441086a2211200541086a2900003703002004200529000037030002400240200e200d470d00200d41016a2205200d490d07200d410174220e2005200e20054b1b22054104200541044b1b220541ffffff3f71200546210e2005410574210502400240200d0d00200441003602300c010b200441013602382004200c3602302004200d4105743602340b200441206a2005200e200441306a107d2004280228210520042802204101460d012004280224210c200d210e2005410576210d0b200c200e4105746a22052004290300370000200541186a200f290300370000200541106a2010290300370000200541086a2011290300370000410020072007200a46220f1b2105200e41016a210e2007200741206a200f1b21070c040b20050d040c050b200441186a220f200541186a290000370300200441106a2210200541106a290000370300200441086a2211200541086a2900003703002004200529000037030002400240200e200d470d00200d41016a2206200d490d06200d41017422052006200520064b1b22064104200641044b1b220641ffffff3f7120064621052006410574210602400240200d0d00200441003602300c010b200441013602382004200c3602302004200d4105743602340b200441206a20062005200441306a107d2004280228210620042802204101460d012004280224210c200d210e2006410576210d0b200c200e4105746a22062004290300370000200641186a200f290300370000200641106a2010290300370000200641086a201129030037000041002106410020072007200a46220f1b2105200e41016a210e2007200741206a200f1b21070c030b20060d030c040b200c200e200020011084080240200d41ffffff3f71450d00200c102e0b0240200341ffffff3f71450d00200b102e0b200441c0006a24000f0b200441186a220f200641186a290000370300200441106a2210200641106a290000370300200441086a2211200641086a290000370300200420062900003703000240024020022003470d00200341016a22062003490d04200341017422022006200220064b1b22064104200641044b1b220641ffffff3f712006462102200641057421060240024020030d00200441003602300c010b200441013602382004200b360230200420034105743602340b200441206a20062002200441306a107d2004280228210620042802204101460d012004280224210b20032102200641057621030b200b20024105746a22062004290300370000200641186a200f290300370000200641106a2010290300370000200641086a2011290300370000410020082008200946220f1b2106200241016a21022008200841206a200f1b21080c010b0b2006450d010b1036000b1038000bd60201047f230041c0006b2202240041d0b0c9002103411321044109210502400240024002400240024002400240024002400240200141ff01710e0b000102030405060708090a000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a418caacc001044000b41e0c3cb00210341092104410021050c080b41a186ca00210341112104410121050c070b41c986ca002103410f2104410221050c060b41c6b0c9002103410a2104410321050c050b41b9b0c9002103410d2104410421050c040b41a7b0c900210341122104410521050c030b41ab85ca00210341082104410621050c020b41e086ca00210341102104410721050c010b4194b0c9002103410821050b20004183203b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000bf50101047f230041306b2202240020024181b0c9004113108102200241106a41f1afc900410a108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bf50101047f230041306b2202240020024181b0c9004113108102200241106a41fbafc9004106108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bf50101047f230041306b2202240020024181b0c9004113108102200241106a41fbafc9004106108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000ba70401037f230041900c6b22042400200441106a2001108508200441086a20042802102205200428021841d4e2cc004100410010ca0402400240024002402004280208450d000240200428020c220620024d0d00200441a8076a410a10fd07200041013602002000410c6a200441b0076a280200360200200020042903a8073702040c020b200441d8096a2001108508200441a8076a20042802d809220220042802e00910af0520042802a8072101200441e4096a200441a8076a41047241ac0210e9081a024002402001411c460d00200441fc046a200441e4096a41ac0210e9081a024020042802dc09450d002002102e0b200441d0026a200441fc046a41ac0210e9081a20042001360220200441206a410472200441d0026a41ac0210e9081a200441a8076a200441206a10970420042903a8072003580d01200441a8076a410910fd07200041013602002000410c6a200441b0076a280200360200200020042903a807370204200441206a108b020c030b024020042802dc09450d002002102e0b200441a8076a410310fd07200041013602002000410c6a200441b0076a280200360200200020042903a8073702040c020b200041086a200441206a41b00210e9081a20004100360200200041b8026a20063602002004280214450d030c020b200441a8076a410310fd07200041013602002000410c6a200441b0076a280200360200200020042903a8073702040b2004280214450d010b2005102e0b200441900c6a24000bb40b06017f017e047f017e017f017e23004190066b22052400200541bd036a200341086a290000370000200541c5036a200341106a290000370000200541cd036a200341186a290000370000200541023a00b4032005410b3a00b003200520032900003700b503200541b0036a10fe01200541b0036a200410970420052903b00321062002280204210702404110102c2208450d00200841f8f7c60036020c2008410136020820084281808080103702004110102c2209450d0020094190f8c60036020c20094101360208200942818080801037020020082008280200417f6a220a3602000240200a0d002008280208200828020c2802001103000240200828020c280204450d002008280208102e0b200841046a220a200a280200417f6a220a360200200a0d002008102e0b200541d8006a200441b00210e9081a200541a0036a41026a2208200541256a41026a2d00003a000020054188036a41086a22042005410c6a41086a29010037030020054188036a41106a220a2005410c6a41106a290100370300200520052f00253b01a0032005200529010c37038803024002402009280208200541d8006a200928020c28020c1101000d00200541c8006a41023a0000200541c0006a41003a000020092009280200417f6a22083602004200210b2005420037033020054201370328024020080d002009280208200928020c2802001103000240200928020c280204450d002009280208102e0b200941046a22082008280200417f6a220836020020080d002009102e0b200541d8006a10dc0241012109410221080c010b200541b0036a200541d8006a41b00210e9081a200541ec056a2001360200200541e0056a41086a2007360200200541e0056a41106a200529038803370300200541f8056a2004290300370300200541e0056a41206a200a290300370300200541003a00e405200520052f01a0033b00e5052005200936028806200541023a00e005200520082d00003a00e705200541286a200541b0036a200541e0056a10dd0220052903284201512109200541286a41206a2d000021082005290330210b0b200541b0036a41186a200341186a290000370300200541b0036a41106a200341106a290000370300200541b0036a41086a200341086a290000370300200520032900003703b0032005200541d0006a28000036005f200520052900493703580240024020090d00410621090c010b2005200528005f3600e705200520052903583703e00541062109200b4202510d00200520052800e70536008f03200520052903e00537038803200821090b200541d8006a41086a2208200541b0036a41086a2204290300370300200541d8006a41106a220a200541b0036a41106a2201290300370300200541d8006a41186a2207200541b0036a41186a220c290300370300200520052903b00337035820052005290388033703a0032005200528008f033600a703200541043a00b4032005410b3a00b003200541bd036a2008290300370000200541c5036a200a290300370000200541cd036a2007290300370000200541d8036a20093a0000200520052903583700b503200541d5036a20052f0088033b0000200541d7036a2005418a036a2d00003a0000200541d9036a20052903a003370000200541e0036a20052800a703360000200541fc036a200541e0056a41186a280200360200200541f4036a200541e0056a41106a290200370200200541ec036a200541e0056a41086a290200370200200541e4036a20052902e005370200200541b0036a10fe01200541286a41106a290300210d200c200341186a2900003703002001200341106a2900003703002004200341086a290000370300200520032900003703b003200541b0036a108308210302402002410c6a28020041ffffff3f71450d002002280208102e0b0240200241186a28020041ffffff3f71450d002002280214102e0b200020033602082000200d2006200ba71b37030020054190066a24000f0b1036000bba0503067f027e067f230041c0006b22012400200141106a200010850820012802102202200128021810ff0102402001280214450d002002102e0b200141106a200010800820012802102202200128021810ff0102402001280214450d002002102e0b200141106a41186a22034200370300200141106a41106a22044200370300200141106a41086a2205420037030020014200370310200141106a4181b0c9004113108102200141306a41dbafc90041091081022003200141306a41086a220629000037030020042001290030370300200141306a200141106a4120108d0320012902344200200128023022021b220742ffffffff0f8321082002410120021b2109024002402007422088a7220a0d004100210b0c010b4100210c4100210b4100210d0240034002400240200b450d002009200d4105746a21022009200d200c6a4105746a210e034020022000412010ec08450d02200e2002290000370000200e41186a200241186a290000370000200e41106a200241106a290000370000200e41086a200241086a290000370000200e41206a210e200241206a2102200d41016a220d200a490d000c040b0b2009200d4105746a2102034020022000412010ec08450d01200241206a2102200d41016a220d200a490d000b4100210b0c030b200c417f6a210c200b41016a210b200d41016a220d200a490d000b0b0240200b0d004100210b0c010b2009200d200b6b4105746a2009200d4105746a200a200d6b41057410ea081a0b2001200936020020012008200a200b6b2202ad4220868437020420034200370300200442003703002005420037030020014200370310200141106a4181b0c9004113108102200141306a41dbafc90041091081022003200629000037030020042001290030370300200141106a200110e6040240200742ffffff3f83500d002009102e0b200141c0006a2400200241016a0bc210050b7f017e087f087e0b7f230022042105200441c0016b4160712206240002400240200141ffffff3f712001470d0020014105742207417f4c0d0041012108024002402007450d002007102c2208450d0120074105762109200821042007210a0340200a450d0120042000290000370000200441086a200041086a290000370000200441106a200041106a290000370000200441186a200041186a290000370000200441206a2104200a41606a210a200041206a21002009417f6a22090d000b0b2008200110fc02200641e0006a41186a220b4200370300200641e0006a41106a220c4200370300200641e0006a41086a220d42003703002006420037036020064180016a4181b0c9004113108102200d20064180016a41086a2200290000370300200620062900800137036020064180016a41dbafc9004109108102200b2000290000370300200c20062900800137030020064180016a200641e0006a4120108d032006280280012204410120041b210e200629028401420020041b220f422088a72204450d02200e20044105746a2110200641206a410c72211120064180016a410c6a2112200e2113034020064180016a41186a2214201341186a29000037030020064180016a41106a201341106a2900003703002000201341086a2900003703002006201329000037038001200641106a20064180016a10ff0720064180016a200628021022152006280218221610b305200d201241086a290200370300200c201241106a2802003602002006201229020037036020062802a00121170240200628028801220a450d00200629038001211820112006290360370200201141086a200d290300370200201141106a200c28020036020020062018370320201721040b2006200a360228200641003602880120062903382119200620062903980122183703382006290330211a2006200629039001221b3703302006290320211c2006200629038001221d3703202006290328211e2006200629038801221f37032802400240201ea722200d00200421170c010b2006201c3703402006201e3703482006201a370350201e422088a721212006201937035802400240201aa722040d00201a422088a721222019422088a721042019a72123202021240c010b202020044105746a212220202125202021240340200b202541186a2900002218370300200c202541106a290000221b370300200d202541086a290000221d37030020002025290000221e370000200041086a2226201d370000200041106a2227201b370000200041186a222820183700002006201e37036020062024360284012006202036028001202541206a212541002104024002400240024020010e020201000b410021042001210a0340200a410176222920046a210920092004200820094105746a2000412010ec084101481b2104200a20296b220a41014b0d000b0b200820044105746a2000412010ec08450d010b20242000290000370000202441186a2028290000370000202441106a2027290000370000202441086a2026290000370000202441206a21240b20252022470d000b200628025c210420062802582123200628025421220b201fa7212a2006202136024c200620203602482006202420206b4105753602500240024020040d00202221240c010b202220044105746a212020222125202221240340200b202541186a2900002218370300200c202541106a290000221b370300200d202541086a290000221d37030020002025290000221e370000200041086a2226201d370000200041106a2227201b370000200041186a222820183700002006201e37036020062024360284012006202236028001202541206a212541002104024002400240024020010e020201000b410021042001210a0340200a410176222920046a210920092004200820094105746a2000412010ec084101481b2104200a20296b220a41014b0d000b0b200820044105746a2000412010ec08450d010b20242000290000370000202441186a2028290000370000202441106a2027290000370000202441086a2026290000370000202441206a21240b20252020470d000b0b20062023360258200620223602542006202420226b41057536025c2006290348211f2006290340211d2006290350211b200629035821180240202a450d000240200628022c41ffffff3f71450d002006280228102e0b200628023841ffffff3f71450d002006280234102e0b2006201d3703202006201f3703282006201b370330200620183703380b2006201f370388012006201b37039001201420183703002006201d37038001200620173602a00102400240201fa722040d002015201610ff010c010b2018a7210a2015201620064180016a10c0050240201f422088a741ffffff3f71450d002004102e0b200a41ffffff3f71450d00201b422088a7102e0b201341206a211302402006280214450d002015102e0b2017210420132010470d000c030b0b1036000b1038000b0240200f42ffffff3f83500d00200e102e0b20064198016a2200420037030020064190016a2204420037030020064180016a41086a220a42003703002006420037038001200641e0006a4181b0c9004113108102200a200641e0006a41086a22092900003703002006200629006037038001200641e0006a41c7c3cb004107108102200020092900003703002004200629006037030020064180016a2002200310c5052000420037030020044200370300200a42003703002006420037038001200641e0006a4181b0c9004113108102200a20092900003703002006200629006037038001200641e0006a41dbc3cb004105108102200020092900003703002004200629006037030020064180016a412010ff0102402007450d002008102e0b200524000bf50101047f230041306b2202240020024181b0c9004113108102200241106a41f1afc900410a108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bdc0301057f230041f0006b2201240020002d00002102200141186a2203200041196a290000370300200141106a2204200041116a290000370300200141086a2205200041096a2900003703002001200029000137030002400240024020020d00200141c0006a41186a22004200370300200141c0006a41106a22024200370300200141c0006a41086a420037030020014200370340200141c0006a4181b0c9004113108102200141206a41dbc3cb0041051081022000200141206a41086a29000037030020022001290020370300200141c0006a412010ff010c010b200141206a41186a2003290300370300200141206a41106a2004290300370300200141206a41086a200529030037030020012001290300370320200141c0006a41186a22004200370300200141c0006a41106a22024200370300200141c0006a41086a420037030020014200370340200141c0006a4181b0c9004113108102200141e0006a41dbc3cb0041051081022000200141e0006a41086a290000370300200220012900603703004120102c2200450d012001422037026420012000360260200141e0006a200141206a41201074200141c0006a412020012802602200200128026810b2012001280264450d002000102e0b200141f0006a24000f0b1036000b130020004106360204200041e4b0c9003602000b3400200041c8afc90036020420004100360200200041146a4106360200200041106a41d4e0c900360200200041086a42133702000b2501017f230041306b22022400200241003602102000200241086a10e705200241306a24000b2901017f230041106b2202240020024100360208200242013703002000200210b301200241106a24000b340020004181b0c90036020420004100360200200041146a4106360200200041106a41f4e8c900360200200041086a42133702000b4201027f230041106b2202240002404101102c22030d001036000b2000420137020420002003360200200241003a000f20002002410f6a41011074200241106a24000b6401027f230041c0026b220224002002411c36020802404101102c2203450d002000420137020420002003360200200241003a00bf022000200241bf026a4101107402402002280208411c460d00200241086a108b020b200241c0026a24000f0b1036000be22505027f017e027f017e037f230041b0046b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012802000e1c0102030405060708090a0b0c0d0e0f101112131415161718191a1b00010b200241086a200141386a10ca0120024180026a41286a200141306a29030037030020024180026a41206a200141286a29030037030020024180026a41186a200141206a29030037030020024180026a41106a200141186a29030037030020024180026a41086a200141106a2903003703002002200141086a29030037038002200141f8016a280200210320024180026a41306a200241086a41c00110e9081a20014180026a2903002104200241086a20024180026a41f00110e9081a200041086a200241086a41f00110e9081a20004180026a2004370300200041f8016a20033602002000411b3602000c1b0b20024180026a200141086a10cb0120004100360200200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c1a0b20024180026a200141046a10cc0120004101360200200041246a200241a0026a2802003602002000411c6a20024198026a290300370200200041146a20024190026a2903003702002000410c6a20024188026a29030037020020002002290380023702040c190b20024180026a200141086a10cd01200041086a20024180026a41a00210e9081a200041023602000c180b20004103360200200041086a200141086a2903003703000c170b41042103200141046a210502400240024002400240024002400240024020012d0004417f6a0e050102030405000b41e2a0cc00412841e89bc4001039000b200141086a2802002105410121030c040b41022103200241086a41026a200541036a2d00003a000020024180026a41086a200141146a29020037030020024190026a2001411c6a29020037030020024198026a200141246a2d00003a0000200220052f00013b010820022001410c6a29020037038002200141086a2802002105200141286a28020021010c040b200141086a2802002105410321030c020b2002410a6a200541036a2d00003a000020024180026a41086a200141146a29020037030020024190026a2001411c6a29020037030020024198026a200141246a2d00003a0000200220052f00013b010820022001410c6a2902003703800220012d00254100472106200141086a2802002105200141286a28020021010c030b200141086a2802002105410521030b0b0b200020033a0004200020022f01083b0005200020063a0025200020022f01fc013b0126200041086a20053602002000410c6a200229038002370200200041286a2001360200200041076a2002410a6a2d00003a0000200041146a20024180026a41086a2903003702002000411c6a20024190026a290300370200200041246a20024198026a2d00003a0000200041043602000c160b20024180026a200141086a10ce01200041086a20024180026a41e00010e9081a200041053602000c150b20024180026a200141046a10cf01200041063602002000410c6a20024188026a28020036020020002002290380023702040c140b20024180026a200141086a10d001200041086a20024180026a41d80010e9081a200041073602000c130b10d101000b02400240200128020422050d00410021030c010b20024180026a41186a200141286a29000037030020024180026a41106a200141206a29000037030020024188026a200141186a29000037030020024180026a41286a200141386a29000037030020024180026a41306a200141c0006a29000037030020024180026a41386a200141c8006a29000037030020024180026a41c8006a200141d8006a29000037030020024180026a41d0006a200141e0006a29000037030020024180026a41d8006a200141e8006a2900003703002002200141106a290000370380022002200141306a2900003703a0022002200141d0006a2900003703c00220024180026a41f8006a20014188016a29000037030020024180026a41f0006a20014180016a29000037030020024180026a41e8006a200141f8006a29000037030020024180026a4198016a200141a8016a29000037030020024180026a4190016a200141a0016a29000037030020024180026a4188016a20014198016a29000037030020024180026a41b8016a200141c8016a29000037030020024180026a41b0016a200141c0016a29000037030020024180026a41a8016a200141b8016a2900003703002002200141f0006a2900003703e002200220014190016a290000370380032002200141b0016a2900003703a0032001410c6a2802002201417f4c0d130240024020010d00410121030c010b2001102c2203450d150b20032005200110e9081a200241086a20024180026a41c00110e9081a0b200020033602042000410c6a2001360200200041086a2001360200200041106a200241086a41c00110e9081a200041093602000c110b20024180026a200141086a10d201200041086a20024180026a41980210e9081a2000410a3602000c100b20024180026a200141046a10d301200041046a20024180026a41e80010e9081a2000410b3602000c0f0b10d401000b20024180026a200141086a10d5012000410d360200200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0d0b20024180026a200141086a10d6012000410e360200200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0c0b20024180026a200141086a10d6012000410f360200200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0b0b20024180026a200141086a10d70120004110360200200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c0a0b200141046a2103410721050240024002400240024002400240024020012d0004417f6a0e0701020304050607000b41e2a0cc00412841a4c3cb001039000b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410121050c050b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410221050c040b20024180026a41186a200341196a29000037030020024180026a41106a200341116a29000037030020024180026a41086a200341096a290000370300200241086a41086a200341296a290000370300200241086a41106a200341316a290000370300200241086a41186a200341396a29000037030020022003290001370380022002200341216a290000370308410321050c030b200241086a200141086a10c8012002418b026a200241086a41086a2802003600002002200229030837008302410421050c020b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410521050c010b20024198026a200341196a29000037030020024190026a200341116a29000037030020024188026a200341096a2900003703002002200329000137038002410621050b200020053a0004200020022903800237000520002002290308370025200020022f00fc013b00452000410d6a20024180026a41086a290300370000200041156a20024180026a41106a2903003700002000411d6a20024180026a41186a2903003700002000412d6a200241086a41086a290300370000200041356a200241086a41106a2903003700002000413d6a200241086a41186a290300370000200041c7006a200241fe016a2d00003a0000200041113602000c090b024002400240024002400240200141086a280200417f6a0e03010203000b41e2a0cc0041284184ccc2001039000b200141386a2903002104200141306a29030021074101210841012109024002400240024002402001410c6a2d00000e050104020300010b4104210920024180026a41046a200141206a2d00003a000020022001411c6a2800003602800220012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a28020021050c030b20024188026a200141246a29000037030020024180026a41106a2001412c6a2d00003a000020022001411c6a2900003703800220012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a2802002105410021090c020b200141186a2802002203417f4c0d0f200141106a28020021010240024020030d00410121050c010b2003102c2205450d110b20052001200310e9081a410221092003210a0c010b20024188026a200141246a29000037030020024180026a41106a2001412c6a2d00003a000020022001411c6a2900003703800220012f000d2001410f6a2d0000411074722106200141186a280200210a200141146a2802002103200141106a2802002105410321090b200241086a41106a20024180026a41106a2d00003a0000200241086a41086a20024180026a41086a290300370300200241046a41026a200241fc016a41026a2d00003a00002002200229038002370308200220022f00fc013b01040c030b2001410c6a28020022094108762106410221080c010b2001410c6a28020022094108762106410321080b0b200020022f01043b002d20004112360200200041386a2004370300200041306a2007370300200041186a200a360200200041146a2003360200200041106a2005360200200041086a20083602002000411c6a20022903083702002000410c6a2006410874200941ff017172360200200041246a200241086a41086a2903003702002000412c6a200241086a41106a2d00003a00002000412f6a200241066a2d00003a00000c080b20024180026a200141086a10d801200041086a20024180026a41f00010e9081a200041133602000c070b20024180026a200141086a10d901200041086a20024180026a41f80010e9081a200041143602000c060b024002400240024020012f0104417f6a0e03010200010b20024180026a200141086a10c90120022902840221042002280280022103410321010c020b20024180026a200141086a10c90120022902840221042002280280022103410121010c010b20012f0106210541b002102c2203450d0820024180026a200141086a28020010da01200320024180026a41b00210e9081a410221010b200020013b0104200041153602002000410c6a2004370200200041086a2003360200200041066a20053b01000c050b20024180026a200141086a10db01200041086a20024180026a41a80210e9081a200041163602000c040b20024180026a200141046a10dc01200041046a20024180026a41c80010e9081a200041173602000c030b20024180026a200141086a10dd01200041086a20024180026a41c80010e9081a200041183602000c020b20024180026a200141086a10de0120004119360200200041c0006a20024180026a41386a290300370300200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000c010b20024180026a200141086a10df012000411a360200200041c0006a20024180026a41386a290300370300200041386a20024180026a41306a290300370300200041306a20024180026a41286a290300370300200041286a20024180026a41206a290300370300200041206a20024180026a41186a290300370300200041186a20024180026a41106a290300370300200041106a20024180026a41086a290300370300200041086a2002290380023703000b200241b0046a24000f0b1038000b1036000b13002000410a360204200041c4fac9003602000bf30a04077f027e047f077e23002202210320024180026b41607122022400200241c0006a10910820022802402104024002400240024002400240024020022802482205450d00200241286a2004280200109208024020054101470d004100210620024180016a21070c030b200241286a41106a2903004200200228022822081b21092002290330420020081b210a200441c4006a2108200541c4006c41bc7f6a210b41002106200241106a41106a210c2004210d410121070340200241106a20082802001092082009200c29030042002002280210220e1b220f200a20022903184200200e1b2210562009200f562009200f511b220e1b2109200a2010200e1b210a20062007200e1b2106200d2008200e1b210d200741016a2107200841c4006a2108200b41bc7f6a220b0d000b2002200a3703800120022006360290012002200937038801200d0d010b2000411310930820022802442202450d02200241c4006c450d022004102e200324000f0b20024180016a2107200520064d0d020b2004200641c4006c6a220841186a220d290200210a20042005417f6a220641c4006c220b6a220e41c0006a280200210c200e41206a290200210f200e41286a2902002110200e41306a2902002111200e41386a2902002112200e2902002113200e2902082109200e2902102114200d200e41186a290200370200200829021021152008201437021020082902082114200820093702082008290200210920082013370200200841386a2012370200200841306a2011370200200841286a2010370200200841206a220e2802002105200e200f370200200841c0006a200c360200200220063602482002201537039001200220143703880120022009370380012002200a37039801200241d0006a41186a2007411c6a280000360200200241d0006a41106a200741146a290000370300200241d0006a41086a2007410c6a290000370300200220072900043703502002280244210e20024180016a41186a2208420037030020024180016a41106a2207420037030020024180016a41086a4200370300200242003703800120024180016a41de80ca004109108102200241f0006a418c81ca00410b1081022008200241f0006a41086a29000037030020072002290070370300200b41046a2208417f4c0d020240024020080d00410121070c010b2008102c2207450d040b2002410036027820022008360274200220073602702006200241f0006a107620042006200241f0006a109b0120024180016a412020022802702208200228027810b20102402002280274450d002008102e0b2009a721060240200e450d00200e41c4006c450d002004102e0b200241f0006a200610940820024180016a200228027022082002280278220e10ae0502402002280280012207450d002008200e10ff010b2002280274210e0240024020070d00200e450d012008102e0c010b20024198016a290300210920024190016a290300210a20024188016a280200210d200228028401210b0240200e450d002008102e0b0240200d450d00200d410574210e20072108034020022008200a200910fb01200841206a2108200e41606a220e0d000b0b200241a8016a2009370300200241a0016a200a37030020024180016a41186a2208200d36020020024194016a200b36020020024180016a41106a220e20073602002002418c016a200636020020024180016a41086a220741013a0000200241093a00800120024180016a10fe012008200241d0006a41186a280200360200200e200241d0006a41106a2903003703002007200241d0006a41086a29030037030020022002290350370380012002200536029c0120014180ce186a20024180016a41004180ce181095080b200041063a00000b200324000f0b200620051042000b1038000b1036000ba60d03077f017e0a7f23004190036b22012400200141206a22024200370300200141186a22034200370300200141086a41086a420037030020014200370308200141086a41de80ca004109108102200141a8026a418c81ca00410b1081022002200141a8026a41086a290000370300200320012900a8023703002001412036022c2001200141086a360228200141306a200141086a412010ed0202400240200128023022040d00410021050c010b200128023421062001200141306a41086a280200360244200120043602402001200141c0006a10ab010240024020012802000d000240024020012802042207200128024441c4006e2202200220074b1bad42c4007e2208422088a70d002008a72202417f4c0d000240024020020d00410421050c010b2002102c2205450d020b200241c4006ead2108024002402007450d00200141a8026a41017221094100210a03400240024002400240200128024422034104490d00200a41016a210a2001280240220b280000210c20012003417c6a220d3602442001200b41046a36024041002102200141003a00c8022003417b6a210302400340200d2002460d01200141a8026a20026a200b20026a220e41046a2d00003a00002001200e41056a3602402001200241016a220e3a00c802200120033602442003417f6a2103200e2102200e4120470d000b200141f0026a41186a2202200141a8026a41186a290300370300200141f0026a41106a2203200141a8026a41106a290300370300200141f0026a41086a220b200141a8026a41086a290300370300200120012903a8023703f002200e41ff01714120490d0120014188026a41086a220e200b29030037030020014188026a41106a220b200329030037030020014188026a41186a22032002290300370300200120012903f00237038802200141a8026a200141c0006a10930120012d00a8024101460d01200141e8016a41186a22022003290300370300200141e8016a41106a2203200b290300370300200141e8016a41086a220b200e29030037030020012001290388023703e801200141c8016a41086a220e200941086a290000370300200141c8016a41106a220d200941106a290000370300200141c8016a41186a220f200941186a290000370300200120092900003703c801200141a8016a41186a22102002290300370300200141a8016a41106a22022003290300370300200141a8016a41086a2203200b290300370300200120012903e8013703a80120014188016a41186a220b200f29030037030020014188016a41106a220f200d29030037030020014188016a41086a220d200e290300370300200120012903c80137038801200141e8006a41186a220e2010290300370300200141e8006a41106a22102002290300370300200141e8006a41086a22112003290300370300200120012903a801370368200141c8006a41186a2212200b290300370300200141c8006a41106a220b200f290300370300200141c8006a41086a220f200d29030037030020012001290388013703482008422088a722032008a7470d04200341016a22022003490d082003410174220d20022002200d491b22024104200241044b1bad42c4007e2208422088a74541027421022008a7210d20030d02200141003602a8020c030b200241ff0171450d00200141003a00c8020b2008a721022002450d08200241c4006c450d082005102e0c080b200141043602b002200120053602a8022001200341c4006c3602ac020b200141f0026a200d2002200141a8026a107d20012802f802210220012802f0024101460d0320012802f4022105200241c4006ead21080b2005200341c4006c6a2202200c360200200220012903683702042002410c6a2011290300370200200241146a20102903003702002002411c6a200e290300370200200220012903483702242002412c6a200f290300370200200241346a200b2903003702002002413c6a2012290300370200200842ffffffff0f83200341016aad422086842108200a2007470d000b0b2005450d030c040b20020d010b1038000b1036000b41002105200141003602f802200142013703f0022001410a3602d4022001200141286a3602d0022001200141f0026a36028802200141bc026a4101360200200142013702ac02200141909dc5003602a8022001200141d0026a3602b80220014188026a419cebc000200141a8026a103d1a20012802f00220012802f80210ef0220012802f402450d0020012802f002102e0b2006450d002004102e0b0240024020050d0020004100360208200042043702000c010b20002008370204200020053602000b20014190036a24000bd10102027f047e230041c0006b22022400200241306a2001109408200241106a20022802302201200228023810ae050240024020022802102203450d0020022902142104200241286a2903002105200241206a290300210602402002280234450d002001102e0b2002200620052004422088420010e808200241086a29030021054201210620022903002107200442ffffff3f83500d012003102e0c010b02402002280234450d002001102e0b420021060b2000200737030820002006370300200041106a2005370300200241c0006a24000be70601047f230041c0006b2202240041e086ca0021034110210441222105024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200141ff01710e24000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223000b2002413c6a41013602002002420137022c2002419cc3cb00360228200241043602242002418883ca003602202002200241206a360238200241286a41bca8cc001044000b41d886ca00210341082104410021050c210b41c986ca002103410f2104410121050c200b41c186ca00210341082104410221050c1f0b41b286ca002103410f2104410321050c1e0b41a186ca00210341112104410421050c1d0b418e86ca00210341132104410521050c1c0b41fd85ca00210341112104410621050c1b0b41f285ca002103410b2104410721050c1a0b41e885ca002103410a2104410821050c190b41db85ca002103410d2104410921050c180b41cf85ca002103410c2104410a21050c170b41be85ca00210341112104410b21050c160b41b385ca002103410b2104410c21050c150b41ab85ca00210341082104410d21050c140b41a385ca00210341082104410e21050c130b419485ca002103410f2105410f21040c120b418385ca00210341112104411021050c110b41f484ca002103410f2104411121050c100b41e984ca002103410b2104411221050c0f0b41e084ca00210341092104411321050c0e0b41d684ca002103410a2104411421050c0d0b41ce84ca00210341082104411521050c0c0b41c284ca002103410c2104411621050c0b0b41b184ca00210341112104411721050c0a0b41a984ca00210341082104411821050c090b41a084ca00210341092104411921050c080b418f84ca00210341112104411a21050c070b418284ca002103410d2104411b21050c060b41f883ca002103410a2104411c21050c050b41e783ca00210341112104411d21050c040b41df83ca00210341082104411e21050c030b41d083ca002103410f2104411f21050c020b41c183ca002103410f2104412021050c010b41b383ca002103410e2104412121050b200041831c3b0100200041086a2004360200200041046a2003360200200041026a20053a0000200241c0006a24000b850201037f230041d0006b22022400200241086a41de80ca004109108102200241186a419781ca004109108102200220013602342002200241346a410410a301370338200241cc006a200241346a41046a3602002002200241c0006a3602442002200241346a3602482002200241386a360240200241286a200241c0006a107c024002402002280230220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241d0006a24000f0b1038000b1036000bf30501077f230041e0016b22042400200441d0006a41186a22054200370300200441d0006a41106a22064200370300200441d0006a41086a2207420037030020044200370350200441086a41de80ca0041091081022007200441086a41086a220829000037030020042004290008370350200441086a41ccf8ca00410f10810220052008290000370300200620042900083703002004200441d0006a4120108e02200428020421092004280200210a20054200370300200642003703002007420037030020044200370350200441086a41de80ca0041091081022007200829000037030020042004290008370350200441086a41ccf8ca00410f1081022005200829000037030020062004290008370300200420094100200a1b220541016a360208200441d0006a4120200441086a410410b201200441376a42003700002004412f6a4200370000200441276a42003700002004411f6a4200370000200441086a410f6a42003700002004420037000f200441d0006a41096a2008290000370000200441e1006a200441086a41106a290000370000200441e9006a200441086a41186a290000370000200441f1006a200441086a41206a290000370000200441f9006a200441306a29000037000020044180016a42003700002004418c016a200336020020044188016a200036020020044190016a200129000037030020044198016a200141086a290000370300200441a0016a200141106a290000370300200441a8016a200141186a290000370300200441003a005020042004290008370051200441b0016a20023a0000200441c0006a20051089052004280248210820042802402101200441003602d801200442013703d001200441d0006a200441d0016a10bc052001200820042802d001220620042802d80110b201024020042802d401450d002006102e0b02402004280244450d002001102e0b200441dc006a2005360200200441d8006a41033a0000200441093a0050200441d0006a41096a20023a0000200441d0006a10fe01200441e0016a24000b8d04010b7f230041e0016b22022400200241206a41186a22034200370300200241206a41106a22044200370300200241206a41086a2205420037030020024200370320200241e0006a41de80ca0041091081022005200241e0006a41086a220629000037030020022002290060370320200241e0006a418081ca00410c1081022003200629000037030020042002290060370300200241e0006a200241206a10aa050240024020022d00800122034103470d00200041131093080c010b200241206a412010ff01200241086a22042006290300370300200241106a2205200241e0006a41106a2207290300370300200241186a2208200241e0006a41186a220929030037030020022002290360370300200241c0006a41186a220a4200370300200241c0006a41106a220b4200370300200241c0006a41086a220c420037030020024200370340200241e0006a41de80ca004109108102200c200629000037030020022002290060370340200241e0006a41a8fbca004115108102200a2006290000370300200b2002290060370300200241013a0060200241c0006a4120200241e0006a410110b201200641023a0000200241093a0060200241e0006a10fe012009200829030037030020072005290300370300200620042903003703002002200229030037036020014180ce186a200241e0006a20034180ce18109508200041063a00000b200241e0016a24000bf60d040a7f027e027f027e230041b0096b2203240020034190016a2001109808200341d0066a2003280290012204200328029801220510ad0541022106024020032d00d006220741024622080d002004200510ff010b200341f8036a411f6a2209200341f0066a280000360000200341f8036a41186a220a200341e9066a290000370300200341f8036a41106a220b200341e1066a290000370300200341f8036a41086a220c200341d9066a290000370300200320032900d1063703f80320034198076a290300210d20034190076a290300210e200341fc066a280200210f200341f8066a2802002110200341f4066a2802002105024020080d00200341c8006a411f6a2009280000360000200341c8006a41186a200a290300370300200341c8006a41106a200b290300370300200341c8006a41086a200c290300370300200320032903f803370348200721060b0240200328029401450d002004102e0b024002400240024002400240200641037122044103460d0020040e03010001010b200341f0006a41186a2206200341c8006a41186a290300370300200341f0006a41106a2204200341c8006a41106a290300370300200341f0006a41086a2208200341c8006a41086a290300370300200320032903483703702003200f3602c403200320053602c00320034190016a200341c0036a1098010240200328029001411c460d00200341386a200341f0006a200e200d10fb01200341a8076a200d370300200341a0076a200e370300200341d0066a41086a410c3a0000200341f9066a200329037037000020034181076a200829030037000020034189076a200429030037000020034191076a2006290300370000200341e1066a200141086a290000370000200341e9066a200141106a290000370000200341f1066a200141186a2900003700002001290000210d200341093a00d006200341d0066a41096a200d370000200341d0066a10fe01200341f8036a20034190016a41b00210e9081a4110102c2201450d02200141f8f7c60036020c200141013602082001428180808010370200024002404101200341f8036a1093060d00200341e8036a41023a000041002106200341e0036a41003a000020012001280200417f6a2204360200200342003703d003200342013703c803024020040d002001280208200128020c2802001103000240200128020c280204450d002001280208102e0b200141046a22042004280200417f6a220436020020040d002001102e0b200341f8036a10dc020c010b200341d0066a200341f8036a41b00210e9081a2003418a096a200341b2066a29010037010020034192096a200341ba066a2901003701002003419a096a200341c2066a290100370100200341a0096a200341c8066a290100370100200341003b018009200320032901aa0637018209200320013602a809200341c8036a200341d0066a20034180096a10dd0220032903c8035021060b200341dc066a2002360200200341d8066a41073a0000200341093a00d006200341d0066a41096a20063a0000200341d0066a10fe01200041063a000020100d040c050b200341186a200341f0006a200e200d10cb022003290318210d2003200341186a41086a290300220e3703d8062003200d3703d00602400240200d200e844200520d002003200341d0066a3602f803200341f8036a10cc020c010b200342f0f2bda1a7ee9cb9f9003703f803200341d0066a200341f8036a10cd02200341086a200341d0066a200d200e10fd0120034188046a200341086a41086a2903002211200e7d20032903082212200d54ad7d200e20117d200d201254ad7d2012200d562011200e562011200e511b22061b37030020032012200d7d200d20127d20061b3703800420032006ad3703f803200341f8036a41086a21040240024020060d00200320043602c803200341c8036a10cc020c010b200320043602c803200341c8036a10ce020b200341e8066a200e370300200341e0066a200d370300200341d8066a41063a00002003410e3a00d006200341d0066a10fe010b200341d0066a41086a410d3a0000200341fc066a20023602002001290000210d200341093a00d006200341d0066a41096a200d370000200341e1066a200141086a290000370000200341e9066a200141106a290000370000200341f1066a200141186a290000370000200341d0066a10fe012000411210930820100d030c040b200341d0066a41086a410e3a0000200341fc066a20023602002001290000210d200341093a00d006200341d0066a41096a200d370000200341e1066a200141086a290000370000200341e9066a200141106a290000370000200341f1066a200141186a290000370000200341d0066a10fe0120004110109308200641037122014103460d0120010e03030103030b1036000b2010450d010b2005102e0b200341b0096a24000bf50101047f230041306b22022400200241de80ca004109108102200241106a41f780ca004109108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000be70301047f23004180016b22022400200241386a41a081ca004107108102200241d8006a41a781ca0041121081022002200136027c2002200241fc006a410410a3013703282002410c6a200241fc006a41046a3602002002200241306a3602042002200241fc006a3602082002200241286a360200200241c8006a2002107c024002402002280250220341206a2201417f4c0d000240024020010d00410121040c010b2001102c2204450d020b200241003602302002200136022c20022004360228200241286a200241386a41101074200241286a200241d8006a41101074200241286a20022802482201200310740240200228024c450d002001102e0b200220022802282201200228023010a503200241e0006a22032002410c6a290200370300200241d8006a41106a200241146a290200370300200241f0006a22042002411c6a290200370300200241f8006a2205200241246a280200360200200220022902043703580240024020022802004101460d00200041003602000c010b20004101360200200020022903583702042000410c6a2003290300370200200041146a200241e8006a2903003702002000411c6a2004290300370200200041246a20052802003602000b0240200228022c450d002001102e0b20024180016a24000f0b1038000b1036000bcc0d04037f017e057f077e230041b0026b220424000240024002400240024002400240200141e0006a22052001413c6a412010ec08450d0020044180016a41186a200541186a29000037030020044180016a41106a200541106a29000037030020044180016a41086a200541086a29000037030020042005290000370380010240200120044180016a10af022206450d00200628020c41004a0d010b200441e0006a41086a2201200541086a290000370300200441e0006a41106a2203200541106a290000370300200441e0006a41186a2202200541186a290000370300200420052900003703604130102c2205450d01200541003a0000200520042903603700012005200429008001370021200541096a2001290300370000200541116a2003290300370000200541196a2002290300370000200541286a220120044187016a29000037000002400240024020052d00000e0402020002010b200541086a280200450d01200541046a280200102e0c010b2001280200450d00200541246a280200102e0b2005102e200041003602400c060b2004410036021420042005360210200441bc81ca0036020c20042001360208200441c8016a4120360200200420033602c401200420023602c0014124102c2205450d002004422437021c20042005360218200441186a200441c0016a410410744120200441186a1076200441186a20034120107420044180016a200441086a20042802182205200428022010aa020240200428021c450d002005102e0b02402004280280014101470d000240024020042802840122052d00000e0407070007010b200541086a280200450d06200541046a280200102e0c060b200541286a280200450d05200541246a280200102e0c050b02402004280284012205450d000240024020044188016a2903002207422088a741044f0d00410021010c010b20052800002103410121010b02402007a7450d002005102e0b2001450d002004200336021820044180016a200441086a200441186a410410aa0202402004280280014101470d000240024020042802840122052d00000e0407070007010b200541086a280200450d06200541046a280200102e0c060b200541286a280200450d05200541246a280200102e0c050b024020042802840122020d00200041003602400c070b200420044188016a2903002207422088a7220636025c2004200236025841002105200441003a00382006417f6a21010240034020062005460d01200441186a20056a200220056a22032d00003a00002004200341016a3602582004200541016a22033a00382004200136025c2001417f6a21012003210520034120460d040c000b0b0240200541ff0171450d00200441003a00380b410021050c030b200041003602400c050b1036000b200441c0016a41086a2205200441186a41086a290300370300200441c0016a41106a2201200441186a41106a290300370300200441c0016a41186a2206200441186a41186a290300370300200420042903183703c0010240200341ff0171411f4b0d00410021050c010b200441e0006a41086a2005290300370300200441e0006a41106a2001290300370300200441e0006a41186a2006290300370300200420042903c001370360200441c0016a200441d8006a108505024020042802e00122050d00410021050c010b20044180016a41186a2201200441e0006a41186a29030037030020044180016a41106a2203200441e0006a41106a29030037030020044180016a41086a2206200441e0006a41086a29030037030020044180016a41286a2208200441c0016a41086a29030037030020044180016a41306a2209200441c0016a41106a29030037030020044180016a41386a220a200441c0016a41186a290300370300200441f0016a41086a220b200441ec016a2802003602002004200429036037038001200420042903c0013703a0012004200441e4016a2902003703f001200441186a41386a220c200a290300370300200441186a41306a2009290300220d370300200441186a41286a2008290300220e370300200441186a41206a20042903a001220f370300200441186a41186a20012903002210370300200441186a41106a20032903002211370300200441186a41086a2006290300221237030020042004290380012213370318200041306a200d370300200041286a200e370300200041206a200f370300200041186a2010370300200041106a2011370300200041086a201237030020002013370300200041386a200c290300370300200020042903f001370244200041cc006a200b2802003602000b200020053602402007a7450d022002102e0c020b2005102e200041003602400c010b2005102e200041003602400b200441b0026a24000bca32021a7f0c7e23002201210220014180056b41607122012400200041246a220328020022042802002105200341d0a1c00036020020002802202106200041003602202000412c6a2203280200210720034100360200200041286a41003602002001200036021c2004200641016a22086a2109200441046a21032005417f7341808182847871210a200141a0026a410572210b200141a0026a41276a210c200141a0026a41206a210d2004210502400240034002400240200a0d000340024020032009490d004100210e0c060b200541c07d6a21052003280200210e200341046a220f2103200e41808182847871220e418081828478460d000b200e41808182847873220a417f6a200a71210e0c010b200a417f6a200a71210e2005450d022003210f0b20014180046a41186a221020054100200a684103766b41d0006c6a221141b07f6a220341186a29020037030020014180046a41106a2212200341106a29020037030020014180046a41086a2213200341086a2902003703002001200329020037038004201141506a280200210a201141546a2d00002111200c200341cc006a280000360000200d200341c5006a290000370300200141a0026a41186a22142003413d6a290000370300200141a0026a41106a2215200341356a290000370300200141a0026a41086a22162003412d6a290000370300200120032900253703a0022007417f6a2107024020114102470d00200f21030c030b200141b8036a41186a22032010290300370300200141b8036a41106a22172012290300370300200141b8036a41086a22182013290300370300200141a8016a41086a22192016290300370300200141a8016a41106a22162015290300370300200141a8016a41186a22152014290300370300200141a8016a41206a2214200d290300370300200141a8016a41276a221a200c28000036000020012001290380043703b803200120012903a0023703a801201020032903003703002012201729030037030020132018290300370300200120012903b80337038004200b20012903a801370000200b41086a2019290300370000200b41106a2016290300370000200b41186a2015290300370000200b41206a2014290300370000200b41276a201a280000360000200120113a00a4022001200a3602a002200128021c220341d0006a2802002111200328024c210302400240200a4125490d0020012802ac02210a20012802a80221100c010b200b21100b200120012f01cc023b01c8042001200a3602c404200120103602c004200320014180046a200141c0046a201128021c110600024020012802a0024125490d0020012802a802102e0b200f2103200e210a0c000b0b410021050b02402007450d00034002400240200e0d000340200320094f0d04200541c07d6a21052003280200210e200341046a220f2103200e41808182847871220e418081828478460d000b200e41808182847873220e417f6a200e71210b200f21030c010b2005450d02200e417f6a200e71210b0b200e68210f200b210e20054100200f4103766b41d0006c6a220f41506a2802004125490d00200f41586a280200102e200b210e0c000b0b024002402006450d00200441ff01200641056a10eb081a200641074d0d00200841037641076c21030c010b200621030b200020063602202000412c6a4100360200200041286a2003360200200041246a2004360200024002400240024002400240200128021c22052d00584101460d00200541dc006a28020021030240200541c8006a220b280200220e200e417f6a2209200541c0006a220f280200220e2005413c6a220a2802006b716b4101470d00200a10a502200b280200417f6a2109200f280200210e0b200f2009200e41016a71360200200541c4006a280200200e4102746a200336020002400240024002400240024002400240024002400240200541386a280200220e20034d0d00200541306a2209280200200341fc006c6a2203290210211b200320012903b0023702102003290208211c200320012903a802370208200341186a220e290200211d200e20012903b802370200200141003a00a002200141003602a4022003290200211e200320012903a002370200200141206a41086a220e200341e8006a290200370300200141206a41106a220f200341f0006a290200370300200141206a41186a220b200341f8006a2802003602002001201b370390012001201c370388012001201e37038001200120032902603703202001201d370398012003290240211f200341c8006a2902002120200341d0006a2902002121200341d8006a290200212220032902202123200341286a2902002124200341306a29020021252001200341386a29020022263703782001202537037020012024370368200120233703602001202237035820012021370350200120203703482001201f3703400240201ea741ff01714101470d00200141a8016a41176a220a200129009801221e370000200141a8016a41106a2211200129009101221c370300200141a8016a41086a2210200129008901221b37030020052802542203200129008101221d37000020032023a722053a001f200341086a201b370000200341106a201c370000200341176a201e3700002001201d3703a801200141a0026a41d8006a2022370300200141a0026a41d0006a2021370300200141a0026a41c8006a2020370300200141e0026a201f370300200141dc026a200128027c360200200141d4026a2001290274370200200141cc026a200129026c370200200120012902643702c40220014180036a2001290320370300200141a0026a41e8006a200e290300370300200141a0026a41f0006a200f290300370300200141a0026a41f8006a200b280200360200200141a9026a2010290300370000200141b1026a2011290300370000200141a0026a41186a200a290000370000200120012903a8013700a102200141c0026a20053a0000200141013a00a0022009200141a0026a109d082103200128021c220141003a0058200141dc006a20033602000c0c0b201ca72105201c422088a72103200141003602d401200141003a00ac01200141003602a801200141e8016a41106a2001280258360200200141e8016a41086a2001290350370300200120012903483703e80102400240024002400240201e422088a70e050102030400010b200141c0026a2024370300200141b8026a2023370300200141b0026a201d370300200141a8026a201b370300200141c8026a2025370300200120053602a002200120033602a4020240024020034125490d00201b422088a7210b201da721030c010b200141a9026a210b0b2005410176210f024002402005410171450d002003200f4d0d08200b200f6a2d0000410f71210e4100210a200f41016a210f0c010b2003200f490d064101210a4100210e0b200341017420056b220541ffff03200541ffff03491b220541017641036a2211102c2210450d142003200f6b2109200b200f6a210f200141003602e001200120113602dc01200120103602d80102402026422088a72218410020181b2211450d00200120053602840420014181023b01800420014180046a200141d8016a10ff0541002105200a450d0a410021030c0d0b2001200536028404200141013b01800420014180046a200141d8016a10ff0541002105200a450d0a410021030c0b0b4101102c2203450d13200141013602dc01200120033602d801200341003a0000200141013602e0010c0d0b200141c0026a2024370300200141b8026a2023370300200141b0026a201d370300200141a8026a201b370300200141c8026a2025370300200120053602a002200120033602a4020240024020034125490d00201b422088a72109201da721030c010b200141a9026a21090b2005410176210e024002402005410171450d002003200e4d0d08200141013a00800420014188046a2003200e41016a22056b3602002001200920056a3602840420012009200e6a2d0000410f713a0081040c010b2003200e490d0620014188046a2003200e6b360200200141003b01800420012009200e6a360284040b200141d8016a20014180046a2026a72203201fa710970702402026422088a7450d002003102e0b20012802a4024125490d0c200141ac026a280200102e0c0c0b200141c0026a2024370300200141b8026a2023370300200141b0026a201d370300200141a8026a201b370300200141c8026a2025370300200120053602a002200120033602a4020240024020034125490d00201b422088a7210e201da721030c010b200141a9026a210e0b200120053602e803200120033602e4032001200e3602e003200141c0046a200141e0036a109e08200141a8016a200141e0036a41002001109f082103200128021c2105200141b8036a41086a201f370300200141b8036a41106a20012903e801370300200141d0036a200141e8016a41086a290300370300200141d8036a200141e8016a41106a280200360200200120263703b80320014180046a2005200141b8036a200141a8016a10a008200141a8016a200310a108109607000b109507000b2003200e419482ca00103c000b200f200341e0eecc001056000b200f200341f0eecc00103c000b200e200341e0eecc001056000b200e200341f0eecc00103c000b410121030c020b410121030b03400240024020030e020001010b200520094f0d03200f20056a2d0000210e200541016a2105410121030c010b02400240024020012802e001220320012802dc01470d00200341016a220b2003490d0b2003410174220a200b200a200b4b1b220b4108200b41084b1b210b0240024020030d0020014100360280040c010b20014180046a41086a41013602002001200336028404200120012802d801360280040b200141b8036a200b410120014180046a107d200141c0036a280200210b20012802b8034101460d0120012802bc03210a2001200b3602dc012001200a3602d8010b20012802d80120036a200e3a00002001200341016a3602e0010c010b200b0d0a0c090b410021030c000b0b03400240024020030e020001010b200520094f0d02200f20056a2d0000210e200541016a2105410121030c010b02400240024020012802e001220320012802dc01470d00200341016a220b2003490d0a2003410174220a200b200a200b4b1b220b4108200b41084b1b210b0240024020030d0020014100360280040c010b20014180046a41086a41013602002001200336028404200120012802d801360280040b200141b8036a200b410120014180046a107d200141c0036a280200210b20012802b8034101460d0120012802bc03210a2001200b3602dc012001200a3602d8010b20012802d80120036a200e3a00002001200341016a3602e0010c010b200b450d080c090b410021030c000b0b20012802e00122162103024002400240024002400240201620012802dc01470d00201641016a22032016490d0b201641017422052003200520034b1b22034108200341084b1b21030240024020160d0020014100360280040c010b20014180046a41086a41013602002001201636028404200120012802d801360280040b200141b8036a2003410120014180046a107d200141c0036a280200210320012802b8034101460d0120012802bc032105200120033602dc01200120053602d80120012802e00121030b20012802d80120036a41003a0000200120012802e00141016a22033602e001024002400240200320012802dc01470d00200341016a22052003490d0d2003410174220e2005200e20054b1b22054108200541084b1b21050240024020030d0020014100360280040c010b20014180046a41086a41013602002001200336028404200120012802d801360280040b200141b8036a2005410120014180046a107d200141c0036a280200210320012802b8034101460d0120012802bc032105200120033602dc01200120053602d80120012802e00121030b2026a7221741c0046a211420012802d80120036a41003a0000200120012802e00141016a3602e00102402011450d00201f422088a72203200141d8016a1076200141d8016a2011200310740b20142017470d0141002111410021030c040b20030d0c0c0b0b20014180046a410172210e200141a9026a2119200141c0046a41017221054100210a20172103410021114101210b02400340200141023a0080042003290200211e200129039804211c2001290390042123200129038804211b20032001290380043702002003290208211d2003201b3702082003290210211b20032023370210200341186a220929020021232009201c370200200120233703d8042001201b3703d0042001201d3703c8042001201e3703c004200341206a280200210720014180046a41176a2210200541176a29000037000020014180046a41106a2209200541106a29000037030020014180046a41086a220f200541086a29000037030020012005290000370380040240201ea7220c41ff017122124103470d0020114180fe037141087621030c060b200141e0036a41176a22132010290000370000200141e0036a41106a22102009290300370300200141e0036a41086a200f290300221e3703002001200129038004221c3703e003200141c0046a41176a220d2013290000370000200141c0046a41106a22132010290300370300200141c0046a41086a2210201e3703002001201c3703c00402400240024020124102470d00200141023a00b8030c010b0240024020012802a40222124125490d0020012802b002211220012802ac0221150c010b201921150b200120012802a0023602f804200120123602f404200120153602f004200141a8016a200141f0046a4101200a109f082112200128021c2115200e20012903c004370000200e41086a2010290300370000200e41106a2013290300370000200e41176a200d2900003700002001200c3a008004200120073602a004200141b8036a201520014180046a200141a8016a10a008200141a8016a201210a10820012d00b8034103460d010b20014180046a41206a200141b8036a41206a29030037030020014180046a41186a200141b8036a41186a2903003703002009200141b8036a41106a290300370300200f200141b8036a41086a290300370300200120012903b803221e37038004410021090240024002400240201ea741ff0171417f6a0e020103000b4120200141d8016a1076200141d8016a200e412010740c010b200141c0046a41186a200e41186a2900003703002013200e41106a2900003703002010200e41086a2900003703002001200e2900003703c00420012802a404220941214f0d042009200141d8016a1076200141d8016a200141c0046a200910740b200b21090b200a41016a210a200b410174210b20092011722111200341246a22032014460d040c010b0b20114180fe037141087621030c050b2009412041ccd3c800104d000b20030d0a0c090b20114180fe037141087621030b200141033a00c00420014197046a20012900d80437000020014190046a20012900d10437030020014188046a20012900c904370300200120012900c104370380040b200141033a00b8030b201641026a21052016417e4f0d0220012802e001220e2005490d0320012802d80120166a2003410874201141ff0171723b000002402018450d00201fa7450d002018102e0b2017102e20012802a4024125490d00200141ac026a280200102e0b200128021c220341d0006a2802002105200328024c210320014180046a41086a41002802cca140360200200141002902c4a14037038004200141a0026a200320014180046a20012802d80120012802e0012005280214110500200128021c2203280254220520012903a002370000200541086a200141a0026a41086a290300370000200541106a200141a0026a41106a290300370000200541186a200141a0026a41186a2903003700002003200328027c41016a36027c2003280254220541186a290000211e200541106a290000211c200541086a290000211f200341d9006a2005290000370000200341013a0058200341e1006a201f370000200341e9006a201c370000200341f1006a201e370000024020012802dc01450d0020012802d801102e0b20012802a8014125490d00200141b0016a280200102e0b0240200041386a2802002203450d0020002802302101200341fc006c210303400240024020012d00000d00200141046a10e2010c010b200141246a10e2010b200141fc006a2101200341847f6a22030d000b0b0240200041346a2802002201450d00200141fc006c450d002000280230102e0b200041c8006a280200210102400240200041c0006a28020022032000413c6a2802002205490d00200120034f0d012003200141b4f1c000104d000b20012005490d030b0240200141ffffffff0371450d00200041c4006a280200102e0b024020002802202205450d0002402000412c6a280200450d00200041246a280200220341046a2101200520036a41016a210e2003280200417f73418081828478712105024003400240024020050d0003402001200e4f0d04200341c07d6a210320012802002105200141046a220921012005418081828478712205418081828478460d000b2005418081828478732205417f6a200571210f200921010c010b2003450d022005417f6a200571210f0b2005682109200f21052003410020094103766b41d0006c6a220941506a2802004125490d00200941586a280200102e200f21050c000b0b200028022021050b200041246a280200200541016aad42d0007ea76b102e0b200224000f0b2016200541dcd3c8001057000b2005200e41dcd3c800104d000b41c4f1c000412341e8f1c0001039000b1038000b1036000b960401037f23004190016b2206240041002107200641003602080240024020012d00584101460d00200141dc006a28020021080c010b200641366a200141db006a2d00003a0000200641206a200141e8006a290000370300200641286a200141f0006a290000370300200641306a200141f8006a2d00003a00002006200141d9006a2f00003b01342006200141e0006a290000370318200141dc006a2800002108410121070b200641c8006a41086a2006290318370300200641c8006a41106a200641186a41086a290300370300200641c8006a41186a200641186a41106a290300370300200641e8006a200641186a41186a280200360200200620073a0048200620062f01343b00492006200836024c2006200641366a2d00003a004b200641003602782006200336027420062002360270024002402005417f4c0d004101210702402005450d002005102c2207450d020b2006200536028401200620073602800120072004200510e9081a2006200536028801200641386a2001200641c8006a200641f0006a20064180016a200641086a10ad08200628023c21050240024020062802384101460d00200141003a00582000200629030837020420004100360200200141dc006a20053602002000410c6a200641106a2802003602000c010b200041013602002000200536020420062802082201450d00200628020c450d002001102e0b20064190016a24000f0b1038000b1036000bdd0302047f017e230041a0016b220224000240024002400240200028020c2203200041106a280200470d002002200141fc0010e90821030240024020002802082201200041046a280200470d00200141016a22042001490d04200141017422052004200520044b1b22044104200441044b1bad42fc007e2206422088a74541027421042006a721050240024020010d0020034100360290010c010b20034198016a41043602002003200141fc006c3602940120032000280200360290010b20034180016a2005200420034190016a107d20034188016a28020021012003280280014101460d012000200328028401360200200041046a200141fc006e360200200028020821010b2000280200200141fc006c6a200341fc0010e9081a20002000280208220341016a3602080c020b2001450d021036000b2000410c6a200041186a280200417f6a200341016a71360200200041146a28020020034102746a28020021032002200141fc0010e90821012000280208220420034d0d020240024020002802002200200341fc006c6a22042d00000d002000200341fc006c6a41046a10e2010c010b2000200341fc006c6a41246a10e2010b2004200141fc0010e9081a0b200241a0016a240020030f0b1038000b2003200441f882ca00103c000bb80101057f2001280208220241017621032001280204210402400240024002402002410171450d00200420034d0d034101210220012802002205200341016a22066a2101200520036a2d0000410f712105200621030c010b20042003490d01200128020020036a210141002105410021020b200020023a000c20002001360204200041003602002000410d6a20053a0000200041086a200420036b3602000f0b2003200441e0eecc001056000b2003200441f0eecc00103c000b960a01127f230041106b2204240002400240024002400240024020010d00410021010c010b200141086a28020022054101762106200141046a2802002107024002400240024002400240024002402005410171450d00200720064b0d012006200741f0eecc00103c000b20072006490d02200720066b2108200128020020066a21090c010b20002001280200220120066a2d0000410f7110e3082007200641016a22066b2108200120066a21090b0240024002400240024002400240200028020022014125490d002000412c6a210a2000410c6a2206280200410174200028022c470d02200628020021010c010b2000412c6a210a2001410174200028022c470d020b20042000200810fc06024020042802004101470d00200441086a2802000d0c41d0f0cc00411141e4f0cc001039000b02400240200028020022064125490d002000410c6a28020022062001490d08200041086a280200210b0c010b20062001490d07200041056a210b0b200b20016a220b20086a200b200620016b10ea081a200b2009200810e9081a0240024020002802004125490d002000410c6a21010c010b200021010b2001200620086a3602000c090b20080d01410021080c080b20080d01410021080c070b2000410c6a280200220b2006280200417f6a22064b0d01200b21010c0b0b20012001417f6a22064d0d0a200041056a20066a2d0000417071210b0c030b200041086a28020020066a2d0000417071210b20014125490d022000410c6a2802002101200041086a280200210c0c030b2006200741e0eecc001056000b41f4f1cc00411e4194f2cc001039000b200041056a210c0b200120064d0d03200c20066a200b3a000020092d0000210b02400240200028020022014125490d002000410c6a2802002101200041086a280200210c0c010b200041056a210c0b200120064d0d04200c20066a220120012d0000200b410476723a0000024002402008417f6a220d0d004100210d0c010b2008417f6a210e20084101200841014b1b417f6a210f410021012000410c6a2110200041086a2111200041056a21120340024002400240024020082001460d00200f2001460d01200920016a22062d00002113200641016a2d00002114024002402000280200220c4125490d0020102802002106201128020021152010210b0c010b200c21062000210b201221154124210c0b2006200c470d0320042000410110fc0620042802004101470d02200441086a2802000d0841d0f0cc00411141e4f0cc001039000b2008200841c0eecc00103c000b200141016a200841d0eecc00103c000b2000410c6a220b2802002106201128020021150b201520066a201441f001714104762013410474723a0000200b200b28020041016a360200200e200141016a2201470d000b0b2009200d6a2d00002115024002402000280200220b4125490d002000410c6a22012802002106200041086a280200210c0c010b200041056a210c200b2106200021014124210b0b02402006200b470d0020042000410110fc06024020042802004101470d00200441086a2802000d0441d0f0cc00411141e4f0cc001039000b2000410c6a22012802002106200041086a280200210c0b200c20066a20154104743a00002001200128020041016a3602000b200a200a28020020084101746a360200200741017420056b21010b02402002450d002000200310e308200141016a21010b200441106a240020010f0b1036000b2006200141a0eecc00103c000b2006200141b0eecc00103c000b200620014190eecc00103c000bec2603067f067e0d7f230022042105200441e0036b416071220424002004200336021420042001360210024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020022d00004101460d00200241046a28020021020240200141c8006a220628020022032003417f6a2207200141c0006a220828020022032001413c6a22092802006b716b4101470d00200910a5022006280200417f6a2107200828020021030b20082007200341016a71360200200141c4006a28020020034102746a2002360200200141386a280200220320024d0d022001280230200241fc006c6a2201290210210a200120042903f0013702102001290208210b200120042903e801370208200441d8006a2001290240220c370300200441386a22032001290220370300200441f8006a2001290260370300200141186a2202290200210d200220042903f801370200200441003a00e001200441003602e4012001290200210e200120042903e001370200200441186a41d8006a2207200141d8006a290200370300200441186a41d0006a2208200141d0006a290200370300200441186a41c8006a2206200141c8006a290200370300200441186a41386a200141386a290200220f370300200441186a41306a2209200141306a290200370300200441186a41286a2210200141286a290200370300200441186a41186a2211200d370300200441186a41e8006a200141e8006a290200370300200441186a41f0006a200141f0006a290200370300200441186a41f8006a200141f8006a2802003602002004200a3703282004200b3703202004200e370318200ea741ff01714101460d01200ba72102200b422088a72101200c422088a72112200fa72113200441c0016a41086a22142003290300370300200441c0016a41106a22032010290300370300200441c0016a41186a2009290300370300200441a8016a41086a2008290300370300200441a8016a41106a2007280200360200200420112903003703c001200420062903003703a801200441d4006a290200220fa7211502400240024002400240200e422088a70e050102030400010b200441e0016a41086a200a370300200441e0016a41106a20042903c001370300200441e0016a41186a201429030037030020044180026a200329030037030020044188026a200441c0016a41186a290300370300200420023602e001200420013602e4010240024020014125490d00200a422088a7210620042802f00121010c010b200441e9016a21060b20024101762108024002402002410171450d00200120084d0d0a200620086a2d0000410f71210341002109200841016a21080c010b20012008490d0841012109410021030b200141017420026b220241ffff03200241ffff03491b220241017641036a2210102c2211450d19200120086b2107200620086a2108200441003602a0012004201036029c01200420113602980102402015410020151b2210450d00200420023602e40220044181023b01e002200441e0026a20044198016a10ff05410021022009450d0c410021010c0f0b200420023602e402200441013b01e002200441e0026a20044198016a10ff05410021022009450d0c410021010c0d0b4101102c2201450d182004410136029c012004200136029801200141003a0000200441013602a0010c0f0b200441e0016a41086a200a370300200441e0016a41106a20042903c001370300200441e0016a41186a201429030037030020044180026a200329030037030020044188026a200441c0016a41186a290300370300200420023602e001200420013602e4010240024020014125490d00200a422088a7210720042802f00121010c010b200441e9016a21070b20024101762103024002402002410171450d00200120034d0d0a200441013a00e002200441e8026a2001200341016a22026b3602002004200720026a3602e4022004200720036a2d0000410f713a00e1020c010b20012003490d08200441e8026a200120036b360200200441003b01e0022004200720036a3602e4020b20044198016a200441e0026a2013200f422088a710970702402015450d002013102e0b20042802e4014125490d0e200441ec016a280200102e0c0e0b200441e0016a41086a200a370300200441e0016a41106a20042903c001370300200441e0016a41186a201429030037030020044180026a200329030037030020044188026a200441c0016a41186a290300370300200420023602e001200420013602e4010240024020014125490d00200a422088a7210020042802f00121010c010b200441e9016a21000b200420023602c802200420013602c402200420003602c002200441a0036a200441c0026a109e082004280214200441c0026a41002004109f08210120042802102102200441a4026a201236020020044198026a41106a20042903a801370300200441b0026a200441b0016a290300370300200441b8026a200441a8016a41106a2802003602002004200f37029c022004201336029802200441e0026a200220044198026a2004280214220410a0082004200110a108109607000b109507000b200041003a000020002002290001370001200041196a200241196a290000370000200041116a200241116a290000370000200041096a200241096a2900003700000c120b20002004290019370001200041003a0000200041196a200441186a41196a290000370000200041116a200441186a41116a290000370000200041096a200441186a41096a2900003700000c0b0b20022003419482ca00103c000b2008200141e0eecc001056000b2008200141f0eecc00103c000b2003200141e0eecc001056000b2003200141f0eecc00103c000b410121010c020b410121010b03400240024020010e020001010b200220074f0d03200820026a2d00002103200241016a2102410121010c010b02400240024020042802a0012201200428029c01470d00200141016a22062001490d0e200141017422092006200920064b1b22064108200641084b1b21060240024020010d00200441003602e0020c010b200441e0026a41086a4101360200200420013602e40220042004280298013602e0020b20044198026a20064101200441e0026a107d200441a0026a28020021062004280298024101460d01200428029c0221092004200636029c0120042009360298010b20042802980120016a20033a00002004200141016a3602a0010c010b20060d0d0c0c0b410021010c000b0b03400240024020010e020001010b200220074f0d02200820026a2d00002103200241016a2102410121010c010b02400240024020042802a0012201200428029c01470d00200141016a22062001490d0d200141017422092006200920064b1b22064108200641084b1b21060240024020010d00200441003602e0020c010b200441e0026a41086a4101360200200420013602e40220042004280298013602e0020b20044198026a20064101200441e0026a107d200441a0026a28020021062004280298024101460d01200428029c0221092004200636029c0120042009360298010b20042802980120016a20033a00002004200141016a3602a0010c010b2006450d0b0c0c0b410021010c000b0b20042802a001221621010240024002400240024002402016200428029c01470d00201641016a22012016490d0e201641017422022001200220014b1b22014108200141084b1b21010240024020160d00200441003602e0020c010b200441e0026a41086a4101360200200420163602e40220042004280298013602e0020b20044198026a20014101200441e0026a107d200441a0026a28020021012004280298024101460d01200428029c0221022004200136029c01200420023602980120042802a00121010b20042802980120016a41003a0000200420042802a00141016a22013602a0010240024002402001200428029c01470d00200141016a22022001490d10200141017422032002200320024b1b22024108200241084b1b21020240024020010d00200441003602e0020c010b200441e0026a41086a4101360200200420013602e40220042004280298013602e0020b20044198026a20024101200441e0026a107d200441a0026a28020021012004280298024101460d01200428029c0221022004200136029c01200420023602980120042802a00121010b201341c0046a211720042802980120016a41003a0000200420042802a00141016a3602a00102402010450d00201220044198016a107620044198016a2010201210740b20172013470d0141002110410021010c040b20010d0f0c0e0b200441e0026a4101722103200441e9016a2118200441a0036a41017221024100210920132101410021104101210602400340200441023a00e0022001290200210e20042903f802210b20042903f002210a20042903e802210d200120042903e0023702002001290208210c2001200d3702082001290210210d2001200a370210200141186a2207290200210a2007200b3702002004200a3703b8032004200d3703b0032004200c3703a8032004200e3703a003200141206a2802002119200441e0026a41176a2211200241176a290000370000200441e0026a41106a2207200241106a290000370300200441e0026a41086a2208200241086a290000370300200420022900003703e0020240200ea7221a41ff017122144103470d0020104180fe037141087621010c060b200441c0026a41176a22122011290000370000200441c0026a41106a22112007290300370300200441c0026a41086a2008290300220e370300200420042903e002220b3703c002200441a0036a41176a221b2012290000370000200441a0036a41106a22122011290300370300200441a0036a41086a2211200e3703002004200b3703a00302400240024020144102470d00200441023a0098020c010b0240024020042802e40122144125490d0020042802f001211420042802ec01211c0c010b2018211c0b200420042802e0013602d803200420143602d4032004201c3602d0032004280214200441d0036a41012009109f0821142004280210211c200320042903a003370000200341086a2011290300370000200341106a2012290300370000200341176a201b2900003700002004201a3a00e002200420193602800320044198026a201c200441e0026a2004280214221910a0082019201410a10820042d0098024103460d010b200441e0026a41206a20044198026a41206a290300370300200441e0026a41186a20044198026a41186a290300370300200720044198026a41106a290300370300200820044198026a41086a2903003703002004200429039802220e3703e002410021070240024002400240200ea741ff0171417f6a0e020103000b412020044198016a107620044198016a2003412010740c010b200441a0036a41186a200341186a2900003703002012200341106a2900003703002011200341086a290000370300200420032900003703a003200428028403220741214f0d04200720044198016a107620044198016a200441a0036a200710740b200621070b200941016a21092006410174210620072010722110200141246a22012017460d040c010b0b20104180fe037141087621010c050b2007412041ccd3c800104d000b20010d0d0c0c0b20104180fe037141087621010b200441033a00a003200441f7026a20042900b803370000200441f0026a20042900b103370300200441e8026a20042900a903370300200420042900a1033703e0020b200441033a0098020b201641026a21022016417e4f0d0220042802a00122032002490d0320042802980120166a2001410874201041ff0171723b000002402015450d00200f428080808010540d002015102e0b2013102e20042802e4014125490d00200441ec016a280200102e0b0240024020042802a00122014120490d002004280210220241d0006a2802002108200228024c21062004280214220728022c22094101762102200728020021030240024020094101710d000240024020034125490d002007410c6a2802002103200741086a28020021070c010b200741056a21070b20032002490d07200420073602e002410021030c010b0240024020034125490d002007410c6a220928020022032002490d0a200741086a2210280200210720092802002103201028020021090c010b20032002490d09200741056a220721090b200320024d0d07200441e9026a200920026a2d000041f001713a0000200420073602e002410121030b200420033a00e802200420023602e402200441e0016a2006200441e0026a20042802980120012008280214110500200020042903e001370001200041096a200441e8016a290300370000200041116a200441f0016a290300370000200041196a200441f8016a290300370000200041003a000020042802102201200128027c41016a36027c0c010b200441f8016a22024200370300200441f0016a22034200370300200441e8016a22074200370300200442003703e001200441e0016a200428029801200110e9081a200041246a2001360200200041013a0000200041196a2002290300370000200041116a2003290300370000200041096a2007290300370000200020042903e0013700010b0240200428029c01450d00200428029801102e0b20042d0018450d060b2004413c6a10e201200524000f0b2016200241dcd3c8001057000b2002200341dcd3c800104d000b2002200341e0edcc00104d000b200220034180eecc00103c000b2002200341f0edcc00104d000b200524000f0b1038000b1036000b960301057f0240024002402001450d000240200028022c220220014b0d0002400240200028020022014125490d002000410c6a220228020021010c010b200021020b02402001450d00200241003602000b2000410036022c0f0b200220016b2203410176200341017122046a210202400240200028020022014125490d002000410c6a28020021050c010b200121050b0240200220054f0d002000410c6a2106200220056b41016a210203400240024020014125490d0020062802002101200621050c010b200021050b02402001450d0020052001417f6a3602000b2002450d01200241016a2102200028020021010c000b0b2000200336022c2004450d0002400240200028020022014125490d002000410c6a220528020022012001417f6a22024d0d04200041086a220628020020026a2d0000417071210020052802002101200628020021050c010b2001417f6a220220014f0d03200041056a220520026a2d000041707121000b200120024d0d01200520026a20003a00000b0f0b2002200141d0edcc00103c000b2002200141c0edcc00103c000b130020004119360204200041f086ca003602000b3400200041de80ca0036020420004100360200200041146a410e360200200041106a41e4ecca00360200200041086a42093702000b7c01017f230041f0006b22022400200241106a4200370300200241186a4200370300200241206a4200370300200241286a4200370300200241306a4200370300200241386a4200370300200241c0006a410036020020024108360204200241086a4200370300200241003a00002000200210c204200241f0006a24000b2f01017f02404104102c22020d001036000b2000420437020420002002360200410020001076410441002000109b010b130020004108360204200041b48bcb003602000b4301027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241e40036020c20002002410c6a41041074200241106a24000b4401027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241c0930636020c20002002410c6a41041074200241106a24000b4301027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241880e36020c20002002410c6a41041074200241106a24000b4b01027f230041106b2202240002404110102c22030d001036000b20004210370204200020033602002002420037030820024280a094a58d1d3703002000200241101074200241106a24000b4401027f230041106b2202240002404104102c22030d001036000b200042043702042000200336020020024180ce1836020c20002002410c6a41041074200241106a24000b880202037f017e230041106b220224000240024020002d00004101460d00200241003a000020012002410110742002200041046a28020036020020012002410410740c010b200241013a00002001200241011074200041246a28020021032000412c6a28020022042001107620012003200410742001200041016a41201074200041c0006a29030021052002200041c8006a2903003703082002200537030020012002411010742002200041306a28020036020020012002410410740240200041346a2802004101460d00200241003a000020012002410110740c010b200241013a000020012002410110742002200041386a28020036020020012002410410740b200241106a24000bba3205077f017e017f0b7e0b7f230022062107200641e0086b416071220624000240024002400240024002400240024002400240024002400240024020022d00004101470d00200641b8036a200241196a290000370300200641b0036a200241116a290000370300200641a8036a200241096a290000370300200620022900013703a003200328020822084101762102200328020421092003280200210a0240024020084101710d00024020092002490d00410021090c020b2002200941a0f0cc00104d000b20092002490d03200220094f0d04200a20026a2d00004170712108410121090b200141d0006a280200210b200128024c210c200641e9046a20083a0000200620093a00e804200620023602e4042006200a3602e004200620062f01c8073b01ea0420064188086a200c200641a0036a200641e0046a200b28020c1104000240024020062802880822090d00200641f0056a2201200641ab036a290000370300200641e8056a41106a2203200641b3036a290000370300200641fd056a2209200641b8036a290000370000200620062900a3033703e80520062d00a203210520062f01a003210a4130102c22020d011036000b200629028c08210d200641c0046a41186a200641a0036a41186a2208290300370300200641c0046a41106a200641a0036a41106a220b290300370300200641c0046a41086a200641a0036a41086a220c290300370300200620062903a0033703c004200641e0046a200641c0046a2009200d422088a7200141306a220e10ae0820062802e404210220062802e004210a20064188086a200641e0046a41086a41d40010e9081a200a4101460d0c200641e0036a20064188086a41d40010e9081a200620023602840520064188056a200641e0036a41d40010e9081a200641f9046a2008290300370000200641f1046a200b290300370000200641e9046a200c290300370000200641013a00e004200620062903a0033700e104200e200641e0046a109d082102200da7450d022009102e0c020b2002200a20054110747222053b0001200241013a0000200220062903e805370004200220062900e004370021200241036a20054110763a00002002410c6a2001290300370000200241146a2003290300370000200241196a2009290000370000200241286a200641e7046a2900003700000c0c0b200241046a28020021020b0240200141c8006a220b28020022092009417f6a2208200141c0006a220a28020022092001413c6a220c2802006b716b4101470d00200c10a502200b280200417f6a2108200a28020021090b200a2008200941016a71360200200141c4006a28020020094102746a2002360200200141386a280200220920024d0d02200141306a220a280200200241fc006c6a2202290210210f200220062903f00437021020022902082110200220062903e804370208200241186a22092902002111200920062903f804370200200641003a00e004200641003602e4042002290200210d200220062903e00437020020022902402112200241c8006a2902002113200241d0006a2902002114200241d8006a290200211520022902202116200241286a2902002117200241306a2902002118200241386a290200211920064180036a41086a2209200241e8006a29020037030020064180036a41106a2208200241f0006a29020037030020064180036a41186a220b200241f8006a280200360200200620113703f8032006200f3703f003200620103703e8032006200d3703e003200620193703d804200620183703d004200620173703c804200620163703c004200620153703b803200620143703b003200620133703a803200620123703a0032006200229026037038003200641d0036a41086a2202200441086a280200360200200620042902003703d00302400240024002400240024002400240200da7220c41ff01714101470d002003280200211a2003280204211b2003280208210e20064188076a41186a20062802fc0336020020064188076a41106a20062902f40337030020064188076a41086a20062902ec03370300200620062902e40337038807200641bc086a2015370200200641b4086a201437020020064188086a41246a2013370200200641a4086a201237020020064188086a41186a20062802dc0436020020064188086a41106a20062902d40437030020064188086a41086a20062902cc04370300200620062902c4043703880820064188086a413c6a20062903800337020020064188086a41c4006a2009290300370200200641d4086a2008290300370200200641dc086a200b280200360200200641e8056a41086a2002280200360200200620062903d0033703e805200641e0046a200120064188086a2003200641e8056a200510af0820062802e404210220062802e0044101460d07200d420888a721092016a72103200641e8076a41186a220820064180056a280200360200200641e8076a41106a220b200641e0046a41186a290300370300200641e8076a41086a221c200641e0046a41106a221d290300370300200641c8076a41086a221e2006418d056a290000370300200641c8076a41106a221f20064195056a290000370300200641c8076a41176a2220200641e0046a413c6a29000037000020062006290085053703c8072006200641e0046a41086a22212903003703e807200641e0046a41246a2d00002104200641a8076a41086a2222200641ad056a290000370300200641a8076a41106a2223200641b5056a290000370300200641a8076a41176a2224200641bc056a280000360000200620062900a5053703a807200641e0046a41c4006a2d0000210520020e03020501020b200641bc086a2019370200200641b4086a201837020020064188086a41246a2017370200200641a4086a201637020020064188086a41186a20062802fc0336020020064188086a41106a20062902f40337030020064188086a41086a20062902ec0337030020064188086a413c6a20062903a00337020020064188086a41c4006a20062903a803370200200641d4086a20062903b003370200200641dc086a20062802b803360200200620062902e4033703880820064188076a41086a2002280200360200200620062903d00337038807200641e0046a200120064188086a200320064188076a200510af0820062802e404210220062802e0044101460d06200641e8056a41186a220520064180056a280200360200200641e8056a41106a2208200641e0046a41186a290300370300200641e8056a41086a220b200641e0046a41106a290300370300200641c8076a41086a220c2006418d056a290000370300200641c8076a41106a220e20064195056a290000370300200641c8076a41176a221a200641e0046a413c6a29000037000020062006290085053703c8072006200641e0046a41086a2903003703e805200641e0046a41246a2d00002103200641e8076a41086a221b200641ad056a290000370300200641e8076a41106a221c200641b5056a290000370300200641e8076a41176a221d200641bc056a280000360000200620062900a5053703e807200641e0046a41c4006a2d0000210441022101024020020e03000304000b200641e8066a41186a2005280200360200200641e8066a41106a2008290300370300200641e8066a41086a200b290300370300200641c8066a41086a200c290300370300200641c8066a41106a200e290300370300200641c8066a41176a201a290000370000200641a8066a41086a201b290300370300200641a8066a41106a201c290300370300200641a8066a41176a201d280000360000200620062903e8053703e806200620062903c8073703c806200620062903e8073703a80641002101410121090c030b200e410176210202400240200e4101710d000240201b2002490d00410021040c020b2002201b41a0f0cc00104d000b201b2002490d0a2002201b4f0d0b201a20026a2d00004170712108410121040b20064188086a201a200210b008200641b5086a20083a0000200641eb046a20064188076a41086a290300370000200641f3046a20064188076a41106a290300370000200641fb046a20064188076a41186a280200360000200641e0046a41286a20064188086a41086a29030037030020064190056a20064188086a41106a29030037030020064198056a20064188086a41186a290300370300200641a0056a200641a8086a290300370300200620043a00b408200641a8056a20064188086a41286a290300370300200620033a00ff0420062006290388073700e304200620062903880837038005200620093b01e004200620094110763a00e2042001200641e0046a10b108410221010c040b200e410176210202400240200e4101710d000240201b2002490d00410021080c020b2002201b41a0f0cc00104d000b201b2002490d0b2002201b4f0d0c201a20026a2d0000417071210b410121080b20064188086a201a200210b008200641b5086a200b3a0000200641eb046a20064188076a41086a290300370000200641f3046a20064188076a41106a290300370000200641fb046a20064188076a41186a280200360000200641e0046a41286a20064188086a41086a29030037030020064190056a20064188086a41106a29030037030020064198056a20064188086a41186a290300370300200641a0056a200641a8086a290300370300200620083a00b408200641a8056a20064188086a41286a290300370300200620033a00ff0420062006290388073700e304200620062903880837038005200620093b01e004200620094110763a00e2042001200641e0046a10b108200641e8066a41086a200641e8076a41086a290300370300200641e8066a41106a200641e8076a41106a290300370300200641e8066a41186a200641e8076a41186a280200360200200641c8066a41086a200641c8076a41086a290300370300200641c8066a41106a200641c8076a41106a290300370300200641c8066a41176a200641c8076a41176a290000370000200641a8066a41086a200641a8076a41086a290300370300200641a8066a41106a200641a8076a41106a290300370300200641a8066a41176a200641a8076a41176a280000360000200620062903e8073703e806200620062903c8073703c806200620062903a8073703a806410021014101210920042103200521040c030b200641e8066a41186a2005280200360200200641e8066a41106a2008290300370300200641e8066a41086a200b290300370300200641c8066a41086a200c290300370300200641c8066a41106a200e290300370300200641c8066a41176a201a290000370000200641a8066a41086a201b290300370300200641a8066a41106a201c290300370300200641a8066a41176a201d280000360000200620062903e8053703e806200620062903c8073703c806200620062903e8073703a80641002109410021010b410021020c0a0b200641e8066a41086a20064188076a41086a290300370300200641e8066a41106a20064188076a41106a290300370300200641e8066a41186a20064188076a41186a280200360200200641eb046a201c290300370000200641f3046a200b290300370000200641fb046a2008280200360000200641a8066a41176a2020290000370000200641a8066a41106a201f290300370300200641a8066a41086a201e29030037030020062006290388073703e806200620062903e8073700e304200620062903c8073703a80620064188066a41176a202428000036000020064188066a41106a202329030037030020064188066a41086a2022290300370300200641c8066a41176a200641e0046a41176a290000370000200641c8066a41106a201d290000370300200641c8066a41086a2021290000370300200620062903a80737038806200620062900e0043703c80641012101410021090b200c41807e7121020c080b410121010c080b2002200941b0f0cc00104d000b2002200941c0f0cc00103c000b20022009419482ca00103c000b2002201b41b0f0cc00104d000b2002201b41c0f0cc00103c000b2002201b41b0f0cc00104d000b2002201b41c0f0cc00103c000b200641c8076a41186a200641e8066a41186a280200360200200641c8076a41106a200641e8066a41106a290300370300200641c8076a41086a200641e8066a41086a290300370300200641e0046a41086a200641c8066a41086a290300370300200641e0046a41106a200641c8066a41106a290300370300200641e0046a41176a200641c8066a41176a29000037000020064188086a41086a200641a8066a41086a29030037030020064188086a41106a200641a8066a41106a29030037030020064188086a41176a200641a8066a41176a290000370000200620062903e8063703c807200620062903c8063703e004200620062903a80637038808200641e8056a41176a20064188066a41176a280000360000200641e8056a41106a20064188066a41106a290300370300200641e8056a41086a20064188066a41086a29030037030020062006290388063703e80520012002722102410021010b200641e0026a41086a2208200641c8076a41086a290300370300200641e0026a41106a220b200641c8076a41106a290300370300200641e0026a41186a220c200641c8076a41186a280200360200200641c0026a41086a220e200641e0046a41086a290300370300200641c0026a41106a221a200641e0046a41106a290300370300200641c0026a41176a221b200641e0046a41176a290000370000200620062903c8073703e002200620062903e0043703c002200641a0026a41176a221c20064188086a41176a290000370000200641a0026a41106a221d20064188086a41106a290300370300200641a0026a41086a221e20064188086a41086a29030037030020064180026a41086a221f200641e8056a41086a29030037030020064180026a41106a2220200641e8056a41106a29030037030020064180026a41176a2221200641e8056a41176a28000036000020062006290388083703a002200620062903e805370380020240024020010d00200641e0016a41186a200c280200360200200641e0016a41106a200b290300370300200641e0016a41086a2008290300370300200641c0016a41086a200e290300370300200641c0016a41106a201a290300370300200641c0016a41176a201b290000370000200641a0016a41086a201e290300370300200641a0016a41106a201d290300370300200641a0016a41176a201c290000370000200620062903e0023703e001200620062903c0023703c001200620062903a0023703a00120064180016a41176a202128000036000020064180016a41106a202029030037030020064180016a41086a201f290300370300200620062903800237038001200241ff01714102460d01200641e0006a41186a2201200641e0016a41186a280200360200200641e0006a41106a2208200641e0016a41106a290300370300200641e0006a41086a220b200641e0016a41086a290300370300200641c0006a41086a220c200641c0016a41086a290300370300200641c0006a41106a220e200641c0016a41106a290300370300200641c0006a41176a221a200641c0016a41176a290000370000200641206a41086a221b200641a0016a41086a290300370300200641206a41106a221c200641a0016a41106a290300370300200641206a41176a221d200641a0016a41176a290000370000200620062903e001370360200620062903c001370340200620062903a001370320200641176a221e20064180016a41176a280000360000200641106a221f20064180016a41106a290300370300200641086a222020064180016a41086a2903003703002006200629038001370300200641c0046a41086a2221200b290300370300200641c0046a41106a220b2008290300370300200641c0046a41186a22082001280200360200200620062903603703c00420064188086a41086a2201200c29030037030020064188086a41106a220c200e29030037030020064188086a41176a220e201a2900003700002006200629034037038808200641e0036a41086a221a201b290300370300200641e0036a41106a221b201c290300370300200641e0036a41176a221c201d290000370000200620062903203703e003200641a0036a41176a221d201e280000360000200641a0036a41106a221e201f290300370300200641a0036a41086a221f2020290300370300200620062903003703a00320064180056a20033a0000200620023a00e004200620024118763a00e304200620024108763b00e104200641ec046a2021290300370200200641f4046a200b290300370200200641fc046a2008280200360200200620062903c0043702e40420064181056a20062903880837000020064189056a200129030037000020064191056a200c29030037000020064198056a200e290000370000200641a0056a20043a0000200641b8056a201c290000370000200641b1056a201b290300370000200641a9056a201a290300370000200641a1056a20062903e003370000200641c0056a20053a0000200641d8056a201d280000360000200641d1056a201e290300370000200641c9056a201f290300370000200641c1056a20062903a003370000200a200641e0046a109d082106200041086a20093a00002000200636020420004100360200200724000f0b20004101360200200020023602040c030b41d0accb00411841e8accb00105d000b200da7450d002009102e0b2000410136020020002002360204200441046a280200450d002004280200102e200724000f0b200724000ba3a3011f047f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e017f017e027f017e087f017e087f230041b00e6b22052400200541086a2002200310a802024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020052d00084101470d0020052d00092102200541900e6a41086a2203200141086a290000370300200541900e6a41106a2204200141106a290000370300200541900e6a41186a2206200141186a290000370300200520012900003703900e4130102c22010d010c2a0b200541d4016a2802002107200541d0016a2802002108200541c8016a2903002109200541c4016a280200210a200541bc016a290200210b200541b8016a280200210c200541b0016a290300210d200541ac016a280200210e200541a4016a290200210f200541a0016a280200211020054198016a290300211120054194016a28020021122005418c016a290200211320054188016a280200211420054180016a2903002115200541fc006a2802002116200541f4006a2902002117200541f0006a2802002118200541e8006a2903002119200541e4006a280200211a200541dc006a290200211b200541086a41d0006a280200211c200541086a41c8006a290300211d200541086a41c4006a280200211e200541086a413c6a290200211f200541086a41386a2802002120200541386a2903002121200541086a412c6a2802002122200541086a41246a22232902002124200541286a22252802002126200541086a411c6a22272802002128200541086a41186a22292802002102200541086a41146a222a280200212b200541086a410c6a222c290200212d200541086a41086a222e280200212f41002130200528020c0e051502030401150b200141033a0000200120052903900e370001200120023a0021200120052901e00d370122200141096a2003290300370000200141116a2004290300370000200141196a2006290300370000200141286a200541e60d6a29010037010020004101360200200020013602040c270b200541e0016a2802002106200541dc016a2802002131200541d8016a28020021324102210302400240202b4102470d0041002102410021330c010b200541900e6a41186a2233200141186a290000370300200541900e6a41106a2234200141106a290000370300200541900e6a41086a2235200141086a290000370300200520012900003703900e200541e00d6a41086a2028360200200520023602e40d2005202b3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012102024020052802084101460d002033200541286a2903003703002034200541086a41186a2903003703002035200541086a41106a2903003703002005200541086a41086a2903003703900e410021020b200341807e7121330b200541c0066a41186a2234200541900e6a41186a290300370300200541c0066a41106a2235200541900e6a41106a290300370300200541c0066a41086a222b200541900e6a41086a290300370300200520052903900e3703c0062033200341ff017172213320020d03200541a0066a41186a2034290300370300200541a0066a41106a2035290300370300200541a0066a41086a202b290300370300200520052903c0063703a006410221024100210341002134024020264102460d00200541900e6a41186a2234200141186a290000370300200541900e6a41106a2235200141106a290000370300200541900e6a41086a222b200141086a290000370300200520012900003703900e200520243702e40d200520263602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210241012103024020052802084101460d002034200541286a2903003703002035200541086a41186a290300370300202b200541086a41106a2903003703002005200541086a41086a2903003703900e410021030b200241807e7121340b20054180076a41186a2235200541900e6a41186a29030037030020054180076a41106a222b200541900e6a41106a29030037030020054180076a41086a2230200541900e6a41086a290300370300200520052903900e370380072034200241ff017172210220030d04200541e0066a41186a2035290300370300200541e0066a41106a202b290300370300200541e0066a41086a203029030037030020052005290380073703e006410221034100213441002135024020224102460d00200541900e6a41186a2235200141186a290000370300200541900e6a41106a222b200141106a290000370300200541900e6a41086a2230200141086a290000370300200520012900003703900e200520213702e40d200520223602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d002035200541286a290300370300202b200541086a41186a2903003703002030200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e7121350b200541c0076a41186a222b200541900e6a41186a290300370300200541c0076a41106a2230200541900e6a41106a290300370300200541c0076a41086a222e200541900e6a41086a290300370300200520052903900e3703c0072035200341ff017172213520340d05200541a0076a41186a202b290300370300200541a0076a41106a2030290300370300200541a0076a41086a202e290300370300200520052903c0073703a00741022103410021344100212b024020204102460d00200541900e6a41186a222b200141186a290000370300200541900e6a41106a2230200141106a290000370300200541900e6a41086a222e200141086a290000370300200520012900003703900e2005201f3702e40d200520203602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d00202b200541286a2903003703002030200541086a41186a290300370300202e200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e71212b0b20054180086a41186a2230200541900e6a41186a29030037030020054180086a41106a222e200541900e6a41106a29030037030020054180086a41086a2225200541900e6a41086a290300370300200520052903900e37038008202b200341ff017172212b20340d06200541e0076a41186a2030290300370300200541e0076a41106a202e290300370300200541e0076a41086a202529030037030020052005290380083703e0074102210341002134410021300240201e4102460d00200541900e6a41186a2230200141186a290000370300200541900e6a41106a222e200141106a290000370300200541900e6a41086a2225200141086a290000370300200520012900003703900e2005201d3702e40d2005201e3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d002030200541286a290300370300202e200541086a41186a2903003703002025200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e7121300b200541c0086a41186a222e200541900e6a41186a290300370300200541c0086a41106a2225200541900e6a41106a290300370300200541c0086a41086a2229200541900e6a41086a290300370300200520052903900e3703c0082030200341ff017172213020340d07200541a0086a41186a202e290300370300200541a0086a41106a2025290300370300200541a0086a41086a2029290300370300200520052903c0083703a00841022103410021344100212e0240201c4102460d00200541900e6a41186a222e200141186a290000370300200541900e6a41106a2225200141106a290000370300200541900e6a41086a2229200141086a290000370300200520012900003703900e2005201b3702e40d2005201c3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d00202e200541286a2903003703002025200541086a41186a2903003703002029200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e71212e0b20054180096a41186a2225200541900e6a41186a29030037030020054180096a41106a2229200541900e6a41106a29030037030020054180096a41086a222c200541900e6a41086a290300370300200520052903900e37038009202e200341ff017172212e20340d08200541e0086a41186a2025290300370300200541e0086a41106a2029290300370300200541e0086a41086a202c29030037030020052005290380093703e0084102210341002134410021250240201a4102460d00200541900e6a41186a2225200141186a290000370300200541900e6a41106a2229200141106a290000370300200541900e6a41086a222c200141086a290000370300200520012900003703900e200520193702e40d2005201a3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d002025200541286a2903003703002029200541086a41186a290300370300202c200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e7121250b200541c0096a41186a2229200541900e6a41186a290300370300200541c0096a41106a222c200541900e6a41106a290300370300200541c0096a41086a2228200541900e6a41086a290300370300200520052903900e3703c0092025200341ff017172212520340d09200541a0096a41186a2029290300370300200541a0096a41106a202c290300370300200541a0096a41086a2028290300370300200520052903c0093703a009410221034100213441002129024020184102460d00200541900e6a41186a2229200141186a290000370300200541900e6a41106a222c200141106a290000370300200541900e6a41086a2228200141086a290000370300200520012900003703900e200520173702e40d200520183602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d002029200541286a290300370300202c200541086a41186a2903003703002028200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e7121290b200541800a6a41186a222c200541900e6a41186a290300370300200541800a6a41106a2228200541900e6a41106a290300370300200541800a6a41086a2226200541900e6a41086a290300370300200520052903900e3703800a2029200341ff017172212920340d0a200541e0096a41186a202c290300370300200541e0096a41106a2028290300370300200541e0096a41086a2026290300370300200520052903800a3703e00941022103410021344100212c024020164102460d00200541900e6a41186a222c200141186a290000370300200541900e6a41106a2228200141106a290000370300200541900e6a41086a2226200141086a290000370300200520012900003703900e200520153702e40d200520163602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d00202c200541286a2903003703002028200541086a41186a2903003703002026200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e71212c0b200541c00a6a41186a2228200541900e6a41186a290300370300200541c00a6a41106a2226200541900e6a41106a290300370300200541c00a6a41086a2223200541900e6a41086a290300370300200520052903900e3703c00a202c200341ff017172212c20340d0b200541a00a6a41186a2028290300370300200541a00a6a41106a2026290300370300200541a00a6a41086a2023290300370300200520052903c00a3703a00a410221034100213441002128024020144102460d00200541900e6a41186a2228200141186a290000370300200541900e6a41106a2226200141106a290000370300200541900e6a41086a2223200141086a290000370300200520012900003703900e200520133702e40d200520143602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d002028200541286a2903003703002026200541086a41186a2903003703002023200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e7121280b200541800b6a41186a2226200541900e6a41186a290300370300200541800b6a41106a2223200541900e6a41106a290300370300200541800b6a41086a2227200541900e6a41086a290300370300200520052903900e3703800b2028200341ff017172212820340d0c200541e00a6a41186a2026290300370300200541e00a6a41106a2023290300370300200541e00a6a41086a2027290300370300200520052903800b3703e00a410221034100213441002126024020124102460d00200541900e6a41186a2226200141186a290000370300200541900e6a41106a2223200141106a290000370300200541900e6a41086a2227200141086a290000370300200520012900003703900e200520113702e40d200520123602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d002026200541286a2903003703002023200541086a41186a2903003703002027200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e7121260b200541c00b6a41186a2223200541900e6a41186a290300370300200541c00b6a41106a2227200541900e6a41106a290300370300200541c00b6a41086a222a200541900e6a41086a290300370300200520052903900e3703c00b2026200341ff017172212620340d0d200541a00b6a41186a2023290300370300200541a00b6a41106a2027290300370300200541a00b6a41086a202a290300370300200520052903c00b3703a00b410221034100213441002123024020104102460d00200541900e6a41186a2223200141186a290000370300200541900e6a41106a2227200141106a290000370300200541900e6a41086a222a200141086a290000370300200520012900003703900e2005200f3702e40d200520103602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d002023200541286a2903003703002027200541086a41186a290300370300202a200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e7121230b200541800c6a41186a2227200541900e6a41186a290300370300200541800c6a41106a222a200541900e6a41106a290300370300200541800c6a41086a2222200541900e6a41086a290300370300200520052903900e3703800c2023200341ff017172212320340d0e200541e00b6a41186a2027290300370300200541e00b6a41106a202a290300370300200541e00b6a41086a2022290300370300200520052903800c3703e00b4102210341002134410021270240200e4102460d00200541900e6a41186a2227200141186a290000370300200541900e6a41106a222a200141106a290000370300200541900e6a41086a2222200141086a290000370300200520012900003703900e2005200d3702e40d2005200e3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d002027200541286a290300370300202a200541086a41186a2903003703002022200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e7121270b200541c00c6a41186a222a200541900e6a41186a290300370300200541c00c6a41106a2222200541900e6a41106a290300370300200541c00c6a41086a2220200541900e6a41086a290300370300200520052903900e3703c00c2027200341ff017172212720340d0f200541a00c6a41186a202a290300370300200541a00c6a41106a2022290300370300200541a00c6a41086a2020290300370300200520052903c00c3703a00c41022103410021344100212a0240200c4102460d00200541900e6a41186a222a200141186a290000370300200541900e6a41106a2222200141106a290000370300200541900e6a41086a2220200141086a290000370300200520012900003703900e2005200b3702e40d2005200c3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012134024020052802084101460d00202a200541286a2903003703002022200541086a41186a2903003703002020200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200341807e71212a0b200541800d6a41186a2222200541900e6a41186a290300370300200541800d6a41106a2220200541900e6a41106a290300370300200541800d6a41086a221e200541900e6a41086a290300370300200520052903900e3703800d202a200341ff017172212a20340d10200541e00c6a41186a2022290300370300200541e00c6a41106a2020290300370300200541e00c6a41086a201e290300370300200520052903800d3703e00c4102213441002103410021220240200a4102460d00200541900e6a41186a2222200141186a290000370300200541900e6a41106a2220200141106a290000370300200541900e6a41086a221e200141086a290000370300200520012900003703900e200520093702e40d2005200a3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c213441012103024020052802084101460d002022200541286a2903003703002020200541086a41186a290300370300201e200541086a41106a2903003703002005200541086a41086a2903003703900e410021030b203441807e712122203441ff017121340b200541c00d6a41186a2220200541900e6a41186a290300370300200541c00d6a41106a221e200541900e6a41106a290300370300200541c00d6a41086a221c200541900e6a41086a290300370300200520052903900e3703c00d2022203472213420030d24200541a00d6a41186a2020290300370300200541a00d6a41106a201e290300370300200541a00d6a41086a201c290300370300200520052903c00d3703a00d4102210320084102470d1141002101410021040c120b200541086a202f202da710b008200541900e6a41086a2029290300370300200541900e6a41106a2025290300370300200541900e6a41186a200541306a2802003602002005200541086a41106a2903003703900e2002417f4c0d14202c2802002135202e2802002134200528020c210720052802082133410121304101210302402002450d002002102c2203450d270b202d422088a721312003202b200210e9081a20054180026a41186a200541900e6a41186a28020036020020054180026a41106a200541900e6a41106a29030037030020054180026a41086a200541900e6a41086a290300370300200520052903900e37038002200221320c120b200541086a202f202da710b008200541e00d6a41086a2029290300370300200541e00d6a41106a22312025290300370300200541e00d6a41186a200541306a2802003602002005200541086a41106a22062903003703e00d202c2802002135202e2802002134200528020c210720052802082133200541900e6a41186a200141186a290000370300200541900e6a41106a200141106a290000370300200541900e6a41086a200141086a290000370300200520012900003703900e200541a00d6a41086a2028360200200520023602a40d2005202b3602a00d200541086a200541900e6a200541a00d6a200410b208200541c00d6a41086a2027290200370300200541c00d6a41106a220120232802003602002005202a2902003703c00d200528020c2103024020052802084101460d00202e290300212420062802002106200541e8016a41106a2001280200360200200541e8016a41086a200541c00d6a41086a29030037030020054180026a41086a200541e00d6a41086a29030037030020054180026a41106a203129030037030020054180026a41186a200541e00d6a41186a280200360200200520052903c00d3703e801200520052903e00d370380022024422088a72132202d422088a721312024a72102410221300c120b200041013602002000200336020420334125490d242034102e0c240b4102210341002133410021060240202f4102460d00200541900e6a41186a2233200141186a290000370300200541900e6a41106a2234200141106a290000370300200541900e6a41086a2235200141086a290000370300200520012900003703900e2005202d3702e40d2005202f3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012106024020052802084101460d002033200541286a2903003703002034200541086a41186a2903003703002035200541086a41106a2903003703002005200541086a41086a2903003703900e410021060b200341807e7121330b200541c0066a41186a2234200541900e6a41186a290300370300200541c0066a41106a2235200541900e6a41106a290300370300200541c0066a41086a2231200541900e6a41086a290300370300200520052903900e3703c006200341ff0171203372213320060d11200541a0066a41186a2034290300370300200541a0066a41106a2035290300370300200541a0066a41086a2031290300370300200520052903c0063703a0064102210302400240202b4102470d0041002106410021020c010b200541900e6a41186a2206200141186a290000370300200541900e6a41106a2234200141106a290000370300200541900e6a41086a2235200141086a290000370300200520012900003703900e200541e00d6a41086a2028360200200520023602e40d2005202b3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210341012102024020052802084101460d002006200541286a2903003703002034200541086a41186a2903003703002035200541086a41106a2903003703002005200541086a41086a2903003703900e410021020b200341807e7121060b20054180076a41186a2234200541900e6a41186a29030037030020054180076a41106a2235200541900e6a41106a29030037030020054180076a41086a222b200541900e6a41086a290300370300200520052903900e37038007200341ff0171200672210320020d13200541e0066a41186a2034290300370300200541e0066a41106a2035290300370300200541e0066a41086a202b29030037030020052005290380073703e006410221024100213441002106024020264102460d00200541900e6a41186a2234200141186a290000370300200541900e6a41106a2235200141106a290000370300200541900e6a41086a222b200141086a290000370300200520012900003703900e200520243702e40d200520263602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210241012106024020052802084101460d002034200541286a2903003703002035200541086a41186a290300370300202b200541086a41106a2903003703002005200541086a41086a2903003703900e410021060b200241807e7121340b200541c0076a41186a2235200541900e6a41186a290300370300200541c0076a41106a222b200541900e6a41106a290300370300200541c0076a41086a2231200541900e6a41086a290300370300200520052903900e3703c007200241ff0171203472210220060d14200541a0076a41186a2035290300370300200541a0076a41106a202b290300370300200541a0076a41086a2031290300370300200520052903c0073703a007410221064100213541002134024020224102460d00200541900e6a41186a2235200141186a290000370300200541900e6a41106a222b200141106a290000370300200541900e6a41086a2231200141086a290000370300200520012900003703900e200520213702e40d200520223602e00d200541086a200541900e6a200541e00d6a200410b208200528020c210641012134024020052802084101460d002035200541286a290300370300202b200541086a41186a2903003703002031200541086a41106a2903003703002005200541086a41086a2903003703900e410021340b200641807e7121350b20054180086a41186a222b200541900e6a41186a29030037030020054180086a41106a2231200541900e6a41106a29030037030020054180086a41086a2232200541900e6a41086a290300370300200520052903900e37038008200641ff0171203572210620340d15200541e0076a41186a202b290300370300200541e0076a41106a2031290300370300200541e0076a41086a203229030037030020052005290380083703e007410221344100212b41002135024020204102460d00200541900e6a41186a222b200141186a290000370300200541900e6a41106a2231200141106a290000370300200541900e6a41086a2232200141086a290000370300200520012900003703900e2005201f3702e40d200520203602e00d200541086a200541900e6a200541e00d6a200410b208200528020c213441012135024020052802084101460d00202b200541286a2903003703002031200541086a41186a2903003703002032200541086a41106a2903003703002005200541086a41086a2903003703900e410021350b203441807e71212b0b200541c0086a41186a2231200541900e6a41186a290300370300200541c0086a41106a2232200541900e6a41106a290300370300200541c0086a41086a2230200541900e6a41086a290300370300200520052903900e3703c008203441ff0171202b72213420350d16200541a0086a41186a2031290300370300200541a0086a41106a2032290300370300200541a0086a41086a2030290300370300200520052903c0083703a00841022135410021314100212b0240201e4102460d00200541900e6a41186a2231200141186a290000370300200541900e6a41106a2232200141106a290000370300200541900e6a41086a2230200141086a290000370300200520012900003703900e2005201d3702e40d2005201e3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c21354101212b024020052802084101460d002031200541286a2903003703002032200541086a41186a2903003703002030200541086a41106a2903003703002005200541086a41086a2903003703900e4100212b0b203541807e7121310b20054180096a41186a2232200541900e6a41186a29030037030020054180096a41106a2230200541900e6a41106a29030037030020054180096a41086a222f200541900e6a41086a290300370300200520052903900e37038009203541ff01712031722135202b0d17200541e0086a41186a2032290300370300200541e0086a41106a2030290300370300200541e0086a41086a202f29030037030020052005290380093703e0084102212b41002132410021310240201c4102460d00200541900e6a41186a2232200141186a290000370300200541900e6a41106a2230200141106a290000370300200541900e6a41086a222f200141086a290000370300200520012900003703900e2005201b3702e40d2005201c3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c212b41012131024020052802084101460d002032200541286a2903003703002030200541086a41186a290300370300202f200541086a41106a2903003703002005200541086a41086a2903003703900e410021310b202b41807e7121320b200541c0096a41186a2230200541900e6a41186a290300370300200541c0096a41106a222f200541900e6a41106a290300370300200541c0096a41086a222e200541900e6a41086a290300370300200520052903900e3703c009202b41ff0171203272212b20310d18200541a0096a41186a2030290300370300200541a0096a41106a202f290300370300200541a0096a41086a202e290300370300200520052903c0093703a0094102213141002130410021320240201a4102460d00200541900e6a41186a2230200141186a290000370300200541900e6a41106a222f200141106a290000370300200541900e6a41086a222e200141086a290000370300200520012900003703900e200520193702e40d2005201a3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c213141012132024020052802084101460d002030200541286a290300370300202f200541086a41186a290300370300202e200541086a41106a2903003703002005200541086a41086a2903003703900e410021320b203141807e7121300b200541800a6a41186a222f200541900e6a41186a290300370300200541800a6a41106a222e200541900e6a41106a290300370300200541800a6a41086a2225200541900e6a41086a290300370300200520052903900e3703800a203141ff0171203072213020320d19200541e0096a41186a202f290300370300200541e0096a41106a202e290300370300200541e0096a41086a2025290300370300200520052903800a3703e009410221314100212f41002132024020184102460d00200541900e6a41186a222f200141186a290000370300200541900e6a41106a222e200141106a290000370300200541900e6a41086a2225200141086a290000370300200520012900003703900e200520173702e40d200520183602e00d200541086a200541900e6a200541e00d6a200410b208200528020c213141012132024020052802084101460d00202f200541286a290300370300202e200541086a41186a2903003703002025200541086a41106a2903003703002005200541086a41086a2903003703900e410021320b203141807e71212f0b200541c00a6a41186a222e200541900e6a41186a290300370300200541c00a6a41106a2225200541900e6a41106a290300370300200541c00a6a41086a2229200541900e6a41086a290300370300200520052903900e3703c00a203141ff0171202f72212f20320d1a200541a00a6a41186a202e290300370300200541a00a6a41106a2025290300370300200541a00a6a41086a2029290300370300200520052903c00a3703a00a410221314100212e41002132024020164102460d00200541900e6a41186a222e200141186a290000370300200541900e6a41106a2225200141106a290000370300200541900e6a41086a2229200141086a290000370300200520012900003703900e200520153702e40d200520163602e00d200541086a200541900e6a200541e00d6a200410b208200528020c213141012132024020052802084101460d00202e200541286a2903003703002025200541086a41186a2903003703002029200541086a41106a2903003703002005200541086a41086a2903003703900e410021320b203141807e71212e0b200541800b6a41186a2225200541900e6a41186a290300370300200541800b6a41106a2229200541900e6a41106a290300370300200541800b6a41086a222c200541900e6a41086a290300370300200520052903900e3703800b203141ff0171202e72212e20320d1b200541e00a6a41186a2025290300370300200541e00a6a41106a2029290300370300200541e00a6a41086a202c290300370300200520052903800b3703e00a410221314100212541002132024020144102460d00200541900e6a41186a2225200141186a290000370300200541900e6a41106a2229200141106a290000370300200541900e6a41086a222c200141086a290000370300200520012900003703900e200520133702e40d200520143602e00d200541086a200541900e6a200541e00d6a200410b208200528020c213141012132024020052802084101460d002025200541286a2903003703002029200541086a41186a290300370300202c200541086a41106a2903003703002005200541086a41086a2903003703900e410021320b203141807e7121250b200541c00b6a41186a2229200541900e6a41186a290300370300200541c00b6a41106a222c200541900e6a41106a290300370300200541c00b6a41086a2228200541900e6a41086a290300370300200520052903900e3703c00b203141ff0171202572212520320d1c200541a00b6a41186a2029290300370300200541a00b6a41106a202c290300370300200541a00b6a41086a2028290300370300200520052903c00b3703a00b410221314100213241002129024020124102460d00200541900e6a41186a2229200141186a290000370300200541900e6a41106a222c200141106a290000370300200541900e6a41086a2228200141086a290000370300200520012900003703900e200520113702e40d200520123602e00d200541086a200541900e6a200541e00d6a200410b208200528020c213141012132024020052802084101460d002029200541286a290300370300202c200541086a41186a2903003703002028200541086a41106a2903003703002005200541086a41086a2903003703900e410021320b203141807e7121290b200541800c6a41186a222c200541900e6a41186a290300370300200541800c6a41106a2228200541900e6a41106a290300370300200541800c6a41086a2226200541900e6a41086a290300370300200520052903900e3703800c2029203141ff017172212920320d1d200541e00b6a41186a202c290300370300200541e00b6a41106a2028290300370300200541e00b6a41086a2026290300370300200520052903800c3703e00b41022131410021324100212c024020104102460d00200541900e6a41186a222c200141186a290000370300200541900e6a41106a2228200141106a290000370300200541900e6a41086a2226200141086a290000370300200520012900003703900e2005200f3702e40d200520103602e00d200541086a200541900e6a200541e00d6a200410b208200528020c213141012132024020052802084101460d00202c200541286a2903003703002028200541086a41186a2903003703002026200541086a41106a2903003703002005200541086a41086a2903003703900e410021320b203141807e71212c0b200541c00c6a41186a2228200541900e6a41186a290300370300200541c00c6a41106a2226200541900e6a41106a290300370300200541c00c6a41086a2223200541900e6a41086a290300370300200520052903900e3703c00c202c203141ff017172212c20320d1e200541a00c6a41186a2028290300370300200541a00c6a41106a2026290300370300200541a00c6a41086a2023290300370300200520052903c00c3703a00c4102213141002132410021280240200e4102460d00200541900e6a41186a2228200141186a290000370300200541900e6a41106a2226200141106a290000370300200541900e6a41086a2223200141086a290000370300200520012900003703900e2005200d3702e40d2005200e3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c213141012132024020052802084101460d002028200541286a2903003703002026200541086a41186a2903003703002023200541086a41106a2903003703002005200541086a41086a2903003703900e410021320b203141807e7121280b200541800d6a41186a2226200541900e6a41186a290300370300200541800d6a41106a2223200541900e6a41106a290300370300200541800d6a41086a2227200541900e6a41086a290300370300200520052903900e3703800d2028203141ff017172212820320d1f200541e00c6a41186a2026290300370300200541e00c6a41106a2023290300370300200541e00c6a41086a2027290300370300200520052903800d3703e00c4102213241002131410021260240200c4102460d00200541900e6a41186a2226200141186a290000370300200541900e6a41106a2223200141106a290000370300200541900e6a41086a2227200141086a290000370300200520012900003703900e2005200b3702e40d2005200c3602e00d200541086a200541900e6a200541e00d6a200410b208200528020c213241012131024020052802084101460d002026200541286a2903003703002023200541086a41186a2903003703002027200541086a41106a2903003703002005200541086a41086a2903003703900e410021310b203241807e712126203241ff017121320b200541c00d6a41186a2223200541900e6a41186a290300370300200541c00d6a41106a2227200541900e6a41106a290300370300200541c00d6a41086a222a200541900e6a41086a290300370300200520052903900e3703c00d2026203272213220310d20200541a00d6a41186a2023290300370300200541a00d6a41106a2027290300370300200541a00d6a41086a202a290300370300200520052903c00d3703a00d4102212641002131410021230240200a4102460d00200541900e6a41186a2226200141186a290000370300200541900e6a41106a2223200141106a290000370300200541900e6a41086a2227200141086a290000370300200520012900003703900e200520093702840e2005200a3602800e200541086a200541900e6a200541800e6a200410b208200528020c210141012131024020052802084101460d002026200541286a2903003703002023200541086a41186a2903003703002027200541086a41106a2903003703002005200541086a41086a2903003703900e410021310b200141807e712123200141ff017121260b200541e00d6a41186a2204200541900e6a41186a290300370300200541e00d6a41106a2227200541900e6a41106a290300370300200541e00d6a41086a222a200541900e6a41086a290300370300200520052903900e3703e00d20232026722101024020310d00200541a0026a41186a2004290300370300200541a0026a41106a2027290300370300200541a0026a41086a202a29030037030020054180066a41086a200541a0066a41086a29030037030020054180066a41106a200541a0066a41106a29030037030020054180066a41186a200541a0066a41186a290300370300200541e0056a41086a200541e0066a41086a290300370300200541e0056a41106a200541e0066a41106a290300370300200541e0056a41186a200541e0066a41186a290300370300200520052903e00d3703a002200520052903a00637038006200520052903e0063703e005200541c0056a41186a200541a0076a41186a290300370300200541c0056a41106a200541a0076a41106a290300370300200541c0056a41086a200541a0076a41086a290300370300200541a0056a41086a200541e0076a41086a290300370300200541a0056a41106a200541e0076a41106a290300370300200541a0056a41186a200541e0076a41186a29030037030020054180056a41086a200541a0086a41086a29030037030020054180056a41106a200541a0086a41106a29030037030020054180056a41186a200541a0086a41186a290300370300200520052903a0073703c005200520052903e0073703a005200520052903a00837038005200541e0046a41186a200541e0086a41186a290300370300200541e0046a41106a200541e0086a41106a290300370300200541e0046a41086a200541e0086a41086a290300370300200541c0046a41186a200541a0096a41186a290300370300200541c0046a41106a200541a0096a41106a290300370300200541c0046a41086a200541a0096a41086a290300370300200541a0046a41186a200541e0096a41186a290300370300200541a0046a41106a200541e0096a41106a290300370300200541a0046a41086a200541e0096a41086a290300370300200520052903e0083703e004200520052903a0093703c004200520052903e0093703a00420054180046a41186a200541a00a6a41186a29030037030020054180046a41106a200541a00a6a41106a29030037030020054180046a41086a200541a00a6a41086a290300370300200520052903a00a37038004200541e0036a41186a200541e00a6a41186a290300370300200541e0036a41106a200541e00a6a41106a290300370300200541e0036a41086a200541e00a6a41086a290300370300200520052903e00a3703e003200541c0036a41186a200541a00b6a41186a290300370300200541c0036a41106a200541a00b6a41106a290300370300200541c0036a41086a200541a00b6a41086a290300370300200520052903a00b3703c003200541a0036a41186a200541e00b6a41186a290300370300200541a0036a41106a200541e00b6a41106a290300370300200541a0036a41086a200541e00b6a41086a290300370300200520052903e00b3703a00320054180036a41186a200541a00c6a41186a29030037030020054180036a41106a200541a00c6a41106a29030037030020054180036a41086a200541a00c6a41086a290300370300200520052903a00c37038003200541e0026a41186a200541e00c6a41186a290300370300200541e0026a41106a200541e00c6a41106a290300370300200541e0026a41086a200541e00c6a41086a290300370300200520052903e00c3703e002200541c0026a41186a200541a00d6a41186a290300370300200541c0026a41106a200541a00d6a41106a290300370300200541c0026a41086a200541a00d6a41086a290300370300200520052903a00d3703c00241c004102c2231450d2520312033360200203120052903800637020420312003360224203120052903e0053702282031410c6a20054180066a41086a290300370200203141146a20054180066a41106a2903003702002031411c6a20054180066a41186a290300370200203141306a200541e0056a41086a290300370200203141386a200541e0056a41106a290300370200203141c0006a200541e0056a41186a290300370200203120023602482031200636026c203120052903c00537024c203141d4006a200541c0056a41086a290300370200203141dc006a200541c0056a41106a290300370200203141e4006a200541c0056a41186a290300370200203120052903a005370270203141f8006a200541a0056a41086a29030037020020314180016a200541a0056a41106a29030037020020314188016a200541a0056a41186a2903003702002031203436029001203120353602b401203141ac016a20054180056a41186a290300370200203141a4016a20054180056a41106a2903003702002031419c016a20054180056a41086a290300370200203120052903800537029401203141d0016a200541e0046a41186a290300370200203141c8016a200541e0046a41106a290300370200203141c0016a200541e0046a41086a290300370200203120052903e0043702b8012031202b3602d801203141f4016a200541c0046a41186a290300370200203141ec016a200541c0046a41106a290300370200203141e4016a200541c0046a41086a290300370200203120052903c0043702dc01203120303602fc0120314198026a200541a0046a41186a29030037020020314190026a200541a0046a41106a29030037020020314188026a200541a0046a41086a290300370200203120052903a004370280022031202f3602a002203141bc026a20054180046a41186a290300370200203141b4026a20054180046a41106a290300370200203141ac026a20054180046a41086a29030037020020312005290380043702a4022031202e3602c402203141e0026a200541e0036a41186a290300370200203141d8026a200541e0036a41106a290300370200203141d0026a200541e0036a41086a290300370200203120052903e0033702c802203120253602e80220314184036a200541c0036a41186a290300370200203141fc026a200541c0036a41106a290300370200203141f4026a200541c0036a41086a290300370200203120052903c0033702ec022031202936028c03203141a8036a200541a0036a41186a290300370200203141a0036a200541a0036a41106a29030037020020314198036a200541a0036a41086a290300370200203120052903a003370290032031202c3602b003203141cc036a20054180036a41186a290300370200203141c4036a20054180036a41106a290300370200203141bc036a20054180036a41086a29030037020020312005290380033702b403203120283602d403203141f0036a200541e0026a41186a290300370200203141e8036a200541e0026a41106a290300370200203141e0036a200541e0026a41086a290300370200203120052903e0023702d803203120323602f80320314194046a200541c0026a41186a2903003702002031418c046a200541c0026a41106a29030037020020314184046a200541c0026a41086a290300370200203120052903c0023702fc032031200136029c04203141b8046a200541a0026a41186a290300370200203141b0046a200541a0026a41106a290300370200203141a8046a200541a0026a41086a290300370200203120052903a0023702a00441032130024020080d0041002133200721340c120b2007417f4c0d130240024020070d00410121330c010b2007102c2233450d260b20332008200710e9081a200721340c110b20004101360200200020013602040c230b20004101360200200020333602040c220b20004101360200200020023602040c210b20004101360200200020353602040c200b200041013602002000202b3602040c1f0b20004101360200200020303602040c1e0b200041013602002000202e3602040c1d0b20004101360200200020253602040c1c0b20004101360200200020293602040c1b0b200041013602002000202c3602040c1a0b20004101360200200020283602040c190b20004101360200200020263602040c180b20004101360200200020233602040c170b20004101360200200020273602040c160b200041013602002000202a3602040c150b200541900e6a41186a2222200141186a290000370300200541900e6a41106a2220200141106a290000370300200541900e6a41086a221e200141086a290000370300200520012900003703900e200541800e6a41086a2032360200200520073602840e200520083602800e200541086a200541900e6a200541800e6a200410b208200528020c210341012101024020052802084101460d002022200541286a2903003703002020200541086a41186a290300370300201e200541086a41106a2903003703002005200541086a41086a2903003703900e410021010b200341807e712104200341ff017121030b200541e00d6a41186a2207200541900e6a41186a290300370300200541e00d6a41106a2232200541900e6a41106a290300370300200541e00d6a41086a2222200541900e6a41086a290300370300200520052903900e3703e00d2004200372210420010d12200541a0026a41186a2007290300370300200541a0026a41106a2032290300370300200541a0026a41086a202229030037030020054180066a41086a200541a0066a41086a29030037030020054180066a41106a200541a0066a41106a29030037030020054180066a41186a200541a0066a41186a290300370300200541e0056a41086a200541e0066a41086a290300370300200541e0056a41106a200541e0066a41106a290300370300200541e0056a41186a200541e0066a41186a290300370300200520052903e00d3703a002200520052903a00637038006200520052903e0063703e005200541c0056a41186a200541a0076a41186a290300370300200541c0056a41106a200541a0076a41106a290300370300200541c0056a41086a200541a0076a41086a290300370300200541a0056a41086a200541e0076a41086a290300370300200541a0056a41106a200541e0076a41106a290300370300200541a0056a41186a200541e0076a41186a29030037030020054180056a41086a200541a0086a41086a29030037030020054180056a41106a200541a0086a41106a29030037030020054180056a41186a200541a0086a41186a290300370300200520052903a0073703c005200520052903e0073703a005200520052903a00837038005200541e0046a41186a200541e0086a41186a290300370300200541e0046a41106a200541e0086a41106a290300370300200541e0046a41086a200541e0086a41086a290300370300200541c0046a41186a200541a0096a41186a290300370300200541c0046a41106a200541a0096a41106a290300370300200541c0046a41086a200541a0096a41086a290300370300200541a0046a41186a200541e0096a41186a290300370300200541a0046a41106a200541e0096a41106a290300370300200541a0046a41086a200541e0096a41086a290300370300200520052903e0083703e004200520052903a0093703c004200520052903e0093703a00420054180046a41186a200541a00a6a41186a29030037030020054180046a41106a200541a00a6a41106a29030037030020054180046a41086a200541a00a6a41086a290300370300200520052903a00a37038004200541e0036a41186a200541e00a6a41186a290300370300200541e0036a41106a200541e00a6a41106a290300370300200541e0036a41086a200541e00a6a41086a290300370300200520052903e00a3703e003200541c0036a41186a200541a00b6a41186a290300370300200541c0036a41106a200541a00b6a41106a290300370300200541c0036a41086a200541a00b6a41086a290300370300200520052903a00b3703c003200541a0036a41186a200541e00b6a41186a290300370300200541a0036a41106a200541e00b6a41106a290300370300200541a0036a41086a200541e00b6a41086a290300370300200520052903e00b3703a00320054180036a41186a200541a00c6a41186a29030037030020054180036a41106a200541a00c6a41106a29030037030020054180036a41086a200541a00c6a41086a290300370300200520052903a00c37038003200541e0026a41186a200541e00c6a41186a290300370300200541e0026a41106a200541e00c6a41106a290300370300200541e0026a41086a200541e00c6a41086a290300370300200520052903e00c3703e002200541c0026a41186a200541a00d6a41186a290300370300200541c0026a41106a200541a00d6a41106a290300370300200541c0026a41086a200541a00d6a41086a290300370300200520052903a00d3703c00241c004102c2203450d1420032033360200200320052903800637020420032002360224200320052903e0053702282003410c6a20054180066a41086a290300370200200341146a20054180066a41106a2903003702002003411c6a20054180066a41186a290300370200200341306a200541e0056a41086a290300370200200341386a200541e0056a41106a290300370200200341c0006a200541e0056a41186a290300370200200320353602482003202b36026c200320052903c00537024c200341d4006a200541c0056a41086a290300370200200341dc006a200541c0056a41106a290300370200200341e4006a200541c0056a41186a290300370200200320052903a005370270200341f8006a200541a0056a41086a29030037020020034180016a200541a0056a41106a29030037020020034188016a200541a0056a41186a29030037020020032030360290012003202e3602b401200341ac016a20054180056a41186a290300370200200341a4016a20054180056a41106a2903003702002003419c016a20054180056a41086a290300370200200320052903800537029401200341d0016a200541e0046a41186a290300370200200341c8016a200541e0046a41106a290300370200200341c0016a200541e0046a41086a290300370200200320052903e0043702b801200320253602d801200341f4016a200541c0046a41186a290300370200200341ec016a200541c0046a41106a290300370200200341e4016a200541c0046a41086a290300370200200320052903c0043702dc01200320293602fc0120034198026a200541a0046a41186a29030037020020034190026a200541a0046a41106a29030037020020034188026a200541a0046a41086a290300370200200320052903a004370280022003202c3602a002200341bc026a20054180046a41186a290300370200200341b4026a20054180046a41106a290300370200200341ac026a20054180046a41086a29030037020020032005290380043702a402200320283602c402200341e0026a200541e0036a41186a290300370200200341d8026a200541e0036a41106a290300370200200341d0026a200541e0036a41086a290300370200200320052903e0033702c802200320263602e80220034184036a200541c0036a41186a290300370200200341fc026a200541c0036a41106a290300370200200341f4026a200541c0036a41086a290300370200200320052903c0033702ec022003202336028c03200341a8036a200541a0036a41186a290300370200200341a0036a200541a0036a41106a29030037020020034198036a200541a0036a41086a290300370200200320052903a00337029003200320273602b003200341cc036a20054180036a41186a290300370200200341c4036a20054180036a41106a290300370200200341bc036a20054180036a41086a29030037020020032005290380033702b4032003202a3602d403200341f0036a200541e0026a41186a290300370200200341e8036a200541e0026a41106a290300370200200341e0036a200541e0026a41086a290300370200200320052903e0023702d803200320343602f80320034194046a200541c0026a41186a2903003702002003418c046a200541c0026a41106a29030037020020034184046a200541c0026a41086a290300370200200320052903c0023702fc032003200436029c04200341b8046a200541a0026a41186a290300370200200341b0046a200541a0026a41106a290300370200200341a8046a200541a0026a41086a290300370200200320052903a0023702a004200541086a202f202da710b008200541900e6a41086a2201200541086a41186a290300370300200541900e6a41106a2204200541286a290300370300200541900e6a41186a222b200541306a2802003602002005200541086a41106a2903003703900e200541086a410c6a2802002135200541086a41086a2802002134200528020c2107200528020821330240024020310d00410021020c010b2006417f4c0d030240024020060d00410121020c010b2006102c2202450d160b20022031200610e9081a0b202d422088a7213120054180026a41186a202b28020036020020054180026a41106a200429030037030020054180026a41086a2001290300370300200520052903900e3703800241042130200621320b20002030360204200041186a2035360200200041146a2034360200200041106a20073602002000410c6a2033360200200041086a20313602002000411c6a200529038002370200200041c4006a2006360200200041386a2003360200200041c8006a20052903e801370200200041246a20054180026a41086a2903003702002000412c6a20054180026a41106a290300370200200041346a20054180026a41186a280200360200200041d0006a200541e8016a41086a290300370200200041d8006a200541e8016a41106a2802003602002000413c6a2032ad4220862002ad84370200200041003602000c120b20004101360200200020333602040c110b1038000b20004101360200200020033602040c0f0b20004101360200200020023602040c0e0b20004101360200200020063602040c0d0b20004101360200200020343602040c0c0b20004101360200200020353602040c0b0b200041013602002000202b3602040c0a0b20004101360200200020303602040c090b200041013602002000202f3602040c080b200041013602002000202e3602040c070b20004101360200200020253602040c060b20004101360200200020293602040c050b200041013602002000202c3602040c040b20004101360200200020283602040c030b20004101360200200020323602040c020b20004101360200200020343602040c010b20004101360200200020043602040b200541b00e6a24000f0b1036000bae5303117f047e037f23002206210720064180056b41607122062400200641106a41086a200341086a280200360200200620032902003703100240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020022802000e050104000203010b20064180016a2002412c6a290200370300200641f8006a200241246a290200370300200641d8006a41186a2002411c6a290200370300200641d8006a41106a2208200241146a290200370300200641d8006a41086a2002410c6a29020037030020062002290204370358200641a6016a200241376a2d00003a000020064188016a41086a200241c4006a29020037030020064188016a41106a200241cc006a29020037030020064188016a41186a200241d4006a280200360200200620022f00353b01a40120062002413c6a29020037038801200241346a2d00002109200241386a280200210a02400240200628025c220b4125490d002008280200210b200641d8006a410c6a280200210c0c010b200641e1006a210c0b20062006280258220d3602b0012006200c3602a8012006280214210e2006280218210f2006200b3602ac010240200b4101742210200d6b2211200e410174200f6b2202200220114b1b2212450d00410021022006280210211302400340200f20026a22084101762214200e4f0d0c200d20026a22154101762216200b4f0d0d201320146a2d00002214410f71201441f0017141047620084101711b200c20166a2d00002208410f71200841047620154101711b470d012012200241016a2202470d000b201221020b20020d060b2010200d470d0441f8accb00412a41a4adcb001039000b4101211520062802142208200628021822144101762202490d0a20064180046a200628021020026a200820026b10b008200641386a41086a20064194046a290200370300200641c8006a2006419c046a290200370300200641d0006a200641a4046a29020037030020062006418c046a2902003703382014410171210220064180046a41086a2802002108200628028404211620062802800421032004290204211720042802002111410021140c280b200241106a280200210d2002410c6a280200210c200241086a280200210b2002280204210202402006280214221441017420062802182208470d0020042802082108410021140240200b450d00200d2008470d00200b2004280200200d10ec08452114200d21080b2004280204211620042802002103024020052802002215450d00200541046a280200450d002015102e0b2005200c3602042005200b360200200541086a200d360200200641386a41086a20064180046a41086a290200370300200641386a41106a20064180046a41106a290200370300200641386a41186a20064180046a41186a290200370300200641206a41086a20064198036a41086a290200370300200641206a41106a20064198036a41106a28020036020020062006290280043703382006200629029803370320410321150c280b2008410176221520144f0d0a200628021020156a2d000021142003200328020841016a36020820022014410f71201441047620084101711b221541246c6a22082902102118200820062903900437021020082902082119200820062903880437020820082902002117200641023a0080042008200629038004370200200841186a2214290200211a201420062903980437020002400240024002402017a741ff01714102470d0020032802042216200328020822054101762214490d0f20064198036a200328020020146a201620146b10b0082006418c046a20062902980337020020064194046a20064198036a41086a2902003702002006419c046a200641a8036a29020037020020064180046a41246a200641b0036a290200370200200641ac046a200641b8036a290200370200200641b4046a200641c0036a280200360200200641b8046a2004290200370300200641c0046a200441086a280200360200200641013602840420064180046a41086a200541017136020041002114200641003a0080042002201541246c6a41046a200141306a20064180046a109d08360200200841003a00000c010b200641a0046a200828022036020020064180046a41186a201a37030020062019370388042006201737038004200620183703900420064198036a41086a200441086a2802003602002006200429020037039803200641c0026a200120064180046a200320064198036a200510ad0820062802c402211620062802c0024101460d01200641c0026a41086a2d0000210341002114200841003a00002002201541246c6a41046a2016360200200341ff0171450d020b41032115200b2103200c2116200d21080c290b20004101360200200020163602040240200b450d00200c450d00200b102e0b2002102e200724000f0b2000428080808010370200200041186a200d360200200041146a200c360200200041106a200b3602002000410c6a2002360200200041086a4103360200200724000f0b200641c0036a2002412c6a290200370300200641b8036a200241246a290200370300200641b0036a2002411c6a290200370300200641a8036a2208200241146a29020037030020064198036a41086a2002410c6a2902003703002006200229020437039803200241346a2802002111200241386a28020021102002413c6a280200211b200241c0006a280200211c02400240200628029c03220b4125490d002008280200210b20064198036a410c6a280200210c0c010b200641a1036a210c0b2006200628029803220d360290012006200c360288012006280214210e2006280218210f2006200b36028c01410021020240200b410174200d6b2209200e410174200f6b220a200a20094b1b2212450d00200628021021130340200f20026a22084101762214200e4f0d0d200d20026a22154101762216200b4f0d0e201320146a2d00002214410f71201441f0017141047620084101711b200c20166a2d00002208410f71200841047620154101711b470d012012200241016a2202470d000b201221020b0240024002400240024020022009470d002009200a460d010b200220094f0d01200b200d200241016a22126a22144101762208490d12200641d8006a200c20086a200b20086b10b008200641e8016a41086a2216200641d8006a41086a290300370300200641e8016a41106a2203200641d8006a41106a290300370300200641e8016a41186a2205200641d8006a41186a290300370300200641e8016a41206a220e200641d8006a41206a290300370300200641e8016a41286a220f200641d8006a41286a280200360200200620062903583703e801200d20026a220d4101762208200b4f0d13200c20086a2d0000210810b308211520064180046a41086a20144101713602002006418c046a220b20062903e80137020020064194046a20162903003702002006419c046a200329030037020020064180046a41246a2005290300370200200641ac046a200e290300370200200641b4046a200f280200360200200641c4046a201c360200200641c0046a201b360200200641bc046a2010360200200641b8046a20113602002006410436028404200641c8046a20062902b801370300200641d0046a200641b8016a41086a290200370300200641d8046a200641b8016a41106a28020036020041002114200641003a00800420152008410f712008410476200d4101711b41246c6a2208200141306a220320064180046a109d08360204200841003a000020062802142208410174200628021822166b2002470d0220064180046a20064188016a200210b408200641386a41086a20064180046a41186a290300370300200641386a41106a200641a0046a290300370300200641386a41186a200641a8046a290300370300200620064180046a41106a290300370338200b280200210820064180046a41086a28020021162004280208210b2004290200211720062802840421032006280280042102201521110c280b4100211402402010450d00201c2004280208470d0020102004280200201c10ec084521140b200b200d4101762202490d1020064180046a200c20026a200b20026b10b008200641c0026a41086a221520064194046a290200370300200641c0026a41106a220c2006419c046a290200370300200641c0026a41186a220e200641a4046a29020037030020062006418c046a2902003703c002200d410171210220064180046a41086a220d2802002108200628028404211620062802800421032004280208210b20042902002117024020052802002204450d00200541046a280200450d002004102e0b2005201b36020420052010360200200541086a201c360200200641386a41086a2015290300370300200641386a41106a200c290300370300200641386a41186a200e290300370300200641206a41086a200d290200370300200641206a41106a20064180046a41106a280200360200200620062903c00237033820062006290280043703200c270b200f20026a22144101762208200e4f0d12200628021020086a2d000021082003200220032802086a41016a36020820112008410f71200841047620144101711b221441246c6a22022902102118200220062903900437021020022902082119200220062903880437020820022902002117200641023a0080042002200629038004370200200241186a2208290200211a20082006290398043702002017a741ff01714102470d0120032802042215200328020822164101762208490d15200641c0026a200328020020086a201520086b10b0082006418c046a20062902c00237020020064194046a200641c0026a41086a2902003702002006419c046a200641d0026a29020037020020064180046a41246a200641d8026a290200370200200641ac046a200641e0026a290200370200200641b4046a200641e8026a280200360200200641b8046a2004290200370300200641c0046a200441086a280200360200200641013602840420064180046a41086a2016410171360200200641003a0080042011201441246c6a41046a200141306a20064180046a109d08360200200241003a00000c250b201620026a220b410176220d20084f0d122008201620126a22054101762214490d132006280210220c200d6a2d00002116200641c0026a200c20146a200820146b10b0082006418c046a220820062902c00237020020064194046a200641c0026a41086a2902003702002006419c046a200641c0026a41106a29020037020020064180046a41246a200641c0026a41186a290200370200200641ac046a200641c0026a41206a290200370200200641b4046a200641c0026a41286a280200360200200641b8046a2004290200370300200641c0046a200441086a280200360200200641013602840420064180046a41086a2204200541017136020041002114200641003a00800420152016410f71201641f00171410476200b4101711b41246c6a2216200320064180046a109d08360204201641003a000020064180046a20064188016a200210b408200641386a41086a20064180046a41186a290300370300200641386a41106a20064180046a41206a290300370300200641386a41186a20064180046a41286a290300370300200620064180046a41106a29030037033820082802002108200428020021162006280284042103200628028004210242002117201521110c250b200641a0046a200228022036020020064180046a41186a201a370300200620193703880420062017370380042006201837039004200641c0026a41086a200441086a280200360200200620042902003703c002200641e8016a200120064180046a2003200641c0026a200510ad0820062802ec012108024020062802e8014101460d00200641e8016a41086a2d00002115200241003a00002011201441246c6a41046a2008360200201541ff01710d24200b200d4101762202490d1520064180046a200c20026a200b20026b10b0082000410c6a200d41017136020020004281808080c000370204200041c8006a201c360200200041c4006a201b360200200041c0006a20103602002000413c6a2011360200200041106a200629028004370200200041186a20064188046a290200370200200041206a20064180046a41106a290200370200200041286a20064180046a41186a290200370200200041306a20064180046a41206a290200370200200041386a20064180046a41286a280200360200200041003602000c220b200041013602002000200836020402402010450d00201b450d002010102e0b2011102e0c210b200641e8026a2002412c6a290200370300200641e0026a200241246a290200370300200641d8026a2002411c6a290200370300200641d0026a2208200241146a290200370300200641c0026a41086a2002410c6a290200370300200620022902043703c0022002413c6a2802002109200241386a280200211c200241346a28020021100240024020062802c402220b4125490d002008280200210b200641c0026a410c6a280200210d0c010b200641c9026a210d0b410021020240200b41017420062802c002220c6b22112006280214220e4101742006280218220f6b220a200a20114b1b2212450d00200628021021130340200f20026a22084101762214200e4f0d16200c20026a22154101762216200b4f0d17201320146a2d00002214410f71201441f0017141047620084101711b200d20166a2d00002208410f71200841047620154101711b470d012012200241016a2202470d000b201221020b024002400240024020022011470d002011200a460d010b200220114f0d0110b3082108200c20026a22154101762216200b4f0d19200b201541016a220c4101762214490d1a200d20166a2d0000211620064198036a200d20146a200b20146b10b0082006418c046a220b20062902980337020020064180046a41146a220d20064198036a41086a220e29020037020020064180046a411c6a220f20064198036a41106a221229020037020020064180046a41246a221320064198036a41186a29020037020020064180046a412c6a221120064198036a41206a29020037020020064180046a41346a220a20064198036a41286a280200360200200641c0046a221b2009360200200641bc046a2209201c36020020064180046a41386a2010360200200641013602840420064180046a41086a2210200c41017136020041002114200641003a00800420082016410f71201641f0017141047620154101711b41246c6a2215200141306a20064180046a109d08360204201541003a000020064180046a200641106a200210b408200641a8016a41086a2202200b280200360200200641d8006a41086a221520064180046a41186a220c290300370300200641d8006a41106a221620064180046a41206a290300370300200641d8006a41186a221c20064180046a41286a29030037030020062006290284043703a801200620064180046a41106a221d290300370358200620062802800436029c032006410436029803200e20062903a8013703002012200228020036020020064198036a41386a410036020020064198036a41346a200836020020064198036a41146a200629035837020020064198036a411c6a201529030037020020064198036a41246a201629030037020020064198036a412c6a201c290300370200200641dc036a20062902880137020020064198036a41cc006a20064188016a41086a29020037020020064198036a41d4006a20064188016a41106a280200360200200641f0036a41086a200441086a280200360200200620042902003703f00320064180046a200120064198036a2003200641f0036a200510af08200641e8016a41086a22052013290200370300200641e8016a41106a220e2011290200370300200641e8016a41186a2212200a2902003703002006200f2902003703e80120102802002115200b2802002102201d2802002103200d2802002116200c280200210820092802002111201b2903002117200641c8046a280200210b200628028404210d2006280280042104200641b8016a41106a220c200641dc046a280200360200200641b8016a41086a220f20064180046a41d4006a290200370300200620064180046a41cc006a2902003703b80120044101460d07200641386a41186a2012290300370300200641386a41106a200e290300370300200641386a41086a2005290300370300200641206a41086a200f290300370300200641206a41106a200c280200360200200620062903e801370338200620062903b8013703200c020b41002102024020092004280208470d0020102004280200200910ec084521020b024020052802002208450d00200541046a280200450d002008102e0b2005201c36020420052010360200200541086a2009360200024020020d00200620062802c0023602800420064180046a41047221150240024020062802c40222084125490d00200641d0026a2802002108200641cc026a28020021020c010b200641c9026a21020b4100211420064180046a41086a221641003a0000200641003602840420152002200220086a10fb06200641386a41086a20064180046a41186a290300370300200641386a41106a200641a0046a290300370300200641386a41186a200641a8046a290300370300200641206a41086a20064198036a41086a290200370300200641206a41106a20064198036a41106a280200360200200620064180046a41106a29030037033820062006290298033703202006418c046a280200210820162802002116200429020421172004280200211120062802840421032006280280042102410121150c020b200620062802c0023602800420064180046a41047221140240024020062802c40222084125490d00200641d0026a2802002108200641cc026a28020021020c010b200641c9026a21020b20064180046a41086a221541003a0000200641003602840420142002200220086a10fb06200641386a41086a20064180046a41186a290300370300200641386a41106a200641a0046a290300370300200641386a41186a200641a8046a290300370300200641206a41086a20064198036a41086a290200370300200641206a41106a20064198036a41106a280200360200200620064180046a41106a29030037033820062006290298033703202006418c046a28020021082015280200211620042902042117200428020021112006280284042103200628028004210241012115410121140c010b200b200c4101762202490d19200641e8016a200d20026a200b20026b10b00810b308210220064198036a41086a20062902e80137030020064198036a41106a200641e8016a41086a29020037030020064198036a41186a200641e8016a41106a29020037030020064198036a41206a200641e8016a41186a29020037030020064198036a41286a200641e8016a41206a290200370300200641c8036a200641e8016a41286a28020036020020064198036a41c0006a200936020020064198036a413c6a201c360200200641d0036a201036020020064198036a41346a20023602002006200c41017136029c03200641043602980320064188016a41086a200441086a280200360200200620042902003703880120064180046a200120064198036a200320064188016a200510af08200641d8006a41086a2204200641a4046a290200370300200641d8006a41106a220d200641ac046a290200370300200641d8006a41186a220520064180046a41346a29020037030020062006419c046a29020037035820064180046a41086a28020021152006418c046a280200210220064180046a41106a280200210320064194046a280200211620064180046a41186a280200210820064180046a413c6a280200211120064180046a41c0006a2903002117200641c8046a280200210b200628028404210c2006280280042114200641b8016a41106a220e200641dc046a280200360200200641b8016a41086a220f200641d4046a2902003703002006200641cc046a2902003703b80120144101460d1a200641386a41186a2005290300370300200641386a41106a200d290300370300200641386a41086a2004290300370300200641206a41086a200f290300370300200641206a41106a200e28020036020020062006290358370338200620062903b801370320410021140b20062802c4024125490d26200641cc026a280200102e0c260b200d4101762202200b4f0d19200c20026a2d0000210210b30821080240024020114101470d0020064198036a41026a200641a4016a41026a2d00003a000020064180046a41086a20064188016a41086a29030037030020064180046a41106a20064188016a41106a29030037030020064180046a41186a20064188016a41186a280200360200200620062f01a4013b0198032006200629038801370380040c010b200b200d41016a22154101762214490d1b20064198036a200c20146a200b20146b10b00820064180046a41086a20154101713602002006418c046a20062902980337020020064194046a20064198036a41086a2902003702002006419c046a20064198036a41106a290200370200200641a4046a20064198036a41186a290200370200200641ac046a200641b8036a290200370200200641b4046a200641c0036a280200360200200641b8046a20093a0000200641b9046a20062f01a4013b00002006410236028404200641bb046a200641a4016a41026a2d00003a0000200641bc046a200a360200200641c0046a200629038801370300200641c8046a20064188016a41086a290300370300200641d0046a20064188016a41106a290300370300200641d8046a20064188016a41186a28020036020041002109200641003a008004200141306a20064180046a109d08210a0b20082002410f712002410476200d4101711b41246c6a220220093a0000200220062f0198033b00012002200a3602042002200629038004370208200241036a2006419a036a2d00003a0000200241106a20064180046a41086a2215290300370200200241186a20064180046a41106a2216290300370200200241206a20064180046a41186a220b2802003602004100211420064198036a41086a41003602002006200836029c032006410336029803200641b8016a41086a200441086a280200360200200620042902003703b80120064180046a200120064198036a2003200641b8016a200510af08200641c0026a41086a220d20064180046a41246a290200370300200641c0026a41106a2205200641ac046a290200370300200641c0026a41186a220c200641b4046a29020037030020062006419c046a2902003703c002201528020021152006418c046a28020021022016280200210320064194046a2802002116200b2802002108200641bc046a2802002111200641c0046a2903002117200641c8046a280200210b200628028404210e2006280280042104200641e8016a41106a220f200641dc046a280200360200200641e8016a41086a2212200641d4046a2902003703002006200641cc046a2902003703e80120044101460d01200641386a41186a200c290300370300200641386a41106a2005290300370300200641386a41086a200d290300370300200641206a41086a2012290300370300200641206a41106a200f280200360200200620062903c002370338200620062903e8013703200c1e0b0240024020022011460d00200b200d20026a22144101762208490d1c200641b8016a200c20086a200b20086b10b0082003200328020820026a36020820064198036a41086a221620062902b80137030020064198036a41106a220b200641b8016a41086a29020037030020064198036a41186a220d200641b8016a41106a29020037030020064198036a41206a220c200641b8016a41186a29020037030020064198036a41286a220e200641b8016a41206a29020037030020064198036a41306a200641b8016a41286a280200360200200641cc036a20093a00002006201441017136029c03410221152006410236029803200641cf036a200641a4016a41026a2d00003a0000200620062f01a4013b00cd03200641d0036a200a360200200641ec036a20064188016a41186a280200360200200641e4036a20064188016a41106a290300370200200641dc036a20064188016a41086a290300370200200641d4036a200629038801370200200641f0036a41086a200441086a280200360200200620042902003703f00320064180046a200120064198036a2003200641f0036a200510af0820062802840421142006280280042108200641c0026a20064180046a41086a41d80010e9081a20084101460d01200641e8016a200641c0026a41d80010e9081a20064198036a200641a8016a200210b40820064180046a410472200641e8016a41d80010e9081a41002111200641003a008004200141306a20064180046a109d082102200641386a41086a200d290300370300200641386a41106a200c290300370300200641386a41186a200e2903003703002006200b2903003703382002ad211720162802002116200641a4036a28020021082006280298032102200628029c032103410021140c1f0b2003200328020820116a36020820064180046a41086a20062903880137030020064180046a41106a20064188016a41086a29030037030020064180046a41186a20064188016a41106a290300370300200641a0046a20064188016a41186a280200360200200620093a008004200620062f01a4013b0081042006200641a6016a2d00003a0083042006200a3602840420064198036a41086a200441086a2802003602002006200429020037039803200641c0026a200120064180046a200320064198036a200510ad0820062802c4022115024020062802c0024101460d00200b200d4101762202490d1d200641c0026a41086a2d0000210820064180046a200c20026a200b20026b10b008200641386a41086a20064194046a290200370300200641386a41106a2006419c046a290200370300200641d0006a200641a4046a290200370300200641206a41086a20064198036a41086a290200370300200641206a41106a20064198036a41106a28020036020020062006418c046a2902003703382006200629029803370320200d4101712102200841ff017145211420064180046a41086a2802002108200628028404211620062802800421032015ad211741022115410021110c1f0b20004101360200200020153602040c020b20004101360200200020143602040c010b200041013602002000200e3602040b200628025c4125490d1d200641e4006a280200102e200724000f0b200041013602002000200d3602040c190b2014200e41e0efcc00103c000b2016200b41e0efcc00103c000b2002200841f0efcc001056000b2015201441e0efcc00103c000b2014201641f0efcc001056000b2014200e41e0efcc00103c000b2016200b41e0efcc00103c000b2002200b41f0efcc001056000b2008200b41f0efcc001056000b2008200b41e0efcc00103c000b2008200e41e0efcc00103c000b200d200841e0efcc00103c000b2014200841f0efcc001056000b2008201541f0efcc001056000b2002200b41f0efcc001056000b2014200e41e0efcc00103c000b2016200b41e0efcc00103c000b2016200b41e0efcc00103c000b2014200b41f0efcc001056000b2002200b41f0efcc001056000b200041013602002000200c3602040c040b2002200b41e0efcc00103c000b2014200b41f0efcc001056000b2008200b41f0efcc001056000b2002200b41f0efcc001056000b20062802c4024125490d02200641cc026a280200102e0c020b200628025c4125490d06200641e4006a280200102e0c060b200628029c034125490d00200641a4036a280200102e200724000f0b200724000f0b200b200d4101762202490d0120064180046a200c20026a200b20026b10b008200641386a41086a20064194046a290200370300200641c8006a2006419c046a290200370300200641d0006a200641a4046a29020037030020062006418c046a290200370338200d4101712102201bad4220862010ad84211720064180046a41086a28020021082006280284042116200628028004210341002114201c210b0b0240200628029c034125490d00200641a4036a280200102e0b410421150c020b2002200b41f0efcc001056000b0b20002014360204200041186a2008360200200041146a2016360200200041106a20033602002000410c6a2002360200200041086a20153602002000411c6a2006290338370200200041c8006a200b360200200041c0006a20173702002000413c6a2011360200200041cc006a2006290320370200200041246a200641386a41086a2903003702002000412c6a200641386a41106a290300370200200041346a200641386a41186a290300370200200041d4006a200641206a41086a290300370200200041dc006a200641206a41106a28020036020020004100360200200724000bd50301087f230041106b22032400200041003a00042000410036020020032000200210fc060240024020032802004101470d00200341086a2802000d0141d0f0cc00411141e4f0cc001039000b02400240200028020022044125490d002000410c6a22052802002106200041086a28020021070c010b200041056a21072004210620002105412421040b02400240024020062004490d00200121080c010b2002210920012108024003402009450d01200720066a20082d00003a00002009417f6a2109200841016a21082004200641016a2206470d000b200421060c010b200520063602000c010b20052006360200200120026a22012008460d00200841016a21062000410c6a2105200041056a210a20082d00002102034002400240200028020022044125490d00200028020c210820002802082107200521090c010b2004210820002109200a2107412421040b024020082004470d0020032000410110fc06024020032802004101470d00200341086a2802000d0441d0f0cc00411141e4f0cc001039000b200028020c210820002802082107200521090b200720086a20023a00002009200928020041016a36020020012006460d0120062d00002102200641016a21060c000b0b200341106a24000f0b1036000b880903017f027e177f230041d0016b22022400200241186a200141d00010e9081a20024188016a20002903182000290308853703002002200029031022033703782002200029030022043703702002200320048537038001200241186a200241f0006a109107200241086a2002290378420020022903702203420010e8084104210520002802202206200241106a290300200229030885200389a7220771220841046a200671210902400240024002400240200041246a280200220a20086a280000220b2007411976220c41818284086c220d732201417f73200141fffdfb776a7141808182847871220e0d004104210f200b21100340200921012010201041017471418081828478710d0320062001200f6a41046a712109200f41046a2205210f200d200a20016a280000221073220e417f73200e41fffdfb776a7141808182847871220e450d000c020b0b200b211020082101200a450d010b200e417f6a200e71210f2001200e684103766a210e200241186a41256a2111200241c4006a2802002112200241c0006a280200211320022802382114200241e4006a2d000041ff01712115200241186a41cd006a2d000041ff0171211603400240200241186a200a41002006200e716b41d0006c6a220e41b07f6a2217412010ec080d00200e41506a2118201321192012211a0240201441254f0d00201121192014211a0b024002402018280200221b4125490d00200e415c6a280200211b200e41586a28020021180c010b201841056a21180b201a201b470d0020192018201a10ec080d002015200e417c6a2d0000470d002015450d032016201741cd006a2d000041ff0171460d030b02400240200f450d00200f210e0c010b2005210f0340200921012010201041017471418081828478710d0320062001200f6a41046a712109200f41046a2205210f200d200a20016a280000221073220e417f73200e41fffdfb776a7141808182847871220e450d000b0b200e417f6a200e71210f2001200e684103766a210e0c000b0b200041206a210f2002200036026c200241f0006a200241186a41d00010e9081a4104210102400340200b4180818284787122100d01200820016a2110200141046a2101200a201020067122086a280000210b0c000b0b0240200a20106841037620086a20067122016a2c000022104100480d00200a200a280200418081828478716841037622016a2d000021100b200041286a280200210802402010410171220b450d0020080d00200241c0016a200f200241ec006a10b508200028022022062007712110200041246a280200210a4104210103402010220820016a2006712110200141046a2101200a20086a28000041808182847871220f450d000b0240200a200f6841037620086a20067122016a2c00004100480d00200a280200418081828478716841037621010b200028022821080b20002008200b6b360228200a20016a200c3a000020062001417c6a71200a6a41046a200c3a0000200a410020016b41d0006c6a41b07f6a200241f0006a41d00010e9081a2000412c6a2201200128020041016a3602000c010b20144125490d002013102e0b200241d0016a24000bc40801047f230041f0026b22042400024002400240024002400240024020022802004101470d00200241086a280200210520022802042102200441d0016a41186a200141186a290000370300200441d0016a41106a200141106a290000370300200441d0016a41086a200141086a290000370300200420012900003703d001200441f0016a200441d0016a20022005200310ae0820042802f401210120042802f0012102200441f8006a200441f0016a41086a220541d40010e9081a20024101460d05200441206a200441f8006a41d40010e9081a200420013602f4012005200441206a41d40010e9081a41002102200441003a00f0012003200441f0016a109d0821010c010b2002280204210302400240200241086a28020022024120460d00200441f0016a41186a200141186a290000370300200441f0016a41106a200141106a290000370300200441f0016a41086a200141086a290000370300200420012900003703f0012002417f4c0d040240024020020d00410121010c010b2002102c2201450d060b20012003200210e9082103200441f8006a41186a2205200441f0016a41186a290300370300200441f8006a41106a2206200441f0016a41106a290300370300200441f8006a41086a2207200441f0016a41086a290300370300200420042903f0013703784130102c2201450d05200141043a000020012004290378370001200120042f00f0013b00212001200236002c2001200236002820012003360024200141096a2007290300370000200141116a2006290300370000200141196a2005290300370000200141236a200441f2016a2d00003a0000410121020c010b200441f8006a41026a200341026a2d00003a0000200441f0016a41086a2003410f6a29000037030020044180026a200341176a29000037030020044188026a2003411f6a2d00003a0000200420032f00003b0178200420032900073703f00120032800032101410021020b200441d0016a41026a2203200441f8006a41026a2d00003a0000200441206a41086a2205200441f0016a41086a290300370300200441206a41106a2206200441f0016a41106a290300370300200441206a41186a2207200441f0016a41186a2d00003a0000200420042f01783b01d001200420042903f00137032020020d012004411c6a41026a20032d00003a0000200441086a2005290300370300200441106a2006290300370300200441186a20072d00003a0000200420042f01d0013b011c20042004290320370300410121020b200020023a000420004100360200200041056a20042f011c3b0000200041086a20013602002000410c6a2004290300370200200041076a2004411e6a2d00003a0000200041146a200441086a2903003702002000411c6a200441106a290300370200200041246a200441186a2802003602000c040b20004101360200200020013602040c030b1038000b1036000b20004101360200200020013602040b200441f0026a24000b800d01027f230041b0046b22002400024041c004102c22010d001036000b200141023a00002001200029008d04370001200141023a0024200120002900ea03370025200141096a2000418d046a41086a290000370000200141116a2000418d046a41106a290000370000200141196a2000418d046a41186a290000370000200141206a2000418d046a411f6a2800003600002001412d6a200041ea036a41086a290000370000200141356a200041ea036a41106a2900003700002001413d6a200041ea036a41186a290000370000200141c4006a200041ea036a411f6a280000360000200141023a0048200141023a006c200120002900c703370049200141d1006a200041c7036a41086a290000370000200141d9006a200041c7036a41106a290000370000200141e1006a200041c7036a41186a290000370000200141e8006a200041c7036a411f6a280000360000200120002900a40337006d200141f5006a200041a4036a41086a290000370000200141fd006a200041a4036a41106a29000037000020014185016a200041a4036a41186a2900003700002001418c016a200041a4036a411f6a280000360000200141023a009001200141023a00b40120012000290081033700910120014199016a20004181036a41086a290000370000200141a1016a20004181036a41106a290000370000200141a9016a20004181036a41186a290000370000200141b0016a20004181036a411f6a280000360000200120002900de023700b501200141bd016a200041de026a41086a290000370000200141c5016a200041de026a41106a290000370000200141cd016a200041de026a41186a290000370000200141d4016a200041de026a411f6a280000360000200141023a00d801200141f8016a200041bb026a411f6a280000360000200141f1016a200041bb026a41186a290000370000200141e9016a200041bb026a41106a290000370000200141e1016a200041bb026a41086a290000370000200120002900bb023700d901200141023a00fc012001419c026a20004198026a411f6a28000036000020014195026a20004198026a41186a2900003700002001418d026a20004198026a41106a29000037000020014185026a20004198026a41086a29000037000020012000290098023700fd01200141023a00a002200141c0026a200041f5016a411f6a280000360000200141b9026a200041f5016a41186a290000370000200141b1026a200041f5016a41106a290000370000200141a9026a200041f5016a41086a290000370000200120002900f5013700a102200141023a00c402200141e4026a200041d2016a411f6a280000360000200141dd026a200041d2016a41186a290000370000200141d5026a200041d2016a41106a290000370000200141cd026a200041d2016a41086a290000370000200120002900d2013700c502200141023a00e80220014188036a200041af016a411f6a28000036000020014181036a200041af016a41186a290000370000200141f9026a200041af016a41106a290000370000200141f1026a200041af016a41086a290000370000200120002900af013700e902200141023a008c03200141ac036a2000418c016a411f6a280000360000200141a5036a2000418c016a41186a2900003700002001419d036a2000418c016a41106a29000037000020014195036a2000418c016a41086a2900003700002001200029008c0137008d03200141023a00b003200141d0036a200041e9006a411f6a280000360000200141c9036a200041e9006a41186a290000370000200141c1036a200041e9006a41106a290000370000200141b9036a200041e9006a41086a290000370000200120002900693700b103200141023a00d403200141f4036a200041c6006a411f6a280000360000200141ed036a200041c6006a41186a290000370000200141e5036a200041c6006a41106a290000370000200141dd036a200041c6006a41086a290000370000200120002900463700d503200141023a00f80320014198046a200041236a411f6a28000036000020014191046a200041236a41186a29000037000020014189046a200041236a41106a29000037000020014181046a200041236a41086a290000370000200120002900233700f903200141023a009c04200141bc046a2000411f6a280000360000200141b5046a200041186a290000370000200141ad046a200041106a290000370000200141a5046a200041086a2900003700002001200029000037009d04200041b0046a240020010bf310010a7f230041e0006b220324000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200141046a2802002204410174200141086a28020022056b20024b0d00200420054101762202490d01200341206a200128020020026a200420026b10b00820002005410171360200200020032903203702042000410c6a200341286a290300370200200041146a200341306a2903003702002000411c6a200341386a290300370200200041246a200341c0006a2903003702002000412c6a200341c8006a2802003602000c150b20054101762106200520026a22074101762108024020074101710d0020082006490d0220042008490d03200128020020066a210202400240200820066b220141244b0d00200341206a2002200110e9081a200341d0006a41026a200341206a41026a2d00003a0000200341086a200341336a290000370300200341106a2003413b6a290000370300200341186a200341c3006a2d00003a0000200320032f00203b01502003200329002b3703002003280023210420032800272102410021060c010b2001417f4c0d052001102c2204450d0620042002200110e9081a41012106200121020b2000200136020420002005410171360200200041086a20063a0000200041096a20032f01503b0000200041106a20023602002000410c6a2004360200200041146a20032903003702002000410b6a200341d2006a2d00003a00002000411c6a200341086a290300370200200041246a200341106a2903003702002000412c6a200341186a2802003602000c150b200841016a22072006490d05200820044f0d06200128020020066a210802400240200720066b220441244b0d00200341206a2008200410e9081a2003411c6a41026a200341206a41026a2d00003a0000200341086a200341336a290000370300200341106a2003413b6a290000370300200341186a200341c3006a2d00003a0000200320032f00203b011c2003200329002b3703002003280023210120032800272106410021080c010b2004417f4c0d042004102c2201450d0520012008200410e9081a41012108200421060b200341206a4104722109200341296a220720032f011c3b0000200341206a41106a220a20063602002003412c6a2001360200200341346a20032903003702002003412b6a2003411e6a2d00003a00002003413c6a200341086a290300370200200341c4006a200341106a290300370200200341cc006a200341186a280200360200200320083a00282003200436022420032002410171220236022002402005410171220520024d0d000240024020044125490d002006417f6a220b0d0120012d000021040c150b2004417f6a220b450d090b200b417f6a210c410021010340200141016a21050240024020044125490d002003280230220420014d0d102003280230220420054d0d11200328022c20016a2d00004104742102200328022c20016a41016a2d0000410476210620032802302104200328022c21080c010b200420014d0d0f200420054d0d10200720016a22062d00004104742102200641016a2d00004104762106200721080b200420014d0d0a200820016a20062002723a00000240200c2001460d0020032802242104200521010c010b0b02400240200328022422014125490d0020032802302201200b4d0d11200328022c200b6a2d0000210420032802302101200328022c21070c010b2001200b4d0d102007200b6a2d000021040b2001200b4d0d0a2007200b6a21010c130b200520024f0d130240024020044125490d00200a21050c010b200421062009210520072101412421040b024020062004470d00200341d0006a2009410110fc06024020032802504101470d00200341d8006a2802000d0641d0f0cc00411141e4f0cc001039000b20032802302106200328022c2101200a21050b200120066a41003a00002005200528020041016a36020002400240200328022422044125490d00200328023021010c010b200421010b024020014102490d002001417e6a21010340200141016a21050240024020044125490d002003280230220420014d0d132003280230220420054d0d14200328022c20016a2d00004104742102200328022c20016a41016a2d0000410476210620032802302104200328022c21080c010b200420014d0d12200420054d0d13200720016a22062d00004104742102200641016a2d00004104762106200721080b200420054d0d0c200820016a41016a20062002723a00002001417f6a210120032802242104200541014b0d000b0b0240024020044125490d002003280230450d13200328022c2d0000210120032802302104200328022c21070c010b2004450d1220032d002921010b2004450d0b2007200141f001714104763a00000c130b2002200441f0efcc001056000b200620084180f0cc001057000b200820044180f0cc00104d000b1038000b1036000b200620074190f0cc001057000b200720044190f0cc00104d000b20032d00292104200721010c0a0b2001200441ecf4cc00103c000b200b2001418cf5cc00103c000b200141016a200441c4f2cc00103c000b4100410041acf5cc00103c000b2001200441ccf4cc00103c000b200141016a200441dcf4cc00103c000b200b200141fcf4cc00103c000b2001200441a4f2cc00103c000b200141016a200441b4f2cc00103c000b41004100419cf5cc00103c000b200120044104743a00000b02400240200328022422014125490d00200328023021010c010b2009210a0b02402001450d00200a2001417f6a3602000b20002003290320370200200041286a200341206a41286a290300370200200041206a200341206a41206a290300370200200041186a200341206a41186a290300370200200041106a200341206a41106a290300370200200041086a200341206a41086a2903003702000b200341e0006a24000bcc0f06087f017e077f017e017f027e230041e0006b220324000240024002400240024002400240200128020c220441016a22052004490d000240200520012802002206200641016a220741037641076c20064108491b22064101764b0d004100210641002105024003400240024020064101710d00200520074f0d0320052106200541016a21050c010b200541036a220620054922080d0220062007492209450d022007200541046a20081b200720091b21050b200141046a28020020066a220620062802002206410776417f73418182840871200641fffefdfb07726a360200410121060c000b0b200141046a2802002105200128020041016a22064104490d05200520066a20052800003600000c060b024002402005200641016a2206200520064b1b22050d0041d0a1c0002108410021094100210a0c010b02400240200541074b0d004104410820054104491b21050c010b200541ffffffff01712005470d03417f2005410374220541076e417f6a677641016a41012005410d4b1b21050b2005ad42d0007e220b422088a70d03200ba72206200541046a22096a22082006490d032008102c2208450d04200820066a220841ff01200910eb081a2005417f6a2209200541037641076c20094108491b210a0b200141046a280200220c41046a210d200c20076a210e200c280200417f734180818284787121072002280200210f200341d8006a2110200341086a211103400240024020070d0002400340200d200e4f0d01200c41c07d6a210c200d2802002105200d41046a2206210d2005418081828478712205418081828478460d000b2005418081828478732207417f6a20077121122006210d0c020b2001200436020c200041003602002001200a20046b3602082001280200210520012009360200200141046a22062802002107200620083602002005450d092007200541016aad42d0007ea76b102e0c090b2007417f6a20077121120b2010200f290318200f290308853703002003200f290310220b3703482003200f29030022133703402003200b20138537035041002105200c41002007684103766b41d0006c6a41b07f6a2214200341c0006a1091072003200329034842002003290340220b420010e8082011290300200329030085200b89220ba721060340200541046a2205200620097122076a2106200820076a280000418081828478712202450d000b0240200820026841037620076a20097122056a2c00004100480d002008280200418081828478716841037621050b200820056a200ba741197622063a00002005417c6a20097120086a41046a20063a00002008410020056b41d0006c6a41b07f6a201441d00010e9081a201221070c000b0b41accdcc00411c41c8cdcc001039000b41accdcc00411c41c8cdcc001039000b41accdcc00411c41c8cdcc001039000b1036000b200541046a2005200610ea081a0b4100210502402001280200220a417f460d002002280200210c200141046a210e200341c0006a41186a2110200341106a41086a21114100210603400240200e2802002205200622146a2d0000418001470d00410020146b210403402010200c290318200c290308853703002003200c290310220b3703482003200c29030022133703402003200b2013853703502005200441d0006c6a220f41b07f6a220d200341c0006a109107200341106a200329034842002003290340220b420010e808200e280200210920012802002108410021052011290300200329031085200b89220ba7221221060340200541046a2205200620087122076a2106200920076a280000418081828478712202450d000b0240200920026841037620076a20087122056a2c00004100480d002009280200418081828478716841037621050b02402005200820127122066b201420066b7320087141034b0d00200920146a200ba741197622053a000020082014417c6a7120096a41046a20053a00000c020b200920056a22062d000021072006200ba741197622023a00002005417c6a20087120096a41046a20023a00000240200741ff01470d00200e280200220620146a41ff013a0000200620012802002014417c6a716a41046a41ff013a0000200e280200410020056b41d0006c6a41b07f6a200d41d00010e9081a0c020b200e280200410020056b41d0006c6a220741b07f6a2205290200210b2005200d290200370200200541186a220629020021132006200d41186a2208290200370200200541106a220629020021152006200d41106a2209290200370200200541086a220529020021162005200d41086a2206290200370200200d200b370200200620163702002009201537020020082013370200200741506a220541186a2208290200210b2008200f41506a220641186a2209290200370200200541106a220829020021132008200641106a2202290200370200200541086a220829020021152008200641086a220d2902003702002005290200211620052006290200370200200620163702002009200b37020020022013370200200d2015370200200741706a220541086a2207290000210b2007200f41706a220641086a22082900003700002005290000211320052006290000370000200620133700002008200b370000200e28020021050c000b0b201441016a21062014200a470d000b20012802002205200541016a41037641076c20054108491b21050b2000410036020020012005200128020c6b3602080b200341e0006a24000b130020004123360204200041b4adcb003602000b8c0301047f230041d0006b22022400200241186a200141186a290000370300200241106a200141106a290000370300200241086a200141086a29000037030020022001290000370300200241206a41de80ca004109108102200241306a41a8fcca004109108102024002404120102c2201450d002002422037024420022001360240200241c0006a20024120107420022802482201417f4c0d01200228024021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280244450d002003102e0b200141206a2203417f4c0d012003102c2205450d00200241003602482002200336024420022005360240200241c0006a200241206a41101074200241c0006a200241306a41101074200241c0006a20042001107402402001450d002004102e0b200220022802402203200228024810b705024020022802042201450d0020002002290308370208200020022802003602000b2000200136020402402002280244450d002003102e0b200241d0006a24000f0b1036000b1038000bb40201037f230041e0006b22022400200241086a41de80ca004109108102200241186a4184faca004108108102024002404120102c2203450d002002422037023c20022003360238200241386a2001412010742002200228023822012002280240220310a301370348200241dc006a200120036a360200200220013602582002200241c8006a41086a3602542002200241c8006a360250200241286a200241d0006a107c0240200228023c450d002001102e0b2002280230220341206a2201417f4c0d010240024020010d00410121040c010b2001102c2204450d010b2000410036020820002001360204200020043602002000200241086a411010742000200241186a41101074200020022802282201200310740240200228022c450d002001102e0b200241e0006a24000f0b1036000b1038000bf50101047f230041306b22022400200241de80ca004109108102200241106a41f4fcca00410d108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000bf50101047f230041306b22022400200241de80ca004109108102200241106a41a8fcca004109108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000b950f0a067f027e017f017e027f067e017f027e127f067e230041a0026b220524002005200010b808200541306a200528020022062005280208220710b105200541b0016a41026a220020052d00333a000041082108200541e8016a41086a220920054190016a290300370300200541e8016a41106a220a20054198016a290300370300200520052f00313b01b001200520054188016a2903003703e80120054180016a290300210b200541f8006a290300210c024002400240024020052d0030220d4102470d004200210e4100210f410021104200211142002112420021134200211442002115420021164100210d0c010b200541f0006a2903002116200541e8006a2903002115200541d8006a2903002113200541d0006a2903002112200541c8006a2903002111200541306a41106a290300210e200541e0006a29030021142005413c6a2802002110200541306a41086a280200210f200528023421172005412c6a41026a20002d00003a0000200541106a41086a2009290300370300200541106a41106a200a290300370300200520052f01b0013b012c200520052903e80137031041012100200d4101460d01201721080b4200201320047d2012200354ad7d2218201220037d2219201256201820135620182013511b22001b21134200201920001b21124200201120027d200e200154ad7d2218200e20017d2219200e56201820115620182011511b22001b21114200201920001b210e0240201041306c2200450d00200820006a211a200541e8006a2117200541306a410172221b41036a211c200821000340200041306a21090240200041086a2d00004101710d00200041096a2d0000211d200541a0016a2000280200108905200541306a20052802a001220a20052802a801221e108a05200541e8016a41086a221f201741086a2220290000370300200541e8016a41106a2221201741106a2222290000370300200541e8016a41186a2223201741186a2224290000370300200541e8016a41206a2225201741206a2226290000370300200541e8016a41286a2227201741286a22282900003703002005201b280000360298022005201c28000036009b02200520172900003703e801200541306a41306a2129200541306a41206a212a200541306a41106a212b0240024020052d003022004102470d00410221000c010b20292903002119202a290300212c202b290300212d200529035821182005290348212e2005290338212f200541b0016a41086a201f290300370300200541b0016a41106a2021290300370300200541b0016a41186a2023290300370300200541b0016a41206a2025290300370300200541b0016a41286a20272903003703002005200528009b023600e30120052005280298023602e001200520052903e8013703b00120000d004200201920047d2018200354ad7d2230201820037d2231201856203020195620302019511b22001b21194200203120001b211802400240201d4101710d004200202c20027d202e200154ad7d2230202e20017d2231202e562030202c562030202c511b22001b212c4200203120001b212e0c010b4200202d20027d202f200154ad7d2230202f20017d2231202f562030202d562030202d511b22001b212d4200203120001b212f0b410021000b201b20052802e001360000201720052903b00137030020292019370300202a202c370300202b202d370300201c20052800e3013600002020200541b0016a41086a2903003703002022200541b0016a41106a2903003703002024200541b0016a41186a2903003703002026200541b0016a41206a2903003703002028200541b0016a41286a290300370300200520183703582005202e3703482005202f370338200520003a00300240024020004102470d00200a201e10ff010c010b200541003602f001200542013703e801200541306a200541e8016a10bc05200a201e20052802e801220020052802f00110b20120052802ec01450d002000102e0b20052802a401450d00200a102e0b20092100201a2009470d000b0b20082117200d2100201021090c010b4200200b20047d200c200354ad7d2218200c20037d2219200c562018200b562018200b511b22091b210b4200201920091b210c4200201620027d2015200154ad7d2218201520017d2219201556201820165620182016511b22091b21164200201920091b2115410121090b20054180016a200b370300200541f8006a200c370300200541f0006a2016370300200541e8006a2015370300200541d8006a2013370300200541d0006a2012370300200541c8006a2011370300200541306a41106a200e370300200541e0006a20143703002005413c6a2010360200200541306a41086a200f36020020054188016a200529031037030020054190016a200541106a41086a29030037030020054198016a200541106a41106a290300370300200520052f012c3b00312005201736023420052005412c6a41026a2d00003a0033200520003a00300240024020004102470d002006200710ff010c010b200541e8016a200541306a10c2042006200720052802e801220a20052802f00110b201024020052802ec01450d00200a102e0b20000d00200f450d00200f41306c450d002017102e0b02402005280204450d002006102e0b200541a0026a240020090bad0802057f027e23004180026b2203240020034180016a20022802002204200241086a280200220510b001200341206a41186a20034180016a41186a290000370300200341206a41106a20034180016a41106a290000370300200341206a41086a20034180016a41086a290000370300200320032900800137032020034180016a200341206a1098082003280280012206200328028801108f0221070240200328028401450d002006102e0b0240024002402007450d002000410c1093080c010b200341106a2005ad42004280c2d72f420010e80820034180016a200120032903102208200341106a41086a290300220910c3022003200329008101370360200320034180016a41086a2207280000360067024020032d00800122064106470d0020034180016a41186a2206420037030020034180016a41106a2205420037030020074200370300200342003703800120034180016a41d9fcc6004106108102200341e0006a4180f4cb0041061081022006200341e0006a41086a220729000037030020052003290060370300200341086a20034180016a4120108e02200328020c210620032802082105200341cc006a200241086a28000036000020032002290000370044200341c8016a2009370300200341c0016a2008370300200341a1016a2003290041370000200341a8016a200341c8006a290000370000200341b4016a4100360200200341b0016a2006410020051b36020020034189016a200141086a29000037000020034191016a200141106a29000037000020034199016a200141186a290000370000200341013a0080012003200129000037008101200341e0006a41186a200341206a41186a290300370300200341e0006a41106a200341206a41106a2903003703002007200341206a41086a29030037030020032003290320370360200341d0006a200341e0006a10be082003280250210220032802582107200341003602682003420137036020034180016a200341e0006a10ac082002200720032802602206200328026810b20102402003280264450d002006102e0b02402003280254450d002002102e0b0240200341a8016a280200450d00200341a4016a280200102e0b200341d8016a2009370300200341d0016a200837030020034180016a41086a410b3a000020034191016a200341206a41086a29030037000020034199016a200341206a41106a290300370000200341a1016a200341206a41186a290300370000200341a9016a2001290000370000200341b1016a200141086a290000370000200341b9016a200141106a290000370000200341c1016a200141186a290000370000200341093a00800120034180016a41096a200329032037000020034180016a10fe01200041063a00000c020b200020063a000020002003290360370001200041086a20032800673600000b200241046a280200450d002004102e0b20034180026a24000bab0a07037f017e017f017e017f027e037f230041f0016b22032400200341f0006a20022802002204200228020810b001200341106a41186a200341f0006a41186a22052900002206370300200341106a41106a200341f0006a41106a22072900002208370300200341106a41086a200341f0006a41086a2209290000220a37030020032003290070220b370310200341003a004020052006370300200720083703002009200a3703002003200b370370200341d0006a200341f0006a10be08200341086a200328025022052003280258200341c0006a4101410010ca0402400240024020032802080d00200341f0006a410d10930820032802540d010c020b0240024002400240200328020c450d0020032d00400e020102000b4190c1cb00412910ef02200341f0006a410d1093080c020b200341063a00700c010b200341f0006a410c1093080b2003280254450d010b2005102e0b200320032900713703302003200341f0006a41086a2800003600370240024002400240024020032d007022054106470d00200341d0006a200341106a109808200341f0006a20032802502207200328025810ad052003280254210520032d007022094102460d0120034198016a280200210c20034194016a280200210d2003280274210e02402005450d002007102e0b20090d02200341f0006a41186a22054200370300200341f0006a41106a22074200370300200341f0006a41086a420037030020034200370370200341f0006a41d9fcc6004106108102200341d0006a4180f4cb0041061081022005200341d0006a41086a2209290000370300200720032900503703002003200341f0006a4120108e0220032802042105200328020021072003413b6a200241086a28000036000020032002290000370033200341b8016a4200370300200341b0016a420037030020034191016a200329003037000020034198016a200341376a290000370000200341a8016a200e360200200341a4016a4101360200200341a0016a2005410020071b360200200341f9006a200141086a29000037000020034181016a200141106a29000037000020034189016a200141186a290000370000200341013a007020032001290000370071200341d0006a41186a200341106a41186a290300370300200341d0006a41106a200341106a41106a2903003703002009200341106a41086a29030037030020032003290310370350200341c0006a200341d0006a10be0820032802402102200328024821052003410036025820034201370350200341f0006a200341d0006a10ac082002200520032802502207200328025810b20102402003280254450d002007102e0b02402003280244450d002002102e0b024020034198016a280200450d0020034194016a280200102e0b200341c8016a4200370300200341c0016a4200370300200341f0006a41086a410b3a000020034181016a200341106a41086a29030037000020034189016a200341106a41106a29030037000020034191016a200341106a41186a29030037000020034199016a2001290000370000200341a1016a200141086a290000370000200341a9016a200141106a290000370000200341b1016a200141186a290000370000200341093a0070200341f0006a41096a2003290310370000200341f0006a10fe01200041063a00000c040b200020053a000020002003290330370001200041086a20032800373600000c020b02402005450d002007102e0b2000410d1093080c010b0240200c450d00200d102e0b2000410c1093080b200241046a280200450d002004102e0b200341f0016a24000bf50101047f230041306b22022400200241de80ca004109108102200241106a41f780ca004109108102024002404120102c2203450d002002422037022420022003360220200241206a20014120107420022802282201417f4c0d01200228022021030240024020010d00410121040c010b2001102c2204450d010b20042003200110e908210402402002280224450d002003102e0b200141206a2203417f4c0d012003102c2205450d0020004100360208200020033602042000200536020020002002411010742000200241106a41101074200020042001107402402001450d002004102e0b200241306a24000f0b1036000b1038000b8e1d08077f067e0a7f017e017f057e017f067e23004190046b22042400200441a0026a2002108905200441d0026a20042802a002220520042802a802108a05200441d0036a41086a220620044190036a290300370300200441d0036a41106a220720044198036a290300370300200441d0036a41186a2208200441a0036a290300370300200441d0036a41206a2209200441a8036a290300370300200441d0036a41286a220a200441b0036a290300370300200420044188036a2903003703d00320044180036a290300210b200441d0026a41286a290300210c200441d0026a41206a290300210d200441d0026a41186a290300210e200441d0026a41106a290300210f200441d0026a41086a290300211020042802d402211120042d00d1022112024020042d00d00222134102460d00200441e0006a41286a200a290300370300200441e0006a41206a2009290300370300200441e0006a41186a2008290300370300200441e0006a41106a2007290300370300200441e0006a41086a2006290300370300200420042903d0033703600b024020042802a402450d002005102e0b200441a0016a41286a2205200441e0006a41286a290300370300200441a0016a41206a2206200441e0006a41206a290300370300200441a0016a41186a2207200441e0006a41186a290300370300200441a0016a41106a2214200441e0006a41106a290300370300200441a0016a41086a2215200441e0006a41086a290300370300200420042903603703a001200441d0016a200110b808200441d0026a20042802d001221620042802d80110b105200441a0026a41026a220120042d00d3023a0000200441d0036a41086a2004419c036a290200370300200441d0036a41106a2217200441a4036a290200370300200441d0036a41186a2218200441ac036a290200370300200441d0036a41206a2219200441b4036a290200370300200441d0036a41286a221a200441bc036a280200360200200420042f00d1023b01a002200420044194036a2902003703d0030240024020042d00d00222094102470d004200211b4100210a4100211c4200211d4200211e4200211f42002120420021214100212241082108410021090c010b20044188036a290300212120044180036a2903002120200441d0026a41286a290300211f200441d0026a41206a290300211e200441d0026a41186a290300211d200441d0026a41106a290300211b20044190036a2802002122200441dc026a280200211c200441d0026a41086a280200210a20042802d40221082004418c026a41026a20012d00003a0000200441e0016a41086a200441d0036a41086a290300370300200441e0016a41106a2017290300370300200441e0016a41186a2018290300370300200441e0016a41206a2019290300370300200441e0016a41286a201a280200360200200420042f01a0023b018c02200420042903d0033703e0010b200441a0026a41286a2005290300370300200441a0026a41206a2006290300370300200441a0026a41186a2007290300370300200441a0026a41106a2014290300370300200441a0026a41086a2015290300370300200420042903a0013703a0020240024002400240024020090d004100210102400240024002400240024002400240024002400240201c0e020201000b41002101201c2105034020012005410176220620016a22072008200741306c6a28020020024b1b2101200520066b220541014b0d000b0b2008200141306c6a2802002002470d002013410371417f6a0e020208010b20044190026a41161093080c0a0b200441d0036a41286a200441a0026a41286a290300370300200441d0036a41206a200441a0026a41206a290300370300200441d0036a41186a200441a0026a41186a290300370300200441d0036a41106a200441a0026a41106a290300370300200441d0036a41086a200441a0026a41086a290300370300200420042903a0023703d00302402003450d0020044190026a41171093080c0a0b201c20014d0d012008200141306c6a220541186a2903002123200541106a29030021240240024020052d000822064101470d00200541286a2903002125200541206a2903002126200441186a20242023420a420010e708200441086a20262025420a420010e708200c20247d2227200c56200b20237d200c202454ad7d2224200b562024200b511b0d01202720267d2228202756202420257d2027202654ad7d220c202456200c2024511b0d0120102004290318220b7d2224201056200f200441186a41086a2903007d2010200b54ad7d220b200f56200b200f511b0d01200e2004290308220f7d2223200e56200d200441086a41086a2903007d200e200f54ad7d220e200d56200e200d511b450d070c010b200541096a2d00002107024002402005410a6a2d0000221441ff0171450d0041062105024002400240024002400240024020144107710e0700010203040506000b410021050c050b410121050c040b410221050c030b410321050c020b410421050c010b410521050b200441386a202342002005ad2226420010e808200441c8006a202442002026420010e808427f200441d0006a290300222620042903387c2225200429034042005220252026547222051b2125427f200429034820051b21260c010b200441286a20242023420a420010e708200441306a2903002125200429032821260b200c20247d2228200c56200b20237d200c202454ad7d220c200b56200c200b511b0d000240200741ff01710d00200e20267d2223200e56200d20257d200e202654ad7d220e200d56200e200d511b0d0120060d06200741ff01714102460d064200200e201d7d2023201b54ad7d220b2023201b7d220d202356200b200e56200b200e511b22051b210e4200200d20051b21234200200c201f7d2028201e54ad7d220b2028201e7d220d202856200b200c56200b200c511b22051b210c4200200d20051b21280c060b201020267d2224201056200f20257d2010202654ad7d220b200f56200b200f511b450d040b20044190026a411a1093080c090b201c20014d0d012008200141306c6a22052d00080d05200541096a2d000045201241ff0171410047460d05200541186a290300210b200541106a290300210c4180c09306210602400240024002400240024002402005410a6a2d00004107710e0700010203040506000b410021060c050b4180ce1821060c040b41809c3121060c030b4180b8e20021060c020b4180f0c40121060c010b4180e0890321060b200441e8026a22054200370300200441e0026a22074200370300200441d0026a41086a4200370300200442003703d002200441d0026a41d9fcc6004106108102200441d0036a4180f4cb0041061081022005200441d0036a41086a290000370300200720042900d003370300200441d8006a200441d0026a4120108e02200428025c410020042802581b200620116a22054f0d0502402003450d0020044190026a41171093080c090b2021200b2020200c562021200b562021200b511b22061b21212020200c20061b212020222005202220054b1b21220c050b2001201c41bcc1cb00103c000b2001201c41ccc1cb00103c000b024020060d00200741ff01714102460d004200200b201d7d2024201b54ad7d220f2024201b7d2210202456200f200b56200f200b511b22051b210b4200201020051b21244200200c201f7d2028201e54ad7d220f2028201e7d2210202856200f200c56200f200c511b22051b210c4200201020051b21280b200e2123200d210e0c010b20102124200f210b0b20044180036a200c370300200441d0026a41286a2028370300200441d0026a41206a200e370300200441d0026a41186a2023370300200441d0026a41106a200b37030020044188036a20042903d00337030020044190036a200441d8036a29030037030020044198036a200441d0036a41106a290300370300200441a0036a200441d0036a41186a290300370300200441a8036a200441d0036a41206a290300370300200441b0036a200441d0036a41286a290300370300200420243703d802200441003a00d002200441c0036a200210890520042802c803210620042802c003210520044100360288042004420137038004200441d0026a20044180046a10bc0520052006200428028004220720042802880410b2010240200428028404450d002007102e0b20042802c403450d002005102e0b201c20014d0d012008200141306c6a2205200541306a201c2001417f736a41306c10ea081a201c417f6a211c0b200441063a0090020c020b2001201c1046000b20042d00900222014106460d0020042004290091023703d003200420044198026a2800003600d70320090d01200a450d01200a41306c450d012008102e0c010b20044188036a202137030020044180036a2020370300200441d0026a41286a201f370300200441d0026a41206a201e370300200441d0026a41186a201d370300200441d0026a41106a201b37030020044190036a2022360200200441dc026a201c360200200441d0026a41086a200a36020020044194036a20042903e0013702002004419c036a200441e0016a41086a290300370200200441a4036a200441e0016a41106a290300370200200441ac036a200441e0016a41186a290300370200200441b4036a200441e0016a41206a290300370200200441bc036a200441e0016a41286a280200360200200420042f018c023b00d102200420083602d40220042004418c026a41026a2d00003a00d302200420093a00d00220042802d801210120042802d00121160240024020094102470d002016200110ff010c010b200441d0036a200441d0026a10c2042016200120042802d003220520042802d80310b20120042802d403450d002005102e0b024020090d00200a450d00200a41306c450d002008102e0b20042004290091023703d003200420044198026a2800003600d703410621010b024020042802d401450d002016102e0b200420042903d00337039001200420042800d7033600970141062105024020014106460d002000200429039001370001200041086a200428009701360000200121050b200020053a000020044190046a24000bf30201037f024002400240024002400240024020002d0000417f6a0e0c000606060106020304060605060b200041046a2802004102490d05200041106a2802002201450d05200041146a280200450d052001102e0f0b200041086a280200450d04200041046a280200102e0c040b200041046a2802000d032000410c6a2802002201450d03200141286c450d03200041086a280200102e0f0b200041046a2d00004102490d020240200041106a2802002201450d00200141d0006c2102200041086a28020041c4006a21010340024020012802002203450d00200341306c450d002001417c6a280200102e0b200141d0006a2101200241b07f6a22020d000b0b2000410c6a2802002201450d02200141d0006c450d022000280208102e0f0b200041086a2d00004101470d01200041146a28020041ffffff3f71450d01200041106a280200102e0f0b200041086a2d00000d00200041106a2802002201450d00200141306c450d002000410c6a280200102e0f0b0b130020004100360204200041d4e2cc003602000b13002000410a360204200041b4cccb003602000b3400200041d9fcc60036020420004100360200200041146a4110360200200041106a41dce6cb00360200200041086a42063702000b130020004106360204200041b883cc003602000b920101017f230041c0006b22022400200241386a41002903e8f846370300200241306a41002903e0f846370300200241286a41002903d8f846370300200241206a41002903d0f846370300200241186a41002903c8f846370300200241106a41002903c0f846370300200241086a41002903b8f846370300200241002903b0f84637030020002002108707200241c0006a24000b4c01017f230041106b220224002000410036020820004201370200200242c0f0f50b3703082000200241086a4108107420024280c2d72f3703082000200241086a41081074200241106a24000b4301027f230041106b2202240002404104102c22030d001036000b2000420437020420002003360200200241e01236020c20002002410c6a41041074200241106a24000b6101017f230041106b2202240020004100360208200042013702002002418080f0013602082000200241086a410410742002418080c00236020c20002002410c6a410410742002418080c0023602042000200241046a41041074200241106a24000b7701017f230041c0016b22022400200210a9032000410036020820004201370200200220022903003703b8012000200241b8016a41081074200220022903083703b8012000200241b8016a41081074200241106a200010a207200241c8006a200010a20720024180016a200010a207200241c0016a24000b8726040c7f0a7e037f0e7e230041f0036b22052400200541d0016a200010e505200541f0026a20052802d001220620052802d80110f402200541206a41086a2207200541f9026a290000370300200541206a41106a220820054181036a290000370300200541206a41186a220920054189036a290000370300200520052900f1023703204100210a024020052d00f0024101470d0020054190026a41186a200929030037030020054190026a41106a200829030037030020054190026a41086a200729030037030020052005290320370390024101210a0b024020052802d401450d002006102e0b0240200a450d00200541186a20054190026a41186a2206290300370300200541106a20054190026a41106a2207290300370300200541086a20054190026a41086a22082903003703002005200529039002370300200541c0016a200510d305200541f0026a20052802c001220920052802c80110e60520054198016a41086a220b200541f0026a41086a29030037030020054198016a41106a220c200541f0026a41106a29030037030020054198016a41186a220d200541f0026a41186a29030037030020082005419c036a2902003703002007200541a4036a2902003703002006200541ac036a29020037030020054190026a41206a220e200541b4036a29020037030020054190026a41286a220f200541bc036a29020037030020054190026a41306a2210200541c4036a280200360200200520052903f002370398012005200529029403370390020240200528029003220a450d00200541f8006a41186a200d290300370300200541f8006a41106a200c290300370300200541f8006a41086a200b290300370300200541d0016a41086a2008290300370300200541d0016a41106a2007290300370300200541d0016a41186a2006290300370300200541d0016a41206a200e290300370300200541d0016a41286a200f290300370300200541d0016a41306a2010280200360200200520052903980137037820052005290390023703d0010b024020052802c401450d002009102e0b200a450d00200541c4006a20052903d001370200200541206a41186a2206200541f8006a41186a290300370300200541206a41106a2207200541f8006a41106a290300370300200541206a41086a2208200541f8006a41086a290300370300200541cc006a200541d0016a41086a290300370200200541d4006a200541d0016a41106a290300370200200541dc006a200541d0016a41186a290300370200200541e4006a200541f0016a290300370200200541ec006a200541d0016a41286a290300370200200541f4006a20054180026a280200360200200520052903783703202005200a360240200542003703f80220054280c8afa0253703f00220082903002111200529032021120240024020072903002213200120132001542006290300221420025420142002511b22071b22152014200220071b22168450450d0020122117201121180c010b2006201420167d2013201554ad7d22193703002005201320157d22173703300240024020174280c8afa0255620194200522019501b450d0020152113201621140c010b200541386a420037030020054200370330201920027c201720017c2201201754ad7c21020b20054200201120147d2012201354ad7d2215201220137d2219201256201520115620152011511b22061b221837032820054200201920061b2217370320200220147d2001201354ad7d2102200120137d21010b02400240024002400240024002400240200541206a41286a280200220641186c0d00410021062005280248210a0c010b200641186c2108200641037441786a41037641016a210b41002106024003400240200a2903002213200120012013562002200a41086a220929030022145620022014511b22071b22152014200220071b221684500d00200a201320157d2217370300200a201420167d2013201554ad7d221937030802400240201720052903f002562019200541f0026a41086a29030022185620192018511b450d002001211920152113201621140c010b200a4200370308200a4200370300200220197c200120177c2219200154ad7c21020b200541206a41086a220742002007290300220120147d20052903202215201354ad7d2216201520137d2217201556201620015620162001511b22071b221837030020054200201720071b2217370320200220147d2019201354ad7d2102201920137d210120092903002114200a29030021130b20132014844200520d01200a41186a210a200641016a2106200841686a22080d000b200b21060b2005280248220a2006490d010b200541003602480240200a20066b220a450d0002402006450d00200528024022072007200641186c6a200a41186c10ea081a200541286a2903002118200529032021170b2005200a3602480b2012201758201120185820112018511b0d05201220177d2214201256201120187d2012201754ad7d221320115620132011511b210a20054190026a200010c802200541f0026a200528029002220620052802980210c90220054190036a290300210120054188036a290300211520054180036a290300211620052903f802211220052903f00221020240200528029402450d002006102e0b42002013200a1b211142002014200a1b21184200211320024201520d0342002119201821172011211a2012201584201620018484500d04200541f0026a41c8006a2108200541f0026a41086a211b20054190026a41306a211020054190026a41206a211c41002106200541f0026a41386a210f200541f0026a41106a210d200541d0016a41286a210c200541d0016a41186a211d02400340200520003602bc0120054190026a200010c802200541f0026a200528029002220a20052802980210c902200f2903002119200541f0026a41306a22072903002102200541f0026a41206a220e2903002116200d29030021132005290398032101200529038803211720052903f802211420052903b003211220052903f0022115200541c0016a41086a200841086a290300370300200520082903003703c0010240024020154201510d0042002112200541d0016a41386a4200370300200541d0016a41306a4200370300200c4200370300200541d0016a41206a4200370300201d4200370300200541d0016a41106a4200370300200541d0016a41086a4200370300200542003703d001420021014200210242002114420021130c010b200c2002370300200541d0016a41306a2019370300200520013703f001200520143703d0012005201237038802200520173703e001200520133703d801200520163703e8010b0240200528029402450d00200a102e0b0240024020142013844200520d00200120052903e00184200529038002842002201d29030084200541d0016a41386a290300848450450d00420021014100210a0c010b200541d0016a41106a2903002114200541d0016a41306a290300211e200c290300211f200541d0016a41206a290300212020052903d801211320052903d00121154201210120052903e80121024101210a0b024020014201522209450d004200211442002112420021204200211f4200211e4200210242002115420021130b201821162011211702402006450d004200200220137c201420157c2201201454ad7c221920014280c8afa02554ad7d221620014280b8d0df5a7c22172001562016201956200142ffc7afa025561b220b1b22012011201842002017200b1b221956201120015620112001511b220b1b211720192018200b1b21160b2013201720132015201656201320175620132017511b220b1b22197d201520162015200b1b221354ad7d2101201520137d211502400240201620137d221a201720197d2016201354ad7d221684500d00201120197d2018201354ad7d201620022014201a56200220165620022016511b220b1b22177d201820137d2221201a2014200b1b221654ad7d211a200220177d2014201654ad7d2102201720197c201620137c2213201654ad7c2119202120167d2117201420167d21140c010b201120197d2018201354ad7d211a201820137d21170b200541f0026a41286a220b201f370300200541f0026a41186a20023703002007201e37030020052020370390032005201437038003200520153703f002200520013703f8022009ad212002400240427f201520147c221620162015542209200120027c2009ad7c221620015420162001511b22091b221f42ffc7afa02556427f201620091b22164200522016501b0d0020222016201520148420012002848422025022071b21222023201f20071b2123420021142002420052ad21020c010b20072903002124200b2903002125200e2903002126200d2903002127200529038803212820052903f802212920052903f002212a4201211442002102410121072012212b0b20054190026a41c8006a201a37030020054190026a41386a201937030020054190026a41286a202237030020054190026a41106a2001370300200520173703d002200520133703c002200520233703b0022005201537039802200520023703a80220052020370390020240200a2014420152720d00200520003602f0022000200541f0026a10bd060c040b200a410173220a2014420151720d01200520003602f00202402000200541f0026a10be0641ff0171220a4102460d00200a0d04200541d8026a290300211a200541c8026a2903002119200541b8026a2903002122200541a0026a290300210120052903d002211720052903c002211320052903b0022123200529039802211520052903a802210220052903900221200c050b024020070d002005201c3602f002200541f0026a10cc020b200520103602f002200541f0026a10cc02200641016a22064102470d000b420021130c040b2014420152200a71450d010c020b2006200a41b4b3c000104d000b200541e0026a200010c802200541f0026a20052802e002220a20052802e802220610c90220052903f0022113200541c0016a41086a2207200841086a290300370300200520082903003703c0010240024020134201510d00200541f8006a41086a4200370300200542003703780c010b200541f8006a41086a2007290300370300200520052903c0013703780b024020144201510d004200212a420021294200212642002125420021244200212b42002127420021280b20082005290378370300200541a0036a202537030020054190036a2028370300200541f0026a41106a2029370300200541f0026a41386a2024370300200841086a200541f8006a41086a290300370300200520263703980320052027370388032005202a3703f8022005202b3703b003200542013703f002200a2006201b10c805024020052802e402450d00200a102e0b20054190026a41106a2903002101200541b8026a290300212220054190026a41386a2903002119200541d8026a290300211a200529039802211520052903b002212320052903c002211320052903d0022117200529039002212020052903a80221020b024020204201520d00200541a8036a2001370300200541a0036a2015370300200541f0026a41086a41003a0000200541f9026a200029000037000020054181036a200041086a29000037000020054189036a200041106a29000037000020054191036a200041186a290000370000200541033a00f002200541f0026a10fe010b02400240200250450d00420021140c010b200541f0026a41086a20052802bc01220a41086a290000370300200541f0026a41106a200a41106a290000370300200541f0026a41186a200a41186a2900003703002005200a2900003703f002420121140b20054198016a41186a200541f0026a41186a220a290300220237030020054198016a41106a200541f0026a41106a2206290300220137030020054198016a41086a200541f0026a41086a2903002215370300200520052903f002221637039801200541a0036a202237030020054198036a2207202337030020062015370300200a200137030020054190036a2002370300200520143703f002200520163703f802200541f0026a10d20420052903f002500d01200520073602900220054190026a10cc020c010b42002119201821172011211a0b2004427f2004290300221420137c22132013201454220a200441086a2206290300221320197c200aad7c221420135420142013511b220a1b3703002006427f2014200a1b37030002402017201a84500d00200342002003290300221320177d22142014201356200341086a220a2903002214201a7d2013201754ad7d221320145620132014511b22061b370300200a4200201320061b3703000b42f3e885db96cddbb320200541206a41386a2005290320200541206a41086a290300411f1085062005200541206a10d205200541f0026a41386a2011370300200541a0036a2018370300200541f0026a41086a41023a0000200541f9026a200029000037000020054181036a200041086a29000037000020054189036a200041106a29000037000020054191036a200041186a290000370000200541043a00f002200541f0026a10fe010b02402005280244220a450d00200a41186c450d002005280240102e0b200541d0006a28020041ffffffff0371450d00200528024c102e0b200541f0036a24000b130020004103360204200041d490cc003602000b0600200010150ba40301097f230041206b220224000240024020012802082203410c6c41046a2204417f4c0d00200128020021050240024020040d00410121060c010b2004102c2206450d020b20024100360208200220043602042002200636020020032002107602402003450d0020052003410c6c6a210720052104034020042802002106200441086a28020022082002107620022006200810742004410c6a22042007470d000b0b20022802042106200241186a2208200235020842208620022802002209ad84100c220441186a290000370300200241106a2207200441106a290000370300200241086a220a200441086a290000370300200220042900003703002004102e200041186a2008290300370000200041106a2007290300370000200041086a200a2903003700002000200229030037000002402006450d002009102e0b02402003450d002003410c6c21062005210403400240200441046a280200450d002004280200102e0b2004410c6a2104200641746a22060d000b0b0240200141046a2802002204450d002004410c6c450d002005102e0b200241206a24000f0b1038000b1036000b3b02017e017f0240024010292201422088a722020d0020004101360200410021020c010b20002001a73602000b20002002360208200020023602040b130020002002ad4220862001ad84102010da080b130020004107360204200041f4aacc003602000b3400200041b4c3cb0036020420004100360200200041146a4102360200200041106a41fcb6cc00360200200041086a42133702000b3400200041f4c2cc0036020420004100360200200041146a4101360200200041106a418cc3cc00360200200041086a42183702000bcf0403017f017e037f230041b0016b22032400024002402001200210062204422088a72201450d002001417f6a21050240024002402004a722062d00000e020001030b41002101200341003a0069200641016a21070240034020052001460d01200341c8006a20016a200720016a2d00003a00002003200141016a22023a00692002210120024121460d030c000b0b200141ff0171450d02200341003a00690c020b2005450d014100210202400240024020062d00010e03020100040b410221020c010b410121020b200341086a41186a200341c8006a41186a290000370300200341086a41106a200341c8006a41106a290000370300200341086a41086a200341c8006a41086a2900003703002003200329004837030841012105200341086a21010c020b200341f0006a41086a2201200341d1006a290000370300200341f0006a41106a2205200341d9006a290000370300200341f0006a41186a2207200341e1006a29000037030020032003290049370370200241ff017141204d0d0020032d00482102200341286a41186a20072903002204370300200341086a41086a2001290300370300200341086a41106a2005290300370300200341086a41186a20043703002003200329037037030841002105200341086a21010c010b41cae0cc00412e200341c8006a41f8e0cc004188e1cc00103e000b200020023a0001200020053a0000200041026a20012900003700002000410a6a200141086a290000370000200041126a200141106a2900003700002000411a6a200141186a2900003700002006102e200341b0016a24000b130020004105360204200041e4c6cc003602000bba0203027f027e037f230041206b22022400200241106a41086a2203200141086a28020036020020022001290200370310200241106a10bb070240024020032802002201410574418101490d00200041bdd8cc0036020420004101360200200041086a411d3602000c010b0240024020010d0042002104420021050c010b2002280210220341786a21062003200141027422016a417c6a280200210741002103200241086a21084200210442002105034020022007ad4200200341e0007110ed08200829030020057c2002290300220520047c2204200554ad7c210520014104460d01200341206a2103200620016a28020021072001417c6a21010c000b0b20004100360200200041106a2005370300200041086a20043703000b0240200228021441ffffffff0371450d002002280210102e0b200241206a24000bd003030a7f017e027f02400240024002400240200141086a2802002203200241086a2802002204200320044b1b220541016a22064101200641014b1b220741ffffffff03712007470d0020074102742206417f4c0d000240024020060d00410421080c010b200610322208450d020b20002008360200200041086a200736020020002006410276360204024020050d00410021000c050b2007417f6a21062004417f6a220920044b210a200741027420086a417c6a210b2002280200210c410021024200210d03404100210002402003417f6a220e20034b0d00410021002003200e20026b220f4d0d0041002100200f200e4b0d002001280200200f4102746a28020021000b4100210e0240200a0d002004200920026b220f4d0d00200f20094b0d00200c200f4102746a280200210e0b200720064d0d03200b200d2000ad7c200ead7c220d3e0200200b417c6a210b2006417f6a2106200d422088210d2005200241016a2202460d040c000b0b1038000b1036000b2006200741ecd8cc00103c000b200da721000b024020072005417f736a220620074f0d00200820064102746a20003602000240200141046a28020041ffffffff0371450d002001280200102e0b0f0b2006200741ecd8cc00103c000be30303047f017e057f230041106b22012400024002400240024002400240024020002802002202280200220341016a41004c0d002002200336020020002802042203280200220441016a41004c0d0120022903082105200320043602002000280208220441086a2802002206200028020c220728020022086b41016a220920064f0d024101200028021428020020086a6b22062000280210220841086a28020022006a220a20064f0d0302400240200542ffffffff0f560d00410021002005200428020020094102746a3502007e20032903084220862008280200200a4102746a35020084580d010b20022802000d052002410036020020022002290308427f7c370308200441086a2802002200200020072802006b22024d0d0620032802000d07200428020020024102746a3502002105200341003602002003200520032903087c370308410121000b200141106a240020000f0b41bcd9cc004118200141086a41d4d9cc0041f4d9cc00103e000b41bcd9cc004118200141086a41d4d9cc004184dacc00103e000b2009200641ccd7cc00103c000b200a200041ccd7cc00103c000b4194dacc004110200141086a41a4dacc0041b4dacc00103e000b2002200041ccd7cc00103c000b4194dacc004110200141086a41a4dacc0041c4dacc00103e000b1c002001280218419eeacc00410f2001411c6a28020028020c1100000b5601017f4104210502400240024002400240200041ff0171417f6a0e050001020304000b410021050c030b410121050c020b410221050c010b410321050b20052002ad4220862001ad842004ad4220862003ad8410010bbb0101047f230041206b22022400024002402001422088a722030d002002200336020c200241013602080c010b2002200336020c20022001a7220436020820042d0000210520022003417f6a36020c2002200441016a360208410021030240024020050e020100020b200241106a200241086a10db0820022802102203450d01200229021421010b20002001370204200020033602002004102e200241206a24000f0b41cae0cc00412e200241106a41f8e0cc004188e1cc00103e000bed0102047f017e230041106b22022400200241086a200110ab01024002400240024002402002280208450d00200041003602000c010b024020012802042203200228020c2204490d002004417f4c0d020240024020040d00410121050c010b200410322205450d04200128020421030b024020032004490d0020052001280200200410e9082103200128020422052004490d0520002004ad2206422086200684370204200020033602002001200520046b3602042001200128020020046a3602000c020b2005102e0b200041003602000b200241106a24000f0b1038000b1036000b2004200541b8b2c0001056000bec0101047f230041106b22022400024002400240200128020022030d00410121040c010b0240200141086a28020041056a2204417f4c0d0020040d0141012105410021040c020b1038000b2004102c22050d001036000b2002410036020820022004360204200220053602000240024020030d00200241003a000f20022002410f6a410110740c010b200241013a000f20022002410f6a41011074200141086a28020022042002107620022003200410740b20002002290300370204200041013602002000410c6a20022802082204360200200041106a2004ad422086200235020084370300200241106a24000bb10301047f230041c0006b22022400200028020021034101210002402001280218418c9dc000410c2001411c6a28020028020c1100000d0002400240200328020822000d0020032802002200200328020428020c11070042f4f99ee6eea3aaf9fe00520d012002200036020c2002411036021420022002410c6a36021020012802182104200128021c2105410121002002413c6a41013602002002420237022c200241989dc0003602282002200241106a36023820042005200241286a103d0d020c010b2002200036020c2002411136021420022002410c6a36021020012802182104200128021c2105410121002002413c6a41013602002002420237022c200241989dc0003602282002200241106a36023820042005200241286a103d0d010b200328020c2100200241106a41146a4101360200200241106a410c6a410136020020022000410c6a3602202002200041086a360218200241043602142002200036021020012802182100200128021c2101200241286a41146a41033602002002420337022c200241a89dc0003602282002200241106a36023820002001200241286a103d21000b200241c0006a240020000b06002000100d0b06002000100e0be50102037f017e230041206b22022400024002400240200041046a2802002203200028020822046b20014f0d00200420016a22012004490d02200341017422042001200420014b1b22014104200141044b1bad420c7e2205422088a74541027421012005a721040240024020030d00200241003602100c010b200241186a410436020020022003410c6c360214200220002802003602100b200220042001200241106a107d200241086a280200210120022802004101460d0120002002280204360200200041046a2001410c6e3602000b200241206a24000f0b2001450d001036000b1038000b1c002001280218419eeacc00410f2001411c6a28020028020c1100000b1c002001280218419eeacc00410f2001411c6a28020028020c1100000bc00201057f230041106b22022400024002400240024020002d002c4101710d0002400240200028020022034125490d002000410c6a22042802002105200041086a28020021060c010b200041056a21062003210520002104412421030b024020052003470d0020022000410110fc06024020022802004101470d00200241086a2802000d0441d0f0cc00411141e4f0cc001039000b2000410c6a22042802002105200041086a28020021060b200620056a20014104743a00002004200428020041016a3602000c010b02400240200028020022044125490d002000410c6a2802002104200041086a28020021050c010b200041056a21050b2005450d022004450d02200420056a417f6a220420042d00002001723a00000b2000200028022c41016a36022c200241106a24000f0b1036000b4198eccc00413a41d4eccc00105d000b5801017e02400240200341c00071450d0020022003413f71ad882101420021020c010b2003450d002002410020036b413f71ad8620012003413f71ad220488842101200220048821020b20002001370300200020023703080baa0604017f017e017f057e230041206b22052400024002400240024002400240024002402004500d00420021062001200354200220045420022004511b0d052002500d05200541106a20032004200479a7200279a76b220741ff007110ed0842012007413f71ad862108200541186a29030021092005290310210a4200210603402001200a7d210b0240200220097d2001200a54ad7d220c4200530d0020062008842106200b20035a200c20045a200c2004511b450d03200b2101200c21020b200a4201882009423f8684210a20084201882108200942018821090c000b0b4200210c024020024200520d0020012001200380220620037e7d21010c060b0240200220035a0d0020052003200441c000200279a7200379a76b22076b413f20071b220741ff007110ed0842012007413f71ad86210c200541086a290300210a200529030021094200210b034002402002200a7d2001200954ad7d22084200530d00200120097d2101200c200b84210b20084200510d04200821020b2009420188200a423f86842109200c420188210c200a420188210a0c000b0b20022003510d0320022002200380220820037e7d210c0240200342ffffffff0f560d00200c422086200142208884220a200a200380220a20037e7d422086200142ffffffff0f838422092009200380220920037e7d2101200a4220862009842106200a42208820088421084200210c0c070b0240200120035a200c20045a200c2004511b0d00420021060c070b2004423f86200342018884210a2003423f862109428080808080808080807f21024200210403400240200c200a7d2001200954ad7d220b4200530d00200120097d210120022004842104200b4200510d04200b210c0b2009420188200a423f8684210920024201882102200a420188210a0c000b0b42002108200b21010c050b2001200380220a200b8421062001200a20037e7d21014200210c0c030b2001200380220a20048421062001200a20037e7d21014200210c0c030b20012001200280220620027e7d21014200210c420121080c020b2002210c0b420021080b2000200137031020002006370300200041186a200c37030020002008370308200541206a24000b3c01017f230041206b220524002005200120022003200410e508200529031021012000200541186a29030037030820002001370300200541206a24000b3c01017f230041206b220524002005200120022003200410e508200529030021012000200541086a29030037030820002001370300200541206a24000b6e01077e2000200342ffffffff0f832205200142208822067e220720034220882208200142ffffffff0f8322097e7c220a422086220b200520097e7c22053703002000200a200754ad422086200a42208884200820067e7c2005200b54ad7c200420017e200320027e7c7c3703080b3601017f02402002450d00200021030340200320012d00003a0000200141016a2101200341016a21032002417f6a22020d000b0b20000b6f01017f02400240200020016b20024f0d002001417f6a21012000417f6a21030340200320026a200120026a2d00003a00002002417f6a22020d000c020b0b2002450d00200021030340200320012d00003a0000200141016a2101200341016a21032002417f6a22020d000b0b20000b2c01017f02402002450d00200021030340200320013a0000200341016a21032002417f6a22020d000b0b20000b4a01037f4100210302402002450d000240034020002d0000220420012d00002205470d01200041016a2100200141016a21012002417f6a2202450d020c000b0b200420056b21030b20030b5801017e02400240200341c00071450d0020012003413f71ad862102420021010c010b2003450d0020022003413f71ad2204862001410020036b413f71ad88842102200120048621010b20002001370300200020023703080b0bfef50c0200418080c0000be7f50c100010001c00000018020000050000006c6962726172792f616c6c6f632f7372632f7261775f7665632e7273c00010004b0000005a010000130000001200000004000000040000001300000014000000150000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f720012000000000000000100000016000000a800100018000000420200001c0000006c6962726172792f616c6c6f632f7372632f666d742e72732f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f636f72652f7372632f666d742f6d6f642e72730050011000160000006601100016000000780f100001000000340110001c000000ee0400000d0000006c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273737761705f72656d6f766520696e6465782028697320292073686f756c64206265203c206c656e2028697320a401100014000000b801100017000000780f100001000000340110001c000000150500000d000000696e73657274696f6e20696e6465782028697320292073686f756c64206265203c3d206c656e202869732000f8011000120000006601100016000000780f100001000000340110001c000000450500000d00000072656d6f76616c20696e646578202869732000002c021000200000004c0210001200000012000000000000000100000017000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393900003803100010000000480310002200000072616e676520656e6420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468205b2e2e2e5d00d00310000b000000da0d1000160000000f04100001000000b80d10000e000000c60d100004000000ca0d1000100000000f04100001000000d00310000b000000db03100026000000010410000800000009041000060000000f041000010000006279746520696e64657820206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f6620606018041000020000002e2e0000520410001b0000006500000014000000307800004004100012000000480310002200000072616e676520737461727420696e646578206c6962726172792f636f72652f7372632f666d742f6e756d2e727300010305050606030706080809110a1c0b190c140d100e0d0f0410031212130916011705180219031a071c021d011f1620032b032c022d0b2e01300331023201a702a902aa04ab08fa02fb05fd04fe03ff0900d6091000250000000a0000001c000000ad78798b8da23057588b8c901c1ddd0e0f4b4cfbfc2e2f3f5c5d5fb5e2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d112945495764658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff800d6d71dedf0e0f1f6e6f1c1d5f7d7eaeafbbbcfa16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f7475962f5f262e2fa7afb7bfc7cfd7df9a409798308f1fc0c1ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091feff536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab35280b80e003190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15053a0311070605100757070207150d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd035907150b1709140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a06213f4c042d0374083c030f033c0738082b0582ff1118082f112d032010210f808c048297190b158894052f053b07020e180980b32d740c80d61a0c0580ff0580df0cee0d03848d033709815c1480b80880cb2a38030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a511816d1078282a064c04808d0480be031b030f0d00d6091000250000001a000000360000000006010103010402080809020a050b020e041001110212051311140115021702190d1c051d0824016a036b02bc02d102d40cd509d602d702da01e005e102e802ee20f004f802f902fa02fb010c273b3e4e4f8f9e9e9f060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5feeef5a629a9b2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf79cc6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b018090813709160a088098390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a561c1417094e041e0f430e19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d1339070a362c041080c03c64530c48090a46451b4808531d398107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48abc842f8fd18247a1b98239072a040260260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2f7811f3103110408818c89046b050d03090710936080f60a73086e1746809a140c570919808781470385420f1585502b80d52d031a040281703a0501850080d7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d8080d030d03740c59070c140c0438080a062808224e81540c15030305070919070709030d072980cb250a84066c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e7273000c0a100016000000220a10000d000000736c69636520696e64657820737461727473206174202062757420656e647320617420000003000083042000910560005d13a0001217a01e0c20e01eef2c202b2a30a02b6fa6602c02a8e02c1efbe02d00fea0359effe035fd016136010aa136240d6137ab0ee1382f182139301c6146f31ea14af06a614e4f6fa14e9dbc214f65d1e14f00da215000e0e15130e16153ece2a154d0e8e15420002e55f001bf55900d100028000000520000003e00000000700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b03770f0120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c0109012801030139030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d031d021e02400201070801020b09012d03770222017603040209010603db0202013a010107010101010208060a020130113f0430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c63a01050001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990bb001360f3803310402024503240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002000101030405080802071e0494030037043208010e011605010f000701110207010201050007000400076d07006080f000000000900d1000280000004b00000028000000900d10002800000057000000160000006c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e7273626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e672060206973206f7574206f6620626f756e6473206f6620603d3d00003c0e100019000000550e100012000000670e10000c0000000f041000010000003c0e100019000000550e100012000000670e10000c00000020311300020000000f04100001000000617373657274696f6e206661696c65643a2060286c6566742020726967687429600a20206c6566743a2060602c0a2072696768743a2060426f72726f774572726f72426f72726f774d75744572726f7270616e69636b656420617420c10e100001000000c20e1000030000005431130000000000c00e100001000000c00e1000010000003a27272c2020202020000000ec0e1000200000003200000021000000ec0e10002000000033000000120000006c6962726172792f636f72652f7372632f666d742f6275696c646572732e72731c0f1000200000005a000000050000006c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e72732c200000120000000c0000000400000018000000190000001a0000002c0a00001200000004000000040000001b0000001c0000001d00000028280a2c290a5d617373657274696f6e206661696c65643a202a63757272203e20313900520410001b000000e6010000050000005b000000cc0f10001b0000001308000016000000cc0f10001b0000000c0800001e0000006c6962726172792f636f72652f7372632f666d742f6d6f642e727330620001021200000001000000010000001e0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f73797374656d2f7372632f6c696d6974732e72734275696c6465722066696e6973686564207769746820606275696c645f6f725f70616e6963603b205468652070616e69632069732065787065637465642069662072756e74696d65207765696768747320617265206e6f7420636f727265637400fc0f100057000000aa01000016000000543113000000000000000000ffffffff00000000010000000000000082800000000000008a8000000000008000800080000000808b800000000000000100008000000000818000800000008009800000000000808a00000000000000880000000000000009800080000000000a000080000000008b800080000000008b0000000000008089800000000000800380000000000080028000000000008080000000000000800a800000000000000a0000800000008081800080000000808080000000000080010000800000000008800080000000801200000004000000040000001f00000001a8010001605354524f424576312e302e320000cc1110004f000000680000000d0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f6d65726c696e2d322e302e302f7372632f7374726f62652e727300f2121000190000000b1310001600000000000000200000000400000002000000000000000200000000000000030000000100000020000000040000000200000000000000020000000000000003000000cc1110004f000000880000000d000000b41210003e000000cc1110004f0000009100000009000000cc1110004f0000005e00000009000000cc1110004f0000005f00000009000000596f75207573656420746865205420666c61672c207768696368207468697320696d706c656d656e746174696f6e20646f65736e277420737570706f7274596f7520747269656420746f20636f6e74696e7565206f702020627574206368616e67656420666c61677320746f20000000cc1110004f0000007c00000015000000cc1110004f0000007d0000000d0000004661696c656420746f206465636f646520636f6d70616374207533322061743a496e76616c6964526f756e6457726f6e6757696e6e6572436f756e74536e617073686f74556e617661696c61626c654e706f73456c656374696f6e0012000000040000000400000020000000496e76616c6964566f7465496e76616c6964566f746572496e76616c696457696e6e6572496e76616c696453636f726500000000641410000e00000000000000741410000100000000000000000000007c141000010000000000000000000000841410000600000000000000543113000000000000000000000000008c141000010000000000000000000000941410000700000000000000543113000000000000000000000000009c14100001000000000000004e6577417574686f7269746965730000291510000d000000f3141000360000005061757365640000cc14100027000000526573756d656400a4141000280000002043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d417574686f726974794c69737400002813130056000000bd0000002e000000000000007415100007000000000000007c1510000300000000000000000000009415100004000000000000004f6666656e636500c248110004000000c64811000e000000a1fb120004000000b41510005500000009161000530000005c16100046000000a21610001d00000020546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e6420286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e206c61737420656c656d656e7420696e64696361746573206f6620746865206f6666656e636520776173206170706c69656420287472756529206f7220717565756564202866616c736529205c5b6b696e642c2074696d65736c6f742c206170706c6965645c5d2e53746f72656452616e6765000000000000f81610000a0000000000000028b111000100000000000000000000000417100002000000000000004e657753657373696f6e000014171000590000006d17100022000000204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f742074686520626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e74696d737461703054696d657374616d7020696e686572656e742064617461206973206e6f742070726f76696465642e496e76616c69642074696d657374616d7020696e686572656e74206461746120656e636f64696e672e000000004018100010000000000000005018100002000000000000000000000060181000020000000000000000000000701810000e00000000000000543113000000000000000000000000008018100001000000000000004261746368496e746572727570746564cbed120003000000113513000d000000bb1810005600000011191000240000004261746368436f6d706c6574656400008818100033000000204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061732077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d000000481910005a00000067000000120000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e302e302f7372632f636f6465632e7273436f646563206572726f724572726f720000c41910004c00000076060000240000002f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e727300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000000000000000100000021000000647c1200660000005c0000001f00000056524648617368565246526573756c747672662d696e7672662d6f7574436865636b547856657273696f6e436865636b47656e65736973436865636b4d6f7274616c697479000000081c10005a000000af050000350000002f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6d61702e7273627450656e64696e675061796f7574496e76616c6964466565496e76616c696456616c75655265717569726543757261746f72556e657870656374656453746174757300000000000000341e10000e00000000000000441e1000020000000000000000000000741e10000c0000000000000000000000d41e10000e00000000000000e41e1000010000000000000000000000fc1e10000800000000000000000000003c1f10000f000000000000004c1f1000030000000000000000000000941f1000070000000000000000000000cc1f10001000000000000000e41e1000010000000000000000000000dc1f10001200000000000000000000006c2010000e00000000000000e41e10000100000000000000000000007c201000080000000000000000000000bc2010000c00000000000000c8201000020000000000000000000000f82010000a0000000000000000000000482110000c00000000000000e41e1000010000000000000000000000542110000900000000000000000000009c2110000c00000000000000e41e1000010000000000000000000000a82110000a0000000000000000000000f821100014000000000000000c2210000200000000000000000000003c2210000a0000000000000070726f706f73655f626f756e747900000000000048b6120005000000000000004db6120015000000000000002d2b10000b0000000000000042ec120007000000d42910001600000054311300000000006c0e1300340000005431130000000000c0ea110055000000ea291000550000003f2a10001a0000005431130000000000592a10003f000000982a10001a000000b22a10004a000000fc2a100031000000617070726f76655f626f756e74790000000000004623100009000000000000004f231000140000007c291000580000001f0211002b00000054311300000000004a0211002c0000005431130000000000f2eb12000b000000638711000800000036ec12000c00000070726f706f73655f63757261746f7200000000004623100009000000000000004f231000140000000000000075291000070000000000000085fc11002300000000000000e5ca100003000000000000004db6120015000000502910002500000054311300000000004a0211002c0000005431130000000000f2eb12000b000000638711000800000036ec12000c000000756e61737369676e5f63757261746f724c2610002000000054311300000000006c261000480000005431130000000000b42610005a0000000e2710004300000054311300000000005127100059000000aa27100058000000022810004e00000054311300000000005028100058000000a828100059000000012910004f0000005431130000000000f2eb12000b000000638711000800000036ec12000c0000006163636570745f63757261746f720000b625100026000000dc2510004b000000543113000000000027261000250000005431130000000000f2eb12000b000000638711000800000036ec12000c00000061776172645f626f756e7479000000004623100009000000000000004f2310001400000000000000b80411000b0000000000000085fc110023000000e6241000660000005431130000000000b82210004600000054311300000000004c251000230000006f251000470000005431130000000000f2eb12000b000000638711000800000036ec12000c000000636c61696d5f626f756e74793d2410003c0000005431130000000000792410004a0000005431130000000000c3241000230000005431130000000000f2eb12000b000000638711000800000036ec12000c000000636c6f73655f626f756e7479632310004f000000b2231000340000005431130000000000e623100033000000543113000000000019241000240000005431130000000000f2eb12000b000000638711000800000036ec12000c000000657874656e645f626f756e74795f657870697279000000004623100009000000000000004f231000140000000000000006f31200070000000000000042ec1200070000008c2210002c0000005431130000000000b8221000460000005431130000000000fe2210002400000022231000240000005431130000000000f2eb12000b000000638711000800000036ec12000c00000020457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e202d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e202d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e626f756e74795f6964436f6d706163743c426f756e7479496e6465783e2043616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64207468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e204f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e202d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e20436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e202d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e20417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e202d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e202d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e20416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e2041206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e204d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e20556e61737369676e2063757261746f722066726f6d206120626f756e74792e20546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e20496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f72206973206d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e20496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e6420746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f766572207468656972206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e292046696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f777320616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e642077652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e2041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e63757261746f7220417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d65206163746976652050726f706f73652061206e657720626f756e74792e2060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c206f7220736c6173686564207768656e2072656a65637465642e202d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e202d2060666565603a205468652063757261746f72206665652e202d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642e202d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e6465736372697074696f6e00000000982c10000b0000000000000000000000a32c10000b0000000000000000000000000000000000000000000000000000000000000054311300b02c10000000000000000000c02c1000010000000000000001000000000000001dbf1100080000000105000000000000a32c10000b00000000000000c82c1000320000000000000000000000000000000000000054311300fc2c100000000000000000000c2d100001000000000000000000000000000000142d1000120000000105000000000000a32c10000b0000000000000042ec1200070000000000000000000000000000000000000054311300282d10000000000000000000382d100001000000000000000000000000000000402d10000f00000000000000000000004f2d1000100000000000000000000000000000000000000000000000000000000000000054311300602d10000000000000000000702d1000010000000000000001000000426f756e7479436f756e74426f756e7479496e646578000012000000000000000100000022000000f12d100030000000426f756e74793c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000012000000000000000100000023000000d32d10001e000000426f756e74794465736372697074696f6e73000012000000000000000100000023000000b32d100020000000426f756e7479417070726f76616c735665633c426f756e7479496e6465783e0012000000000000000100000024000000782d10003b00000020426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e20546865206465736372697074696f6e206f66206561636820626f756e74792e20426f756e7469657320746861742068617665206265656e206d6164652e204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e000000000000000cf01100120000000000000057a912000c0000000000000054311300ac2f10000000000000000000bc2f1000010000000000000000000000c42f1000110000000000000057a912000c0000000000000054311300d82f10000000000000000000e82f1000010000000000000000000000f02f10001800000000000000a9f912000e000000000000005431130008301000000000000000000018301000010000000000000000000000203010001200000000000000a9f912000e0000000000000054311300343010000000000000000000443010000100000000000000000000004c3010001400000000000000fc0711000700000000000000543113006030100000000000000000007030100001000000000000000000000078301000120000000000000057a912000c00000000000000543113008c30100000000000000000009c30100001000000000000000000000038f011001300000000000000cbed1200030000000000000054311300a430100000000000000000005cf01100010000000000000012000000000000000100000025000000d63110003f000000426f756e74794465706f73697442617365000000120000000000000001000000260000009c3110003a000000426f756e74794465706f7369745061796f757444656c6179120000000000000001000000270000004631100056000000426f756e7479557064617465506572696f640000120000000000000001000000280000002b3110001b000000426f756e747943757261746f724465706f73697412000000000000000100000029000000d03010005b000000426f756e747956616c75654d696e696d756d00001200000000000000010000002a000000b43010001c0000001200000000000000010000002b000000204d696e696d756d2076616c756520666f72206120626f756e74792e2050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e74792063757261746f722e20426f756e7479206475726174696f6e20696e20626c6f636b732e205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e2054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e2054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e20626f756e7479206465736372697074696f6e2e000000000000004c3310000e000000000000005c331000010000000000000000000000643310000100000000000000000000006c3310000e000000000000007c3310000200000000000000000000008c3310000100000000000000000000009433100012000000000000005c331000010000000000000000000000a8331000010000000000000000000000b03310000d00000000000000c0331000020000000000000000000000d0331000010000000000000000000000d83310000d00000000000000e833100003000000000000000000000000341000010000000000000000000000083410000e000000000000005c33100001000000000000000000000018341000010000000000000000000000203410000e000000000000005c331000010000000000000000000000303410000100000000000000426f756e747950726f706f7365640000a32c10000b0000007d3510001f000000426f756e747952656a65637465640000a32c10000b000000d5d11200070000003935100044000000426f756e7479426563616d6541637469766500000035100039000000426f756e747941776172646564000000a32c10000b00000079e5120009000000c33410003d000000426f756e7479436c61696d6564000000a32c10000b000000d5d112000700000079e51200090000008034100043000000426f756e747943616e63656c656400005f34100021000000426f756e7479457874656e64656400003834100027000000204120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d204120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d204120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d204120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d204120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d204120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d204e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d1200000004000000040000002c0000002d0000002e00000012000000000000000100000021000000617373657274696f6e206661696c65643a2073656c662e6361702829203d3d206f6c645f636170202a203200003610005e0000002d0800000d0000002f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f7665635f64657175652f6d6f642e72730000c012130056000000030100000100000000000000d0ff10001c000000000000001c1711000100000000000000000000004ab510000c00000000000000241711000100000000000000000000001eda11000c000000000000003c281200010000000000000000000000951c100010000000000000006c371000010000000000000000000000871c10000e00000000000000743710000100000000000000000000007b1c10000c000000000000007c371000010000000000000000000000711c10000a0000000000000084371000010000000000000000000000641c10000d000000000000008c3710000200000000000000000000002ada110009000000000000009c371000010000000000000093381000210000007b3810001800000065381000160000005138100014000000f63710001c000000123810003f000000a4371000520000002054686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e204120626f756e7479207061796f75742069732070656e64696e672e20546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e20496e76616c696420626f756e7479206665652e20496e76616c696420626f756e74792076616c75652e205265717569726520626f756e74792063757261746f722e2054686520626f756e74792073746174757320697320756e65787065637465642ef838100066000000200000000e000000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e282900483513004d000000ff050000090000002f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f7665635f64657175652f72696e675f736c696365732e727300002f00000060000000080000003000000031000000320000003300000034000000350000003600000014211300600000006f010000010000004c06130053000000a00000000f0000006d6f646c70792f70726f78795f5f5f5f00000000000000000000000000000000000000000000000000000000000000000000000007000000e020130023000000d8000000010000006d6f76655f636c61696d617474657374636c61696d5f6174746573746d696e745f636c61696d000000000000c03a10001800000000000000d83a1000010000000000000000000000e03a10001000000000000000f03a1000010000000000000000000000f83a10001000000000000000083b1000010000000000000000000000103b10000c000000000000001c3b10000200000000000000000000002c3b100010000000000000003c3b1000010000000000000000000000443b10001300000000000000583b10000100000000000000496e76616c6964457468657265756d5369676e6174757265523c10001c0000005369676e65724861734e6f436c61696d333c10001f00000053656e6465724861734e6f436c61696d0f3c100024000000506f74556e646572666c6f77af3b100059000000083c100007000000496e76616c696453746174656d656e748a3b10002500000056657374656442616c616e636545786973747300603b10002a00000020546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e2041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e2054686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061206c6f676963206572726f722e204163636f756e742049442073656e64696e6720747820686173206e6f20636c61696d2e20457468657265756d206164647265737320686173206e6f20636c61696d2e20496e76616c696420457468657265756d207369676e61747572652e636c61696d7319457468657265756d205369676e6564204d6573736167653a0a50687261676d656e456c656374696f6e43616e6469646174657352756e6e65727355700000001421130060000000990300002c00000050726576616c696461746541747465737473507265636c61696d735175657565644b657973546f74616c4e6f206f746865722076657374696e67207363686564756c65206578697374732c20617320636865636b65642061626f76653b20716564000000120000000c0000000400000037000000e020130023000000bf01000012000000556e616e6e6f756e6365644475706c6963617465556e70726f787961626c654e6f7450726f7879546f6f4d616e794e6f53656c6650726f787900000000000000083e10000d00000000000000183e1000010000000000000000000000203e1000010000000000000000000000283e10001000000000000000383e1000040000000000000000000000583e1000020000000000000000000000683e10000900000000000000743e10000300000000000000000000008c3e1000010000000000000050726f78794578656375746564000000637a12000e000000863f10003b000000416e6f6e796d6f75734372656174656479e512000900000079e51200090000007d3f100009000000a50e130003000000e83e10003b000000233f10005a000000416e6e6f756e63656400000079e512000900000079e512000900000082e5120004000000943e10005400000020416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e20646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c20646973616d626967756174696f6e5f696e6465785c5d50726f78795479706520412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e000000000000007c411000050000000000000084411000030000000000000000000000cc4110000f000000000000000000000044421000090000000000000050421000030000000000000000000000984210000d0000000000000000000000004310000c00000000000000504210000300000000000000000000000c4310000b0000000000000000000000644310000e0000000000000054311300000000000000000000000000744310000a0000000000000000000000c44310000900000000000000d043100003000000000000000000000018441000170000000000000000000000d04410000e00000000000000e044100005000000000000000000000058451000140000000000000000000000f845100008000000000000000046100002000000000000000000000030461000150000000000000000000000d8461000130000000000000000461000020000000000000000000000ec4610001000000000000000000000006c471000130000000000000080471000020000000000000000000000b0471000100000000000000000000000304810000f0000000000000040481000040000000000000000000000a0481000110000000000000070726f787900000000000000ef4a10000400000000000000e3f812000c00000000000000f34a10001000000000000000034b10001400000000000000a80e13000400000000000000ac0e130018000000b3581000540000007c4910000d0000005431130000000000894910002b00000054311300000000006c0e1300340000005431130000000000355f12000c000000b449100044000000f849100059000000514a1000350000005431130000000000f2eb12000b000000535210004000000036ec12000c0000006164645f70726f787900000000000000f48c12000800000000000000e3f812000c000000000000009a5210000a00000000000000a45210000c000000000000001fae12000500000000000000a9f912000e000000dc5710005200000054311300000000006c0e1300340000005431130000000000355f12000c0000002e58100045000000735810004000000007551000540000005b551000060000005431130000000000f2eb12000b000000535210004000000036ec12000c00000072656d6f76655f70726f7879165710002b00000054311300000000006c0e1300340000005431130000000000355f12000c000000415710004a0000008b571000510000005431130000000000f2eb12000b000000535210004000000036ec12000c00000072656d6f76655f70726f7869657300003b5610002e00000054311300000000006c0e13003400000054311300000000006956100056000000bf561000570000005431130000000000f2eb12000b000000535210004000000036ec12000c000000616e6f6e796d6f7573000000000000009a5210000a00000000000000a45210000c000000000000001fae12000500000000000000a9f912000e00000000000000a00e13000500000000000000a50e130003000000d65210004f00000025531000400000005431130000000000655310001c00000054311300000000008153100055000000d6531000540000002a5410001f00000049541000550000009e54100058000000f65410001100000007551000540000005b5510000600000054311300000000006155100055000000b6551000270000005431130000000000dd5510003a0000005431130000000000f2eb12000b000000535210004000000036ec12000c00000017561000240000006b696c6c5f616e6f6e796d6f7573000000000000935210000700000000000000e3f812000c000000000000009a5210000a00000000000000a45210000c00000000000000a00e13000500000000000000a50e13000300000000000000b05210000600000000000000b65210001700000000000000cd5210000900000000000000d2a012000c000000264f10002e0000005431130000000000544f100053000000a74f10000e0000005431130000000000b54f1000570000000c5010002b000000543113000000000037501000540000008b50100054000000df50100041000000205110005000000070511000530000005431130000000000c351100053000000165210003d0000005431130000000000f2eb12000b000000535210004000000036ec12000c000000616e6e6f756e636500000000ef4a10000400000000000000e3f812000c000000000000008cf010000900000000000000554c10000d000000294d10004200000054311300000000006b4d100058000000c34d10004a00000054311300000000000d4e1000450000005431130000000000524e100043000000954e1000470000005431130000000000dc4e10004a0000005431130000000000355f12000c000000b449100044000000e34c1000460000005431130000000000f2eb12000b000000864a1000190000009f4a100027000000c64a10002900000036ec12000c00000072656d6f76655f616e6e6f756e63656d656e7400624c10001d00000054311300000000007f4c100057000000d64c10000d00000054311300000000006c0e1300340000005431130000000000355f12000c000000b449100044000000e34c1000460000005431130000000000f2eb12000b000000864a1000190000009f4a100027000000c64a10002900000036ec12000c00000072656a6563745f616e6e6f756e63656d656e740000000000f48c12000800000000000000e3f812000c000000000000008cf010000900000000000000554c10000d000000174b10002d0000005431130000000000444b1000590000009d4b10004a00000054311300000000006c0e1300340000005431130000000000355f12000c000000e74b10003e000000254c1000300000005431130000000000f2eb12000b000000864a1000190000009f4a100027000000c64a10002900000036ec12000c00000070726f78795f616e6e6f756e6365640000000000f48c12000800000000000000e3f812000c00000000000000ef4a10000400000000000000e3f812000c00000000000000f34a10001000000000000000034b10001400000000000000a80e13000400000000000000ac0e13001800000028491000540000007c4910000d0000005431130000000000894910002b00000054311300000000006c0e1300340000005431130000000000355f12000c000000b449100044000000f849100059000000514a1000350000005431130000000000f2eb12000b000000864a1000190000009f4a100027000000c64a10002900000036ec12000c0000002044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676820606164645f70726f7879602e2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2e202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e2057656967687420697320612066756e6374696f6e206f663a202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652e202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e7265616c666f7263655f70726f78795f747970654f7074696f6e3c543a3a50726f7879547970653e2052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c65676174657320286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2e202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e43616c6c486173684f663c543e2052656d6f7665206120676976656e20616e6e6f756e63656d656e742e204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e20746865206465706f7369742e202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e2054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d70746564206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e20546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061732060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e2052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626520696e61636365737369626c652e205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746f2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e2057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e737061776e657270726f78795f74797065543a3a50726f787954797065686569676874436f6d706163743c543a3a426c6f636b4e756d6265723e6578745f696e64657820537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e6420696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e205265717569726573206120605369676e656460206f726967696e2e202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f76657220746865206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d65207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573742077616e7420746f20757365206030602e202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265207a65726f2e204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468652073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e20544f444f3a204d69676874206265206f76657220636f756e74696e672031207265616420556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e2074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e20526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e2044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567680000000000a82d1200070000000105000000000000e3f812000c00000000000000b85910005100000000000000000000000000000000000000543113000c5a100000000000000000001c5a100002000000000000000100000000000000af2d12000d0000000105000000000000e3f812000c000000000000002c5a10004f00000000000000000000000000000000000000543113007c5a100000000000000000008c5a1000010000000000000001000000285665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e2900000012000000000000000100000038000000bf5a100051000000105b100048000000285665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e290012000000000000000100000039000000945a10002b0000002054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e2054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e747320776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e00000000a85c1000100000000000000057a912000c0000000000000054311300b85c10000000000000000000c85c1000040000000000000000000000e85c1000120000000000000057a912000c0000000000000054311300fc5c100000000000000000000c5d1000050000000000000000000000345d10000a00000000000000a50e1300030000000000000054311300405d10000000000000000000505d1000010000000000000000000000585d10000a00000000000000cbed1200030000000000000054311300645d10000000000000000000745d10000100000000000000000000007c5d1000170000000000000057a912000c0000000000000054311300945d10000000000000000000a45d1000030000000000000000000000bc5d1000190000000000000057a912000c0000000000000054311300d85d10000000000000000000e85d1000040000000000000050726f78794465706f736974426173651200000000000000010000003a000000fa6010004400000054311300000000003e611000400000007e6110004900000050726f78794465706f736974466163746f7200001200000000000000010000003b000000e95f10002f0000005431130000000000186010005a0000007260100058000000ca601000300000004d617850726f7869657300001200000000000000010000003c000000ad5f10003c0000004d617850656e64696e6700001200000000000000010000003d0000005c5f100051000000416e6e6f756e63656d656e744465706f73697442617365001200000000000000010000003a000000b65e10004c0000005431130000000000025f10005a000000416e6e6f756e63656d656e744465706f736974466163746f720000001200000000000000010000003e000000085e10003500000054311300000000003d5e100056000000935e1000230000002054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e20546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c792036382062797465732920696e746f2061207072652d6578697374696e672073746f726167652076616c75652e20546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e20546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c79203136206279746573292e20546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e20546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e20546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b6520696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e20546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e20546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4e6f4b6579734475706c6963617465644b65794e6f4173736f63696174656456616c696461746f724964496e76616c696450726f6f664e6f4163636f756e7400000000000060621000080000000000000068621000020000000000000000000000986210000e0000000000000000000000086310000a0000000000000054311300000000000000000000000000146310000c000000000000007365745f6b657973000000007aee1200040000000000000042661000070000000000000049661000050000000000000042ec120007000000186510003a0000005265100048000000a7631000310000005431130000000000d8631000350000005431130000000000f2eb12000b000000c9e91100150000003a641000560000009a6510003c000000d665100029000000ff65100021000000206610002200000036ec12000c00000070757267655f6b65797300007463100033000000a7631000310000005431130000000000d8631000350000005431130000000000f2eb12000b0000000d6410002d0000003a64100056000000906410003c000000cc64100029000000f56410002300000036ec12000c0000002052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e20546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e20202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e7460202d20446257726974657320706572206b65792069643a20604b65794f776e646572602053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e20416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722e202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b65797360202d204462526561647320706572206b65792069643a20604b65794f776e657260202d20446257726974657320706572206b65792069643a20604b65794f776e657260543a3a4b65797370726f6f66000000000000f04e11000a0000000000000000000000b8681000130000000000000000000000000000000000000000000000000000000000000054311300cc6810000000000000000000dc68100001000000000000000100000000000000e46810000c0000000000000000000000a03712000c0000000000000000000000000000000000000000000000000000000000000054311300f068100000000000000000000069100001000000000000000100000000000000086910000d0000000000000000000000a1fb12000400000000000000000000000000000000000000000000000000000000000000543113001869100000000000000000002869100002000000000000000100000000000000df3c10000a0000000000000000000000386910001e0000000000000000000000000000000000000000000000000000000000000054311300586910000000000000000000686910000200000000000000010000000000000078691000120000000000000000000000e47311000800000000000000000000000000000000000000000000000000000000000000543113008c69100000000000000000009c69100003000000000000000100000000000000b4691000080000000105000000000000bc6910000e0000000000000042661000070000000000000000000000000000000000000054311300cc6910000000000000000000dc69100001000000000000000000000000000000e4691000080000000105000000000000ec6910001400000000000000bc6910000e0000000000000000000000000000000000000054311300006a10000000000000000000106a10000100000000000000000000005665633c543a3a56616c696461746f7249643e001200000000000000010000003f0000000a6c10001f00000043757272656e74496e64657812000000000000000100000022000000ec6b10001e0000005175657565644368616e67656400000012000000000000000100000023000000756b10004e000000c36b1000290000005665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e000012000000000000000100000040000000ee6a10004f0000003d6b10003800000044697361626c656456616c696461746f7273000012000000000000000100000024000000816a1000200000005431130000000000a16a10004d0000004e6578744b657973543a3a56616c696461746f7249640000120000000000000001000000230000005a6a1000270000004b65794f776e6572284b65795479706549642c205665633c75383e2912000000000000000100000023000000186a10004200000020546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e20496e6469636573206f662064697361626c65642076616c696461746f72732e205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e2054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b6579732077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e20547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f727320686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e2043757272656e7420696e646578206f66207468652073657373696f6e2e205468652063757272656e7420736574206f662076616c696461746f72732e0000000000000078a710000500000000000000086d1000020000000000000000000000386d10001800000000000000000000000c3a10000a00000000000000f86d1000040000000000000000000000586e10000f0000000000000000000000003a10000c00000000000000d06e1000030000000000000000000000186f10001a0000000000000000000000fa3910000600000000000000e86f100001000000000000000000000000701000110000000000000000000000f03910000a0000000000000088701000030000000000000000000000543113000000000000000000000000005b0c12000400000000000000e3f812000c00000000000000b07510001200000000000000c27510000e000000477710002300000054311300000000006073100032000000543113000000000088711000150000006a77100042000000dd731000200000005431130000000000fd7310001b000000ac771000260000005431130000000000d27710002a0000005431130000000000355f12000c000000cd7410003700000004751000440000004875100028000000543113000000000080721000090000008972100040000000fc77100039000000543113000000000006731000170000008d8511000a00000000000000791b13000300000000000000d37010000f0000000000000048b61200050000000000000057a912000c00000000000000ee7610001000000000000000fe76100034000000000000001d73100009000000000000003277100015000000d075100022000000543113000000000075fa1100320000005431130000000000355f12000c000000f27510003d0000002f761000340000006376100043000000543113000000000080721000090000008972100040000000a676100048000000543113000000000006731000170000008d8511000a000000000000005b0c12000400000000000000e3f812000c00000000000000b07510001200000000000000c27510000e000000000000001d731000090000000000000042ec120007000000267310003a0000005431130000000000607310003200000054311300000000008871100015000000927310004b000000dd731000200000005431130000000000fd7310001b0000001874100031000000543113000000000049741000530000009c741000310000005431130000000000355f12000c000000cd7410003700000004751000440000004875100028000000267210005a0000005431130000000000807210000900000089721000400000007075100040000000543113000000000006731000170000008d8511000a000000000000001d731000090000000000000042ec120007000000f07010003e00000054311300000000002e7110005a000000543113000000000088711000150000009d7110004b000000e87110003e0000005431130000000000355f12000c000000267210005a000000543113000000000080721000090000008972100040000000c97210003d000000543113000000000006731000170000008d8511000a00000000000000d07010000300000000000000d37010000f00000000000000871913000300000000000000d37010000f00000000000000e27010000e000000000000002c701200140000006f6c64457468657265756d416464726573736d617962655f707265636c61696d2041747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e205741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c69646174654174746573747360206173206120605369676e6564457874656e73696f6e602e20556e7369676e65642056616c69646174696f6e3a20412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d60207265676973746572656420616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e202d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e203c7765696768743e2054686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e2057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e20546f74616c20436f6d706c65786974793a204f28312973746174656d656e74204d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e20412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d61746368657320746865206578706563746564207369676e6564206d657373616765206f663a203e20457468657265756d205369676e6564204d6573736167653a203e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e742920616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973206578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e202d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e202d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765202020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e2057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e657468657265756d5f7369676e617475726545636473615369676e6174757265204d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e202d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2e202d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e202d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e20576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e76657374696e675f7363686564756c654f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e4f7074696f6e3c53746174656d656e744b696e643e204d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e20412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d617463686573203e2028636f6e666967757265642070726566697820737472696e672928616464726573732920616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e2057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e00000000000000b6281300060000000106000000000000d37010000f0000000000000057a912000c0000000000000000000000000000000000000054311300f079100000000000000000005431130000000000000000000000000000000000e93c100005000000000000000000000057a912000c0000000000000000000000000000000000000000000000000000000000000054311300007a100000000000000000005431130000000000000000000100000000000000bc2d1200070000000106000000000000d37010000f00000000000000107a10002c00000000000000000000000000000000000000543113003c7a100000000000000000004c7a100004000000000000000000000000000000bc281300070000000106000000000000d37010000f000000000000006c7a10000d00000000000000000000000000000000000000543113007c7a100000000000000000008c7a100001000000000000000000000000000000d63c1000090000000106000000000000e3f812000c00000000000000d37010000f0000000000000000000000000000000000000054311300947a10000000000000000000a47a100001000000000000000000000012000000000000000100000023000000120000000000000001000000410000002842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722912000000000000000100000023000000277b10001e000000457b100043000000887b100039000000c17b10003300000053746174656d656e744b696e6400000012000000000000000100000023000000f77a10003000000012000000000000000100000023000000ac7a10004b000000205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e2056657374696e67207363686564756c6520666f72206120636c61696d2e2046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672e205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2e2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e000000002c7c10000600000000000000327c1000050000000000000054311300387c10000000000000000000487c10000100000000000000507265666978265b75385d0012000000000000000100000042000000507c10004500000020546865205072656669782074686174206973207573656420696e207369676e656420457468657265756d206d6573736167657320666f722074686973206e6574776f726b00000000000000c47c10000700000000000000cc7c1000030000000000000000000000e47c10000100000000000000436c61696d65640079e5120009000000d37010000f000000d5d1120007000000ec7c10003b00000020536f6d656f6e6520636c61696d656420736f6d6520444f54732e205b77686f2c20657468657265756d5f616464726573732c20616d6f756e745d496e76616c696452656e6f756e63696e67496e76616c6964566f7465436f756e74496e76616c69645769746e65737344617461496e73756666696369656e7443616e64696461746546756e647352756e6e657255705375626d69744d656d6265725375626d69744475706c69636174656443616e6469646174655265706f727453656c664d7573744265566f746572556e61626c65546f506179426f6e644c6f7742616c616e63654d6178696d756d566f7465734578636565646564546f6f4d616e79566f7465734e6f566f746573556e61626c65546f566f7465496e76616c69645265706c6163656d656e7400000000d488120004000000000000001c7f10000200000000000000000000004c7f1000170000000000000000000000048010000c00000000000000543113000000000000000000000000001080100005000000000000000000000038801000100000000000000048801000010000000000000000000000608010000f0000000000000000000000d88010001200000000000000ec80100001000000000000000000000004811000110000000000000000000000e41613000d000000000000008c811000020000000000000000000000bc8110000e00000000000000000000002c821000140000000000000040821000020000000000000000000000708210000a0000000000000000000000398f100005000000000000002c1a1300110000000000000048b6120005000000000000004db6120015000000128c100057000000698c1000390000005431130000000000a28c100058000000fa8c10005400000054311300000000004e8d100014000000628d100012000000748d100056000000ca8d10004500000054311300000000000f8e1000540000005431130000000000498a10003100000054311300000000007a8a10000c0000005431130000000000638e100056000000b98e10002b0000005431130000000000f2eb12000b000000e48e10005500000036ec12000c00000072656d6f76655f766f746572878b10001c0000005431130000000000a38b10002f0000005431130000000000d28b1000400000007375626d69745f63616e64696461637900000000788b10000f00000000000000d2a012000c00000078891000450000005431130000000000bd89100058000000158a1000340000005431130000000000498a10003100000054311300000000007a8a10000c0000005431130000000000868a100058000000de8a1000570000005431130000000000f2eb12000b000000358b10004300000036ec12000c00000072656e6f756e63655f63616e646964616379000000000000648910000a000000000000006e8910000a0000001486100054000000688610001000000054311300000000007886100053000000cb8610003d000000088710005900000061871000240000008587100056000000db87100056000000318810005b0000008c8810004d0000005431130000000000d9881000520000005431130000000000f2eb12000b0000002b8910003900000036ec12000c00000000000000791b1300030000000000000085fc11002300000000000000058610000f00000000000000a1fb1200040000001d84100057000000748410002000000054311300000000009484100056000000ea8410004000000054311300000000007f8310002f00000054311300000000002a851000510000005431130000000000f2eb12000b0000007b85100055000000d08510003500000036ec12000c000000636c65616e5f646566756e63745f766f7465727300000000068410000b00000000000000cbed12000300000000000000118410000c00000000000000cbed120003000000c082100052000000128310002c00000054311300000000003e8310004100000054311300000000007f8310002f0000005431130000000000f2eb12000b000000ae8310005800000036ec12000c00000020436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865206465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e205468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e2054686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e5f6e756d5f766f746572735f6e756d5f646566756e63742052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f6620746865206f7574676f696e67206d656d62657220697320736c61736865642e20496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e20496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e642077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e6861735f7265706c6163656d656e742052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c206f7574636f6d65732065786973743a202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e642020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e20697320202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e20202053696d696c617220746f205b6072656d6f76655f6d656d62657273605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e202020496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c20746865206e65787420726f756e642e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e205468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e72656e6f756e63696e6752656e6f756e63696e67205375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e20416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702c206f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e20232323205761726e696e67204576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d20746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e20546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e63616e6469646174655f636f756e742052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e20566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746f207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e2055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069732072657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e205468652060766f746573602073686f756c643a2020202d206e6f7420626520656d7074792e2020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e64202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e204966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e2049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e20576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e766f746573000000000000c7e11200070000000000000000000000f89010002b00000000000000000000000000000000000000000000000000000000000000543113002491100000000000000000003491100003000000000000000100000000000000a83c1000090000000000000000000000f89010002b00000000000000000000000000000000000000000000000000000000000000543113004c91100000000000000000005c911000040000000000000001000000000000009e3c10000a00000000000000000000007c911000210000000000000000000000000000000000000000000000000000000000000054311300a09110000000000000000000b091100006000000000000000100000000000000e09110000e0000000000000000000000cbed1200030000000000000000000000000000000000000000000000000000000000000054311300f091100000000000000000000092100001000000000000000100000000000000fb571200060000000105000000000000e3f812000c00000000000000089210002100000000000000000000000000000000000000543113002c92100000000000000000003c9210000300000000000000010000005665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e0012000000000000000100000043000000809410001d0000005431130000000000ac9310002e00000012000000000000000100000043000000da931000210000005431130000000000fb93100056000000519410002f0000005665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0000001200000000000000010000003f0000000393100056000000599310003400000054311300000000008d9310001f0000005431130000000000ac9310002e000000456c656374696f6e526f756e6473000012000000000000000100000022000000b392100050000000566f7465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00000012000000000000000100000044000000549210002e0000005431130000000000829210003100000020566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e2054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e2054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e205365636f6e6420656c656d656e7420697320746865206465706f7369742e20496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e205468652063757272656e742072657365727665642072756e6e6572732d75702e20496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e205468652063757272656e7420656c6563746564206d656d626572732e00000000000000289610000d0000000000000057a912000c000000000000005431130038961000000000000000000054311300000000000000000000000000489610000e0000000000000057a912000c00000000000000543113005896100000000000000000005431130000000000000000000000000068961000100000000000000057a912000c000000000000005431130078961000000000000000000054311300000000000000000000000000889610000e00000000000000cbed120003000000000000005431130098961000000000000000000054311300000000000000000000000000a89610001000000000000000cbed1200030000000000000054311300b8961000000000000000000054311300000000000000000000000000c89610000c00000000000000a9f912000e0000000000000054311300d4961000000000000000000054311300000000000000000000000000a00811000800000000000000e49610000e0000000000000054311300f4961000000000000000000054311300000000000000000043616e646964616379426f6e6400000012000000000000000100000045000000566f74696e67426f6e6442617365000012000000000000000100000046000000566f74696e67426f6e64466163746f7212000000000000000100000047000000446573697265644d656d626572730000120000000000000001000000480000004465736972656452756e6e6572735570120000000000000001000000490000005465726d4475726174696f6e1200000000000000010000004a0000004c6f636b4964656e74696669657200001200000000000000010000004b0000000000000038981000070000000000000040981000010000000000000000000000489810000400000000000000000000006898100009000000000000005431130000000000000000000000000074981000020000000000000000000000849810000d0000000000000054311300000000000000000000000000949810000100000000000000000000009c9810000c00000000000000fce41200010000000000000000000000a8981000020000000000000000000000b89810000900000000000000fce41200010000000000000000000000c4981000010000000000000000000000cc9810001000000000000000c0f51100020000000000000000000000dc981000040000000000000000000000fc9810001100000000000000c0f511000200000000000000000000001099100001000000000000004e65775465726d00ad9c1000190000004d9b10005a000000a79b100056000000fd9b10005a000000579c100056000000456d7074795465726d000000cd9a10004d0000001a9b100033000000456c656374696f6e4572726f72000000939a10003a0000004d656d6265724b69636b6564319a100055000000869a10000d00000052656e6f756e6365640000000a9a10002700000043616e646964617465536c61736865646e99100057000000c59910000b0000005431130000000000d09910003a00000053656174486f6c646572536c617368656400000018991000560000002041205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e2041205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722072756e6e65722d75702e204e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e20536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e2041205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f722060456d7074795465726d602e20496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6d20604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e2041206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e2074686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e6420736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f20626567696e20776974682e5665633c284163636f756e7449642c2042616c616e6365293e000000000000f16110000c00000000000000549d1000010000000000000000000000da61100017000000000000005c9d1000010000000000000000000000cd6110000d00000000000000649d1000010000000000000000000000c761100006000000000000006c9d1000010000000000000000000000fd6110000900000000000000749d100001000000000000002f9e100019000000079e100028000000ed9d10001a000000c39d10002a0000007c9d100047000000204b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e2052656769737465726564206475706c6963617465206b65792e204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e20496e76616c6964206f776e6572736869702070726f6f662e000000006f3d10000700000000000000289f10000100000000000000000000008b3311000800000000000000309f1000010000000000000000000000673d10000800000000000000389f10000100000000000000000000005c3d10000b00000000000000409f1000010000000000000000000000533d10000900000000000000489f1000010000000000000000000000428212000c00000000000000509f1000010000000000000000000000483d10000b00000000000000589f1000010000000000000000000000763d10000b00000000000000609f10000100000000000000b4a010004900000096a010001e00000062a010003400000019a0100049000000fd9f10001c000000b79f100046000000829f100035000000689f10001a0000002043616e6e6f74206164642073656c662061732070726f78792e20416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e204163636f756e7420697320616c726561647920612070726f78792e20412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e2053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2050726f787920726567697374726174696f6e206e6f7420666f756e642e2054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e00000000000000f67d10000c00000000000000dca21000010000000000000000000000ef7d10000700000000000000e4a21000010000000000000000000000e37d10000c00000000000000eca21000010000000000000000000000cf7d10001400000000000000f4a21000010000000000000000000000c57d10000a00000000000000fca21000010000000000000000000000b67d10000f0000000000000004a31000010000000000000000000000ab7d10000b000000000000000ca31000010000000000000000000000a17d10000a0000000000000014a310000100000000000000000000008e7d100013000000000000001ca31000010000000000000000000000827d10000c0000000000000024a31000010000000000000000000000747d10000e000000000000002ca310000100000000000000000000005a7d10001a0000000000000034a31000010000000000000000000000e0e1120009000000000000003ca31000010000000000000000000000487d1000120000000000000044a31000010000000000000000000000387d100010000000000000004ca31000010000000000000000000000277d1000110000000000000054a31000010000000000000000000000027e100012000000000000005ca310000100000000000000d1a5100031000000aba510002600000089a510002200000062a510002700000030a510003200000011a510001f00000000a5100011000000eca4100014000000cba4100021000000a8a410002300000085a41000230000005fa410002600000051a410000e00000018a4100039000000e4a3100034000000a4a310004000000064a31000400000002050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e204e6f742061206d656d6265722e2043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e204475706c6963617465642063616e646964617465207375626d697373696f6e2e2043616e6e6f74207265706f72742073656c662e204d757374206265206120766f7465722e20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e2043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e2043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e0000e613130056000000e900000001000000417070726f76616c73496e636f6e73697374656e74207374617465202d20636f756c646e277420736574746c6520696d62616c616e636520666f722066756e6473207370656e7420627920747265617375727953757065724f664e6f745472616e73666572496e5573654e6f744f776e65724e6f7441737369676e65645065726d616e656e7400000000000078a71000050000000000000080a7100001000000000000000000000098a7100012000000000000000000000038071200080000000000000028a8100002000000000000000000000058a81000140000000000000000000000f8a81000040000000000000080a71000010000000000000000000000fca810001200000000000000000000002c0912000e000000000000008ca91000030000000000000000000000d4a910001500000000000000000000007caa1000060000000000000080a7100001000000000000000000000084aa10001100000000000000636c61696d00000000000000a00e13000500000000000000d7ae10000f00000097b11000270000005431130000000000beb110003800000054311300000000006c0e1300340000005431130000000000f6b110003d000000543113000000000016ae1000250000005431130000000000f2eb12000b000000bcfb11000a00000028ac10002700000020b01000190000006cac10000d00000079ac1000140000008dac10002500000036ec12000c00000000000000871913000300000000000000e3f812000c00000000000000a00e13000500000000000000d7ae10000f00000039b010005800000091b010002f00000054311300000000006c0e1300340000005431130000000000c0b010004a0000006dad100058000000543113000000000016ae1000250000005431130000000000f2eb12000b000000bcfb11000a00000028ac1000270000000ab110001a0000006cac10000d00000079ac100014000000c0ef12000d00000024b11000390000005db110003a00000036ec12000c00000066726565e6ae10002600000054311300000000000caf100058000000543113000000000064af1000560000005431130000000000baaf1000440000005431130000000000feaf1000220000005431130000000000f2eb12000b000000bcfb11000a00000028ac10002700000020b01000190000006cac10000d00000079ac1000140000008dac10002500000036ec12000c00000000000000871913000300000000000000e3f812000c00000000000000a00e13000500000000000000d7ae10000f000000000000007caa10000600000000000000a1fb120004000000b2ac10005600000008ad10003b000000543113000000000075fa110032000000543113000000000043ad10002a0000006dad100058000000c5ad100051000000543113000000000016ae1000250000005431130000000000f2eb12000b000000bcfb11000a00000028ac1000270000003bae10001f0000006cac10000d00000079ac100014000000c0ef12000d0000005aae10003e00000098ae10003f00000036ec12000c000000667265657a6500000cab10005a000000543113000000000066ab100057000000bdab10001c0000005431130000000000d9ab10002c000000543113000000000005ac1000230000005431130000000000f2eb12000b000000bcfb11000a00000028ac1000270000004fac10001d0000006cac10000d00000079ac1000140000008dac10002500000036ec12000c00000020467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d75737420686176652061206e6f6e2d66726f7a656e206163636f756e742060696e646578602e202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202d20557020746f206f6e6520736c617368206f7065726174696f6e2e202d204f6e65206576656e742e202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d202d204442205765696768743a203120526561642f577269746520284163636f756e74732920466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c72656164792068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e20456d6974732060496e64657841737369676e656460206966207375636365737366756c2e202d20557020746f206f6e652072657365727665206f7065726174696f6e2e202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229543a3a4163636f756e74496e646578204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e20456d6974732060496e646578467265656460206966207375636365737366756c2e202d204f6e652072657365727665206f7065726174696f6e2e2041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6e206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e202d204f6e65207472616e73666572206f7065726174696f6e2e202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e74292041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e00000000008cb21000080000000102000000000000d7ae10000f0000000000000094b21000220000000000000000000000000000000000000054311300b8b210000000000000000000c8b210000100000000000000000000004163636f756e747328543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000012000000000000000100000023000000d0b210002200000020546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e00000000000048031200070000000000000057a912000c00000000000000543113002cb3100000000000000000003cb3100001000000000000001200000000000000010000002a00000044b310002b00000020546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e0000000000f4b310000d0000000000000004b4100002000000000000000000000014b410000100000000000000000000001cb410000a0000000000000028b4100001000000000000000000000030b4100001000000000000000000000038b410000b0000000000000044b4100002000000000000000000000054b410000100000000000000496e64657841737369676e656400000079e5120009000000a6b410000c000000ecb410002d000000496e64657846726565640000a6b410000c000000b2b410003a000000496e64657846726f7a656e00a6b410000c00000079e51200090000005cb410004a0000002041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d4163636f756e74496e6465782041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d4e6f74537562546f6f4d616e7952656769737472617273546f6f4d616e794669656c6473496e76616c6964546172676574496e76616c6964496e646578496e76616c69644a756467656d656e744a756467656d656e74476976656e537469636b794a756467656d656e744e6f4964656e746974794665654368616e676564456d707479496e6465784e6f744e616d6564546f6f4d616e795375624163636f756e74734e6f744f776e6564000000000058b810000d0000000000000068b8100001000000000000000000000080b810000d0000000000000000000000e8b810000c00000000000000f4b810000100000000000000000000000cb91000130000000000000000000000a4b910000800000000000000acb91000010000000000000000000000c4b910001500000000000000000000006cba10000e00000000000000543113000000000000000000000000007cba10001200000000000000000000000cbb1000110000000000000020bb100002000000000000000000000050bb100017000000000000000000000008bc10000e0000000000000018bc100001000000000000000000000030bc1000110000000000000000000000b8bc10000700000000000000c0bc1000020000000000000000000000f0bc10000d000000000000000000000058bd10000e0000000000000068bd100002000000000000000000000098bd10000d000000000000000000000000be10000a000000000000000cbe10000200000000000000000000003cbe10000d0000000000000000000000a4be10001100000000000000b8be100003000000000000000000000000bf100013000000000000000000000098bf10000d0000000000000024f81100010000000000000000000000a8bf100013000000000000000000000040c01000070000000000000048c0100002000000000000000000000078c01000070000000000000000000000b0c010000a0000000000000048c01000020000000000000000000000bcc01000040000000000000000000000dcc010000a00000000000000e8c0100001000000000000000000000000c1100007000000000000000000000038c1100008000000000000005431130000000000000000000000000040c110000a000000000000006164645f7265676973747261720000000000000069d510000700000000000000e3f812000c00000048d410001f000000543113000000000067d41000400000005431130000000000a7d410002b0000005431130000000000d2d41000260000005431130000000000f2eb12000b000000f8d410004a00000042d51000270000006cac10000d00000036ec12000c0000007365745f6964656e746974790000000038d4100004000000000000003cd410000c0000003ed210004b000000543113000000000089d2100056000000dfd210001500000054311300000000006c0e1300340000005431130000000000f4d2100024000000543113000000000018d31000230000005431130000000000f2eb12000b0000003bd31000120000004dd310004800000095d3100039000000ced3100021000000efd31000490000006cac10000d00000036ec12000c0000007365745f737562730000000021d21000040000000000000025d2100019000000f7cf10002400000054311300000000001bd010005600000071d010004c00000054311300000000003ac2100059000000acce10000a0000005431130000000000bdd010002d0000005431130000000000f2eb12000b000000ead010000d000000f7d010003a00000022cf10003600000031d1100022000000946412000600000053d11000380000008bd1100030000000bbd1100031000000ecd110003500000036ec12000c000000636c6561725f6964656e74697479000021ce10004f000000543113000000000070ce10003c00000054311300000000003ac2100059000000acce10000a0000005431130000000000b6ce1000270000005431130000000000f2eb12000b000000ddce100011000000eece10003400000022cf10003600000058cf100049000000a1cf100023000000c4cf1000330000006cac10000d00000036ec12000c000000726571756573745f6a756467656d656e74000000000000003bc81000090000000000000044c8100017000000000000001ace100007000000000000004db612001500000060cc100026000000543113000000000086cc100056000000dccc100007000000543113000000000042cb10004e00000090cb1000150000005431130000000000e3cc1000480000002bcd100056000000543113000000000081cd10000d0000008ecd10002f000000bdcd1000040000005431130000000000c1cd10002a0000005431130000000000f2eb12000b000000b6c710000e00000004c6100021000000ebcd10002f0000006cac10000d00000036ec12000c00000063616e63656c5f726571756573740000000000003bc81000090000000000000052cc10000e000000e8ca10001b000000543113000000000003cb10003f000000543113000000000042cb10004e00000090cb1000150000005431130000000000a5cb1000520000005431130000000000f7cb10002c0000005431130000000000f2eb12000b000000b6c710000e00000004c610002100000023cc10002300000046cc10000c00000036ec12000c0000007365745f6665650000000000a00e1300050000000000000044c810001700000000000000e5ca100003000000000000004db61200150000004eca100047000000543113000000000071c6100056000000a6c81000290000005431130000000000cfc810003e00000095ca1000160000005431130000000000f2eb12000b00000051c910000a0000005bc910001f000000abca10003a00000036ec12000c0000007365745f6163636f756e745f6964000000000000a00e1300050000000000000044c810001700000000000000871913000300000000000000e3f812000c000000c8c9100030000000543113000000000071c6100056000000a6c81000290000005431130000000000cfc810003e000000f8c910001d0000005431130000000000f2eb12000b00000051c910000a0000005bc910001f00000015ca10003900000036ec12000c0000007365745f6669656c6473000000000000a00e1300050000000000000044c810001700000000000000b4c910000600000000000000bac910000e0000007bc810002b000000543113000000000071c6100056000000a6c81000290000005431130000000000cfc810003e0000000dc91000440000005431130000000000f2eb12000b00000051c910000a0000005bc910001f0000007ac910003a00000036ec12000c00000070726f766964655f6a756467656d656e74000000000000003bc81000090000000000000044c810001700000000000000739a1200060000000000000085fc110023000000000000005bc81000090000000000000064c810001700000042c610002f000000543113000000000071c6100056000000c7c610002d0000005431130000000000f4c610004900000058c5100056000000aec510001e0000003dc7100053000000543113000000000090c71000260000005431130000000000f2eb12000b000000b6c710000e000000c4c7100022000000e6c71000260000000cc810002f0000006cac10000d00000036ec12000c0000006b696c6c5f6964656e74697479000000fcc310005100000054311300000000004dc4100059000000a6c4100052000000f8c4100021000000543113000000000019c510003f000000543113000000000058c5100056000000aec510001e0000005431130000000000ccc51000260000005431130000000000f2eb12000b000000f2c510001200000004c610002100000025c610001d0000006cac10000d00000036ec12000c0000006164645f737562000000000091c31000030000000000000085fc11002300000000000000f4c310000400000000000000f8c3100004000000c8c310002c0000005431130000000000b4c11000580000006bc310000f00000054311300000000003ac21000590000007ac310001700000072656e616d655f737562000094c310003400000054311300000000003ac21000590000007ac310001700000072656d6f76655f73756200000000000091c31000030000000000000085fc1100230000003ac31000310000005431130000000000b4c11000580000006bc310000f00000054311300000000003ac21000590000007ac3100017000000717569745f73756290c11000240000005431130000000000b4c11000580000000cc210002e00000054311300000000003ac210005900000093c21000100000005431130000000000a3c2100052000000f5c21000450000002052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656420746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265642073757065722d6964656e746974792e204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d20636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e2052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e20746f207468652073656e6465722e20737562206964656e74697479206f662060737562602e73756220416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e64617461446174612052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c65642062792060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e742020207769746820612072656769737465726564206964656e746974792e20456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e202d20604f2852202b2053202b205829602e202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e202d206053202b2032602073746f72616765206d75746174696f6e732e2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e20456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e202d20604f2852202b205829602e202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2e202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e7265675f696e646578436f6d706163743c526567697374726172496e6465783e6a756467656d656e744a756467656d656e743c42616c616e63654f663c543e3e2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e202d20604f285229602e202d204f6e652073746f72616765206d75746174696f6e20604f285229602e202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c79736973296669656c64734964656e746974794669656c6473204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e202d20606e6577603a20746865206e6577206163636f756e742049442e202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c797369732920536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e202d2060666565603a20746865206e6577206665652e202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c79736973296665652043616e63656c20612070726576696f757320726571756573742e205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564206964656e746974792e202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e20456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e202d204f6e65206576656e74526567697374726172496e64657820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7420676976656e2e202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a206060606e6f636f6d70696c652053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e6665652060606020456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e6d61785f66656520436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e206964656e746974792e20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e202d20604f2852202b2053202b205829602020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292e2020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e2020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2e202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e2053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e656420616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e202d20604f2850202b205329602020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e2020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f28312960292020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292e2020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292e2020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e737562735665633c28543a3a4163636f756e7449642c2044617461293e2053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e20496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7420666f7220746865206e6577206465706f7369742e202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e20456d69747320604964656e7469747953657460206966207375636365737366756c2e202d20604f2858202b205827202b205229602020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e64656429202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e696e666f4964656e74697479496e666f2041646420612072656769737472617220746f207468652073797374656d2e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e20456d6974732060526567697374726172416464656460206966207375636365737366756c2e202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e6163636f756e7400000000d0d610000a0000000105000000000000e3f812000c00000000000000dad610001a0000000000000000000000000000000000000054311300f4d61000000000000000000004d710000300000000000000000000000000000067a61000070000000102000000000000e3f812000c000000000000001cd7100014000000000000000000000000000000000000005431130030d71000000000000000000040d710000200000000000000000000000000000050d71000060000000105000000000000e3f812000c0000000000000056d7100021000000000000000000000000000000000000005431130078d71000000000000000000088d7100005000000000000000100000000000000b0d710000a0000000000000000000000bad71000360000000000000000000000000000000000000000000000000000000000000054311300f0d71000000000000000000000d810000400000000000000010000004964656e746974794f66526567697374726174696f6e3c42616c616e63654f663c543e3e1200000000000000010000004c00000008da1000480000005431130000000000f2c112003000000028543a3a4163636f756e7449642c2044617461291200000000000000010000004d0000005cd9100058000000b4d9100054000000537562734f662842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e29001200000000000000010000004e000000e7d810002e000000543113000000000015d91000470000005431130000000000f2c1120030000000526567697374726172735665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e1200000000000000010000004f00000020d810005300000073d810002a00000054311300000000009dd810004a0000002054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e2054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e20416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e20546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e207468617420636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e20496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00000000a0db10000c0000000000000057a912000c0000000000000054311300acdb10000000000000000000bcdb1000010000000000000000000000c4db10000c0000000000000057a912000c0000000000000054311300d0db10000000000000000000e0db1000010000000000000000000000e8db1000110000000000000057a912000c0000000000000054311300fcdb100000000000000000000cdc100003000000000000000000000024dc10000e00000000000000cbed120003000000000000005431130034dc1000000000000000000044dc10000100000000000000000000004cdc10001300000000000000cbed120003000000000000005431130060dc1000000000000000000070dc100002000000000000000000000080dc10000d00000000000000cbed120003000000000000005431130090dc10000000000000000000a0dc1000020000000000000042617369634465706f7369741200000000000000010000005000000041df1000360000004669656c644465706f7369741200000000000000010000003e000000f6de10004b0000005375624163636f756e744465706f73697400000012000000000000000100000051000000f7dd10005900000050de10005c000000acde10004a0000004d61785375624163636f756e7473000012000000000000000100000052000000b4dd1000430000004d61784164646974696f6e616c4669656c6473001200000000000000010000005200000023dd1000590000007cdd1000380000004d61785265676973747261727300000012000000000000000100000049000000b0dc10005400000004dd10001f000000204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c6578697479206f662c20652e672e2c207570646174696e67206a756467656d656e74732e204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4f20726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e20546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e2054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f722074686520666163742074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c20626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e2054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e2054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e000000000030e110000b00000000000000fce412000100000000000000000000003ce1100001000000000000000000000044e110000f00000000000000c0f5110002000000000000000000000054e110000100000000000000000000005ce110000e00000000000000c0f511000200000000000000000000006ce1100001000000000000000000000074e11000120000000000000088e1100002000000000000000000000098e11000010000000000000000000000a0e11000140000000000000088e11000020000000000000000000000b4e1100001000000000000000000000066b510000e0000000000000088e11000020000000000000000000000bce11000010000000000000000000000c4e110000e00000000000000d4e11000010000000000000000000000dce11000010000000000000000000000e4e110001000000000000000fc021200030000000000000000000000f4e11000010000000000000000000000fce110001200000000000000fc02120003000000000000000000000010e2100002000000000000000000000020e210001200000000000000fc02120003000000000000000000000034e2100002000000000000004964656e7469747953657400f6e41000440000004964656e74697479436c656172656400b1e41000450000004964656e746974794b696c6c656400006ee41000430000004a756467656d656e74526571756573746564000079e512000900000052cc10000e0000002de41000410000004a756467656d656e74556e726571756573746564f1e310003c000000afe31000420000005265676973747261724164646564000052cc10000e00000084e310002b0000005375624964656e7469747941646465642fe31000550000005375624964656e7469747952656d6f7665640000d5e210004300000018e31000170000005375624964656e746974795265766f6b6564000044e21000470000008be210004a0000002041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d20746865206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d2041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e205c5b7375622c206d61696e2c206465706f7369745c5d2041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d204120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d2041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d2041206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d2041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d2041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d2041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d2041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d4d6178576569676874546f6f4c6f77556e657870656374656454696d65706f696e7457726f6e6754696d65706f696e744e6f54696d65706f696e7453656e646572496e5369676e61746f726965735369676e61746f726965734f75744f664f72646572546f6f4d616e795369676e61746f72696573546f6f4665775369676e61746f726965734e6f417070726f76616c734e6565646564416c7265616479417070726f7665644d696e696d756d5468726573686f6c64416c726561647953746f72656400000000000000b0e610001400000000000000c4e61000020000000000000000000000f4e6100010000000000000000000000074e7100008000000000000007ce710000600000000000000000000000ce810002e00000000000000000000007ce9100010000000000000008ce9100005000000000000000000000004ea100024000000000000000000000024eb10000f0000000000000034eb100004000000000000000000000094eb10001a0000000000000061735f6d756c74695f7468726573686f6c645f310000000059f0100011000000000000002c1a13001100000000000000a80e13000400000000000000ac0e130018000000d5f710005500000054311300000000006c0e13003400000054311300000000002af81000500000007af8100041000000eaf41000230000005431130000000000bbf810002f0000005431130000000000f2eb12000b000000eaf8100047000000fbf610002000000031f9100012000000aef710001300000036ec12000c00000061735f6d756c746900000000176b12000900000000000000a50e1300030000000000000059f0100011000000000000002c1a130011000000000000007df410000f000000000000008cf410002100000000000000a80e13000400000000000000c1f710000a00000000000000cbf710000a00000000000000a1fb12000400000000000000adf410000a00000000000000b7f41000060000009df0100056000000f3f010003f0000005431130000000000bdf410002d000000543113000000000032f110004c0000007ef1100050000000cef110000e00000054311300000000006c0e1300340000005431130000000000ecec10005600000042ed10005100000093ed10001c000000dcf110005700000033f210005500000088f2100036000000eaf410002300000054311300000000000df510004800000055f510004700000054311300000000009cf5100057000000f3f510005600000049f61000380000005431130000000000f2eb12000b00000081f610001500000064ee10003400000098ee100050000000e8ee10005200000096f61000490000003aef1000300000000cf310003600000042f310003f0000006cac10000d000000dff610001c00000081f310004c000000cdf3100024000000f1f310002d000000fbf6100020000000c0ef12000d0000001bf710004900000064f710004a000000aef710001300000036ec12000c000000617070726f76655f61735f6d756c746900000000176b12000900000000000000a50e1300030000000000000059f0100011000000000000002c1a130011000000000000007df410000f000000000000008cf4100021000000000000008cf01000090000000000000095f010000800000000000000adf410000a00000000000000b7f41000060000009df0100056000000f3f010003f000000543113000000000032f110004c0000007ef1100050000000cef110000e00000054311300000000006c0e1300340000005431130000000000ecec10005600000042ed10005100000093ed10001c000000dcf110005700000033f210005500000088f210003600000026ee1000340000005431130000000000bef210004e0000005431130000000000f2eb12000b0000005aee10000a00000064ee10003400000098ee100050000000e8ee1000520000003aef1000300000000cf310003600000042f310003f0000006cac10000d00000081f310004c000000cdf3100024000000f1f310002d000000a9ef100023000000c0ef12000d0000001ef410002f0000004df410003000000036ec12000c00000063616e63656c5f61735f6d756c74690000000000176b12000900000000000000a50e1300030000000000000059f0100011000000000000002c1a130011000000000000006af01000090000000000000073f0100019000000000000008cf01000090000000000000095f010000800000064ec100056000000baec10003200000054311300000000006c0e1300340000005431130000000000ecec10005600000042ed10005100000093ed10001c000000afed10005800000007ee10001f00000026ee1000340000005431130000000000f2eb12000b0000005aee10000a00000064ee10003400000098ee100050000000e8ee1000520000003aef1000300000006cac10000d0000006aef1000220000008cef10001d000000a9ef100023000000c0ef12000d000000ccef10004600000012f010004700000036ec12000c0000002043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c7920666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869732064697370617463682e204d6179206e6f7420626520656d7074792e202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e20666f7220746869732064697370617463682e202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e202d20604f285329602e202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f662020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e202d2053746f726167653a2072656d6f766573206f6e65206974656d2e202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c7320202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c736f746865725f7369676e61746f7269657374696d65706f696e7454696d65706f696e743c543a3a426c6f636b4e756d6265723e63616c6c5f686173685b75383b2033325d20526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e7420696620617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c757320607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f722069732063616e63656c6c65642e202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e204966206974206973206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292e202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c207769746820612020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d20202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d6d617962655f74696d65706f696e744f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e6d61785f7765696768745765696768742049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573652060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f7468657277697365206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642c206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e202d20604f2853202b205a202b2043616c6c29602e202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2e202d2054686520776569676874206f6620746865206063616c6c602e202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d20202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c602920202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029202d20506c75732043616c6c205765696768744f706171756543616c6c73746f72655f63616c6c20496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f6620746865206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e202d204442205765696768743a204e6f6e650000000000f4f91000090000000205020000000000e3f812000c0000000000000095f010000800000000000000fdf9100034000000000000005431130034fa1000000000000000000044fa1000010000000000000000000000000000004cfa100005000000010600000000000095f01000080000000000000051fa10002800000000000000000000000000000000000000543113007cfa10000000000000000000543113000000000000000000000000004d756c7469736967734d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e000000120000000000000001000000230000008cfa10002500000043616c6c73284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e29000000120000000000000001000000230000002054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e000000000000005cfb10000b0000000000000057a912000c000000000000005431130068fb1000000000000000000078fb100002000000000000000000000088fb10000d0000000000000057a912000c000000000000005431130098fb10000000000000000000a8fb1000010000000000000000000000b0fb10000e00000000000000a50e1300030000000000000054311300c0fb10000000000000000000d0fb100001000000000000004465706f7369744261736500120000000000000001000000530000006dfc10005c000000c9fc10001b0000004465706f736974466163746f720000001200000000000000010000004700000018fc1000550000004d61785369676e61746f72696573000012000000000000000100000054000000d8fb10004000000020546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420666f72206120676976656e206d756c74697369672e2054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e20546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f2073746f726520612064697370617463682063616c6c20666f72206c617465722e0000000094fd10000b00000000000000a0fd1000030000000000000000000000b8fd1000010000000000000000000000c0fd10001000000000000000d0fd1000040000000000000000000000f0fd100002000000000000000000000000fe1000100000000000000010fe100005000000000000000000000038fe100001000000000000000000000040fe10001100000000000000d0fd100004000000000000000000000054fe100001000000000000004e65774d756c74697369670079e512000900000079e512000900000020ff10000800000089ff1000470000004d756c7469736967417070726f76616c79e51200090000000aff10001600000079e512000900000020ff10000800000028ff1000330000005bff10002e0000004d756c7469736967457865637574656479e51200090000000aff10001600000079e512000900000020ff100008000000637a12000e000000b4fe1000560000004d756c746973696743616e63656c6c65640000005cfe1000580000002041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d2041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d54696d65706f696e743c426c6f636b4e756d6265723e43616c6c486173682041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d2041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d496e73756666696369656e7450726f706f7365727342616c616e636500000000700011000d0000000000000080001100020000000000000000000000b0001100090000000000000000000000f80011000f00000000000000080111000100000000000000000000002001110009000000000000000000000068011100100000000000000008011100010000000000000000000000780111000a0000000000000070726f706f73655f7370656e640000000000000048b612000500000000000000a00411001800000000000000b80411000b0000000000000085fc1100230000008b0311004b000000d60311004d00000023041100150000005431130000000000f2eb12000b0000000403110013000000380411002d000000650411003b00000036ec12000c00000072656a6563745f70726f706f73616c0000000000800311000b000000000000008765120016000000c50211003f0000005431130000000000f2df11002b0000005431130000000000f2eb12000b000000040311001300000017031100340000004b0311003500000036ec12000c000000617070726f76655f70726f706f73616cc8011100570000001f0211002b00000054311300000000004a0211002c0000005431130000000000f2eb12000b00000076021100140000008a02110024000000ae0211001700000036ec12000c00000020417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e656669636961727920616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e202d20436f6d706c65786974793a204f2831292e202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c7360202d20446257726974653a2060417070726f76616c73602052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e202d20436f6d706c65786974793a204f283129202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e746070726f706f73616c5f69642050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c756520697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468652070726f706f73616c20697320617761726465642e202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460436f6d706163743c42616c616e63654f663c542c20493e3e62656e65666963696172790000000000e45712000d0000000000000000000000357c12000d0000000000000000000000000000000000000000000000000000000000000054311300cc0511000000000000000000dc05110001000000000000000100000000000000db571200090000000105000000000000357c12000d00000000000000e40511002700000000000000000000000000000000000000543113000c06110000000000000000001c0611000100000000000000000000000000000014a61000090000000000000000000000240611001200000000000000000000000000000000000000000000000000000000000000543113003806110000000000000000004806110001000000000000000100000012000000000000000100000022000000ad0611002900000050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e00120000000000000001000000230000008e0611001f0000005665633c50726f706f73616c496e6465783e000012000000000000000100000024000000500611003e0000002050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e2050726f706f73616c7320746861742068617665206265656e206d6164652e204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e000000000000f00711000c00000000000000fc07110007000000000000005431130004081100000000000000000014081100020000000000000000000000240811001300000000000000370811000f000000000000005431130048081100000000000000000058081100010000000000000000000000600811000b00000000000000a9f912000e00000000000000543113006c08110000000000000000007c081100010000000000000000000000840811000400000000000000fc07110007000000000000005431130088081100000000000000000098081100010000000000000000000000a00811000800000000000000a0081100080000000000000054311300a80811000000000000000000b8081100010000000000000050726f706f73616c426f6e645065726d696c6c0012000000000000000100000055000000be09110055000000130a11004400000050726f706f73616c426f6e644d696e696d756d42616c616e63654f663c542c20493e0000120000000000000001000000450000006c091100520000005370656e64506572696f6400120000000000000001000000560000004a091100220000004275726e1200000000000000010000005700000006091100440000004d6f64756c65496412000000000000000100000058000000c008110046000000205468652074726561737572792773206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e2050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e20506572696f64206265747765656e2073756363657373697665207370656e64732e204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e20416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e0000000000d0ce120008000000000000008c0b1100010000000000000000000000940b11000100000000000000000000009c0b11000800000000000000a40b1100010000000000000000000000ac0b1100010000000000000000000000b40b11000700000000000000bc0b1100030000000000000000000000d40b1100010000000000000000000000dc0b11000800000000000000e40b1100020000000000000000000000f40b1100010000000000000000000000fc0b11000500000000000000a40b1100010000000000000000000000040c11000100000000000000000000000c0c11000800000000000000a40b1100010000000000000000000000140c1100020000000000000000000000480312000700000000000000a40b1100010000000000000000000000240c11000100000000000000357c12000d000000c40d1100210000005370656e64696e67d5d1120007000000750d11004f0000004177617264656400357c12000d000000d5d112000700000079e51200090000002e0d11004700000052656a6563746564357c12000d000000d5d1120007000000e50c1100490000004275726e74000000b90c11002c000000526f6c6c6f766572580c11004c000000a40c1100150000002c0c11002c00000020536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e205c5b6275646765745f72656d61696e696e675c5d20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d20536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d204e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d0000002c0713005500000069000000010000002813130056000000ef010000010000009013130056000000c10000000100000000000000a9b510001200000000000000d80f11000100000000000000000000008b3311000800000000000000e00f1100010000000000000000000000a1b510000800000000000000e80f110001000000000000000000000097b510000a00000000000000f00f11000100000000000000000000008db510000a00000000000000f80f110001000000000000000000000083b510000a000000000000000010110001000000000000000000000074b510000f000000000000000810110001000000000000000000000066b510000e000000000000001010110001000000000000000000000056b510001000000000000000181011000100000000000000000000004ab510000c00000000000000201011000100000000000000000000003db510000d000000000000002810110001000000000000000000000030b510000d00000000000000301011000100000000000000000000001fb510001100000000000000381011000100000000000000000000007a5011000e000000000000004010110001000000000000000000000019b51000060000000000000048101100010000000000000000000000bbb510000800000000000000501011000100000000000000c911110018000000b4111100150000009f11110015000000921111000d00000082111100100000006f111100130000005d111100120000004c11110011000000391111001300000023111100160000000c11110017000000f01011001c000000b51011003b000000981011001d0000007b1011001d0000005810110023000000205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e2053656e646572206973206e6f742061207375622d6163636f756e742e204163636f756e7420494420697320616c7265616479206e616d65642e204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e20546f6f206d616e79206164646974696f6e616c206669656c64732e205468652074617267657420697320696e76616c69642e2054686520696e64657820697320696e76616c69642e20496e76616c6964206a756467656d656e742e204a756467656d656e7420676976656e2e20537469636b79206a756467656d656e742e204e6f206964656e7469747920666f756e642e20466565206973206368616e6765642e20456d70747920696e6465782e204163636f756e742069736e2774206e616d65642e204163636f756e742069736e277420666f756e642e20546f6f206d616e7920737562732d6163636f756e74732e00000000000000e0e5100010000000000000006c131100010000000000000000000000d1e510000f0000000000000074131100010000000000000000000000c0e5100011000000000000007c131100010000000000000000000000afe510001100000000000000841311000100000000000000000000009de5100012000000000000008c13110001000000000000000000000088e5100015000000000000009413110001000000000000000000000075e5100013000000000000009c1311000100000000000000000000008b3311000800000000000000a41311000100000000000000000000007ea610000800000000000000ac1311000100000000000000000000006ae510000b00000000000000b41311000100000000000000000000005ce510000e00000000000000bc13110001000000000000000000000049e510001300000000000000c41311000100000000000000000000003ae510000f00000000000000cc131100010000000000000000000000f0e510000d00000000000000d41311000100000000000000c316110020000000971611002c0000006f16110028000000441611002b000000181611002c000000d415110044000000901511004400000058151100380000000c1511004c000000c414110048000000781411004c0000003a1411003e0000000514110035000000dc1311002900000020546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e20546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e20412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e20546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e2054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e2043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e2043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e205468726573686f6c64206d7573742062652032206f7220677265617465722e0000000000d0ff10001c000000000000001c1711000100000000000000000000004ab510000c00000000000000241711000100000000000000511711001f0000002c17110025000000204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e2050726f706f73657227732062616c616e636520697320746f6f206c6f772e2813130056000000020300001d0000002813130056000000cc03000036000000a0171100520000005c0100000f0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f626162652f7372632f6c69622e7273000004181100610000002e000000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f617574686f726974792d646973636f766572792f7372632f6c69622e72734c6f6f6b7570007c18110057000000c0000000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f7363686564756c65722f7372632f6c69622e72734167656e6461000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004261626545717569766f636174696f6e736c6f74206e756d626572206973207536343b2069742073686f756c642072656c61746520696e20736f6d652077617920746f2077616c6c20636c6f636b2074696d653b20696620753634206973206e6f7420656e6f7567682077652073686f756c6420637261736820666f72207361666574793b207165642e0000a017110052000000640200000e000000a017110052000000660200003b00000054696d657374616d7020736c6f74206d757374206d61746368206043757272656e74536c6f746000a0171100520000003e0300000900000065706f636820696e64696365732077696c6c206e6576657220726561636820325e3634206265666f726520746865206465617468206f662074686520756e6976657273653b20716564000000a017110052000000060200000e000000a0171100520000000e0200000e00000065706f636820696e646578206973207536343b20697420697320616c77617973206f6e6c7920696e6372656d656e746564206279206f6e653b20696620753634206973206e6f7420656e6f7567682077652073686f756c6420637261736820666f72207361666574793b207165642e00a0171100520000004b0200004600000045706f6368436f6e66696720697320696e697469616c697a656420696e2067656e657369733b207765206e65766572206074616b6560206f7220606b696c6c602069743b20716564a0171100520000005702000029000000a017110052000000440200002d000000a017110052000000a70000000f00000000000000542f12001300000000000000241c1100020000000000000000000000541c1100040000000000000000000000b82f12001c00000000000000241c1100020000000000000000000000741c1100080000000000000000000000b41c11001200000000000000c81c1100010000000000000000000000e01c11000400000000000000000000002034120012000000000000000a1f11001c000000000000005c3412000f000000000000006b34120010000000341e110043000000771e110042000000b91e110044000000fd1e11000d000000341e110043000000771e110042000000b91e110044000000fd1e11000d00000046331200440000008a33120046000000d033120046000000163412000a000000706c616e5f636f6e6669675f6368616e67650000000000001a1e11000600000000000000201e110014000000001d110058000000581d110055000000ad1d110057000000041e11001600000020506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e20746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e204d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164206e6f74206265656e20656e6163746564207965742e636f6e6669674e657874436f6e66696744657363726970746f72205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e45717569766f636174696f6e50726f6f663c543a3a4865616465723e000000000000fa4511000a0000000000000000000000e8f21200030000000000000000000000000000000000000000000000000000000000000054311300a82411000000000000000000b824110001000000000000000100000000000000a54511000b0000000000000000000000c0241100270000000000000000000000000000000000000000000000000000000000000054311300e82411000000000000000000f824110001000000000000000100000000000000e34511000b0000000000000000000000002511000400000000000000000000000000000000000000000000000000000000000000543113000425110000000000000000001425110002000000000000000100000000000000c94511000b0000000000000000000000002511000400000000000000000000000000000000000000000000000000000000000000543113000425110000000000000000002425110001000000000000000100000000000000424611000a00000000000000000000002c251100160000000000000000000000000000000000000000000000000000000000000054311300442511000000000000000000542511000a0000000000000001000000000000002a461100180000000000000000000000201e1100140000000000000000000000000000000000000000000000000000000000000054311300a42511000000000000000000b425110001000000000000000000000000000000974511000e00000000000000000000002c251100160000000000000000000000000000000000000000000000000000000000000054311300442511000000000000000000bc25110001000000000000000100000000000000ba4511000f0000000000000000000000c0241100270000000000000000000000000000000000000000000000000000000000000054311300e82411000000000000000000c425110001000000000000000100000000000000ee4511000c0000000000000000000000cbed1200030000000000000000000000000000000000000000000000000000000000000054311300cc2511000000000000000000dc25110009000000000000000100000000000000972d1200110000000105000000000000cbed12000300000000000000242611001b00000000000000000000000000000000000000543113004026110000000000000000005026110001000000000000000100000000000000174611000b0000000000000000000000582611000f0000000000000000000000000000000000000000000000000000000000000054311300682611000000000000000000782611000200000000000000000000000000000004461100130000000000000000000000582611000f00000000000000000000000000000000000000000000000000000000000000543113008826110000000000000000009826110003000000000000000100000000000000b04511000a000000000000000000000027371200200000000000000000000000000000000000000000000000000000000000000054311300b02611000000000000000000c02611000500000000000000010000000000000022461100080000000000000000000000a9f912000e0000000000000000000000000000000000000000000000000000000000000054311300cc2511000000000000000000e8261100050000000000000001000000000000008c4511000b0000000000000000000000102711001600000000000000000000000000000000000000000000000000000000000000543113002827110000000000000000003827110001000000000000000000000000000000d44511000f00000000000000000000001027110016000000000000000000000000000000000000000000000000000000000000005431130028271100000000000000000040271100020000000000000000000000120000000000000001000000590000005c301100150000005665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e001200000000000000010000003f000000413011001b000000536c6f7412000000000000000100000059000000df2f11003e0000001d30110024000000ca2f1100150000007363686e6f72726b656c3a3a52616e646f6d6e65737300001200000000000000010000005a000000042e11002e0000005431130000000000322e11000b00000054311300000000003d2e1100410000007e2e11003e000000bc2e110045000000012f110045000000462f110041000000872f11004300000012000000000000000100000023000000ac2d110058000000952d1100170000007d2d11001800000012000000000000000100000022000000382c11001f0000005431130000000000572c11003d000000942c110040000000d42c1100250000005431130000000000f92c11003b000000342d110042000000762d1100070000005665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e001200000000000000010000003f000000f32b1100450000004d6179626552616e646f6d6e65737300120000000000000001000000230000006c2b110040000000ac2b110047000000120000000000000001000000230000007b2a110057000000d22a110054000000262b1100460000001200000000000000010000005b000000212911005700000078291100050000007d29110052000000cf29110056000000252a110056000000362811003600000054311300000000006c28110045000000b128110044000000f52811002c0000004261626545706f6368436f6e66696775726174696f6e000012000000000000000100000023000000d527110061000000502711004b0000009b2711003a0000002054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e67652028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e2054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e2067656e657369732e20486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e6564207570206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636b20657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e6420604e602e204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f6620656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e20736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e2054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207468617420696e636c756465732074686520565246206f75747075742067656e657261746564206174207468697320626c6f636b2e2054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c657373207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e2054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d6560206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e2054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e2057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f2060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e20576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572792065706f63682e204e6578742065706f636820617574686f7269746965732e204e6578742065706f63682072616e646f6d6e6573732e2050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e20232053656375726974792054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e792063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d626572732074686174207468697320286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e20626520757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e2043757272656e7420736c6f74206e756d6265722e2054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2043757272656e742065706f636820617574686f7269746965732e2043757272656e742065706f636820696e6465782e00000000000000e43011000d00000000000000e8f21200030000000000000054311300f43011000000000000000000043111000300000000000000000000001c31110011000000000000003347120009000000000000005431130030311100000000000000000040311100050000000000000045706f63684475726174696f6e0000001200000000000000010000005c000000983211003b000000d33211004600000019331100480000004578706563746564426c6f636b54696d650000001200000000000000010000005d0000006831110041000000a931110044000000ed311100410000002e32110042000000703211002800000020546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e6720626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f7574207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f74206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e2061667465722074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e0000007c18110057000000b300000001000000546172676574426c6f636b4e756d626572496e506173744e6f74466f756e644661696c6564546f5363686564756c6552657363686564756c654e6f4368616e676500000000000000a8fc11000800000000000000c0341100040000000000000000000000203511000a000000000000000000000070351100060000000000000078351100020000000000000000000000a83511000a0000000000000000000000f83511000e0000000000000008361100050000000000000000000000803611000a0000000000000000000000d03611000c00000000000000dc361100010000000000000000000000f43611000a0000000000000000000000443711000e0000000000000054371100040000000000000000000000b4371100050000000000000000000000dc3711001400000000000000f037110005000000000000000000000068381100050000000000000000000000e93a11000400000000000000a9f912000e00000000000000d83811000e00000000000000e638110028000000000000000e3911000800000000000000163911001200000000000000a80e13000400000000000000ac0e1300180000004b3b11001d0000005431130000000000f2eb12000b0000008839110028000000683b110024000000c0ef12000d000000383b1100130000008c3b110014000000a03b11004f00000036ec12000c00000063616e63656c000000000000e93a11000400000000000000a9f912000e00000000000000a00e13000500000000000000cbed120003000000ed3a1100260000005431130000000000f2eb12000b0000008839110028000000133b110025000000c0ef12000d000000383b110013000000f03911001c0000000c3a11005000000036ec12000c0000007363686564756c655f6e616d6564000000000000d1381100020000000000000042ec12000700000000000000e93a11000400000000000000a9f912000e00000000000000d83811000e00000000000000e638110028000000000000000e3911000800000000000000163911001200000000000000a80e13000400000000000000ac0e1300180000005c3a1100170000005431130000000000f2eb12000b0000008839110028000000733a110023000000c0ef12000d000000d53911001b000000f03911001c000000963a11005300000036ec12000c00000063616e63656c5f6e616d656400000000d1381100020000000000000042ec120007000000693911001f0000005431130000000000f2eb12000b0000008839110028000000b039110025000000c0ef12000d000000d53911001b000000f03911001c0000000c3a11005000000036ec12000c0000007363686564756c655f6166746572000000000000d33811000500000000000000a9f912000e00000000000000d83811000e00000000000000e638110028000000000000000e3911000800000000000000163911001200000000000000a80e13000400000000000000ac0e130018000000283911002b0000005431130000000000f2eb12000b000000533911001600000036ec12000c0000007363686564756c655f6e616d65645f616674657200000000d1381100020000000000000042ec12000700000000000000d33811000500000000000000a9f912000e00000000000000d83811000e00000000000000e638110028000000000000000e3911000800000000000000163911001200000000000000a80e13000400000000000000ac0e13001800000090381100250000005431130000000000f2eb12000b000000b53811001c00000036ec12000c000000205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e2053616d65206173205b607363686564756c655f6e616d6564605d2e696461667465726d617962655f706572696f6469634f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e7072696f726974797363686564756c653a3a5072696f7269747920416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e2053616d65206173205b607363686564756c65605d2e2043616e63656c2061206e616d6564207363686564756c6564207461736b2e202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57320202020202d20526561643a204167656e64612c204c6f6f6b757020202020202d2057726974653a204167656e64612c204c6f6f6b7570202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73205363686564756c652061206e616d6564207461736b2e202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b573202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c737768656e2043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57320202020202d20526561643a204167656e646120416e6f6e796d6f75736c79207363686564756c652061207461736b2e202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57320202020202d2057726974653a204167656e6461202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c730000000000d3181100060000000105000000000000a9f912000e00000000000000f83c11005c0000000000000000000000000000000000000054311300543d11000000000000000000643d1100010000000000000001000000000000006518110006000000010500000000000042ec120007000000000000006c3d11001b0000000000000000000000000000000000000054311300883d11000000000000000000983d1100010000000000000000000000000000009cbe12000e0000000000000000000000aabe1200080000000000000000000000000000000000000000000000000000000000000054311300a03d11000000000000000000c4be12000300000000000000010000005665633c4f7074696f6e3c5363686564756c65643c3c5420617320436f6e6669673e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e1200000000000000010000003f000000f03d1100530000005461736b416464726573733c543a3a426c6f636b4e756d6265723e0012000000000000000100000023000000b03d1100400000001200000000000000010000005e000000204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e0000000000c83e11000900000000000000d43e1100020000000000000000000000e43e1100010000000000000000000000ec3e11000800000000000000d43e1100020000000000000000000000f43e1100010000000000000000000000fc3e11000a00000000000000083f1100030000000000000000000000203f110001000000000000005363686564756c656400000085d312000b000000cbed1200030000009e3f11002500000043616e63656c65647a3f110024000000446973706174636865640000533f1100180000006b3f11000f000000637a12000e000000283f11002b000000204469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d5461736b416464726573733c426c6f636b4e756d6265723e4f7074696f6e3c5665633c75383e3e2043616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d205363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d00120000000000000001000000210000000440110061000000ab010000290000001200000000000000010000005f0000000440110061000000ae010000340000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f6e706f732d656c656374696f6e732f7372632f6c69622e7273766563746f72207769746820706f736974697665206c656e6774682077696c6c20686176652061206d61783b20716564000000dc7c120067000000780000000e0000006974657261746f72207769746820706f736974697665206c656e6774682077696c6c20686176652061206d696e3b207165640000dc7c1200670000007c0000000e000000dc7c120067000000890000002c000000dc7c120067000000950000002b0000006c656e677468206f6620656c65637465645f65646765732069732067726561746572207468616e206f7220657175616c20323b206c6173745f696e64657820696e64657820697320617420746865206d696e696d756d20656c65637465645f65646765732e6c656e2829202d20313b20696e6465782069732077697468696e2072616e67653b207165640000dc7c1200670000009f00000034000000dc7c120067000000a200000011000000dc7c120067000000ac0000002c000000dc7c120067000000b80000002c000000dc7c12006700000055000000210000000440110061000000a30100002c000000dc7c1200670000006d0000002200000004401100610000002303000025000000044011006100000023030000360000000440110061000000290300002f00000000000000933311001000000000000000a84211000100000000000000000000008b3311000800000000000000b0421100010000000000000000000000743311001700000000000000b8421100010000000000000000000000a33311001200000000000000c042110001000000000000004f4311001a0000002f43110020000000054311002a000000c84211003d0000002052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e20476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e2043616e6e6f742066696e6420746865207363686564756c65642063616c6c2e204661696c656420746f207363686564756c6520612063616c6c000000000000005f2e12001800000000000000d04d1200010000000000000000000000772e12001800000000000000c84d1200010000000000000000000000ba2e12001600000000000000d84d1200010000000000000050726576696f7573206d617463682061726d206d61746368657320616e7974696e67206c657373207468616e20325e33303b207165640000284411005c0000005701000011000000844411003d0000000000000000000000284411005c0000005e010000110000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e302e302f7372632f636f6d706163742e7273736869667465642073756666696369656e74206269747320726967687420746f206c656164206f6e6c79206c656164696e67207a65726f733b20716564000000284411005c00000083010000110000000000000000000000000000000000000000000000284411005c0000008a01000011000000084511005c00000034000000120000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f72756e74696d652f7372632f63757276652e72734368617267655472616e73616374696f6e5061796d656e7444656665727265644f6666656e63657345706f6368436f6e6669674e65787452616e646f6d6e657373417574686f72697469657345706f636853746172744e657874417574686f72697469657343757272656e74536c6f744e65787445706f6368436f6e66696747656e65736973536c6f745365676d656e74496e64657845706f6368496e646578417574686f7256726652616e646f6d6e657373496e697469616c697a65644c6174656e65737350656e64696e6745706f6368436f6e6669674368616e676552616e646f6d6e657373457261456c656374696f6e537461747573536e617073686f7456616c696461746f727351756575656453636f7265517565756564456c6563746564497343757272656e7453657373696f6e46696e616c536e617073686f744e6f6d696e61746f727300000000000010481100070000000105000000000000174811000d000000000000002448110034000000000000000000000000000000000000005431130058481100000000000000000068481100010000000000000000000000000000007c451100100000000000000000000000704811001900000000000000000000000000000000000000000000000000000000000000543113008c48110000000000000000009c48110002000000000000000100000000000000ac481100160000000205050000000000c24811000400000000000000c64811000e00000000000000d4481100120000000000000054311300e84811000000000000000000f84811000100000000000000010000000000000000491100120000000105000000000000c2481100040000000000000042ec1200070000000000000000000000000000000000000054311300144911000000000000000000244911000600000000000000010000005265706f7274735265706f727449644f663c543e4f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e12000000000000000100000060000000274b1100520000005665633c44656665727265644f6666656e63654f663c543e3e00000012000000000000000100000061000000bd4a110059000000164b110011000000436f6e63757272656e745265706f727473496e6465784b696e644f706171756554696d65536c6f745665633c5265706f727449644f663c543e3e000012000000000000000100000062000000734a11004a0000005265706f72747342794b696e64496e64657800001200000000000000010000006300000054491100440000005431130000000000984911002f0000005431130000000000c749110052000000194a11005a00000020456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f6620646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e204465666572726564207265706f72747320746861742068617665206265656e2072656a656374656420627920746865206f6666656e63652068616e646c657220616e64206e65656420746f206265207375626d69747465642061742061206c617465722074696d652e20546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e696d2d6f6e6c696e653a6f66666c696e6772616e6470613a65717569766f6361626162653a65717569766f636174696f000000000000005c4c11001100000000000000000000006d4c11000a0000000000000000000000000000000000000000000000000000000000000054311300784c1100000000000000000054311300000000000000000001000000000000009cbe12000e0000000000000000000000aabe1200080000000000000000000000000000000000000000000000000000000000000054311300884c11000000000000000000543113000000000000000000010000004e6578744665654d756c7469706c6965724d756c7469706c69657200120000000000000001000000640000001200000000000000010000005e00000000000000084d1100120000000000000057a912000c00000000000000543113001c4d110000000000000000002c4d1100010000000000000000000000344d11000b000000000000003f4d1100290000000000000054311300684d11000000000000000000784d110001000000000000005472616e73616374696f6e42797465466565000012000000000000000100000065000000c34d110043000000576569676874546f4665655665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e12000000000000000100000066000000804d1100430000002054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e0000184e11005600000074000000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f6f6666656e6365732f7372632f6c69622e7273000012000000000000000100000021000000dc7c120067000000650000001e000000984e11001a0000004552524f523a20436f7272757074656420737461746520617420457261735374616b657273000000647c1200660000006c0000001d000000647c1200660000006c00000039000000647c120066000000a70000001f00000056616c696461746f72730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000784f11005d00000021020000330000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f737570706f72742f7372632f73746f726167652f6d6f642e7273436865636b576569676874426164206d616e6461746f727945726173526577617264506f696e747356616c696461746f72536c617368496e4572614e6f6d696e61746f72536c617368496e4572615370616e536c617368536c617368696e675370616e73546f6f4d616e79546172676574734261645374617465496e636f7272656374536c617368696e675370616e73496e636f7272656374486973746f72794465707468416c7265616479436c61696d65644e6f74536f72746564416e64556e69717565496e76616c69644e756d6265724f664e6f6d696e6174696f6e73496e76616c6964457261546f52657761726446756e6465645461726765744e6f556e6c6f636b4368756e6b4e6f4d6f72654368756e6b73496e73756666696369656e7456616c7565496e76616c6964536c617368496e6465784475706c6963617465496e646578456d70747954617267657473416c7265616479506169726564416c7265616479426f6e6465644e6f7453746173684e6f74436f6e74726f6c6c65724261645461726765744e6f6d696e61746f72734c6564676572000000000064551100040000000000000068551100030000000000000000000000b0551100160000000000000000000000605611000a000000000000006c561100010000000000000000000000845611001500000000000000000000002c5711000600000000000000345711000100000000000000000000004c5711002000000000000000000000004c581100110000000000000060581100010000000000000000000000785811001f00000000000000000000007059110008000000000000007859110001000000000000000000000090591100110000000000000000000000185a11000800000000000000205a1100010000000000000000000000385a1100130000000000000000000000d05a1100050000000000000054311300000000000000000000000000d85a1100110000000000000000000000605b110009000000000000006c5b1100010000000000000000000000845b1100100000000000000000000000045c11000e00000000000000145c11000100000000000000000000002c5c1100100000000000000000000000ac5c11001300000000000000c05c1100010000000000000000000000d85c1100080000000000000000000000185d11001800000000000000305d1100010000000000000000000000485d1100070000000000000000000000805d11001500000000000000985d1100010000000000000000000000b05d1100070000000000000000000000e85d11000d0000000000000054311300000000000000000000000000f85d1100090000000000000000000000405e11000d0000000000000054311300000000000000000000000000505e11000a0000000000000000000000a05e11001100000000000000b45e1100010000000000000000000000cc5e11000800000000000000000000000c5f11000d000000000000001c5f11000200000000000000000000004c5f11000a00000000000000000000009c5f1100140000000000000054311300000000000000000000000000b05f1100080000000000000000000000f05f1100150000000000000008601100020000000000000000000000386011000d0000000000000000000000a06011000e00000000000000b0601100020000000000000000000000e06011001c0000000000000000000000c0611100060000000000000034571100010000000000000000000000c86111000e00000000000000000000003862110011000000000000004c6211000200000000000000000000007c621100150000000000000000000000246311000a000000000000001c5f1100020000000000000000000000306311000f0000000000000000000000a86311000400000000000000ac631100010000000000000000000000c46311000d00000000000000626f6e6400000000407911000a0000000000000085fc1100230000000000000048b6120005000000000000004db612001500000000000000a87911000500000000000000ad7911001f000000f4871100590000004d8811002100000054311300000000006e8811004c0000005431130000000000ba88110049000000543113000000000053871100100000005431130000000000f2eb12000b00000003891100350000006387110008000000388911001a00000054311300000000005289110054000000a689110050000000f6891100130000008b7711000d000000c15f12000b000000098a11004c000000558a11003800000036ec12000c000000626f6e645f6578747261000000000000e68711000e000000000000004db61200150000009785110059000000f08511000d0000005431130000000000fd851100540000005186110059000000aa861100130000005431130000000000bd86110058000000158711003e000000543113000000000053871100100000005431130000000000f2eb12000b000000287811003a00000063871100080000000d851100100000006b8711000d000000c15f12000b0000007887110045000000bd8711002900000036ec12000c000000756e626f6e6400000000000048b6120005000000000000004db612001500000028811100550000007d81110040000000bd811100490000005431130000000000068211005200000058821100300000005431130000000000888211004f000000d78211004f000000268311003f00000054311300000000009c64110055000000fe7911004300000054311300000000006583110012000000543113000000000077831100260000005431130000000000f2eb12000b0000009d831100500000006278110026000000ed83110059000000468411005c000000a284110054000000f6841100170000000d85110010000000ba7811000b0000008b7711000d000000c15f12000b0000001d8511004700000064851100290000008d8511000a00000077697468647261775f756e626f6e646564000000000000009d7511001200000000000000cbed120003000000147d11004b00000054311300000000005f7d11004d000000ac7d11001300000054311300000000009c64110055000000fe791100430000005431130000000000bf7d1100130000005431130000000000d27d11001b0000005431130000000000f2eb12000b000000ed7d110055000000427e110051000000937e11003d000000d07e11005e0000008878110032000000756d1100100000002e7f110042000000707f110008000000787f110049000000c17f11002a000000eb7f110006000000f17f11005100000042801100230000006580110054000000b98011002c000000c56811001d000000e58011004300000036ec12000c00000076616c696461746500000000017d11000500000000000000067d11000e000000837c11003a0000005431130000000000656411003700000054311300000000009c64110055000000fe791100430000005431130000000000f2eb12000b000000287811003a00000062781100260000008878110032000000157011000c0000008b7711000d000000c15f12000b000000bd7c110024000000e17c11002000000036ec12000c0000006e6f6d696e617465000000007c7c110007000000000000006366110028000000a17a1100440000005431130000000000e57a110054000000bb6c11002300000054311300000000009c64110055000000fe791100430000005431130000000000f2eb12000b000000397b11004c000000857b110040000000c57b110036000000787911000a000000fb7b11000d000000087c110021000000c15f12000b000000297c1100320000005b7c11002100000036ec12000c0000006368696c6c000000cc791100320000005431130000000000656411003700000054311300000000009c64110055000000fe791100430000005431130000000000f2eb12000b000000287811003a000000417a1100150000008878110032000000567a1100090000008b7711000d000000c15f12000b0000005f7a110022000000817a11002000000036ec12000c0000007365745f706179656500000000000000a87911000500000000000000ad7911001f0000004a7911002e0000005431130000000000656411003700000054311300000000009c641100550000005431130000000000f2eb12000b000000287811003a00000062781100260000008878110032000000787911000a0000004f7411000f000000c0ef12000d0000008279110013000000957911001300000036ec12000c0000007365745f636f6e74726f6c6c6572000000000000407911000a0000000000000085fc110023000000af77110024000000543113000000000065641100370000005431130000000000d3771100550000005431130000000000f2eb12000b000000287811003a00000062781100260000008878110032000000ba7811000b0000008b7711000d000000c15f12000b000000c57811003d000000027911003e00000036ec12000c0000007365745f76616c696461746f725f636f756e740000000000871913000300000000000000d2a012000c000000667711002500000054311300000000002d741100220000005431130000000000f2eb12000b0000008b7711000d000000987711001700000036ec12000c000000696e6372656173655f76616c696461746f725f636f756e74000000005c7711000a00000000000000d2a012000c000000317711002b00000054311300000000002d741100220000005431130000000000f2eb12000b0000000a7711002100000036ec12000c0000007363616c655f76616c696461746f725f636f756e74000000000000002b7711000600000000000000c1ef110007000000d57611003500000054311300000000002d741100220000005431130000000000f2eb12000b0000000a7711002100000036ec12000c000000666f7263655f6e6f5f65726173000000a97611002c00000054311300000000002d741100220000005431130000000000f2eb12000b00000088761100100000004f7411000f0000005e7411001200000036ec12000c000000666f7263655f6e65775f6572610000000d76110053000000607611002800000054311300000000002d741100220000005431130000000000f2eb12000b00000088761100100000004f7411000f000000987611001100000036ec12000c0000007365745f696e76756c6e657261626c657300000000000000007611000d000000000000002c1a130011000000af7511003300000054311300000000002d741100220000005431130000000000f2eb12000b000000e275110007000000e97511001700000036ec12000c000000666f7263655f756e7374616b6500000000000000987511000500000000000000e3f812000c000000000000009d7511001200000000000000cbed120003000000707411004300000054311300000000002d741100220000005431130000000000f2eb12000b000000b37411003b000000ee7411002e0000001c751100610000007d7511001b00000036ec12000c000000666f7263655f6e65775f6572615f616c77617973ec7311004100000054311300000000002d741100220000005431130000000000f2eb12000b0000004f7411000f0000005e7411001200000036ec12000c00000063616e63656c5f64656665727265645f736c617368000000000000008b72110003000000000000008e7211000800000000000000d77311000d00000000000000e47311000800000096721100260000005431130000000000bc7211002d0000005431130000000000e9721100410000005431130000000000f2eb12000b0000002a731100150000003f7311002e0000006d73110035000000a27311001a000000bc7311001b00000036ec12000c0000007061796f75745f7374616b6572730000000000007c7211000f00000000000000e3f812000c000000000000008b72110003000000000000008e72110008000000f36d1100440000005431130000000000376e1100530000008a6e11004a000000d46e11004d0000005431130000000000216f110056000000776f11001e0000005431130000000000956f1100400000005431130000000000f2eb12000b000000d56f110040000000f40d120031000000157011000c0000002170110047000000687011000800000070701100220000009270110031000000c15f12000b000000c37011004a0000000d7111004b00000058711100440000009c711100360000005431130000000000d271110054000000267211005600000036ec12000c0000007265626f6e6400002e6c1100380000005431130000000000666c110055000000bb6c1100230000005431130000000000f2eb12000b000000de6c110035000000136d110025000000386d11003d000000756d110010000000c0ef12000d000000856d110040000000c56d11002e00000036ec12000c0000007365745f686973746f72795f646570746800000000000000fa6b110011000000000000000b6c110011000000000000001c6c11001200000000000000d2a012000c000000e26811004c0000002e691100200000005431130000000000355f12000c0000004e691100440000009269110052000000e469110051000000356a110051000000866a1100280000005431130000000000ae6a1100150000005431130000000000f2eb12000b000000c36a110038000000fb6a11000f000000c0ef12000d0000000a6b110028000000326b11001c0000004e6b11004c0000009a6b11006000000036ec12000c000000726561705f737461736800008b66110058000000e3661100580000003b6711003e0000005431130000000000796711002400000054311300000000009d671100400000005431130000000000f2eb12000b000000dd67110049000000c15f12000b00000026681100360000005c68110069000000c56811001d00000036ec12000c0000006b69636b00000000791b1300030000000000000063661100280000002c641100390000005431130000000000656411003700000054311300000000009c64110055000000f164110052000000436511002600000054311300000000006965110054000000bd651100310000005431130000000000ee65110056000000446611001f0000002052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e20416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e2054686520636f6e74726f6c6c6572206163636f756e742073686f756c6420726570726573656e7420612076616c696461746f722e202d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f7220776869636820202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e204e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f20626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e5665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e6520616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e20546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e20436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b73202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205374617368204163636f756e742c204c6f636b73202d2057726974657320456163683a205370616e536c617368202a2053205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e207768656e2060486973746f727944657074686020697320726564756365642e202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e20202020546869732073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642020202065726120686973746f72792e204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792020202060526f6f746020746f207265706f727420616e206163637572617465206e756d6265722e204f726967696e206d75737420626520726f6f742e202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d2033202d205765696768743a204f28452920202020202d2052656164733a2043757272656e74204572612c20486973746f727920446570746820202020202d205772697465733a20486973746f727920446570746820202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f72507265667320202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c2045726173537461727453657373696f6e496e6465786e65775f686973746f72795f6465707468436f6d706163743c457261496e6465783e5f6572615f6974656d735f64656c65746564205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e20546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722c20616e642069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602e202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d20202020202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c204c6f636b732c205b4f726967696e204163636f756e745d20202020202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657220506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f20202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e20546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966206974206973206e6f74206f6e65206f6620746865207374616b6572732e20546869732063616e206f6e6c792062652063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292e202d2d2d2d2d2d2d2d2d2d2d204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f7229205765696768743a202d205265776172642044657374696e6174696f6e205374616b65643a204f284e29202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e29202d20526561643a20457261456c656374696f6e5374617475732c2043757272656e744572612c20486973746f727944657074682c204572617356616c696461746f725265776172642c202020202020202020457261735374616b657273436c69707065642c2045726173526577617264506f696e74732c204572617356616c696461746f725072656673202838206974656d7329202d205265616420456163683a20426f6e6465642c204c65646765722c2050617965652c204c6f636b732c2053797374656d204163636f756e74202835206974656d7329202d20577269746520456163683a2053797374656d204163636f756e742c204c6f636b732c204c6564676572202833206974656d73292020204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e202020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e76616c696461746f725f7374617368657261457261496e6465782043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e2043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e20506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e20436f6d706c65786974793a204f2855202b2053292077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d3130303020616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e202d20526561643a20556e6170706c69656420536c6173686573202d2057726974653a20556e6170706c69656420536c6173686573736c6173685f696e64696365735665633c7533323e20466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e20546865206469737061746368206f726967696e206d75737420626520526f6f742e202d205765696768743a204f283129202d2057726974653a20466f72636545726120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f7665642052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b73205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c204163636f756e742c204c6f636b732057726974657320456163683a205370616e536c617368202a205373746173686e756d5f736c617368696e675f7370616e7320536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e202d204f285629202d2057726974653a20496e76756c6e657261626c6573696e76756c6e657261626c657320466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c20626520726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e202d204e6f20617267756d656e74732e202d20577269746520466f72636545726120466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e2053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e666163746f7220496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e6164646974696f6e616c20536574732074686520696465616c206e756d626572206f662076616c696461746f72732e205765696768743a204f2831292057726974653a2056616c696461746f7220436f756e74202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e202d2d2d2d2d2d2d2d2d2d202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572636f6e74726f6c6c6572202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e202d2d2d2d2d2d2d2d2d20202020202d20526561643a204c656467657220202020202d2057726974653a205061796565706179656552657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e20416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e202d20436f6e7461696e73206f6e6520726561642e202d2d2d2d2d2d2d2d202d20526561643a20457261456c656374696f6e5374617475732c204c6564676572202d2057726974653a2056616c696461746f72732c204e6f6d696e61746f7273204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546869732063616e206f6e6c792062652063616c6c6564207768656e202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e292077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292e202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e205765696768743a204f284e29207768657265204e20697320746865206e756d626572206f662074617267657473202d2052656164733a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e7420457261202d205772697465733a2056616c696461746f72732c204e6f6d696e61746f727374617267657473204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e202d20526561643a2045726120456c656374696f6e205374617475732c204c6564676572202d2057726974653a204e6f6d696e61746f72732c2056616c696461746f7273707265667356616c696461746f7250726566732052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f2077686174657665722069742077616e74732e20456d697473206057697468647261776e602e2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e2020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c2077686963682069732020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602e20436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f7665205570646174653a202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745d202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572204b696c6c3a202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c20426f6e6465642c20536c617368696e67205370616e732c205b4f726967696e2020204163636f756e745d2c204c6f636b732c2042616c616e63654f66207374617368202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c2020205b4f726967696e204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173682e204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e6420706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e20543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360292063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e65656420746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e20456d6974732060556e626f6e646564602e2053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e6365602920202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652e202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c6564207669612020206077697468647261775f756e626f6e646564602e202d204f6e6520444220656e7472792e202d20526561643a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e744572612c204c6f636b732c2042616c616e63654f662053746173682c202d2057726974653a204c6f636b732c204c65646765722c2042616c616e63654f662053746173682c203c2f7765696768743e2041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757020666f72207374616b696e672e20557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e20556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c657220616e642069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e20456d6974732060426f6e646564602e202d204f2831292e202d2d2d2d2d2d2d2d2d2d2d2d202d20526561643a2045726120456c656374696f6e205374617475732c20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c204c6f636b73202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c65646765726d61785f6164646974696f6e616c2054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c20626520746865206163636f756e74207468617420636f6e74726f6c732069742e206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e202d20546872656520657874726120444220656e74726965732e204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d202d20526561643a20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c2043757272656e74204572612c20486973746f72792044657074682c204c6f636b73202d2057726974653a20426f6e6465642c2050617965652c205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657200000000000000e09411000c0000000000000000000000cbed1200030000000000000000000000000000000000000000000000000000000000000054311300ec9411000000000000000000fc94110007000000000000000100000000000000349511000e0000000000000000000000cbed120003000000000000000000000000000000000000000000000000000000000000005431130044951100000000000000000054951100010000000000000001000000000000005c951100150000000000000000000000cbed120003000000000000000000000000000000000000000000000000000000000000005431130074951100000000000000000084951100010000000000000001000000000000008c9511000d00000000000000000000002c1a13001100000000000000000000000000000000000000000000000000000000000000543113009c9511000000000000000000ac95110003000000000000000100000000000000c4951100060000000105000000000000e3f812000c00000000000000e3f812000c0000000000000000000000000000000000000054311300cc9511000000000000000000dc9511000100000000000000000000000000000069511100060000000102000000000000e3f812000c00000000000000e4951100290000000000000000000000000000000000000054311300109611000000000000000000209611000100000000000000000000000000000028961100050000000105000000000000e3f812000c00000000000000ad7911001f00000000000000000000000000000000000000543113003096110000000000000000004096110001000000000000000100000000000000f04e11000a0000000105000000000000e3f812000c00000000000000067d11000e000000000000000000000000000000000000005431130048961100000000000000000058961100010000000000000001000000000000005f5111000a0000000105000000000000e3f812000c00000000000000609611001900000000000000000000000000000000000000543113007c96110000000000000000008c96110001000000000000000000000000000000949611000a00000000000000000000008e721100080000000000000000000000000000000000000000000000000000000000000054311300a09611000000000000000000b096110004000000000000000000000000000000d0961100090000000000000000000000d99611000d0000000000000000000000000000000000000000000000000000000000000054311300e89611000000000000000000f896110004000000000000000000000000000000189711001500000001050000000000008e7211000800000000000000a03712000c00000000000000000000000000000000000000543113003097110000000000000000004097110004000000000000000000000000000000b24e11000b00000002050500000000008e7211000800000000000000e3f812000c00000000000000609711002400000000000000543113008497110000000000000000009497110006000000000000000100000000000000c49711001200000002050500000000008e7211000800000000000000e3f812000c0000000000000060971100240000000000000054311300d89711000000000000000000e89711000b000000000000000100000000000000409811001200000002050500000000008e7211000800000000000000e3f812000c00000000000000067d11000e000000000000005431130054981100000000000000000064981100050000000000000001000000000000008c9811001300000001050000000000008e721100080000000000000057a912000c0000000000000000000000000000000000000054311300a09811000000000000000000b098110003000000000000000000000000000000ed4f11001000000001050000000000008e7211000800000000000000c89811001d0000000000000000000000000000000000000054311300e89811000000000000000000f898110002000000000000000100000000000000089911000e00000001050000000000008e721100080000000000000057a912000c00000000000000000000000000000000000000543113001899110000000000000000002899110002000000000000000100000000000000389911000800000000000000000000004099110007000000000000000000000000000000000000000000000000000000000000005431130048991100000000000000000058991100010000000000000001000000000000006099110013000000000000000000000055f3120007000000000000000000000000000000000000000000000000000000000000005431130074991100000000000000000084991100030000000000000001000000000000009c99110013000000000000000000000057a912000c0000000000000000000000000000000000000000000000000000000000000054311300b09911000000000000000000c099110002000000000000000100000000000000d09911001000000001050000000000008e7211000800000000000000e09911002f0000000000000000000000000000000000000054311300109a11000000000000000000209a110001000000000000000100000000000000289a11000a0000000000000000000000329a11001d0000000000000000000000000000000000000000000000000000000000000054311300509a11000000000000000000609a110004000000000000000100000000000000fd4f11001300000002050500000000008e7211000800000000000000e3f812000c00000000000000809a1100170000000000000054311300989a11000000000000000000a89a110002000000000000000000000000000000105011001300000002050500000000008e7211000800000000000000e3f812000c0000000000000057a912000c0000000000000054311300b89a11000000000000000000c89a1100010000000000000000000000000000002c5011000d0000000105000000000000e3f812000c00000000000000d09a1100170000000000000000000000000000000000000054311300e89a11000000000000000000f89a11000100000000000000000000000000000023501100090000000105000000000000009b11002300000000000000239b1100220000000000000000000000000000000000000054311300489b11000000000000000000589b110002000000000000000100000000000000689b11001600000000000000000000008e721100080000000000000000000000000000000000000000000000000000000000000054311300809b11000000000000000000909b110001000000000000000000000000000000989b1100150000000000000000000000a03712000c0000000000000000000000000000000000000000000000000000000000000054311300b09b11000000000000000000c09b1100030000000000000001000000000000009cbe12000e0000000000000000000000aabe1200080000000000000000000000000000000000000000000000000000000000000054311300d89b11000000000000000000e89b1100040000000000000001000000486973746f72794465707468120000000000000001000000670000009fa91100230000005431130000000000c2a911004e000000543113000000000010aa11005800000068aa11004e000000b6aa11000c00000056616c696461746f72436f756e7400001200000000000000010000002200000075a911002a0000004d696e696d756d56616c696461746f72436f756e740000001200000000000000010000002200000025a9110050000000496e76756c6e657261626c65730000001200000000000000010000003f00000051a8110056000000a7a8110053000000faa811002b000000426f6e64656400001200000000000000010000002300000011a81100400000005374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00000012000000000000000100000023000000c0a711005100000050617965650000001200000000000000010000005e00000087a71100390000001200000000000000010000006800000036a71100510000004e6f6d696e6174696f6e733c543a3a4163636f756e7449643e00000012000000000000000100000023000000dda611005900000043757272656e744572610000120000000000000001000000230000004da6110017000000543113000000000064a6110059000000bda6110020000000416374697665457261416374697665457261496e666f00001200000000000000010000002300000096a51100360000005431130000000000cca511005600000022a611002b00000045726173537461727453657373696f6e496e64657800000012000000000000000100000023000000b6a411004c000000543113000000000002a51100580000005aa511003c0000004578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e1200000000000000010000006900000098a411001e000000543113000000000038a2110058000000543113000000000090a211002a00000048a4110050000000457261735374616b657273436c6970706564000012000000000000000100000069000000baa21100260000005431130000000000e0a211005600000036a31100370000006da3110047000000b4a311003d0000005431130000000000f1a3110057000000543113000000000090a211002a00000048a41100500000004572617356616c696461746f725072656673000012000000000000000100000068000000f4a1110044000000543113000000000038a2110058000000543113000000000090a211002a0000004572617356616c696461746f7252657761726400120000000000000001000000230000006aa11100420000005431130000000000aca1110048000000457261526577617264506f696e74733c543a3a4163636f756e7449643e0000001200000000000000010000006a000000f6a011002b00000021a111004900000045726173546f74616c5374616b6500001200000000000000010000004100000074a011003b000000afa0110047000000466f726365457261466f7263696e67001200000000000000010000005e0000005fa0110015000000536c6173685265776172644672616374696f6e0012000000000000000100000022000000e89f11003e000000543113000000000026a011003900000043616e63656c6564536c6173685061796f75740012000000000000000100000041000000689f110045000000ad9f11003b000000556e6170706c696564536c61736865735665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e001200000000000000010000006b000000379f110031000000426f6e646564457261735665633c28457261496e6465782c2053657373696f6e496e646578293e001200000000000000010000006c0000008d9e1100490000005431130000000000d69e110032000000089f11002f0000002850657262696c6c2c2042616c616e63654f663c543e290012000000000000000100000023000000209e110051000000719e11001c00000012000000000000000100000023000000c89d110058000000736c617368696e673a3a536c617368696e675370616e730012000000000000000100000023000000a59d11002300000028543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e64657829736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e0000001200000000000000010000006d000000289d11004f000000779d11002e0000004561726c69657374556e6170706c696564536c617368000012000000000000000100000023000000e99c11003f00000043757272656e74506c616e6e656453657373696f6e00000012000000000000000100000022000000639c11003a00000054311300000000009d9c11004c0000001200000000000000010000006e000000089c110033000000dcbe12001f00000054311300000000003b9c1100280000002054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e20546869732069732073657420746f2076362e302e3020666f72206e6577206e6574776f726b732e20546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e2054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6053657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2c2061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e20416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e20416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e20616e6420736c6173682076616c7565206f6620746865206572612e2041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653a20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d6020416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e2054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e74207768696368207761732063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e204d6f6465206f662065726120666f7263696e672e2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e20496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e20496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e2054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e2045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e2053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e2054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e2049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e20436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e20546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f207468652060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e20284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292e2054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e2054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e204578706f73757265206f662076616c696461746f72206174206572612e205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e67206163746976652920666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e20546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e2054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d75737420626520657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e205468652063757272656e742065726120696e6465782e205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f72207365742c206974206d6967687420626520616374697665206f72206e6f742e20546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e20546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e2057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e20416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e63652074686579277265206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f757220696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e2054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e20496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e000000000000dcab11000e00000000000000a03712000c0000000000000054311300ecab11000000000000000000fcab110001000000000000000000000004ac11000f000000000000008e72110008000000000000005431130014ac1100000000000000000024ac11000100000000000000000000002cac110012000000000000008e72110008000000000000005431130040ac1100000000000000000050ac110005000000000000000000000078ac11002000000000000000cbed120003000000000000005431130098ac11000000000000000000a8ac1100040000000000000000000000c8ac11000e00000000000000cbed1200030000000000000054311300d8ac11000000000000000000e8ac1100010000000000000053657373696f6e7350657245726100001200000000000000010000006f000000feae11001c000000426f6e64696e674475726174696f6e0012000000000000000100000070000000c5ae110039000000536c61736844656665724475726174696f6e000012000000000000000100000071000000fdad11004000000054311300000000003dae11002f0000006cae11004b000000b7ae11000e0000004d61784e6f6d696e61746f72526577617264656450657256616c696461746f72120000000000000001000000720000001dad11003e00000054311300000000005bad11005a000000b5ad1100480000004d61784e6f6d696e6174696f6e73000012000000000000000100000073000000f0ac11002d000000204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e20546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e20466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e20636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e20546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c61736865732073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e204e756d626572206f662073657373696f6e7320706572206572612e000000000000a8b011000900000000000000b4b01100030000000000000000000000ccb01100030000000000000000000000e4b011000600000000000000c0f51100020000000000000000000000ecb01100010000000000000000000000f4b011000500000000000000c0f51100020000000000000000000000fcb011000200000000000000000000000cb111001a0000000000000028b1110001000000000000000000000030b1110002000000000000000000000040b111000f000000000000005431130000000000000000000000000050b11100010000000000000000000000c49511000600000000000000c0f5110002000000000000000000000058b1110004000000000000000000000078b111000800000000000000c0f5110002000000000000000000000080b1110001000000000000000000000088b111000900000000000000c0f5110002000000000000000000000094b11100020000000000000000000000a4b111000600000000000000bccf1200020000000000000000000000acb1110001000000000000004572615061796f75740000008e72110008000000d5d1120007000000d5d1120007000000aeb411005600000004b511003100000035b511002b00000052657761726400006fb411003f000000536c61736800000010b411004900000059b41100160000004f6c64536c617368696e675265706f72744469736361726465640000a03712000c000000a5b3110047000000ecb31100240000005374616b696e67456c656374696f6e0083b3110022000000b1b21100350000005431130000000000e6b21100540000003ab3110049000000556e626f6e6465647ab211003700000057697468647261776e000000f7b11100570000004eb211002c0000004b69636b65640000b4b11100430000002041206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d20416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365602066726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d20416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d20416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c2069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e2041206e657720736574206f66207374616b6572732077617320656c65637465642e20416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64206e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e205c5b76616c696461746f722c20616d6f756e745c5d20546865207374616b657220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e205c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d566f74657220736e617073686f7420746f6f2062696754617267657420736e617073686f7420746f6f206269674572726f723a2073746172745f73657373696f6e5f696e646578206d7573742062652073657420666f722063757272656e745f6572615761726e696e673a20412073657373696f6e206170706561727320746f2068617665206265656e20736b69707065642e00fc07130055000000940400000100000000000000495111000d0000000000000034b811000100000000000000000000004151110008000000000000003cb81100010000000000000000000000345111000d0000000000000044b81100010000000000000000000000275111000d000000000000004cb811000100000000000000000000001b5111000c0000000000000054b811000100000000000000000000000d5111000e000000000000005cb81100010000000000000000000000fc501100110000000000000064b81100010000000000000000000000eb50110011000000000000006cb81100010000000000000000000000df5011000c0000000000000074b81100010000000000000000000000d25011000d000000000000007cb81100010000000000000000000000c65011000c0000000000000084b81100010000000000000000000000b450110012000000000000008cb811000100000000000000000000009a5011001a0000000000000094b811000100000000000000000000008850110012000000000000009cb811000100000000000000000000007a5011000e00000000000000a4b81100010000000000000000000000655011001500000000000000acb811000100000000000000000000004f5011001600000000000000b4b81100010000000000000000000000475011000800000000000000bcb81100010000000000000000000000395011000e00000000000000c4b81100010000000000000000000000565111000900000000000000ccb811000100000000000000ddbb11001a000000c8bb110015000000afbb11001900000091bb11001e00000078bb11001900000067bb11001100000045bb11002200000012bb110033000000edba110025000000c4ba11002900000091ba1100330000007aba1100170000005bba11001f0000003aba110021000000f7b9110043000000c6b911003100000099b911002d0000004ab911004f00000024b9110026000000d4b81100500000002041206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e20546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e20496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e20496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e20496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e20496e76616c69642065726120746f207265776172642e20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e2043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e2043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e20536c617368207265636f726420696e646578206f7574206f6620626f756e64732e204475706c696361746520696e6465782e20546172676574732063616e6e6f7420626520656d7074792e20436f6e74726f6c6c657220697320616c7265616479207061697265642e20537461736820697320616c726561647920626f6e6465642e204e6f742061207374617368206163636f756e742e204e6f74206120636f6e74726f6c6c6572206163636f756e742e0012000000000000000100000074000000740000007500000012000000000000000100000074000000760000007500000042616265000000000000000070bc110008000000000000000000000078bc11000f00000000000000000000001e000000000000000000000088bc11000c0000000000000007000000706f6c6b61646f747061726974792d706f6c6b61646f7400df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a04000000d2bc9897eed08f1502000000f78b278be53f454c02000000af2c0297a23e6d3d01000000ed99c5acb25eedf502000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a8010000006772616e62616265696d6f6e706172616173676e617564690000000040787d018017b42c00e1f505483e332d280479051065b22d80cb0905d88b312e68b0a604b8aeb02ec06a4e0498d12f2ff0c5ff0360f8ae2f70b4b903401b2e30f8477b030842ad30b0a94303e8642c31181e1203c887ab3150f9e502c0a62a32e8a6be02a0c9a932289e9b0268f02833f8657c02780ba833c89860024032273408d147026849a63498c031023070253570151e02408ba43510910c0220ae2336f8f4fc0160c1a236600eef0140e4213780aae20198f3a03748a2d70138f71f38a8cecd0190069f38780cc501a8f61d396040bd01701d9d39204bb601c82c1c3a3019b00190539b3a2093aa0190471a3b50a9a501783f993b3848a10100ca9a3b9838a10150617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a53797374656d5363686564756c657254696d657374616d70496e646963657342616c616e6365735472616e73616374696f6e5061796d656e745374616b696e674f6666656e636573486973746f726963616c4772616e647061417574686f72697479446973636f76657279436f756e63696c546563686e6963616c436f6d6d6974746565456c656374696f6e7350687261676d656e546563686e6963616c4d656d626572736869705574696c6974794964656e7469747950726f78794d756c7469736967426f756e74696573456c656374696f6e50726f76696465724d756c7469506861736500770000002c000000040000007800000078000000790000000000000059be110006000000000000007a000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000007c0000000000000000000000000000007d0000000000000000000000000000007e000000000000000000000000000000000000007421130018000000000000007f000000000000000000000000000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000000000000800000000000000000000000000000008000000000000000000000001f000000000000005fbe110009000000000000008100000000000000000000000000000000000000000000000000000000000000820000000000000000000000000000008300000000000000000000000000000080000000000000000000000000000000840000000000000000000000010000000000000028bc110004000000000000008500000000000000000000000000000000000000000000000000000000000000860000000000000000000000020000000000000000000000000000000000000087000000000000000000000000000000880000000000000000000000020000000000000068be1100090000000000000089000000000000000000000000000000000000000000000000000000000000008a000000000000000000000002000000000000000000000000000000000000008b000000000000000000000000000000800000000000000000000000030000000000000071be110007000000000000008c000000000000000000000000000000000000000000000000000000000000008d0000000000000000000000000000008e0000000000000000000000000000008f000000000000000000000000000000800000000000000000000000040000000000000078be110008000000000000009000000000000000000000000000000000000000000000000000000000000000910000000000000000000000000000009200000000000000000000000000000093000000000000000000000000000000940000000000000000000000050000000000000080be1100120000000000000095000000000000000000000000000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000000000000960000000000000000000000000000008000000000000000000000002000000000000000102d12000a000000000000009700000000000000000000000000000000000000000000000000000000000000980000000000000000000000020000000000000000000000000000000000000080000000000000000000000000000000990000000000000000000000060000000000000092be110007000000000000009a000000000000000000000000000000000000000000000000000000000000009b0000000000000000000000000000009c0000000000000000000000000000009d0000000000000000000000000000009e0000000000000000000000070000000000000099be110008000000000000009f0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000a0000000000000000000000000000000800000000000000000000000000000008000000000000000000000000800000000000000a1be11000a0000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000000000000800000000000000000000000000000008000000000000000000000002100000000000000a08012000700000000000000a100000000000000000000000000000000000000000000000000000000000000a2000000000000000000000000000000a300000000000000000000000000000080000000000000000000000000000000a400000000000000000000000900000000000000abbe11000700000000000000a500000000000000000000000000000000000000000000000000000000000000a6000000000000000000000000000000a700000000000000000000000000000080000000000000000000000000000000a800000000000000000000000b000000000000003e2c12000800000000000000a900000000000000000000000000000000000000000000000000000000000000aa000000000000000000000000000000ab00000000000000000000000000000080000000000000000000000000000000ac00000000000000000000000c00000000000000b2be1100120000000200000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000200000000000000000000000000000000000000800000000000000000000000000000008000000000000000000000000d000000000000005e8012000900000000000000ad00000000000000000000000000000000000000000000000000000000000000ae000000000000000000000000000000af000000000000000000000000000000b0000000000000000000000000000000b100000000000000000000000e00000000000000c4be11000700000000000000b200000000000000000000000000000000000000000000000000000000000000b3000000000000000000000000000000b400000000000000000000000000000080000000000000000000000000000000b500000000000000000000000f00000000000000cbbe11001200000000000000b600000000000000000000000000000000000000000000000000000000000000b3000000000000000000000000000000b400000000000000000000000000000080000000000000000000000000000000b500000000000000000000001000000000000000ddbe11001100000000000000b700000000000000000000000000000000000000000000000000000000000000b8000000000000000000000000000000b9000000000000000000000000000000ba000000000000000000000000000000bb00000000000000000000001100000000000000eebe11001300000000000000bc00000000000000000000000000000000000000000000000000000000000000bd000000000000000000000000000000be000000000000000000000000000000800000000000000000000000000000008000000000000000000000001200000000000000baeb11000800000000000000bf00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000c1000000000000000000000000000000c2000000000000000000000000000000c300000000000000000000001300000000000000b62813000600000000000000c400000000000000000000000000000000000000000000000000000000000000c5000000000000000000000000000000c6000000000000000000000000000000c7000000000000000000000000000000c800000000000000000000001800000000000000bc2d12000700000000000000c900000000000000000000000000000000000000000000000000000000000000ca000000000000000000000000000000cb000000000000000000000000000000cc000000000000000000000000000000cd0000000000000000000000190000000000000001bf110007000000020000000000000000000000000000000000000000000000000000000000000000000000ce000000000000000000000000000000cf000000000000000000000000000000800000000000000000000000000000008000000000000000000000001a0000000000000008bf11000800000000000000d000000000000000000000000000000000000000000000000000000000000000d1000000000000000000000000000000d2000000000000000000000000000000d3000000000000000000000000000000d400000000000000000000001c0000000000000010bf11000500000000000000d500000000000000000000000000000000000000000000000000000000000000d6000000000000000000000000000000d7000000000000000000000000000000d8000000000000000000000000000000d900000000000000000000001d0000000000000015bf11000800000000000000da00000000000000000000000000000000000000000000000000000000000000db000000000000000000000000000000dc000000000000000000000000000000dd000000000000000000000000000000de00000000000000000000001e000000000000001dbf11000800000000000000df00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000e1000000000000000000000000000000e2000000000000000000000000000000e30000000000000000000000220000000000000074ec11000400000000000000e400000000000000000000000000000000000000000000000000000000000000e5000000000000000000000000000000e6000000000000000000000000000000e7000000000000000000000000000000e80000000000000000000000230000000000000025bf11001a00000000000000e900000000000000000000000000000000000000000000000000000000000000ea000000000000000000000000000000eb000000000000000000000000000000ec000000000000000000000000000000ed000000000000000000000024000000617373657274696f6e206661696c65643a20656467652e686569676874203d3d2073656c662e686569676874202d203158cd11005b0000007702000009000000617373657274696f6e206661696c65643a20696478203c20434150414349545958cd11005b0000007b020000090000002f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6e6f64652e7273617373657274696f6e206661696c65643a2073656c662e686569676874203e203058cd11005b000000d40000000900000058cd11005b0000002b04000016000000617373657274696f6e206661696c65643a207372632e6c656e2829203d3d206473742e6c656e282958cd11005b000000b006000005000000617373657274696f6e206661696c65643a20656467652e686569676874203d3d2073656c662e6e6f64652e686569676874202d203100000058cd11005b000000990300000900000058cd11005b0000006a0400001600000094d011001300000058cd11005b000000a60400001f000000617373657274696f6e206661696c65643a206e65775f6c6566745f6c656e203c3d204341504143495459000058cd11005b000000da04000009000000617373657274696f6e206661696c65643a206f6c645f6c6566745f6c656e202b20636f756e74203c3d204341504143495459000058cd11005b0000008d0500000d000000617373657274696f6e206661696c65643a206f6c645f72696768745f6c656e203e3d20636f756e7458cd11005b0000008e0500000d00000058cd11005b000000be05000016000000617373657274696f6e206661696c65643a206f6c645f72696768745f6c656e202b20636f756e74203c3d2043415041434954590058cd11005b0000004e0500000d000000617373657274696f6e206661696c65643a206f6c645f6c6566745f6c656e203e3d20636f756e740058cd11005b0000004f0500000d00000058cd11005b0000007e05000016000000617373657274696f6e206661696c65643a206d6174636820747261636b5f656467655f696478207b5c6e202020204c6566744f7252696768743a3a4c6566742869647829203d3e20696478203c3d206f6c645f6c6566745f6c656e2c5c6e202020204c6566744f7252696768743a3a52696768742869647829203d3e20696478203c3d2072696768745f6c656e2c5c6e7d00000058cd11005b0000002005000009000000656d70747920696e7465726e616c206e6f6465000000000088d111000e0000000000000098d11100010000000000000000000000a0d111001500000000000000b8d11100010000000000000000000000298212000800000000000000c0d11100010000000000000000000000c8d111001300000000000000dcd11100010000000000000000000000e4d111001200000000000000f8d1110001000000000000000000000000d2110009000000000000000cd2110001000000000000000000000014d2110017000000000000002cd2110001000000000000000000000034d211000b0000000000000040d21100010000000000000056657374696e6742616c616e636500006ad31100270000004c69717569646974795265737472696374696f6e7300000038d31100320000001bd311001d000000496e73756666696369656e7442616c616e636500fdd211001e0000004578697374656e7469616c4465706f7369740000c2d211003b0000004b656570416c6976650000009ed21100240000004578697374696e6756657374696e675363686564756c65006bd2110033000000446561644163636f756e740048d21100230000002042656e6566696369617279206163636f756e74206d757374207072652d657869737420412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e74205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742042616c616e636520746f6f206c6f7720746f2073656e642076616c756520476f7420616e206f766572666c6f7720616674657220616464696e67204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c756500000026e3120056000000e20000000f00000079d411001d00000024d4110055000000d10000000f0000007573657220646f6573206e6f74206861766520616e206578697374696e672076657374696e67207363686564756c653b20712e652e642e00120000000c000000040000003700000024d41100550000001e0100001200000024d411005500000045010000120000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f76657374696e672f7372632f6c69622e72735f5f5068616e746f6d4974656d2063616e6e6f7420626520757365642e7061726974792f6d756c74692d70686173652d756e7369676e65642d656c656374696f6e4e6f726d616c2065787472696e73696373206861766520776569676874206c696d697420636f6e666967757265642062792064656661756c743b2071656408d5110020000000780000000a0000002f6275696c642f72756e74696d652f636f6d6d6f6e2f7372632f6c69622e7273f0d71100640000007300000013000000f0d71100640000004800000018000000f0d7110064000000480000002a000000f0d71100640000008a0000001800000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75650054d8110060000000220100002e000000f0d7110064000000b600000019000000f0d71100640000000101000042000000f0d711006400000015010000420000004475706c696361746520766f74657220286f72206f7468657220636f727275707420696e707574292e000000f0d7110064000000360100002100000054d8110060000000d80100002a000000f0d71100640000005901000015000000f0d71100640000005e0100001e00000012000000000000000100000021000000f0d7110064000000610000001a000000f0d7110064000000610000002c000000f0d7110064000000cb01000018000000f0d7110064000000cb01000021000000f0d7110064000000ce01000024000000f0d7110064000000ce01000039000000f0d7110064000000cf01000024000000f0d7110064000000cf01000039000000f0d7110064000000f301000023000000f0d7110064000000f30100002c000000f0d7110064000000f501000024000000f0d7110064000000f501000039000000f0d71100640000001802000035000000f0d71100640000001902000035000000f0d71100640000002202000024000000f0d71100640000002202000039000000f0d71100640000004402000035000000f0d71100640000004502000035000000f0d71100640000005a0200002b000000f0d71100640000005a02000046000000f0d71100640000005b02000028000000f0d71100640000005b02000047000000f0d7110064000000650200002b000000f0d71100640000006502000047000000f0d71100640000006602000028000000f0d711006400000066020000480000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f6e706f732d656c656374696f6e732f7372632f7265647563652e72732f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f616c6c6f632f7372632f636f6c6c656374696f6e732f62747265652f6d61702f656e7472792e72737375626d69745f756e7369676e6564000000000018d911001a0000000000000034d911000100000000000000000000003cd911001b0000000000000058d9110001000000000000000000000060d9110019000000000000007cd91100010000000000000050726544697370617463684561726c795375626d697373696f6e0000ccd911001a000000507265446973706174636857726f6e6757696e6e6572436f756e7400a9d911002300000050726544697370617463685765616b5375626d697373696f6e00000084d9110025000000205375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e2057726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e205375626d697373696f6e2077617320746f6f206561726c792e4f6666636861696e456c656374696f6e5374696c6c4f70656e4e6f7446696e646572556e6b6e6f776e546970416c72656164794b6e6f776e526561736f6e546f6f4269675072656d617475726500000000003cdb11000e000000000000004cdb11000200000000000000000000007cdb110013000000000000000000000014dc11000b0000000000000020dc110001000000000000000000000038dc1100130000000000000000000000d0dc11000700000000000000d8dc110003000000000000000000000020dd1100160000000000000000000000d0dd11000300000000000000d4dd110002000000000000000000000004de1100190000000000000000000000ccde1100090000000000000020dc1100010000000000000000000000d8de110011000000000000000000000060df1100090000000000000020dc11000100000000000000000000006cdf11000c000000000000007265706f72745f617765736f6d6500000000000059e81100060000000000000042ec12000700000000000000791b13000300000000000000e3f812000c00000069ea11005700000054311300000000006c0e1300340000005431130000000000c0ea11005500000015eb110030000000543113000000000010e611005800000068e61100170000007fe611003b0000005431130000000000bae611001e0000005431130000000000f2eb12000b00000045eb11003300000078eb1100250000009deb11001d0000003be811001e00000036ec12000c000000726574726163745f7469700000000000c6e511000400000000000000b7f91200070000005fe81100550000005431130000000000b4e81100380000005431130000000000ece811005400000040e911005100000091e911001400000054311300000000005ce1110059000000b5e11100580000005431130000000000a5e91100240000005431130000000000f2eb12000b000000c9e9110015000000dee911003700000015ea11002400000039ea11003000000036ec12000c0000007469705f6e6577000000000059e81100060000000000000042ec12000700000000000000791b13000300000000000000e3f812000c00000000000000cae5110009000000000000004db6120015000000d3e511003d0000005431130000000000fce211005500000051e311001d000000543113000000000010e611005800000068e61100170000007fe611003b000000d4e311005400000028e41100360000005431130000000000bae611001e0000005431130000000000f2eb12000b000000d8e61100550000002de71100300000005de71100420000009fe7110043000000e2e71100390000001be81100200000003be811001e00000036ec12000c0000007469700000000000c6e511000400000000000000b7f912000700000000000000cae5110009000000000000004db6120015000000cfe211002d0000005431130000000000fce211005500000051e311001d00000054311300000000005ce11100590000006ee3110058000000c6e311000e000000d4e311005400000028e411003600000054311300000000005ee4110059000000b7e411000d0000005431130000000000f2eb12000b0000000de2110039000000c4e41100450000007de0110040000000bde0110041000000543113000000000009e511005800000061e511003500000096e511001d000000b3e511001300000036ec12000c000000636c6f73655f746970000000fee011001800000054311300000000006c0e130034000000543113000000000016e111004600000054311300000000005ce1110059000000b5e11100580000005431130000000000f2eb12000b0000000de211003900000046e21100270000007de0110040000000bde01100410000006de211002b00000098e211003700000036ec12000c000000736c6173685f746970000000ccdf1100260000005431130000000000f2df11002b00000054311300000000001de011003e00000054311300000000005be01100220000005431130000000000f2eb12000b0000007de0110040000000bde011004100000036ec12000c0000002052656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e204173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e20456d6974732060546970536c617368656460206966207375636365737366756c2e202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e2020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e20436c6f736520616e64207061796f75742061207469702e2054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65642020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061206d656d626572206f662074686520605469707065727360207365742e2020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172792020206163636f756e742049442e202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e2074697020202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e20456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f642068617320737461727465642e2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e202d20446252656164733a206054697070657273602c20605469707360202d2044625772697465733a20605469707360686173687469705f76616c7565204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626520202061205554462d382d656e636f6465642055524c2e202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e20456d69747320604e657754697060206966207375636365737366756c2e202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e2020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602020202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e20202020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e2020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e67746820605260202d20446252656164733a206054697070657273602c2060526561736f6e7360202d2044625772697465733a2060526561736f6e73602c20605469707360726561736f6e20526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e74696669656420627920606861736860206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f74207468726f75676820607469705f6e657760292e20456d697473206054697052657472616374656460206966207375636365737366756c2e202d20436f6d706c65786974793a20604f283129602020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c2061732060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e2020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27202d20446252656164733a2060526561736f6e73602c20605469707360547265617375727900000000000074ec1100040000000105000000000000b7f91200070000000000000078ec11003c0000000000000000000000000000000000000054311300b4ec11000000000000000000c4ec110003000000000000000000000000000000dcec1100070000000106000000000000b7f91200070000000000000042ec1200070000000000000000000000000000000000000054311300e4ec11000000000000000000f4ec1100020000000000000000000000546970734f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e12000000000000000100000023000000aeed11005900000007ee11004f00000056ee110020000000526561736f6e73001200000000000000010000002300000004ed11005200000056ed1100580000002053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e20696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e20546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e2054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c72656164792067756172616e7465656420746f20626520612073656375726520686173682e00000000000090ef11000c00000000000000a9f912000e00000000000000543113009cef11000000000000000000acef1100010000000000000000000000b4ef11000d00000000000000c1ef1100070000000000000054311300c8ef11000000000000000000d8ef1100010000000000000000000000e0ef1100140000000000000057a912000c0000000000000054311300f4ef1100000000000000000004f011000100000000000000000000000cf01100120000000000000057a912000c000000000000005431130020f01100000000000000000030f0110001000000000000000000000038f011001300000000000000cbed12000300000000000000543113004cf0110000000000000000005cf011000100000000000000546970436f756e74646f776e120000000000000001000000ee00000049f111005100000054697046696e6465727346656550657263656e74120000000000000001000000ef000000fdf011004c0000005469705265706f72744465706f7369744261736512000000000000000100000026000000c8f0110035000000446174614465706f7369745065724279746500001200000000000000010000002500000086f01100420000004d6178696d756d526561736f6e4c656e677468001200000000000000010000002b00000064f0110022000000204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e2054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e2054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e2054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e2054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e00000000000078f211000600000000000000e8d0120001000000000000000000000080f2110001000000000000000000000088f211000a00000000000000e8d0120001000000000000000000000094f211000100000000000000000000009cf21100090000000000000020d01200030000000000000000000000a8f21100010000000000000000000000b0f211000c00000000000000e8d01200010000000000000000000000bcf21100010000000000000000000000c4f211000a0000000000000020d01200030000000000000000000000d0f2110001000000000000004e65775469700000cbf3110033000000546970436c6f73696e67000087f3110044000000546970436c6f7365640000004bf311003c00000054697052657472616374656419f3110032000000546970536c61736865640000d8f21100410000002041207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d2041207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d2041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d2041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d2041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d496e76616c696420756e7369676e6564207375626d697373696f6e206d7573742070726f6475636520696e76616c696420626c6f636b20616e6420646570726976652076616c696461746f722066726f6d20746865697220617574686f72696e67207265776172642e00c8f411006b000000d70200003b000000c8f411006b000000db0200002b000000c8f411006b000000de0200000d000000c8f411006b000000df0200000d000000120000000c00000004000000f0000000c8f411006b000000e20200004e0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f656c656374696f6e2d70726f76696465722d6d756c74692d70686173652f7372632f6c69622e72730024d4110055000000c40000000f0000004e6f7456657374696e67416d6f756e744c6f770000000000b0f511000e00000000000000c0f51100020000000000000000000000d0f51100030000000000000000000000e8f511001000000000000000fce41200010000000000000000000000f8f51100010000000000000056657374696e6755706461746564000079e5120009000000d5d112000700000047f61100560000009df6110046000000e3f611001600000056657374696e67436f6d706c6574656400f611004700000020416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e204e6f20667572746865722076657374696e672063616e2068617070656e2e2054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e646963617465206d6f72652066756e64732061726520617661696c61626c652e205468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e205c5b6163636f756e742c20756e7665737465645c5d00000000000000acf71100040000000000000054311300000000000000000000000000b0f711000d000000000000000000000018f811000a0000000000000024f811000100000000000000000000003cf811000f0000000000000000000000b4f811000f00000000000000c4f81100020000000000000000000000f4f8110010000000000000000000000074f9110015000000000000008cf91100030000000000000000000000d4f91100110000000000000076657374fefe11002f00000054311300000000002dff11005800000034fe11001a00000054311300000000004efe1100350000005431130000000000f2eb12000b000000bcfb11000a00000085ff11001e000000a3ff11003f000000e2ff11004000000036ec12000c000000766573745f6f74686572000000000000739a1200060000000000000085fc110023000000b0fd11002f00000054311300000000006c0e1300340000005431130000000000dffd11005500000034fe11001a00000054311300000000004efe1100350000005431130000000000f2eb12000b000000bcfb11000a000000f3fc11001e00000083fe11003d000000c0fe11003e00000036ec12000c0000007665737465645f7472616e736665720000000000739a1200060000000000000085fc11002300000000000000a8fc11000800000000000000b0fc110029000000d9fc11001a00000054311300000000006c0e1300340000005431130000000000e2fa11004500000027fb11004000000067fb11003d0000005431130000000000a4fb1100180000005431130000000000f2eb12000b000000bcfb11000a000000f3fc11001e00000011fd11004f00000060fd11005000000036ec12000c000000666f7263655f7665737465645f7472616e73666572000000000000007ffc1100060000000000000085fc11002300000000000000739a1200060000000000000085fc11002300000000000000a8fc11000800000000000000b0fc1100290000005cfa110019000000543113000000000075fa1100320000005431130000000000a7fa11003b000000e2fa11004500000027fb11004000000067fb11003d0000005431130000000000a4fb1100180000005431130000000000f2eb12000b000000bcfb11000a000000c6fb11001e000000e4fb11004d00000031fc11004e00000036ec12000c00000020466f726365206120766573746564207472616e736665722e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642e202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e20456d697473206056657374696e6743726561746564602e202d20604f283129602e202d2044625765696768743a20342052656164732c20342057726974657320202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e7420202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74736f757263653c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263657363686564756c6556657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e20437265617465206120766573746564207472616e736665722e202d2044625765696768743a20332052656164732c20332057726974657320202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d20202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c206c6f636b656420756e64657220746869732070616c6c65742e20456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e7420202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e7420556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c202d2044625765696768743a20322052656164732c20322057726974657320202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d20202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d000000000000bc2d1200070000000102000000000000e3f812000c00000000000000b0fc11002900000000000000000000000000000000000000543113007c00120000000000000000008c00120001000000000000000000000012000000000000000100000023000000940012003600000020496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e00000000000004011200110000000000000057a912000c00000000000000543113001801120000000000000000002801120001000000000000004d696e5665737465645472616e7366657200000012000000000000000100000045000000300112003a00000020546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e000000000000cc0212000700000000000000c0f51100020000000000000000000000d4021200010000000000000000000000dc0212000800000000000000c0f51100020000000000000000000000e4021200020000000000000000000000f40212000800000000000000fc021200030000000000000000000000140312000100000000000000000000001c0312000a000000000000002803120003000000000000000000000040031200010000000000000000000000480312000700000000000000c0f5110002000000000000000000000050031200010000000000000000000000580312000800000000000000c0f5110002000000000000000000000060031200010000000000000000000000680312000a00000000000000c0f51100020000000000000000000000740312000100000000000000000000007c031200120000000000000090031200040000000000000000000000b00312000300000000000000456e646f776564003c06120049000000447573744c6f7374b80512005000000008061200340000005472616e7366657279e512000900000079e5120009000000d5d1120007000000900512002800000042616c616e6365536574000079e5120009000000d5d1120007000000d5d11200070000005d051200330000004465706f7369740015051200480000005265736572766564cd04120048000000556e72657365727665640000830412004a000000526573657276655265706174726961746564000079e512000900000079e5120009000000d5d11200070000007d04120006000000c8031200540000001c04120037000000530412002a00000020536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742e2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d53746174757320536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d20536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d20536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d20416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c20726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d20416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d0000000000000038071200080000000000000040071200020000000000000000000000700712001b0000000000000000000000480812000b00000000000000540812000300000000000000000000009c0812001200000000000000000000002c0912000e000000000000003c09120003000000000000000000000084091200060000000000000000000000b4091200130000000000000040071200020000000000000000000000c80912000b000000000000007472616e73666572000000005b0c1200040000000000000085fc1100230000000000000048b6120005000000000000005f0c120013000000b70e1200360000005431130000000000ed0e1200420000002f0f120048000000770f120045000000bc0f12002d0000005431130000000000e90f1200460000005431130000000000f2eb12000b0000002f1012004c0000007b10120033000000ae1012005a0000005431130000000000081112001300000054311300000000001b111200540000006f1112004b000000ba11120035000000ef111200580000004712120052000000991212003e000000d712120022000000f9121200510000004a13120037000000811312004500000036ec12000c0000007365745f62616c616e63650000000000791b1300030000000000000085fc11002300000000000000a30e120008000000000000005f0c12001300000000000000ab0e12000c000000000000005f0c120013000000720c1200250000005431130000000000970c120048000000df0c120042000000210d120046000000670d1200400000005431130000000000a70d12002d0000005431130000000000f2eb12000b000000d40d120020000000f40d120031000000250e1200160000003b0e12000f0000004a0e12001a000000640e1200190000007d0e12002600000036ec12000c000000666f7263655f7472616e736665720000000000007ffc1100060000000000000085fc110023000000000000005b0c1200040000000000000085fc1100230000000000000048b6120005000000000000005f0c120013000000880b120054000000dc0b12000b000000f2eb12000b000000e70b120050000000370c12002400000036ec12000c0000007472616e736665725f6b6565705f616c69766500200a120054000000740a1200100000005431130000000000840a12002f0000005431130000000000b30a120031000000f2eb12000b000000e40a12003a0000001e0b120018000000360b1200470000007d0b12000b0000002053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e202d2042617365205765696768743a2035312e3420c2b573202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c72656164792920233c2f7765696768743e2045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265207370656369666965642e202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e742069732020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e64657374436f6d706163743c543a3a42616c616e63653e20536574207468652062616c616e636573206f66206120676976656e206163636f756e742e20546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c20616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e20496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c2069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e20546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e202d20496e646570656e64656e74206f662074686520617267756d656e74732e202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d202d2042617365205765696768743a20202020202d204372656174696e673a2032372e353620c2b57320202020202d204b696c6c696e673a2033352e313120c2b573202d204442205765696768743a203120526561642c203120577269746520746f206077686f606e65775f667265656e65775f7265736572766564205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e20607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e2049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e2052656c617465642066756e6374696f6e733a2020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c20636175736520202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e2020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c2020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e74202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e000000000000281512000d0000000000000000000000351512000a00000000000000000000000000000000000000000000000000000000000000543113004015120000000000000000005015120001000000000000000100000000000000dcf81200070000000102000000000000e3f812000c0000000000000058151200170000000000000000000000000000000000000054311300701512000000000000000000801512000300000000000000010000000000000070bd1200050000000102000000000000e3f812000c00000000000000981512001c0000000000000000000000000000000000000054311300b41512000000000000000000c4151200020000000000000001000000000000009cbe12000e0000000000000000000000aabe1200080000000000000000000000000000000000000000000000000000000000000054311300d41512000000000000000000e4151200030000000000000001000000546f74616c49737375616e6365543a3a42616c616e6365001200000000000000010000004100000006171200260000004163636f756e74446174613c543a3a42616c616e63653e00120000000000000001000000f10000009b1612001b0000005431130000000000b6161200500000005665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e120000000000000001000000f2000000241612002e00000052161200490000001200000000000000010000005e000000dcbe12001f0000005431130000000000fc1512002800000020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e20416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e205468652062616c616e6365206f6620616e206163636f756e742e204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e2054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e00000000e4d111001200000000000000351512000a0000000000000054311300641712000000000000000000741712000100000000000000120000000000000001000000260000007c1712003500000020546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e436865636b5370656356657273696f6e000000c8f411006b000000040300000f00000000000000dc1812000e00000000000000ec181200010000000000000000000000f41812000400000000000000000000001419120011000000000000002819120001000000000000000000000030191200020000000000000000000000401912000800000000000000fce4120001000000000000000000000048191200010000000000000000000000501912000700000000000000fce4120001000000000000000000000058191200010000000000000000000000601912001200000000000000741912000100000000000000000000007c19120001000000000000000000000084191200140000000000000074191200010000000000000000000000981912000100000000000000536f6c7574696f6e53746f7265640000dd1b12000f0000001d1b12002e00000054311300000000004b1b1200500000009b1b120042000000456c656374696f6e46696e616c697a6564000000061b120017000000971a120056000000ed1a12001900000052657761726465644d1a12004a000000536c617368656400041a1200490000005369676e65645068617365537461727465640000cbed120003000000d319120031000000556e7369676e6564506861736553746172746564a0191200330000002054686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e20546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e20416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e20416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e2054686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c73652069662074686520656c656374696f6e206661696c65642c20604e6f6e65602e4f7074696f6e3c456c656374696f6e436f6d707574653e204120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e2049662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e2049662074686520736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e456c656374696f6e436f6d7075746500000000b4d811000f00000000000000181c1200020000000000000000000000481c12000e0000000000000000000000301f12000800000000000000381f12001900000000000000511f12000700000000000000581f120016000000b81c12002a0000005431130000000000e21c1200330000005431130000000000151d120050000000651d120056000000bb1d120058000000131e1200110000005431130000000000241e1200570000007b1e120054000000cf1e1200280000005431130000000000f71e120039000000205375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e20546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e2054686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c792076616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e732074686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617220746f20616e20696e686572656e74292e20546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c2070616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c792070757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e204e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e736f6c7574696f6e526177536f6c7574696f6e3c436f6d706163744f663c543e3e7769746e657373536f6c7574696f6e4f72536e617073686f7453697a6500000000000080211200050000000000000000000000cbed12000300000000000000000000000000000000000000000000000000000000000000543113008821120000000000000000009821120006000000000000000100000000000000c82112000c0000000000000000000000d4211200150000000000000000000000000000000000000000000000000000000000000054311300ec2112000000000000000000fc21120001000000000000000100000000000000042212000e0000000000000000000000122212001b0000000000000000000000000000000000000000000000000000000000000054311300302212000000000000000000402212000100000000000000000000000000000048221200080000000000000000000000502212001b00000000000000000000000000000000000000000000000000000000000000543113006c22120000000000000000007c22120003000000000000000000000000000000942212000e0000000000000000000000cbed1200030000000000000000000000000000000000000000000000000000000000000054311300a42212000000000000000000b422120003000000000000000000000000000000cc221200100000000000000000000000581f1200160000000000000000000000000000000000000000000000000000000000000054311300dc2212000000000000000000ec221200030000000000000000000000526f756e64000000120000000000000001000000f3000000582412002b00000054311300000000008324120055000000d82412001b0000005431130000000000f32412005300000043757272656e74506861736550686173653c543a3a426c6f636b4e756d6265723e0000001200000000000000010000005e000000492412000f000000517565756564536f6c7574696f6e5265616479536f6c7574696f6e3c543a3a4163636f756e7449643e00000012000000000000000100000023000000fa2312004f000000536e617073686f74526f756e64536e617073686f743c543a3a4163636f756e7449643e0012000000000000000100000023000000872312001c0000005431130000000000a3231200570000004465736972656454617267657473000012000000000000000100000023000000542312003300000054311300000000002a2312002a000000536e617073686f744d6574616461746112000000000000000100000023000000042312002600000054311300000000002a2312002a00000020546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e20536e617073686f742064617461206f662074686520726f756e642e205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e2043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e2043757272656e742070686173652e20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e20546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c20646961676e6f7374696373206f66207468652070616c6c65742e2054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e000000000000f02512000d00000000000000a9f912000e000000000000005431130000261200000000000000000010261200010000000000000000000000182612000b00000000000000a9f912000e0000000000000054311300242612000000000000000000342612000100000000000000000000003c2612001c0000000000000055f31200070000000000000054311300582612000000000000000000682612000200000000000000556e7369676e65645068617365000000120000000000000001000000f400000002271200200000005369676e656450686173650012000000000000000100000022000000e42612001e000000536f6c7574696f6e496d70726f76656d656e745468726573686f6c64120000000000000001000000290000007826120053000000cb2612001900000020546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061732022626574746572222028696e20616e79207068617365292e204475726174696f6e206f6620746865207369676e65642070686173652e204475726174696f6e206f662074686520756e7369676e65642070686173652e0000120000000400000004000000f5000000120000000400000004000000f6000000120000000400000004000000f7000000d4e2120052000000c100000001000000a83513005e000000710000002e000000a83513005e0000009000000034000000a83513005e0000006900000034000000000000001eda11000c000000000000003c28120001000000000000000000000012da11000c000000000000004428120001000000000000000000000008da11000a000000000000004c281200010000000000000000000000ffd91100090000000000000054281200010000000000000000000000f6d9110009000000000000005c2812000100000000000000000000002ada11000900000000000000642812000100000000000000882912002200000065291200230000004c291200190000000429120048000000b92812004b0000006c2812004d00000020546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e20546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e20546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e2054686520746970206861736820697320756e6b6e6f776e2e20546865207469702077617320616c726561647920666f756e642f737461727465642e2054686520726561736f6e20676976656e206973206a75737420746f6f206269672e0000a83513005e000000ba00000009000000a83513005e000000b300000009000000a83513005e000000d400000011000000a83513005e000000d900000009000000d4e2120052000000cd01000018000000d4e2120052000000fb0100001a0000000000000044f511000a00000000000000602a120001000000000000000000000014d211001700000000000000682a12000100000000000000000000004ef511000900000000000000702a12000100000000000000112b120022000000ba2a120057000000782a12004200000020416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e20416e206578697374696e672076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e7420746861742063616e6e6f7420626520636c6f6262657265642e20546865206163636f756e7420676976656e206973206e6f742076657374696e672e54696d657374616d70206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b00d42b120057000000c20000000d00000054696d657374616d70206d75737420696e6372656d656e74206279206174206c65617374203c4d696e696d756d506572696f643e206265747765656e2073657175656e7469616c20626c6f636b730000d42b120057000000c40000000d0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f74696d657374616d702f7372632f6c69622e72737672662d6e6d2d706b436865636b4e6f6e6365496d4f6e6c696e6500000000000000000000617474656d707420746f20646976696465206279207a65726f4b657973417574686f726564426c6f636b732f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f696d2d6f6e6c696e652f7372632f6c69622e727354696d657374616d70206d7573742062652075706461746564206f6e636520696e2074686520626c6f636b000000d42b120057000000a70000000d000000417574686f7273686970417574686f724772616e64706146696e616c69747950656e64696e674368616e67653a6772616e6470615f617574686f7269746965735374617465556e636c657348656172746265617441667465720000007b2c1200570000004e020000340000007061726974792f696d2d6f6e6c696e652d6865617274626561742f556e646572436f6e737472756374696f6e50726f78696573416e6e6f756e63656d656e747356657374696e6700d42d120067000000b4000000380000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f737570706f72742f7372632f73746f726167652f67656e657261746f722f6d61702e727300120000000800000004000000f80000004772616e64706145717569766f636174696f6e496e76616c696445717569766f636174696f6e50726f6f66496e76616c69644b65794f776e65727368697050726f6f66546f6f536f6f6e4368616e676550656e64696e67526573756d654661696c656450617573654661696c65644475706c69636174654f6666656e63655265706f727400000000542f12001300000000000000682f1200020000000000000000000000982f1200040000000000000000000000b82f12001c00000000000000682f1200020000000000000000000000d42f12000900000000000000000000001c3012000c00000000000000283012000200000000000000000000005830120007000000000000007265706f72745f65717569766f636174696f6e0000000000203412001200000000000000323412002a000000000000005c3412000f000000000000006b341200100000007432120043000000b73212003e000000f53212003f00000034331200120000007265706f72745f65717569766f636174696f6e5f756e7369676e65647432120043000000b73212003e000000f53212003f0000003433120012000000543113000000000046331200440000008a33120046000000d033120046000000163412000a0000006e6f74655f7374616c6c6564000000001fae12000500000000000000a9f912000e00000000000000593212001b00000000000000a9f912000e0000009030120047000000d73012004a00000021311200480000006931120045000000ae3112004a000000f83112004a0000004232120017000000204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c61792073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f746572732077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e204f6e6c792063616c6c61626c6520627920726f6f742e626573745f66696e616c697a65645f626c6f636b5f6e756d626572205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e20546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c7920626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c20617320737563682069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e207265706f727465722e65717569766f636174696f6e5f70726f6f6645717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e6b65795f6f776e65725f70726f6f66543a3a4b65794f776e657250726f6f660000000000502d12000500000000000000000000008c3612001b0000000000000000000000000000000000000000000000000000000000000054311300a83612000000000000000000b8361200010000000000000001000000000000002f2d12000d0000000000000000000000c0361200230000000000000000000000000000000000000000000000000000000000000054311300e43612000000000000000000f436120001000000000000000000000000000000fc3612000a0000000000000000000000a9f912000e0000000000000000000000000000000000000000000000000000000000000054311300083712000000000000000000183712000100000000000000000000000000000020371200070000000000000000000000273712002000000000000000000000000000000000000000000000000000000000000000543113004837120000000000000000005837120001000000000000000000000000000000603712000c00000000000000000000006c3712000500000000000000000000000000000000000000000000000000000000000000543113007437120000000000000000008437120002000000000000000100000000000000943712000c00000001050000000000006c3712000500000000000000a03712000c0000000000000000000000000000000000000054311300ac3712000000000000000000bc37120004000000000000000000000053746f72656453746174653c543a3a426c6f636b4e756d6265723e00120000000000000001000000f9000000863912002400000053746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e001200000000000000010000002300000055391200310000004e657874466f72636564000012000000000000000100000023000000263912002f0000005374616c6c656428543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290012000000000000000100000023000000023912002400000043757272656e7453657449645365744964000000120000000000000001000000590000007a38120057000000d138120031000000536574496453657373696f6e53657373696f6e496e64657812000000000000000100000023000000dc37120056000000323812001a00000054311300000000004c3812002e0000002041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f7220776869636820697473206d656d62657273207765726520726573706f6e7369626c652e2054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e20546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c69746965732920696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e20607472756560206966207765206172652063757272656e746c79207374616c6c65642e206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e2050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e205374617465206f66207468652063757272656e7420617574686f72697479207365742e496e76616c69644b65794475706c6963617465644865617274626561740000000000f43912000900000000000000003a1200020000000000000000000000303a1200090000000000000068656172746265617400000000000000f43912000900000000000000de3b12001900000000000000f73b12000a00000000000000013c12002f000000f2eb12000b000000783a120050000000c83a120040000000083b1200230000002b3b12002c000000573b12004f000000a63b120017000000bd3b12002100000036ec12000c000000202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e29202020616e642045206973206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373602020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b602020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e67746820604560202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c2020206052656365697665644865617274626561747360202d2044625772697465733a2060526563656976656448656172746265617473604865617274626561743c543a3a426c6f636b4e756d6265723e5f7369676e61747572653c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265000000005b2d12000e0000000000000000000000a9f912000e0000000000000000000000000000000000000000000000000000000000000054311300903d12000000000000000000a03d12000b000000000000000100000000000000692c1200040000000000000000000000f83d12001300000000000000000000000000000000000000000000000000000000000000543113000c3e120000000000000000001c3e120001000000000000000100000000000000243e1200120000000205050000000000a03712000c00000000000000363e1200090000000000000042ec1200070000000000000054311300403e12000000000000000000503e1200020000000000000000000000000000006d2c12000e0000000205050000000000a03712000c00000000000000603e12000e00000000000000cbed1200030000000000000054311300703e12000000000000000000803e120002000000000000000100000012000000000000000100000022000000973f120047000000de3f1200090000005431130000000000e73f120049000000304012004d0000007d40120046000000c34012002a0000005431130000000000ed4012004e0000003b4112004b00000086411200400000005665633c543a3a417574686f7269747949643e001200000000000000010000003f000000633f12003400000052656365697665644865617274626561747341757468496e6465780012000000000000000100000023000000073f12003c000000433f12002000000056616c696461746f7249643c543e000012000000000000000100000022000000903e120045000000d53e12003200000020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e20466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f20606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e2054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e742073657373696f6e2e2041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c20726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f72207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f20746861742074686520686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e20546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c64206265206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e0000000000004c421200110000000000000060421200010000000000000000000000684212000100000000000000000000007042120007000000000000005431130000000000000000000000000078421200010000000000000000000000804212000b000000000000008c4212000100000000000000000000009442120001000000000000004865617274626561745265636569766564000000794312000b0000003843120041000000416c6c476f6f64000343120035000000536f6d654f66666c696e6500eb421200180000009c4212004f0000002041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e5665633c4964656e74696669636174696f6e5475706c653e2041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d417574686f72697479496400000000b04312000300000000000000b4431200010000000000000000000000cc4312000f0000000000000073657400000000006946120003000000000000006c46120012000000444412001600000054311300000000005a44120056000000b0441200360000005431130000000000e6441200510000003745120011000000543113000000000048451200360000005431130000000000f2eb12000b0000007e4512004d000000cb45120068000000334612003600000036ec12000c00000020536574207468652063757272656e742074696d652e20546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e2070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627920604d696e696d756d506572696f64602e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f2831296029202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e6e6f77436f6d706163743c543a3a4d6f6d656e743e00000000000030471200030000000000000000000000334712000900000000000000000000000000000000000000000000000000000000000000543113003c47120000000000000000004c4712000100000000000000010000000000000054471200090000000000000000000000a1fb1200040000000000000000000000000000000000000000000000000000000000000054311300604712000000000000000000704712000100000000000000010000004e6f77543a3a4d6f6d656e7412000000000000000100000059000000a54712002400000044696455706461746500000012000000000000000100000023000000784712002d00000020446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f2043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e00000000000000044812000d00000000000000334712000900000000000000543113001448120000000000000000002448120004000000000000004d696e696d756d506572696f64000000120000000000000001000000fa000000444812005a0000009e4812005a000000f848120059000000514912001c00000020546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e556e636c65416c7265616479496e636c75646564546f6f48696768556e636c6547656e65736973556e636c65546f6f4d616e79556e636c6573556e636c6573416c7265616479536574496e76616c6964556e636c65506172656e744f6c64556e636c6500000000fc4912000a00000000000000084a1200010000000000000000000000204a120001000000000000007365745f756e636c6573000000000000414a12000a000000000000004b4a12000e000000284a1200190000002050726f76696465206120736574206f6620756e636c65732e6e65775f756e636c65735665633c543a3a4865616465723e00000000000000552d1200060000000000000000000000644b12003a0000000000000000000000000000000000000000000000000000000000000054311300a04b12000000000000000000b04b1200010000000000000001000000000000001a2d1200060000000000000000000000e3f812000c0000000000000000000000000000000000000000000000000000000000000054311300b84b12000000000000000000c84b120001000000000000000000000000000000d04b12000c0000000000000000000000a1fb1200040000000000000000000000000000000000000000000000000000000000000054311300dc4b12000000000000000000ec4b12000100000000000000010000005665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0000120000000000000001000000fb0000003c4c12000700000012000000000000000100000023000000234c120019000000446964536574556e636c657312000000000000000100000023000000f44b12002f000000205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e20417574686f72206f662063757272656e7420626c6f636b2e20556e636c6573001200000000000000010000005f000000647c120066000000860000002700000012000000000000000100000021000000647c120066000000a60000001c000000647c1200660000009500000034000000647c120066000000a900000029000000647c120066000000bd0000001f000000647c120066000000c900000030000000c406130055000000f30000000100000000000000af2e12000b00000000000000984d1200020000000000000000000000a32e12000c00000000000000a84d1200020000000000000000000000962e12000d00000000000000b84d12000100000000000000000000008f2e12000700000000000000c04d1200010000000000000000000000772e12001800000000000000c84d12000100000000000000000000005f2e12001800000000000000d04d1200010000000000000000000000ba2e12001600000000000000d84d12000100000000000000994f120042000000db4f12002a0000002b4f120045000000704f120029000000f04e12003b000000c04e120030000000734e12004d000000264e12004d000000e04d120046000000204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e20416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e2041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e2043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e20417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e2774207061757365642028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e20417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e00000000000000aa3912000a0000000000000040501200010000000000000000000000b4391200130000000000000048501200010000000000000066501200190000005050120016000000204475706c696361746564206865617274626561742e204e6f6e206578697374656e74207075626c6963206b65792e000b2b1300640000003d0500000100000000000000b6491200120000000000000054511200010000000000000000000000a649120010000000000000005c511200010000000000000000000000994912000d00000000000000645112000100000000000000000000008d4912000c000000000000006c511200010000000000000000000000814912000c00000000000000745112000100000000000000000000006d49120014000000000000007c511200010000000000000000000000c84912000800000000000000845112000100000000000000415212002300000020521200210000000f52120011000000f951120016000000d951120020000000ba5112001f0000008c5112002e0000002054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e2054686520756e636c6520697320616c726561647920696e636c756465642e2054686520756e636c6520697320746f6f206869676820696e20636861696e2e2054686520756e636c652069732067656e657369732e20546f6f206d616e7920756e636c65732e20556e636c657320616c72656164792073657420696e2074686520626c6f636b2e2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e4765747320616e64206465636f6465732074696d657374616d7020696e686572656e742064617461fc0000001000000004000000fd000000d42b120057000000d900000012000000bc52120022000000bc030000010000002f6275696c642f72756e74696d652f706f6c6b61646f742f7372632f6c69622e727354696d657374616d7020746f6f2066617220696e2066757475726520746f206163636570745468657265206973206f6e6c79206f6e6520666174616c206572726f723b20716564000000120000000800000004000000fe0000004e6f206f74686572206572726f72732061726520616363657074656420616674657220616e2068617264206572726f7221496e686572656e7420776974682073616d65206964656e74696669657220616c726561647920657869737473210000db53120007000000c05312001b0000002031130002000000bc52120022000000620400000100000042616420696e70757420646174612070726f766964656420746f2076657273696f6e0000ec5312000d000000657865637574655f626c6f636b0000000454120010000000696e697469616c697a655f626c6f636b1c541200080000006d657461646174612c5412000f0000006170706c795f65787472696e73696300445412000e00000066696e616c697a655f626c6f636b00005c54120013000000696e686572656e745f65787472696e7369637300785412000f000000636865636b5f696e686572656e747300905412000b00000072616e646f6d5f7365656400a45412001400000076616c69646174655f7472616e73616374696f6ec05412000f0000006f6666636861696e5f776f726b657200d85412000a00000076616c696461746f72730000ec5412001000000076616c696461746f725f67726f7570730455120012000000617661696c6162696c6974795f636f726573000020551200190000007065727369737465645f76616c69646174696f6e5f646174610000004455120018000000636865636b5f76616c69646174696f6e5f6f757470757473645512001700000073657373696f6e5f696e6465785f666f725f6368696c6400845512000c00000073657373696f6e5f696e666f985512000f00000076616c69646174696f6e5f636f646500b05512001a000000686973746f726963616c5f76616c69646174696f6e5f636f64650000d45512001e00000063616e6469646174655f70656e64696e675f617661696c6162696c6974790000fc5512001000000063616e6469646174655f6576656e7473145612000c000000646d715f636f6e74656e7473285612001e000000696e626f756e645f68726d705f6368616e6e656c735f636f6e74656e7473000050561200130000006772616e6470615f617574686f726974696573006c5612002d0000007375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963000000a45612001c00000067656e65726174655f6b65795f6f776e6572736869705f70726f6f66c85612000d000000636f6e66696775726174696f6e000000e05612001300000063757272656e745f65706f63685f737461727400fc5612000d00000063757272656e745f65706f6368000000145712000a0000006e6578745f65706f63680000285712000b000000617574686f726974696573003c5712001500000067656e65726174655f73657373696f6e5f6b6579730000005c571200130000006465636f64655f73657373696f6e5f6b65797300785712000d0000006163636f756e745f6e6f6e6365000000905712000a00000071756572795f696e666f0000a45712001100000071756572795f6665655f64657461696c730000001c151300580000001601000001000000496e7374616e636531436f6c6c65637469766550726f706f73616c7350726f706f73616c436f756e7450726f706f73616c4f66566f74696e67496e7374616e636532436f6c6c65637469766557726f6e6750726f706f73616c576569676874416c7265616479496e697469616c697a65644475706c6963617465566f746557726f6e67496e64657857726f6e6750726f706f73616c4c656e67746800000000006c5912000b0000000000000078591200030000000000000000000000c0591200180000000000000000000000805a12000700000000000000885a1200020000000000000000000000b85a12000a0000000000000000000000bc8712000700000000000000085b1200030000000000000000000000505b12001b0000000000000000000000d48812000400000000000000285c1200030000000000000000000000705c12000e0000000000000000000000e05c12000500000000000000e85c1200040000000000000000000000485d12001e0000000000000000000000385e12001300000000000000c88912000100000000000000000000004c5e12000d000000000000007365745f6d656d6265727300000000001c7012000b000000000000002c1a130011000000000000002770120005000000000000002c7012001400000000000000407012000900000000000000497012000b000000526c1200210000005431130000000000736c120052000000c56c120039000000fe6c12004e0000004c6d12002b0000005431130000000000776d12001600000054311300000000008d6d120055000000e26d1200490000005431130000000000f2eb12000b0000009e6312000a0000002b6e120015000000406e120039000000796e120039000000b26e1200270000009464120006000000d96e12005d000000366f12003c000000726f120052000000c46f12005800000036ec12000c00000065786563757465000000000001b512000800000000000000346b12001f00000000000000c16512000c00000000000000d2a012000c000000536b12003d0000005431130000000000906b12002b0000005431130000000000f2eb12000b0000009e6312000a000000bb6b1200610000001c6c120036000000796712000a00000036ec12000c00000000000000176b12000900000000000000206b1200140000000000000001b512000800000000000000346b12001f00000000000000c16512000c00000000000000d2a012000c0000008a6712003f0000005431130000000000c9671200220000005431130000000000eb671200510000003c681200160000005431130000000000f2eb12000b0000009e6312000a000000526812002c000000c663120039000000ff631200380000007e68120032000000b06812003e000000ee6812004000000094641200060000002e6912002e0000005c6912003d000000996912002b000000c469120043000000076a12002f000000366a1200370000006d6a12003a000000a76a120034000000db6a1200300000000b6b12000c00000036ec12000c0000000000000001b512000800000000000000b7f912000700000000000000a00e13000500000000000000876512001600000000000000836712000700000000000000a1fb120004000000cd6512003d00000054311300000000000a6612002400000054311300000000002e66120053000000816612005a000000f2eb12000b0000009e6312000a000000db6612004300000094641200060000001e6712002c0000004a6712002f000000796712000a00000036ec12000c000000636c6f736500000000000000389712000d00000000000000b7f912000700000000000000a00e130005000000000000008765120016000000000000009d6512001500000000000000b26512000f00000000000000c16512000c00000000000000d2a012000c000000076012005400000054311300000000005b601200560000005431130000000000b160120053000000046112003000000054311300000000003461120053000000876112004a0000005431130000000000d1611200590000002a6212005800000054311300000000008262120063000000e5621200590000003e631200600000005431130000000000f2eb12000b0000009e6312000a000000a86312001e000000c663120039000000ff6312003800000037641200330000006a6412002a00000094641200060000009a64120044000000de641200600000003e65120038000000766512001100000036ec12000c000000646973617070726f76655f70726f706f73616c00b45e12005e0000005431130000000000125f1200230000005431130000000000355f12000c000000415f1200480000005431130000000000f2eb12000b000000895f120038000000c15f12000b000000cc5f120013000000df5f12002800000036ec12000c00000020446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e20506172616d65746572733a202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e20436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73204442205765696768743a202a2052656164733a2050726f706f73616c73202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f6620436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e2049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f74652069662069742069732068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e2049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e7320756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e2049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b656420766961202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e20232320576569676874202d20604f2842202b204d202b205031202b20503229602077686572653a2020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e646564292020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564292020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652e2020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429202d2044423a20202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f283129602920202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f28503229602920202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029202d20757020746f2033206576656e7473436f6d706163743c50726f706f73616c496e6465783e70726f706f73616c5f7765696768745f626f756e64436f6d706163743c5765696768743e6c656e6774685f626f756e642041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e205265717569726573207468652073656e64657220746f2062652061206d656d6265722e205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c20666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564292020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d2960292020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029202d2031206576656e74617070726f7665204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e205265717569726573207468652073656e64657220746f206265206d656d6265722e20607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029206f722070757420757020666f7220766f74696e672e202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653a2020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653a20202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c2032602920202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d203260292020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d2960292020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f28312960292020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a20202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c2032602920202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292020202d2031206576656e747468726573686f6c64436f6d706163743c4d656d626572436f756e743e426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e20446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60205365742074686520636f6c6c6563746976652773206d656d626572736869702e202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642e202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e20526571756972657320726f6f74206f726967696e2e204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c20627574202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e202d20604f284d50202b204e29602077686572653a2020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564292020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564292020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564292020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d626572732020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c732020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c2020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e656e65775f6d656d626572737072696d654f7074696f6e3c543a3a4163636f756e7449643e6f6c645f636f756e744d656d626572436f756e7400000000db571200090000000000000000000000f22113000c00000000000000000000000000000000000000000000000000000000000000543113006472120000000000000000007472120001000000000000000100000000000000f15712000a0000000106000000000000b7f9120007000000000000007c7212001a0000000000000000000000000000000000000054311300987212000000000000000000a872120001000000000000000000000000000000fb571200060000000106000000000000b7f912000700000000000000b0721200230000000000000000000000000000000000000054311300d47212000000000000000000e472120001000000000000000000000000000000e45712000d0000000000000000000000cbed1200030000000000000000000000000000000000000000000000000000000000000054311300ec7212000000000000000000fc72120001000000000000000100000000000000c7e112000700000000000000000000002c1a13001100000000000000000000000000000000000000000000000000000000000000543113000473120000000000000000001473120001000000000000000100000000000000dbe11200050000000000000000000000e3f812000c00000000000000000000000000000000000000000000000000000000000000543113001c73120000000000000000002c731200010000000000000000000000120000000000000001000000620000004d741200240000003c5420617320436f6e6669673c493e3e3a3a50726f706f73616c0000120000000000000001000000ff0000001a74120033000000566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e0012000000000000000100000000010000ed7312002d00000012000000000000000100000022000000db731200120000001200000000000000010000003f0000008d7312004e00000012000000000000000100000023000000347312005900000020546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e2050726f706f73616c7320736f206661722e20566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e2054686520686173686573206f6620746865206163746976652070726f706f73616c732e00000000000000db571200090000000000000000000000f22113000c00000000000000000000000000000000000000000000000000000000000000543113008476120000000000000000007472120001000000000000000100000000000000f15712000a0000000106000000000000b7f9120007000000000000007c7212001a0000000000000000000000000000000000000054311300947612000000000000000000a872120001000000000000000000000000000000fb571200060000000106000000000000b7f912000700000000000000b0721200230000000000000000000000000000000000000054311300a47612000000000000000000e472120001000000000000000000000000000000e45712000d0000000000000000000000cbed1200030000000000000000000000000000000000000000000000000000000000000054311300b47612000000000000000000fc72120001000000000000000100000000000000c7e112000700000000000000000000002c1a1300110000000000000000000000000000000000000000000000000000000000000054311300c476120000000000000000001473120001000000000000000100000000000000dbe11200050000000000000000000000e3f812000c0000000000000000000000000000000000000000000000000000000000000054311300d476120000000000000000002c73120001000000000000000000000012000000000000000100000062000000120000000000000001000000ff00000012000000000000000100000000010000120000000000000001000000220000001200000000000000010000003f0000001200000000000000010000002300000000000000d0ce1200080000000000000018781200040000000000000000000000387812000300000000000000000000005078120005000000000000005878120005000000000000000000000080781200030000000000000000000000987812000800000000000000e8d01200010000000000000000000000a0781200020000000000000000000000b07812000b00000000000000e8d01200010000000000000000000000bc78120002000000000000000000000090cf12000800000000000000cc781200020000000000000000000000dc781200020000000000000000000000ec7812000e00000000000000cc781200020000000000000000000000fc7812000200000000000000000000000c7912000600000000000000147912000300000000000000000000002c791200020000000000000079e5120009000000357c12000d00000082e5120004000000497012000b0000009c7b120053000000ef7b120010000000ff7b120036000000566f74656400000079e512000900000082e5120004000000a1fb120004000000497012000b000000497012000b000000e97a1200420000002b7b120046000000717b12002b000000417070726f766564b87a120031000000a67a120012000000446973617070726f76656400717a120035000000a67a12001200000082e5120004000000637a12000e0000001a7a120049000000007a12001a0000004d656d62657245786563757465640000ad79120053000000007a12001a000000436c6f736564000082e5120004000000497012000b000000497012000b0000003c79120056000000927912001b00000020412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d20412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e205c5b70726f706f73616c5f686173682c20726573756c745c5d2041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e4469737061746368526573756c742041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e205c5b70726f706f73616c5f686173685c5d2041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e6720612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d2041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e20604d656d626572436f756e7460292e205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d50726f706f73616c496e646578000012000000000000000100000021000000647c12006600000062000000270000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f6e706f732d656c656374696f6e732f7372632f70687261676d656e2e72730000dc7c1200670000008e0000002f0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f6e706f732d656c656374696f6e732f7372632f62616c616e63696e672e72730000000000e0e1120009000000000000005c7e1200010000000000000000000000218312001100000000000000647e1200010000000000000000000000498312000f000000000000006c7e1200010000000000000000000000465812000a00000000000000747e1200010000000000000000000000395812000d000000000000007c7e1200010000000000000000000000275812001200000000000000847e1200010000000000000000000000ab82120008000000000000008c7e1200010000000000000000000000608312001000000000000000947e12000100000000000000000000001458120013000000000000009c7e1200010000000000000000000000505812001300000000000000a47e120001000000000000001480120018000000f47f120020000000e07f120014000000cf7f120011000000b87f120017000000977f120021000000567f120041000000167f120040000000e17e120035000000ac7e1200350000002054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e2054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e2054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e2054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e204d656d626572732061726520616c726561647920696e697469616c697a656421204475706c696361746520766f74652069676e6f726564204d69736d61746368656420696e6465782050726f706f73616c206d757374206578697374204475706c69636174652070726f706f73616c73206e6f7420616c6c6f776564204163636f756e74206973206e6f742061206d656d6265724c4f474943204552524f523a2062616b655f7265666572656e64756d2f7363686564756c655f6e616d6564206661696c656444656d6f63726163795265666572656e64756d496e666f4f66507265696d616765734e65787445787465726e616c5075626c696350726f70734465706f7369744f6653657373696f6e486973746f726963616c53657373696f6e730000002f000000600000000800000001010000020100002f0000006000000008000000300000003100000032000000330000003400000035000000360000006661696c656420746f20696e7365727420696e746f207472696500002481120054000000740100001b0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e332f7372632f7472696564626d75742e72732481120054000000670100000d0000009081120023000000605f5f49676e6f7265602063616e206e6576657220626520636f6e7374727563746564496e76616c69645769746e6573734d6178566f7465735265616368656457726f6e675570706572426f756e644e6f6e73656e7365496e7374616e744e6f74416c6c6f776564566f74657345786973744e6f7444656c65676174696e67496e73756666696369656e7446756e6473556e646572666c6f774f766572666c6f77416c726561647944656c65676174696e674e6f5065726d697373696f6e4e6f74566f7465724e6f74457870697265644e6f744c6f636b65644e6f6e6557616974696e67507265696d616765496e76616c69645265666572656e64756d496e76616c6964507265696d6167654d697373696e67496d6d696e656e74546f6f4561726c794e6f74496d6d696e656e744475706c6963617465507265696d6167654e6f7444656c656761746564416c72656164795665746f65644e6f50726f706f73616c496e76616c6964486173684e6f7453696d706c654d616a6f7269747950726f706f73616c426c61636b6c69737465644475706c696361746550726f706f73616c416c726561647943616e63656c6564426164496e64657850726f706f73616c4d697373696e6756616c75654c6f77546f6f4d616e7950726f706f73616c7300000000bc8712000700000000000000c4871200020000000000000000000000f48712000b00000000000000000000004c881200060000000000000054881200020000000000000000000000848812000a0000000000000000000000d48812000400000000000000d8881200020000000000000000000000088912000900000000000000000000005089120010000000000000006089120001000000000000000000000078891200080000000000000000000000b88912001000000000000000c8891200010000000000000000000000e0891200090000000000000000000000288a12001900000000000000c8891200010000000000000000000000448a12000b00000000000000000000009c8a12001800000000000000c8891200010000000000000000000000b48a12000b00000000000000000000000c8b12000a00000000000000188b1200030000000000000000000000608b12000f0000000000000000000000d88b12000d00000000000000c8891200010000000000000000000000e88b1200090000000000000000000000308c12001100000000000000448c12000100000000000000000000005c8c1200070000000000000000000000948c12000d00000000000000a48c1200010000000000000000000000bc8c1200070000000000000000000000f48c12000800000000000000fc8c1200030000000000000000000000448d1200140000000000000000000000e48d12000a0000000000000054311300000000000000000000000000f08d12000c0000000000000000000000508e1200160000000000000054311300000000000000000000000000688e1200050000000000000000000000908e12000d00000000000000a08e1200010000000000000000000000b88e12000a0000000000000000000000088f12001900000000000000a08e1200010000000000000000000000248f12000100000000000000000000002c8f12001600000000000000a08e1200010000000000000000000000448f12000c0000000000000000000000a48f12002200000000000000a08e1200010000000000000000000000c88f1200010000000000000000000000d08f12000d00000000000000e08f1200020000000000000000000000109012000f000000000000000000000088901200060000000000000090901200010000000000000000000000a8901200070000000000000000000000e09012000b00000000000000ec901200010000000000000000000000049112001b0000000000000000000000dc9112001100000000000000f0911200020000000000000000000000209212000f0000000000000000000000989212000e00000000000000a8921200020000000000000000000000d8921200010000000000000000000000e09212000900000000000000ec9212000200000000000000000000001c9312000f0000000000000000000000949312000f00000000000000a4931200010000000000000000000000bc931200070000000000000070726f706f73650000000000389712000d00000000000000b7f91200070000000000000048b6120005000000000000004db61200150000001cb5120028000000543113000000000044b51200460000008ab51200210000005431130000000000abb5120036000000e1b5120046000000543113000000000027b6120012000000543113000000000039b612000f0000007365636f6e6400000000000001b512000800000000000000c1941200120000000000000009b512001300000000000000d2a012000c00000037b312002e000000543113000000000065b3120041000000a6b31200450000005431130000000000ebb31200330000001eb41200510000006fb412004a0000005431130000000000b9b4120048000000766f74650000000072aa120009000000000000007baa12001800000000000000d488120004000000000000001eb3120019000000fcb112004d00000049b212002f00000054311300000000000b99120033000000543113000000000078b2120038000000b0b21200220000005431130000000000d2b212004c000000656d657267656e63795f63616e63656c0000000072aa12000900000000000000bf9712000f00000034b112005400000078b012000c000000543113000000000088b112003f0000005431130000000000c7b1120035000000543113000000000008a412001000000065787465726e616c5f70726f706f736500000000389712000d00000000000000b7f91200070000002cb012004c00000078b012000c000000543113000000000084b012003b0000005431130000000000d2ae1200360000005431130000000000bfb012004600000005b112002f00000065787465726e616c5f70726f706f73655f6d616a6f7269747900000082af120056000000d8af1200180000005431130000000000f0af12003c0000005431130000000000d2ae120036000000543113000000000008af1200530000005baf120027000000543113000000000003ae12000f00000065787465726e616c5f70726f706f73655f64656661756c7424ae12005200000076ae120021000000543113000000000097ae12003b0000005431130000000000d2ae120036000000543113000000000008af1200530000005baf120027000000543113000000000003ae12000f000000666173745f747261636b000000000000389712000d00000000000000b7f91200070000000000000012ae12000d00000000000000a9f912000e000000000000001fae12000500000000000000a9f912000e00000095ab120054000000e9ab12005900000042ac12003b00000054311300000000007dac1200350000005431130000000000b2ac12003e000000f0ac12005800000048ad1200260000006ead120055000000c3ad12002f0000005431130000000000f2ad120011000000543113000000000003ae12000f0000007665746f5f65787465726e616c00000093aa12002f0000005431130000000000c2aa1200370000005431130000000000f9aa12004c000000543113000000000045ab120010000000543113000000000055ab12004000000063616e63656c5f7265666572656e64756d0000000000000072aa120009000000000000007baa12001800000015aa1200150000005431130000000000d7a312003100000054311300000000002aaa120036000000543113000000000060aa12001200000063616e63656c5f7175657565640000000000000010aa12000500000000000000bf9712000f00000063a91200280000005431130000000000d7a312003100000054311300000000008ba91200320000005431130000000000bda912005300000064656c6567617465000000003aa912000200000000000000e3f812000c000000000000003ca912000a0000000000000046a912000a0000000000000050a91200070000000000000057a912000c000000dca512004f00000054311300000000002ba612005600000081a61200330000005431130000000000b4a61200580000000ca712001e0000002aa712005700000081a71200260000005431130000000000a7a7120052000000f9a71200560000004fa8120051000000a0a8120055000000f5a8120032000000543113000000000027a9120013000000543113000000000059a5120050000000a9a5120033000000756e64656c6567617465000018a412003400000054311300000000004ca4120058000000a4a41200380000005431130000000000dca41200520000002ea5120016000000543113000000000044a5120015000000543113000000000059a5120050000000a9a5120033000000636c6561725f7075626c69635f70726f706f73616c730000baa312001d0000005431130000000000d7a3120031000000543113000000000008a41200100000006e6f74655f707265696d61676500000000000000aaa31200100000000000000042ec12000700000009a312005800000061a312004900000054311300000000000b99120033000000543113000000000029a212003200000054311300000000005ba2120017000000543113000000000072a21200540000006e6f74655f707265696d6167655f6f7065726174696f6e616c000000c6a21200430000006e6f74655f696d6d696e656e745f707265696d61676500002aa11200510000007ba1120050000000cba112004e00000019a212001000000054311300000000000b99120033000000543113000000000029a212003200000054311300000000005ba2120017000000543113000000000072a21200540000006e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0000dea012004c000000726561705f707265696d61676500000000000000389712000d00000000000000b7f912000700000000000000baa012001800000000000000d2a012000c000000a19e12003d00000054311300000000000b991200330000005431130000000000de9e120034000000129f12004b0000005d9f12004000000054311300000000009d9f120054000000f19f12005700000048a012002c000000543113000000000074a012001800000054311300000000008ca012002e000000756e6c6f636b000000000000739a12000600000000000000e3f812000c000000199e12002900000054311300000000000b991200330000005431130000000000429e12002f0000005431130000000000719e12003000000072656d6f76655f766f74650000000000a00e13000500000000000000bf9712000f000000ce971200200000005431130000000000799a1200040000007d9a120023000000a09a120020000000c09a120025000000e59a120040000000259b1200360000005b9b1200220000007d9b120058000000d59b1200170000005431130000000000ec9b12002b000000179c12003c000000539c1200380000008b9c120030000000bb9c120057000000129d120057000000699d12003a0000005431130000000000a39d120053000000f69d1200230000005431130000000000a89912003e0000005431130000000000e6991200560000003c9a12003700000072656d6f76655f6f746865725f766f746500000000000000739a12000600000000000000e3f812000c00000000000000a00e13000500000000000000bf9712000f000000ce971200200000005431130000000000ee97120054000000429812004c0000008e98120056000000e49812002700000054311300000000000b9912003300000054311300000000003e991200540000009299120016000000a89912003e0000005431130000000000e6991200560000003c9a120037000000656e6163745f70726f706f73616c000000000000389712000d00000000000000b7f912000700000000000000a00e13000500000000000000bf9712000f0000006b97120054000000626c61636b6c69737400000000000000389712000d00000000000000b7f912000700000000000000459712000f000000000000005497120017000000d3941200520000002595120010000000543113000000000035951200550000008a95120055000000df9512001b0000005431130000000000fa9512003c0000005431130000000000369612003f0000007596120052000000c79612000b0000005431130000000000d296120051000000239712001500000063616e63656c5f70726f706f73616c0000000000b79412000a00000000000000c194120012000000f493120013000000543113000000000007941200410000005431130000000000489412003500000054311300000000007d9412003a0000002052656d6f766520612070726f706f73616c2e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e202d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e205765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e28296070726f705f696e646578436f6d706163743c50726f70496e6465783e205065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e672070726f706f73656420616761696e2e2049662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e672072656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c207468656e2069742077696c6c2062652063616e63656c6c65642e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e202d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e202d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652063616e63656c6c65642e205765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061202020726561736f6e61626c652076616c7565292e70726f706f73616c5f686173686d617962655f7265665f696e6465784f7074696f6e3c5265666572656e64756d496e6465783e20456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e5265666572656e64756d496e6465782052656d6f7665206120766f746520666f722061207265666572656e64756d2e2049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c20656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7220626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f722020207265666572656e64756d2060696e646578602e202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2e2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e7461726765742049663a202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f72202d20746865207265666572656e64756d206973206f6e676f696e672c206f72202d20746865207265666572656e64756d2068617320656e646564207375636820746861742020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f722020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f722020202d20746865206163636f756e74206d61646520612073706c697420766f7465202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72652066756e6473206265696e6720617661696c61626c652e2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643a202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f766572202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c7665202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756d206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465207265676973746572656420666f72207265666572656e64756d2060696e646578602e20556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e205765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e20202045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e20546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d61676520776173206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c7920776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e20456d6974732060507265696d616765526561706564602e205765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e70726f706f73616c5f6c656e5f75707065725f626f756e64436f6d706163743c7533323e2053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e2052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f20626520696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e2074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c206e6f2066656520697320706169642e202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e20456d6974732060507265696d6167654e6f746564602e205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e2053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e2052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f20626520696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e656e636f6465645f70726f706f73616c20436c6561727320616c6c207075626c69632070726f706f73616c732e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e205765696768743a20604f283129602e20556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e20546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652063757272656e746c792064656c65676174696e672e20456d6974732060556e64656c656761746564602e205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e2044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f72207468652074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a2020202d2062652064656c65676174696e6720616c72656164793b206f722020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656420202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e207468652020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d7573742020206e6f74206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e20456d697473206044656c656761746564602e746f636f6e76696374696f6e436f6e76696374696f6e62616c616e636542616c616e63654f663c543e2043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e205765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e77686963682052656d6f76652061207265666572656e64756d2e202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e2023205765696768743a20604f283129602e7265665f696e646578436f6d706163743c5265666572656e64756d496e6465783e205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e20456d69747320605665746f6564602e205765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f65727360205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c656420696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e6520627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e20546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f2020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e20456d697473206053746172746564602e205765696768743a20604f28312960766f74696e675f706572696f6464656c6179205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c207265666572656e64756d2e20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e20556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c207265666572656e64756d2e20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c207265666572656e64756d2e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e205765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2e2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6520546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e20566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3b206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e4163636f756e74566f74653c42616c616e63654f663c543e3e205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e207468697320202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e205765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e70726f706f73616c7365636f6e64735f75707065725f626f756e642050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742e202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e20456d697473206050726f706f736564602e205765696768743a20604f2870296076616c7565436f6d706163743c42616c616e63654f663c543e3e00000000000034bb12000f000000000000000000000043bb12000900000000000000000000000000000000000000000000000000000000000000543113004cbb120000000000000000005cbb1200010000000000000001000000000000008c8012000b000000000000000000000064bb12002700000000000000000000000000000000000000000000000000000000000000543113008cbb120000000000000000009cbb1200010000000000000001000000000000009780120009000000010500000000000043bb12000900000000000000a4bb1200210000000000000000000000000000000000000054311300c8bb12000000000000000000d8bb12000300000000000000000000000000000077801200090000000106000000000000b7f912000700000000000000f0bb12003a00000000000000000000000000000000000000543113002cbc120000000000000000003cbc1200020000000000000000000000000000004cbc12000f0000000000000000000000bf9712000f00000000000000000000000000000000000000000000000000000000000000543113005cbc120000000000000000006cbc12000100000000000000010000000000000074bc12000d0000000000000000000000bf9712000f000000000000000000000000000000000000000000000000000000000000005431130084bc1200000000000000000094bc12000200000000000000010000000000000067801200100000000105000000000000bf9712000f00000000000000a4bc1200350000000000000000000000000000000000000054311300dcbc12000000000000000000ecbc12000300000000000000000000000000000004bd1200080000000105000000000000e3f812000c000000000000000cbd120032000000000000000000000000000000000000005431130040bd1200000000000000000050bd12000400000000000000010000000000000070bd1200050000000105000000000000e3f812000c00000000000000a9f912000e000000000000000000000000000000000000005431130078bd1200000000000000000088bd120004000000000000000000000000000000a8bd1200150000000000000000000000a1fb1200040000000000000000000000000000000000000000000000000000000000000054311300c0bd12000000000000000000d0bd120002000000000000000100000000000000808012000c0000000000000000000000e0bd1200180000000000000000000000000000000000000000000000000000000000000054311300f8bd1200000000000000000008be12000400000000000000000000000000000028be1200090000000106000000000000b7f91200070000000000000031be120023000000000000000000000000000000000000005431130054be1200000000000000000064be12000200000000000000000000000000000074be12000d0000000106000000000000b7f912000700000000000000a1fb120004000000000000000000000000000000000000005431130084be1200000000000000000094be1200010000000000000001000000000000009cbe12000e0000000000000000000000aabe1200080000000000000000000000000000000000000000000000000000000000000054311300b4be12000000000000000000c4be12000300000000000000000000005075626c696350726f70436f756e7450726f70496e6465781200000000000000010000002200000075c512003d0000005665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e00120000000000000001000000030100002dc5120048000000285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e2900000012000000000000000100000023000000d6c41200210000005431130000000000f7c4120036000000507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00001200000000000000010000002300000045c41200580000009dc41200390000005265666572656e64756d436f756e740012000000000000000100000022000000f9c312004c0000004c6f77657374556e62616b65640000001200000000000000010000002200000079c3120049000000c2c31200370000005265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e000000120000000000000001000000230000000ac312002d000000543113000000000037c3120042000000566f74696e674f66566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00001200000000000000010000000401000022c212005700000079c21200570000005431130000000000d0c212003a0000004c6f636b730000001200000000000000010000002300000047c11200570000009ec11200540000005431130000000000f2c11200300000004c6173745461626c656457617345787465726e616c00000012000000000000000100000023000000e7c01200560000003dc112000a00000028543a3a486173682c20566f74655468726573686f6c642912000000000000000100000023000000f9bf1200560000004fc0120055000000a4c0120029000000cdc012001a000000426c61636b6c69737428543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e29120000000000000001000000230000006bbf120054000000bfbf12003a00000043616e63656c6c6174696f6e730000001200000000000000010000002300000021bf12004a00000053746f7261676556657273696f6e52656c6561736573000012000000000000000100000023000000dcbe12001f0000005431130000000000fbbe1200260000002053746f726167652076657273696f6e206f66207468652070616c6c65742e204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e2041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d6265722028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e20546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e20546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743a202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f72202d20605075626c696350726f70736020697320656d7074792e205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c69632070726f706f73616c2e204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e20746865206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e2054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e20416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e2054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e20496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e2054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746f20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e20546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742e2054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e2054686f73652077686f2068617665206c6f636b65642061206465706f7369742e2054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e20546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e20546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e00000000000074c712000f00000000000000a9f912000e000000000000005431130084c71200000000000000000094c71200050000000000000000000000bcc712000c00000000000000a9f912000e0000000000000054311300c8c712000000000000000000d8c71200010000000000000000000000e0c712000c00000000000000a9f912000e0000000000000054311300ecc712000000000000000000fcc7120001000000000000000000000004c812000e0000000000000057a912000c000000000000005431130014c81200000000000000000024c812000100000000000000000000002cc812001500000000000000a9f912000e000000000000005431130044c81200000000000000000054c812000100000000000000000000005cc812000d00000000000000a9f912000e00000000000000543113006cc8120000000000000000007cc8120001000000000000000000000084c81200130000000000000057a912000c000000000000005431130098c812000000000000000000a8c81200010000000000000000000000b0c812000800000000000000cbed1200030000000000000054311300b8c812000000000000000000c8c812000100000000000000456e6163746d656e74506572696f6400120000000000000001000000050100008dca12005c0000005431130000000000e9ca12004c00000035cb12005a0000008fcb1200270000004c61756e6368506572696f641200000000000000010000000501000054ca120039000000566f74696e67506572696f641200000000000000010000000501000026ca12002e0000004d696e696d756d4465706f736974000012000000000000000100000045000000d9c912004d00000046617374547261636b566f74696e67506572696f64000000120000000000000001000000060100009ec912003b000000436f6f6c6f6666506572696f640000001200000000000000010000004a00000046c9120058000000507265696d616765427974654465706f7369740012000000000000000100000025000000fcc812004a0000004d6178566f74657312000000000000000100000052000000d0c812002c00000020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e2054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e20506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e20546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e20486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e20486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e20546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e2049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e73757265207468617420766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e000000000000d0ce12000800000000000000d8ce1200020000000000000000000000e8ce1200010000000000000000000000f0ce12000600000000000000f8ce120003000000000000000000000010cf120001000000000000000000000018cf12000e000000000000005431130000000000000000000000000028cf120001000000000000000000000030cf1200070000000000000038cf120002000000000000000000000048cf120001000000000000000000000050cf1200060000000000000058cf120001000000000000000000000060cf120001000000000000000000000068cf1200090000000000000058cf120001000000000000000000000074cf12000100000000000000000000007ccf1200090000000000000058cf120001000000000000000000000088cf120001000000000000000000000090cf1200080000000000000098cf1200020000000000000000000000a8cf1200010000000000000000000000b0cf12000900000000000000bccf1200020000000000000000000000cccf1200010000000000000000000000d4cf12000b00000000000000fce41200010000000000000000000000e0cf1200010000000000000000000000e8cf12000600000000000000f0cf120003000000000000000000000008d0120001000000000000000000000010d012000d0000000000000020d0120003000000000000000000000038d0120001000000000000000000000040d012000c0000000000000020d012000300000000000000000000004cd01200020000000000000000000000748212000f000000000000005cd012000200000000000000000000006cd01200020000000000000000000000948212000f000000000000005cd012000200000000000000000000007cd012000200000000000000000000008cd012000e000000000000009cd01200040000000000000000000000bcd01200020000000000000000000000ccd012000800000000000000fce41200010000000000000000000000d4d01200010000000000000000000000dcd012000b00000000000000e8d01200010000000000000000000000f0d01200010000000000000050726f706f73656443bb120009000000d5d1120007000000bcd512004c0000005461626c6564000043bb120009000000d5d1120007000000aed512000e0000004fd512005f00000045787465726e616c5461626c6564000029d51200260000005374617274656400bf9712000f0000001cd512000d000000ebd41200310000005061737365640000bf9712000f000000b1d412003a0000004e6f7450617373656400000077d412003a00000043616e63656c6c656400000048d412002f0000004578656375746564bf9712000f000000a1fb12000400000016d412003200000044656c65676174656400000079e512000900000079e5120009000000ced3120048000000556e64656c6567617465640090d312003e0000005665746f6564000079e512000900000082e512000400000085d312000b00000041d3120044000000507265696d6167654e6f74656400000082e512000400000079e5120009000000d5d1120007000000e9d2120058000000507265696d616765557365647fd2120045000000c4d212002500000082e5120004000000bf9712000f0000003cd21200430000001fd212001d000000dcd11200430000001fd212001d000000507265696d616765526561706564000082e512000400000079e5120009000000d5d112000700000079e51200090000005dd112004b000000a8d112002d000000556e6c6f636b65642ed112002f000000426c61636b6c69737465640082e5120004000000f8d012003600000020412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e20416e205c5b6163636f756e745c5d20686173206265656e20756e6c6f636b6564207375636365737366756c6c792e2041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722e205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d42616c616e636520412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d20412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e20412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d20412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d20416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d426c6f636b4e756d62657220416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e20416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d20412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c2069735f6f6b5c5d2041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d20412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d20412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d566f74655468726573686f6c6420416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e2041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c206465706f7369746f72735c5d5665633c4163636f756e7449643e2041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d4661696c656420746f2067656e657261746520686973746f726963616c20616e6365737472792d696e636c7573696f6e2070726f6f662e004c141300570000001b02000001000000496e73657274696f6e206e657665722064656c657465732e2481120054000000640200000d000000617373657274696f6e206661696c65643a20216578697374696e675f6b65792e69735f656d70747928290000248112005400000080030000150000000000000058831200080000000000000088da1200010000000000000000000000498312000f0000000000000090da120001000000000000000000000041831200080000000000000098da1200010000000000000000000000328312000f00000000000000a0da1200010000000000000000000000218312001100000000000000a8da12000100000000000000000000000e8312001300000000000000b0da1200010000000000000000000000fd8212001100000000000000b8da1200010000000000000000000000f28212000b00000000000000c0da1200010000000000000000000000e88212000a00000000000000c8da1200010000000000000000000000db8212000d00000000000000d0da1200010000000000000000000000cf8212000c00000000000000d8da1200010000000000000000000000be8212001100000000000000e0da1200010000000000000000000000b38212000b00000000000000e8da1200010000000000000000000000ab8212000800000000000000f0da1200010000000000000000000000a38212000800000000000000f8da1200010000000000000000000000948212000f0000000000000000db120001000000000000000000000083821200110000000000000008db1200010000000000000000000000748212000f0000000000000010db1200010000000000000000000000698212000b0000000000000018db120001000000000000000000000060821200090000000000000020db1200010000000000000000000000568212000a0000000000000028db12000100000000000000000000004e821200080000000000000030db1200010000000000000000000000428212000c0000000000000038db120001000000000000000000000031821200110000000000000040db120001000000000000000000000029821200080000000000000048db120001000000000000000000000020821200090000000000000050db12000100000000000000000000000f821200110000000000000058db1200010000000000000000000000028212000d0000000000000060db1200010000000000000000000000f88112000a0000000000000068db1200020000000000000000000000e7811200110000000000000078db1200010000000000000000000000df811200080000000000000080db1200010000000000000000000000d08112000f0000000000000088db1200010000000000000000000000c18112000f0000000000000090db1200010000000000000000000000b38112000e0000000000000098db1200010000000000000000000000608312001000000000000000a0db120001000000000000004fe012000e00000037e012001800000029e012000e00000003e0120026000000eddf120016000000d2df12001b000000a7df12002b0000009adf12000d00000085df1200150000005edf12002700000050df12000e00000039df1200170000002cdf12000d00000022df12000a00000019df12000900000006df120013000000e4de120022000000d3de120011000000bede12001500000095de12002900000059de12003c00000027de120032000000f4dd120033000000d1dd120023000000a8dd1200290000007edd12002a0000003edd12004000000015dd12002900000084dc120056000000dadc12003b0000004ddc12003700000027dc12002600000012dc120015000000f1db120021000000cddb120024000000a8db120025000000204d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e205468652070726f7669646564207769746e65737320646174612069732077726f6e672e204d6178696d756d206e756d626572206f6620766f74657320726561636865642e20496e76616c696420757070657220626f756e642e2044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e20546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696c207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e20546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e20546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e20416e20756e657870656374656420696e746567657220756e646572666c6f77206f636375727265642e20416e20756e657870656374656420696e7465676572206f766572666c6f77206f636375727265642e20546865206163636f756e7420697320616c72656164792064656c65676174696e672e20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e2054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e20546865206c6f636b206f6e20746865206163636f756e7420746f20626520756e6c6f636b656420686173206e6f742079657420657870697265642e2054686520746172676574206163636f756e7420646f6573206e6f7420686176652061206c6f636b2e204e6f2070726f706f73616c732077616974696e6720496e76616c696420707265696d61676520566f746520676976656e20666f7220696e76616c6964207265666572656e64756d20507265696d616765206e6f7420666f756e6420496d6d696e656e7420546f6f206561726c79204e6f7420696d6d696e656e7420507265696d61676520616c7265616479206e6f746564204e6f742064656c656761746564204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365204e6f2065787465726e616c2070726f706f73616c20496e76616c69642068617368204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792050726f706f73616c207374696c6c20626c61636b6c69737465642050726f706f73616c20616c7265616479206d6164652043616e6e6f742063616e63656c207468652073616d652070726f706f73616c20747769636520556e6b6e6f776e20696e6465782050726f706f73616c20646f6573206e6f742065786973742056616c756520746f6f206c6f77000000120000000100000001000000070100004c14130057000000e70400002d0000004c14130057000000e8040000300000004661696c656420746f206465636f64652060507265696d616765537461747573602076617269616e740000004c14130057000000170500002d0000004c141300570000001e050000400000003a6865617070616765735370656356657273696f6e4e65656473546f496e637265617365496e76616c6964537065634e616d654661696c6564546f4578747261637452756e74696d6556657273696f6e3a636f64653a6368616e6765735f747269652f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f73797374656d2f7372632f6c69622e727300008ee212002300000064e212002a0000000ce21200580000006f00000001000000496e7374616e6365314d656d626572736869704d656d62657273416c72656164794d656d6265725072696d654e6f744d656d6265720000000ce2120058000000a70000000d0000000ce2120058000000d6000000110000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f6d656d626572736869702f7372632f6c69622e7273696e7465726e616c206572726f723a20656e746572656420756e726561636861626c6520636f64653a205f5f5068616e746f6d4974656d2073686f756c64206e6576657220626520757365642e6d6f646c70792f7574696c6973756261000000d4e2120052000000af000000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f746970732f7372632f6c69622e72732f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f62616c616e6365732f7372632f6c69622e72733a65787472696e7369635f696e6465780000000094e412001000000000000000a4e41200010000000000000000000000ace41200010000000000000000000000b4e412000f00000000000000c4e41200020000000000000000000000d4e41200010000000000000000000000dce412000b0000000000000054311300000000000000000000000000e8e41200010000000000000000000000f0e412000a00000000000000fce4120001000000000000000000000004e512000100000000000000000000000ce512000d00000000000000fce412000100000000000000000000001ce5120001000000000000000000000024e5120008000000000000002ce512000200000000000000000000003ce51200010000000000000045787472696e73696353756363657373fae512000c00000006e612002e00000045787472696e7369634661696c656400113513000d000000fae512000c000000d5e5120025000000436f64655570646174656400c0e51200150000004e65774163636f756e74000079e5120009000000a1e512001f0000004b696c6c65644163636f756e7400000086e512001b00000052656d61726b656479e512000900000082e512000400000044e5120035000000204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d4163636f756e7449644861736820416e205c5b6163636f756e745c5d20776173207265617065642e2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e20603a636f6465602077617320757064617465642e20416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d4469737061746368496e666f20416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d00000000ece712000a00000000000000f8e7120001000000000000000000000010e8120001000000000000000000000018e81200060000000000000020e8120001000000000000000000000038e8120005000000000000000000000060e812000e0000000000000070e8120001000000000000000000000088e81200080000000000000000000000c8e812000800000000000000d0e81200010000000000000000000000e8e812000a000000000000000000000038e912001700000000000000d0e8120001000000000000000000000050e9120008000000000000000000000090e912001700000000000000a8e91200010000000000000000000000c0e912000a000000000000000000000010ea12000b000000000000001cea120001000000000000000000000034ea120008000000000000000000000074ea12000c0000000000000080ea120001000000000000000000000098ea1200080000000000000000000000d8ea12000b00000000000000e4ea120002000000000000000000000014eb12000b00000000000000000000006ceb1200110000000000000080eb120001000000000000000000000098eb1200060000000000000066696c6c5f626c6f636b0000000000004ff31200060000000000000055f31200070000000df312004200000072656d61726b00000000000006f31200070000000000000042ec120007000000ebf212001b0000005431130000000000f2eb12000b0000003cef12000900000036ec12000c0000007365745f686561705f7061676573000000000000e3f212000500000000000000e8f212000300000060f212003f0000005431130000000000f2eb12000b0000003cef1200090000009ff2120013000000b2f2120019000000cbf212001800000036ec12000c0000007365745f636f6465000000005cf21200040000000000000042ec12000700000014f112001a0000005431130000000000f2eb12000b0000002ef112004d00000095f01200220000007bf112005e0000002bec12000b000000d9f112005f00000038f212002400000036ec12000c0000007365745f636f64655f776974686f75745f636865636b73002af01200470000005431130000000000f2eb12000b00000071f012002400000095f01200220000002bec12000b000000b7f012005d00000036ec12000c0000007365745f6368616e6765735f747269655f636f6e6669670000000000f7ef120013000000000000000af012002000000014ef1200280000005431130000000000f2eb12000b0000003cef12000900000045ef12002c00000071ef120036000000a7ef120019000000c0ef12000d000000cdef12002a00000036ec12000c0000007365745f73746f72616765000000000002ef1200050000000000000007ef12000d00000086ee12001b0000005431130000000000f2eb12000b000000a1ee120025000000c6ee12001f000000e5ee12001d00000060ee12001a00000036ec12000c0000006b696c6c5f73746f72616765000000007aee120004000000000000007eee120008000000ceed12001e0000005431130000000000f2eb12000b000000eced12003f0000002bee12001900000044ee12001c00000060ee12001a00000036ec12000c0000006b696c6c5f7072656669780000000000baed12000600000000000000c0ed12000300000000000000c3ed12000800000000000000cbed12000300000049ec12004500000054311300000000008eec12004f000000ddec1200500000005431130000000000f2eb12000b0000002ded12003700000064ed1200190000007ded12001d0000009aed12002000000036ec12000c00000072656d61726b5f776974685f6576656e740000000000000018e81200060000000000000042ec120007000000c8eb12002a0000005431130000000000f2eb12000b000000fdeb12002e0000002bec12000b00000036ec12000c000000204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e2023203c7765696768743e202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e202d2031206576656e742e2023203c2f7765696768743e5665633c75383e204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465722074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e202d20604f285029602077686572652060506020616d6f756e74206f66206b657973207769746820707265666978206070726566697860202d206050602073746f726167652064656c6574696f6e732e202d2042617365205765696768743a20302e383334202a205020c2b573202d205772697465733a204e756d626572206f66207375626b657973202b20317072656669784b65795f7375626b657973753332204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b6579202d206049602073746f726167652064656c6574696f6e732e202d2042617365205765696768743a202e333738202a206920c2b573202d205772697465733a204e756d626572206f66206974656d736b6579735665633c4b65793e2053657420736f6d65206974656d73206f662073746f726167652e202d20604f2849296020776865726520604960206c656e677468206f6620606974656d7360202d206049602073746f72616765207772697465732028604f28312960292e202d2042617365205765696768743a20302e353638202a206920c2b5736974656d735665633c4b657956616c75653e2053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e202d20604f28312960202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292e202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f283129202d2042617365205765696768743a20372e32313820c2b573202d204442205765696768743a20202020202d205772697465733a204368616e67657320547269652c2053797374656d204469676573746368616e6765735f747269655f636f6e6669674f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e2053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e202d20604f2843296020776865726520604360206c656e677468206f662060636f646560202d20312073746f726167652077726974652028636f64656320604f28432960292e2054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2053657420746865206e65772072756e74696d6520636f64652e202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f646560202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e636f64652053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e202d20312073746f726167652077726974652e202d2042617365205765696768743a20312e34303520c2b573202d203120777269746520746f20484541505f50414745537061676573753634204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e5f72656d61726b204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e5f726174696f50657262696c6c00000000dcf81200070000000102000000000000e3f812000c00000000000000eff8120025000000000000000000000000000000000000005431130014f91200000000000000000024f91200010000000000000001000000000000002cf912000e0000000000000000000000cbed12000300000000000000000000000000000000000000000000000000000000000000543113003cf9120000000000000000004cf912000100000000000000000000000000000054f912000b00000000000000000000005ff912000e000000000000000000000000000000000000000000000000000000000000005431130070f91200000000000000000080f912000100000000000000010000000000000088f91200100000000000000000000000cbed12000300000000000000000000000000000000000000000000000000000000000000543113003cf91200000000000000000098f9120001000000000000000000000000000000a0f91200090000000105000000000000a9f912000e00000000000000b7f91200070000000000000000000000000000000000000054311300c0f912000000000000000000d0f9120001000000000000000100000000000000d8f912000d0000000105000000000000cbed1200030000000000000042ec1200070000000000000000000000000000000000000054311300e8f912000000000000000000f8f912000100000000000000010000000000000000fa1200060000000000000000000000a9f912000e000000000000000000000000000000000000000000000000000000000000005431130008fa1200000000000000000018fa12000100000000000000010000000000000020fa12000a0000000000000000000000b7f91200070000000000000000000000000000000000000000000000000000000000000054311300c0f9120000000000000000002cfa12000100000000000000010000000000000034fa12000600000000000000000000003afa12000b000000000000000000000000000000000000000000000000000000000000005431130048fa1200000000000000000058fa12000100000000000000010000000000000060fa120006000000000000000000000066fa12002300000000000000000000000000000000000000000000000000000000000000543113008cfa120000000000000000009cfa120001000000000000000100000000000000a4fa12000a0000000000000000000000aefa12000a000000000000000000000000000000000000000000000000000000000000005431130008fa12000000000000000000b8fa120001000000000000000100000000000000c0fa12000b0000000102000000000000b7f912000700000000000000cbfa1200210000000000000000000000000000000000000054311300ecfa12000000000000000000fcfa12000a0000000000000001000000000000004cfb12001200000000000000000000005efb120016000000000000000000000000000000000000000000000000000000000000005431130074fb1200000000000000000084fb1200010000000000000000000000000000008cfb1200150000000000000000000000a1fb1200040000000000000000000000000000000000000000000000000000000000000054311300a8fb12000000000000000000b8fb120001000000000000000100000000000000c0fb1200180000000000000000000000a1fb1200040000000000000000000000000000000000000000000000000000000000000054311300a8fb12000000000000000000d8fb120002000000000000000100000000000000e8fb12000e0000000000000000000000f6fb1200050000000000000000000000000000000000000000000000000000000000000054311300fcfb120000000000000000000cfc12000100000000000000000000004163636f756e74543a3a4163636f756e7449644163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e120000000000000001000000080100007e0113003a00000045787472696e736963436f756e74000012000000000000000100000023000000500113002e000000426c6f636b576569676874436f6e73756d6564576569676874000000120000000000000001000000090100002e01130022000000416c6c45787472696e736963734c656ede00130050000000426c6f636b48617368543a3a426c6f636b4e756d626572543a3a4861736800001200000000000000010000000a010000b80013002600000045787472696e7369634461746100000012000000000000000100000063000000690013004f0000004e756d6265720000120000000000000001000000220000002700130042000000506172656e744861736800000b0013001c0000004469676573744469676573744f663c543e0000001200000000000000010000003f000000cfff12003c0000004576656e74735665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e0000001200000000000000010000003f000000a7ff1200280000004576656e74436f756e744576656e74496e64657879ff12002e0000004576656e74546f706963735665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e1200000000000000010000006c00000047fd12004900000090fd1200250000005431130000000000b5fd12005400000009fe1200510000005afe120039000000543113000000000093fe120053000000e6fe12005300000039ff1200400000004c61737452756e74696d65557067726164654c61737452756e74696d6555706772616465496e666f12000000000000000100000023000000f2fc1200550000005570677261646564546f553332526566436f756e74626f6f6c000000120000000000000001000000230000009ffc1200530000005570677261646564546f547269706c65526566436f756e7436fc1200570000008dfc120012000000457865637574696f6e50686173655068617365001200000000000000010000002300000014fc1200220000002054686520657865637574696f6e207068617365206f662074686520626c6f636b2e2054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c7365202864656661756c7429206966206e6f742e2054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e2053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e6465786573206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e20416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e205468697320616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e6420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573742074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e20546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e20446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e2048617368206f66207468652070726576696f757320626c6f636b2e205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e2045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e20546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e205468652063757272656e742077656967687420666f722074686520626c6f636b2e20546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e00000000080313000c000000000000001403130014000000000000005431130028031300000000000000000038031300010000000000000000000000400313000b000000000000004b03130013000000000000005431130060031300000000000000000070031300010000000000000000000000780313000e00000000000000a9f912000e000000000000005431130088031300000000000000000098031300010000000000000000000000a00313000800000000000000a80313000f0000000000000054311300b80313000000000000000000c8031300010000000000000000000000d00313000700000000000000d70313000e0000000000000054311300e80313000000000000000000f8031300010000000000000000000000000413000a000000000000000a0413000200000000000000543113000c04130000000000000000001c0413000500000000000000426c6f636b576569676874736c696d6974733a3a426c6f636b576569676874731200000000000000010000000b0100000606130034000000426c6f636b4c656e6774686c696d6974733a3a426c6f636b4c656e67746800001200000000000000010000000c010000dc0513002a000000426c6f636b48617368436f756e7400001200000000000000010000000d0100008705130055000000446257656967687452756e74696d654462576569676874001200000000000000010000000e010000450513004200000056657273696f6e52756e74696d6556657273696f6e0000001200000000000000010000000f010000240513002100000053533538507265666978753812000000000000000100000023000000440413002a00000054311300000000006e0413004e000000bc0413004c000000080513001c000000205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e2054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e2069732074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f6620697420617320616e206964656e746966696572206f662074686520636861696e2e204765742074686520636861696e27732063757272656e742076657273696f6e2e2054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e20426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e00004c0613005300000015020000100000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f70726f78792f7372632f6c69622e72733a5f5f50414c4c45545f56455253494f4e5f5f3a00c406130055000000be000000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f6772616e6470612f7372632f6c69622e72730000002c071300550000005a000000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f696e64696365732f7372632f6c69622e72730000009407130055000000ec010000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f73657373696f6e2f7372632f6c69622e7273000000fc0713005500000066040000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f7374616b696e672f7372632f6c69622e727300000000000000d80813000500000000000000e0081300010000000000000000000000f8081300120000000000000000000000880913000d0000000000000098091300020000000000000000000000c80913000d0000000000000000000000300a13000900000000000000e00813000100000000000000000000003c0a13000d000000000000006261746368000000000000004510130005000000000000004a10130018000000c40e1300200000005431130000000000290b13001f0000005431130000000000480b13003c0000005431130000000000840b130058000000dc0b1300330000005431130000000000f2eb12000b0000000f0c13004100000036ec12000c0000005431130000000000e40e1300560000003a0f13004d000000870f130056000000dd0f130054000000311013001400000061735f6465726976617469766500000000000000a00e13000500000000000000a50e13000300000000000000a80e13000400000000000000ac0e130018000000500c1300380000005431130000000000880c130056000000de0c13003000000054311300000000000e0d130052000000600d130059000000b90d1300550000000e0e13002000000054311300000000002e0e13003e00000054311300000000006c0e13003400000062617463685f616c6c000000a40a13003c000000e00a1300490000005431130000000000290b13001f0000005431130000000000480b13003c0000005431130000000000840b130058000000dc0b1300330000005431130000000000f2eb12000b0000000f0c13004100000036ec12000c0000002053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e2046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e20776869636820757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e74207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f316020696e20746865204d756c74697369672070616c6c657420696e73746561642e204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e696e64657875313663616c6c426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2053656e642061206261746368206f662064697370617463682063616c6c732e20546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e2074686520604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d61646520616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c6574656460206576656e74206973206465706f73697465642e63616c6c735665633c3c5420617320436f6e6669673e3a3a43616c6c3e696e7465726e616c206572726f723a20656e746572656420756e726561636861626c6520636f6465506172656e7420686173682073686f756c642062652076616c69642e0000b4111300570000003501000009000000b4111300570000005d0100000d0000005369676e617475726520766572696669636174696f6e206661696c65642e0000b4111300570000004e010000110000001f12130032000000b411130057000000b901000009000000446967657374206974656d206d757374206d6174636820746861742063616c63756c617465642e00b411130057000000c10100000d00000053746f7261676520726f6f74206d757374206d6174636820746861742063616c63756c617465642eb411130057000000c7010000090000005472616e73616374696f6e207472696520726f6f74206d7573742062652076616c69642eb411130057000000c9010000090000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f6578656375746976652f7372632f6c69622e72734469676573744974656d206e6f7420657175616c4e756d626572206f6620646967657374206974656d73206d757374206d6174636820746861742063616c63756c617465642e4e6f646520697320636f6e6669677572656420746f20757365207468652073616d6520686173683b20716564000000120000000000000001000000100100003ee1120054000000430500000e0000003ee11200540000004b05000016000000c012130056000000ea000000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f626f756e746965732f7372632f6c69622e727300002813130056000000c9010000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f6964656e746974792f7372632f6c69622e72730000901313005600000088000000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f6d756c74697369672f7372632f6c69622e72732f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f74726561737572792f7372632f6c69622e72734c14130057000000cf010000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f64656d6f63726163792f7372632f6c69622e727300b414130058000000a5000000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f617574686f72736869702f7372632f6c69622e72731c15130058000000f1000000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f636f6c6c6563746976652f7372632f6c69622e727300000000a81613000a00000000000000b4161300010000000000000000000000cc161300030000000000000000000000e41613000d00000000000000b4161300010000000000000000000000f41613000300000000000000000000000c1713000b000000000000001817130002000000000000000000000048171300050000000000000000000000701713000d000000000000008017130001000000000000000000000098171300040000000000000000000000b81713000a00000000000000c4171300010000000000000000000000dc171300050000000000000000000000041813000900000000000000b416130001000000000000000000000010181300030000000000000000000000281813000b00000000000000543113000000000000000000000000003418130003000000000000006164645f6d656d626572000000000000791b13000300000000000000e3f812000c000000321b13001f0000005431130000000000511b13002800000072656d6f76655f6d656d626572000000e31a1300240000005431130000000000071b13002b000000737761705f6d656d6265720000000000da1a13000600000000000000e3f812000c00000000000000e01a13000300000000000000e3f812000c0000003d1a13003000000054311300000000006d1a1300290000005431130000000000961a13004400000072657365745f6d656d6265727300000000000000251a130007000000000000002c1a1300110000008a19130056000000e01913001b0000005431130000000000fb1913002a0000006368616e67655f6b6579000000000000871913000300000000000000e3f812000c000000cc181300360000005431130000000000021913003d00000054311300000000003f191300480000007365745f7072696d650000009c181300300000005431130000000000721813002a000000636c6561725f7072696d65004c181300260000005431130000000000721813002a0000002052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e2053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e6e6577204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64207061737320606d656d6265727360207072652d736f727465642e204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e6d656d626572735665633c543a3a4163636f756e7449643e2053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e72656d6f76656164642052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e204164642061206d656d626572206077686f6020746f20746865207365742e204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e77686f00000000c7e112000700000000000000000000002c1a13001100000000000000000000000000000000000000000000000000000000000000543113002c1c130000000000000000003c1c130001000000000000000100000000000000dbe11200050000000000000000000000e3f812000c0000000000000000000000000000000000000000000000000000000000000054311300441c13000000000000000000541c13000100000000000000000000001200000000000000010000003f000000851c130032000000120000000000000001000000230000005c1c130029000000205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e0000000000c01d13000b0000000000000054311300000000000000000000000000cc1d1300010000000000000000000000d41d13000d0000000000000054311300000000000000000000000000e41d1300010000000000000000000000ec1d13000e0000000000000054311300000000000000000000000000fc1d1300010000000000000000000000041e13000c0000000000000054311300000000000000000000000000101e1300010000000000000000000000181e13000a0000000000000054311300000000000000000000000000241e13000100000000000000000000002c1e13000500000000000000341e13000100000000000000000000003c1e130001000000000000004d656d626572416464656400691f1300390000004d656d62657252656d6f7665640000002e1f13003b0000004d656d62657273537761707065640000f71e1300370000004d656d626572735265736574b11e1300460000004b65794368616e67656400008f1e13002200000044756d6d79000000601e13002f000000441e13001c000000205068616e746f6d206d656d6265722c206e6576657220757365642e73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e20546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e2054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e0000120000000000000001000000210000002c201300620000006800000010000000e41f1300480000003a0400000f000000e41f1300480000003a040000220000002f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f636f72652f7372632f63656c6c2e72732f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f6e706f732d656c656374696f6e732f7372632f6e6f64652e727300001200000000000000010000005f0000002c20130062000000700000000d0000002c20130062000000750000000d0000002c20130062000000890000003b000000e020130023000000a0000000010000002f6275696c642f72756e74696d652f636f6d6d6f6e2f7372632f636c61696d732e72730014211300600000002d010000010000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f656c656374696f6e732d70687261676d656e2f7372632f6c69622e727352616e646f6d6e657373436f6c6c656374697665466c697000000000e42113000e0000000000000000000000f22113000c00000000000000000000000000000000000000000000000000000000000000543113000022130000000000000000001022130003000000000000000100000052616e646f6d4d6174657269616c5665633c543a3a486173683e00001200000000000000010000006200000028221300580000008022130058000000d82213001100000020536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e205468697320697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f6620746865206f6c6465737420686173682e0000003ee1120054000000180100000f0000000c23130055000000710000000f0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f7574696c6974792f7372632f6c69622e72730000000000000000e112000f00000000000000f0231300020000000000000000000000e6e012001a00000000000000002413000200000000000000000000000fe112001d00000000000000102413000300000000000000000000002824130013000000000000003c241300010000000000000000000000442413000f00000000000000542413000100000000000000cf25130045000000ba251300150000006925130051000000ba25130015000000ea2413003c000000543113000000000026251300430000004e6f6e44656661756c74436f6d706f7369746500aa241300400000004e6f6e5a65726f526566436f756e74005c2413004e0000002054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e20537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6520616e6420746865206e65772072756e74696d652e20546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d651c261300170000005f5f49676e6f72652063616e6e6f74206265207573656400442613006800000055000000110000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f6672616d652f72616e646f6d6e6573732d636f6c6c6563746976652d666c69702f7372632f6c69622e727348617368207461626c65206361706163697479206f766572666c6f77d8261300530000004f000000280000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f6861736862726f776e2d302e392e312f7372632f7261772f6d6f642e7273492068657265627920616772656520746f20746865207465726d73206f66207468652073746174656d656e742077686f7365205348412d323536206d756c74696861736820697320516d58456b4d61686668484a507a5433526a6b58695a56466937375a655665757874416a686f6a47524e59636b7a2e202854686973206d617920626520666f756e64206174207468652055524c3a2068747470733a2f2f73746174656d656e742e706f6c6b61646f742e6e6574776f726b2f736166742e68746d6c29492068657265627920616772656520746f20746865207465726d73206f66207468652073746174656d656e742077686f7365205348412d323536206d756c74696861736820697320516d63315859715436533339574e70325565695255725a6963685557555070474554684445366441623366364e792e202854686973206d617920626520666f756e64206174207468652055524c3a2068747470733a2f2f73746174656d656e742e706f6c6b61646f742e6e6574776f726b2f726567756c61722e68746d6c29436c61696d735369676e696e6700182f13004a0000001a04000022000000182f13004a0000007103000036000000182f13004a0000003604000015000000182f13004a000000440400001e000000182f13004a0000004d04000018000000182f13004a0000004e04000019000000182f13004a000000510400001a00000073756d206f6620696e7075742063616e6e6f742066697420696e206054606c656e677468206f6620696e7075742069732067726561746572207468616e207a65726f3b206974206d757374206861766520612066697273743b207165640000002c2a13005d000000e60000000e0000002c2a13005d000000c90000003000000050726f6f662070726f766964656420696e20746865206d6f64756c6520646f633b207165642e00002c2a13005d000000cb000000160000002c2a13005d000000d50000002c0000002c2a13005d000000d7000000120000002c2a13005d000000eb000000300000002c2a13005d000000fa000000210000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f61726974686d657469632f7372632f6c69622e72730000006f2b13004d000000da010000010000004661696c656420746f20636f6e7665727471202f206365696c28712f246d617829203c20246d61782e204d6163726f2070726576656e747320616e792074797065206265696e672063726561746564207468617420646f6573206e6f74207361746973667920746869733b207165642f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f61726974686d657469632f7372632f7065725f7468696e67732e72732f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f636f72652f7372632f6f70732f61726974682e72730b2b1300640000005105000001000000dc2b1300610000006f000000090000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f61726974686d657469632f7372632f62696775696e742e727363616e6e6f74206669742061206e756d62657220696e746f20753132380000dc2b1300610000009e0000001b000000dc2b1300610000008000000009000000dc2b130061000000920000000900000000000000617474656d707420746f20646976696465206279207a65726f000000dc2b130061000000460000000d000000616c7265616479206d757461626c7920626f72726f77656412000000000000000100000021000000dc2b1300610000007a0100001a000000dc2b1300610000006801000028000000dc2b1300610000006901000028000000616c726561647920626f72726f7765641200000000000000010000005f000000dc2b130061000000710100001b000000dc2b130061000000720100001b000000dc2b130061000000d60100001c0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f61726974686d657469632f7372632f66697865645f706f696e742e7273617474656d707420746f206469766964652077697468206f766572666c6f77642d1300650000004b0600000100000072656d696e646572206f6620646976206279206320697320616c77617973206c657373207468616e20633b2071656400120000000800000004000000f8000000612e1300680000006a00000012000000726573756c742063616e6e6f742066697420696e20753132382f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f61726974686d657469632f7372632f68656c706572735f3132386269742e727342616265565246496e4f7574436f6e7465787442414245736c6f74206e756d62657263757272656e742065706f6368636861696e2072616e646f6d6e657373182f13004a000000c4000000110000002f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f616c6c6f632f7372632f736c6963652e72730000742f13004e000000cd000000200000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f61727261797665632d302e352e322f7372632f6c69622e7273000012000000000000000100000010010000e42f130066000000ce0000002a0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f72756e74696d652d696e746572666163652f7372632f696d706c732e7273486f737420746f207761736d2076616c7565732061726520656e636f64656420636f72726563746c793b2071656412000000000000000100000010010000983013006800000009010000260000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f72756e74696d652d696e746572666163652f7372632f706173735f62792e7273373113000d0000002231130015000000543113000000000020311300020000003a20696e73756666696369656e7420636170616369747943617061636974794572726f72543113000000000072756e74696d650052756e74696d65206d656d6f7279206578686175737465642e2041626f7274696e675472616e73616374696f6e206469737061746368206973206d616e6461746f72793b207472616e73616374696f6e73206d6179206e6f742068617665206d616e6461746f727920646973706174636865732e412063616c6c20776173206c6162656c6c6564206173206d616e6461746f72792c2062757420726573756c74656420696e20616e204572726f722e5472616e73616374696f6e20776f756c6420657868617573742074686520626c6f636b206c696d6974735472616e73616374696f6e2068617320616e20616e6369656e7420626972746820626c6f636b5472616e73616374696f6e20686173206120626164207369676e61747572655472616e73616374696f6e206973206f757464617465645472616e73616374696f6e2077696c6c2062652076616c696420696e2074686520667574757265496e6162696c69747920746f2070617920736f6d6520666565732028652e672e206163636f756e742062616c616e636520746f6f206c6f77295472616e73616374696f6e2063616c6c206973206e6f74206578706563746564496e76616c69645472616e73616374696f6e20637573746f6d206572726f72436f756c64206e6f742066696e6420616e20756e7369676e65642076616c696461746f7220666f722074686520756e7369676e6564207472616e73616374696f6e436f756c64206e6f74206c6f6f6b757020696e666f726d6174696f6e20726571756972656420746f2076616c696461746520746865207472616e73616374696f6e556e6b6e6f776e5472616e73616374696f6e20637573746f6d206572726f7200000000000000617474656d707420746f20646976696465206279207a65726f000000fc33130062000000600000002b0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f72756e74696d652f7372632f67656e657269632f6572612e727348617368206e6f7420657175616c2f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f72756e74696d652f7372632f7472616974732e72730000006c3413005d0000005904000013000000436f6e73756d65722072656d61696e696e67426164206f726967696e43616e6e6f74206c6f6f6b75704e6f2070726f76696465727344697370617463684572726f723c7761736d3a73747269707065643e4475706c69636174655265706f72744f6666656e63654572726f722f72757374632f653337613133636333353934303034363633373338626431386438313030653664623936363663662f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273000000a83513005e000000470000001f0000002f636172676f2d686f6d652f6769742f636865636b6f7574732f7375627374726174652d376530383433336434633337306132312f333635356639622f7072696d6974697665732f747269652f7372632f6e6f64655f636f6465632e72730000a83513005e00000050000000140000006c656e20213d20302073696e6365206c656e2025203220213d20303b20696e6e6572206861732061206c61737420656c656d656e743b207165640000643613005b0000003d000000120000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e332f7372632f6e6962626c652f6e6962626c657665632e727300643613005b0000006000000033000000643613005b000000600000000d000000643613005b000000690000000f000000643613005b0000006b0000000f000000643613005b0000006b0000003e000000643613005b0000009100000039000000643613005b0000009100000011000000643613005b0000009300000011000000643613005b0000009400000040000000643613005b000000940000004e000000803713005d0000009800000017000000803713005d00000096000000290000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e332f7372632f6e6962626c652f6e6962626c65736c6963652e7273000000f4391300550000004d0000001c000000803713005d0000004000000012000000803713005d0000004f0000002d000000803713005d0000005500000032000000803713005d000000dd0000000f000000803713005d000000df0000000f000000803713005d000000df0000003d0000006361706163697479206f766572666c6f77000000743813004e000000fb000000360000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f736d616c6c7665632d312e362e312f7372632f6c69622e7273617373657274696f6e206661696c65643a206e65775f636170203e3d206c656e0000743813004e000000320300000d000000617373657274696f6e206661696c65643a20696e646578203c3d206c656e0000743813004e0000005f05000009000000f4391300550000008d0000003c000000f4391300550000008d00000051000000f4391300550000008d00000031000000743913004f0000004b00000042000000743913004f0000004a0000003e0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e332f7372632f6e6f64652e727300743913004f0000006b00000022000000743913004f0000009a00000032000000743913004f000000aa0000003e0000002f636172676f2d686f6d652f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f747269652d64622d302e32322e332f7372632f6e6962626c652f6d6f642e7273000000f4391300550000008600000031000000f4391300550000008600000042000000f4391300550000008600000026000000f439130055000000870000001d000000f439130055000000870000000d000000f4391300550000008e00000018000000f4391300550000008e0000000d00000063616c6c65642060526573756c743a3a756e77726170282960206f6e20616e2060457272602076616c75650041e8f5cc000b044f8167f700a98706046e616d6501a08706ee0800206578745f6f6666636861696e5f696e6465785f7365745f76657273696f6e5f3101196578745f6c6f6767696e675f6c6f675f76657273696f6e5f3102256578745f63727970746f5f656432353531395f67656e65726174655f76657273696f6e5f3103236578745f63727970746f5f656432353531395f7665726966795f76657273696f6e5f3104286578745f63727970746f5f66696e6973685f62617463685f7665726966795f76657273696f6e5f31052c6578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f76657273696f6e5f3106376578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f636f6d707265737365645f76657273696f6e5f3107256578745f63727970746f5f737232353531395f67656e65726174655f76657273696f6e5f3108286578745f63727970746f5f737232353531395f7075626c69635f6b6579735f76657273696f6e5f3109216578745f63727970746f5f737232353531395f7369676e5f76657273696f6e5f310a236578745f63727970746f5f737232353531395f7665726966795f76657273696f6e5f320b276578745f63727970746f5f73746172745f62617463685f7665726966795f76657273696f6e5f310c2a6578745f747269655f626c616b65325f3235365f6f7264657265645f726f6f745f76657273696f6e5f310d1c6578745f616c6c6f6361746f725f667265655f76657273696f6e5f310e1e6578745f616c6c6f6361746f725f6d616c6c6f635f76657273696f6e5f310f206578745f68617368696e675f626c616b65325f3132385f76657273696f6e5f3110206578745f68617368696e675f626c616b65325f3235365f76657273696f6e5f3111206578745f68617368696e675f6b656363616b5f3235365f76657273696f6e5f31121e6578745f68617368696e675f74776f785f3132385f76657273696f6e5f31131d6578745f68617368696e675f74776f785f36345f76657273696f6e5f31141c6578745f6d6973635f7072696e745f6865785f76657273696f6e5f31151c6578745f6d6973635f7072696e745f6e756d5f76657273696f6e5f31161d6578745f6d6973635f7072696e745f757466385f76657273696f6e5f3117226578745f6d6973635f72756e74696d655f76657273696f6e5f76657273696f6e5f3118236578745f6f6666636861696e5f69735f76616c696461746f725f76657273696f6e5f3119346578745f6f6666636861696e5f6c6f63616c5f73746f726167655f636f6d706172655f616e645f7365745f76657273696f6e5f311a286578745f6f6666636861696e5f6c6f63616c5f73746f726167655f6765745f76657273696f6e5f311b286578745f6f6666636861696e5f6c6f63616c5f73746f726167655f7365745f76657273696f6e5f311c246578745f6f6666636861696e5f6e6574776f726b5f73746174655f76657273696f6e5f311d226578745f6f6666636861696e5f72616e646f6d5f736565645f76657273696f6e5f311e296578745f6f6666636861696e5f7375626d69745f7472616e73616374696f6e5f76657273696f6e5f311f1c6578745f73746f726167655f617070656e645f76657273696f6e5f3120226578745f73746f726167655f6368616e6765735f726f6f745f76657273696f6e5f31211b6578745f73746f726167655f636c6561725f76657273696f6e5f3122226578745f73746f726167655f636c6561725f7072656669785f76657273696f6e5f3123286578745f73746f726167655f636f6d6d69745f7472616e73616374696f6e5f76657273696f6e5f31241c6578745f73746f726167655f6578697374735f76657273696f6e5f3125196578745f73746f726167655f6765745f76657273696f6e5f31261e6578745f73746f726167655f6e6578745f6b65795f76657273696f6e5f31271a6578745f73746f726167655f726561645f76657273696f6e5f31282a6578745f73746f726167655f726f6c6c6261636b5f7472616e73616374696f6e5f76657273696f6e5f31291a6578745f73746f726167655f726f6f745f76657273696f6e5f312a196578745f73746f726167655f7365745f76657273696f6e5f312b276578745f73746f726167655f73746172745f7472616e73616374696f6e5f76657273696f6e5f312c0c5f5f727573745f616c6c6f632d0a5f5f72675f616c6c6f632e0e5f5f727573745f6465616c6c6f632f0c5f5f72675f6465616c6c6f63300e5f5f727573745f7265616c6c6f63310c5f5f72675f7265616c6c6f6332135f5f727573745f616c6c6f635f7a65726f656433115f5f72675f616c6c6f635f7a65726f6564341a5f5f727573745f616c6c6f635f6572726f725f68616e646c657235085f5f72675f6f6f6d3633616c6c6f633a3a616c6c6f633a3a68616e646c655f616c6c6f635f6572726f723a3a68396233356666353366373862336237323708727573745f6f6f6d3834616c6c6f633a3a7261775f7665633a3a63617061636974795f6f766572666c6f773a3a68643334613339623261323062343861613929636f72653a3a70616e69636b696e673a3a70616e69633a3a68353931663938323162363132633033313a2e616c6c6f633a3a7261775f7665633a3a66696e6973685f67726f773a3a68393363643365663835616537633939663b25616c6c6f633a3a666d743a3a666f726d61743a3a68363637613739353430383938353533383c36636f72653a3a70616e69636b696e673a3a70616e69635f626f756e64735f636865636b3a3a68363764373564386363303561366261643d23636f72653a3a666d743a3a77726974653a3a68333133363666353338663366656331343e33636f72653a3a6f7074696f6e3a3a6578706563745f6e6f6e655f6661696c65643a3a68343335616366613232373730646637323f3a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6833663662333835306339386135636265403b3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f636861723a3a6830336366666363666263313264333165413a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a68303036356465623766386363306231344243616c6c6f633a3a7665633a3a5665633c542c413e3a3a737761705f72656d6f76653a3a6173736572745f6661696c65643a3a6864303363393639353330646266643136434e636f72653a3a666d743a3a6e756d3a3a696d703a3a3c696d706c20636f72653a3a666d743a3a446973706c617920666f72207533323e3a3a666d743a3a6837626136613033376164623563643230442d636f72653a3a70616e69636b696e673a3a70616e69635f666d743a3a6830346365373030363561383039666238453e616c6c6f633a3a7665633a3a5665633c542c413e3a3a696e736572743a3a6173736572745f6661696c65643a3a6835623134346337343862643833363930463e616c6c6f633a3a7665633a3a5665633c542c413e3a3a72656d6f76653a3a6173736572745f6661696c65643a3a68666632366462653536343266386664624739636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63653a3a6830393437373039326132383231633461482f636f72653a3a666d743a3a6e756d3a3a696d703a3a666d745f7536343a3a68353833323565656365316333313739374911727573745f626567696e5f756e77696e644a313c5420617320636f72653a3a616e793a3a416e793e3a3a747970655f69643a3a68353933346235316230646562653930614b35636f72653a3a666d743a3a466f726d61747465723a3a7061645f696e74656772616c3a3a68343636326361636365353764666465384c43636f72653a3a666d743a3a466f726d61747465723a3a7061645f696e74656772616c3a3a77726974655f7072656669783a3a68356536643061626130396633326235324d3f636f72653a3a736c6963653a3a696e6465783a3a736c6963655f656e645f696e6465785f6c656e5f6661696c3a3a68366334396438333039613035633366324e2c636f72653a3a666d743a3a466f726d61747465723a3a7061643a3a68336264306663356131363761396636344f2e636f72653a3a7374723a3a736c6963655f6572726f725f6661696c3a3a683036366638383363343461393435306350323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a6834616263393066366631306163663061514a3c636f72653a3a6f70733a3a72616e67653a3a52616e67653c4964783e20617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a686338363461636433656463666534326652323c6368617220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68626661316230393363356565656336385347636f72653a3a756e69636f64653a3a756e69636f64655f646174613a3a6772617068656d655f657874656e643a3a6c6f6f6b75703a3a68663135356233306366366635633062655439636f72653a3a756e69636f64653a3a7072696e7461626c653a3a69735f7072696e7461626c653a3a6839396635326564306263383232343831554c636f72653a3a666d743a3a6e756d3a3a3c696d706c20636f72653a3a666d743a3a446562756720666f72207573697a653e3a3a666d743a3a68373232653131323836353764373364302e33385641636f72653a3a736c6963653a3a696e6465783a3a736c6963655f73746172745f696e6465785f6c656e5f6661696c3a3a6838376139393138343461356136613264573d636f72653a3a736c6963653a3a696e6465783a3a736c6963655f696e6465785f6f726465725f6661696c3a3a68663065623763363063366164626633345838636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a696e6e65723a3a683961613437343833393465613936323859303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68373630353135393538663833323238625a443c636f72653a3a666d743a3a417267756d656e747320617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a68616461363265643536366238623237615b453c636f72653a3a63656c6c3a3a426f72726f774572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68333961633465323730636264613361655c483c636f72653a3a63656c6c3a3a426f72726f774d75744572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68396364363938613032303366376637655d2e636f72653a3a6f7074696f6e3a3a6578706563745f6661696c65643a3a68313238646263363361373762363462335e323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a68653164623931393231326131373863655f323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a683334393932343863336163653936613960533c636f72653a3a666d743a3a6275696c646572733a3a5061644164617074657220617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6833636330623732656235383131376131612f636f72653a3a666d743a3a57726974653a3a77726974655f636861723a3a6861663264376134626331363838373132622e636f72653a3a666d743a3a57726974653a3a77726974655f666d743a3a6832336431393265383735306239363134633a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a6863396239323564376434343463386336643b3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f636861723a3a6834336661353362343232643664383637653a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a68326132353136316331386631363162376639636f72653a3a666d743a3a6275696c646572733a3a44656275675475706c653a3a6669656c643a3a68663934343663353338336538346530666731636f72653a3a666d743a3a6e756d3a3a70617273655f7536345f696e746f3a3a683836356665636331363439653662386668313c73747220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68636166353765616336643835636166376947636f72653a3a666d743a3a6e756d3a3a3c696d706c20636f72653a3a666d743a3a42696e61727920666f722069383e3a3a666d743a3a68393534666231363062643530303465346a3e3c636f72653a3a666d743a3a4572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68303461626364316137336361656135626b5a637572766532353531395f64616c656b3a3a6261636b656e643a3a73657269616c3a3a7536343a3a6669656c643a3a4669656c64456c656d656e7435313a3a746f5f62797465733a3a68376437393064393161666331616134356c9201637572766532353531395f64616c656b3a3a6669656c643a3a3c696d706c20737562746c653a3a436f6e7374616e7454696d65457120666f7220637572766532353531395f64616c656b3a3a6261636b656e643a3a73657269616c3a3a7536343a3a6669656c643a3a4669656c64456c656d656e7435313e3a3a63745f65713a3a68396364656461363836373161653962666d24737562746c653a3a626c61636b5f626f783a3a68643538663262386531326262666438636e57637572766532353531395f64616c656b3a3a6261636b656e643a3a73657269616c3a3a7536343a3a6669656c643a3a4669656c64456c656d656e7435313a3a706f77326b3a3a68663236333730613433323836636163336f7e637572766532353531395f64616c656b3a3a6669656c643a3a3c696d706c20637572766532353531395f64616c656b3a3a6261636b656e643a3a73657269616c3a3a7536343a3a6669656c643a3a4669656c64456c656d656e7435313e3a3a737172745f726174696f5f693a3a6835363363396339363265323062373362705c637572766532353531395f64616c656b3a3a6261636b656e643a3a73657269616c3a3a7536343a3a6669656c643a3a4669656c64456c656d656e7435313a3a66726f6d5f62797465733a3a6832616238363561393631373334363633715a637572766532353531395f64616c656b3a3a72697374726574746f3a3a52697374726574746f506f696e743a3a656c6c696761746f725f72697374726574746f5f666c61766f723a3a68646461343666623535616233393161667249637572766532353531395f64616c656b3a3a7363616c61723a3a5363616c61723a3a66726f6d5f63616e6f6e6963616c5f62797465733a3a6839653365336238643333303431333564737b6672616d655f6d657461646174613a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f6d657461646174613a3a53746f726167654861736865723e3a3a656e636f64655f746f3a3a683162656163376433656139313636306274423c73705f7374643a3a57726974657220617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a683363633661343561353130333135336375417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6831636432373064666631313861613763766c3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a683563616634656137383534663333653777417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a683538303330336534653561396266326478417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a683637333262303539623133663935393579417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a68366466653838653631316263313030307a417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a68373364323466643532356561656535617b417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a68396561313134623133303139396634327c633c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e3e3a3a66726f6d5f697465723a3a68373565373763666662363932356332627d2e616c6c6f633a3a7261775f7665633a3a66696e6973685f67726f773a3a68323639383637313236343665326136667e543c6672616d655f73797374656d3a3a6c696d6974733a3a56616c69646174696f6e4572726f727320617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68303564386661663138656538646536617f4c6672616d655f73797374656d3a3a6c696d6974733a3a426c6f636b576569676874734275696c6465723a3a6275696c645f6f725f70616e69633a3a68326463313939646664376530366331378001206b656363616b3a3a66313630303a3a68643136653639383530623363363336348101366d65726c696e3a3a7472616e7363726970743a3a5472616e7363726970743a3a6e65773a3a68663937363338316633643532623636308201366d65726c696e3a3a7374726f62653a3a5374726f62653132383a3a626567696e5f6f703a3a6834393265303662376564646166353330830131636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a68353165396237626139333239313435378401416d65726c696e3a3a7472616e7363726970743a3a5472616e7363726970743a3a617070656e645f6d6573736167653a3a683832386436623530666233383133386185013d6d65726c696e3a3a7472616e7363726970743a3a5472616e7363726970743a3a617070656e645f7536343a3a68633365386666383661313861373738328601426d65726c696e3a3a7472616e7363726970743a3a5472616e7363726970743a3a6368616c6c656e67655f62797465733a3a68313833653739663961616235383637398701303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68316334646132633061303238396231668801643c70616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a466561736962696c6974794572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68356639353562323537383963303132628901303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68656632323534336265633130646631348a01573c70616c6c65745f6964656e746974793a3a44617461206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a68393563343662346135636139623633318b01633c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e3e3a3a66726f6d5f697465723a3a68306264653266643331303639363735368c014470616c6c65745f7374616b696e673a3a736c617368696e673a3a536c617368696e675370616e733a3a656e645f7370616e3a3a68343665356663366630336239626165618d014170616c6c65745f7374616b696e673a3a736c617368696e673a3a536c617368696e675370616e733a3a7072756e653a3a68396461336662633239336538376636628e013a70616c6c65745f74696d657374616d703a3a657874726163745f696e686572656e745f646174613a3a68303534383936373432303432306536618f01503c7061726974795f7363616c655f636f6465633a3a6572726f723a3a4572726f7220617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a683464303838633264376634643433323490014e3c7061726974795f7363616c655f636f6465633a3a6572726f723a3a4572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a686263323663363266356563326365633891013f7061726974795f7363616c655f636f6465633a3a636f6465633a3a4f75747075743a3a707573685f627974653a3a68646535356531343739363262616232369201417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a683137326236353437366635353032356593017873705f636f72653a3a63727970746f3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f636f72653a3a63727970746f3a3a4163636f756e74496433323e3a3a6465636f64653a3a68343434323965343630393164333930619401417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a6838663036663234333538316330343764950173706f6c6b61646f745f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f7220706f6c6b61646f745f72756e74696d653a3a43616c6c3e3a3a6465636f64653a3a6866333132353766373030613764323632960143636f72653a3a7074723a3a64726f705f696e5f706c6163653c706f6c6b61646f745f72756e74696d653a3a43616c6c3e3a3a68323931336639633538376534623864329701417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a6865666161663031646263306131393837980173706f6c6b61646f745f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f7220706f6c6b61646f745f72756e74696d653a3a43616c6c3e3a3a6465636f64653a3a68623461303361656462343538393566379901417061726974795f7363616c655f636f6465633a3a636f6465633a3a6465636f64655f7665635f776974685f6c656e3a3a68666263373066313237623664313738319a01417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a68326431613761636333306632303331659b01417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a68333465323539333162346531636436639c01417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a68336561663130383731353339303430349d01417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a68346165376234343061616363373966649e01417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a68373663633033393565653930663335389f01417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6838626231363161623938393934393263a001417061726974795f7363616c655f636f6465633a3a636f6465633a3a656e636f64655f736c6963655f6e6f5f6c656e3a3a6839343435623732353264366531656437a1017f7061726974795f7363616c655f636f6465633a3a636f6465633a3a696e6e65725f7475706c655f696d706c3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72202851302c5230293e3a3a656e636f64655f746f3a3a6866613131656361613263343663353034a201437061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a7573696e675f656e636f6465643a3a6836633266613633383763613136303466a3014673705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a74776f785f36343a3a6862666666623834363238363136323839a401483c5b543b20335d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6838313536336661333561653762326136a501483c5b543b20385d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6831396132646534623066383332363739a601493c5b543b2033325d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6863623661636139343162313336393138a701493c5b543b2036345d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6838303933396439656231303661383563a801493c5b543b2036355d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6863383263363163623836653938303562a90183013c616c6c6f633a3a7665633a3a5665633c542c413e20617320616c6c6f633a3a7665633a3a737065635f657874656e643a3a53706563457874656e643c542c616c6c6f633a3a7665633a3a696e746f5f697465723a3a496e746f497465723c543e3e3e3a3a737065635f657874656e643a3a6834333433623739616665303932333864aa017c7061726974795f7363616c655f636f6465633a3a636f6465633a3a696e6e65725f7475706c655f696d706c3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f72202851302c5230293e3a3a6465636f64653a3a6835376539633762336138623139633366ab016b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6830333032626636346534653237353864ac017c7061726974795f7363616c655f636f6465633a3a636f6465633a3a696e6e65725f7475706c655f696d706c3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f72202851302c5230293e3a3a6465636f64653a3a6835623230663231363165303530636137ad016b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6866303535343637373665303230366363ae01437061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a7573696e675f656e636f6465643a3a6862663364636463663734333139353536af01723c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163745265663c753132383e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6833333331313533346166363863323539b0014973705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a626c616b65325f3235363a3a6832313066356631633064313636643162b1014a3c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a7573696e675f656e636f6465643a3a6839383566636366333564323132633461b2014273705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7365743a3a6864326433663631373330386337633833b301433c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6831386466333633666639376330326663b401433c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6836623163333939616130323131633837b501433c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6862316237633535636335393331633438b601463c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6831356366376132373661656236306439b701463c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6831393433366263323536323035633439b801463c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6839386532353430376132336634383739b901463c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6864366238393961663663623862623565ba012f616c6c6f633a3a7665633a3a5665633c542c413e3a3a696e736572743a3a6862313463363838616531366339623262bb012f616c6c6f633a3a7665633a3a5665633c542c413e3a3a72657461696e3a3a6864303139346364376564376632653738bc0130616c6c6f633a3a7665633a3a5665633c542c413e3a3a726573657276653a3a6862633437373533393538393931366631bd01753c636f72653a3a697465723a3a61646170746572733a3a66696c7465725f6d61703a3a46696c7465724d61703c492c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6834303462643035383132356562386236be013d70616c6c65745f696d5f6f6e6c696e653a3a4d6f64756c653c543e3a3a69735f6f6e6c696e655f6175783a3a6864343637623435636430623230393830bf01ef023c70616c6c65745f7374616b696e673a3a4578706f737572654f663c543e2061732073705f72756e74696d653a3a7472616974733a3a436f6e766572743c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449642c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c70616c6c65745f7374616b696e673a3a4578706f737572653c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449642c3c3c542061732070616c6c65745f7374616b696e673a3a436f6e6669673e3a3a43757272656e6379206173206672616d655f737570706f72743a3a7472616974733a3a43757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e3e3a3a42616c616e63653e3e3e3e3a3a636f6e766572743a3a6865303165636431646561633832386130c0018901616c6c6f633a3a7665633a3a736f757263655f697465725f6d61726b65723a3a3c696d706c20616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e20666f7220616c6c6f633a3a7665633a3a5665633c543e3e3a3a66726f6d5f697465723a3a6834363866663161336634646662653265c10137616c6c6f633a3a7261775f7665633a3a5261775665633c542c413e3a3a726573657276653a3a6864613239663237353833366134393731c2018901616c6c6f633a3a7665633a3a736f757263655f697465725f6d61726b65723a3a3c696d706c20616c6c6f633a3a7665633a3a737065635f66726f6d5f697465723a3a5370656346726f6d497465723c542c493e20666f7220616c6c6f633a3a7665633a3a5665633c543e3e3a3a66726f6d5f697465723a3a6865613730666433376438633331646166c301463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6831346533613663623564663536666133c401463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6834613933633464303834333065643936c501463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6836303537393062333330306164356637c601463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6836356137396265346564383636373961c701463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6837313931373435626662633434323366c801463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6837643465373234323262363634313861c901463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6837643839626330393337326466386362ca01593c706f6c6b61646f745f72756e74696d653a3a4e706f73436f6d70616374536f6c7574696f6e313620617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6837333664376631306164343464663161cb016e6672616d655f73797374656d3a3a70616c6c65743a3a5f3a3a3c696d706c20636f72653a3a636c6f6e653a3a436c6f6e6520666f72206672616d655f73797374656d3a3a70616c6c65743a3a43616c6c3c543e3e3a3a636c6f6e653a3a6831323638366561316134663633343835cc014b3c70616c6c65745f7363686564756c65723a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6864623866366639643663633431383265cd016c70616c6c65745f626162653a3a70616c6c65743a3a5f3a3a3c696d706c20636f72653a3a636c6f6e653a3a436c6f6e6520666f722070616c6c65745f626162653a3a70616c6c65743a3a43616c6c3c543e3e3a3a636c6f6e653a3a6837383361613533666636313562646361ce017670616c6c65745f62616c616e6365733a3a70616c6c65743a3a5f3a3a3c696d706c20636f72653a3a636c6f6e653a3a436c6f6e6520666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a43616c6c3c542c493e3e3a3a636c6f6e653a3a6832363164653063313634666635363162cf014c3c70616c6c65745f617574686f72736869703a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6865653466643830656361663864633265d001493c70616c6c65745f7374616b696e673a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6838666433303361643661323836343566d1014a3c70616c6c65745f6f6666656e6365733a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6831663061313664386462333362636338d201493c70616c6c65745f6772616e6470613a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6833376165643665316663643739303161d3014b3c70616c6c65745f696d5f6f6e6c696e653a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6835343831313631613336386534353337d401553c70616c6c65745f617574686f726974795f646973636f766572793a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6837313034663531313462333966646661d5014b3c70616c6c65745f64656d6f63726163793a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6839666530363334663366393230333034d6014e3c70616c6c65745f636f6c6c6563746976653a3a43616c6c3c542c493e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6830653536616134646335643235646137d701543c70616c6c65745f656c656374696f6e735f70687261676d656e3a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6838313437393230313536316437303734d8015a3c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6830336430613931656339373162303366d9017270616c6c65745f76657374696e673a3a70616c6c65743a3a5f3a3a3c696d706c20636f72653a3a636c6f6e653a3a436c6f6e6520666f722070616c6c65745f76657374696e673a3a70616c6c65743a3a43616c6c3c543e3e3a3a636c6f6e653a3a6865633234666532306563376234343334da014d3c706f6c6b61646f745f72756e74696d653a3a43616c6c20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a68346635346532643136633036353534392e37393131db014a3c70616c6c65745f6964656e746974793a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6830643932653066343137613861643839dc016e70616c6c65745f70726f78793a3a70616c6c65743a3a5f3a3a3c696d706c20636f72653a3a636c6f6e653a3a436c6f6e6520666f722070616c6c65745f70726f78793a3a70616c6c65743a3a43616c6c3c543e3e3a3a636c6f6e653a3a6834613966316330373064656234363832dd014a3c70616c6c65745f6d756c74697369673a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6839313735663538626235363334363836de014a3c70616c6c65745f626f756e746965733a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6831656462306664313263653864316266df01463c70616c6c65745f746970733a3a43616c6c3c543e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6862613164376164343261313264326466e001463c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6865613535616363646537613037386539e101483c616c6c6f633a3a7665633a3a5665633c542c413e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6838303265616436643865666533353761e2015c636f72653a3a7074723a3a64726f705f696e5f706c6163653c747269655f64623a3a7472696564626d75743a3a4e6f64653c7072696d69746976655f74797065733a3a483235363e3e3a3a6865363831383635643166643564323865e301543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6834383261343630393333326134326266e401543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6835356239373466663865663336636665e501543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6836383964306330643238303636323565e601a30173705f72756e74696d653a3a6d756c7469616464726573733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f72756e74696d653a3a6d756c7469616464726573733a3a4d756c7469416464726573733c4163636f756e7449642c4163636f756e74496e6465783e3e3a3a6465636f64653a3a6837373966626133363039643039633130e701543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6837643539393962306662626634663963e801543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6839396138643766363633353339373038e901543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6862303830613235616131623864373537ea01543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6863316366336538323838306431313134eb01a30173705f72756e74696d653a3a6d756c7469616464726573733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f72756e74696d653a3a6d756c7469616464726573733a3a4d756c7469416464726573733c4163636f756e7449642c4163636f756e74496e6465783e3e3a3a6465636f64653a3a6862316637393732636333366234616539ec01543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6863633864643930663538363632356235ed019c013c73705f72756e74696d653a3a67656e657269633a3a756e636865636b65645f65787472696e7369633a3a556e636865636b656445787472696e7369633c416464726573732c43616c6c2c5369676e61747572652c45787472613e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6839346666333763376364373037646262ee01623c616c6c6f633a3a7665633a3a5665633c542c413e20617320616c6c6f633a3a7665633a3a737065635f657874656e643a3a53706563457874656e643c542c493e3e3a3a737065635f657874656e643a3a6833333437303064656532633961353763ef016f3c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6830623534306634353365383133623065f00152616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a656e7472793a3a566163616e74456e7472793c4b2c563e3a3a696e736572743a3a6835363337656364623930343331326231f101613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6832363133633830663161376437393065f201723c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6837646237386237343839393362373631f301407363686e6f72726b656c3a3a7672663a3a5652464f75747075743a3a6174746163685f696e7075745f686173683a3a6833623437323866663336313532616233f401457363686e6f72726b656c3a3a706f696e74733a3a52697374726574746f426f74683a3a66726f6d5f636f6d707265737365643a3a6836623232303364313364656139386139f501a60173705f72756e74696d653a3a6d756c7469616464726573733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722073705f72756e74696d653a3a6d756c7469616464726573733a3a4d756c7469416464726573733c4163636f756e7449642c4163636f756e74496e6465783e3e3a3a656e636f64655f746f3a3a6830323861626262393936346364313439f6017273705f73657373696f6e3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f73657373696f6e3a3a4d656d6265727368697050726f6f663e3a3a6465636f64653a3a6836653432643666363338623138656535f7017273705f73657373696f6e3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f73657373696f6e3a3a4d656d6265727368697050726f6f663e3a3a6465636f64653a3a6839343863376230663337363533613733f801776672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c563e20666f7220473e3a3a6d75746174653a3a6837323536646466373939663761393636f9015c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6862323066383061383637646331343662fa01386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6834333936376332633132393964646638fb01b80170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a52657365727661626c6543757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a756e726573657276653a3a6834316330613832386262346332313663fc01573c49642061732073705f72756e74696d653a3a7472616974733a3a4163636f756e744964436f6e76657273696f6e3c543e3e3a3a696e746f5f7375625f6163636f756e743a3a6839386431656634393434363831303630fd01b50170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a43757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a6465706f7369745f6372656174696e673a3a6835666133383763306132623164326139fe015e6672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a6465706f7369745f6576656e745f696e64657865643a3a6835626334326665303936353434373961ff014473705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561723a3a68346134363733353037653435373239368002950170616c6c65745f626f756e746965733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722070616c6c65745f626f756e746965733a3a426f756e74793c4163636f756e7449642c42616c616e63652c426c6f636b4e756d6265723e3e3a3a656e636f64655f746f3a3a683836323732623763633739373164653381024773705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a74776f785f3132383a3a686233633163373235303031363932636482026c3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c753132383e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a686332666438616232643963643236623883023d70616c6c65745f626f756e746965733a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a686137653033376266306337336539323684023f70616c6c65745f626f756e746965733a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a68373736383462363133633365306339308502703c70616c6c65745f626f756e746965733a3a5f5f47657442797465537472756374426f756e7479436f756e743c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a686161633861616139356362633466643186024870616c6c65745f626f756e746965733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a68313166383733393161316536393835328702a1013c70616c6c65745f626f756e746965733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426f756e747943757261746f724465706f73697444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a686261323764323161396437643264353588029f013c70616c6c65745f626f756e746965733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426f756e7479557064617465506572696f6444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68646131336231653366663965626337318902a5013c70616c6c65745f626f756e746965733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426f756e74794465706f7369745061796f757444656c617944656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68616263393661646633646638376363618a029f013c73705f72756e74696d653a3a67656e657269633a3a756e636865636b65645f65787472696e7369633a3a556e636865636b656445787472696e7369633c416464726573732c43616c6c2c5369676e61747572652c45787472613e2061732073705f72756e74696d653a3a7472616974733a3a436865636b61626c653c4c6f6f6b75703e3e3a3a636865636b3a3a68346639326161646435363062373164648b0248636f72653a3a7074723a3a64726f705f696e5f706c6163653c706f6c6b61646f745f72756e74696d653a3a43616c6c3e3a3a68323931336639633538376534623864322e313432358c025c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68333939373138323566613065396463388d02386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68653562653633373365646164633831398e02386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68303134383831383335653235316462648f024573705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6578697374733a3a6839376131343563396531323964633665900276706f6c6b61646f745f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f7220706f6c6b61646f745f72756e74696d653a3a43616c6c3e3a3a656e636f64655f746f3a3a686361393330626465623166386435306291026f3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163745265663c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a68633461656239623633353630633063329202553c73705f72756e74696d653a3a4d756c74695369676e61747572652061732073705f72756e74696d653a3a7472616974733a3a5665726966793e3a3a7665726966793a3a686237316635333161643164613262656193028c0173705f636f6e73656e7375735f626162653a3a646967657374733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f636f6e73656e7375735f626162653a3a646967657374733a3a5072654469676573743e3a3a6465636f64653a3a68616635386165363233633966653764319402683c73705f636f6e73656e7375735f7672663a3a7363686e6f72726b656c3a3a56524650726f6f66206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68656636326139663434306438653364369502970173705f636f6e73656e7375735f626162653a3a646967657374733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f636f6e73656e7375735f626162653a3a646967657374733a3a4e657874436f6e66696744657363726970746f723e3a3a6465636f64653a3a686162663463613866346436393435616296029a0173705f636f6e73656e7375735f626162653a3a646967657374733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722073705f636f6e73656e7375735f626162653a3a646967657374733a3a4e657874436f6e66696744657363726970746f723e3a3a656e636f64655f746f3a3a683939383236366265356137643030313297023c7061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a656e636f64653a3a683164343665666133393136303264326198028f0173705f636f6e73656e7375735f736c6f74733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f636f6e73656e7375735f736c6f74733a3a45717569766f636174696f6e50726f6f663c4865616465722c49643e3e3a3a6465636f64653a3a68333135346336303035323866333031329902723c73705f72756e74696d653a3a67656e657269633a3a6865616465723a3a4865616465723c4e756d6265722c486173683e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68623231666632396164616331653838649a028f0173705f636f6e73656e7375735f736c6f74733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f636f6e73656e7375735f736c6f74733a3a45717569766f636174696f6e50726f6f663c4865616465722c49643e3e3a3a6465636f64653a3a68623566303733383937623663383465349b02723c73705f72756e74696d653a3a67656e657269633a3a6865616465723a3a4865616465723c4e756d6265722c486173683e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68613332623433393933313031653361629c023a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f7374723a3a68313966616163363634303864623934669d023b3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f636861723a3a68363763306632616666393765366234629e023a3c266d7574205720617320636f72653a3a666d743a3a57726974653e3a3a77726974655f666d743a3a68666363356433616135306235396631329f024e616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a636f6e7461696e735f6b65793a3a6838376533363161653833333837656238a00245616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a6765743a3a6833646530326462666133613238363739a10245616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a6765743a3a6861333765623834336637643765326537a20245616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a6765743a3a6864383238373766343238663833313338a30247616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a656e7472793a3a6831383231633937386265376630353764a40248616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e3a3a696e736572743a3a6863653637343566353364303332326632a50243616c6c6f633a3a636f6c6c656374696f6e733a3a7665635f64657175653a3a56656344657175653c543e3a3a67726f773a3a6834366165333765353832353364353264a602633c54206173207061726974795f7363616c655f636f6465633a3a64657074685f6c696d69743a3a4465636f64654c696d69743e3a3a6465636f64655f616c6c5f776974685f64657074685f6c696d69743a3a6831626665303966343531373238393166a7024d3c747269655f64623a3a7472696564623a3a5472696544423c4c3e20617320747269655f64623a3a547269653c4c3e3e3a3a6765745f776974683a3a6864356339653839303865303166386234a80239747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633a3a6465636f64653a3a6862383639363639626634646539366230a902503c61727261797665633a3a6572726f72733a3a43617061636974794572726f723c543e20617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6837393632333430663930373534656332aa0225747269655f64623a3a547269653a3a6765743a3a6866356631613264326561623833396537ab02553c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320636f72653a3a64656661756c743a3a44656661756c743e3a3a64656661756c743a3a6865366635633032326130396239613338ac02583c616c6c6f633a3a7665633a3a696e746f5f697465723a3a496e746f497465723c542c413e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6862333533653566623136316432346166ad02603c70616c6c65745f626f756e746965733a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6863643063343637366665323465363736ae024f3c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844423c482c543e3e3a3a6765743a3a6862333438336234343239643938366136af02366861736862726f776e3a3a6d61703a3a486173684d61703c4b2c562c533e3a3a6765743a3a6836383163343836306161303736623932b002523c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844423c482c543e3e3a3a696e736572743a3a6862353066336439303265626363366361b102533c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844423c482c543e3e3a3a656d706c6163653a3a6836396266313934303966653233633661b202386861736862726f776e3a3a6d61703a3a486173684d61703c4b2c562c533e3a3a656e7472793a3a6861633566643236653362313731346564b3023d6861736862726f776e3a3a6d61703a3a566163616e74456e7472793c4b2c562c533e3a3a696e736572743a3a6832663430376337386336316663386234b4023e6861736862726f776e3a3a7261773a3a5261775461626c653c543e3a3a726573657276655f7265686173683a3a6836393838383263396365666231343762b502523c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844423c482c543e3e3a3a72656d6f76653a3a6834343961373437343133653934373134b602543c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844423c482c543e3e3a3a636f6e7461696e733a3a6836613232666166626466643133653064b702583c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a41734861736844423c482c543e3e3a3a61735f686173685f64623a3a6831303435346136373839353264626566b802a901636f72653a3a7074723a3a64726f705f696e5f706c6163653c6d656d6f72795f64623a3a4d656d6f727944423c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235362c6d656d6f72795f64623a3a486173684b65793c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e2c616c6c6f633a3a7665633a3a5665633c75383e3e3e3a3a6830313666303233366232343132373036b9025c3c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a41734861736844423c482c543e3e3a3a61735f686173685f64625f6d75743a3a6862353561343564316233626532616638ba02523c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844425265663c482c543e3e3a3a6765743a3a6833666134393265626263313234643331bb02573c6d656d6f72795f64623a3a4d656d6f727944423c482c4b462c542c4d3e20617320686173685f64623a3a4861736844425265663c482c543e3e3a3a636f6e7461696e733a3a6832353132323963613832383432363161bc02613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6835356538336166333663326664663035bd02613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6836366136613134663532333430396563be02613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a42547265654d61703c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6836656237306566616438356130326136bf02613c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a496e746f497465723c4b2c563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6830653166636430626666306463643362c002763c70616c6c65745f626f756e746965733a3a43616c6c3c543e206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6837333134666566333966323865373037c1022e6672616d655f73797374656d3a3a656e737572655f7369676e65643a3a6839343964386432313865623034363961c2027d70616c6c65745f626f756e746965733a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f626f756e746965733a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6830316431626334633937303137663333c302b60170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a52657365727661626c6543757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a726573657276653a3a6864633331623132306161326533656433c4025c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6865636133326566366233613338363261c502386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6866656538323763633632613763386363c602456672616d655f737570706f72743a3a7472616974733a3a456e737572654f726967696e3a3a656e737572655f6f726967696e3a3a6832613563363731373162363064633563c7024573705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a617070656e643a3a6836363166386537346163613530663636c8025c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6835333133343234393238633635316166c902386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6861636633653336613230613037376439ca02ad0170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a43757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a7472616e736665723a3a6865396164326362343735366132323265cb02bd0170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a52657365727661626c6543757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a736c6173685f72657365727665643a3a6834326431633664613265613535356166cc026d6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a6d75746174653a3a6865303635646432626431333966613665cd024873705f72756e74696d653a3a7472616974733a3a4163636f756e744964436f6e76657273696f6e3a3a696e746f5f6163636f756e743a3a6864613330323036363463316562626164ce026d6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a6d75746174653a3a6866373065393061653031306163623163cf027b3c70616c6c65745f70726f78793a3a70616c6c65743a3a43616c6c3c543e206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6863323436633639653065323733663230d0025370616c6c65745f70726f78793a3a3c696d706c2070616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c543e3e3a3a66696e645f70726f78793a3a6836643264353862306537313934316562d102870170616c6c65745f70726f78793a3a70616c6c65743a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f70726f78793a3a70616c6c65743a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6833613734306530326565636236353064d2025170616c6c65745f70726f78793a3a3c696d706c2070616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c543e3e3a3a646f5f70726f78793a3a6861626666386330363533623131643365d3025c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6864663863313664333937366561663565d402386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6830313536623363663230626436303530d50239636f72653a3a736c6963653a3a3c696d706c205b545d3e3a3a62696e6172795f7365617263683a3a6864656233663764633761666130346633d602386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6836363332326262393633366466346238d702437061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a7573696e675f656e636f6465643a3a6838343739323633656631306665336536d802483c5b545d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6862656566353337386265376665623366d9025c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6838633632623463383365333765343632da02386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6862616538653038373033623734343136db02386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6862633935623837613635623363323666dc0248636f72653a3a7074723a3a64726f705f696e5f706c6163653c706f6c6b61646f745f72756e74696d653a3a43616c6c3e3a3a68323931336639633538376534623864322e33373630dd02743c706f6c6b61646f745f72756e74696d653a3a43616c6c206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6866376339643565333066316637366539de02703c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6838383431316236383566343135386235df027a3c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a4d6f64756c653c543e2061732073705f72756e74696d653a3a7472616974733a3a56616c6964617465556e7369676e65643e3a3a76616c69646174655f756e7369676e65643a3a6866313835343566303438646230356434e0027f73705f636f72653a3a63727970746f3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722073705f636f72653a3a63727970746f3a3a4163636f756e74496433323e3a3a7573696e675f656e636f6465643a3a6834646261363539653937333039303266e1024a706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a4d6f64756c653c543e3a3a6574685f7265636f7665723a3a6837393037393133346164616130393932e2025c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6864363861396235313731643365393731e3025c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6834353966663333393336303734636463e402386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6866633037643535393132366639303334e5024973705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6b656363616b5f3235363a3a6864616135626130643861616139646232e6025573705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a736563703235366b315f65636473615f7265636f7665723a3a6864636565653466323033633166623335e7025c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6861373938656635346334393466316334e8024870616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e3a3a646f5f72656d6f76655f766f7465723a3a6837613534613936326538626338313738e902386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6836663265636539333735653538626434ea02b80170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a4c6f636b61626c6543757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a72656d6f76655f6c6f636b3a3a6866353463643063333039303236396433eb024570616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e3a3a69735f63616e6469646174653a3a6861376664643039656332306164643332ec02766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a6839393961666664333765366238666335ed024273705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6765743a3a6831363732623435356437613030613832ee02303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6861386633346532343837656333623162ef024673705f696f3a3a6d6973633a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7072696e745f757466383a3a6832303234666164356461343966643938f0025270616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e3a3a72656d6f76655f616e645f7265706c6163655f6d656d6265723a3a6839336539653134363262316565623731f102386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6832626263616635393132643937623365f202386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6835346161376630656365626266353932f302910170616c6c65745f656c656374696f6e735f70687261676d656e3a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f656c656374696f6e735f70687261676d656e3a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6831646263383135343261336565623361f402386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6831633739396334366139386635363639f502a2013c70616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e206173206672616d655f737570706f72743a3a7472616974733a3a4368616e67654d656d626572733c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e3e3a3a6368616e67655f6d656d626572735f736f727465643a3a6863333430376532623132663963313036f60296013c70616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e206173206672616d655f737570706f72743a3a7472616974733a3a4368616e67654d656d626572733c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e3e3a3a7365745f7072696d653a3a6833653861373335306333393533366464f7024470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e3a3a646f5f70687261676d656e3a3a6839333534373134303735366363633234f802386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6839646134353138643739373663656438f90239636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63653a3a6833316464633234363330386135626331fa026e3c6672616d655f737570706f72743a3a73746f726167653a3a5072656669784974657261746f723c543e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6839306636323863363234323766353731fb023c73705f6e706f735f656c656374696f6e733a3a70687261676d656e3a3a7365715f70687261676d656e3a3a6866653763663162343763383161613737fc022b616c6c6f633a3a736c6963653a3a6d657267655f736f72743a3a6832373766356437373265383862363166fd022c616c6c6f633a3a736c6963653a3a696e736572745f686561643a3a6839353035626533656131336430376139fe02546672616d655f737570706f72743a3a7472616974733a3a4368616e67654d656d626572733a3a636f6d707574655f6d656d626572735f646966665f736f727465643a3a6864373639333235343237623535383661ff02386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a683931343463366132343662386133306180037c3c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a50726576616c6964617465417474657374733c543e2061732073705f72756e74696d653a3a7472616974733a3a5369676e6564457874656e73696f6e3e3a3a76616c69646174653a3a686631623730353566656361646332643581035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68396262336162323333376464316366348203386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68653266656339393830336566663932308303753c285475706c65456c656d656e74302c5475706c65456c656d656e743129206173206672616d655f737570706f72743a3a7472616974733a3a4f6e496e697469616c697a653c426c6f636b4e756d6265723e3e3a3a6f6e5f696e697469616c697a653a3a683863366563343733643565666262323384035470616c6c65745f626162653a3a3c696d706c2070616c6c65745f626162653a3a70616c6c65743a3a50616c6c65743c543e3e3a3a646f5f696e697469616c697a653a3a68393031313835393863386331343736398503386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68346464386337303732326363373361378603386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68666665373861346335363539303865308703766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a68616333363936303163616465336262358803386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a683839343062383635373837343838396389034b73705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636c6561725f7072656669783a3a68636634393736343337343039336533378a035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68383231643532353261656439636466398b03386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68616130323337666437356664323533338c03706672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a646f75626c655f6d61703a3a53746f72616765446f75626c654d61703a3a73746f726167655f646f75626c655f6d61705f66696e616c5f6b65793a3a68633363396264323135316637346238378d03386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68386335616564636663316638646336348e035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68646364383632626661303034663633378f03386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a68653165303339313735323330313334629003386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68643931303533376433363038393336379103386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6837663964633738333231383962666231920382023c70616c6c65745f7374616b696e673a3a4d6f64756c653c543e2061732073705f7374616b696e673a3a6f6666656e63653a3a4f6e4f6666656e636548616e646c65723c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449642c283c542061732070616c6c65745f73657373696f6e3a3a436f6e6669673e3a3a56616c696461746f7249642c3c542061732070616c6c65745f73657373696f6e3a3a686973746f726963616c3a3a436f6e6669673e3a3a46756c6c4964656e74696669636174696f6e292c7536343e3e3a3a6f6e5f6f6666656e63653a3a683837653765363039393930313364383293034973705f696f3a3a6f6666636861696e5f696e6465783a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7365743a3a68636561653863643562313830613534319403766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a686331383037313533356633646338326495035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a683933386336343338383963373230663696035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a683063626564653761313532393438336497035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a683630616630313838373337396132343198036d6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a6d75746174653a3a686633613361393035353865333365313999037a706f6c6b61646f745f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f7220706f6c6b61646f745f72756e74696d653a3a53657373696f6e4b6579733e3a3a6465636f64653a3a68656534346165336165636465343638329a03386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a68373333306132393265643230383130399b03386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68393166363235366561623235373236659c033770616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a73746172745f6572613a3a68303064666132633662303936613639669d03386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68363662663036373735633136383533379e03386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a68343835373832323630633236306662359f033570616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a6e65775f6572613a3a6831343033303131653062646464626462a003766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a6830616364373330383063346464383766a103706672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a646f75626c655f6d61703a3a53746f72616765446f75626c654d61703a3a73746f726167655f646f75626c655f6d61705f66696e616c5f6b65793a3a6835306437333539646535353961646534a203386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6836353132613637363566313839353639a3034b70616c6c65745f73657373696f6e3a3a686973746f726963616c3a3a50726f76696e67547269653c543e3a3a67656e65726174655f666f723a3a6866613062373062353833656639636238a4035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6839373836663833313834623966356537a503386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6836666563336566656234323238366436a6035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6865383832613836623933623138313534a703386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6862343966623735346136353530383765a803a1013c285475706c65456c656d656e74302c5475706c65456c656d656e74312c5475706c65456c656d656e74322c5475706c65456c656d656e74332c5475706c65456c656d656e74342c5475706c65456c656d656e7435292061732070616c6c65745f73657373696f6e3a3a53657373696f6e48616e646c65723c4149643e3e3a3a6f6e5f6e65775f73657373696f6e3a3a6864376661636132313263636566333234a903603c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a426c6f636b57656967687473206173206672616d655f737570706f72743a3a7472616974733a3a4765743c493e3e3a3a6765743a3a6835396263393435653263373465313736aa03753c285475706c65456c656d656e74302c5475706c65456c656d656e743129206173206672616d655f737570706f72743a3a7472616974733a3a4f6e496e697469616c697a653c426c6f636b4e756d6265723e3e3a3a6f6e5f696e697469616c697a653a3a6831666133666564653833383234353232ab035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6836373932393537613630613139303139ac034c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a4d6f64756c653c543e3a3a70726f636573735f636c61696d3a3a6830643834343264333366626634343639ad035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6839303163353866646466353433383031ae03386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6830373636366630623133336137666566af03746672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c563e20666f7220473e3a3a6765743a3a6837633366623861306633373432376130b0039d01706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6834613130373535623232396531663134b1035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6863383930363461363366316465363234b203746672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a6d61703a3a53746f726167654d61703c5072656669782c4861736865722c4b65792c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a696e736572743a3a6839373061383763393135386465323031b3035870616c6c65745f76657374696e673a3a3c696d706c2070616c6c65745f76657374696e673a3a70616c6c65743a3a50616c6c65743c543e3e3a3a7570646174655f6c6f636b3a3a6865356538333531313866306234633261b4034270616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a6836353133613337623862353530303463b5034470616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a6830303933313366303666306264326362b6034d70616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6834626432386134346437613463333534b7039c013c70616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d617850656e64696e6744656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6839636666316631353330663537373634b8039c013c70616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d617850726f7869657344656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6861363264626165653234336537663065b903a4013c70616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a50726f78794465706f736974466163746f7244656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6835633736363432366363383639653833ba03a2013c70616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a50726f78794465706f7369744261736544656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6832313336633039653537383934656233bb03483c706f6c6b61646f745f72756e74696d653a3a43616c6c20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6834663534653264313663303635353439bc037e70616c6c65745f70726f78793a3a70616c6c65743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722070616c6c65745f70726f78793a3a70616c6c65743a3a43616c6c3c543e3e3a3a6465636f64653a3a6861323533316463633835653737373333bd037e70616c6c65745f70726f78793a3a70616c6c65743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722070616c6c65745f70726f78793a3a70616c6c65743a3a43616c6c3c543e3e3a3a6465636f64653a3a6862346162346162366366336432316364be038a016672616d655f737570706f72743a3a776569676874733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f737570706f72743a3a776569676874733a3a4469737061746368496e666f3e3a3a656e636f64655f746f3a3a6835653130633433366633656665336235bf033c70616c6c65745f73657373696f6e3a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6863616437373135646331623130633936c0033e70616c6c65745f73657373696f6e3a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6861396461363365363765616363333036c1036e3c70616c6c65745f73657373696f6e3a3a5f5f476574427974655374727563745175657565644b6579733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6831363538333962626465366135333039c2035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6834386637303037336261396437616439c30396013c70616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e206173206672616d655f737570706f72743a3a7472616974733a3a436f6e7461696e733c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e3e3a3a636f6e7461696e733a3a6863366532336563353362646431336332c4034d706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6839323431346233346432306361633731c5034f706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6832636366396435396336623439366530c60358706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6865313136353432626239663234363332c703a3013c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a636c61696d733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a50726566697844656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6833633365626638613162646562656530c8034770616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6865386561343536333461363033333634c9034970616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6866346233323761663365326135363232ca03753c70616c6c65745f656c656374696f6e735f70687261676d656e3a3a5f5f47657442797465537472756374566f74696e673c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6865366462353566333565313933326431cb03763c70616c6c65745f656c656374696f6e735f70687261676d656e3a3a5f5f476574427974655374727563744d656d626572733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6832383763343539326366393239646566cc035270616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6836353761323739313431373934363265cd039f013c70616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d6f64756c65496444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6863626365613235613233663838363839ce03a5013c70616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a446573697265644d656d6265727344656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864663737643336383337613332306562cf03a5013c70616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a566f74696e67426f6e644261736544656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6836323262653630653339343430323731d0036a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6861636135363437333366376435383836d1035d3c706f6c6b61646f745f72756e74696d653a3a53657373696f6e4b6579732061732073705f72756e74696d653a3a7472616974733a3a4f70617175654b6579733e3a3a6765745f7261773a3a6837663863666435666561356439303937d2036a636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653c413e20666f7220266d757420463e3a3a63616c6c5f6f6e63653a3a6866363962626435656663366537383631d3035f3c70616c6c65745f73657373696f6e3a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6833626666356136303962326266313764d403653c70616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6833356639626233643038346339393834d5036a3c70616c6c65745f656c656374696f6e735f70687261676d656e3a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6866636132313639646637383334303638d6035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6862653066643335623339626330643838d7035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6837343438343531353165646336646335d8034973705f696f3a3a68617368696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a626c616b65325f3132383a3a6836373938353364663563393861396532d9033c70616c6c65745f696e64696365733a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6833306639303937393364613637366535da033e70616c6c65745f696e64696365733a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6838643939323762633730323536663137db034770616c6c65745f696e64696365733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6861323133336262373065356537353038dc0393013c70616c6c65745f696e64696365733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4465706f73697444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6863353763626532623966633061363964dd033d70616c6c65745f6964656e746974793a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6831336536643533656436303837613538de033f70616c6c65745f6964656e746974793a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6833663462383563643138323533363666df036f3c70616c6c65745f6964656e746974793a3a5f5f47657442797465537472756374526567697374726172733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6863393234396361643063626564613932e0036b3c70616c6c65745f6964656e746974793a3a5f5f47657442797465537472756374537562734f663c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864356538356631626131363838333132e1036c3c70616c6c65745f6964656e746974793a3a5f5f4765744279746553747275637453757065724f663c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6836633661613966626134376434626562e2036f3c70616c6c65745f6964656e746974793a3a5f5f476574427974655374727563744964656e746974794f663c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6835356638333534346532663037656164e3034a636f72653a3a7074723a3a64726f705f696e5f706c6163653c70616c6c65745f6964656e746974793a3a4964656e74697479496e666f3e3a3a6835363532633932383730616537363761e4034870616c6c65745f6964656e746974793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6832306633653532663330306463343135e5039a013c70616c6c65745f6964656e746974793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d61785265676973747261727344656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6834313435633435646337336563646338e6039e013c70616c6c65745f6964656e746974793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a5375624163636f756e744465706f73697444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6861623366383532396636653366336464e70399013c70616c6c65745f6964656e746974793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4669656c644465706f73697444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864636637366133386663636364353630e80399013c70616c6c65745f6964656e746974793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a42617369634465706f73697444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830663531393062393861653838643666e903850170616c6c65745f6964656e746974793a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722070616c6c65745f6964656e746974793a3a526567697374726174696f6e3c42616c616e63653e3e3a3a656e636f64655f746f3a3a6865333837336532643536343666613861ea03820170616c6c65745f6964656e746974793a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722070616c6c65745f6964656e746974793a3a4a756467656d656e743c42616c616e63653e3e3a3a656e636f64655f746f3a3a6836313661346630333738383731633432eb03573c70616c6c65745f6964656e746974793a3a44617461206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6839346437366261643037623237653735ec03573c70616c6c65745f6964656e746974793a3a44617461206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6862333836386437353330343962656362ed03573c70616c6c65745f6964656e746974793a3a44617461206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6832303736366165333465373666616163ee033d70616c6c65745f6d756c74697369673a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6864306566633638646636366233643930ef033f70616c6c65745f6d756c74697369673a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6839663835323535366665376264323335f0034870616c6c65745f6d756c74697369673a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6835636338613863653034386235653135f1039b013c70616c6c65745f6d756c74697369673a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d61785369676e61746f7269657344656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6832303365363332613866646430396362f2039a013c70616c6c65745f6d756c74697369673a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4465706f736974466163746f7244656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864396231386162303333656133313730f30398013c70616c6c65745f6d756c74697369673a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4465706f7369744261736544656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6838643436663732383137323037366138f4033f70616c6c65745f74726561737572793a3a4d6f64756c653c542c493e3a3a63616c6c5f66756e6374696f6e733a3a6838326165393938666630636331353861f5034170616c6c65745f74726561737572793a3a4d6f64756c653c542c493e3a3a73746f726167655f6d657461646174613a3a6835666538313231366365396362663362f603703c70616c6c65745f74726561737572793a3a5f5f47657442797465537472756374417070726f76616c733c542c493e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6862383932643864333533313934663438f7034a70616c6c65745f74726561737572793a3a4d6f64756c653c542c493e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6839643936633239303039666331396661f80399013c70616c6c65745f74726561737572793a3a4d6f64756c653c542c493e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d6f64756c65496444656661756c74427974654765747465723c542c493e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6863306238616364646261363865323239f90395013c70616c6c65745f74726561737572793a3a4d6f64756c653c542c493e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4275726e44656661756c74427974654765747465723c542c493e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6865633262653666653539663761653333fa039c013c70616c6c65745f74726561737572793a3a4d6f64756c653c542c493e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a5370656e64506572696f6444656661756c74427974654765747465723c542c493e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6861646630373639353636333831653061fb039d013c70616c6c65745f74726561737572793a3a4d6f64756c653c542c493e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a50726f706f73616c426f6e6444656661756c74427974654765747465723c542c493e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6839643539366538343762393066393362fc03603c70616c6c65745f6964656e746974793a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6831643331336231336334666138643065fd03603c70616c6c65745f6d756c74697369673a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6861333432313564643131373737303232fe03623c70616c6c65745f74726561737572793a3a4d6f64756c653c542c493e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6837633863353133336365643263626230ff035c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68336439633230316464653065333135318004763c70616c6c65745f6964656e746974793a3a43616c6c3c543e206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a68343834306132656462303138313331308104766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a68626564663437333565326366373265348204386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a683962396637383936356238653836303383047d70616c6c65745f6964656e746974793a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f6964656e746974793a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a683130643133663937396631343638623484045c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68653063663231626531393462383464328504386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68646537643636636364656530373735308604386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a686463363165393636616564323834313587045c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68653131643263386135343964343839348804386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68313334306262333666323966326562378904c20170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a52657365727661626c6543757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a726570617472696174655f72657365727665643a3a68616462666635313762333464663866618a04386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a68366364363233303036396533373834658b04386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a68373231663730343165363035663865618c0448636f72653a3a7074723a3a64726f705f696e5f706c6163653c706f6c6b61646f745f72756e74696d653a3a43616c6c3e3a3a68323931336639633538376534623864322e313936368d044770616c6c65745f6d756c74697369673a3a4d6f64756c653c543e3a3a656e737572655f736f727465645f616e645f696e736572743a3a68343335333836303531366237323937348e047d70616c6c65745f6d756c74697369673a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f6d756c74697369673a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a68323237653366396337616534383335348f043670616c6c65745f6d756c74697369673a3a4d6f64756c653c543e3a3a6f7065726174653a3a68616463633732353463656637653537349004437061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a7573696e675f656e636f6465643a3a68376361303836333334393736623535399104706672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a646f75626c655f6d61703a3a53746f72616765446f75626c654d61703a3a73746f726167655f646f75626c655f6d61705f66696e616c5f6b65793a3a68343061396537663831636236326632619204386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a683633623765646561343538636333333093044570616c6c65745f6d756c74697369673a3a4d6f64756c653c543e3a3a73746f72655f63616c6c5f616e645f726573657276653a3a68323430386535656565666339343063669404386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a686566643932633663623038613836366595045c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68323032383837323661363461666436389604386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68333131656566626538653064373865399704693c706f6c6b61646f745f72756e74696d653a3a43616c6c206173206672616d655f737570706f72743a3a776569676874733a3a4765744469737061746368496e666f3e3a3a6765745f64697370617463685f696e666f3a3a683462393330303139653165316662623898043970616c6c65745f6d756c74697369673a3a4d6f64756c653c543e3a3a636c6561725f63616c6c3a3a686538346231626332646434613538343499045d70616c6c65745f626162653a3a3c696d706c2070616c6c65745f626162653a3a70616c6c65743a3a50616c6c65743c543e3e3a3a646f5f7265706f72745f65717569766f636174696f6e3a3a68613132646131633262386639373930639a043473705f72756e74696d653a3a7472616974733a3a486173683a3a686173685f6f663a3a68616230333232646265626164393335359b044b73705f636f6e73656e7375735f626162653a3a636865636b5f65717569766f636174696f6e5f70726f6f663a3a7b7b636c6f737572657d7d3a3a68616362316438626136393136623965309c045d3c73705f72756e74696d653a3a44697370617463684572726f7257697468506f7374496e666f3c543e20617320636f72653a3a636f6e766572743a3a46726f6d3c453e3e3a3a66726f6d3a3a68306431663965353836643261306238649d0495013c70616c6c65745f73657373696f6e3a3a686973746f726963616c3a3a4d6f64756c653c543e206173206672616d655f737570706f72743a3a7472616974733a3a4b65794f776e657250726f6f6653797374656d3c2873705f636f72653a3a63727970746f3a3a4b65795479706549642c44293e3e3a3a636865636b5f70726f6f663a3a68323730653566616534363162306534629e043d73705f61726974686d657469633a3a7065725f7468696e67733a3a50657262696c6c3a3a7371756172653a3a68613435383139626232663061646631369f04763c70616c6c65745f617574686f726974795f646973636f766572793a3a43616c6c3c543e206173206672616d655f737570706f72743a3a776569676874733a3a4765744469737061746368496e666f3e3a3a6765745f64697370617463685f696e666f3a3a6865626466643235336163643433393530a004386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6861393962303137326439373231663330a104386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6864653331393230386662366432346235a204386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6865343363353732613638383430363436a304386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6832656465363336313862363431626363a4043c7061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a656e636f64653a3a6834336434353863643363326339653332a5046d6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a617070656e643a3a6830386461383561386636303133313438a604386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6864346436613861386633396238643038a7045c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6839346462326262323766323730333833a8044d3c706f6c6b61646f745f72756e74696d653a3a43616c6c20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a68346635346532643136633036353534392e31393734a9045c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6836636535656131383561353736636634aa04776672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c563e20666f7220473e3a3a617070656e643a3a6835636131613035303530356235343434ab04a70170616c6c65745f7363686564756c65723a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722070616c6c65745f7363686564756c65723a3a5363686564756c656456323c43616c6c2c426c6f636b4e756d6265722c50616c6c6574734f726967696e2c4163636f756e7449643e3e3a3a656e636f64655f746f3a3a6832326166356638373438666136333132ac044170616c6c65745f626162653a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a6836333839303937316532626565666261ad044370616c6c65745f626162653a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a6864623934656133363064393565313530ae044c70616c6c65745f626162653a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6833323335323762663566633439643335af04a2013c70616c6c65745f626162653a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4578706563746564426c6f636b54696d6544656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6835376365393532636533626636323130b0049e013c70616c6c65745f626162653a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a45706f63684475726174696f6e44656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6834336337333932323031383333613036b1048f0170616c6c65745f64656d6f63726163793a3a766f74653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722070616c6c65745f64656d6f63726163793a3a766f74653a3a4163636f756e74566f74653c42616c616e63653e3e3a3a6465636f64653a3a6862323037393738343931626230316262b204920170616c6c65745f64656d6f63726163793a3a766f74653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722070616c6c65745f64656d6f63726163793a3a766f74653a3a4163636f756e74566f74653c42616c616e63653e3e3a3a656e636f64655f746f3a3a6836623835616336316263393232313361b3043e70616c6c65745f7363686564756c65723a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6834613261623933666330363330633631b4044070616c6c65745f7363686564756c65723a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6836636632666533343364346461373734b504743c70616c6c65745f7363686564756c65723a3a5f5f4765744279746553747275637453746f7261676556657273696f6e3c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864323633666330323330333033626436b6043f7061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a656e636f64655f746f3a3a6833616463366263363537346437313436b7043173705f6e706f735f656c656374696f6e733a3a746f5f737570706f7274733a3a6861666439373331643136633831316439b80437616c6c6f633a3a7261775f7665633a3a5261775665633c542c413e3a3a726573657276653a3a6837653863323639363931353362363861b9043273705f6e706f735f656c656374696f6e733a3a73657475705f696e707574733a3a6837656238313935316432393166323736ba0468636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4d75743c413e20666f7220266d757420463e3a3a63616c6c5f6d75743a3a6864363661356139383836363239653032bb044d73705f6e706f735f656c656374696f6e733a3a566f7465723c4163636f756e7449643e3a3a7472795f6e6f726d616c697a655f656c65637465643a3a6862653563363137363963393538356463bc045a3c616c6c6f633a3a7665633a3a5665633c753132383e2061732073705f61726974686d657469633a3a4e6f726d616c697a61626c653c753132383e3e3a3a6e6f726d616c697a653a3a6839303136313262656538323130313339bd044a73705f6e706f735f656c656374696f6e733a3a41737369676e6d656e743c4163636f756e7449642c503e3a3a696e746f5f7374616b65643a3a6833633237383735663837336439383439be044c73705f6e706f735f656c656374696f6e733a3a41737369676e6d656e743c4163636f756e7449642c503e3a3a7472795f6e6f726d616c697a653a3a6864306632373462636138386433636534bf045073705f6e706f735f656c656374696f6e733a3a5374616b656441737369676e6d656e743c4163636f756e7449643e3a3a7472795f6e6f726d616c697a653a3a6838393566656563623433653033623266c0043873705f6e706f735f656c656374696f6e733a3a62616c616e63696e673a3a62616c616e63653a3a6865653666636530363964346438663566c1042c616c6c6f633a3a736c6963653a3a696e736572745f686561643a3a6833386661393063363663633439663732c2043c7061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a656e636f64653a3a6839623564343334343237623536333236c3043f70616c6c65745f7363686564756c65723a3a4d6f64756c653c543e3a3a646f5f63616e63656c5f6e616d65643a3a6830646634316432383231353463363938c4045c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6836306633616134616634663532316234c504386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6834363936613138316330633037626238c6044f3c706f6c6b61646f745f72756e74696d653a3a4f726967696e43616c6c657220617320636f72653a3a636d703a3a5061727469616c45713e3a3a6e653a3a6861353539633235333930353666633537c704386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6836646634616365623336623264343462c8047f70616c6c65745f7363686564756c65723a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f7363686564756c65723a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6832653238613266313864373332313135c9044170616c6c65745f7363686564756c65723a3a4d6f64756c653c543e3a3a646f5f7363686564756c655f6e616d65643a3a6837386236343764333735336132633966ca044373705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726561643a3a6831613263386662613833353065656134cb04433c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6832303430316436366632336562393734cc04433c58206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6864323062653836376362326563383664cd04a201636f72653a3a7074723a3a64726f705f696e5f706c6163653c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c616c6c6f633a3a72633a3a52633c636f72653a3a63656c6c3a3a52656643656c6c3c73705f6e706f735f656c656374696f6e733a3a6e6f64653a3a4e6f64653c73705f636f72653a3a63727970746f3a3a4163636f756e74496433323e3e3e3e3e3a3a6837363339396666656266653065656630ce043d73705f636f72653a3a746f5f7375627374726174655f7761736d5f666e5f72657475726e5f76616c75653a3a6862323164393930633331366331653238cf043d73705f636f72653a3a746f5f7375627374726174655f7761736d5f666e5f72657475726e5f76616c75653a3a6864613162393666633238333736316235d0047873705f636f72653a3a63727970746f3a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f636f72653a3a63727970746f3a3a4163636f756e74496433323e3a3a6465636f64653a3a6839653731326130306137363933643834d1042e616c6c6f633a3a7261775f7665633a3a66696e6973685f67726f773a3a6838636564306562626163616539663337d204553c70616c6c65745f62616c616e6365733a3a44757374436c65616e65723c542c493e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a6831393635353932326232643331663061d304613c70616c6c65745f7363686564756c65723a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6830643665333666343930383536653763d404643c70616c6c65745f626162653a3a70616c6c65743a3a50616c6c65743c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6864323534363337313136316339346264d504773c70616c6c65745f7363686564756c65723a3a43616c6c3c543e206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6838333861376663303063633431663265d6043b70616c6c65745f7363686564756c65723a3a4d6f64756c653c543e3a3a646f5f7363686564756c653a3a6866323966343436646662376466373666d7046b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6830643630363462633439636166353032d8046b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7533323e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6861356438653733353039373863343265d9046b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7536343e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6834383032623466376565646238316231da046b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7536343e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6865346463656637306165656164633965db046c3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c753132383e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6866333633353564336365303233666139dc04713c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163745265663c7536343e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a6837383339636535356637343265343164dd0431636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a6866323565313332343861393263626530de0431636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a6834643763613939306565626363626661df043d706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3a3a426c6f636b576569676874733a3a6765743a3a6839336264306338383566663261346531e004960173705f7374616b696e673a3a6f6666656e63653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f7374616b696e673a3a6f6666656e63653a3a4f6666656e636544657461696c733c5265706f727465722c4f6666656e6465723e3e3a3a6465636f64653a3a6835643836663139373036633835393739e104766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a6837633634353565626638336465343134e2043770616c6c65745f617574686f72736869703a3a4d6f64756c653c543e3a3a617574686f723a3a6838386434346435343262333762663130e3043b70616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a7265776172645f62795f6964733a3a6833613233366363376165393766373839e4043f70616c6c65745f696d5f6f6e6c696e653a3a4d6f64756c653c543e3a3a6e6f74655f617574686f72736869703a3a6862656335633264633061643630396338e504386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6865373630323731363931666466336637e604386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6836613936376334333532623439653034e7044970616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4d6f64756c653c543e3a3a636f6d707574655f6665655f7261773a3a6833313031393864326262626331316266e804466672616d655f737570706f72743a3a776569676874733a3a576569676874546f466565506f6c796e6f6d69616c3a3a63616c633a3a6865373736303062323863386331366232e904386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6839336333623635346562636164666565ea044673705f61726974686d657469633a3a68656c706572735f3132386269743a3a6d756c7469706c795f62795f726174696f6e616c3a3a6836323434636635306439633764393262eb046a6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a7075743a3a6832313162326636663932336336663534ec046a6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a7075743a3a6832333463393638646133323561613739ed046a6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a7075743a3a6838303130323133373864313238393238ee046a6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a7075743a3a6862376561653564663330316439393734ef046f3c73705f72756e74696d653a3a67656e657269633a3a6469676573743a3a4469676573744974656d3c486173683e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6832626337626565653336326334336162f0046a6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a7075743a3a6863303061626262333264383135303233f1046d6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a76616c75653a3a53746f7261676556616c75653c5072656669782c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a6d75746174653a3a6863666364363534303031613462356464f204386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6830326436653762386232393466663866f304386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6865303732613930666335646532396335f404766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a6834386465396533616565656337346163f504766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a6865313039633563643564363934653166f6043f70616c6c65745f6f6666656e6365733a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6832326533616338643335626530323932f704773c70616c6c65745f6f6666656e6365733a3a5f5f476574427974655374727563745265706f72747342794b696e64496e6465783c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6866343532663030373334383733316630f804753c70616c6c65745f6f6666656e6365733a3a5f5f4765744279746553747275637444656665727265644f6666656e6365733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6861356461326230653532363737636462f9046c3c70616c6c65745f6f6666656e6365733a3a5f5f476574427974655374727563745265706f7274733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6838313236373063623331663966383931fa044c73705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a737232353531395f7665726966793a3a6830613965313635396366646564303966fb046b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7531363e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6832653266643130383536646633363061fc046b3c7061726974795f7363616c655f636f6465633a3a636f6d706163743a3a436f6d706163743c7531363e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6839343765653431363262323061613237fd047f7061726974795f7363616c655f636f6465633a3a636f6465633a3a696e6e65725f7475706c655f696d706c3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72202851302c5230293e3a3a656e636f64655f746f3a3a6865373061616163386239666130363838fe044a70616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6830393632663566333561323836306233ff0481013c70616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a5f5f476574427974655374727563744e6578744665654d756c7469706c6965723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a683331323734323632373466396464306180055370616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a68303761656332643535353339393662658105a3013c70616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a576569676874546f46656544656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a686466393631616138663536343965313782056d3c73705f61726974686d657469633a3a7065725f7468696e67733a3a50657262696c6c2061732073705f61726974686d657469633a3a7065725f7468696e67733a3a5065725468696e673e3a3a66726f6d5f726174696f6e616c3a3a68383663353535316139383136366332658305aa013c70616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a5472616e73616374696f6e4279746546656544656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a686637306535626133336433333937313384056b3c70616c6c65745f6f6666656e6365733a3a43616c6c3c543e206173206672616d655f737570706f72743a3a776569676874733a3a4765744469737061746368496e666f3e3a3a6765745f64697370617463685f696e666f3a3a68383863306366663831316637316639658505860170616c6c65745f7374616b696e673a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722070616c6c65745f7374616b696e673a3a4578706f737572653c4163636f756e7449642c42616c616e63653e3e3a3a6465636f64653a3a686331383030646435646334643637613086055c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68663262386133633435316564373834348705386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a683966363261303166333530653539376688056c3c636f72653a3a697465723a3a61646170746572733a3a6d61703a3a4d61703c492c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a7472795f666f6c643a3a683265393663626364336636313832623389055c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68313262333364613838313462333930318a05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a68643763383630303539346561306131328b054773705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6e6578745f6b65793a3a68313461663835393261663033343962308c056e3c6672616d655f737570706f72743a3a73746f726167653a3a5072656669784974657261746f723c543e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a68393763346161356563383833653037328d056e3c6672616d655f737570706f72743a3a73746f726167653a3a5072656669784974657261746f723c543e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a68643561393230653530363430303762388e05aa0173705f72756e74696d653a3a7472616e73616374696f6e5f76616c69646974793a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722073705f72756e74696d653a3a7472616e73616374696f6e5f76616c69646974793a3a5472616e73616374696f6e56616c69646974794572726f723e3a3a656e636f64655f746f3a3a68333733393737303633633263373539328f053473705f72756e74696d653a3a7472616974733a3a486173683a3a686173685f6f663a3a683562323837343836313038356464333490053e73705f72756e74696d653a3a67656e657269633a3a656e636f64655f776974685f7665635f7072656669783a3a6865313839373563656665383534623036910591017061726974795f7363616c655f636f6465633a3a636f6465633a3a696e6e65725f7475706c655f696d706c3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f7220284b302c4c302c4d302c4e302c4f302c50302c51302c5230293e3a3a656e636f64655f746f3a3a6836313165353933613362643063666566920556616c6c6f633a3a7665633a3a73706c6963653a3a3c696d706c20616c6c6f633a3a7665633a3a647261696e3a3a447261696e3c542c413e3e3a3a6d6f76655f7461696c3a3a683230316331323265376166613434316193057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a683064313361386638656634663465356194057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68333537373339303165376334353334379505483c5b545d206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a683339613336303035363632613033653796057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a683436363230653539666334613733303297057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a683861643761303761393437333532643598057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a683933373561386462396163306136636299057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68613531623630613964323164643464669a057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68613934383166663564333230643134669b057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68643266346534643665346335393534629c057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68643332623666633033313831643832349d057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68653266306466316236316335346162389e057d3c6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a4f6e456d7074794765747465723c56616c75652c4f6e456d7074793e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68653938356566663732356331313734399f055a6672616d655f73797374656d3a3a657874656e73696f6e733a3a636865636b5f7765696768743a3a436865636b5765696768743c543e3a3a646f5f7072655f64697370617463683a3a6862613239353437326664666130663865a005566672616d655f73797374656d3a3a657874656e73696f6e733a3a636865636b5f7765696768743a3a436865636b5765696768743c543e3a3a646f5f76616c69646174653a3a6836346530343863656535626261613033a1055c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6864323337336331306362393638323834a205386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6836353338613935353563323364323263a30552616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a656e7472793a3a566163616e74456e7472793c4b2c563e3a3a696e736572743a3a6837653236653931393464303138396139a4053b6672616d655f737570706f72743a3a73746f726167653a3a776974685f7472616e73616374696f6e3a3a6862333062653837363832313266366661a5055073705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a73746172745f7472616e73616374696f6e3a3a6837353866333538383836366262313833a6054a3c706f6c6b61646f745f72756e74696d653a3a4f726967696e20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6830316439303835303930643336646266a7052c6672616d655f73797374656d3a3a656e737572655f726f6f743a3a6862393135316334303165306664316163a8055373705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726f6c6c6261636b5f7472616e73616374696f6e3a3a6831613238343538616562323333623365a9055173705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a636f6d6d69745f7472616e73616374696f6e3a3a6865366663303539313834383933383230aa05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6831643937633731653330323337633762ab05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6832643961383431353139353338653735ac05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6834373637326331373635326364666137ad05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6835383234346161313063306332663761ae05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6835393565626236303631393766363431af05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6835623730313937313632333432333932b005386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6835633265386438666234383431343835b105386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6836613939653831643238323934356462b205386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6836623961626330303432363963353738b305386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6837356131316635626461616532333934b405386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6838346337303766323939666337666165b505910173705f72756e74696d653a3a67656e657269633a3a6469676573743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f72756e74696d653a3a67656e657269633a3a6469676573743a3a4469676573743c486173683e3e3a3a6465636f64653a3a6866666336666134643839666262333835b605386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6864663336393061613039396331623435b705386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6866323063323866616466663064373537b805386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6866366239393637393833333632396137b905386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6830316136386237323036336239633663ba05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6830643638343464326239303732323166bb05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6830663565303730346330626235653361bc05a80170616c6c65745f64656d6f63726163793a3a74797065733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722070616c6c65745f64656d6f63726163793a3a74797065733a3a5265666572656e64756d496e666f3c426c6f636b4e756d6265722c486173682c42616c616e63653e3e3a3a656e636f64655f746f3a3a6833393132613565306130396636393732bd05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6832343739386131613963336566386332be05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6832363339643130326162623731343763bf05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6832366263653762613239363739393930c005386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6832376531366333376562353033343765c105386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6832656230313163333037663435396531c205386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6834643235363165353934383638396537c305386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6836306331653766613032373836613262c405386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6836653639353430666537393530633838c505386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6838363836393238386266666238313865c605386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6839326638653363346263393337653339c705386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6839366337303361393739623433363232c805386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6863303235313133316334333266626566c905386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6863326461626430396566656437343665ca05386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a7075743a3a6863616539373034656664623065633761cb05706672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a646f75626c655f6d61703a3a53746f72616765446f75626c654d61703a3a73746f726167655f646f75626c655f6d61705f66696e616c5f6b65793a3a6833653836366563376335633738386664cc05706672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a646f75626c655f6d61703a3a53746f72616765446f75626c654d61703a3a73746f726167655f646f75626c655f6d61705f66696e616c5f6b65793a3a6866376137383338643362313433613164cd055c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6862386636626264613439633538303738ce05746672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c563e20666f7220473e3a3a6765743a3a6837333564613637336162323864636436cf055c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6862623638393463303330663962663533d005776672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c563e20666f7220473e3a3a696e736572743a3a6833616664303937343536316235653066d1055c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6832616531656461653438336631336333d205776672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c563e20666f7220473e3a3a696e736572743a3a6838376165303239623432383536346539d3055c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6831336432646263346231336162303132d4053c70616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6863396137663838326432336334333939d5053e70616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6832303863386262643862623133393935d605723c70616c6c65745f7374616b696e673a3a5f5f4765744279746553747275637453746f7261676556657273696f6e3c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6835366430613662623731386566376637d7056d3c70616c6c65745f7374616b696e673a3a5f5f476574427974655374727563745370616e536c6173683c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6836623764343038353064363961333834d805743c70616c6c65745f7374616b696e673a3a5f5f47657442797465537472756374556e6170706c696564536c61736865733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830353866643664613931386235616134d905723c70616c6c65745f7374616b696e673a3a5f5f4765744279746553747275637445726173546f74616c5374616b653c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830393732306461303364366661303734da05743c70616c6c65745f7374616b696e673a3a5f5f4765744279746553747275637445726173526577617264506f696e74733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830313730626366343634353064313732db05763c70616c6c65745f7374616b696e673a3a5f5f476574427974655374727563744572617356616c696461746f7250726566733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6866323537386534666539396561646666dc05763c70616c6c65745f7374616b696e673a3a5f5f47657442797465537472756374457261735374616b657273436c69707065643c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6837396262346565386539666132613537dd05713c70616c6c65745f7374616b696e673a3a5f5f47657442797465537472756374496e76756c6e657261626c65733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864373564656237393562663337356534de05703c70616c6c65745f7374616b696e673a3a5f5f47657442797465537472756374486973746f727944657074683c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6862393438633139346433393264303231df054770616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6864333731303266376631656233626462e0059a013c70616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d61784e6f6d696e6174696f6e7344656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6862316563666466336362353732636634e105ac013c70616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f7244656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6835366432366438313262626561373339e2059e013c70616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a536c61736844656665724475726174696f6e44656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864366363633532663232303464303266e3059b013c70616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426f6e64696e674475726174696f6e44656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6866383436366565316631636661613531e4059a013c70616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a53657373696f6e7350657245726144656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6833633864336336663064643236656437e5055c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6831613962636330343532353134396239e605386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6838623130303734623563643737623936e7053c7061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a656e636f64653a3a6866346262366538363138313361393064e8053f7061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a656e636f64655f746f3a3a6839396539393962343666316539663831e905d0013c70616c6c65745f7374616b696e673a3a4d6f64756c653c543e206173206672616d655f656c656374696f6e5f70726f76696465725f737570706f72743a3a456c656374696f6e4461746150726f76696465723c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449642c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a426c6f636b4e756d6265723e3e3a3a766f746572733a3a6861613465663133393363346436366538ea0539636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63653a3a6830616136646231633364343130616636eb056e3c6672616d655f737570706f72743a3a73746f726167653a3a5072656669784974657261746f723c543e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6861383361306561303339653736323336ec0539636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63653a3a6839613363303536613561633134353838ed0539636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63653a3a6835363937353737356631643834343931ee055270616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a736c61736861626c655f62616c616e63655f6f665f666e3a3a7b7b636c6f737572657d7d3a3a6832656162393334393363636135636163ef05d1013c70616c6c65745f7374616b696e673a3a4d6f64756c653c543e206173206672616d655f656c656374696f6e5f70726f76696465725f737570706f72743a3a456c656374696f6e4461746150726f76696465723c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449642c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a426c6f636b4e756d6265723e3e3a3a746172676574733a3a6833373539653864663034336232303035f005cc013c70616c6c65745f7374616b696e673a3a53746173684f663c543e2061732073705f72756e74696d653a3a7472616974733a3a436f6e766572743c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449642c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e3e3e3a3a636f6e766572743a3a6833333639353361653765356138333730f105766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a6832313230346639623837663461353834f2054970616c6c65745f7374616b696e673a3a736c617368696e673a3a496e7370656374696e675370616e733c543e3a3a6572615f7370616e3a3a6833353231613262323063323434653335f3057d3c542061732070616c6c65745f7374616b696e673a3a53657373696f6e496e746572666163653c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e3e3a3a64697361626c655f76616c696461746f723a3a6865313636356666353965663735656635f4055e70616c6c65745f7374616b696e673a3a736c617368696e673a3a496e7370656374696e675370616e733c543e3a3a636f6d706172655f616e645f7570646174655f7370616e5f736c6173683a3a6862326431313064646332393230633263f505386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a6864306137353530333533356338386336f6054370616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a636c6561725f6572615f696e666f726d6174696f6e3a3a6835366537623239626234643366313734f705706672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a646f75626c655f6d61703a3a53746f72616765446f75626c654d61703a3a73746f726167655f646f75626c655f6d61705f66696e616c5f6b65793a3a6831373762373438633364363031303364f805706672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a646f75626c655f6d61703a3a53746f72616765446f75626c654d61703a3a73746f726167655f646f75626c655f6d61705f66696e616c5f6b65793a3a6837316635336364323239333131663934f9055c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6861376666363138303133663662613333fa053870616c6c65745f7374616b696e673a3a736c617368696e673a3a6170706c795f736c6173683a3a6865396138653035383033373036363936fb05363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a6831376533363964343461323066633165fc05633c54206173207061726974795f7363616c655f636f6465633a3a64657074685f6c696d69743a3a4465636f64654c696d69743e3a3a6465636f64655f616c6c5f776974685f64657074685f6c696d69743a3a6866313931336463333735633731643032fd05593c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6836366231633538313031306538666335fe05593c636f72653a3a6f7074696f6e3a3a4f7074696f6e3c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6861316164323531636364396565643633ff05653c73705f747269653a3a6e6f64655f6865616465723a3a4e6f6465486561646572206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a683739303464376339343638306565336180065f3c70616c6c65745f7374616b696e673a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a68383132653264383139316437363663668106753c70616c6c65745f7374616b696e673a3a43616c6c3c543e206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a683066363038653139616363383838396582067b70616c6c65745f7374616b696e673a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f7374616b696e673a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a68666132613161363532643639346335358306566672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a696e635f636f6e73756d6572733a3a683935616432666537343033363537643984065c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68336638313234363166356261656134308506b50170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a4c6f636b61626c6543757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a7365745f6c6f636b3a3a683132343765663161663238623839663686063870616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a6b696c6c5f73746173683a3a68616361383233333830336231373834358706386672616d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765743a3a683433623430353133663736656534663688066b3c636f72653a3a697465723a3a61646170746572733a3a526573756c745368756e743c492c453e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a686538663162333530633139393962663589063970616c6c65745f7374616b696e673a3a4d6f64756c653c543e3a3a6d616b655f7061796f75743a3a68616466396639623663313633313636648a06566672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a6465635f636f6e73756d6572733a3a68653130613938326666366230323637398b06ba0170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a43757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a6465706f7369745f696e746f5f6578697374696e673a3a68353564396361386662633731346566668c063970616c6c65745f6772616e6470613a3a4d6f64756c653c543e3a3a6465706f7369745f6c6f673a3a68653036386231613066313364316639398d06733c706f6c6b61646f745f72756e74696d653a3a4e706f73436f6d70616374536f6c7574696f6e31362061732073705f6e706f735f656c656374696f6e733a3a436f6d70616374536f6c7574696f6e3e3a3a696e746f5f61737369676e6d656e743a3a68383662656637653638616137393934358e066b3c636f72653a3a697465723a3a61646170746572733a3a526573756c745368756e743c492c453e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a68303439363935306666643166343161348f06753c73705f72756e74696d653a3a67656e657269633a3a6865616465723a3a4865616465723c4e756d6265722c486173683e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64655f746f3a3a686434613438666561653964313739346590068e0173705f66696e616c6974795f6772616e6470613a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722073705f66696e616c6974795f6772616e6470613a3a45717569766f636174696f6e50726f6f663c482c4e3e3e3a3a656e636f64655f746f3a3a68326336633638653366333463383831379106693c706f6c6b61646f745f72756e74696d653a3a4e706f73436f6d70616374536f6c7574696f6e3136206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653e3a3a656e636f64653a3a6833376233626338346637333131316562920637636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4d75743a3a63616c6c5f6d75743a3a68306163316662333937636132363265639306773c706f6c6b61646f745f72756e74696d653a3a4f726967696e20617320636f72653a3a636f6e766572743a3a46726f6d3c706f6c6b61646f745f72756e74696d653a3a4f726967696e43616c6c65723e3e3a3a66726f6d3a3a7b7b636c6f737572657d7d3a3a6864353432643866363432373837353136940648636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63657b7b767461626c652e7368696d7d7d3a3a68373561353066643937393262346164649506693c706f6c6b61646f745f72756e74696d653a3a4e706f73436f6d70616374536f6c7574696f6e3136206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68336666643431633331376139313436339606693c706f6c6b61646f745f72756e74696d653a3a4e706f73436f6d70616374536f6c7574696f6e3136206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a68356534653061306461343764373239629706723c706f6c6b61646f745f72756e74696d653a3a4e706f73436f6d70616374536f6c7574696f6e31362061732073705f6e706f735f656c656374696f6e733a3a436f6d70616374536f6c7574696f6e3e3a3a756e697175655f746172676574733a3a6865386439303736323031383930613532980646616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a7365743a3a42547265655365743c543e3a3a696e736572743a3a68373830363234353663656366626435659906733c706f6c6b61646f745f72756e74696d653a3a4e706f73436f6d70616374536f6c7574696f6e31362061732073705f6e706f735f656c656374696f6e733a3a436f6d70616374536f6c7574696f6e3e3a3a66726f6d5f61737369676e6d656e743a3a68323861626238346565343235633038619a065d636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e3c413e20666f722026463e3a3a63616c6c3a3a68316431306565363665383137303163649b0654636f72653a3a7074723a3a64726f705f696e5f706c6163653c706f6c6b61646f745f72756e74696d653a3a4e706f73436f6d70616374536f6c7574696f6e31363e3a3a68373239643065616231303334343434649c0677706f6c6b61646f745f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f7220706f6c6b61646f745f72756e74696d653a3a4576656e743e3a3a656e636f64655f746f3a3a68343037663536306235326365623031319d067373705f72756e74696d653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a656e636f64655f746f3a3a68383332353664653833633230623434349e064a706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f6672616d655f73797374656d3a3a68633533306532643962323361356432329f064e706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f7363686564756c65723a3a6830343563623461633633616633326532a0064c706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f696e64696365733a3a6836363263636437316231393864633661a1064d706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f62616c616e6365733a3a6834643537343163373334653762353235a2064c706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f7374616b696e673a3a6863366363363534326164313330383764a3064d706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f6f6666656e6365733a3a6865653236326230333833363332313837a4064c706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f73657373696f6e3a3a6832383136353735303865316336386130a5064c706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f6772616e6470613a3a6864643434393862306234306465613630a6064e706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f696d5f6f6e6c696e653a3a6830396239663264316464666363366366a7064e706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f64656d6f63726163793a3a6863383939333330653036343133636338a80659706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f636f6c6c6563746976655f496e7374616e6365313a3a6830663736633337636262633466623766a90657706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f656c656374696f6e735f70687261676d656e3a3a6833316566313062376164653065643930aa0659706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f6d656d626572736869705f496e7374616e6365313a3a6864393739616531376563313166363633ab064d706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f74726561737572793a3a6839373430313532346666616632383537ac0644706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f636c61696d733a3a6833633236623266643062646136343637ad064c706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f76657374696e673a3a6837306133653037343936393464343732ae064c706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f7574696c6974793a3a6863613261393336373431333365393038af064d706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f6964656e746974793a3a6835343436376138376564343435336165b0064a706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f70726f78793a3a6866346565396162613464333736636138b1064d706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f6d756c74697369673a3a6835313237353862393831666339386533b2064d706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f626f756e746965733a3a6863383165663062323734326364663161b30649706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f746970733a3a6838613230663464626366393935333833b40662706f6c6b61646f745f72756e74696d653a3a52756e74696d653a3a5f5f6d6f64756c655f6576656e74735f70616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a6830333665383266366133646635623532b506eb01636f72653a3a7074723a3a64726f705f696e5f706c6163653c3c706f6c6b61646f745f72756e74696d653a3a4f726967696e206173206672616d655f737570706f72743a3a7472616974733a3a4f726967696e54726169743e3a3a6164645f66696c7465723c70616c6c65745f70726f78793a3a3c696d706c2070616c6c65745f70726f78793a3a70616c6c65743a3a50616c6c65743c706f6c6b61646f745f72756e74696d653a3a52756e74696d653e3e3a3a646f5f70726f78793a3a7b7b636c6f737572657d7d3e3a3a7b7b636c6f737572657d7d3e3a3a6835653732376263343238633233386536b6066c3c706f6c6b61646f745f72756e74696d653a3a4f726967696e206173206672616d655f737570706f72743a3a7472616974733a3a4f726967696e54726169743e3a3a6164645f66696c7465723a3a7b7b636c6f737572657d7d3a3a6833663166663730393666313564653234b70648636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4f6e63653a3a63616c6c5f6f6e63657b7b767461626c652e7368696d7d7d3a3a6861386533653264643231363530323735b8069f0170616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a756e7369676e65643a3a3c696d706c2070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a70616c6c65743a3a50616c6c65743c543e3e3a3a756e7369676e65645f7072655f64697370617463685f636865636b733a3a6838353734646366663966393261353232b9068a0170616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a3c696d706c2070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a70616c6c65743a3a50616c6c65743c543e3e3a3a666561736962696c6974795f636865636b3a3a6839666265626461343831626234663530ba064b73705f696f3a3a6d6973633a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a72756e74696d655f76657273696f6e3a3a6863393133363666363361356239393737bb062c6672616d655f73797374656d3a3a656e737572655f6e6f6e653a3a6838666165653839613434383838393631bc067b70616c6c65745f696e64696365733a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f696e64696365733a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6839636665643530373033653237643538bd06746672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a6d61703a3a53746f726167654d61703c5072656669782c4861736865722c4b65792c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a6d75746174653a3a6861636534633130646463376238343565be067f6672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a6d61703a3a53746f726167654d61703c5072656669782c4861736865722c4b65792c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a7472795f6d75746174655f6578697374733a3a6837633334313964376563323739653062bf06810170616c6c65745f617574686f72736869703a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f617574686f72736869703a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6863636331393630363137353164623866c0067b70616c6c65745f73657373696f6e3a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f73657373696f6e3a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6831643266363066313230343139616235c1064470616c6c65745f6772616e6470613a3a4d6f64756c653c543e3a3a646f5f7265706f72745f65717569766f636174696f6e3a3a6834633531326432636333643438623334c206706672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a646f75626c655f6d61703a3a53746f72616765446f75626c654d61703a3a73746f726167655f646f75626c655f6d61705f66696e616c5f6b65793a3a6866666530636335643365353938343235c306773c70616c6c65745f64656d6f63726163793a3a43616c6c3c543e206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6833316537376466316466336237366465c4067a3c70616c6c65745f636f6c6c6563746976653a3a43616c6c3c542c493e206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6861346366646165313636653465313362c5067a3c70616c6c65745f636f6c6c6563746976653a3a43616c6c3c542c493e206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6862636137306562356438353963643832c606723c70616c6c65745f746970733a3a43616c6c3c543e206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6834656439643435616462366261393364c7067a3c70616c6c65745f6d656d626572736869703a3a43616c6c3c542c493e206173206672616d655f737570706f72743a3a7472616974733a3a556e66696c7465726564446973706174636861626c653e3a3a64697370617463685f6279706173735f66696c7465723a3a6838383664383761393533303662363932c8068b0173705f66696e616c6974795f6772616e6470613a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f66696e616c6974795f6772616e6470613a3a45717569766f636174696f6e50726f6f663c482c4e3e3e3a3a6465636f64653a3a6834663162393161383030666132333133c9067a70616c6c65745f636f6c6c6563746976653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722070616c6c65745f636f6c6c6563746976653a3a43616c6c3c542c493e3e3a3a6465636f64653a3a6862373233643533353561376434613365ca06820170616c6c65745f7574696c6974793a3a70616c6c65743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722070616c6c65745f7574696c6974793a3a70616c6c65743a3a43616c6c3c543e3e3a3a6465636f64653a3a6839313231626235656464613035323664cb068b0173705f66696e616c6974795f6772616e6470613a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722073705f66696e616c6974795f6772616e6470613a3a45717569766f636174696f6e50726f6f663c482c4e3e3e3a3a6465636f64653a3a6862363265666136613065656162303061cc067a70616c6c65745f636f6c6c6563746976653a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722070616c6c65745f636f6c6c6563746976653a3a43616c6c3c542c493e3e3a3a6465636f64653a3a6834313734613634613561363034333835cd06820170616c6c65745f7574696c6974793a3a70616c6c65743a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f646520666f722070616c6c65745f7574696c6974793a3a70616c6c65743a3a43616c6c3c543e3e3a3a6465636f64653a3a6866393632313564363330306139316663ce06aa02616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a72656d6f76653a3a3c696d706c20616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75742c4b2c562c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4b563e3e3a3a72656d6f76655f6c6561665f6b763a3a6831326231626237366633613265643166cf0664616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f6368696c645f656467653a3a6834613135623035366339373064663466d0065a616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f6c6566743a3a6839373631616434366137666633663038d1065b616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a62756c6b5f737465616c5f72696768743a3a6833623236626563373231363965336138d20660616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6e6f64653a3a42616c616e63696e67436f6e746578743c4b2c563e3a3a6d657267655f747261636b696e675f706172656e743a3a6832396434643637313235613766616333d3066a3c70616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6838623336303130376562623263643733d406746672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c563e20666f7220473e3a3a6765743a3a6866636233386232326539336533383834d5065d70616c6c65745f62616c616e6365733a3a3c696d706c2070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a7570646174655f6c6f636b733a3a6834613766636634393833666561656530d6068b0170616c6c65745f76657374696e673a3a70616c6c65743a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f76657374696e673a3a70616c6c65743a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6861653739363863613338343432656438d706b80170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a43757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a656e737572655f63616e5f77697468647261773a3a6861363633313632636362303766363562d8065c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6830653531663865323337316366303162d906713c285475706c65456c656d656e74302c5475706c65456c656d656e743129206173206672616d655f737570706f72743a3a7472616974733a3a4f6e46696e616c697a653c426c6f636b4e756d6265723e3e3a3a6f6e5f66696e616c697a653a3a6839313333616264623863313661653734da063c7061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a656e636f64653a3a6866633038643266646333373838653065db065c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6836353862316235363864666330316264dc06746672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a6d61703a3a53746f726167654d61703c5072656669782c4861736865722c4b65792c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a696e736572743a3a6861306631376465613164376234356366dd06653c73705f61726974686d657469633a3a66697865645f706f696e743a3a46697865645531323820617320636f72653a3a6f70733a3a61726974683a3a4469763e3a3a6469763a3a7b7b636c6f737572657d7d3a3a6836646264376163336466616536346330de06793c285475706c65456c656d656e74302c5475706c65456c656d656e743129206173206672616d655f737570706f72743a3a7472616974733a3a4f6666636861696e576f726b65723c426c6f636b4e756d6265723e3e3a3a6f6666636861696e5f776f726b65723a3a6862356566323264353830663737626461df065173705f696f3a3a6f6666636861696e3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6c6f63616c5f73746f726167655f6765743a3a6831663133626331643463393964333062e0065d73705f696f3a3a6f6666636861696e3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6c6f63616c5f73746f726167655f636f6d706172655f616e645f7365743a3a6836343435643638623563666537326366e1064b73705f696f3a3a6f6666636861696e3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a72616e646f6d5f736565643a3a6837363461653665316561386261306666e2064173705f6e706f735f656c656374696f6e733a3a70687261676d656e3a3a7365715f70687261676d656e5f636f72653a3a6864656165626337636562623464356238e3062c616c6c6f633a3a736c6963653a3a696e736572745f686561643a3a6835363033663238376535366635643132e40668636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4d75743c413e20666f7220266d757420463e3a3a63616c6c5f6d75743a3a6838646230373634623032363235643965e5063473705f6e706f735f656c656374696f6e733a3a7265647563653a3a7265647563653a3a6863623362313762393064376632646566e6066c3c73705f61726974686d657469633a3a7065725f7468696e67733a3a5065725531362061732073705f61726974686d657469633a3a7065725f7468696e67733a3a5065725468696e673e3a3a66726f6d5f726174696f6e616c3a3a6839633136396230663230626265313230e7065473705f6e706f735f656c656374696f6e733a3a68656c706572733a3a61737369676e6d656e745f726174696f5f746f5f7374616b65645f6e6f726d616c697a65643a3a6863396330346266316531333338633530e8065273705f696f3a3a6f6666636861696e3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7375626d69745f7472616e73616374696f6e3a3a6833393331636537313666306666626631e9064c73705f696f3a3a6f6666636861696e3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a69735f76616c696461746f723a3a6831313939326437643965646234323365ea065173705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a737232353531395f7075626c69635f6b6579733a3a6831396162613737386265343636386630eb062c616c6c6f633a3a736c6963653a3a696e736572745f686561643a3a6837646662396631373438333433643361ec06683c636f72653a3a697465723a3a61646170746572733a3a6d61703a3a4d61703c492c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6837666139653366323631663166346137ed0652616c6c6f633a3a636f6c6c656374696f6e733a3a62747265653a3a6d61703a3a656e7472793a3a566163616e74456e7472793c4b2c563e3a3a696e736572743a3a6834363766373065653562313664333265ee063973705f6e706f735f656c656374696f6e733a3a6e6f64653a3a4e6f64653c413e3a3a726f6f743a3a6836353762643739356162663838333132ef064173705f6e706f735f656c656374696f6e733a3a6e6f64653a3a4e6f64653c413e3a3a69735f706172656e745f6f663a3a6862373337326162336335323434353838f006b70170616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a70616c6c65743a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a70616c6c65743a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6830623133326664326435626239636231f1067d3c70616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a70616c6c65743a3a50616c6c65743c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6833643230393638366537613839643032f2063e70616c6c65745f626162653a3a65717569766f636174696f6e3a3a69735f6b6e6f776e5f6f6666656e63653a3a6835393139376165383938386535393633f3063970616c6c65745f746970733a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6865653939373134313561373134633238f4063b70616c6c65745f746970733a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6864373531303166393166636539626663f5064470616c6c65745f746970733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6865646336393635343532386562363733f6069c013c70616c6c65745f746970733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d6178696d756d526561736f6e4c656e67746844656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6839333432336131373765653335373836f7069b013c70616c6c65745f746970733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a446174614465706f7369745065724279746544656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6863313065383237386539666665366433f8069d013c70616c6c65745f746970733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a5469705265706f72744465706f7369744261736544656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6833313438343239623934343731306630f90696013c70616c6c65745f746970733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a54697046696e6465727346656544656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6831313866366661326264363766306638fa0695013c70616c6c65745f746970733a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a546970436f756e74646f776e44656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830623634333663333230373430353530fb06773c736d616c6c7665633a3a536d616c6c5665633c413e20617320636f72653a3a697465723a3a7472616974733a3a636f6c6c6563743a3a457874656e643c3c4120617320736d616c6c7665633a3a41727261793e3a3a4974656d3e3e3a3a657874656e643a3a6831303732383530353835363063336439fc0635736d616c6c7665633a3a536d616c6c5665633c413e3a3a7472795f726573657276653a3a6833396535633963356162343336383137fd06456672616d655f737570706f72743a3a7472616974733a3a456e737572654f726967696e3a3a656e737572655f6f726967696e3a3a6864303364343161333339636632666339fe06ad0170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a43757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a77697468647261773a3a6862396136656138366162616538653863ff064170616c6c65745f6772616e6470613a3a65717569766f636174696f6e3a3a69735f6b6e6f776e5f6f6666656e63653a3a683939393638636662383564613461646480074470616c6c65745f76657374696e673a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a683934313731376134633138386330383981074670616c6c65745f76657374696e673a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a683939633866306463323936633939356682074f70616c6c65745f76657374696e673a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a68393631633832383033393835323764328307b80170616c6c65745f62616c616e6365733a3a3c696d706c206672616d655f737570706f72743a3a7472616974733a3a4c6f636b61626c6543757272656e63793c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e20666f722070616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3e3a3a657874656e645f6c6f636b3a3a683066386430656265323534343066613384074770616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3a3a63616c6c5f66756e6374696f6e733a3a683538386261303939323333323638316685074970616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3a3a73746f726167655f6d657461646174613a3a683535646638323962393638313964393386075270616c6c65745f62616c616e6365733a3a70616c6c65743a3a50616c6c65743c542c493e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a686234643039613832376261363833386287073c7061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f64653a3a656e636f64653a3a686337383330306365343165643839656388073f73705f66696e616c6974795f6772616e6470613a3a636865636b5f6d6573736167655f7369676e61747572653a3a683838666661633330363066353037313489074c73705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a656432353531395f7665726966793a3a68306566363730336231636563376535628a075a70616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a68653861633666363634353936306663358b075c70616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a68326438346366363330653935613831658c076570616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a68303330363838626366316161373034648d07b7013c70616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a556e7369676e6564506861736544656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68653330653662313434663931333766668e07303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68303766643431353838616530343835348f07303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a68363563666361303461643365383230369007303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a683834313834653361326539356262376391074d636f72653a3a686173683a3a696d706c733a3a3c696d706c20636f72653a3a686173683a3a4861736820666f722028412c42293e3a3a686173683a3a6833366162666661326664313765373432920731636f72653a3a70616e69636b696e673a3a6173736572745f6661696c65643a3a68326230343036313238656364623736629307303c265420617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a683839313332316231613035373332333494075c3c70616c6c65745f746970733a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a68623334616537623135666134616535619507653c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a6272616e63685f6e6f64653a3a68316432343166346161396165353165359607683c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a657874656e73696f6e5f6e6f64653a3a68666163353931376334663230626131329707633c73705f747269653a3a6e6f64655f636f6465633a3a4e6f6465436f6465633c483e20617320747269655f64623a3a6e6f64655f636f6465633a3a4e6f6465436f6465633e3a3a6c6561665f6e6f64653a3a683637396435643435653538346539633598077570616c6c65745f746970733a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f746970733a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a683062353935316364383239613864306199075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68393565653830363537366133666339649a075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68393637346265636432336263323731619b075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68376461383761633531396136366635329c07673c70616c6c65745f76657374696e673a3a70616c6c65743a3a50616c6c65743c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a68323733333634386365333064373365359d076b3c70616c6c65745f696d5f6f6e6c696e653a3a4d6f64756c653c543e2061732073705f72756e74696d653a3a7472616974733a3a56616c6964617465556e7369676e65643e3a3a76616c69646174655f756e7369676e65643a3a68633666373263666436316633346430359e073970616c6c65745f696d5f6f6e6c696e653a3a4d6f64756c653c543e3a3a69735f6f6e6c696e653a3a68643531366230633230316536643861639f074d73705f696f3a3a6f6666636861696e3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6e6574776f726b5f73746174653a3a6837366633656261633635313664653936a0074a73705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a737232353531395f7369676e3a3a6839343039653237363331643733643462a1075173705f696f3a3a6f6666636861696e3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6c6f63616c5f73746f726167655f7365743a3a6865646535616139353838393332656239a20789016672616d655f73797374656d3a3a6c696d6974733a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f72206672616d655f73797374656d3a3a6c696d6974733a3a57656967687473506572436c6173733e3a3a656e636f64655f746f3a3a6862636134306238366437396463386536a3075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6866316539636235663166363735666464a407746672616d655f737570706f72743a3a73746f726167653a3a74797065733a3a6d61703a3a53746f726167654d61703c5072656669782c4861736865722c4b65792c56616c75652c51756572794b696e642c4f6e456d7074793e3a3a696e736572743a3a6863333663393065356636616135386639a5073c70616c6c65745f6772616e6470613a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6831633739343534383165643434656439a6073e70616c6c65745f6772616e6470613a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6865343136643566613662363639366139a707703c70616c6c65745f6772616e6470613a3a5f5f4765744279746553747275637443757272656e7453657449643c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6837386230633231333864343164663632a807693c70616c6c65745f6772616e6470613a3a5f5f4765744279746553747275637453746174653c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6831373062383564383464623064336333a907683c636f72653a3a697465723a3a61646170746572733a3a6d61703a3a4d61703c492c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6833393361613437373062326535343834aa076d3c636f72653a3a697465723a3a61646170746572733a3a6d61703a3a4d61703c492c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a73697a655f68696e743a3a6836663536633966373939373337376563ab073d70616c6c65745f6772616e6470613a3a4d6f64756c653c543e3a3a7363686564756c655f6368616e67653a3a6866336265333233646139653737343964ac075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6863323932666135316334623838333331ad07683c636f72653a3a697465723a3a61646170746572733a3a6d61703a3a4d61703c492c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6832343934393637653333383464626533ae07683c636f72653a3a697465723a3a61646170746572733a3a6d61703a3a4d61703c492c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6865656333626230383165636166623433af07683c636f72653a3a697465723a3a61646170746572733a3a6d61703a3a4d61703c492c463e20617320636f72653a3a697465723a3a7472616974733a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6830353361376663373932363861613436b0077b70616c6c65745f6772616e6470613a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f6772616e6470613a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6835313464323165636637376662323464b1073e70616c6c65745f696d5f6f6e6c696e653a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6834666334663666303636323736616661b2074070616c6c65745f696d5f6f6e6c696e653a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6837623833616162616162323461376361b3074670616c6c65745f74696d657374616d703a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a6866303739613931373161326662363464b4074870616c6c65745f74696d657374616d703a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a6861353765316366333361366333633063b5075170616c6c65745f74696d657374616d703a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6836633066663635353532643130613463b607a3013c70616c6c65745f74696d657374616d703a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d696e696d756d506572696f6444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6835616262373535383462626330336162b7073f70616c6c65745f617574686f72736869703a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6836333265646131653835656164306535b8074170616c6c65745f617574686f72736869703a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6835316630616631643533306164363337b90776636f72653a3a7074723a3a64726f705f696e5f706c6163653c70616c6c65745f617574686f72736869703a3a5f5f47657442797465537472756374446964536574556e636c65733c706f6c6b61646f745f72756e74696d653a3a52756e74696d653e3e3a3a6834393363313239663536613264613531ba076d3c70616c6c65745f617574686f72736869703a3a5f5f47657442797465537472756374556e636c65733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6833396462353861613365393162646334bb073a73705f61726974686d657469633a3a62696775696e743a3a42696755696e743a3a6c73747269703a3a6837376366303362363038396365653739bc073773705f61726974686d657469633a3a62696775696e743a3a42696755696e743a3a6d756c3a3a6833646639636462376665356132393865bd0768636f72653a3a6f70733a3a66756e6374696f6e3a3a696d706c733a3a3c696d706c20636f72653a3a6f70733a3a66756e6374696f6e3a3a466e4d75743c413e20666f7220266d757420463e3a3a63616c6c5f6d75743a3a6861666635343962323737363430653163be075f3c70616c6c65745f6772616e6470613a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6865656261323637653632663034333335bf07613c70616c6c65745f696d5f6f6e6c696e653a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6830373261633761343532623137303830c007623c70616c6c65745f617574686f72736869703a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6839653935346131356639623933656465c10756636f72653a3a7074723a3a64726f705f696e5f706c6163653c73705f72756e74696d653a3a72756e74696d655f737472696e673a3a52756e74696d65537472696e673e3a3a6837393664306338396333386437396133c2070c436f72655f76657273696f6ec30712436f72655f657865637574655f626c6f636bc40784016672616d655f6578656375746976653a3a4578656375746976653c53797374656d2c426c6f636b2c436f6e746578742c556e7369676e656456616c696461746f722c416c6c50616c6c6574732c434f6e52756e74696d65557067726164653e3a3a696e697469616c697a655f626c6f636b3a3a6834336538626164326166376465326438c5075073705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a73746172745f62617463685f7665726966793a3a6835313338376262656362313437306265c60783016672616d655f6578656375746976653a3a4578656375746976653c53797374656d2c426c6f636b2c436f6e746578742c556e7369676e656456616c696461746f722c416c6c50616c6c6574732c434f6e52756e74696d65557067726164653e3a3a6170706c795f65787472696e7369633a3a6861653661663038313261636237646263c7075173705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a66696e6973685f62617463685f7665726966793a3a6863363232353331336166663764663032c807516672616d655f73797374656d3a3a3c696d706c206672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3e3a3a66696e616c697a653a3a6834303430326133633966333064633461c9074573705f696f3a3a6d6973633a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7072696e745f6865783a3a6862386435623830303863633162396663ca0715436f72655f696e697469616c697a655f626c6f636bcb07114d657461646174615f6d65746164617461cc071c426c6f636b4275696c6465725f6170706c795f65787472696e736963cd071b426c6f636b4275696c6465725f66696e616c697a655f626c6f636bce0720426c6f636b4275696c6465725f696e686572656e745f65787472696e73696373cf071c426c6f636b4275696c6465725f636865636b5f696e686572656e7473d00718426c6f636b4275696c6465725f72616e646f6d5f73656564d1072b5461676765645472616e73616374696f6e51756575655f76616c69646174655f7472616e73616374696f6ed2075373705f72756e74696d653a3a7472616e73616374696f6e5f76616c69646974793a3a56616c69645472616e73616374696f6e3a3a636f6d62696e655f776974683a3a6836633731633462363732346364653561d307214f6666636861696e576f726b65724170695f6f6666636861696e5f776f726b6572d4071850617261636861696e486f73745f76616c696461746f7273d5071e50617261636861696e486f73745f76616c696461746f725f67726f757073d6072050617261636861696e486f73745f617661696c6162696c6974795f636f726573d7072750617261636861696e486f73745f7065727369737465645f76616c69646174696f6e5f64617461d8072650617261636861696e486f73745f636865636b5f76616c69646174696f6e5f6f757470757473d9072550617261636861696e486f73745f73657373696f6e5f696e6465785f666f725f6368696c64da071a50617261636861696e486f73745f73657373696f6e5f696e666fdb071d50617261636861696e486f73745f76616c69646174696f6e5f636f6465dc072850617261636861696e486f73745f686973746f726963616c5f76616c69646174696f6e5f636f6465dd072c50617261636861696e486f73745f63616e6469646174655f70656e64696e675f617661696c6162696c697479de071e50617261636861696e486f73745f63616e6469646174655f6576656e7473df071a50617261636861696e486f73745f646d715f636f6e74656e7473e0072c50617261636861696e486f73745f696e626f756e645f68726d705f6368616e6e656c735f636f6e74656e7473e1071e4772616e6470614170695f6772616e6470615f617574686f726974696573e207384772616e6470614170695f7375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963e307274772616e6470614170695f67656e65726174655f6b65795f6f776e6572736869705f70726f6f66e4074470616c6c65745f73657373696f6e3a3a686973746f726963616c3a3a50726f76696e67547269653c543e3a3a70726f76653a3a6862353563613736306565303739663864e50715426162654170695f636f6e66696775726174696f6ee6071b426162654170695f63757272656e745f65706f63685f7374617274e70715426162654170695f63757272656e745f65706f6368e80712426162654170695f6e6578745f65706f6368e90724426162654170695f67656e65726174655f6b65795f6f776e6572736869705f70726f6f66ea0735426162654170695f7375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963eb0721417574686f72697479446973636f766572794170695f617574686f726974696573ec072153657373696f6e4b6579735f67656e65726174655f73657373696f6e5f6b657973ed074e73705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a656432353531395f67656e65726174653a3a6863316664303463336532393065383031ee074e73705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a737232353531395f67656e65726174653a3a6830313637663336366230613437643830ef071f53657373696f6e4b6579735f6465636f64655f73657373696f6e5f6b657973f0071d4163636f756e744e6f6e63654170695f6163636f756e745f6e6f6e6365f107205472616e73616374696f6e5061796d656e744170695f71756572795f696e666ff207275472616e73616374696f6e5061796d656e744170695f71756572795f6665655f64657461696c73f307830170616c6c65745f636f6c6c6563746976653a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f636f6c6c6563746976653a3a4572726f723c542c493e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6837366366306236343239633336346133f4075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6838323564643865386538326634636137f5075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6835646635343932306635313230396635f6075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6839623866663838306462356462366633f7074c70616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e3a3a76616c69646174655f616e645f6765745f70726f706f73616c3a3a6835383738633938646139636463383363f8074670616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e3a3a646f5f617070726f76655f70726f706f73616c3a3a6838653139343831643130326339306638f9074270616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e3a3a72656d6f76655f70726f706f73616c3a3a6865303531363937393766396365393461fa072c616c6c6f633a3a736c6963653a3a696e736572745f686561643a3a6864343766383466303632386139386262fb075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6837663362303763353866343366666461fc074b6672616d655f737570706f72743a3a7472616974733a3a4368616e67654d656d626572733a3a7365745f6d656d626572735f736f727465643a3a6863383931636133346333653565313438fd07830170616c6c65745f636f6c6c6563746976653a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f636f6c6c6563746976653a3a4572726f723c542c493e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a6833343662323764346164313939386465fe075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6866666531316339363163666533383837ff075c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a683436303235633831373737643065306480085c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a683061653464613831333762613265323881084c70616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e3a3a76616c69646174655f616e645f6765745f70726f706f73616c3a3a683066386131616664366164376537323382084670616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e3a3a646f5f617070726f76655f70726f706f73616c3a3a683062373262663362306536303635616583084270616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e3a3a72656d6f76655f70726f706f73616c3a3a68396335383162363865316262663662348408a2013c70616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e206173206672616d655f737570706f72743a3a7472616974733a3a4368616e67654d656d626572733c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e3e3a3a6368616e67655f6d656d626572735f736f727465643a3a686131333432636236633538333033626285085c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6866306131636265626437386138336561860896013c70616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e206173206672616d655f737570706f72743a3a7472616974733a3a4368616e67654d656d626572733c3c54206173206672616d655f73797374656d3a3a70616c6c65743a3a436f6e6669673e3a3a4163636f756e7449643e3e3a3a7365745f7072696d653a3a683561303064343761363034353233336687084170616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e3a3a63616c6c5f66756e6374696f6e733a3a683139386339666561356130613965366388084370616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e3a3a73746f726167655f6d657461646174613a3a686131316338626234366439366163306589086f3c70616c6c65745f636f6c6c6563746976653a3a5f5f47657442797465537472756374566f74696e673c542c493e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68333436313139666638363463346633388a08723c70616c6c65745f636f6c6c6563746976653a3a5f5f4765744279746553747275637450726f706f73616c733c542c493e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68326163316338343739373230326563378b084370616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e3a3a73746f726167655f6d657461646174613a3a68626233626332356262373738636234308c086e3c70616c6c65745f636f6c6c6563746976653a3a5f5f476574427974655374727563745072696d653c542c493e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68333738613237356232326266373862628d08733c70616c6c65745f636f6c6c6563746976653a3a5f5f4765744279746553747275637450726f706f73616c4f663c542c493e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a68383939653138373865333633323838668e084d3c706f6c6b61646f745f72756e74696d653a3a43616c6c20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a68346635346532643136633036353534392e363937328f08643c70616c6c65745f636f6c6c6563746976653a3a4d6f64756c653c542c493e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a683665326539326334656339383738303690083d70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6c61756e63685f7075626c69633a3a68343565346563316566663739383464659108766672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a76616c75653a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c75653c543e20666f7220473e3a3a6765743a3a683433396565613161396532623065363992083b70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6261636b696e675f666f723a3a683336636231396430393338623133383693087f70616c6c65745f64656d6f63726163793a3a3c696d706c20636f72653a3a636f6e766572743a3a46726f6d3c70616c6c65745f64656d6f63726163793a3a4572726f723c543e3e20666f722073705f72756e74696d653a3a44697370617463684572726f723e3a3a66726f6d3a3a686366613838626465313465613938636594085c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a683137653066643032383435373265656395084170616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a696e6a6563745f7265666572656e64756d3a3a683235333066646533623766313861313596083f70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6c61756e63685f65787465726e616c3a3a683831636464306133346563613035636497084170616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a646f5f656e6163745f70726f706f73616c3a3a686631343139626261653835626136663198085c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a68383937653834613432613437396661339908746672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c563e20666f7220473e3a3a6765743a3a68323861656363306435656436313465359a084470616c6c65745f73657373696f6e3a3a686973746f726963616c3a3a50726f76696e67547269653c543e3a3a71756572793a3a68633666616435613335656264623861319b087c636f72653a3a7074723a3a64726f705f696e5f706c6163653c747269655f64623a3a7472696564626d75743a3a5472696544424d75743c73705f747269653a3a4c61796f75743c73705f72756e74696d653a3a7472616974733a3a426c616b6554776f3235363e3e3e3a3a68623036343462396563343165383362349c08543c747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e20617320747269655f64623a3a547269654d75743c4c3e3e3a3a696e736572743a3a68303064623137386465633734336631659d083c747269655f64623a3a7472696564626d75743a3a4e6f646553746f726167653c483e3a3a616c6c6f633a3a68393864623333663535313233366138329e0860747269655f64623a3a6e6962626c653a3a6e6962626c65736c6963653a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c65536c6963653e3a3a72696768745f697465723a3a68616238393463313266656332346637319f0872747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a617070656e645f6f7074696f6e616c5f736c6963655f616e645f6e6962626c653a3a6836653736666533383834643761313239a00841747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a636f6d6d69745f6368696c643a3a6839653238373934313839323633326237a1085c747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a64726f705f6c617374733a3a6833323163613533323735333564343337a2083e70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a63616c6c5f66756e6374696f6e733a3a6830343832343138376665383763653430a3084070616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6831643935653165343136663162303161a4086e3c70616c6c65745f64656d6f63726163793a3a5f5f47657442797465537472756374566f74696e674f663c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6832643462356236373332373237316463a508713c70616c6c65745f64656d6f63726163793a3a5f5f476574427974655374727563745075626c696350726f70733c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6861333236303938373931393338386337a6084970616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6836343035316338316565616332373862a70896013c70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d6178566f74657344656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830313333636361373338303238323064a8089b013c70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a436f6f6c6f6666506572696f6444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6836616232356135633538313336343532a908a3013c70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a46617374547261636b566f74696e67506572696f6444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6834656635643263636136636536636534aa089c013c70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4d696e696d756d4465706f73697444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6831323837323963353639616336303935ab089a013c70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a4c61756e6368506572696f6444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6863616336353031653831646635323936ac089f0170616c6c65745f64656d6f63726163793a3a5f3a3a3c696d706c207061726974795f7363616c655f636f6465633a3a636f6465633a3a456e636f646520666f722070616c6c65745f64656d6f63726163793a3a507265696d6167655374617475733c4163636f756e7449642c42616c616e63652c426c6f636b4e756d6265723e3e3a3a656e636f64655f746f3a3a6838333237653339333564346164663135ad083e747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a696e736572745f61743a3a6832643664353862306532313263386564ae083c747269655f64623a3a7472696564626d75743a3a4e6f64653c4f3e3a3a66726f6d5f656e636f6465643a3a6865343062323736383762663765313037af0845747269655f64623a3a7472696564626d75743a3a5472696544424d75743c4c3e3a3a696e736572745f696e73706563746f723a3a6837393432366333356233616362323162b008363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a6837646562303534633066303162313865b108376861736862726f776e3a3a7365743a3a486173685365743c542c533e3a3a696e736572743a3a6866333364323638623538366661306235b2083e747269655f64623a3a7472696564626d75743a3a4e6f64653c4f3e3a3a696e6c696e655f6f725f686173683a3a6861366133313430376230646333353037b30835747269655f64623a3a7472696564626d75743a3a656d7074795f6368696c6472656e3a3a6835626562303166386464643235656631b40865747269655f64623a3a6e6962626c653a3a6e6962626c65736c6963653a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c65536c6963653e3a3a746f5f73746f7265645f72616e67653a3a6864396463663637383466636331636465b5083e6861736862726f776e3a3a7261773a3a5261775461626c653c543e3a3a726573657276655f7265686173683a3a6832636234393366356435393163626233b608613c70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6861653239386236663234623935653462b708746672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a3c696d706c206672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c563e20666f7220473e3a3a6765743a3a6833363039663237306637383536363065b8085c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6830323631656634626633323963623736b9085c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6862323761343537616337343939323230ba085c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6830363663383638633766336134336562bb084a70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a7265647563655f757073747265616d5f64656c65676174696f6e3a3a6835336239336431666330376435633136bc084370616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6e6f74655f707265696d6167655f696e6e65723a3a6864336336646661373232343834383165bd084c70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a6e6f74655f696d6d696e656e745f707265696d6167655f696e6e65723a3a6832626130643239626263616437363364be085c6672616d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a6d61703a3a53746f726167654d61703a3a73746f726167655f6d61705f66696e616c5f6b65793a3a6862346565313361383234636332306133bf083f70616c6c65745f64656d6f63726163793a3a4d6f64756c653c543e3a3a7472795f72656d6f76655f766f74653a3a6861346562643962366133653032613635c00844636f72653a3a7074723a3a64726f705f696e5f706c6163653c706f6c6b61646f745f72756e74696d653a3a4576656e743e3a3a6836303961353238303039633736633937c108723c70616c6c65745f72616e646f6d6e6573735f636f6c6c6563746976655f666c69703a3a4d6f64756c653c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6861333432383834623135346138336439c208426672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a6839626431643765366561363131396464c308446672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a73746f726167655f6d657461646174613a3a6865366366316461646338633236313635c4084d6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a6830393934343264396266616462353166c50899013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a56657273696f6e44656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6864643535663730653463633739626439c6089a013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a446257656967687444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6833343233623861666163366636633539c708a0013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426c6f636b48617368436f756e7444656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6861303838663336396165656430336164c8089d013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426c6f636b4c656e67746844656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6830303437613765363533353462343462c9089e013c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e3a3a6d6f64756c655f636f6e7374616e74735f6d657461646174613a3a426c6f636b5765696768747344656661756c74427974654765747465723c543e206173206672616d655f6d657461646174613a3a44656661756c74427974653e3a3a64656661756c745f627974653a3a6866323738396566366239353234653861ca083570616c6c65745f7374616b696e673a3a736c617368696e673a3a646f5f736c6173683a3a6861306535393762633130323039313466cb084470616c6c65745f7574696c6974793a3a70616c6c65743a3a50616c6c65743c543e3a3a63616c6c5f66756e6374696f6e733a3a6837376230396663383066666662383562cc084573705f696f3a3a6d6973633a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a7072696e745f6e756d3a3a6837663964343033643738623936343163cd085373705f696f3a3a747269653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a626c616b65325f3235365f6f7264657265645f726f6f743a3a6831383334336639663463383961363534ce084373705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a726f6f743a3a6865373734303961613634313366316635cf084b73705f696f3a3a73746f726167653a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6368616e6765735f726f6f743a3a6861313365373864363132663964373063d0084170616c6c65745f6d656d626572736869703a3a4d6f64756c653c542c493e3a3a63616c6c5f66756e6374696f6e733a3a6834626630666562363565346335356635d1084370616c6c65745f6d656d626572736869703a3a4d6f64756c653c542c493e3a3a73746f726167655f6d657461646174613a3a6832656262643239623937666239643561d2085170616c6c65745f72616e646f6d6e6573735f636f6c6c6563746976655f666c69703a3a4d6f64756c653c543e3a3a73746f726167655f6d657461646174613a3a6833653263393930613663303034306132d3086073705f696f3a3a63727970746f3a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a736563703235366b315f65636473615f7265636f7665725f636f6d707265737365643a3a6862326437663338623634366537343762d408653c6672616d655f73797374656d3a3a70616c6c65743a3a50616c6c65743c543e206173206672616d655f6d657461646174613a3a4d6f64756c654572726f724d657461646174613e3a3a6d657461646174613a3a6831316330663165316463613862623066d5083d3c5420617320636f72653a3a636f6e766572743a3a547279496e746f3c553e3e3a3a7472795f696e746f3a3a6837343439376331393031616237353061d6083773705f61726974686d657469633a3a62696775696e743a3a42696755696e743a3a6164643a3a6839313462303231323362636235353463d7084473705f61726974686d657469633a3a62696775696e743a3a42696755696e743a3a6469763a3a7b7b636c6f737572657d7d3a3a6834353636623433636231353966383365d808413c73705f696e686572656e74733a3a4572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6833386136323834363330313937393864d9084273705f696f3a3a6c6f6767696e673a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6c6f673a3a6865663666663431653361616162396435da087773705f72756e74696d655f696e746572666163653a3a706173735f62793a3a3c696d706c2073705f72756e74696d655f696e746572666163653a3a7761736d3a3a46726f6d46464956616c756520666f7220543e3a3a66726f6d5f6666695f76616c75653a3a6837666662626535633239343833356365db08543c616c6c6f633a3a7665633a3a5665633c543e206173207061726974795f7363616c655f636f6465633a3a636f6465633a3a4465636f64653e3a3a6465636f64653a3a6832363831323331623561376363343334dc087773705f72756e74696d655f696e746572666163653a3a706173735f62793a3a3c696d706c2073705f72756e74696d655f696e746572666163653a3a7761736d3a3a496e746f46464956616c756520666f7220543e3a3a696e746f5f6666695f76616c75653a3a6865336635623032656337336461316337dd08323c265420617320636f72653a3a666d743a3a446973706c61793e3a3a666d743a3a6831383161396339356337373439376137de084573705f696f3a3a616c6c6f6361746f723a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a667265653a3a6834613665353738343364633938366265df084773705f696f3a3a616c6c6f6361746f723a3a65787465726e5f686f73745f66756e6374696f6e5f696d706c733a3a6d616c6c6f633a3a6839386165653164666364396236386334e00830616c6c6f633a3a7665633a3a5665633c542c413e3a3a726573657276653a3a6833666437333332326536333036393532e108473c73705f72756e74696d653a3a44697370617463684572726f7220617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6832623636363136623332626131336165e208573c73705f72756e74696d653a3a72756e74696d655f737472696e673a3a52756e74696d65537472696e6720617320636f72653a3a666d743a3a44656275673e3a3a666d743a3a6833313066316330396365373161616361e30856747269655f64623a3a6e6962626c653a3a6e6962626c657665633a3a3c696d706c20747269655f64623a3a6e6962626c653a3a4e6962626c655665633e3a3a707573683a3a6833656264343631643335346637366166e408095f5f6c736872746933e5084c636f6d70696c65725f6275696c74696e733a3a696e743a3a7370656369616c697a65645f6469765f72656d3a3a753132385f6469765f72656d3a3a6866353635306232313761613464643134e608095f5f756d6f64746933e708095f5f75646976746933e808085f5f6d756c746933e908066d656d637079ea08076d656d6d6f7665eb08066d656d736574ec080462636d70ed08095f5f6173686c74693300550970726f64756365727302086c616e6775616765010452757374000c70726f6365737365642d62790105727573746325312e35322e302d6e696768746c79202865333761313363633320323032312d30322d323829" } -} +} \ No newline at end of file diff --git a/node/service/chain-specs/westend.json b/node/service/chain-specs/westend.json index 56a4e9161d28..d6b11da96e9c 100644 --- a/node/service/chain-specs/westend.json +++ b/node/service/chain-specs/westend.json @@ -20,9 +20,8 @@ "/dns/westend.bootnode.amforc.com/tcp/30334/wss/p2p/12D3KooWJ5y9ZgVepBQNW4aabrxgmnrApdVnscqgKWiUu4BNJbC8", "/dns/westend-bootnode.polkadotters.com/tcp/30333/p2p/12D3KooWHPHb64jXMtSRJDrYFATWeLnvChL8NtWVttY67DCH1eC5", "/dns/westend-bootnode.polkadotters.com/tcp/30334/wss/p2p/12D3KooWHPHb64jXMtSRJDrYFATWeLnvChL8NtWVttY67DCH1eC5", - "/dns/wnd-bootnode-cr.gatotech.network/tcp/31330/p2p/12D3KooWQGR1vUhoy6mvQorFp3bZFn6NNezhQZ6NWnVV7tpFgoPd", - "/dns/wnd-bootnode-cr.gatotech.network/tcp/31430/ws/p2p/12D3KooWQGR1vUhoy6mvQorFp3bZFn6NNezhQZ6NWnVV7tpFgoPd", - "/dns/wnd-bootnode-cr.gatotech.network/tcp/31530/wss/p2p/12D3KooWQGR1vUhoy6mvQorFp3bZFn6NNezhQZ6NWnVV7tpFgoPd", + "/dns/boot-cr.gatotech.network/tcp/33300/p2p/12D3KooWQGR1vUhoy6mvQorFp3bZFn6NNezhQZ6NWnVV7tpFgoPd", + "/dns/boot-cr.gatotech.network/tcp/35300/wss/p2p/12D3KooWQGR1vUhoy6mvQorFp3bZFn6NNezhQZ6NWnVV7tpFgoPd", "/dns/boot-westend.metaspan.io/tcp/33012/p2p/12D3KooWNTau7iG4G9cUJSwwt2QJP1W88pUf2SgqsHjRU2RL8pfa", "/dns/boot-westend.metaspan.io/tcp/33015/ws/p2p/12D3KooWNTau7iG4G9cUJSwwt2QJP1W88pUf2SgqsHjRU2RL8pfa", "/dns/boot-westend.metaspan.io/tcp/33016/wss/p2p/12D3KooWNTau7iG4G9cUJSwwt2QJP1W88pUf2SgqsHjRU2RL8pfa", @@ -152,4 +151,4 @@ "childrenDefault": {} } } -} +} \ No newline at end of file From f4e1c852edb8a5f5e21912b521a34c14bdb598e5 Mon Sep 17 00:00:00 2001 From: Javier Bullrich Date: Thu, 22 Jun 2023 12:19:36 +0200 Subject: [PATCH 35/56] fixed one member of two teams prs counting individually (#7398) --- .github/pr-custom-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pr-custom-review.yml b/.github/pr-custom-review.yml index bb715c4adf44..0e62965fcb01 100644 --- a/.github/pr-custom-review.yml +++ b/.github/pr-custom-review.yml @@ -9,7 +9,7 @@ rules: condition: include: ^runtime\/(kusama|polkadot)\/src\/.+\.rs$ exclude: ^runtime\/(kusama|polkadot)\/src\/weights\/.+\.rs$ - all_distinct: + all: - min_approvals: 1 teams: - locks-review From 60af0cab8bbfe3fb23d605b296acd60030e25504 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Jun 2023 10:26:16 +0000 Subject: [PATCH 36/56] Bump openssl from 0.10.48 to 0.10.55 (#7414) Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.48 to 0.10.55. - [Release notes](https://github.com/sfackler/rust-openssl/releases) - [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.48...openssl-v0.10.55) --- updated-dependencies: - dependency-name: openssl dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9536f8372068..36dd9e531af9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5426,9 +5426,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.48" +version = "0.10.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518915b97df115dd36109bfa429a48b8f737bd05508cf9588977b599648926d2" +checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" dependencies = [ "bitflags", "cfg-if", @@ -5458,11 +5458,10 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "openssl-sys" -version = "0.9.83" +version = "0.9.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666416d899cf077260dac8698d60a60b435a46d57e82acb1be3d0dad87284e5b" +checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" dependencies = [ - "autocfg", "cc", "libc", "pkg-config", From fa1c7b793b9af7caad286e2dd0488e47ba6056be Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Thu, 22 Jun 2023 19:38:58 +0200 Subject: [PATCH 37/56] Disable flaky test (#7420) * Disable flaky test Signed-off-by: Oliver Tale-Yazdi * Fix import Signed-off-by: Oliver Tale-Yazdi --------- Signed-off-by: Oliver Tale-Yazdi --- node/network/bitfield-distribution/src/tests.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/node/network/bitfield-distribution/src/tests.rs b/node/network/bitfield-distribution/src/tests.rs index 8e640e7e25d7..eb25a0d34206 100644 --- a/node/network/bitfield-distribution/src/tests.rs +++ b/node/network/bitfield-distribution/src/tests.rs @@ -31,7 +31,7 @@ use polkadot_node_subsystem::{ messages::ReportPeerMessage, }; use polkadot_node_subsystem_test_helpers::make_subsystem_context; -use polkadot_node_subsystem_util::{reputation::add_reputation, TimeoutExt}; +use polkadot_node_subsystem_util::TimeoutExt; use polkadot_primitives::{AvailabilityBitfield, Signed, ValidatorIndex}; use rand_chacha::ChaCha12Rng; use sp_application_crypto::AppCrypto; @@ -428,7 +428,11 @@ fn receive_duplicate_messages() { } #[test] +// FIXME +#[cfg(feature = "enable-flaky")] fn delay_reputation_change() { + use polkadot_node_subsystem_util::reputation::add_reputation; + let _ = env_logger::builder() .filter(None, log::LevelFilter::Trace) .is_test(true) From 0db5f018c6a510c5eceb4f25be794cd0a7873bbf Mon Sep 17 00:00:00 2001 From: Andrei Eres Date: Fri, 23 Jun 2023 13:45:48 +0200 Subject: [PATCH 38/56] Warn if participated in the losing side of a dispute (#7404) * Warn if participated in the losing side of a dispute * Update naming * Additionally filter by candidate hash * Debug zombienet tests * Update 0002-parachains-disputes.zndsl * Debug zombienet * Update node/core/dispute-coordinator/src/initialized.rs Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com> * Add checking to zombienet tests --------- Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com> --- .../dispute-coordinator/src/initialized.rs | 30 +++++++++++++++++++ .../functional/0002-parachains-disputes.zndsl | 3 ++ .../0003-parachains-garbage-candidate.zndsl | 3 ++ 3 files changed, 36 insertions(+) diff --git a/node/core/dispute-coordinator/src/initialized.rs b/node/core/dispute-coordinator/src/initialized.rs index 7d64c91fb63f..9efd47946790 100644 --- a/node/core/dispute-coordinator/src/initialized.rs +++ b/node/core/dispute-coordinator/src/initialized.rs @@ -1003,6 +1003,16 @@ impl Initialized { gum::trace!(target: LOG_TARGET, ?candidate_hash, ?session, "Loaded votes"); + let controlled_indices = env.controlled_indices(); + let own_statements = statements + .iter() + .filter(|(statement, validator_index)| { + controlled_indices.contains(validator_index) && + *statement.candidate_hash() == candidate_hash + }) + .cloned() + .collect::>(); + let import_result = { let intermediate_result = old_state.import_statements(&env, statements, now); @@ -1307,6 +1317,16 @@ impl Initialized { session, "Dispute on candidate concluded with 'valid' result", ); + for (statement, validator_index) in own_statements.iter() { + if statement.statement().indicates_invalidity() { + gum::warn!( + target: LOG_TARGET, + ?candidate_hash, + ?validator_index, + "Voted against a candidate that was concluded valid.", + ); + } + } self.metrics.on_concluded_valid(); } if import_result.is_freshly_concluded_against() { @@ -1316,6 +1336,16 @@ impl Initialized { session, "Dispute on candidate concluded with 'invalid' result", ); + for (statement, validator_index) in own_statements.iter() { + if statement.statement().indicates_validity() { + gum::warn!( + target: LOG_TARGET, + ?candidate_hash, + ?validator_index, + "Voted for a candidate that was concluded invalid.", + ); + } + } self.metrics.on_concluded_invalid(); } diff --git a/zombienet_tests/functional/0002-parachains-disputes.zndsl b/zombienet_tests/functional/0002-parachains-disputes.zndsl index e17ac79399f9..31f2b372f894 100644 --- a/zombienet_tests/functional/0002-parachains-disputes.zndsl +++ b/zombienet_tests/functional/0002-parachains-disputes.zndsl @@ -53,3 +53,6 @@ ferdie: reports polkadot_parachain_disputes_finality_lag is 0 eve: reports polkadot_parachain_disputes_finality_lag is 0 one: reports polkadot_parachain_disputes_finality_lag is 0 two: reports polkadot_parachain_disputes_finality_lag is 0 + +# Check participating in the losing side of a dispute logged +alice: log line contains "Voted against a candidate that was concluded valid." within 180 seconds diff --git a/zombienet_tests/functional/0003-parachains-garbage-candidate.zndsl b/zombienet_tests/functional/0003-parachains-garbage-candidate.zndsl index c4b2dbf20a17..ccc1ea258f52 100644 --- a/zombienet_tests/functional/0003-parachains-garbage-candidate.zndsl +++ b/zombienet_tests/functional/0003-parachains-garbage-candidate.zndsl @@ -39,3 +39,6 @@ honest-validator-2: reports parachain_candidate_disputes_total is at least 2 wit # Disputes should always end as "invalid" honest-validator-0: reports parachain_candidate_dispute_concluded{validity="invalid"} is at least 2 within 15 seconds honest-validator-1: reports parachain_candidate_dispute_concluded{validity="valid"} is 0 within 15 seconds + +# Check participating in the losing side of a dispute logged +malus-validator: log line contains "Voted for a candidate that was concluded invalid." within 180 seconds From 75a1bf47bd04c15be230bb09bb2c3d79de3db8b8 Mon Sep 17 00:00:00 2001 From: Gavin Wood Date: Sun, 25 Jun 2023 13:46:31 +0200 Subject: [PATCH 39/56] Remove `Unwrappable` (#7415) * Remove * rm trait --- xcm/src/v3/mod.rs | 4 ++-- xcm/src/v3/traits.rs | 20 -------------------- xcm/xcm-executor/src/traits/export.rs | 2 +- 3 files changed, 3 insertions(+), 23 deletions(-) diff --git a/xcm/src/v3/mod.rs b/xcm/src/v3/mod.rs index aac0b15d33c9..7e28c0cac652 100644 --- a/xcm/src/v3/mod.rs +++ b/xcm/src/v3/mod.rs @@ -49,7 +49,7 @@ pub use multilocation::{ }; pub use traits::{ send_xcm, validate_send, Error, ExecuteXcm, Outcome, PreparedMessage, Result, SendError, - SendResult, SendXcm, Unwrappable, Weight, XcmHash, + SendResult, SendXcm, Weight, XcmHash, }; // These parts of XCM v2 are unchanged in XCM v3, and are re-imported here. pub use super::v2::OriginKind; @@ -184,7 +184,7 @@ pub mod prelude { NetworkId::{self, *}, OriginKind, Outcome, PalletInfo, Parent, ParentThen, PreparedMessage, QueryId, QueryResponseInfo, Response, Result as XcmResult, SendError, SendResult, SendXcm, - Unwrappable, Weight, + Weight, WeightLimit::{self, *}, WildFungibility::{self, Fungible as WildFungible, NonFungible as WildNonFungible}, WildMultiAsset::{self, *}, diff --git a/xcm/src/v3/traits.rs b/xcm/src/v3/traits.rs index 0482c030ee64..0f4c87ac6ec0 100644 --- a/xcm/src/v3/traits.rs +++ b/xcm/src/v3/traits.rs @@ -437,26 +437,6 @@ pub type XcmHash = [u8; 32]; /// Result value when attempting to send an XCM message. pub type SendResult = result::Result<(T, MultiAssets), SendError>; -pub trait Unwrappable { - type Inner; - fn none() -> Self; - fn some(i: Self::Inner) -> Self; - fn take(self) -> Option; -} - -impl Unwrappable for Option { - type Inner = T; - fn none() -> Self { - None - } - fn some(i: Self::Inner) -> Self { - Some(i) - } - fn take(self) -> Option { - self - } -} - /// Utility for sending an XCM message to a given location. /// /// These can be amalgamated in tuples to form sophisticated routing systems. In tuple format, each diff --git a/xcm/xcm-executor/src/traits/export.rs b/xcm/xcm-executor/src/traits/export.rs index 39667cec48ca..7aeccd44566a 100644 --- a/xcm/xcm-executor/src/traits/export.rs +++ b/xcm/xcm-executor/src/traits/export.rs @@ -97,7 +97,7 @@ impl ExportXcm for Tuple { } } - fn deliver(one_ticket: Self::Ticket) -> Result { + fn deliver(mut one_ticket: Self::Ticket) -> Result { for_tuples!( #( if let Some(validated) = one_ticket.Tuple.take() { return Tuple::deliver(validated); From ee49329495c35d01e78d392601b4541d0e25c3ca Mon Sep 17 00:00:00 2001 From: Anton Date: Mon, 26 Jun 2023 02:19:55 +0400 Subject: [PATCH 40/56] add pallet_im_online::migration to Unreleased migrations (#7387) * add pallet_im_online::migration to Unreleased migrations refs https://github.com/paritytech/polkadot/pull/7309#issuecomment-1593030554 * ".git/.scripts/commands/fmt/fmt.sh" --------- Co-authored-by: command-bot <> --- runtime/kusama/src/lib.rs | 6 ++++-- runtime/parachains/src/configuration/migration_ump.rs | 10 ++-------- runtime/polkadot/src/lib.rs | 2 +- runtime/rococo/src/lib.rs | 5 ++++- runtime/westend/src/lib.rs | 2 +- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 88d6b613f92f..c6e3bac29a2f 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -1532,8 +1532,10 @@ pub mod migrations { ); /// Unreleased migrations. Add new ones here: - pub type Unreleased = - (pallet_society::migrations::MigrateToV2,); + pub type Unreleased = ( + pallet_society::migrations::MigrateToV2, + pallet_im_online::migration::v1::Migration, + ); /// Migrations that set `StorageVersion`s we missed to set. pub struct SetStorageVersions; diff --git a/runtime/parachains/src/configuration/migration_ump.rs b/runtime/parachains/src/configuration/migration_ump.rs index c46f25108fa3..008a93142ee7 100644 --- a/runtime/parachains/src/configuration/migration_ump.rs +++ b/runtime/parachains/src/configuration/migration_ump.rs @@ -107,18 +107,12 @@ pub mod latest { "There must be exactly one new pending upgrade enqueued" ); if let Err(err) = last.1.check_consistency() { - log::error!( - target: LOG_TARGET, - "Last PendingConfig is invalidity {:?}", err, - ); + log::error!(target: LOG_TARGET, "Last PendingConfig is invalidity {:?}", err,); return Err("Pending upgrade must be sane but was not".into()) } if let Err(err) = ActiveConfig::::get().check_consistency() { - log::error!( - target: LOG_TARGET, - "ActiveConfig is invalid: {:?}", err, - ); + log::error!(target: LOG_TARGET, "ActiveConfig is invalid: {:?}", err,); return Err("Active upgrade must be sane but was not".into()) } diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 3ebccf5a94f4..0cdc6785e746 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -1522,7 +1522,7 @@ pub mod migrations { ); /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = (pallet_im_online::migration::v1::Migration,); /// Migrations that set `StorageVersion`s we missed to set. pub struct SetStorageVersions; diff --git a/runtime/rococo/src/lib.rs b/runtime/rococo/src/lib.rs index 68528fa8e7d3..833a1bdf4dec 100644 --- a/runtime/rococo/src/lib.rs +++ b/runtime/rococo/src/lib.rs @@ -1623,7 +1623,10 @@ pub mod migrations { } /// Unreleased migrations. Add new ones here: - pub type Unreleased = (pallet_society::migrations::MigrateToV2,); + pub type Unreleased = ( + pallet_society::migrations::MigrateToV2, + pallet_im_online::migration::v1::Migration, + ); } /// Helpers to configure all migrations. diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index eb1d25e37014..411f21f13841 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -1323,7 +1323,7 @@ pub mod migrations { } /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = (pallet_im_online::migration::v1::Migration,); } /// Helpers to configure all migrations. From 41e2bb84e8037b72db73199416ebc226e0cbe7ff Mon Sep 17 00:00:00 2001 From: Maksym Hlukhovtsov <1177472+mordamax@users.noreply.github.com> Date: Mon, 26 Jun 2023 13:57:33 +0100 Subject: [PATCH 41/56] Revert "fixed one member of two teams prs counting individually (#7398)" (#7423) This reverts commit f4e1c852edb8a5f5e21912b521a34c14bdb598e5. --- .github/pr-custom-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pr-custom-review.yml b/.github/pr-custom-review.yml index 0e62965fcb01..bb715c4adf44 100644 --- a/.github/pr-custom-review.yml +++ b/.github/pr-custom-review.yml @@ -9,7 +9,7 @@ rules: condition: include: ^runtime\/(kusama|polkadot)\/src\/.+\.rs$ exclude: ^runtime\/(kusama|polkadot)\/src\/weights\/.+\.rs$ - all: + all_distinct: - min_approvals: 1 teams: - locks-review From 82dd94aea4f81d16323864d2513364afcb660d14 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 27 Jun 2023 16:06:57 +0200 Subject: [PATCH 42/56] Companion for substrate #14464 (#7429) * Remove unneeded feature flag * More serde flags * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <> --- Cargo.lock | 621 ++++++++++++---------------------- primitives/Cargo.toml | 2 +- runtime/parachains/Cargo.toml | 2 +- 3 files changed, 213 insertions(+), 412 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 36dd9e531af9..2525570216ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -487,12 +487,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - [[package]] name = "base64" version = "0.13.0" @@ -523,7 +517,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "hash-db", "log", @@ -1461,18 +1455,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "crypto-bigint" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7" -dependencies = [ - "generic-array 0.14.6", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - [[package]] name = "crypto-common" version = "0.1.6" @@ -1706,16 +1688,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "der" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0" -dependencies = [ - "const-oid", - "zeroize", -] - [[package]] name = "der-parser" version = "7.0.0" @@ -1996,22 +1968,10 @@ version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der 0.6.0", - "elliptic-curve 0.12.3", - "rfc6979 0.3.1", - "signature 1.6.4", -] - -[[package]] -name = "ecdsa" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1b0a1222f8072619e8a6b667a854020a03d363738303203c09468b3424a420a" -dependencies = [ - "der 0.7.1", - "elliptic-curve 0.13.2", - "rfc6979 0.4.0", - "signature 2.0.0", + "der", + "elliptic-curve", + "rfc6979", + "signature", ] [[package]] @@ -2020,7 +1980,7 @@ version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ - "signature 1.6.4", + "signature", ] [[package]] @@ -2063,37 +2023,18 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ - "base16ct 0.1.1", - "crypto-bigint 0.4.9", - "der 0.6.0", + "base16ct", + "crypto-bigint", + "der", "digest 0.10.6", - "ff 0.12.1", + "ff", "generic-array 0.14.6", - "group 0.12.1", + "group", "hkdf", "pem-rfc7468", - "pkcs8 0.9.0", + "pkcs8", "rand_core 0.6.4", - "sec1 0.3.0", - "subtle", - "zeroize", -] - -[[package]] -name = "elliptic-curve" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea5a92946e8614bb585254898bb7dd1ddad241ace60c52149e3765e34cc039d" -dependencies = [ - "base16ct 0.2.0", - "crypto-bigint 0.5.1", - "digest 0.10.6", - "ff 0.13.0", - "generic-array 0.14.6", - "group 0.13.0", - "pkcs8 0.10.1", - "rand_core 0.6.4", - "sec1 0.7.1", + "sec1", "subtle", "zeroize", ] @@ -2388,16 +2329,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "fiat-crypto" version = "0.1.20" @@ -2518,7 +2449,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", ] @@ -2541,7 +2472,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "frame-support-procedural", @@ -2566,7 +2497,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "Inflector", "array-bytes", @@ -2603,7 +2534,6 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-state-machine", - "sp-std", "sp-storage", "sp-trie", "thiserror", @@ -2613,7 +2543,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2624,7 +2554,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2641,7 +2571,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "frame-system", @@ -2670,7 +2600,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-recursion", "futures", @@ -2691,20 +2621,19 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "bitflags", "environmental", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", - "k256", "log", "macro_magic", - "once_cell", "parity-scale-codec", "paste", "scale-info", + "secp256k1", "serde", "smallvec", "sp-api", @@ -2726,7 +2655,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "Inflector", "cfg-expr", @@ -2744,7 +2673,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2756,7 +2685,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "proc-macro2", "quote", @@ -2766,7 +2695,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-executive", @@ -2793,7 +2722,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "frame-system", @@ -2805,7 +2734,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "cfg-if", "frame-support", @@ -2824,7 +2753,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -2839,7 +2768,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "sp-api", @@ -2848,7 +2777,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "parity-scale-codec", @@ -3030,7 +2959,7 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "chrono", "frame-election-provider-support", @@ -3057,7 +2986,6 @@ checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", - "zeroize", ] [[package]] @@ -3148,18 +3076,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "ff 0.12.1", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff 0.13.0", + "ff", "rand_core 0.6.4", "subtle", ] @@ -3873,19 +3790,6 @@ dependencies = [ "jsonrpsee-types", ] -[[package]] -name = "k256" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955890845095ccf31ef83ad41a05aabb4d8cc23dc3cac5a9f5c89cf26dd0da75" -dependencies = [ - "cfg-if", - "ecdsa 0.16.1", - "elliptic-curve 0.13.2", - "once_cell", - "sha2 0.10.2", -] - [[package]] name = "keccak" version = "0.1.0" @@ -4964,7 +4868,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "futures", "log", @@ -4983,7 +4887,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "anyhow", "jsonrpsee", @@ -5536,8 +5440,8 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ - "ecdsa 0.14.8", - "elliptic-curve 0.12.3", + "ecdsa", + "elliptic-curve", "sha2 0.10.2", ] @@ -5547,8 +5451,8 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ - "ecdsa 0.14.8", - "elliptic-curve 0.12.3", + "ecdsa", + "elliptic-curve", "sha2 0.10.2", ] @@ -5565,7 +5469,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5580,7 +5484,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "frame-system", @@ -5596,7 +5500,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "frame-system", @@ -5610,7 +5514,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5634,7 +5538,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5654,7 +5558,7 @@ dependencies = [ [[package]] name = "pallet-bags-list-remote-tests" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-election-provider-support", "frame-remote-externalities", @@ -5673,7 +5577,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5688,7 +5592,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "frame-system", @@ -5707,7 +5611,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -5731,7 +5635,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5749,7 +5653,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5768,7 +5672,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5785,7 +5689,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5802,7 +5706,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5820,7 +5724,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5843,7 +5747,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5856,7 +5760,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5874,7 +5778,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "docify", "frame-benchmarking", @@ -5893,7 +5797,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5916,7 +5820,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5932,7 +5836,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5952,7 +5856,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5969,7 +5873,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5986,7 +5890,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6005,7 +5909,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6022,7 +5926,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6038,7 +5942,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6054,7 +5958,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "frame-system", @@ -6071,7 +5975,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6091,7 +5995,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6102,7 +6006,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "frame-system", @@ -6119,7 +6023,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6143,7 +6047,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6160,7 +6064,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6175,7 +6079,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6193,7 +6097,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6208,7 +6112,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6227,7 +6131,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6244,7 +6148,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "frame-system", @@ -6265,7 +6169,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6281,7 +6185,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6300,7 +6204,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6323,7 +6227,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6334,7 +6238,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "log", "sp-arithmetic", @@ -6343,7 +6247,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "sp-api", @@ -6352,7 +6256,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6369,7 +6273,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6384,7 +6288,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6402,7 +6306,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6421,7 +6325,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-support", "frame-system", @@ -6437,7 +6341,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6453,7 +6357,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6465,7 +6369,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6482,7 +6386,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6497,7 +6401,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6513,7 +6417,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6528,7 +6432,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -6859,18 +6763,8 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der 0.6.0", - "spki 0.6.0", -] - -[[package]] -name = "pkcs8" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d2820d87d2b008616e5c27212dd9e0e694fb4c6b522de06094106813328cb49" -dependencies = [ - "der 0.7.1", - "spki 0.7.0", + "der", + "spki", ] [[package]] @@ -9277,21 +9171,11 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ - "crypto-bigint 0.4.9", + "crypto-bigint", "hmac 0.12.1", "zeroize", ] -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac 0.12.1", - "subtle", -] - [[package]] name = "ring" version = "0.16.20" @@ -9679,7 +9563,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "log", "sp-core", @@ -9690,7 +9574,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "futures", @@ -9705,7 +9589,6 @@ dependencies = [ "rand 0.8.5", "sc-client-api", "sc-network", - "sc-network-common", "sp-api", "sp-authority-discovery", "sp-blockchain", @@ -9719,7 +9602,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "futures", "futures-timer", @@ -9742,7 +9625,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9757,7 +9640,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9776,7 +9659,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9787,7 +9670,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "chrono", @@ -9805,7 +9688,6 @@ dependencies = [ "sc-client-db", "sc-keystore", "sc-network", - "sc-network-common", "sc-service", "sc-telemetry", "sc-tracing", @@ -9827,7 +9709,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "fnv", "futures", @@ -9854,7 +9736,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "hash-db", "kvdb", @@ -9880,7 +9762,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "futures", @@ -9905,7 +9787,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "fork-tree", @@ -9920,7 +9802,6 @@ dependencies = [ "sc-consensus", "sc-consensus-epochs", "sc-consensus-slots", - "sc-keystore", "sc-telemetry", "scale-info", "sp-api", @@ -9941,7 +9822,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "futures", "jsonrpsee", @@ -9963,7 +9844,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "async-channel", @@ -9975,9 +9856,7 @@ dependencies = [ "parking_lot 0.12.1", "sc-client-api", "sc-consensus", - "sc-keystore", "sc-network", - "sc-network-common", "sc-network-gossip", "sc-network-sync", "sc-utils", @@ -9999,7 +9878,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "futures", "jsonrpsee", @@ -10018,7 +9897,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10031,7 +9910,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "ahash 0.8.2", "array-bytes", @@ -10071,7 +9950,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "finality-grandpa", "futures", @@ -10091,7 +9970,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "futures", @@ -10114,7 +9993,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -10136,7 +10015,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -10148,13 +10027,12 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "anyhow", "cfg-if", "libc", "log", - "once_cell", "rustix 0.36.7", "sc-allocator", "sc-executor-common", @@ -10166,7 +10044,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "ansi_term", "futures", @@ -10182,7 +10060,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -10196,7 +10074,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "async-channel", @@ -10211,25 +10089,20 @@ dependencies = [ "libp2p", "linked_hash_set", "log", - "lru 0.10.0", "mockall", "parity-scale-codec", "parking_lot 0.12.1", "partial_sort", "pin-project", "rand 0.8.5", - "sc-block-builder", "sc-client-api", - "sc-consensus", "sc-network-common", "sc-utils", "serde", "serde_json", "smallvec", - "snow", "sp-arithmetic", "sp-blockchain", - "sp-consensus", "sp-core", "sp-runtime", "substrate-prometheus-endpoint", @@ -10242,7 +10115,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-channel", "cid", @@ -10253,7 +10126,6 @@ dependencies = [ "prost-build", "sc-client-api", "sc-network", - "sc-network-common", "sp-blockchain", "sp-runtime", "thiserror", @@ -10263,34 +10135,24 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ - "array-bytes", "async-trait", "bitflags", - "bytes", "futures", - "futures-timer", "libp2p-identity", "parity-scale-codec", "prost-build", "sc-consensus", - "sc-utils", - "serde", - "smallvec", - "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", - "zeroize", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "ahash 0.8.2", "futures", @@ -10308,7 +10170,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "async-channel", @@ -10320,7 +10182,6 @@ dependencies = [ "prost-build", "sc-client-api", "sc-network", - "sc-network-common", "sp-blockchain", "sp-core", "sp-runtime", @@ -10330,7 +10191,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "async-channel", @@ -10364,7 +10225,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "futures", @@ -10382,7 +10243,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "bytes", @@ -10399,7 +10260,6 @@ dependencies = [ "rand 0.8.5", "sc-client-api", "sc-network", - "sc-network-common", "sc-utils", "sp-api", "sp-core", @@ -10412,7 +10272,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10421,7 +10281,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "futures", "jsonrpsee", @@ -10452,7 +10312,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10471,7 +10331,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "http", "jsonrpsee", @@ -10486,7 +10346,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "futures", @@ -10512,7 +10372,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "directories", @@ -10543,7 +10403,6 @@ dependencies = [ "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", - "sc-storage-monitor", "sc-sysinfo", "sc-telemetry", "sc-tracing", @@ -10578,7 +10437,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "log", "parity-scale-codec", @@ -10589,14 +10448,12 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "clap 4.2.5", "fs4", - "futures", "log", "sc-client-db", - "sc-utils", "sp-core", "thiserror", "tokio", @@ -10605,7 +10462,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10624,7 +10481,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "futures", "libc", @@ -10643,7 +10500,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "chrono", "futures", @@ -10662,7 +10519,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "ansi_term", "atty", @@ -10670,12 +10527,10 @@ dependencies = [ "lazy_static", "libc", "log", - "once_cell", "parking_lot 0.12.1", "regex", "rustc-hash", "sc-client-api", - "sc-rpc-server", "sc-tracing-proc-macro", "serde", "sp-api", @@ -10693,7 +10548,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10704,7 +10559,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "futures", @@ -10730,7 +10585,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "futures", @@ -10746,7 +10601,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-channel", "futures", @@ -10873,24 +10728,10 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ - "base16ct 0.1.1", - "der 0.6.0", + "base16ct", + "der", "generic-array 0.14.6", - "pkcs8 0.9.0", - "subtle", - "zeroize", -] - -[[package]] -name = "sec1" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e" -dependencies = [ - "base16ct 0.2.0", - "der 0.7.1", - "generic-array 0.14.6", - "pkcs8 0.10.1", + "pkcs8", "subtle", "zeroize", ] @@ -11174,16 +11015,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "signature" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d" -dependencies = [ - "digest 0.10.6", - "rand_core 0.6.4", -] - [[package]] name = "simba" version = "0.8.0" @@ -11294,7 +11125,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "hash-db", "log", @@ -11314,7 +11145,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "Inflector", "blake2", @@ -11328,7 +11159,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -11341,7 +11172,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "integer-sqrt", "num-traits", @@ -11355,7 +11186,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -11368,9 +11199,8 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ - "parity-scale-codec", "sp-api", "sp-inherents", "sp-runtime", @@ -11380,7 +11210,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "futures", "log", @@ -11398,7 +11228,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "futures", @@ -11413,14 +11243,13 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", - "sp-consensus", "sp-consensus-slots", "sp-inherents", "sp-runtime", @@ -11431,7 +11260,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "parity-scale-codec", @@ -11439,11 +11268,9 @@ dependencies = [ "serde", "sp-api", "sp-application-crypto", - "sp-consensus", "sp-consensus-slots", "sp-core", "sp-inherents", - "sp-keystore", "sp-runtime", "sp-std", "sp-timestamp", @@ -11452,7 +11279,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11471,7 +11298,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "finality-grandpa", "log", @@ -11489,7 +11316,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -11501,7 +11328,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "bitflags", @@ -11545,23 +11372,21 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.6", "sha2 0.10.2", "sha3", - "sp-std", "twox-hash", ] [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ - "proc-macro2", "quote", "sp-core-hashing", "syn 2.0.16", @@ -11570,7 +11395,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11579,7 +11404,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "proc-macro2", "quote", @@ -11589,7 +11414,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "environmental", "parity-scale-codec", @@ -11600,13 +11425,12 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-core", "sp-runtime", "sp-std", "thiserror", @@ -11615,12 +11439,11 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "bytes", "ed25519", "ed25519-dalek", - "futures", "libsecp256k1", "log", "parity-scale-codec", @@ -11641,7 +11464,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "lazy_static", "sp-core", @@ -11652,12 +11475,10 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ - "futures", "parity-scale-codec", "parking_lot 0.12.1", - "serde", "sp-core", "sp-externalities", "thiserror", @@ -11666,7 +11487,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11675,7 +11496,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11686,7 +11507,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11704,7 +11525,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -11718,7 +11539,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "sp-api", "sp-core", @@ -11728,7 +11549,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "backtrace", "lazy_static", @@ -11738,7 +11559,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "rustc-hash", "serde", @@ -11748,7 +11569,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "either", "hash256-std-hasher", @@ -11770,7 +11591,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11788,7 +11609,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "Inflector", "proc-macro-crate", @@ -11800,7 +11621,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -11814,7 +11635,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -11827,7 +11648,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "hash-db", "log", @@ -11847,9 +11668,8 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ - "log", "parity-scale-codec", "scale-info", "sp-api", @@ -11865,12 +11685,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11883,11 +11703,9 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", - "futures-timer", - "log", "parity-scale-codec", "sp-inherents", "sp-runtime", @@ -11898,7 +11716,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "sp-std", @@ -11910,7 +11728,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "sp-api", "sp-runtime", @@ -11919,10 +11737,9 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", - "log", "parity-scale-codec", "scale-info", "sp-core", @@ -11935,7 +11752,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "ahash 0.8.2", "hash-db", @@ -11958,7 +11775,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11975,7 +11792,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11986,7 +11803,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11999,7 +11816,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -12035,17 +11852,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", - "der 0.6.0", -] - -[[package]] -name = "spki" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0445c905640145c7ea8c1993555957f65e7c46d0535b91ba501bc9bfc85522f" -dependencies = [ - "base64ct", - "der 0.7.1", + "der", ] [[package]] @@ -12240,15 +12047,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" -dependencies = [ - "platforms", -] +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12267,7 +12071,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "hyper", "log", @@ -12279,7 +12083,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "jsonrpsee", @@ -12292,14 +12096,12 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "jsonrpsee", - "log", "parity-scale-codec", "sc-client-api", "sc-rpc-api", - "scale-info", "serde", "sp-core", "sp-runtime", @@ -12311,7 +12113,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "array-bytes", "async-trait", @@ -12337,7 +12139,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "futures", "substrate-test-utils-derive", @@ -12347,7 +12149,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12358,7 +12160,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "ansi_term", "build-helper", @@ -13213,7 +13015,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#ae1a608c91a5da441a0ee7c26a4d5d410713580d" +source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" dependencies = [ "async-trait", "clap 4.2.5", @@ -13224,7 +13026,6 @@ dependencies = [ "parity-scale-codec", "sc-cli", "sc-executor", - "sc-service", "serde", "serde_json", "sp-api", @@ -13984,7 +13785,7 @@ dependencies = [ "ccm", "curve25519-dalek 3.2.0", "der-parser 8.1.0", - "elliptic-curve 0.12.3", + "elliptic-curve", "hkdf", "hmac 0.10.1", "log", @@ -13996,11 +13797,11 @@ dependencies = [ "rcgen 0.9.3", "ring", "rustls 0.19.1", - "sec1 0.3.0", + "sec1", "serde", "sha-1 0.9.8", "sha2 0.9.8", - "signature 1.6.4", + "signature", "subtle", "thiserror", "tokio", diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index ae2bf0573c18..691e987331fa 100644 --- a/primitives/Cargo.toml +++ b/primitives/Cargo.toml @@ -20,7 +20,7 @@ sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "mas sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] } sp-consensus-slots = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] } sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true , features = ["serde"]} +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] } sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } diff --git a/runtime/parachains/Cargo.toml b/runtime/parachains/Cargo.toml index 240eb48d6882..dda0c2b38715 100644 --- a/runtime/parachains/Cargo.toml +++ b/runtime/parachains/Cargo.toml @@ -22,7 +22,7 @@ sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features=["serde"] } sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features=["serde"] } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true, features=["serde"] } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } From 3fd67a897c0f1a2c5e3fd030314ad5e8147c8aef Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 28 Jun 2023 14:17:15 +0200 Subject: [PATCH 43/56] Co #14318: `pallet-message-queue`: add queue pausing (#7433) * Increase recusive limit to 512 for macro expansions Signed-off-by: Alexandru Vasile * Increase limit to 1024 Signed-off-by: Alexandru Vasile * Adjust comment Signed-off-by: Alexandru Vasile * Increase more limits Signed-off-by: Alexandru Vasile * Add QueuePausedQuery * ... on westend Signed-off-by: Oliver Tale-Yazdi * update lockfile for {"substrate"} * update lockfile for {"substrate"} * Add QueuePausedQuery * ... on westend Signed-off-by: Oliver Tale-Yazdi * Fix test error Signed-off-by: Oliver Tale-Yazdi * CI buggy Signed-off-by: Oliver Tale-Yazdi --------- Signed-off-by: Alexandru Vasile Signed-off-by: Oliver Tale-Yazdi Co-authored-by: Alexandru Vasile Co-authored-by: parity-processbot <> --- Cargo.lock | 366 +++++++++---------- runtime/kusama/src/lib.rs | 5 +- runtime/parachains/src/mock.rs | 1 + runtime/parachains/src/ump_tests.rs | 12 +- runtime/polkadot/src/lib.rs | 3 +- runtime/rococo/src/lib.rs | 5 +- runtime/westend/src/lib.rs | 1 + xcm/xcm-simulator/example/src/relay_chain.rs | 1 + xcm/xcm-simulator/fuzzer/src/relay_chain.rs | 1 + 9 files changed, 205 insertions(+), 190 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2525570216ec..e40eec7ae4d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -517,7 +517,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "hash-db", "log", @@ -2449,7 +2449,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", ] @@ -2472,7 +2472,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "frame-support-procedural", @@ -2497,7 +2497,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "Inflector", "array-bytes", @@ -2543,7 +2543,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2554,7 +2554,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2571,7 +2571,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "frame-system", @@ -2600,7 +2600,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-recursion", "futures", @@ -2621,7 +2621,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "bitflags", "environmental", @@ -2655,7 +2655,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "Inflector", "cfg-expr", @@ -2673,7 +2673,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2685,7 +2685,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "proc-macro2", "quote", @@ -2695,7 +2695,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-executive", @@ -2722,7 +2722,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "frame-system", @@ -2734,7 +2734,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "cfg-if", "frame-support", @@ -2753,7 +2753,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -2768,7 +2768,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "sp-api", @@ -2777,7 +2777,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "parity-scale-codec", @@ -2959,7 +2959,7 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "chrono", "frame-election-provider-support", @@ -4868,7 +4868,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "futures", "log", @@ -4887,7 +4887,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "anyhow", "jsonrpsee", @@ -5469,7 +5469,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5484,7 +5484,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "frame-system", @@ -5500,7 +5500,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "frame-system", @@ -5514,7 +5514,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5538,7 +5538,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5558,7 +5558,7 @@ dependencies = [ [[package]] name = "pallet-bags-list-remote-tests" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-election-provider-support", "frame-remote-externalities", @@ -5577,7 +5577,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5592,7 +5592,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "frame-system", @@ -5611,7 +5611,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -5635,7 +5635,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5653,7 +5653,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5672,7 +5672,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5689,7 +5689,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5706,7 +5706,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5724,7 +5724,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5747,7 +5747,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5760,7 +5760,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5778,7 +5778,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "docify", "frame-benchmarking", @@ -5797,7 +5797,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5820,7 +5820,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5836,7 +5836,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5856,7 +5856,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5873,7 +5873,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5890,7 +5890,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5909,7 +5909,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5926,7 +5926,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5942,7 +5942,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5958,7 +5958,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "frame-system", @@ -5975,7 +5975,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5995,7 +5995,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6006,7 +6006,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "frame-system", @@ -6023,7 +6023,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6047,7 +6047,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6064,7 +6064,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6079,7 +6079,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6097,7 +6097,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6112,7 +6112,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6131,7 +6131,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6148,7 +6148,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "frame-system", @@ -6169,7 +6169,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6185,7 +6185,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6204,7 +6204,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6227,7 +6227,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6238,7 +6238,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "log", "sp-arithmetic", @@ -6247,7 +6247,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "sp-api", @@ -6256,7 +6256,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6273,7 +6273,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6288,7 +6288,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6306,7 +6306,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6325,7 +6325,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-support", "frame-system", @@ -6341,7 +6341,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6357,7 +6357,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6369,7 +6369,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6386,7 +6386,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6401,7 +6401,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6417,7 +6417,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -6432,7 +6432,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -9563,7 +9563,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "log", "sp-core", @@ -9574,7 +9574,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "futures", @@ -9602,7 +9602,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "futures", "futures-timer", @@ -9625,7 +9625,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9640,7 +9640,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9659,7 +9659,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9670,7 +9670,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "chrono", @@ -9709,7 +9709,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "fnv", "futures", @@ -9736,7 +9736,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "hash-db", "kvdb", @@ -9762,7 +9762,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "futures", @@ -9787,7 +9787,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "fork-tree", @@ -9822,7 +9822,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "futures", "jsonrpsee", @@ -9844,7 +9844,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "async-channel", @@ -9878,7 +9878,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "futures", "jsonrpsee", @@ -9897,7 +9897,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9910,7 +9910,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "ahash 0.8.2", "array-bytes", @@ -9950,7 +9950,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "finality-grandpa", "futures", @@ -9970,7 +9970,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "futures", @@ -9993,7 +9993,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -10015,7 +10015,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -10027,7 +10027,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "anyhow", "cfg-if", @@ -10044,7 +10044,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "ansi_term", "futures", @@ -10060,7 +10060,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -10074,7 +10074,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "async-channel", @@ -10115,7 +10115,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-channel", "cid", @@ -10135,7 +10135,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "bitflags", @@ -10152,7 +10152,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "ahash 0.8.2", "futures", @@ -10170,7 +10170,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "async-channel", @@ -10191,7 +10191,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "async-channel", @@ -10225,7 +10225,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "futures", @@ -10243,7 +10243,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "bytes", @@ -10272,7 +10272,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10281,7 +10281,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "futures", "jsonrpsee", @@ -10312,7 +10312,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10331,7 +10331,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "http", "jsonrpsee", @@ -10346,7 +10346,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "futures", @@ -10372,7 +10372,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "directories", @@ -10437,7 +10437,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "log", "parity-scale-codec", @@ -10448,7 +10448,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "clap 4.2.5", "fs4", @@ -10462,7 +10462,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10481,7 +10481,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "futures", "libc", @@ -10500,7 +10500,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "chrono", "futures", @@ -10519,7 +10519,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "ansi_term", "atty", @@ -10548,7 +10548,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10559,7 +10559,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "futures", @@ -10585,7 +10585,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "futures", @@ -10601,7 +10601,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-channel", "futures", @@ -11125,7 +11125,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "hash-db", "log", @@ -11145,7 +11145,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "Inflector", "blake2", @@ -11159,7 +11159,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -11172,7 +11172,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "integer-sqrt", "num-traits", @@ -11186,7 +11186,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -11199,7 +11199,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "sp-api", "sp-inherents", @@ -11210,7 +11210,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "futures", "log", @@ -11228,7 +11228,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "futures", @@ -11243,7 +11243,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "parity-scale-codec", @@ -11260,7 +11260,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "parity-scale-codec", @@ -11279,7 +11279,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11298,7 +11298,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "finality-grandpa", "log", @@ -11316,7 +11316,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -11328,7 +11328,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "bitflags", @@ -11372,7 +11372,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "blake2b_simd", "byteorder", @@ -11385,7 +11385,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "quote", "sp-core-hashing", @@ -11395,7 +11395,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11404,7 +11404,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "proc-macro2", "quote", @@ -11414,7 +11414,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "environmental", "parity-scale-codec", @@ -11425,7 +11425,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11439,7 +11439,7 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "bytes", "ed25519", @@ -11464,7 +11464,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "lazy_static", "sp-core", @@ -11475,7 +11475,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", @@ -11487,7 +11487,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11496,7 +11496,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11507,7 +11507,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11525,7 +11525,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -11539,7 +11539,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "sp-api", "sp-core", @@ -11549,7 +11549,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "backtrace", "lazy_static", @@ -11559,7 +11559,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "rustc-hash", "serde", @@ -11569,7 +11569,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "either", "hash256-std-hasher", @@ -11591,7 +11591,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11609,7 +11609,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "Inflector", "proc-macro-crate", @@ -11621,7 +11621,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -11635,7 +11635,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -11648,7 +11648,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "hash-db", "log", @@ -11668,7 +11668,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -11685,12 +11685,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11703,7 +11703,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "parity-scale-codec", @@ -11716,7 +11716,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "sp-std", @@ -11728,7 +11728,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "sp-api", "sp-runtime", @@ -11737,7 +11737,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "parity-scale-codec", @@ -11752,7 +11752,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "ahash 0.8.2", "hash-db", @@ -11775,7 +11775,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11792,7 +11792,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11803,7 +11803,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11816,7 +11816,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -12047,12 +12047,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12071,7 +12071,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "hyper", "log", @@ -12083,7 +12083,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "jsonrpsee", @@ -12096,7 +12096,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12113,7 +12113,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "array-bytes", "async-trait", @@ -12139,7 +12139,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "futures", "substrate-test-utils-derive", @@ -12149,7 +12149,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12160,7 +12160,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "ansi_term", "build-helper", @@ -13015,7 +13015,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#1724153f677d045cbbbad2db96589714d25d3ca1" +source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" dependencies = [ "async-trait", "clap 4.2.5", diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index c6e3bac29a2f..797d50eb75d5 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -17,8 +17,8 @@ //! The Kusama runtime. This can be compiled with `#[no_std]`, ready for Wasm. #![cfg_attr(not(feature = "std"), no_std)] -// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit = "256"] +// `construct_runtime!` does a lot of recursion and requires us to increase the limit. +#![recursion_limit = "512"] use pallet_nis::WithMaximumOf; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; @@ -1145,6 +1145,7 @@ impl pallet_message_queue::Config for Runtime { type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor; type QueueChangeHandler = ParaInclusion; + type QueuePausedQuery = (); type WeightInfo = weights::pallet_message_queue::WeightInfo; } diff --git a/runtime/parachains/src/mock.rs b/runtime/parachains/src/mock.rs index 2c975f682948..b06a75480662 100644 --- a/runtime/parachains/src/mock.rs +++ b/runtime/parachains/src/mock.rs @@ -329,6 +329,7 @@ impl pallet_message_queue::Config for Test { type WeightInfo = TestMessageQueueWeight; type MessageProcessor = TestProcessMessage; type QueueChangeHandler = ParaInclusion; + type QueuePausedQuery = (); type HeapSize = ConstU32<65536>; type MaxStale = ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; diff --git a/runtime/parachains/src/ump_tests.rs b/runtime/parachains/src/ump_tests.rs index 100d3f248a83..424aa2a4d032 100644 --- a/runtime/parachains/src/ump_tests.rs +++ b/runtime/parachains/src/ump_tests.rs @@ -573,13 +573,21 @@ fn overweight_queue_works() { .into(), ); - // ... and if we try to service a message with index that doesn't exist it will error - // out. + // But servicing again will not work. assert_noop!( ::execute_overweight( Weight::from_parts(501, 501), (Ump(UmpQueueId::Para(para_a)), 0, 2) ), + ExecuteOverweightError::AlreadyProcessed, + ); + + // Using an invalid index does not work. + assert_noop!( + ::execute_overweight( + Weight::from_parts(501, 501), + (Ump(UmpQueueId::Para(para_a)), 0, 3) + ), ExecuteOverweightError::NotFound, ); }); diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 0cdc6785e746..073a8bbb2d93 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -18,7 +18,7 @@ #![cfg_attr(not(feature = "std"), no_std)] // `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit = "256"] +#![recursion_limit = "512"] use pallet_transaction_payment::CurrencyAdapter; use runtime_common::{ @@ -1161,6 +1161,7 @@ impl pallet_message_queue::Config for Runtime { type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor; type QueueChangeHandler = ParaInclusion; + type QueuePausedQuery = (); type WeightInfo = weights::pallet_message_queue::WeightInfo; } diff --git a/runtime/rococo/src/lib.rs b/runtime/rococo/src/lib.rs index 833a1bdf4dec..d62ee551ca54 100644 --- a/runtime/rococo/src/lib.rs +++ b/runtime/rococo/src/lib.rs @@ -17,8 +17,8 @@ //! The Rococo runtime for v1 parachains. #![cfg_attr(not(feature = "std"), no_std)] -// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit = "256"] +// `construct_runtime!` does a lot of recursion and requires us to increase the limit. +#![recursion_limit = "512"] use pallet_nis::WithMaximumOf; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; @@ -1076,6 +1076,7 @@ impl pallet_message_queue::Config for Runtime { type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor; type QueueChangeHandler = ParaInclusion; + type QueuePausedQuery = (); type WeightInfo = weights::pallet_message_queue::WeightInfo; } diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index 411f21f13841..1cc32c3b7d7a 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -974,6 +974,7 @@ impl pallet_message_queue::Config for Runtime { type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor; type QueueChangeHandler = ParaInclusion; + type QueuePausedQuery = (); type WeightInfo = weights::pallet_message_queue::WeightInfo; } diff --git a/xcm/xcm-simulator/example/src/relay_chain.rs b/xcm/xcm-simulator/example/src/relay_chain.rs index 6f64249b40fc..b82e2c9cc306 100644 --- a/xcm/xcm-simulator/example/src/relay_chain.rs +++ b/xcm/xcm-simulator/example/src/relay_chain.rs @@ -279,6 +279,7 @@ impl pallet_message_queue::Config for Runtime { type ServiceWeight = MessageQueueServiceWeight; type MessageProcessor = MessageProcessor; type QueueChangeHandler = (); + type QueuePausedQuery = (); type WeightInfo = (); } diff --git a/xcm/xcm-simulator/fuzzer/src/relay_chain.rs b/xcm/xcm-simulator/fuzzer/src/relay_chain.rs index 75b42e300316..ef1339097f5a 100644 --- a/xcm/xcm-simulator/fuzzer/src/relay_chain.rs +++ b/xcm/xcm-simulator/fuzzer/src/relay_chain.rs @@ -247,6 +247,7 @@ impl pallet_message_queue::Config for Runtime { type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor; type QueueChangeHandler = (); + type QueuePausedQuery = (); type WeightInfo = (); } From 56adf08502e5d1f345e0b21e7c0d4e449d74aff7 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 28 Jun 2023 16:27:05 +0200 Subject: [PATCH 44/56] Companion for substrate#14403 (#7435) * Bump trie-db * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <> --- Cargo.lock | 375 +++++++++++++++++++++++++++-------------------------- 1 file changed, 188 insertions(+), 187 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e40eec7ae4d9..5513c79c3bb3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -517,7 +517,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "hash-db", "log", @@ -2449,7 +2449,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", ] @@ -2472,7 +2472,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "frame-support-procedural", @@ -2497,7 +2497,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "Inflector", "array-bytes", @@ -2543,7 +2543,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2554,7 +2554,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2571,7 +2571,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "frame-system", @@ -2587,9 +2587,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "15.1.0" +version = "15.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878babb0b136e731cc77ec2fd883ff02745ff21e6fb662729953d44923df009c" +checksum = "f2a893ede8dde2293e94dacf9c8f5db5d0506cd909257a8f0ac2b7d610baf50c" dependencies = [ "cfg-if", "parity-scale-codec", @@ -2600,7 +2600,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-recursion", "futures", @@ -2621,7 +2621,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "bitflags", "environmental", @@ -2655,7 +2655,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "Inflector", "cfg-expr", @@ -2673,7 +2673,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2685,7 +2685,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "proc-macro2", "quote", @@ -2695,7 +2695,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-executive", @@ -2722,7 +2722,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "frame-system", @@ -2734,7 +2734,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "cfg-if", "frame-support", @@ -2753,7 +2753,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -2768,7 +2768,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "sp-api", @@ -2777,7 +2777,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "parity-scale-codec", @@ -2959,7 +2959,7 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "chrono", "frame-election-provider-support", @@ -4868,7 +4868,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "futures", "log", @@ -4887,7 +4887,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "anyhow", "jsonrpsee", @@ -5469,7 +5469,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5484,7 +5484,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "frame-system", @@ -5500,7 +5500,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "frame-system", @@ -5514,7 +5514,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5538,7 +5538,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5558,7 +5558,7 @@ dependencies = [ [[package]] name = "pallet-bags-list-remote-tests" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-election-provider-support", "frame-remote-externalities", @@ -5577,7 +5577,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5592,7 +5592,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "frame-system", @@ -5611,7 +5611,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -5635,7 +5635,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5653,7 +5653,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5672,7 +5672,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5689,7 +5689,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5706,7 +5706,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5724,7 +5724,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5747,7 +5747,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5760,7 +5760,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5778,7 +5778,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "docify", "frame-benchmarking", @@ -5797,7 +5797,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5820,7 +5820,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5836,7 +5836,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5856,7 +5856,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5873,7 +5873,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5890,7 +5890,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5909,7 +5909,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5926,7 +5926,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5942,7 +5942,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5958,7 +5958,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "frame-system", @@ -5975,7 +5975,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5995,7 +5995,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6006,7 +6006,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "frame-system", @@ -6023,7 +6023,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6047,7 +6047,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6064,7 +6064,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6079,7 +6079,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6097,7 +6097,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6112,7 +6112,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6131,7 +6131,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6148,7 +6148,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "frame-system", @@ -6169,7 +6169,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6185,7 +6185,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6204,7 +6204,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6227,7 +6227,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6238,7 +6238,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "log", "sp-arithmetic", @@ -6247,7 +6247,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "sp-api", @@ -6256,7 +6256,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6273,7 +6273,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6288,7 +6288,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6306,7 +6306,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6325,7 +6325,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-support", "frame-system", @@ -6341,7 +6341,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6357,7 +6357,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6369,7 +6369,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6386,7 +6386,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6401,7 +6401,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6417,7 +6417,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6432,7 +6432,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-benchmarking", "frame-support", @@ -9563,7 +9563,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "log", "sp-core", @@ -9574,7 +9574,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "futures", @@ -9602,7 +9602,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "futures", "futures-timer", @@ -9625,7 +9625,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9640,7 +9640,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9659,7 +9659,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9670,7 +9670,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "chrono", @@ -9709,7 +9709,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "fnv", "futures", @@ -9736,7 +9736,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "hash-db", "kvdb", @@ -9762,7 +9762,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "futures", @@ -9787,7 +9787,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "fork-tree", @@ -9822,7 +9822,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "futures", "jsonrpsee", @@ -9844,7 +9844,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "async-channel", @@ -9878,7 +9878,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "futures", "jsonrpsee", @@ -9897,7 +9897,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9910,7 +9910,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "ahash 0.8.2", "array-bytes", @@ -9950,7 +9950,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "finality-grandpa", "futures", @@ -9970,7 +9970,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "futures", @@ -9993,7 +9993,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -10015,7 +10015,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -10027,7 +10027,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "anyhow", "cfg-if", @@ -10044,7 +10044,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "ansi_term", "futures", @@ -10060,7 +10060,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -10074,7 +10074,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "async-channel", @@ -10115,7 +10115,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-channel", "cid", @@ -10135,7 +10135,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "bitflags", @@ -10152,7 +10152,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "ahash 0.8.2", "futures", @@ -10170,7 +10170,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "async-channel", @@ -10191,7 +10191,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "async-channel", @@ -10225,7 +10225,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "futures", @@ -10243,7 +10243,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "bytes", @@ -10272,7 +10272,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10281,7 +10281,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "futures", "jsonrpsee", @@ -10312,7 +10312,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10331,7 +10331,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "http", "jsonrpsee", @@ -10346,7 +10346,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "futures", @@ -10372,7 +10372,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "directories", @@ -10437,7 +10437,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "log", "parity-scale-codec", @@ -10448,7 +10448,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "clap 4.2.5", "fs4", @@ -10462,7 +10462,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10481,7 +10481,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "futures", "libc", @@ -10500,7 +10500,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "chrono", "futures", @@ -10519,7 +10519,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "ansi_term", "atty", @@ -10548,7 +10548,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10559,7 +10559,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "futures", @@ -10585,7 +10585,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "futures", @@ -10601,7 +10601,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-channel", "futures", @@ -11125,7 +11125,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "hash-db", "log", @@ -11145,7 +11145,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "Inflector", "blake2", @@ -11159,7 +11159,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "scale-info", @@ -11172,7 +11172,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "integer-sqrt", "num-traits", @@ -11186,7 +11186,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "scale-info", @@ -11199,7 +11199,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "sp-api", "sp-inherents", @@ -11210,7 +11210,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "futures", "log", @@ -11228,7 +11228,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "futures", @@ -11243,7 +11243,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "parity-scale-codec", @@ -11260,7 +11260,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "parity-scale-codec", @@ -11279,7 +11279,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11298,7 +11298,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "finality-grandpa", "log", @@ -11316,7 +11316,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "scale-info", @@ -11328,7 +11328,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "bitflags", @@ -11372,7 +11372,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "blake2b_simd", "byteorder", @@ -11385,7 +11385,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "quote", "sp-core-hashing", @@ -11395,7 +11395,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11404,7 +11404,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "proc-macro2", "quote", @@ -11414,7 +11414,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "environmental", "parity-scale-codec", @@ -11425,7 +11425,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11439,7 +11439,7 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "bytes", "ed25519", @@ -11464,7 +11464,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "lazy_static", "sp-core", @@ -11475,7 +11475,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", @@ -11487,7 +11487,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11496,7 +11496,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11507,7 +11507,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11525,7 +11525,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "scale-info", @@ -11539,7 +11539,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "sp-api", "sp-core", @@ -11549,7 +11549,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "backtrace", "lazy_static", @@ -11559,7 +11559,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "rustc-hash", "serde", @@ -11569,7 +11569,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "either", "hash256-std-hasher", @@ -11591,7 +11591,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11609,7 +11609,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "Inflector", "proc-macro-crate", @@ -11621,7 +11621,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "scale-info", @@ -11635,7 +11635,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "scale-info", @@ -11648,7 +11648,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "hash-db", "log", @@ -11663,12 +11663,13 @@ dependencies = [ "sp-trie", "thiserror", "tracing", + "trie-db", ] [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "scale-info", @@ -11685,12 +11686,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11703,7 +11704,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "parity-scale-codec", @@ -11716,7 +11717,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "sp-std", @@ -11728,7 +11729,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "sp-api", "sp-runtime", @@ -11737,7 +11738,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "parity-scale-codec", @@ -11752,7 +11753,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "ahash 0.8.2", "hash-db", @@ -11775,7 +11776,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11792,7 +11793,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11803,7 +11804,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11816,7 +11817,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "parity-scale-codec", "scale-info", @@ -12047,12 +12048,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12071,7 +12072,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "hyper", "log", @@ -12083,7 +12084,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "jsonrpsee", @@ -12096,7 +12097,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12113,7 +12114,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "array-bytes", "async-trait", @@ -12139,7 +12140,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "futures", "substrate-test-utils-derive", @@ -12149,7 +12150,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12160,7 +12161,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "ansi_term", "build-helper", @@ -12940,9 +12941,9 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d75c77ea43f2ad8ea9d9c58de49dfc9c3995bdef32b503df7883ff054e7f1" +checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" dependencies = [ "hash-db", "hashbrown 0.13.2", @@ -13015,7 +13016,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#a84f0afd643a0b539ff97b98d61542446ae496e6" +source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" dependencies = [ "async-trait", "clap 4.2.5", From 52595c8c7e5246172b8ee650aea496aa091af2f2 Mon Sep 17 00:00:00 2001 From: Gabriel Facco de Arruda Date: Wed, 28 Jun 2023 19:42:25 +0200 Subject: [PATCH 45/56] Introduce Tinkernet multisig XCM configs to Kusama/Rococo through xcm-builder (#7165) * Introduce Tinkernet multisig XCM configs * fmt fix * overflow handling, comments, clippy fixes * Adding Tinkernet XCM configs to xcm-builder * switching spaces to tab * remove derivation.rs in favor of location_conversion.rs * replace hardcoded literals with constants * autoformat * Fix for the unit test * replacing expect with an error and renaming constants * Resolving clippy warning --------- Co-authored-by: parity-processbot <> --- Cargo.lock | 1 + runtime/kusama/src/xcm_config.rs | 9 ++- runtime/rococo/src/xcm_config.rs | 14 +++-- xcm/xcm-builder/Cargo.toml | 2 + xcm/xcm-builder/src/lib.rs | 4 +- xcm/xcm-builder/src/location_conversion.rs | 67 ++++++++++++++++++++++ xcm/xcm-builder/src/origin_conversion.rs | 35 +++++++++++ 7 files changed, 124 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5513c79c3bb3..fab399da0b17 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14470,6 +14470,7 @@ dependencies = [ "primitive-types", "scale-info", "sp-arithmetic", + "sp-core", "sp-io", "sp-runtime", "sp-std", diff --git a/runtime/kusama/src/xcm_config.rs b/runtime/kusama/src/xcm_config.rs index 0aa50a364a0c..8e2af5752b42 100644 --- a/runtime/kusama/src/xcm_config.rs +++ b/runtime/kusama/src/xcm_config.rs @@ -41,8 +41,9 @@ use xcm_builder::{ ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, IsChildSystemParachain, IsConcrete, MintLocation, OriginToPluralityVoice, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, - WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, + SovereignSignedViaLocation, TakeWeightCredit, TinkernetMultisigAsAccountId, + TinkernetMultisigAsNative, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, + WithComputedOrigin, WithUniqueTopic, }; use xcm_executor::traits::WithOriginFilter; @@ -70,6 +71,8 @@ pub type SovereignAccountOf = ( ChildParachainConvertsVia, // We can directly alias an `AccountId32` into a local account. AccountId32Aliases, + // We can derive a local account from a Tinkernet XCMultisig MultiLocation. + TinkernetMultisigAsAccountId, ); /// Our asset transactor. This is what allows us to interest with the runtime facilities from the point of @@ -99,6 +102,8 @@ type LocalOriginConverter = ( SignedAccountId32AsNative, // A system child parachain, expressed as a Superuser, converts to the `Root` origin. ChildSystemParachainAsSuperuser, + // Converts a Tinkernet XCMultisig MultiLocation into a `Signed` origin. + TinkernetMultisigAsNative, ); parameter_types! { diff --git a/runtime/rococo/src/xcm_config.rs b/runtime/rococo/src/xcm_config.rs index bc78ab7ab878..3d01b4f22833 100644 --- a/runtime/rococo/src/xcm_config.rs +++ b/runtime/rococo/src/xcm_config.rs @@ -40,8 +40,8 @@ use xcm_builder::{ ChildParachainAsNative, ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, IsChildSystemParachain, IsConcrete, MintLocation, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, - TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, - WithUniqueTopic, + TakeWeightCredit, TinkernetMultisigAsAccountId, TinkernetMultisigAsNative, + TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, }; use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; @@ -53,8 +53,12 @@ parameter_types! { pub LocalCheckAccount: (AccountId, MintLocation) = (CheckAccount::get(), MintLocation::Local); } -pub type LocationConverter = - (ChildParachainConvertsVia, AccountId32Aliases); +pub type LocationConverter = ( + ChildParachainConvertsVia, + AccountId32Aliases, + // We can derive a local account from a Tinkernet XCMultisig MultiLocation. + TinkernetMultisigAsAccountId, +); /// Our asset transactor. This is what allows us to interest with the runtime facilities from the point of /// view of XCM-only concepts like `MultiLocation` and `MultiAsset`. @@ -83,6 +87,8 @@ type LocalOriginConverter = ( SignedAccountId32AsNative, // A system child parachain, expressed as a Superuser, converts to the `Root` origin. ChildSystemParachainAsSuperuser, + // Converts a Tinkernet XCMultisig MultiLocation into a `Signed` origin. + TinkernetMultisigAsNative, ); parameter_types! { diff --git a/xcm/xcm-builder/Cargo.toml b/xcm/xcm-builder/Cargo.toml index 7dc7a7fc0aa2..82c77f59692b 100644 --- a/xcm/xcm-builder/Cargo.toml +++ b/xcm/xcm-builder/Cargo.toml @@ -15,6 +15,7 @@ sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", d sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-weights = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-system = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } @@ -49,6 +50,7 @@ std = [ "sp-arithmetic/std", "sp-io/std", "sp-runtime/std", + "sp-core/std", "sp-weights/std", "frame-support/std", "frame-system/std", diff --git a/xcm/xcm-builder/src/lib.rs b/xcm/xcm-builder/src/lib.rs index 984ace84dc69..08d0c32c1836 100644 --- a/xcm/xcm-builder/src/lib.rs +++ b/xcm/xcm-builder/src/lib.rs @@ -34,7 +34,7 @@ pub use location_conversion::{ ChildParachainConvertsVia, DescribeAccountId32Terminal, DescribeAccountIdTerminal, DescribeAccountKey20Terminal, DescribeAllTerminal, DescribeFamily, DescribeLocation, DescribePalletTerminal, DescribeTerminus, GlobalConsensusParachainConvertsFor, - HashedDescription, ParentIsPreset, SiblingParachainConvertsVia, + HashedDescription, ParentIsPreset, SiblingParachainConvertsVia, TinkernetMultisigAsAccountId, }; mod origin_conversion; @@ -42,7 +42,7 @@ pub use origin_conversion::{ BackingToPlurality, ChildParachainAsNative, ChildSystemParachainAsSuperuser, EnsureXcmOrigin, OriginToPluralityVoice, ParentAsSuperuser, RelayChainAsNative, SiblingParachainAsNative, SiblingSystemParachainAsSuperuser, SignedAccountId32AsNative, SignedAccountKey20AsNative, - SignedToAccountId32, SovereignSignedViaLocation, + SignedToAccountId32, SovereignSignedViaLocation, TinkernetMultisigAsNative, }; mod asset_conversion; diff --git a/xcm/xcm-builder/src/location_conversion.rs b/xcm/xcm-builder/src/location_conversion.rs index dc327c08d067..a62d44e1e6af 100644 --- a/xcm/xcm-builder/src/location_conversion.rs +++ b/xcm/xcm-builder/src/location_conversion.rs @@ -17,6 +17,7 @@ use crate::universal_exports::ensure_is_remote; use frame_support::traits::Get; use parity_scale_codec::{Compact, Decode, Encode}; +use sp_core::H256; use sp_io::hashing::blake2_256; use sp_runtime::traits::{AccountIdConversion, Convert, TrailingZeroInput}; use sp_std::{marker::PhantomData, prelude::*}; @@ -345,6 +346,52 @@ impl>, AccountId: From<[u8; 20]> + Into<[u8; 20]> } } +/// Tinkernet ParaId used when matching Multisig MultiLocations. +pub const KUSAMA_TINKERNET_PARA_ID: u32 = 2125; + +/// Tinkernet Multisig pallet instance used when matching Multisig MultiLocations. +pub const KUSAMA_TINKERNET_MULTISIG_PALLET: u8 = 71; + +/// Constant derivation function for Tinkernet Multisigs. +/// Uses the Tinkernet genesis hash as a salt. +pub fn derive_tinkernet_multisig(id: u128) -> Result { + AccountId::decode(&mut TrailingZeroInput::new( + &( + // The constant salt used to derive Tinkernet Multisigs, this is Tinkernet's genesis hash. + H256([ + 212, 46, 150, 6, 169, 149, 223, 228, 51, 220, 121, 85, 220, 42, 112, 244, 149, 243, + 80, 243, 115, 218, 162, 0, 9, 138, 232, 68, 55, 129, 106, 210, + ]), + // The actual multisig integer id. + u32::try_from(id).map_err(|_| ())?, + ) + .using_encoded(blake2_256), + )) + .map_err(|_| ()) +} + +/// Convert a Tinkernet Multisig `MultiLocation` value into a local `AccountId`. +pub struct TinkernetMultisigAsAccountId(PhantomData); +impl ConvertLocation + for TinkernetMultisigAsAccountId +{ + fn convert_location(location: &MultiLocation) -> Option { + match location { + MultiLocation { + parents: _, + interior: + X3( + Parachain(KUSAMA_TINKERNET_PARA_ID), + PalletInstance(KUSAMA_TINKERNET_MULTISIG_PALLET), + // Index from which the multisig account is derived. + GeneralIndex(id), + ), + } => derive_tinkernet_multisig(*id).ok(), + _ => None, + } + } +} + /// Converts a location which is a top-level parachain (i.e. a parachain held on a /// Relay-chain which provides its own consensus) into a 32-byte `AccountId`. /// @@ -789,4 +836,24 @@ mod tests { }; assert!(ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).is_none()); } + + #[test] + fn remote_tinkernet_multisig_convert_to_account() { + let mul = MultiLocation { + parents: 0, + interior: X3( + Parachain(KUSAMA_TINKERNET_PARA_ID), + PalletInstance(KUSAMA_TINKERNET_MULTISIG_PALLET), + GeneralIndex(0), + ), + }; + + assert_eq!( + [ + 97, 160, 244, 60, 133, 145, 170, 26, 202, 108, 203, 156, 114, 116, 175, 30, 156, + 195, 43, 101, 243, 51, 193, 162, 152, 188, 30, 165, 244, 81, 70, 90 + ], + TinkernetMultisigAsAccountId::<[u8; 32]>::convert_location(&mul).unwrap() + ); + } } diff --git a/xcm/xcm-builder/src/origin_conversion.rs b/xcm/xcm-builder/src/origin_conversion.rs index 0810b1ce2f8b..ecd7edd4f568 100644 --- a/xcm/xcm-builder/src/origin_conversion.rs +++ b/xcm/xcm-builder/src/origin_conversion.rs @@ -16,8 +16,12 @@ //! Various implementations for `ConvertOrigin`. +use crate::location_conversion::{ + derive_tinkernet_multisig, KUSAMA_TINKERNET_MULTISIG_PALLET, KUSAMA_TINKERNET_PARA_ID, +}; use frame_support::traits::{EnsureOrigin, Get, GetBacking, OriginTrait}; use frame_system::RawOrigin as SystemRawOrigin; +use parity_scale_codec::Decode; use polkadot_parachain::primitives::IsSystem; use sp_runtime::traits::TryConvert; use sp_std::marker::PhantomData; @@ -241,6 +245,37 @@ where } } +/// Convert a Tinkernet Multisig `MultiLocation` value into a `Signed` origin. +pub struct TinkernetMultisigAsNative(PhantomData); +impl ConvertOrigin + for TinkernetMultisigAsNative +where + RuntimeOrigin::AccountId: Decode, +{ + fn convert_origin( + origin: impl Into, + kind: OriginKind, + ) -> Result { + let origin = origin.into(); + match (kind, origin) { + ( + OriginKind::Native, + MultiLocation { + parents: _, + interior: + X3( + Junction::Parachain(KUSAMA_TINKERNET_PARA_ID), + Junction::PalletInstance(KUSAMA_TINKERNET_MULTISIG_PALLET), + // Index from which the multisig account is derived. + Junction::GeneralIndex(id), + ), + }, + ) => Ok(RuntimeOrigin::signed(derive_tinkernet_multisig(id).map_err(|_| origin)?)), + (_, origin) => Err(origin), + } + } +} + /// `EnsureOrigin` barrier to convert from dispatch origin to XCM origin, if one exists. pub struct EnsureXcmOrigin(PhantomData<(RuntimeOrigin, Conversion)>); impl> From 9ddcfc22b27c1afa3559298c546cfa5be3e3a43a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Thu, 29 Jun 2023 18:33:32 +0200 Subject: [PATCH 46/56] Companion for Substrate#14474 (#7434) * Companion for Substrate#14474 This removes the requirement to pass the native dispatch. * Adapt * Better * Remove patch * ... * Fix * Update Substrate --- Cargo.lock | 372 ++++++++++++++++++------------------ Cargo.toml | 3 - cli/src/command.rs | 35 +--- node/test/client/src/lib.rs | 2 - 4 files changed, 197 insertions(+), 215 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fab399da0b17..21c91d50dac5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -517,7 +517,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "hash-db", "log", @@ -2449,7 +2449,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", ] @@ -2472,7 +2472,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "frame-support-procedural", @@ -2497,7 +2497,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "Inflector", "array-bytes", @@ -2531,11 +2531,13 @@ dependencies = [ "sp-database", "sp-externalities", "sp-inherents", + "sp-io", "sp-keystore", "sp-runtime", "sp-state-machine", "sp-storage", "sp-trie", + "sp-wasm-interface", "thiserror", "thousands", ] @@ -2543,7 +2545,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2554,7 +2556,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2571,7 +2573,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "frame-system", @@ -2600,7 +2602,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-recursion", "futures", @@ -2621,7 +2623,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "bitflags", "environmental", @@ -2655,7 +2657,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "Inflector", "cfg-expr", @@ -2673,7 +2675,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2685,7 +2687,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "proc-macro2", "quote", @@ -2695,7 +2697,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-executive", @@ -2722,7 +2724,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "frame-system", @@ -2734,7 +2736,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "cfg-if", "frame-support", @@ -2753,7 +2755,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -2768,7 +2770,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "sp-api", @@ -2777,7 +2779,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "parity-scale-codec", @@ -2815,9 +2817,9 @@ dependencies = [ [[package]] name = "fs_extra" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "funty" @@ -2959,7 +2961,7 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "chrono", "frame-election-provider-support", @@ -4868,7 +4870,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "futures", "log", @@ -4887,7 +4889,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "anyhow", "jsonrpsee", @@ -5469,7 +5471,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5484,7 +5486,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "frame-system", @@ -5500,7 +5502,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "frame-system", @@ -5514,7 +5516,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5538,7 +5540,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5558,7 +5560,7 @@ dependencies = [ [[package]] name = "pallet-bags-list-remote-tests" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-election-provider-support", "frame-remote-externalities", @@ -5577,7 +5579,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5592,7 +5594,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "frame-system", @@ -5611,7 +5613,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -5635,7 +5637,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5653,7 +5655,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5672,7 +5674,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5689,7 +5691,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5706,7 +5708,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5724,7 +5726,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5747,7 +5749,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5760,7 +5762,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5778,7 +5780,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "docify", "frame-benchmarking", @@ -5797,7 +5799,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5820,7 +5822,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5836,7 +5838,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5856,7 +5858,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5873,7 +5875,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5890,7 +5892,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5909,7 +5911,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5926,7 +5928,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5942,7 +5944,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -5958,7 +5960,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "frame-system", @@ -5975,7 +5977,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5995,7 +5997,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6006,7 +6008,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "frame-system", @@ -6023,7 +6025,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6047,7 +6049,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6064,7 +6066,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6079,7 +6081,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6097,7 +6099,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6112,7 +6114,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6131,7 +6133,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6148,7 +6150,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "frame-system", @@ -6169,7 +6171,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6185,7 +6187,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6204,7 +6206,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6227,7 +6229,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6238,7 +6240,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "log", "sp-arithmetic", @@ -6247,7 +6249,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "sp-api", @@ -6256,7 +6258,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6273,7 +6275,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6288,7 +6290,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6306,7 +6308,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6325,7 +6327,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-support", "frame-system", @@ -6341,7 +6343,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6357,7 +6359,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6369,7 +6371,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6386,7 +6388,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6401,7 +6403,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6417,7 +6419,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -6432,7 +6434,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-benchmarking", "frame-support", @@ -9563,7 +9565,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "log", "sp-core", @@ -9574,7 +9576,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "futures", @@ -9602,7 +9604,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "futures", "futures-timer", @@ -9625,7 +9627,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9640,7 +9642,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9659,7 +9661,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9670,7 +9672,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "chrono", @@ -9709,7 +9711,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "fnv", "futures", @@ -9736,7 +9738,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "hash-db", "kvdb", @@ -9762,7 +9764,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "futures", @@ -9787,7 +9789,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "fork-tree", @@ -9822,7 +9824,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "futures", "jsonrpsee", @@ -9844,7 +9846,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "async-channel", @@ -9878,7 +9880,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "futures", "jsonrpsee", @@ -9897,7 +9899,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9910,7 +9912,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "ahash 0.8.2", "array-bytes", @@ -9950,7 +9952,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "finality-grandpa", "futures", @@ -9970,7 +9972,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "futures", @@ -9993,7 +9995,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -10015,7 +10017,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -10027,7 +10029,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "anyhow", "cfg-if", @@ -10044,7 +10046,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "ansi_term", "futures", @@ -10060,7 +10062,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -10074,7 +10076,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "async-channel", @@ -10115,7 +10117,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-channel", "cid", @@ -10135,7 +10137,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "bitflags", @@ -10152,7 +10154,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "ahash 0.8.2", "futures", @@ -10170,7 +10172,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "async-channel", @@ -10191,7 +10193,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "async-channel", @@ -10225,7 +10227,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "futures", @@ -10243,7 +10245,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "bytes", @@ -10272,7 +10274,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10281,7 +10283,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "futures", "jsonrpsee", @@ -10312,7 +10314,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10331,7 +10333,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "http", "jsonrpsee", @@ -10346,7 +10348,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "futures", @@ -10372,7 +10374,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "directories", @@ -10437,7 +10439,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "log", "parity-scale-codec", @@ -10448,7 +10450,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "clap 4.2.5", "fs4", @@ -10462,7 +10464,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10481,7 +10483,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "futures", "libc", @@ -10500,7 +10502,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "chrono", "futures", @@ -10519,7 +10521,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "ansi_term", "atty", @@ -10548,7 +10550,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10559,7 +10561,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "futures", @@ -10585,7 +10587,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "futures", @@ -10601,7 +10603,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-channel", "futures", @@ -11125,7 +11127,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "hash-db", "log", @@ -11145,7 +11147,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "Inflector", "blake2", @@ -11159,7 +11161,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "scale-info", @@ -11172,7 +11174,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "integer-sqrt", "num-traits", @@ -11186,7 +11188,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "scale-info", @@ -11199,7 +11201,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "sp-api", "sp-inherents", @@ -11210,7 +11212,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "futures", "log", @@ -11228,7 +11230,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "futures", @@ -11243,7 +11245,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "parity-scale-codec", @@ -11260,7 +11262,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "parity-scale-codec", @@ -11279,7 +11281,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11298,7 +11300,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "finality-grandpa", "log", @@ -11316,7 +11318,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "scale-info", @@ -11328,7 +11330,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "bitflags", @@ -11372,7 +11374,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "blake2b_simd", "byteorder", @@ -11385,7 +11387,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "quote", "sp-core-hashing", @@ -11395,7 +11397,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11404,7 +11406,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "proc-macro2", "quote", @@ -11414,7 +11416,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "environmental", "parity-scale-codec", @@ -11425,7 +11427,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11439,7 +11441,7 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "bytes", "ed25519", @@ -11464,7 +11466,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "lazy_static", "sp-core", @@ -11475,7 +11477,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", @@ -11487,7 +11489,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11496,7 +11498,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11507,7 +11509,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11525,7 +11527,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "scale-info", @@ -11539,7 +11541,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "sp-api", "sp-core", @@ -11549,7 +11551,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "backtrace", "lazy_static", @@ -11559,7 +11561,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "rustc-hash", "serde", @@ -11569,7 +11571,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "either", "hash256-std-hasher", @@ -11591,7 +11593,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11609,7 +11611,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "Inflector", "proc-macro-crate", @@ -11621,7 +11623,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "scale-info", @@ -11635,7 +11637,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "scale-info", @@ -11648,7 +11650,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "hash-db", "log", @@ -11669,7 +11671,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "scale-info", @@ -11686,12 +11688,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11704,7 +11706,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "parity-scale-codec", @@ -11717,7 +11719,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "sp-std", @@ -11729,7 +11731,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "sp-api", "sp-runtime", @@ -11738,7 +11740,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "parity-scale-codec", @@ -11753,7 +11755,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "ahash 0.8.2", "hash-db", @@ -11776,7 +11778,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11793,7 +11795,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11804,7 +11806,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11817,7 +11819,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "parity-scale-codec", "scale-info", @@ -12048,12 +12050,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12072,7 +12074,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "hyper", "log", @@ -12084,7 +12086,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "jsonrpsee", @@ -12097,7 +12099,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12114,7 +12116,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "array-bytes", "async-trait", @@ -12140,7 +12142,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "futures", "substrate-test-utils-derive", @@ -12150,7 +12152,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12161,7 +12163,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "ansi_term", "build-helper", @@ -13016,7 +13018,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#e354ae949964001a39a4d91761d0973775f5d7c4" +source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" dependencies = [ "async-trait", "clap 4.2.5", diff --git a/Cargo.toml b/Cargo.toml index 3b81c97351d9..c4cd139b68fa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -178,7 +178,6 @@ snow = { opt-level = 3 } substrate-bip39 = {opt-level = 3} twox-hash = { opt-level = 3 } uint = { opt-level = 3 } -wasmi = { opt-level = 3 } x25519-dalek = { opt-level = 3 } yamux = { opt-level = 3 } zeroize = { opt-level = 3 } @@ -212,8 +211,6 @@ runtime-metrics = [ "polkadot-cli/runtime-metrics" ] pyroscope = ["polkadot-cli/pyroscope"] jemalloc-allocator = ["polkadot-node-core-pvf-prepare-worker/jemalloc-allocator", "polkadot-overseer/jemalloc-allocator"] - - # Configuration for building a .deb package - for use with `cargo-deb` [package.metadata.deb] name = "polkadot" diff --git a/cli/src/command.rs b/cli/src/command.rs index 378e8e7650c2..db5ebe150ecf 100644 --- a/cli/src/command.rs +++ b/cli/src/command.rs @@ -603,34 +603,19 @@ pub fn run() -> Result<()> { set_default_ss58_version(chain_spec); ensure_dev(chain_spec).map_err(Error::Other)?; - #[cfg(feature = "kusama-native")] - if chain_spec.is_kusama() { - return runner.sync_run(|config| { - cmd.run::(config) - .map_err(|e| Error::SubstrateCli(e)) - }) - } - - #[cfg(feature = "westend-native")] - if chain_spec.is_westend() { - return runner.sync_run(|config| { - cmd.run::(config) - .map_err(|e| Error::SubstrateCli(e)) - }) - } - - // else we assume it is polkadot. - #[cfg(feature = "polkadot-native")] - { - return runner.sync_run(|config| { - cmd.run::(config) + if cfg!(feature = "runtime-benchmarks") { + runner.sync_run(|config| { + cmd.run::(config) .map_err(|e| Error::SubstrateCli(e)) }) + } else { + Err(sc_cli::Error::Input( + "Benchmarking wasn't enabled when building the node. \ + You can enable it with `--features runtime-benchmarks`." + .into(), + ) + .into()) } - - #[cfg(not(feature = "polkadot-native"))] - #[allow(unreachable_code)] - Err(service::Error::NoRuntime.into()) }, BenchmarkCmd::Machine(cmd) => runner.sync_run(|config| { cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone()) diff --git a/node/test/client/src/lib.rs b/node/test/client/src/lib.rs index e27e8a5bda8b..457634a9e166 100644 --- a/node/test/client/src/lib.rs +++ b/node/test/client/src/lib.rs @@ -21,8 +21,6 @@ mod block_builder; use polkadot_primitives::Block; -use sc_service::client; -use sp_core::storage::Storage; use sp_runtime::BuildStorage; pub use block_builder::*; From 66c2ce9b744ab0dcab22ce3b4c1ff6bcb510dec8 Mon Sep 17 00:00:00 2001 From: Gavin Wood Date: Fri, 30 Jun 2023 14:38:21 +0200 Subject: [PATCH 47/56] Revert "Introduce Tinkernet multisig XCM configs to Kusama/Rococo through xcm-builder (#7165)" (#7446) This reverts commit 52595c8c7e5246172b8ee650aea496aa091af2f2. --- Cargo.lock | 1 - runtime/kusama/src/xcm_config.rs | 9 +-- runtime/rococo/src/xcm_config.rs | 14 ++--- xcm/xcm-builder/Cargo.toml | 2 - xcm/xcm-builder/src/lib.rs | 4 +- xcm/xcm-builder/src/location_conversion.rs | 67 ---------------------- xcm/xcm-builder/src/origin_conversion.rs | 35 ----------- 7 files changed, 8 insertions(+), 124 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 21c91d50dac5..c0991ae3b784 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14472,7 +14472,6 @@ dependencies = [ "primitive-types", "scale-info", "sp-arithmetic", - "sp-core", "sp-io", "sp-runtime", "sp-std", diff --git a/runtime/kusama/src/xcm_config.rs b/runtime/kusama/src/xcm_config.rs index 8e2af5752b42..0aa50a364a0c 100644 --- a/runtime/kusama/src/xcm_config.rs +++ b/runtime/kusama/src/xcm_config.rs @@ -41,9 +41,8 @@ use xcm_builder::{ ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, IsChildSystemParachain, IsConcrete, MintLocation, OriginToPluralityVoice, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, TakeWeightCredit, TinkernetMultisigAsAccountId, - TinkernetMultisigAsNative, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, - WithComputedOrigin, WithUniqueTopic, + SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, + WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, }; use xcm_executor::traits::WithOriginFilter; @@ -71,8 +70,6 @@ pub type SovereignAccountOf = ( ChildParachainConvertsVia, // We can directly alias an `AccountId32` into a local account. AccountId32Aliases, - // We can derive a local account from a Tinkernet XCMultisig MultiLocation. - TinkernetMultisigAsAccountId, ); /// Our asset transactor. This is what allows us to interest with the runtime facilities from the point of @@ -102,8 +99,6 @@ type LocalOriginConverter = ( SignedAccountId32AsNative, // A system child parachain, expressed as a Superuser, converts to the `Root` origin. ChildSystemParachainAsSuperuser, - // Converts a Tinkernet XCMultisig MultiLocation into a `Signed` origin. - TinkernetMultisigAsNative, ); parameter_types! { diff --git a/runtime/rococo/src/xcm_config.rs b/runtime/rococo/src/xcm_config.rs index 3d01b4f22833..bc78ab7ab878 100644 --- a/runtime/rococo/src/xcm_config.rs +++ b/runtime/rococo/src/xcm_config.rs @@ -40,8 +40,8 @@ use xcm_builder::{ ChildParachainAsNative, ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, IsChildSystemParachain, IsConcrete, MintLocation, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, - TakeWeightCredit, TinkernetMultisigAsAccountId, TinkernetMultisigAsNative, - TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, + TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, + WithUniqueTopic, }; use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; @@ -53,12 +53,8 @@ parameter_types! { pub LocalCheckAccount: (AccountId, MintLocation) = (CheckAccount::get(), MintLocation::Local); } -pub type LocationConverter = ( - ChildParachainConvertsVia, - AccountId32Aliases, - // We can derive a local account from a Tinkernet XCMultisig MultiLocation. - TinkernetMultisigAsAccountId, -); +pub type LocationConverter = + (ChildParachainConvertsVia, AccountId32Aliases); /// Our asset transactor. This is what allows us to interest with the runtime facilities from the point of /// view of XCM-only concepts like `MultiLocation` and `MultiAsset`. @@ -87,8 +83,6 @@ type LocalOriginConverter = ( SignedAccountId32AsNative, // A system child parachain, expressed as a Superuser, converts to the `Root` origin. ChildSystemParachainAsSuperuser, - // Converts a Tinkernet XCMultisig MultiLocation into a `Signed` origin. - TinkernetMultisigAsNative, ); parameter_types! { diff --git a/xcm/xcm-builder/Cargo.toml b/xcm/xcm-builder/Cargo.toml index 82c77f59692b..7dc7a7fc0aa2 100644 --- a/xcm/xcm-builder/Cargo.toml +++ b/xcm/xcm-builder/Cargo.toml @@ -15,7 +15,6 @@ sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", d sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-weights = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-system = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } @@ -50,7 +49,6 @@ std = [ "sp-arithmetic/std", "sp-io/std", "sp-runtime/std", - "sp-core/std", "sp-weights/std", "frame-support/std", "frame-system/std", diff --git a/xcm/xcm-builder/src/lib.rs b/xcm/xcm-builder/src/lib.rs index 08d0c32c1836..984ace84dc69 100644 --- a/xcm/xcm-builder/src/lib.rs +++ b/xcm/xcm-builder/src/lib.rs @@ -34,7 +34,7 @@ pub use location_conversion::{ ChildParachainConvertsVia, DescribeAccountId32Terminal, DescribeAccountIdTerminal, DescribeAccountKey20Terminal, DescribeAllTerminal, DescribeFamily, DescribeLocation, DescribePalletTerminal, DescribeTerminus, GlobalConsensusParachainConvertsFor, - HashedDescription, ParentIsPreset, SiblingParachainConvertsVia, TinkernetMultisigAsAccountId, + HashedDescription, ParentIsPreset, SiblingParachainConvertsVia, }; mod origin_conversion; @@ -42,7 +42,7 @@ pub use origin_conversion::{ BackingToPlurality, ChildParachainAsNative, ChildSystemParachainAsSuperuser, EnsureXcmOrigin, OriginToPluralityVoice, ParentAsSuperuser, RelayChainAsNative, SiblingParachainAsNative, SiblingSystemParachainAsSuperuser, SignedAccountId32AsNative, SignedAccountKey20AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TinkernetMultisigAsNative, + SignedToAccountId32, SovereignSignedViaLocation, }; mod asset_conversion; diff --git a/xcm/xcm-builder/src/location_conversion.rs b/xcm/xcm-builder/src/location_conversion.rs index a62d44e1e6af..dc327c08d067 100644 --- a/xcm/xcm-builder/src/location_conversion.rs +++ b/xcm/xcm-builder/src/location_conversion.rs @@ -17,7 +17,6 @@ use crate::universal_exports::ensure_is_remote; use frame_support::traits::Get; use parity_scale_codec::{Compact, Decode, Encode}; -use sp_core::H256; use sp_io::hashing::blake2_256; use sp_runtime::traits::{AccountIdConversion, Convert, TrailingZeroInput}; use sp_std::{marker::PhantomData, prelude::*}; @@ -346,52 +345,6 @@ impl>, AccountId: From<[u8; 20]> + Into<[u8; 20]> } } -/// Tinkernet ParaId used when matching Multisig MultiLocations. -pub const KUSAMA_TINKERNET_PARA_ID: u32 = 2125; - -/// Tinkernet Multisig pallet instance used when matching Multisig MultiLocations. -pub const KUSAMA_TINKERNET_MULTISIG_PALLET: u8 = 71; - -/// Constant derivation function for Tinkernet Multisigs. -/// Uses the Tinkernet genesis hash as a salt. -pub fn derive_tinkernet_multisig(id: u128) -> Result { - AccountId::decode(&mut TrailingZeroInput::new( - &( - // The constant salt used to derive Tinkernet Multisigs, this is Tinkernet's genesis hash. - H256([ - 212, 46, 150, 6, 169, 149, 223, 228, 51, 220, 121, 85, 220, 42, 112, 244, 149, 243, - 80, 243, 115, 218, 162, 0, 9, 138, 232, 68, 55, 129, 106, 210, - ]), - // The actual multisig integer id. - u32::try_from(id).map_err(|_| ())?, - ) - .using_encoded(blake2_256), - )) - .map_err(|_| ()) -} - -/// Convert a Tinkernet Multisig `MultiLocation` value into a local `AccountId`. -pub struct TinkernetMultisigAsAccountId(PhantomData); -impl ConvertLocation - for TinkernetMultisigAsAccountId -{ - fn convert_location(location: &MultiLocation) -> Option { - match location { - MultiLocation { - parents: _, - interior: - X3( - Parachain(KUSAMA_TINKERNET_PARA_ID), - PalletInstance(KUSAMA_TINKERNET_MULTISIG_PALLET), - // Index from which the multisig account is derived. - GeneralIndex(id), - ), - } => derive_tinkernet_multisig(*id).ok(), - _ => None, - } - } -} - /// Converts a location which is a top-level parachain (i.e. a parachain held on a /// Relay-chain which provides its own consensus) into a 32-byte `AccountId`. /// @@ -836,24 +789,4 @@ mod tests { }; assert!(ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).is_none()); } - - #[test] - fn remote_tinkernet_multisig_convert_to_account() { - let mul = MultiLocation { - parents: 0, - interior: X3( - Parachain(KUSAMA_TINKERNET_PARA_ID), - PalletInstance(KUSAMA_TINKERNET_MULTISIG_PALLET), - GeneralIndex(0), - ), - }; - - assert_eq!( - [ - 97, 160, 244, 60, 133, 145, 170, 26, 202, 108, 203, 156, 114, 116, 175, 30, 156, - 195, 43, 101, 243, 51, 193, 162, 152, 188, 30, 165, 244, 81, 70, 90 - ], - TinkernetMultisigAsAccountId::<[u8; 32]>::convert_location(&mul).unwrap() - ); - } } diff --git a/xcm/xcm-builder/src/origin_conversion.rs b/xcm/xcm-builder/src/origin_conversion.rs index ecd7edd4f568..0810b1ce2f8b 100644 --- a/xcm/xcm-builder/src/origin_conversion.rs +++ b/xcm/xcm-builder/src/origin_conversion.rs @@ -16,12 +16,8 @@ //! Various implementations for `ConvertOrigin`. -use crate::location_conversion::{ - derive_tinkernet_multisig, KUSAMA_TINKERNET_MULTISIG_PALLET, KUSAMA_TINKERNET_PARA_ID, -}; use frame_support::traits::{EnsureOrigin, Get, GetBacking, OriginTrait}; use frame_system::RawOrigin as SystemRawOrigin; -use parity_scale_codec::Decode; use polkadot_parachain::primitives::IsSystem; use sp_runtime::traits::TryConvert; use sp_std::marker::PhantomData; @@ -245,37 +241,6 @@ where } } -/// Convert a Tinkernet Multisig `MultiLocation` value into a `Signed` origin. -pub struct TinkernetMultisigAsNative(PhantomData); -impl ConvertOrigin - for TinkernetMultisigAsNative -where - RuntimeOrigin::AccountId: Decode, -{ - fn convert_origin( - origin: impl Into, - kind: OriginKind, - ) -> Result { - let origin = origin.into(); - match (kind, origin) { - ( - OriginKind::Native, - MultiLocation { - parents: _, - interior: - X3( - Junction::Parachain(KUSAMA_TINKERNET_PARA_ID), - Junction::PalletInstance(KUSAMA_TINKERNET_MULTISIG_PALLET), - // Index from which the multisig account is derived. - Junction::GeneralIndex(id), - ), - }, - ) => Ok(RuntimeOrigin::signed(derive_tinkernet_multisig(id).map_err(|_| origin)?)), - (_, origin) => Err(origin), - } - } -} - /// `EnsureOrigin` barrier to convert from dispatch origin to XCM origin, if one exists. pub struct EnsureXcmOrigin(PhantomData<(RuntimeOrigin, Conversion)>); impl> From 04d2c187e46290f6f3002e76a1a5575bca68f5be Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Sun, 2 Jul 2023 12:20:09 +0200 Subject: [PATCH 48/56] Allow Root to initiate auctions (#7449) Signed-off-by: Oliver Tale-Yazdi --- runtime/polkadot/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 073a8bbb2d93..d0836745cab4 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -1287,7 +1287,7 @@ impl auctions::Config for Runtime { type EndingPeriod = EndingPeriod; type SampleLength = SampleLength; type Randomness = pallet_babe::RandomnessFromOneEpochAgo; - type InitiateOrigin = AuctionAdmin; + type InitiateOrigin = EitherOf, AuctionAdmin>; type WeightInfo = weights::runtime_common_auctions::WeightInfo; } From f963646940e3c38e359d1ecf76478d1fed36021c Mon Sep 17 00:00:00 2001 From: Branislav Kontur Date: Mon, 3 Jul 2023 15:03:47 +0200 Subject: [PATCH 49/56] [xcm] BridgeBlobDispatcher - prepend bridge instance discriminator. (#7438) --- .../src/tests/bridging/local_para_para.rs | 2 +- .../src/tests/bridging/local_relay_relay.rs | 2 +- .../tests/bridging/paid_remote_relay_relay.rs | 2 +- .../src/tests/bridging/remote_para_para.rs | 5 +++-- .../bridging/remote_para_para_via_relay.rs | 5 +++-- .../src/tests/bridging/remote_relay_relay.rs | 2 +- xcm/xcm-builder/src/universal_exports.rs | 21 +++++++++++++++---- 7 files changed, 27 insertions(+), 12 deletions(-) diff --git a/xcm/xcm-builder/src/tests/bridging/local_para_para.rs b/xcm/xcm-builder/src/tests/bridging/local_para_para.rs index 77248e72ed19..406843a0fe8a 100644 --- a/xcm/xcm-builder/src/tests/bridging/local_para_para.rs +++ b/xcm/xcm-builder/src/tests/bridging/local_para_para.rs @@ -25,7 +25,7 @@ parameter_types! { pub RemoteUniversalLocation: Junctions = X2(GlobalConsensus(Remote::get()), Parachain(1)); } type TheBridge = - TestBridge>; + TestBridge>; type Router = TestTopic, UniversalLocation>>; diff --git a/xcm/xcm-builder/src/tests/bridging/local_relay_relay.rs b/xcm/xcm-builder/src/tests/bridging/local_relay_relay.rs index ff2b714718e2..02c454bb2129 100644 --- a/xcm/xcm-builder/src/tests/bridging/local_relay_relay.rs +++ b/xcm/xcm-builder/src/tests/bridging/local_relay_relay.rs @@ -25,7 +25,7 @@ parameter_types! { pub RemoteUniversalLocation: Junctions = X1(GlobalConsensus(Remote::get())); } type TheBridge = - TestBridge>; + TestBridge>; type Router = TestTopic, UniversalLocation>>; diff --git a/xcm/xcm-builder/src/tests/bridging/paid_remote_relay_relay.rs b/xcm/xcm-builder/src/tests/bridging/paid_remote_relay_relay.rs index 5472a3bd541d..2f9bfcc2d80a 100644 --- a/xcm/xcm-builder/src/tests/bridging/paid_remote_relay_relay.rs +++ b/xcm/xcm-builder/src/tests/bridging/paid_remote_relay_relay.rs @@ -33,7 +33,7 @@ parameter_types! { // x (10 + 10) weight each). } type TheBridge = - TestBridge>; + TestBridge>; type RelayExporter = HaulBlobExporter; type LocalInnerRouter = ExecutingRouter; type LocalBridgeRouter = SovereignPaidRemoteExporter< diff --git a/xcm/xcm-builder/src/tests/bridging/remote_para_para.rs b/xcm/xcm-builder/src/tests/bridging/remote_para_para.rs index b760e6829e9f..124a909bc072 100644 --- a/xcm/xcm-builder/src/tests/bridging/remote_para_para.rs +++ b/xcm/xcm-builder/src/tests/bridging/remote_para_para.rs @@ -27,8 +27,9 @@ parameter_types! { pub BridgeTable: Vec<(NetworkId, MultiLocation, Option)> = vec![(Remote::get(), (Parent, Parachain(1)).into(), None)]; } -type TheBridge = - TestBridge>; +type TheBridge = TestBridge< + BridgeBlobDispatcher, +>; type RelayExporter = HaulBlobExporter; type LocalInnerRouter = UnpaidExecutingRouter; diff --git a/xcm/xcm-builder/src/tests/bridging/remote_para_para_via_relay.rs b/xcm/xcm-builder/src/tests/bridging/remote_para_para_via_relay.rs index 9dc94e27e9aa..2ff1f9fb9764 100644 --- a/xcm/xcm-builder/src/tests/bridging/remote_para_para_via_relay.rs +++ b/xcm/xcm-builder/src/tests/bridging/remote_para_para_via_relay.rs @@ -27,8 +27,9 @@ parameter_types! { pub BridgeTable: Vec<(NetworkId, MultiLocation, Option)> = vec![(Remote::get(), Parachain(1).into(), None)]; } -type TheBridge = - TestBridge>; +type TheBridge = TestBridge< + BridgeBlobDispatcher, +>; type RelayExporter = HaulBlobExporter; type LocalInnerRouter = UnpaidExecutingRouter; diff --git a/xcm/xcm-builder/src/tests/bridging/remote_relay_relay.rs b/xcm/xcm-builder/src/tests/bridging/remote_relay_relay.rs index 2b34c93c0752..cdd6b89b7b1b 100644 --- a/xcm/xcm-builder/src/tests/bridging/remote_relay_relay.rs +++ b/xcm/xcm-builder/src/tests/bridging/remote_relay_relay.rs @@ -28,7 +28,7 @@ parameter_types! { = vec![(Remote::get(), MultiLocation::parent(), None)]; } type TheBridge = - TestBridge>; + TestBridge>; type RelayExporter = HaulBlobExporter; type LocalInnerRouter = UnpaidExecutingRouter; diff --git a/xcm/xcm-builder/src/universal_exports.rs b/xcm/xcm-builder/src/universal_exports.rs index 38795042d00d..9a65ec7dfe40 100644 --- a/xcm/xcm-builder/src/universal_exports.rs +++ b/xcm/xcm-builder/src/universal_exports.rs @@ -332,9 +332,14 @@ pub enum DispatchBlobError { WrongGlobal, } -pub struct BridgeBlobDispatcher(PhantomData<(Router, OurPlace)>); -impl> DispatchBlob - for BridgeBlobDispatcher +pub struct BridgeBlobDispatcher( + PhantomData<(Router, OurPlace, OurPlaceBridgeInstance)>, +); +impl< + Router: SendXcm, + OurPlace: Get, + OurPlaceBridgeInstance: Get>, + > DispatchBlob for BridgeBlobDispatcher { fn dispatch_blob(blob: Vec) -> Result<(), DispatchBlobError> { let our_universal = OurPlace::get(); @@ -352,8 +357,16 @@ impl> DispatchBlob .map_err(|()| DispatchBlobError::NonUniversalDestination)?; ensure!(intended_global == our_global, DispatchBlobError::WrongGlobal); let dest = universal_dest.relative_to(&our_universal); - let message: Xcm<()> = + let mut message: Xcm<()> = message.try_into().map_err(|_| DispatchBlobError::UnsupportedXcmVersion)?; + + // Prepend our bridge instance discriminator. + // Can be used for fine-grained control of origin on destination in case of multiple bridge instances, + // e.g. restrict `type UniversalAliases` and `UniversalOrigin` instruction to trust just particular bridge instance for `NetworkId`. + if let Some(bridge_instance) = OurPlaceBridgeInstance::get() { + message.0.insert(0, DescendOrigin(bridge_instance)); + } + let _ = send_xcm::(dest, message).map_err(|_| DispatchBlobError::RoutingError)?; Ok(()) } From 39b35b4c8177537a529cc326e582dd13ff2977c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Tue, 4 Jul 2023 10:09:14 +0200 Subject: [PATCH 50/56] Do not depend on native runtimes for `RuntimeApi` (#7451) * Implement runtime apis for fake runtime These runtime api implementations are only used to make the compiler think that we have implemented all required runtime apis. They will not be called as we switch the executor to `WasmExecutor`. In the near future we will not require these fake implementations anymore after Substrate has shifted away from this compile time requirement. This brings us the advantage that the `polkadot-service` doesn't need to depend on the runtimes for getting the `RuntimeApi` type. It also removes around 1min of build time on my machine ;) * Fix warning * FMT * ".git/.scripts/commands/fmt/fmt.sh" * Use more descriptive id * Fix warnings * Adapt path * Fix :see_no_evil: --------- Co-authored-by: command-bot <> --- Cargo.lock | 158 ++++--- Cargo.toml | 3 +- cli/Cargo.toml | 4 +- cli/src/command.rs | 77 +--- cli/src/lib.rs | 2 - node/client/Cargo.toml | 63 --- node/client/src/benchmarking.rs | 390 ----------------- node/client/src/lib.rs | 590 -------------------------- node/service/Cargo.toml | 24 +- node/service/src/benchmarking.rs | 430 +++++++++++++++++++ node/service/src/chain_spec.rs | 44 +- node/service/src/fake_runtime_api.rs | 398 +++++++++++++++++ node/service/src/lib.rs | 393 +++++------------ node/test/client/Cargo.toml | 3 + node/test/client/src/block_builder.rs | 3 +- node/test/client/src/lib.rs | 20 +- node/test/service/Cargo.toml | 2 - node/test/service/src/lib.rs | 36 +- tests/purge_chain_works.rs | 22 +- 19 files changed, 1155 insertions(+), 1507 deletions(-) delete mode 100644 node/client/Cargo.toml delete mode 100644 node/client/src/benchmarking.rs delete mode 100644 node/client/src/lib.rs create mode 100644 node/service/src/benchmarking.rs create mode 100644 node/service/src/fake_runtime_api.rs diff --git a/Cargo.lock b/Cargo.lock index c0991ae3b784..b8bca8772e47 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4575,11 +4575,10 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" dependencies = [ - "cfg-if", "serde", "value-bag", ] @@ -6917,7 +6916,6 @@ dependencies = [ "frame-benchmarking-cli", "futures", "log", - "polkadot-client", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-metrics", @@ -6940,50 +6938,6 @@ dependencies = [ "try-runtime-cli", ] -[[package]] -name = "polkadot-client" -version = "0.9.43" -dependencies = [ - "async-trait", - "frame-benchmarking", - "frame-benchmarking-cli", - "frame-system", - "frame-system-rpc-runtime-api", - "futures", - "kusama-runtime", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "polkadot-core-primitives", - "polkadot-node-core-parachains-inherent", - "polkadot-primitives", - "polkadot-runtime", - "polkadot-runtime-common", - "rococo-runtime", - "sc-client-api", - "sc-consensus", - "sc-executor", - "sc-service", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-consensus-grandpa", - "sp-core", - "sp-inherents", - "sp-keyring", - "sp-mmr-primitives", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-storage", - "sp-timestamp", - "sp-transaction-pool", - "westend-runtime", -] - [[package]] name = "polkadot-collator-protocol" version = "0.9.43" @@ -8071,8 +8025,10 @@ dependencies = [ "assert_matches", "async-trait", "env_logger 0.9.0", + "frame-benchmarking", "frame-benchmarking-cli", "frame-support", + "frame-system", "frame-system-rpc-runtime-api", "futures", "hex-literal 0.4.1", @@ -8086,14 +8042,16 @@ dependencies = [ "pallet-babe", "pallet-im-online", "pallet-staking", + "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "parity-db", + "parity-scale-codec", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", - "polkadot-client", "polkadot-collator-protocol", + "polkadot-core-primitives", "polkadot-dispute-distribution", "polkadot-gossip-support", "polkadot-network-bridge", @@ -8121,6 +8079,7 @@ dependencies = [ "polkadot-primitives", "polkadot-rpc", "polkadot-runtime", + "polkadot-runtime-common", "polkadot-runtime-constants", "polkadot-runtime-parachains", "polkadot-statement-distribution", @@ -8162,6 +8121,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-keyring", "sp-keystore", "sp-mmr-primitives", "sp-offchain", @@ -8172,6 +8132,8 @@ dependencies = [ "sp-timestamp", "sp-transaction-pool", "sp-trie", + "sp-version", + "sp-weights", "substrate-prometheus-endpoint", "tempfile", "thiserror", @@ -8224,6 +8186,7 @@ dependencies = [ name = "polkadot-test-client" version = "0.9.43" dependencies = [ + "frame-benchmarking", "futures", "parity-scale-codec", "polkadot-node-subsystem", @@ -8232,6 +8195,7 @@ dependencies = [ "polkadot-test-service", "sc-block-builder", "sc-consensus", + "sc-offchain", "sc-service", "sp-api", "sp-blockchain", @@ -8239,6 +8203,7 @@ dependencies = [ "sp-consensus-babe", "sp-core", "sp-inherents", + "sp-io", "sp-keyring", "sp-runtime", "sp-state-machine", @@ -8344,7 +8309,6 @@ dependencies = [ name = "polkadot-test-service" version = "0.9.43" dependencies = [ - "frame-benchmarking", "frame-system", "futures", "hex", @@ -8369,7 +8333,6 @@ dependencies = [ "sc-consensus", "sc-consensus-babe", "sc-consensus-grandpa", - "sc-executor", "sc-network", "sc-service", "sc-tracing", @@ -12195,11 +12158,70 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "sval" -version = "1.0.0-alpha.5" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b031320a434d3e9477ccf9b5756d57d4272937b8d22cb88af80b7633a1b78b1" + +[[package]] +name = "sval_buffer" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bf7e9412af26b342f3f2cc5cc4122b0105e9d16eb76046cd14ed10106cf6028" +dependencies = [ + "sval", + "sval_ref", +] + +[[package]] +name = "sval_dynamic" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0ef628e8a77a46ed3338db8d1b08af77495123cc229453084e47cd716d403cf" +dependencies = [ + "sval", +] + +[[package]] +name = "sval_fmt" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dc09e9364c2045ab5fa38f7b04d077b3359d30c4c2b3ec4bae67a358bd64326" +dependencies = [ + "itoa", + "ryu", + "sval", +] + +[[package]] +name = "sval_json" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45f6ee7c7b87caf59549e9fe45d6a69c75c8019e79e212a835c5da0e92f0ba08" +checksum = "ada6f627e38cbb8860283649509d87bc4a5771141daa41c78fd31f2b9485888d" +dependencies = [ + "itoa", + "ryu", + "sval", +] + +[[package]] +name = "sval_ref" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703ca1942a984bd0d9b5a4c0a65ab8b4b794038d080af4eb303c71bc6bf22d7c" +dependencies = [ + "sval", +] + +[[package]] +name = "sval_serde" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830926cd0581f7c3e5d51efae4d35c6b6fc4db583842652891ba2f1bed8db046" dependencies = [ "serde", + "sval", + "sval_buffer", + "sval_fmt", ] [[package]] @@ -13248,16 +13270,38 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.0.0-alpha.9" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" +checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3" +dependencies = [ + "value-bag-serde1", + "value-bag-sval2", +] + +[[package]] +name = "value-bag-serde1" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b9f3feef403a50d4d67e9741a6d8fc688bcbb4e4f31bd4aab72cc690284394" dependencies = [ - "ctor", "erased-serde", "serde", "serde_fmt", +] + +[[package]] +name = "value-bag-sval2" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b24f4146b6f3361e91cbf527d1fb35e9376c3c0cef72ca5ec5af6d640fad7d" +dependencies = [ "sval", - "version_check", + "sval_buffer", + "sval_dynamic", + "sval_fmt", + "sval_json", + "sval_ref", + "sval_serde", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index c4cd139b68fa..74f2b9570517 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ color-eyre = { version = "0.6.1", default-features = false } tikv-jemallocator = "0.5.0" # Crates in our workspace, defined as dependencies so we can pass them feature flags. -polkadot-cli = { path = "cli", features = [ "kusama-native", "westend-native", "rococo-native" ] } +polkadot-cli = { path = "cli", features = [ "polkadot-native", "kusama-native", "westend-native", "rococo-native" ] } polkadot-node-core-pvf-prepare-worker = { path = "node/core/pvf/prepare-worker" } polkadot-overseer = { path = "node/overseer" } @@ -68,7 +68,6 @@ members = [ "xcm/pallet-xcm", "xcm/pallet-xcm-benchmarks", "xcm/procedural", - "node/client", "node/collation-generation", "node/core/approval-voting", "node/core/av-store", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 64ce6e7ca595..e7aa562880cc 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -22,7 +22,6 @@ pyro = { package = "pyroscope", version = "0.5.3", optional = true } pyroscope_pprofrs = { version = "0.2", optional = true } service = { package = "polkadot-service", path = "../node/service", default-features = false, optional = true } -polkadot-client = { path = "../node/client", optional = true } polkadot-node-core-pvf-execute-worker = { path = "../node/core/pvf/execute-worker", optional = true } polkadot-node-core-pvf-prepare-worker = { path = "../node/core/pvf/prepare-worker", optional = true } polkadot-performance-test = { path = "../node/test/performance-test", optional = true } @@ -45,7 +44,7 @@ sc-storage-monitor = { git = "https://github.com/paritytech/substrate", branch = substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "master" } [features] -default = ["db", "cli", "full-node", "polkadot-native"] +default = ["db", "cli", "full-node"] db = ["service/db"] cli = [ "clap", @@ -54,7 +53,6 @@ cli = [ "sc-tracing", "frame-benchmarking-cli", "try-runtime-cli", - "polkadot-client", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "service", diff --git a/cli/src/command.rs b/cli/src/command.rs index db5ebe150ecf..4cf06f254b0d 100644 --- a/cli/src/command.rs +++ b/cli/src/command.rs @@ -18,11 +18,12 @@ use crate::cli::{Cli, Subcommand}; use frame_benchmarking_cli::{BenchmarkCmd, ExtrinsicFactory, SUBSTRATE_REFERENCE_HARDWARE}; use futures::future::TryFutureExt; use log::info; -use polkadot_client::benchmarking::{ - benchmark_inherent_data, ExistentialDepositProvider, RemarkBuilder, TransferKeepAliveBuilder, -}; use sc_cli::{RuntimeVersion, SubstrateCli}; -use service::{self, HeaderBackend, IdentifyVariant}; +use service::{ + self, + benchmarking::{benchmark_inherent_data, RemarkBuilder, TransferKeepAliveBuilder}, + HeaderBackend, IdentifyVariant, +}; use sp_core::crypto::Ss58AddressFormatRegistry; use sp_keyring::Sr25519Keyring; use std::net::ToSocketAddrs; @@ -225,31 +226,6 @@ fn ensure_dev(spec: &Box) -> std::result::Result<(), Str } } -/// Unwraps a [`polkadot_client::Client`] into the concrete runtime client. -macro_rules! unwrap_client { - ( - $client:ident, - $code:expr - ) => { - match $client.as_ref() { - #[cfg(feature = "polkadot-native")] - polkadot_client::Client::Polkadot($client) => $code, - #[cfg(feature = "westend-native")] - polkadot_client::Client::Westend($client) => $code, - #[cfg(feature = "kusama-native")] - polkadot_client::Client::Kusama($client) => $code, - #[cfg(feature = "rococo-native")] - polkadot_client::Client::Rococo($client) => $code, - #[allow(unreachable_patterns)] - _ => { - let _ = $client; - - Err(Error::CommandNotImplemented) - }, - } - }; -} - /// Runs performance checks. /// Should only be used in release build since the check would take too much time otherwise. fn host_perf_check() -> Result<()> { @@ -540,15 +516,12 @@ pub fn run() -> Result<()> { let db = backend.expose_db(); let storage = backend.expose_storage(); - unwrap_client!( - client, - cmd.run(config, client.clone(), db, storage).map_err(Error::SubstrateCli) - ) + cmd.run(config, client.clone(), db, storage).map_err(Error::SubstrateCli) }), BenchmarkCmd::Block(cmd) => runner.sync_run(|mut config| { let (client, _, _, _) = service::new_chain_ops(&mut config, None)?; - unwrap_client!(client, cmd.run(client.clone()).map_err(Error::SubstrateCli)) + cmd.run(client.clone()).map_err(Error::SubstrateCli) }), // These commands are very similar and can be handled in nearly the same way. BenchmarkCmd::Extrinsic(_) | BenchmarkCmd::Overhead(_) => { @@ -558,14 +531,15 @@ pub fn run() -> Result<()> { let header = client.header(client.info().genesis_hash).unwrap().unwrap(); let inherent_data = benchmark_inherent_data(header) .map_err(|e| format!("generating inherent data: {:?}", e))?; - let remark_builder = RemarkBuilder::new(client.clone()); + let remark_builder = + RemarkBuilder::new(client.clone(), config.chain_spec.identify_chain()); match cmd { BenchmarkCmd::Extrinsic(cmd) => { let tka_builder = TransferKeepAliveBuilder::new( client.clone(), Sr25519Keyring::Alice.to_account_id(), - client.existential_deposit(), + config.chain_spec.identify_chain(), ); let ext_factory = ExtrinsicFactory(vec![ @@ -573,28 +547,18 @@ pub fn run() -> Result<()> { Box::new(tka_builder), ]); - unwrap_client!( - client, - cmd.run( - client.clone(), - inherent_data, - Vec::new(), - &ext_factory - ) + cmd.run(client.clone(), inherent_data, Vec::new(), &ext_factory) .map_err(Error::SubstrateCli) - ) }, - BenchmarkCmd::Overhead(cmd) => unwrap_client!( - client, - cmd.run( + BenchmarkCmd::Overhead(cmd) => cmd + .run( config, client.clone(), inherent_data, Vec::new(), - &remark_builder + &remark_builder, ) - .map_err(Error::SubstrateCli) - ), + .map_err(Error::SubstrateCli), _ => unreachable!("Ensured by the outside match; qed"), } }) @@ -637,17 +601,12 @@ pub fn run() -> Result<()> { Some(Subcommand::Key(cmd)) => Ok(cmd.run(&cli)?), #[cfg(feature = "try-runtime")] Some(Subcommand::TryRuntime(cmd)) => { - use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; use sc_service::TaskManager; use try_runtime_cli::block_building_info::timestamp_with_babe_info; let runner = cli.create_runner(cmd)?; let chain_spec = &runner.config().chain_spec; set_default_ss58_version(chain_spec); - type HostFunctionsOf = ExtendedHostFunctions< - sp_io::SubstrateHostFunctions, - ::ExtendHostFunctions, - >; let registry = &runner.config().prometheus_config.as_ref().map(|cfg| &cfg.registry); let task_manager = TaskManager::new(runner.config().tokio_handle.clone(), *registry) @@ -659,7 +618,7 @@ pub fn run() -> Result<()> { if chain_spec.is_kusama() { return runner.async_run(|_| { Ok(( - cmd.run::, _>( + cmd.run::( Some(timestamp_with_babe_info(service::kusama_runtime_constants::time::MILLISECS_PER_BLOCK)) ) .map_err(Error::SubstrateCli), @@ -672,7 +631,7 @@ pub fn run() -> Result<()> { if chain_spec.is_westend() { return runner.async_run(|_| { Ok(( - cmd.run::, _>( + cmd.run::( Some(timestamp_with_babe_info(service::westend_runtime_constants::time::MILLISECS_PER_BLOCK)) ) .map_err(Error::SubstrateCli), @@ -685,7 +644,7 @@ pub fn run() -> Result<()> { { return runner.async_run(|_| { Ok(( - cmd.run::, _>( + cmd.run::( Some(timestamp_with_babe_info(service::polkadot_runtime_constants::time::MILLISECS_PER_BLOCK)) ) .map_err(Error::SubstrateCli), diff --git a/cli/src/lib.rs b/cli/src/lib.rs index 8a859c1b2bd2..057592fa8a10 100644 --- a/cli/src/lib.rs +++ b/cli/src/lib.rs @@ -27,8 +27,6 @@ mod error; #[cfg(all(feature = "hostperfcheck", build_type = "release"))] mod host_perf_check; -#[cfg(feature = "full-node")] -pub use service::RuntimeApiCollection; #[cfg(feature = "service")] pub use service::{self, Block, CoreApi, IdentifyVariant, ProvideRuntimeApi, TFullClient}; diff --git a/node/client/Cargo.toml b/node/client/Cargo.toml deleted file mode 100644 index 3b4e8e725ae5..000000000000 --- a/node/client/Cargo.toml +++ /dev/null @@ -1,63 +0,0 @@ -[package] -name = "polkadot-client" -version.workspace = true -authors.workspace = true -edition.workspace = true - -[dependencies] -async-trait = "0.1.57" -futures = "0.3.21" -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" } - -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-storage = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-beefy = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-offchain = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } - -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } - -# Polkadot Runtimes -polkadot-runtime = { path = "../../runtime/polkadot", optional = true } -kusama-runtime = { path = "../../runtime/kusama", optional = true } -westend-runtime = { path = "../../runtime/westend", optional = true } -rococo-runtime = { path = "../../runtime/rococo", optional = true } - -polkadot-core-primitives = { path = "../../core-primitives" } -polkadot-primitives = { path = "../../primitives" } -polkadot-node-core-parachains-inherent = { path = "../core/parachains-inherent" } -polkadot-runtime-common = { path = "../../runtime/common" } - -[features] -default = ["polkadot"] -polkadot = ["polkadot-runtime"] -kusama = ["kusama-runtime"] -rococo = ["rococo-runtime"] -westend = ["westend-runtime"] -runtime-metrics = [ - "rococo-runtime/runtime-metrics", - "kusama-runtime/runtime-metrics", - "westend-runtime/runtime-metrics", - "polkadot-runtime/runtime-metrics", -] diff --git a/node/client/src/benchmarking.rs b/node/client/src/benchmarking.rs deleted file mode 100644 index 69927c11a913..000000000000 --- a/node/client/src/benchmarking.rs +++ /dev/null @@ -1,390 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Code related to benchmarking a [`crate::Client`]. - -use polkadot_primitives::{AccountId, Balance}; -use sp_core::{Pair, H256}; -use sp_keyring::Sr25519Keyring; -use sp_runtime::OpaqueExtrinsic; - -use crate::*; - -/// Generates `System::Remark` extrinsics for the benchmarks. -/// -/// Note: Should only be used for benchmarking. -pub struct RemarkBuilder { - client: Arc, -} - -impl RemarkBuilder { - /// Creates a new [`Self`] from the given client. - pub fn new(client: Arc) -> Self { - Self { client } - } -} - -impl frame_benchmarking_cli::ExtrinsicBuilder for RemarkBuilder { - fn pallet(&self) -> &str { - "system" - } - - fn extrinsic(&self) -> &str { - "remark" - } - - fn build(&self, nonce: u32) -> std::result::Result { - with_client! { - self.client.as_ref(), client, { - use runtime::{RuntimeCall, SystemCall}; - - let call = RuntimeCall::System(SystemCall::remark { remark: vec![] }); - let signer = Sr25519Keyring::Bob.pair(); - - let period = polkadot_runtime_common::BlockHashCount::get().checked_next_power_of_two().map(|c| c / 2).unwrap_or(2) as u64; - let genesis = client.usage_info().chain.best_hash; - - Ok(client.sign_call(call, nonce, 0, period, genesis, signer)) - } - } - } -} - -/// Generates `Balances::TransferKeepAlive` extrinsics for the benchmarks. -/// -/// Note: Should only be used for benchmarking. -pub struct TransferKeepAliveBuilder { - client: Arc, - dest: AccountId, - value: Balance, -} - -impl TransferKeepAliveBuilder { - /// Creates a new [`Self`] from the given client and the arguments for the extrinsics. - - pub fn new(client: Arc, dest: AccountId, value: Balance) -> Self { - Self { client, dest, value } - } -} - -impl frame_benchmarking_cli::ExtrinsicBuilder for TransferKeepAliveBuilder { - fn pallet(&self) -> &str { - "balances" - } - - fn extrinsic(&self) -> &str { - "transfer_keep_alive" - } - - fn build(&self, nonce: u32) -> std::result::Result { - with_client! { - self.client.as_ref(), client, { - use runtime::{RuntimeCall, BalancesCall}; - - let call = RuntimeCall::Balances(BalancesCall::transfer_keep_alive { - dest: self.dest.clone().into(), - value: self.value.into(), - }); - let signer = Sr25519Keyring::Bob.pair(); - - let period = polkadot_runtime_common::BlockHashCount::get().checked_next_power_of_two().map(|c| c / 2).unwrap_or(2) as u64; - let genesis = client.usage_info().chain.best_hash; - - Ok(client.sign_call(call, nonce, 0, period, genesis, signer)) - } - } - } -} - -/// Helper trait to implement [`frame_benchmarking_cli::ExtrinsicBuilder`]. -/// -/// Should only be used for benchmarking since it makes strong assumptions -/// about the chain state that these calls will be valid for. -trait BenchmarkCallSigner { - /// Signs a call together with the signed extensions of the specific runtime. - /// - /// Only works if the current block is the genesis block since the - /// `CheckMortality` check is mocked by using the genesis block. - fn sign_call( - &self, - call: RuntimeCall, - nonce: u32, - current_block: u64, - period: u64, - genesis: H256, - acc: Signer, - ) -> OpaqueExtrinsic; -} - -#[cfg(feature = "polkadot")] -impl BenchmarkCallSigner - for FullClient -{ - fn sign_call( - &self, - call: polkadot_runtime::RuntimeCall, - nonce: u32, - current_block: u64, - period: u64, - genesis: H256, - acc: sp_core::sr25519::Pair, - ) -> OpaqueExtrinsic { - use polkadot_runtime as runtime; - - let extra: runtime::SignedExtra = ( - frame_system::CheckNonZeroSender::::new(), - frame_system::CheckSpecVersion::::new(), - frame_system::CheckTxVersion::::new(), - frame_system::CheckGenesis::::new(), - frame_system::CheckMortality::::from( - sp_runtime::generic::Era::mortal(period, current_block), - ), - frame_system::CheckNonce::::from(nonce), - frame_system::CheckWeight::::new(), - pallet_transaction_payment::ChargeTransactionPayment::::from(0), - polkadot_runtime_common::claims::PrevalidateAttests::::new(), - ); - - let payload = runtime::SignedPayload::from_raw( - call.clone(), - extra.clone(), - ( - (), - runtime::VERSION.spec_version, - runtime::VERSION.transaction_version, - genesis, - genesis, - (), - (), - (), - (), - ), - ); - - let signature = payload.using_encoded(|p| acc.sign(p)); - runtime::UncheckedExtrinsic::new_signed( - call, - sp_runtime::AccountId32::from(acc.public()).into(), - polkadot_core_primitives::Signature::Sr25519(signature.clone()), - extra, - ) - .into() - } -} - -#[cfg(feature = "westend")] -impl BenchmarkCallSigner - for FullClient -{ - fn sign_call( - &self, - call: westend_runtime::RuntimeCall, - nonce: u32, - current_block: u64, - period: u64, - genesis: H256, - acc: sp_core::sr25519::Pair, - ) -> OpaqueExtrinsic { - use westend_runtime as runtime; - - let extra: runtime::SignedExtra = ( - frame_system::CheckNonZeroSender::::new(), - frame_system::CheckSpecVersion::::new(), - frame_system::CheckTxVersion::::new(), - frame_system::CheckGenesis::::new(), - frame_system::CheckMortality::::from( - sp_runtime::generic::Era::mortal(period, current_block), - ), - frame_system::CheckNonce::::from(nonce), - frame_system::CheckWeight::::new(), - pallet_transaction_payment::ChargeTransactionPayment::::from(0), - ); - - let payload = runtime::SignedPayload::from_raw( - call.clone(), - extra.clone(), - ( - (), - runtime::VERSION.spec_version, - runtime::VERSION.transaction_version, - genesis, - genesis, - (), - (), - (), - ), - ); - - let signature = payload.using_encoded(|p| acc.sign(p)); - runtime::UncheckedExtrinsic::new_signed( - call, - sp_runtime::AccountId32::from(acc.public()).into(), - polkadot_core_primitives::Signature::Sr25519(signature.clone()), - extra, - ) - .into() - } -} - -#[cfg(feature = "kusama")] -impl BenchmarkCallSigner - for FullClient -{ - fn sign_call( - &self, - call: kusama_runtime::RuntimeCall, - nonce: u32, - current_block: u64, - period: u64, - genesis: H256, - acc: sp_core::sr25519::Pair, - ) -> OpaqueExtrinsic { - use kusama_runtime as runtime; - - let extra: runtime::SignedExtra = ( - frame_system::CheckNonZeroSender::::new(), - frame_system::CheckSpecVersion::::new(), - frame_system::CheckTxVersion::::new(), - frame_system::CheckGenesis::::new(), - frame_system::CheckMortality::::from( - sp_runtime::generic::Era::mortal(period, current_block), - ), - frame_system::CheckNonce::::from(nonce), - frame_system::CheckWeight::::new(), - pallet_transaction_payment::ChargeTransactionPayment::::from(0), - ); - - let payload = runtime::SignedPayload::from_raw( - call.clone(), - extra.clone(), - ( - (), - runtime::VERSION.spec_version, - runtime::VERSION.transaction_version, - genesis, - genesis, - (), - (), - (), - ), - ); - - let signature = payload.using_encoded(|p| acc.sign(p)); - runtime::UncheckedExtrinsic::new_signed( - call, - sp_runtime::AccountId32::from(acc.public()).into(), - polkadot_core_primitives::Signature::Sr25519(signature.clone()), - extra, - ) - .into() - } -} - -#[cfg(feature = "rococo")] -impl BenchmarkCallSigner - for FullClient -{ - fn sign_call( - &self, - call: rococo_runtime::RuntimeCall, - nonce: u32, - current_block: u64, - period: u64, - genesis: H256, - acc: sp_core::sr25519::Pair, - ) -> OpaqueExtrinsic { - use rococo_runtime as runtime; - - let extra: runtime::SignedExtra = ( - frame_system::CheckNonZeroSender::::new(), - frame_system::CheckSpecVersion::::new(), - frame_system::CheckTxVersion::::new(), - frame_system::CheckGenesis::::new(), - frame_system::CheckMortality::::from( - sp_runtime::generic::Era::mortal(period, current_block), - ), - frame_system::CheckNonce::::from(nonce), - frame_system::CheckWeight::::new(), - pallet_transaction_payment::ChargeTransactionPayment::::from(0), - ); - - let payload = runtime::SignedPayload::from_raw( - call.clone(), - extra.clone(), - ( - (), - runtime::VERSION.spec_version, - runtime::VERSION.transaction_version, - genesis, - genesis, - (), - (), - (), - ), - ); - - let signature = payload.using_encoded(|p| acc.sign(p)); - runtime::UncheckedExtrinsic::new_signed( - call, - sp_runtime::AccountId32::from(acc.public()).into(), - polkadot_core_primitives::Signature::Sr25519(signature.clone()), - extra, - ) - .into() - } -} - -/// Generates inherent data for benchmarking Polkadot, Kusama, Westend and Rococo. -/// -/// Not to be used outside of benchmarking since it returns mocked values. -pub fn benchmark_inherent_data( - header: polkadot_core_primitives::Header, -) -> std::result::Result { - use sp_inherents::InherentDataProvider; - let mut inherent_data = sp_inherents::InherentData::new(); - - // Assume that all runtimes have the `timestamp` pallet. - let d = std::time::Duration::from_millis(0); - let timestamp = sp_timestamp::InherentDataProvider::new(d.into()); - futures::executor::block_on(timestamp.provide_inherent_data(&mut inherent_data))?; - - let para_data = polkadot_primitives::InherentData { - bitfields: Vec::new(), - backed_candidates: Vec::new(), - disputes: Vec::new(), - parent_header: header, - }; - - inherent_data.put_data(polkadot_primitives::PARACHAINS_INHERENT_IDENTIFIER, ¶_data)?; - - Ok(inherent_data) -} - -/// Provides the existential deposit that is only needed for benchmarking. -pub trait ExistentialDepositProvider { - /// Returns the existential deposit. - fn existential_deposit(&self) -> Balance; -} - -impl ExistentialDepositProvider for Client { - fn existential_deposit(&self) -> Balance { - with_client! { - self, - _client, - runtime::ExistentialDeposit::get() - } - } -} diff --git a/node/client/src/lib.rs b/node/client/src/lib.rs deleted file mode 100644 index 1ef0e7f6c022..000000000000 --- a/node/client/src/lib.rs +++ /dev/null @@ -1,590 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Polkadot Client -//! -//! Provides the [`AbstractClient`] trait that is a super trait that combines all the traits the client implements. -//! There is also the [`Client`] enum that combines all the different clients into one common structure. - -use polkadot_primitives::{ - runtime_api::ParachainHost, AccountId, Balance, Block, BlockNumber, Hash, Header, Nonce, -}; -use sc_client_api::{ - AuxStore, Backend as BackendT, BlockchainEvents, KeysIter, PairsIter, UsageProvider, -}; -use sc_executor::NativeElseWasmExecutor; -use sp_api::{CallApiAt, Encode, NumberFor, ProvideRuntimeApi}; -use sp_blockchain::{HeaderBackend, HeaderMetadata}; -use sp_consensus::BlockStatus; -use sp_runtime::{ - generic::SignedBlock, - traits::{BlakeTwo256, Block as BlockT}, - Justifications, -}; -use sp_storage::{ChildInfo, StorageData, StorageKey}; -use std::sync::Arc; - -pub mod benchmarking; - -pub type FullBackend = sc_service::TFullBackend; - -pub type FullClient = - sc_service::TFullClient>; - -#[cfg(not(any( - feature = "rococo", - feature = "kusama", - feature = "westend", - feature = "polkadot" -)))] -compile_error!("at least one runtime feature must be enabled"); - -/// The native executor instance for Polkadot. -#[cfg(feature = "polkadot")] -pub struct PolkadotExecutorDispatch; - -#[cfg(feature = "polkadot")] -impl sc_executor::NativeExecutionDispatch for PolkadotExecutorDispatch { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - polkadot_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - polkadot_runtime::native_version() - } -} - -#[cfg(feature = "kusama")] -/// The native executor instance for Kusama. -pub struct KusamaExecutorDispatch; - -#[cfg(feature = "kusama")] -impl sc_executor::NativeExecutionDispatch for KusamaExecutorDispatch { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - kusama_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - kusama_runtime::native_version() - } -} - -#[cfg(feature = "westend")] -/// The native executor instance for Westend. -pub struct WestendExecutorDispatch; - -#[cfg(feature = "westend")] -impl sc_executor::NativeExecutionDispatch for WestendExecutorDispatch { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - westend_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - westend_runtime::native_version() - } -} - -#[cfg(feature = "rococo")] -/// The native executor instance for Rococo. -pub struct RococoExecutorDispatch; - -#[cfg(feature = "rococo")] -impl sc_executor::NativeExecutionDispatch for RococoExecutorDispatch { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - rococo_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - rococo_runtime::native_version() - } -} - -/// A set of APIs that polkadot-like runtimes must implement. -pub trait RuntimeApiCollection: - sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::ApiExt - + sp_consensus_babe::BabeApi - + sp_consensus_grandpa::GrandpaApi - + ParachainHost - + sp_block_builder::BlockBuilder - + frame_system_rpc_runtime_api::AccountNonceApi - + sp_mmr_primitives::MmrApi::Hash, BlockNumber> - + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi - + sp_api::Metadata - + sp_offchain::OffchainWorkerApi - + sp_session::SessionKeys - + sp_authority_discovery::AuthorityDiscoveryApi - + sp_consensus_beefy::BeefyApi -where - >::StateBackend: sp_api::StateBackend, -{ -} - -impl RuntimeApiCollection for Api -where - Api: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::ApiExt - + sp_consensus_babe::BabeApi - + sp_consensus_grandpa::GrandpaApi - + ParachainHost - + sp_block_builder::BlockBuilder - + frame_system_rpc_runtime_api::AccountNonceApi - + sp_mmr_primitives::MmrApi::Hash, BlockNumber> - + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi - + sp_api::Metadata - + sp_offchain::OffchainWorkerApi - + sp_session::SessionKeys - + sp_authority_discovery::AuthorityDiscoveryApi - + sp_consensus_beefy::BeefyApi, - >::StateBackend: sp_api::StateBackend, -{ -} - -/// Trait that abstracts over all available client implementations. -/// -/// For a concrete type there exists [`Client`]. -pub trait AbstractClient: - BlockchainEvents - + Sized - + Send - + Sync - + ProvideRuntimeApi - + HeaderBackend - + CallApiAt - + AuxStore - + UsageProvider - + HeaderMetadata -where - Block: BlockT, - Backend: BackendT, - Backend::State: sp_api::StateBackend, - Self::Api: RuntimeApiCollection, -{ -} - -impl AbstractClient for Client -where - Block: BlockT, - Backend: BackendT, - Backend::State: sp_api::StateBackend, - Client: BlockchainEvents - + ProvideRuntimeApi - + HeaderBackend - + AuxStore - + UsageProvider - + Sized - + Send - + Sync - + CallApiAt - + HeaderMetadata, - Client::Api: RuntimeApiCollection, -{ -} - -/// Execute something with the client instance. -/// -/// As there exist multiple chains inside Polkadot, like Polkadot itself, Kusama, Westend etc, -/// there can exist different kinds of client types. As these client types differ in the generics -/// that are being used, we can not easily return them from a function. For returning them from a -/// function there exists [`Client`]. However, the problem on how to use this client instance still -/// exists. This trait "solves" it in a dirty way. It requires a type to implement this trait and -/// than the [`execute_with_client`](ExecuteWithClient::execute_with_client) function can be called -/// with any possible client instance. -/// -/// In a perfect world, we could make a closure work in this way. -pub trait ExecuteWithClient { - /// The return type when calling this instance. - type Output; - - /// Execute whatever should be executed with the given client instance. - fn execute_with_client(self, client: Arc) -> Self::Output - where - >::StateBackend: sp_api::StateBackend, - Backend: sc_client_api::Backend + 'static, - Backend::State: sp_api::StateBackend, - Api: crate::RuntimeApiCollection, - Client: AbstractClient + 'static; -} - -/// A handle to a Polkadot client instance. -/// -/// The Polkadot service supports multiple different runtimes (Westend, Polkadot itself, etc). As each runtime has a -/// specialized client, we need to hide them behind a trait. This is this trait. -/// -/// When wanting to work with the inner client, you need to use `execute_with`. -/// -/// See [`ExecuteWithClient`](trait.ExecuteWithClient.html) for more information. -pub trait ClientHandle { - /// Execute the given something with the client. - fn execute_with(&self, t: T) -> T::Output; -} - -/// Unwraps a [`Client`] into the concrete client type and -/// provides the concrete runtime as `runtime`. -macro_rules! with_client { - { - // The client instance that should be unwrapped. - $self:expr, - // The name that the unwrapped client will have. - $client:ident, - // NOTE: Using an expression here is fine since blocks are also expressions. - $code:expr - } => { - match $self { - #[cfg(feature = "polkadot")] - Client::Polkadot($client) => { - #[allow(unused_imports)] - use polkadot_runtime as runtime; - - $code - }, - #[cfg(feature = "westend")] - Client::Westend($client) => { - #[allow(unused_imports)] - use westend_runtime as runtime; - - $code - }, - #[cfg(feature = "kusama")] - Client::Kusama($client) => { - #[allow(unused_imports)] - use kusama_runtime as runtime; - - $code - }, - #[cfg(feature = "rococo")] - Client::Rococo($client) => { - #[allow(unused_imports)] - use rococo_runtime as runtime; - - $code - }, - } - } -} -// Make the macro available only within this crate. -pub(crate) use with_client; - -/// A client instance of Polkadot. -/// -/// See [`ExecuteWithClient`] for more information. -#[derive(Clone)] -pub enum Client { - #[cfg(feature = "polkadot")] - Polkadot(Arc>), - #[cfg(feature = "westend")] - Westend(Arc>), - #[cfg(feature = "kusama")] - Kusama(Arc>), - #[cfg(feature = "rococo")] - Rococo(Arc>), -} - -impl ClientHandle for Client { - fn execute_with(&self, t: T) -> T::Output { - with_client! { - self, - client, - { - T::execute_with_client::<_, _, FullBackend>(t, client.clone()) - } - } - } -} - -impl UsageProvider for Client { - fn usage_info(&self) -> sc_client_api::ClientInfo { - with_client! { - self, - client, - { - client.usage_info() - } - } - } -} - -impl sc_client_api::BlockBackend for Client { - fn block_body( - &self, - hash: ::Hash, - ) -> sp_blockchain::Result::Extrinsic>>> { - with_client! { - self, - client, - { - client.block_body(hash) - } - } - } - - fn block( - &self, - hash: ::Hash, - ) -> sp_blockchain::Result>> { - with_client! { - self, - client, - { - client.block(hash) - } - } - } - - fn block_status(&self, hash: ::Hash) -> sp_blockchain::Result { - with_client! { - self, - client, - { - client.block_status(hash) - } - } - } - - fn justifications( - &self, - hash: ::Hash, - ) -> sp_blockchain::Result> { - with_client! { - self, - client, - { - client.justifications(hash) - } - } - } - - fn block_hash( - &self, - number: NumberFor, - ) -> sp_blockchain::Result::Hash>> { - with_client! { - self, - client, - { - client.block_hash(number) - } - } - } - - fn indexed_transaction( - &self, - id: ::Hash, - ) -> sp_blockchain::Result>> { - with_client! { - self, - client, - { - client.indexed_transaction(id) - } - } - } - - fn block_indexed_body( - &self, - id: ::Hash, - ) -> sp_blockchain::Result>>> { - with_client! { - self, - client, - { - client.block_indexed_body(id) - } - } - } - - fn requires_full_sync(&self) -> bool { - with_client! { - self, - client, - { - client.requires_full_sync() - } - } - } -} - -impl sc_client_api::StorageProvider for Client { - fn storage( - &self, - hash: ::Hash, - key: &StorageKey, - ) -> sp_blockchain::Result> { - with_client! { - self, - client, - { - client.storage(hash, key) - } - } - } - - fn storage_hash( - &self, - hash: ::Hash, - key: &StorageKey, - ) -> sp_blockchain::Result::Hash>> { - with_client! { - self, - client, - { - client.storage_hash(hash, key) - } - } - } - - fn storage_pairs( - &self, - hash: ::Hash, - key_prefix: Option<&StorageKey>, - start_key: Option<&StorageKey>, - ) -> sp_blockchain::Result< - PairsIter<>::State, Block>, - > { - with_client! { - self, - client, - { - client.storage_pairs(hash, key_prefix, start_key) - } - } - } - - fn storage_keys( - &self, - hash: ::Hash, - prefix: Option<&StorageKey>, - start_key: Option<&StorageKey>, - ) -> sp_blockchain::Result< - KeysIter<>::State, Block>, - > { - with_client! { - self, - client, - { - client.storage_keys(hash, prefix, start_key) - } - } - } - - fn child_storage( - &self, - hash: ::Hash, - child_info: &ChildInfo, - key: &StorageKey, - ) -> sp_blockchain::Result> { - with_client! { - self, - client, - { - client.child_storage(hash, child_info, key) - } - } - } - - fn child_storage_keys( - &self, - hash: ::Hash, - child_info: ChildInfo, - prefix: Option<&StorageKey>, - start_key: Option<&StorageKey>, - ) -> sp_blockchain::Result< - KeysIter<>::State, Block>, - > { - with_client! { - self, - client, - { - client.child_storage_keys(hash, child_info, prefix, start_key) - } - } - } - - fn child_storage_hash( - &self, - hash: ::Hash, - child_info: &ChildInfo, - key: &StorageKey, - ) -> sp_blockchain::Result::Hash>> { - with_client! { - self, - client, - { - client.child_storage_hash(hash, child_info, key) - } - } - } -} - -impl sp_blockchain::HeaderBackend for Client { - fn header(&self, hash: Hash) -> sp_blockchain::Result> { - with_client! { - self, - client, - { - client.header(hash) - } - } - } - - fn info(&self) -> sp_blockchain::Info { - with_client! { - self, - client, - { - client.info() - } - } - } - - fn status(&self, hash: Hash) -> sp_blockchain::Result { - with_client! { - self, - client, - { - client.status(hash) - } - } - } - - fn number(&self, hash: Hash) -> sp_blockchain::Result> { - with_client! { - self, - client, - { - client.number(hash) - } - } - } - - fn hash(&self, number: BlockNumber) -> sp_blockchain::Result> { - with_client! { - self, - client, - { - client.hash(number) - } - } - } -} diff --git a/node/service/Cargo.toml b/node/service/Cargo.toml index 34b69d045753..91eb139d67f3 100644 --- a/node/service/Cargo.toml +++ b/node/service/Cargo.toml @@ -37,7 +37,8 @@ sp-authority-discovery = { git = "https://github.com/paritytech/substrate", bran consensus_common = { package = "sp-consensus", git = "https://github.com/paritytech/substrate", branch = "master" } beefy-primitives = { package = "sp-consensus-beefy", git = "https://github.com/paritytech/substrate", branch = "master" } grandpa_primitives = { package = "sp-consensus-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } @@ -49,22 +50,27 @@ sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master sp-session = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-storage = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-weights = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master" } # Substrate Pallets pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master" } pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master" } pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } # Substrate Other frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" } prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate", branch = "master" } frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } # External Crates futures = "0.3.21" @@ -76,15 +82,16 @@ thiserror = "1.0.31" kvdb = "0.13.0" kvdb-rocksdb = { version = "0.19.0", optional = true } parity-db = { version = "0.4.8", optional = true } +codec = { package = "parity-scale-codec", version = "3.6.1" } async-trait = "0.1.57" lru = "0.9" log = "0.4.17" # Polkadot +polkadot-core-primitives = { path = "../../core-primitives" } polkadot-node-core-parachains-inherent = { path = "../core/parachains-inherent" } polkadot-overseer = { path = "../overseer" } -polkadot-client = { path = "../client", default-features = false, optional = true } polkadot-parachain = { path = "../../parachain" } polkadot-primitives = { path = "../../primitives" } polkadot-node-primitives = { path = "../primitives" } @@ -94,6 +101,7 @@ polkadot-node-subsystem-util = { path = "../subsystem-util" } polkadot-node-subsystem-types = { path = "../subsystem-types" } polkadot-runtime-parachains = { path = "../../runtime/parachains" } polkadot-node-network-protocol = { path = "../network/protocol" } +polkadot-runtime-common = { path = "../../runtime/common" } # Polkadot Runtime Constants polkadot-runtime-constants = { path = "../../runtime/polkadot/constants", optional = true } @@ -138,7 +146,7 @@ assert_matches = "1.5.0" tempfile = "3.2" [features] -default = ["db", "full-node", "polkadot-native"] +default = ["db", "full-node"] db = [ "service/rocksdb" @@ -150,7 +158,6 @@ full-node = [ "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", - "polkadot-client", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-gossip-support", @@ -174,10 +181,10 @@ full-node = [ # Configure the native runtimes to use. Polkadot is enabled by default. # # Validators require the native runtime currently -polkadot-native = [ "polkadot-runtime", "polkadot-runtime-constants", "polkadot-client/polkadot" ] -kusama-native = [ "kusama-runtime", "kusama-runtime-constants", "polkadot-client/kusama" ] -westend-native = [ "westend-runtime", "westend-runtime-constants", "polkadot-client/westend" ] -rococo-native = [ "rococo-runtime", "rococo-runtime-constants", "polkadot-client/rococo" ] +polkadot-native = [ "polkadot-runtime", "polkadot-runtime-constants" ] +kusama-native = [ "kusama-runtime", "kusama-runtime-constants" ] +westend-native = [ "westend-runtime", "westend-runtime-constants" ] +rococo-native = [ "rococo-runtime", "rococo-runtime-constants" ] runtime-benchmarks = [ "polkadot-runtime?/runtime-benchmarks", @@ -202,7 +209,6 @@ fast-runtime = [ malus = ["full-node"] runtime-metrics = [ - "polkadot-client/runtime-metrics", "rococo-runtime?/runtime-metrics", "westend-runtime?/runtime-metrics", "kusama-runtime?/runtime-metrics", diff --git a/node/service/src/benchmarking.rs b/node/service/src/benchmarking.rs new file mode 100644 index 000000000000..7d2bae88e5f3 --- /dev/null +++ b/node/service/src/benchmarking.rs @@ -0,0 +1,430 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Code related to benchmarking a [`crate::Client`]. + +use codec::Encode; +use polkadot_primitives::AccountId; +use sc_client_api::UsageProvider; +use sp_core::{Pair, H256}; +use sp_keyring::Sr25519Keyring; +use sp_runtime::OpaqueExtrinsic; + +use crate::*; + +macro_rules! identify_chain { + ( + $chain:expr, + $nonce:ident, + $current_block:ident, + $period:ident, + $genesis:ident, + $signer:ident, + $generic_code:expr $(,)* + ) => { + match $chain { + Chain::Polkadot => { + #[cfg(feature = "polkadot-native")] + { + use polkadot_runtime as runtime; + + let call = $generic_code; + + Ok(polkadot_sign_call(call, $nonce, $current_block, $period, $genesis, $signer)) + } + + #[cfg(not(feature = "polkadot-native"))] + { + Err("`polkadot-native` feature not enabled") + } + }, + Chain::Kusama => { + #[cfg(feature = "kusama-native")] + { + use kusama_runtime as runtime; + + let call = $generic_code; + + Ok(kusama_sign_call(call, $nonce, $current_block, $period, $genesis, $signer)) + } + + #[cfg(not(feature = "kusama-native"))] + { + Err("`kusama-native` feature not enabled") + } + }, + Chain::Rococo => { + #[cfg(feature = "rococo-native")] + { + use rococo_runtime as runtime; + + let call = $generic_code; + + Ok(rococo_sign_call(call, $nonce, $current_block, $period, $genesis, $signer)) + } + + #[cfg(not(feature = "rococo-native"))] + { + Err("`rococo-native` feature not enabled") + } + }, + Chain::Westend => { + #[cfg(feature = "westend-native")] + { + use westend_runtime as runtime; + + let call = $generic_code; + + Ok(westend_sign_call(call, $nonce, $current_block, $period, $genesis, $signer)) + } + + #[cfg(not(feature = "westend-native"))] + { + Err("`westend-native` feature not enabled") + } + }, + Chain::Unknown => Err("Unknown chain"), + } + }; +} + +/// Generates `System::Remark` extrinsics for the benchmarks. +/// +/// Note: Should only be used for benchmarking. +pub struct RemarkBuilder { + client: Arc, + chain: Chain, +} + +impl RemarkBuilder { + /// Creates a new [`Self`] from the given client. + pub fn new(client: Arc, chain: Chain) -> Self { + Self { client, chain } + } +} + +impl frame_benchmarking_cli::ExtrinsicBuilder for RemarkBuilder { + fn pallet(&self) -> &str { + "system" + } + + fn extrinsic(&self) -> &str { + "remark" + } + + fn build(&self, nonce: u32) -> std::result::Result { + let period = polkadot_runtime_common::BlockHashCount::get() + .checked_next_power_of_two() + .map(|c| c / 2) + .unwrap_or(2) as u64; + let genesis = self.client.usage_info().chain.best_hash; + let signer = Sr25519Keyring::Bob.pair(); + let current_block = 0; + + identify_chain! { + self.chain, + nonce, + current_block, + period, + genesis, + signer, + { + runtime::RuntimeCall::System( + runtime::SystemCall::remark { remark: vec![] } + ) + }, + } + } +} + +/// Generates `Balances::TransferKeepAlive` extrinsics for the benchmarks. +/// +/// Note: Should only be used for benchmarking. +pub struct TransferKeepAliveBuilder { + client: Arc, + dest: AccountId, + chain: Chain, +} + +impl TransferKeepAliveBuilder { + /// Creates a new [`Self`] from the given client and the arguments for the extrinsics. + pub fn new(client: Arc, dest: AccountId, chain: Chain) -> Self { + Self { client, dest, chain } + } +} + +impl frame_benchmarking_cli::ExtrinsicBuilder for TransferKeepAliveBuilder { + fn pallet(&self) -> &str { + "balances" + } + + fn extrinsic(&self) -> &str { + "transfer_keep_alive" + } + + fn build(&self, nonce: u32) -> std::result::Result { + let signer = Sr25519Keyring::Bob.pair(); + let period = polkadot_runtime_common::BlockHashCount::get() + .checked_next_power_of_two() + .map(|c| c / 2) + .unwrap_or(2) as u64; + let genesis = self.client.usage_info().chain.best_hash; + let current_block = 0; + + identify_chain! { + self.chain, + nonce, + current_block, + period, + genesis, + signer, + { + runtime::RuntimeCall::Balances(runtime::BalancesCall::transfer_keep_alive { + dest: self.dest.clone().into(), + value: runtime::ExistentialDeposit::get(), + }) + }, + } + } +} + +#[cfg(feature = "polkadot-native")] +fn polkadot_sign_call( + call: polkadot_runtime::RuntimeCall, + nonce: u32, + current_block: u64, + period: u64, + genesis: H256, + acc: sp_core::sr25519::Pair, +) -> OpaqueExtrinsic { + use polkadot_runtime as runtime; + + let extra: runtime::SignedExtra = ( + frame_system::CheckNonZeroSender::::new(), + frame_system::CheckSpecVersion::::new(), + frame_system::CheckTxVersion::::new(), + frame_system::CheckGenesis::::new(), + frame_system::CheckMortality::::from(sp_runtime::generic::Era::mortal( + period, + current_block, + )), + frame_system::CheckNonce::::from(nonce), + frame_system::CheckWeight::::new(), + pallet_transaction_payment::ChargeTransactionPayment::::from(0), + polkadot_runtime_common::claims::PrevalidateAttests::::new(), + ); + + let payload = runtime::SignedPayload::from_raw( + call.clone(), + extra.clone(), + ( + (), + runtime::VERSION.spec_version, + runtime::VERSION.transaction_version, + genesis, + genesis, + (), + (), + (), + (), + ), + ); + + let signature = payload.using_encoded(|p| acc.sign(p)); + runtime::UncheckedExtrinsic::new_signed( + call, + sp_runtime::AccountId32::from(acc.public()).into(), + polkadot_core_primitives::Signature::Sr25519(signature.clone()), + extra, + ) + .into() +} + +#[cfg(feature = "westend-native")] +fn westend_sign_call( + call: westend_runtime::RuntimeCall, + nonce: u32, + current_block: u64, + period: u64, + genesis: H256, + acc: sp_core::sr25519::Pair, +) -> OpaqueExtrinsic { + use westend_runtime as runtime; + + let extra: runtime::SignedExtra = ( + frame_system::CheckNonZeroSender::::new(), + frame_system::CheckSpecVersion::::new(), + frame_system::CheckTxVersion::::new(), + frame_system::CheckGenesis::::new(), + frame_system::CheckMortality::::from(sp_runtime::generic::Era::mortal( + period, + current_block, + )), + frame_system::CheckNonce::::from(nonce), + frame_system::CheckWeight::::new(), + pallet_transaction_payment::ChargeTransactionPayment::::from(0), + ); + + let payload = runtime::SignedPayload::from_raw( + call.clone(), + extra.clone(), + ( + (), + runtime::VERSION.spec_version, + runtime::VERSION.transaction_version, + genesis, + genesis, + (), + (), + (), + ), + ); + + let signature = payload.using_encoded(|p| acc.sign(p)); + runtime::UncheckedExtrinsic::new_signed( + call, + sp_runtime::AccountId32::from(acc.public()).into(), + polkadot_core_primitives::Signature::Sr25519(signature.clone()), + extra, + ) + .into() +} + +#[cfg(feature = "kusama-native")] +fn kusama_sign_call( + call: kusama_runtime::RuntimeCall, + nonce: u32, + current_block: u64, + period: u64, + genesis: H256, + acc: sp_core::sr25519::Pair, +) -> OpaqueExtrinsic { + use kusama_runtime as runtime; + + let extra: runtime::SignedExtra = ( + frame_system::CheckNonZeroSender::::new(), + frame_system::CheckSpecVersion::::new(), + frame_system::CheckTxVersion::::new(), + frame_system::CheckGenesis::::new(), + frame_system::CheckMortality::::from(sp_runtime::generic::Era::mortal( + period, + current_block, + )), + frame_system::CheckNonce::::from(nonce), + frame_system::CheckWeight::::new(), + pallet_transaction_payment::ChargeTransactionPayment::::from(0), + ); + + let payload = runtime::SignedPayload::from_raw( + call.clone(), + extra.clone(), + ( + (), + runtime::VERSION.spec_version, + runtime::VERSION.transaction_version, + genesis, + genesis, + (), + (), + (), + ), + ); + + let signature = payload.using_encoded(|p| acc.sign(p)); + runtime::UncheckedExtrinsic::new_signed( + call, + sp_runtime::AccountId32::from(acc.public()).into(), + polkadot_core_primitives::Signature::Sr25519(signature.clone()), + extra, + ) + .into() +} + +#[cfg(feature = "rococo-native")] +fn rococo_sign_call( + call: rococo_runtime::RuntimeCall, + nonce: u32, + current_block: u64, + period: u64, + genesis: H256, + acc: sp_core::sr25519::Pair, +) -> OpaqueExtrinsic { + use rococo_runtime as runtime; + + let extra: runtime::SignedExtra = ( + frame_system::CheckNonZeroSender::::new(), + frame_system::CheckSpecVersion::::new(), + frame_system::CheckTxVersion::::new(), + frame_system::CheckGenesis::::new(), + frame_system::CheckMortality::::from(sp_runtime::generic::Era::mortal( + period, + current_block, + )), + frame_system::CheckNonce::::from(nonce), + frame_system::CheckWeight::::new(), + pallet_transaction_payment::ChargeTransactionPayment::::from(0), + ); + + let payload = runtime::SignedPayload::from_raw( + call.clone(), + extra.clone(), + ( + (), + runtime::VERSION.spec_version, + runtime::VERSION.transaction_version, + genesis, + genesis, + (), + (), + (), + ), + ); + + let signature = payload.using_encoded(|p| acc.sign(p)); + runtime::UncheckedExtrinsic::new_signed( + call, + sp_runtime::AccountId32::from(acc.public()).into(), + polkadot_core_primitives::Signature::Sr25519(signature.clone()), + extra, + ) + .into() +} + +/// Generates inherent data for benchmarking Polkadot, Kusama, Westend and Rococo. +/// +/// Not to be used outside of benchmarking since it returns mocked values. +pub fn benchmark_inherent_data( + header: polkadot_core_primitives::Header, +) -> std::result::Result { + use sp_inherents::InherentDataProvider; + let mut inherent_data = sp_inherents::InherentData::new(); + + // Assume that all runtimes have the `timestamp` pallet. + let d = std::time::Duration::from_millis(0); + let timestamp = sp_timestamp::InherentDataProvider::new(d.into()); + futures::executor::block_on(timestamp.provide_inherent_data(&mut inherent_data))?; + + let para_data = polkadot_primitives::InherentData { + bitfields: Vec::new(), + backed_candidates: Vec::new(), + disputes: Vec::new(), + parent_header: header, + }; + + inherent_data.put_data(polkadot_primitives::PARACHAINS_INHERENT_IDENTIFIER, ¶_data)?; + + Ok(inherent_data) +} diff --git a/node/service/src/chain_spec.rs b/node/service/src/chain_spec.rs index 9e788bc8326f..9d76f9c8ce61 100644 --- a/node/service/src/chain_spec.rs +++ b/node/service/src/chain_spec.rs @@ -23,6 +23,12 @@ use kusama_runtime as kusama; #[cfg(feature = "kusama-native")] use kusama_runtime_constants::currency::UNITS as KSM; use pallet_im_online::sr25519::AuthorityId as ImOnlineId; +#[cfg(any( + feature = "polkadot-native", + feature = "kusama-native", + feature = "westend-native", + feature = "rococo-native" +))] use pallet_staking::Forcing; use polkadot_primitives::{AccountId, AccountPublic, AssignmentId, ValidatorId}; #[cfg(feature = "polkadot-native")] @@ -36,10 +42,30 @@ use sp_consensus_babe::AuthorityId as BabeId; use rococo_runtime as rococo; #[cfg(feature = "rococo-native")] use rococo_runtime_constants::currency::UNITS as ROC; -use sc_chain_spec::{ChainSpecExtension, ChainType}; +use sc_chain_spec::ChainSpecExtension; +#[cfg(any( + feature = "polkadot-native", + feature = "kusama-native", + feature = "westend-native", + feature = "rococo-native" +))] +use sc_chain_spec::ChainType; use serde::{Deserialize, Serialize}; use sp_core::{sr25519, Pair, Public}; -use sp_runtime::{traits::IdentifyAccount, Perbill}; +use sp_runtime::traits::IdentifyAccount; +#[cfg(any( + feature = "polkadot-native", + feature = "kusama-native", + feature = "westend-native", + feature = "rococo-native" +))] +use sp_runtime::Perbill; +#[cfg(any( + feature = "polkadot-native", + feature = "kusama-native", + feature = "westend-native", + feature = "rococo-native" +))] use telemetry::TelemetryEndpoints; #[cfg(feature = "westend-native")] use westend_runtime as westend; @@ -56,6 +82,12 @@ const WESTEND_STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/ const ROCOCO_STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/"; #[cfg(feature = "rococo-native")] const VERSI_STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/"; +#[cfg(any( + feature = "polkadot-native", + feature = "kusama-native", + feature = "westend-native", + feature = "rococo-native" +))] const DEFAULT_PROTOCOL_ID: &str = "dot"; /// Node `ChainSpec` extensions. @@ -1271,6 +1303,12 @@ pub fn get_authority_keys_from_seed_no_beefy( ) } +#[cfg(any( + feature = "polkadot-native", + feature = "kusama-native", + feature = "westend-native", + feature = "rococo-native" +))] fn testnet_accounts() -> Vec { vec![ get_account_id_from_seed::("Alice"), @@ -1667,7 +1705,7 @@ pub fn polkadot_development_config() -> Result { Ok(PolkadotChainSpec::from_genesis( "Development", - "dev", + "polkadot_dev", ChainType::Development, move || polkadot_development_config_genesis(wasm_binary), vec![], diff --git a/node/service/src/fake_runtime_api.rs b/node/service/src/fake_runtime_api.rs new file mode 100644 index 000000000000..f4864d5c2010 --- /dev/null +++ b/node/service/src/fake_runtime_api.rs @@ -0,0 +1,398 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Provides "fake" runtime api implementations +//! +//! These are used to provide a type that implements these runtime apis without requiring to import the native runtimes. + +use beefy_primitives::crypto::{AuthorityId as BeefyId, Signature as BeefySignature}; +use grandpa_primitives::AuthorityId as GrandpaId; +use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo}; +use polkadot_primitives::{ + runtime_api, slashing, AccountId, AuthorityDiscoveryId, Balance, Block, BlockNumber, + CandidateCommitments, CandidateEvent, CandidateHash, CommittedCandidateReceipt, CoreState, + DisputeState, ExecutorParams, GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, + InboundHrmpMessage, Nonce, OccupiedCoreAssumption, PersistedValidationData, PvfCheckStatement, + ScrapedOnChainVotes, SessionIndex, SessionInfo, ValidationCode, ValidationCodeHash, + ValidatorId, ValidatorIndex, ValidatorSignature, +}; +use sp_core::OpaqueMetadata; +use sp_runtime::{ + traits::Block as BlockT, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, +}; +use sp_version::RuntimeVersion; +use sp_weights::Weight; +use std::collections::BTreeMap; + +sp_api::decl_runtime_apis! { + /// This runtime api is only implemented for the test runtime! + pub trait GetLastTimestamp { + /// Returns the last timestamp of a runtime. + fn get_last_timestamp() -> u64; + } +} + +struct Runtime; + +sp_api::impl_runtime_apis! { + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + unimplemented!() + } + + fn execute_block(_: Block) { + unimplemented!() + } + + fn initialize_block(_: &::Header) { + unimplemented!() + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + unimplemented!() + } + + fn metadata_at_version(_: u32) -> Option { + unimplemented!() + } + + fn metadata_versions() -> Vec { + unimplemented!() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(_: ::Extrinsic) -> ApplyExtrinsicResult { + unimplemented!() + } + + fn finalize_block() -> ::Header { + unimplemented!() + } + + fn inherent_extrinsics(_: sp_inherents::InherentData) -> Vec<::Extrinsic> { + unimplemented!() + } + + fn check_inherents( + _: Block, + _: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + unimplemented!() + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + _: TransactionSource, + _: ::Extrinsic, + _: ::Hash, + ) -> TransactionValidity { + unimplemented!() + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(_: &::Header) { + unimplemented!() + } + } + + impl runtime_api::ParachainHost for Runtime { + fn validators() -> Vec { + unimplemented!() + } + + fn validator_groups() -> (Vec>, GroupRotationInfo) { + unimplemented!() + } + + fn availability_cores() -> Vec> { + unimplemented!() + } + + fn persisted_validation_data(_: ParaId, _: OccupiedCoreAssumption) + -> Option> { + unimplemented!() + } + + fn assumed_validation_data( + _: ParaId, + _: Hash, + ) -> Option<(PersistedValidationData, ValidationCodeHash)> { + unimplemented!() + } + + fn check_validation_outputs( + _: ParaId, + _: CandidateCommitments, + ) -> bool { + unimplemented!() + } + + fn session_index_for_child() -> SessionIndex { + unimplemented!() + } + + fn validation_code(_: ParaId, _: OccupiedCoreAssumption) + -> Option { + unimplemented!() + } + + fn candidate_pending_availability(_: ParaId) -> Option> { + unimplemented!() + } + + fn candidate_events() -> Vec> { + unimplemented!() + } + + fn session_info(_: SessionIndex) -> Option { + unimplemented!() + } + + fn session_executor_params(_: SessionIndex) -> Option { + unimplemented!() + } + + fn dmq_contents(_: ParaId) -> Vec> { + unimplemented!() + } + + fn inbound_hrmp_channels_contents( + _: ParaId + ) -> BTreeMap>> { + unimplemented!() + } + + fn validation_code_by_hash(_: ValidationCodeHash) -> Option { + unimplemented!() + } + + fn on_chain_votes() -> Option> { + unimplemented!() + } + + fn submit_pvf_check_statement( + _: PvfCheckStatement, + _: ValidatorSignature, + ) { + unimplemented!() + } + + fn pvfs_require_precheck() -> Vec { + unimplemented!() + } + + fn validation_code_hash(_: ParaId, _: OccupiedCoreAssumption) + -> Option + { + unimplemented!() + } + + fn disputes() -> Vec<(SessionIndex, CandidateHash, DisputeState)> { + unimplemented!() + } + + fn unapplied_slashes( + ) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { + unimplemented!() + } + + fn key_ownership_proof( + _: ValidatorId, + ) -> Option { + unimplemented!() + } + + fn submit_report_dispute_lost( + _: slashing::DisputeProof, + _: slashing::OpaqueKeyOwnershipProof, + ) -> Option<()> { + unimplemented!() + } + } + + impl beefy_primitives::BeefyApi for Runtime { + fn beefy_genesis() -> Option { + unimplemented!() + } + + fn validator_set() -> Option> { + unimplemented!() + } + + fn submit_report_equivocation_unsigned_extrinsic( + _: beefy_primitives::EquivocationProof< + BlockNumber, + BeefyId, + BeefySignature, + >, + _: beefy_primitives::OpaqueKeyOwnershipProof, + ) -> Option<()> { + unimplemented!() + } + + fn generate_key_ownership_proof( + _: beefy_primitives::ValidatorSetId, + _: BeefyId, + ) -> Option { + unimplemented!() + } + } + + impl sp_mmr_primitives::MmrApi for Runtime { + fn mmr_root() -> Result { + unimplemented!() + } + + fn mmr_leaf_count() -> Result { + unimplemented!() + } + + fn generate_proof( + _: Vec, + _: Option, + ) -> Result<(Vec, sp_mmr_primitives::Proof), sp_mmr_primitives::Error> { + unimplemented!() + } + + fn verify_proof(_: Vec, _: sp_mmr_primitives::Proof) + -> Result<(), sp_mmr_primitives::Error> + { + unimplemented!() + } + + fn verify_proof_stateless( + _: Hash, + _: Vec, + _: sp_mmr_primitives::Proof + ) -> Result<(), sp_mmr_primitives::Error> { + unimplemented!() + } + } + + impl grandpa_primitives::GrandpaApi for Runtime { + fn grandpa_authorities() -> Vec<(GrandpaId, u64)> { + unimplemented!() + } + + fn current_set_id() -> grandpa_primitives::SetId { + unimplemented!() + } + + fn submit_report_equivocation_unsigned_extrinsic( + _: grandpa_primitives::EquivocationProof< + ::Hash, + sp_runtime::traits::NumberFor, + >, + _: grandpa_primitives::OpaqueKeyOwnershipProof, + ) -> Option<()> { + unimplemented!() + } + + fn generate_key_ownership_proof( + _: grandpa_primitives::SetId, + _: grandpa_primitives::AuthorityId, + ) -> Option { + unimplemented!() + } + } + + impl sp_consensus_babe::BabeApi for Runtime { + fn configuration() -> sp_consensus_babe::BabeConfiguration { + unimplemented!() + } + + fn current_epoch_start() -> sp_consensus_babe::Slot { + unimplemented!() + } + + fn current_epoch() -> sp_consensus_babe::Epoch { + unimplemented!() + } + + fn next_epoch() -> sp_consensus_babe::Epoch { + unimplemented!() + } + + fn generate_key_ownership_proof( + _: sp_consensus_babe::Slot, + _: sp_consensus_babe::AuthorityId, + ) -> Option { + unimplemented!() + } + + fn submit_report_equivocation_unsigned_extrinsic( + _: sp_consensus_babe::EquivocationProof<::Header>, + _: sp_consensus_babe::OpaqueKeyOwnershipProof, + ) -> Option<()> { + unimplemented!() + } + } + + impl sp_authority_discovery::AuthorityDiscoveryApi for Runtime { + fn authorities() -> Vec { + unimplemented!() + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(_: Option>) -> Vec { + unimplemented!() + } + + fn decode_session_keys( + _: Vec, + ) -> Option, sp_core::crypto::KeyTypeId)>> { + unimplemented!() + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(_: AccountId) -> Nonce { + unimplemented!() + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi< + Block, + Balance, + > for Runtime { + fn query_info(_: ::Extrinsic, _: u32) -> RuntimeDispatchInfo { + unimplemented!() + } + fn query_fee_details(_: ::Extrinsic, _: u32) -> FeeDetails { + unimplemented!() + } + fn query_weight_to_fee(_: Weight) -> Balance { + unimplemented!() + } + fn query_length_to_fee(_: u32) -> Balance { + unimplemented!() + } + } + + impl crate::fake_runtime_api::GetLastTimestamp for Runtime { + fn get_last_timestamp() -> u64 { + unimplemented!() + } + } +} diff --git a/node/service/src/lib.rs b/node/service/src/lib.rs index c48ae9ea2ff5..4e22736aeba0 100644 --- a/node/service/src/lib.rs +++ b/node/service/src/lib.rs @@ -18,7 +18,15 @@ #![deny(unused_results)] +#[cfg(any( + feature = "polkadot-native", + feature = "kusama-native", + feature = "westend-native", + feature = "rococo-native" +))] +pub mod benchmarking; pub mod chain_spec; +mod fake_runtime_api; mod grandpa_support; mod parachains_db; mod relay_chain_selection; @@ -80,34 +88,15 @@ use telemetry::TelemetryWorker; #[cfg(feature = "full-node")] use telemetry::{Telemetry, TelemetryWorkerHandle}; -#[cfg(feature = "rococo-native")] -pub use polkadot_client::RococoExecutorDispatch; - -#[cfg(feature = "westend-native")] -pub use polkadot_client::WestendExecutorDispatch; - -#[cfg(feature = "kusama-native")] -pub use polkadot_client::KusamaExecutorDispatch; - -#[cfg(feature = "polkadot-native")] -pub use polkadot_client::PolkadotExecutorDispatch; - pub use chain_spec::{KusamaChainSpec, PolkadotChainSpec, RococoChainSpec, WestendChainSpec}; -pub use consensus_common::{block_validation::Chain, Proposal, SelectChain}; +pub use consensus_common::{Proposal, SelectChain}; use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; use mmr_gadget::MmrGadget; -#[cfg(feature = "full-node")] -pub use polkadot_client::{ - AbstractClient, Client, ClientHandle, ExecuteWithClient, FullBackend, FullClient, - RuntimeApiCollection, -}; pub use polkadot_primitives::{Block, BlockId, BlockNumber, CollatorPair, Hash, Id as ParaId}; pub use sc_client_api::{Backend, CallExecutor, ExecutionStrategy}; pub use sc_consensus::{BlockImport, LongestChain}; pub use sc_executor::NativeExecutionDispatch; -use sc_executor::{ - HeapAllocStrategy, NativeElseWasmExecutor, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY, -}; +use sc_executor::{HeapAllocStrategy, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; pub use service::{ config::{DatabaseSource, PrometheusConfig}, ChainSpec, Configuration, Error as SubstrateServiceError, PruningMode, Role, RuntimeGenesis, @@ -130,6 +119,18 @@ pub use {rococo_runtime, rococo_runtime_constants}; #[cfg(feature = "westend-native")] pub use {westend_runtime, westend_runtime_constants}; +pub use fake_runtime_api::{GetLastTimestamp, RuntimeApi}; + +#[cfg(feature = "full-node")] +pub type FullBackend = service::TFullBackend; + +#[cfg(feature = "full-node")] +pub type FullClient = service::TFullClient< + Block, + RuntimeApi, + WasmExecutor<(sp_io::SubstrateHostFunctions, frame_benchmarking::benchmarking::HostFunctions)>, +>; + /// Provides the header and block number for a hash. /// /// Decouples `sc_client_api::Backend` and `sp_blockchain::HeaderBackend`. @@ -239,6 +240,21 @@ pub enum Error { NoRuntime, } +/// Identifies the variant of the chain. +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum Chain { + /// Polkadot. + Polkadot, + /// Kusama. + Kusama, + /// Rococo or one of its derivations. + Rococo, + /// Westend. + Westend, + /// Unknown chain? + Unknown, +} + /// Can be called for a `Configuration` to identify which network the configuration targets. pub trait IdentifyVariant { /// Returns if this is a configuration for the `Polkadot` network. @@ -261,6 +277,9 @@ pub trait IdentifyVariant { /// Returns true if this configuration is for a development network. fn is_dev(&self) -> bool; + + /// Identifies the variant of the chain. + fn identify_chain(&self) -> Chain; } impl IdentifyVariant for Box { @@ -285,6 +304,19 @@ impl IdentifyVariant for Box { fn is_dev(&self) -> bool { self.id().ends_with("dev") } + fn identify_chain(&self) -> Chain { + if self.is_polkadot() { + Chain::Polkadot + } else if self.is_kusama() { + Chain::Kusama + } else if self.is_westend() { + Chain::Westend + } else if self.is_rococo() || self.is_versi() || self.is_wococo() { + Chain::Rococo + } else { + Chain::Unknown + } + } } #[cfg(feature = "full-node")] @@ -340,55 +372,27 @@ fn jaeger_launch_collector_with_agent( #[cfg(feature = "full-node")] type FullSelectChain = relay_chain_selection::SelectRelayChain; #[cfg(feature = "full-node")] -type FullGrandpaBlockImport = - grandpa::GrandpaBlockImport< - FullBackend, - Block, - FullClient, - ChainSelection, - >; +type FullGrandpaBlockImport = + grandpa::GrandpaBlockImport; #[cfg(feature = "full-node")] -type FullBeefyBlockImport = - beefy::import::BeefyBlockImport< - Block, - FullBackend, - FullClient, - InnerBlockImport, - >; +type FullBeefyBlockImport = + beefy::import::BeefyBlockImport; #[cfg(feature = "full-node")] -struct Basics -where - RuntimeApi: ConstructRuntimeApi> - + Send - + Sync - + 'static, - RuntimeApi::RuntimeApi: - RuntimeApiCollection>, - ExecutorDispatch: NativeExecutionDispatch + 'static, -{ +struct Basics { task_manager: TaskManager, - client: Arc>, + client: Arc, backend: Arc, keystore_container: KeystoreContainer, telemetry: Option, } #[cfg(feature = "full-node")] -fn new_partial_basics( +fn new_partial_basics( config: &mut Configuration, jaeger_agent: Option, telemetry_worker_handle: Option, -) -> Result, Error> -where - RuntimeApi: ConstructRuntimeApi> - + Send - + Sync - + 'static, - RuntimeApi::RuntimeApi: - RuntimeApiCollection>, - ExecutorDispatch: NativeExecutionDispatch + 'static, -{ +) -> Result { let telemetry = config .telemetry_endpoints .clone() @@ -410,7 +414,7 @@ where .default_heap_pages .map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |h| HeapAllocStrategy::Static { extra_pages: h as _ }); - let wasm = WasmExecutor::builder() + let executor = WasmExecutor::builder() .with_execution_method(config.wasm_method) .with_onchain_heap_alloc_strategy(heap_pages) .with_offchain_heap_alloc_strategy(heap_pages) @@ -418,8 +422,6 @@ where .with_runtime_cache_size(config.runtime_cache_size) .build(); - let executor = NativeElseWasmExecutor::::new_with_wasm_executor(wasm); - let (client, backend, keystore_container, task_manager) = service::new_full_parts::( &config, @@ -445,20 +447,17 @@ where } #[cfg(feature = "full-node")] -fn new_partial( +fn new_partial( config: &mut Configuration, - Basics { task_manager, backend, client, keystore_container, telemetry }: Basics< - RuntimeApi, - ExecutorDispatch, - >, + Basics { task_manager, backend, client, keystore_container, telemetry }: Basics, select_chain: ChainSelection, ) -> Result< service::PartialComponents< - FullClient, + FullClient, FullBackend, ChainSelection, - sc_consensus::DefaultImportQueue>, - sc_transaction_pool::FullPool>, + sc_consensus::DefaultImportQueue, + sc_transaction_pool::FullPool, ( impl Fn( polkadot_rpc::DenyUnsafe, @@ -467,14 +466,10 @@ fn new_partial( ( babe::BabeBlockImport< Block, - FullClient, - FullBeefyBlockImport< - RuntimeApi, - ExecutorDispatch, - FullGrandpaBlockImport, - >, + FullClient, + FullBeefyBlockImport>, >, - grandpa::LinkHalf, ChainSelection>, + grandpa::LinkHalf, babe::BabeLink, beefy::BeefyVoterLinks, ), @@ -486,13 +481,6 @@ fn new_partial( Error, > where - RuntimeApi: ConstructRuntimeApi> - + Send - + Sync - + 'static, - RuntimeApi::RuntimeApi: - RuntimeApiCollection>, - ExecutorDispatch: NativeExecutionDispatch + 'static, ChainSelection: 'static + SelectChain, { let transaction_pool = sc_transaction_pool::BasicPool::new_full( @@ -616,9 +604,9 @@ where } #[cfg(feature = "full-node")] -pub struct NewFull { +pub struct NewFull { pub task_manager: TaskManager, - pub client: C, + pub client: Arc, pub overseer_handle: Option, pub network: Arc::Hash>>, pub sync_service: Arc>, @@ -626,22 +614,6 @@ pub struct NewFull { pub backend: Arc, } -#[cfg(feature = "full-node")] -impl NewFull { - /// Convert the client type using the given `func`. - pub fn with_client(self, func: impl FnOnce(C) -> NC) -> NewFull { - NewFull { - client: func(self.client), - task_manager: self.task_manager, - overseer_handle: self.overseer_handle, - network: self.network, - sync_service: self.sync_service, - rpc_handlers: self.rpc_handlers, - backend: self.backend, - } - } -} - /// Is this node a collator? #[cfg(feature = "full-node")] #[derive(Clone)] @@ -685,7 +657,7 @@ pub const AVAILABILITY_CONFIG: AvailabilityConfig = AvailabilityConfig { /// regardless of the role the node has. The relay chain selection (longest or disputes-aware) is /// still determined based on the role of the node. Likewise for authority discovery. #[cfg(feature = "full-node")] -pub fn new_full( +pub fn new_full( mut config: Configuration, is_collator: IsCollator, grandpa_pause: Option<(u32, u32)>, @@ -698,15 +670,8 @@ pub fn new_full( overseer_message_channel_capacity_override: Option, _malus_finality_delay: Option, hwbench: Option, -) -> Result>>, Error> +) -> Result where - RuntimeApi: ConstructRuntimeApi> - + Send - + Sync - + 'static, - RuntimeApi::RuntimeApi: - RuntimeApiCollection>, - ExecutorDispatch: NativeExecutionDispatch + 'static, OverseerGenerator: OverseerGen, { use polkadot_node_network_protocol::request_response::IncomingRequest; @@ -743,11 +708,7 @@ where let disable_grandpa = config.disable_grandpa; let name = config.network.node_name.clone(); - let basics = new_partial_basics::( - &mut config, - jaeger_agent, - telemetry_worker_handle, - )?; + let basics = new_partial_basics(&mut config, jaeger_agent, telemetry_worker_handle)?; let prometheus_registry = config.prometheus_registry().cloned(); @@ -783,11 +744,7 @@ where import_queue, transaction_pool, other: (rpc_extensions_builder, import_setup, rpc_setup, slot_duration, mut telemetry), - } = new_partial::>( - &mut config, - basics, - select_chain, - )?; + } = new_partial::>(&mut config, basics, select_chain)?; let shared_voter_state = rpc_setup; let auth_disc_publish_non_global_ips = config.network.allow_non_globals_in_dht; @@ -1003,7 +960,7 @@ where let overseer_handle = if let Some(authority_discovery_service) = authority_discovery_service { let (overseer, overseer_handle) = overseer_gen - .generate::>( + .generate::( overseer_connector, OverseerGenArgs { keystore, @@ -1259,27 +1216,19 @@ where #[cfg(feature = "full-node")] macro_rules! chain_ops { - ($config:expr, $jaeger_agent:expr, $telemetry_worker_handle:expr; $scope:ident, $executor:ident, $variant:ident) => {{ + ($config:expr, $jaeger_agent:expr, $telemetry_worker_handle:expr) => {{ let telemetry_worker_handle = $telemetry_worker_handle; let jaeger_agent = $jaeger_agent; let mut config = $config; - let basics = new_partial_basics::<$scope::RuntimeApi, $executor>( - config, - jaeger_agent, - telemetry_worker_handle, - )?; + let basics = new_partial_basics(config, jaeger_agent, telemetry_worker_handle)?; use ::sc_consensus::LongestChain; // use the longest chain selection, since there is no overseer available let chain_selection = LongestChain::new(basics.backend.clone()); let service::PartialComponents { client, backend, import_queue, task_manager, .. } = - new_partial::<$scope::RuntimeApi, $executor, LongestChain<_, Block>>( - &mut config, - basics, - chain_selection, - )?; - Ok((Arc::new(Client::$variant(client)), backend, import_queue, task_manager)) + new_partial::>(&mut config, basics, chain_selection)?; + Ok((client, backend, import_queue, task_manager)) }}; } @@ -1290,7 +1239,7 @@ pub fn new_chain_ops( jaeger_agent: Option, ) -> Result< ( - Arc, + Arc, Arc, sc_consensus::BasicQueue>, TaskManager, @@ -1299,35 +1248,17 @@ pub fn new_chain_ops( > { config.keystore = service::config::KeystoreConfig::InMemory; - #[cfg(feature = "rococo-native")] if config.chain_spec.is_rococo() || config.chain_spec.is_wococo() || config.chain_spec.is_versi() { - return chain_ops!(config, jaeger_agent, None; rococo_runtime, RococoExecutorDispatch, Rococo) - } - - #[cfg(feature = "kusama-native")] - if config.chain_spec.is_kusama() { - return chain_ops!(config, jaeger_agent, None; kusama_runtime, KusamaExecutorDispatch, Kusama) - } - - #[cfg(feature = "westend-native")] - if config.chain_spec.is_westend() { - return chain_ops!(config, jaeger_agent, None; westend_runtime, WestendExecutorDispatch, Westend) - } - - #[cfg(feature = "polkadot-native")] - { - return chain_ops!(config, jaeger_agent, None; polkadot_runtime, PolkadotExecutorDispatch, Polkadot) - } - - #[cfg(not(feature = "polkadot-native"))] - { - let _ = config; - let _ = jaeger_agent; - - Err(Error::NoRuntime) + chain_ops!(config, jaeger_agent, None) + } else if config.chain_spec.is_kusama() { + chain_ops!(config, jaeger_agent, None) + } else if config.chain_spec.is_westend() { + return chain_ops!(config, jaeger_agent, None) + } else { + chain_ops!(config, jaeger_agent, None) } } @@ -1352,105 +1283,28 @@ pub fn build_full( overseer_message_channel_override: Option, malus_finality_delay: Option, hwbench: Option, -) -> Result, Error> { - #[cfg(feature = "rococo-native")] - if config.chain_spec.is_rococo() || - config.chain_spec.is_wococo() || - config.chain_spec.is_versi() - { - return new_full::( - config, - is_collator, - grandpa_pause, - enable_beefy, - jaeger_agent, - telemetry_worker_handle, - None, - overseer_enable_anyways, - overseer_gen, - overseer_message_channel_override, - malus_finality_delay, - hwbench, - ) - .map(|full| full.with_client(Client::Rococo)) - } - - #[cfg(feature = "kusama-native")] - if config.chain_spec.is_kusama() { - return new_full::( - config, - is_collator, - grandpa_pause, - enable_beefy, - jaeger_agent, - telemetry_worker_handle, - None, - overseer_enable_anyways, - overseer_gen, - overseer_message_channel_override, - malus_finality_delay, - hwbench, - ) - .map(|full| full.with_client(Client::Kusama)) - } +) -> Result { + let is_polkadot = config.chain_spec.is_polkadot(); - #[cfg(feature = "westend-native")] - if config.chain_spec.is_westend() { - return new_full::( - config, - is_collator, - grandpa_pause, - enable_beefy, - jaeger_agent, - telemetry_worker_handle, - None, - overseer_enable_anyways, - overseer_gen, - overseer_message_channel_override, - malus_finality_delay, - hwbench, - ) - .map(|full| full.with_client(Client::Westend)) - } - - #[cfg(feature = "polkadot-native")] - { - return new_full::( - config, - is_collator, - grandpa_pause, - enable_beefy, - jaeger_agent, - telemetry_worker_handle, - None, - overseer_enable_anyways, - overseer_gen, - overseer_message_channel_override.map(|capacity| { + new_full( + config, + is_collator, + grandpa_pause, + enable_beefy, + jaeger_agent, + telemetry_worker_handle, + None, + overseer_enable_anyways, + overseer_gen, + overseer_message_channel_override.map(move |capacity| { + if is_polkadot { gum::warn!("Channel capacity should _never_ be tampered with on polkadot!"); - capacity - }), - malus_finality_delay, - hwbench, - ) - .map(|full| full.with_client(Client::Polkadot)) - } - - #[cfg(not(feature = "polkadot-native"))] - { - let _ = config; - let _ = is_collator; - let _ = grandpa_pause; - let _ = enable_beefy; - let _ = jaeger_agent; - let _ = telemetry_worker_handle; - let _ = overseer_enable_anyways; - let _ = overseer_gen; - let _ = overseer_message_channel_override; - let _ = malus_finality_delay; - let _ = hwbench; - - Err(Error::NoRuntime) - } + } + capacity + }), + malus_finality_delay, + hwbench, + ) } /// Reverts the node state down to at most the last finalized block. @@ -1461,7 +1315,7 @@ pub fn build_full( /// - Low level Babe and Grandpa consensus data. #[cfg(feature = "full-node")] pub fn revert_backend( - client: Arc, + client: Arc, backend: Arc, blocks: BlockNumber, config: Configuration, @@ -1488,7 +1342,8 @@ pub fn revert_backend( revert_approval_voting(parachains_db.clone(), hash)?; revert_chain_selection(parachains_db, hash)?; // Revert Substrate consensus related components - client.execute_with(RevertConsensus { blocks, backend })?; + babe::revert(client.clone(), backend, blocks)?; + grandpa::revert(client, blocks)?; Ok(()) } @@ -1525,27 +1380,3 @@ fn revert_approval_voting(db: Arc, hash: Hash) -> sp_blockchain::R .revert_to(hash) .map_err(|err| sp_blockchain::Error::Backend(err.to_string())) } - -struct RevertConsensus { - blocks: BlockNumber, - backend: Arc, -} - -impl ExecuteWithClient for RevertConsensus { - type Output = sp_blockchain::Result<()>; - - fn execute_with_client(self, client: Arc) -> Self::Output - where - >::StateBackend: sp_api::StateBackend, - Backend: sc_client_api::Backend + 'static, - Backend::State: sp_api::StateBackend, - Api: polkadot_client::RuntimeApiCollection, - Client: AbstractClient + 'static, - { - // Revert consensus-related components. - // The operations are not correlated, thus call order is not relevant. - babe::revert(client.clone(), self.backend, self.blocks)?; - grandpa::revert(client, self.blocks)?; - Ok(()) - } -} diff --git a/node/test/client/Cargo.toml b/node/test/client/Cargo.toml index 7f61ed2408ab..366d244952c1 100644 --- a/node/test/client/Cargo.toml +++ b/node/test/client/Cargo.toml @@ -18,6 +18,7 @@ substrate-test-client = { git = "https://github.com/paritytech/substrate", branc sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-offchain = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } @@ -27,6 +28,8 @@ sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "mast sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } [dev-dependencies] sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/test/client/src/block_builder.rs b/node/test/client/src/block_builder.rs index 33b01d018d04..88160e782a70 100644 --- a/node/test/client/src/block_builder.rs +++ b/node/test/client/src/block_builder.rs @@ -17,7 +17,8 @@ use crate::{Client, FullBackend}; use parity_scale_codec::{Decode, Encode}; use polkadot_primitives::{Block, InherentData as ParachainsInherentData}; -use polkadot_test_runtime::{GetLastTimestamp, UncheckedExtrinsic}; +use polkadot_test_runtime::UncheckedExtrinsic; +use polkadot_test_service::GetLastTimestamp; use sc_block_builder::{BlockBuilder, BlockBuilderProvider}; use sp_api::ProvideRuntimeApi; use sp_consensus_babe::{ diff --git a/node/test/client/src/lib.rs b/node/test/client/src/lib.rs index 457634a9e166..2996bc84c763 100644 --- a/node/test/client/src/lib.rs +++ b/node/test/client/src/lib.rs @@ -22,12 +22,12 @@ mod block_builder; use polkadot_primitives::Block; use sp_runtime::BuildStorage; +use std::sync::Arc; pub use block_builder::*; pub use polkadot_test_runtime as runtime; pub use polkadot_test_service::{ construct_extrinsic, construct_transfer_extrinsic, Client, FullBackend, - PolkadotTestExecutorDispatch, }; pub use substrate_test_client::*; @@ -35,7 +35,7 @@ pub use substrate_test_client::*; pub type Executor = client::LocalCallExecutor< Block, FullBackend, - sc_executor::NativeElseWasmExecutor, + WasmExecutor<(sp_io::SubstrateHostFunctions, frame_benchmarking::benchmarking::HostFunctions)>, >; /// Test client builder for Polkadot. @@ -70,7 +70,21 @@ pub trait TestClientBuilderExt: Sized { impl TestClientBuilderExt for TestClientBuilder { fn build_with_longest_chain(self) -> (Client, LongestChain) { - self.build_with_native_executor(None) + let executor = WasmExecutor::builder().build(); + let executor = client::LocalCallExecutor::new( + self.backend().clone(), + executor.clone(), + Default::default(), + ExecutionExtensions::new( + Default::default(), + None, + sc_offchain::OffchainDb::factory_from_backend(&*self.backend()), + Arc::new(executor), + ), + ) + .unwrap(); + + self.build_with_executor(executor) } } diff --git a/node/test/service/Cargo.toml b/node/test/service/Cargo.toml index 8bf8ba6976bf..504ee5beca74 100644 --- a/node/test/service/Cargo.toml +++ b/node/test/service/Cargo.toml @@ -31,7 +31,6 @@ sc-authority-discovery = { git = "https://github.com/paritytech/substrate", bran babe = { package = "sc-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master" } babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master" } consensus_common = { package = "sp-consensus", git = "https://github.com/paritytech/substrate", branch = "master" } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } grandpa = { package = "sc-consensus-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } grandpa_primitives = { package = "sp-consensus-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } @@ -43,7 +42,6 @@ sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "mas sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/test/service/src/lib.rs b/node/test/service/src/lib.rs index 3e7f66128886..08d09f8fe69a 100644 --- a/node/test/service/src/lib.rs +++ b/node/test/service/src/lib.rs @@ -28,9 +28,7 @@ use polkadot_overseer::Handle; use polkadot_primitives::{Balance, CollatorPair, HeadData, Id as ParaId, ValidationCode}; use polkadot_runtime_common::BlockHashCount; use polkadot_runtime_parachains::paras::{ParaGenesisArgs, ParaKind}; -use polkadot_service::{ - ClientHandle, Error, ExecuteWithClient, FullClient, IsCollator, NewFull, PrometheusConfig, -}; +use polkadot_service::{Error, FullClient, IsCollator, NewFull, PrometheusConfig}; use polkadot_test_runtime::{ ParasCall, ParasSudoWrapperCall, Runtime, SignedExtra, SignedPayload, SudoCall, UncheckedExtrinsic, VERSION, @@ -63,26 +61,11 @@ use std::{ use substrate_test_client::{ BlockchainEventsExt, RpcHandlersExt, RpcTransactionError, RpcTransactionOutput, }; -/// Declare an instance of the native executor named `PolkadotTestExecutorDispatch`. Include the wasm binary as the -/// equivalent wasm code. -pub struct PolkadotTestExecutorDispatch; - -impl sc_executor::NativeExecutionDispatch for PolkadotTestExecutorDispatch { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; - - fn dispatch(method: &str, data: &[u8]) -> Option> { - polkadot_test_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - polkadot_test_runtime::native_version() - } -} /// The client type being used by the test service. -pub type Client = FullClient; +pub type Client = FullClient; -pub use polkadot_service::FullBackend; +pub use polkadot_service::{FullBackend, GetLastTimestamp}; /// Create a new full node. #[sc_tracing::logging::prefix_logs_with(config.network.node_name.as_str())] @@ -90,8 +73,8 @@ pub fn new_full( config: Configuration, is_collator: IsCollator, worker_program_path: Option, -) -> Result>, Error> { - polkadot_service::new_full::( +) -> Result { + polkadot_service::new_full( config, is_collator, None, @@ -107,15 +90,6 @@ pub fn new_full( ) } -/// A wrapper for the test client that implements `ClientHandle`. -pub struct TestClient(pub Arc); - -impl ClientHandle for TestClient { - fn execute_with(&self, t: T) -> T::Output { - T::execute_with_client::<_, _, polkadot_service::FullBackend>(t, self.0.clone()) - } -} - /// Returns a prometheus config usable for testing. pub fn test_prometheus_config(port: u16) -> PrometheusConfig { PrometheusConfig::new_with_default_registry( diff --git a/tests/purge_chain_works.rs b/tests/purge_chain_works.rs index c93a0dde9a8d..3e9a37814781 100644 --- a/tests/purge_chain_works.rs +++ b/tests/purge_chain_works.rs @@ -55,9 +55,9 @@ async fn purge_chain_rocksdb_works() { kill(Pid::from_raw(cmd.id().try_into().unwrap()), SIGINT).unwrap(); // Wait for the node to handle it and exit. assert!(common::wait_for(&mut cmd, 30).map(|x| x.success()).unwrap_or_default()); - assert!(tmpdir.path().join("chains/dev").exists()); - assert!(tmpdir.path().join("chains/dev/db/full").exists()); - assert!(tmpdir.path().join("chains/dev/db/full/parachains").exists()); + assert!(tmpdir.path().join("chains/polkadot_dev").exists()); + assert!(tmpdir.path().join("chains/polkadot_dev/db/full").exists()); + assert!(tmpdir.path().join("chains/polkadot_dev/db/full/parachains").exists()); // Purge chain let status = Command::new(cargo_bin("polkadot")) @@ -69,8 +69,8 @@ async fn purge_chain_rocksdb_works() { assert!(status.success()); // Make sure that the chain folder exists, but `db/full` is deleted. - assert!(tmpdir.path().join("chains/dev").exists()); - assert!(!tmpdir.path().join("chains/dev/db/full").exists()); + assert!(tmpdir.path().join("chains/polkadot_dev").exists()); + assert!(!tmpdir.path().join("chains/polkadot_dev/db/full").exists()); } #[tokio::test] @@ -105,9 +105,9 @@ async fn purge_chain_paritydb_works() { kill(Pid::from_raw(cmd.id().try_into().unwrap()), SIGINT).unwrap(); // Wait for the node to handle it and exit. assert!(common::wait_for(&mut cmd, 30).map(|x| x.success()).unwrap_or_default()); - assert!(tmpdir.path().join("chains/dev").exists()); - assert!(tmpdir.path().join("chains/dev/paritydb/full").exists()); - assert!(tmpdir.path().join("chains/dev/paritydb/parachains").exists()); + assert!(tmpdir.path().join("chains/polkadot_dev").exists()); + assert!(tmpdir.path().join("chains/polkadot_dev/paritydb/full").exists()); + assert!(tmpdir.path().join("chains/polkadot_dev/paritydb/parachains").exists()); // Purge chain let status = Command::new(cargo_bin("polkadot")) @@ -121,8 +121,8 @@ async fn purge_chain_paritydb_works() { assert!(status.success()); // Make sure that the chain folder exists, but `db/full` is deleted. - assert!(tmpdir.path().join("chains/dev").exists()); - assert!(!tmpdir.path().join("chains/dev/paritydb/full").exists()); + assert!(tmpdir.path().join("chains/polkadot_dev").exists()); + assert!(!tmpdir.path().join("chains/polkadot_dev/paritydb/full").exists()); // Parachains removal requires calling "purge-chain --parachains". - assert!(tmpdir.path().join("chains/dev/paritydb/parachains").exists()); + assert!(tmpdir.path().join("chains/polkadot_dev/paritydb/parachains").exists()); } From 7e1e635eb01dc1d2f0ce140d817b024dc364a9db Mon Sep 17 00:00:00 2001 From: Andrei Sandu <54316454+sandreim@users.noreply.github.com> Date: Tue, 4 Jul 2023 12:50:49 +0300 Subject: [PATCH 51/56] availability-recovery: move cpu burners in blocking tasks (#7417) * Move expensive computations to blocking thread Signed-off-by: Andrei Sandu * fix test Signed-off-by: Andrei Sandu * add internal error and fix dependent subystems Signed-off-by: Andrei Sandu * fmt Signed-off-by: Andrei Sandu * fix test fix Signed-off-by: Andrei Sandu * minor refactor and TODOs Signed-off-by: Andrei Sandu * Impl Feedback for Review Signed-off-by: Andrei Sandu * review feedback Signed-off-by: Andrei Sandu * More docs Signed-off-by: Andrei Sandu * add some example timings in comments Signed-off-by: Andrei Sandu --------- Signed-off-by: Andrei Sandu --- node/core/approval-voting/src/lib.rs | 11 + .../src/participation/mod.rs | 2 +- node/network/availability-recovery/src/lib.rs | 300 ++++++++++++++++-- .../availability-recovery/src/tests.rs | 12 +- node/subsystem-types/src/errors.rs | 4 + 5 files changed, 288 insertions(+), 41 deletions(-) diff --git a/node/core/approval-voting/src/lib.rs b/node/core/approval-voting/src/lib.rs index f5e888c7c538..a6a74da50480 100644 --- a/node/core/approval-voting/src/lib.rs +++ b/node/core/approval-voting/src/lib.rs @@ -2519,6 +2519,17 @@ async fn launch_approval( // do nothing. we'll just be a no-show and that'll cause others to rise up. metrics_guard.take().on_approval_unavailable(); }, + &RecoveryError::ChannelClosed => { + gum::warn!( + target: LOG_TARGET, + ?para_id, + ?candidate_hash, + "Channel closed while recovering data for candidate {:?}", + (candidate_hash, candidate.descriptor.para_id), + ); + // do nothing. we'll just be a no-show and that'll cause others to rise up. + metrics_guard.take().on_approval_unavailable(); + }, &RecoveryError::Invalid => { gum::warn!( target: LOG_TARGET, diff --git a/node/core/dispute-coordinator/src/participation/mod.rs b/node/core/dispute-coordinator/src/participation/mod.rs index b6a41bcff9dd..25b7352807f6 100644 --- a/node/core/dispute-coordinator/src/participation/mod.rs +++ b/node/core/dispute-coordinator/src/participation/mod.rs @@ -319,7 +319,7 @@ async fn participate( send_result(&mut result_sender, req, ParticipationOutcome::Invalid).await; return }, - Ok(Err(RecoveryError::Unavailable)) => { + Ok(Err(RecoveryError::Unavailable)) | Ok(Err(RecoveryError::ChannelClosed)) => { send_result(&mut result_sender, req, ParticipationOutcome::Unavailable).await; return }, diff --git a/node/network/availability-recovery/src/lib.rs b/node/network/availability-recovery/src/lib.rs index c771e31a6c40..e8503ee454a2 100644 --- a/node/network/availability-recovery/src/lib.rs +++ b/node/network/availability-recovery/src/lib.rs @@ -20,24 +20,28 @@ use std::{ collections::{HashMap, VecDeque}, + iter::Iterator, num::NonZeroUsize, pin::Pin, time::Duration, }; use futures::{ - channel::oneshot, - future::{FutureExt, RemoteHandle}, + channel::oneshot::{self, channel}, + future::{Future, FutureExt, RemoteHandle}, pin_mut, prelude::*, - stream::FuturesUnordered, + sink::SinkExt, + stream::{FuturesUnordered, StreamExt}, task::{Context, Poll}, }; use lru::LruCache; use rand::seq::SliceRandom; use fatality::Nested; -use polkadot_erasure_coding::{branch_hash, branches, obtain_chunks_v1, recovery_threshold}; +use polkadot_erasure_coding::{ + branch_hash, branches, obtain_chunks_v1, recovery_threshold, Error as ErasureEncodingError, +}; #[cfg(not(test))] use polkadot_node_network_protocol::request_response::CHUNK_REQUEST_TIMEOUT; use polkadot_node_network_protocol::{ @@ -150,6 +154,8 @@ struct RequestFromBackers { // a random shuffling of the validators from the backing group which indicates the order // in which we connect to them and request the chunk. shuffled_backers: Vec, + // channel to the erasure task handler. + erasure_task_tx: futures::channel::mpsc::Sender, } struct RequestChunksFromValidators { @@ -162,9 +168,12 @@ struct RequestChunksFromValidators { /// a random shuffling of the validators which indicates the order in which we connect to the validators and /// request the chunk from them. shuffling: VecDeque, + /// Chunks received so far. received_chunks: HashMap, /// Pending chunk requests with soft timeout. requesting_chunks: FuturesUndead, (ValidatorIndex, RequestError)>>, + // channel to the erasure task handler. + erasure_task_tx: futures::channel::mpsc::Sender, } struct RecoveryParams { @@ -198,6 +207,18 @@ enum Source { RequestChunks(RequestChunksFromValidators), } +/// Expensive erasure coding computations that we want to run on a blocking thread. +enum ErasureTask { + /// Reconstructs `AvailableData` from chunks given `n_validators`. + Reconstruct( + usize, + HashMap, + oneshot::Sender>, + ), + /// Re-encode `AvailableData` into erasure chunks in order to verify the provided root hash of the Merkle tree. + Reencode(usize, Hash, AvailableData, oneshot::Sender>), +} + /// A stateful reconstruction of availability data in reference to /// a candidate hash. struct RecoveryTask { @@ -208,13 +229,19 @@ struct RecoveryTask { /// The source to obtain the availability data from. source: Source, + + // channel to the erasure task handler. + erasure_task_tx: futures::channel::mpsc::Sender, } impl RequestFromBackers { - fn new(mut backers: Vec) -> Self { + fn new( + mut backers: Vec, + erasure_task_tx: futures::channel::mpsc::Sender, + ) -> Self { backers.shuffle(&mut rand::thread_rng()); - RequestFromBackers { shuffled_backers: backers } + RequestFromBackers { shuffled_backers: backers, erasure_task_tx } } // Run this phase to completion. @@ -251,12 +278,21 @@ impl RequestFromBackers { match response.await { Ok(req_res::v1::AvailableDataFetchingResponse::AvailableData(data)) => { - if reconstructed_data_matches_root( - params.validators.len(), - ¶ms.erasure_root, - &data, - ¶ms.metrics, - ) { + let (reencode_tx, reencode_rx) = channel(); + self.erasure_task_tx + .send(ErasureTask::Reencode( + params.validators.len(), + params.erasure_root, + data, + reencode_tx, + )) + .await + .map_err(|_| RecoveryError::ChannelClosed)?; + + let reencode_response = + reencode_rx.await.map_err(|_| RecoveryError::ChannelClosed)?; + + if let Some(data) = reencode_response { gum::trace!( target: LOG_TARGET, candidate_hash = ?params.candidate_hash, @@ -289,7 +325,10 @@ impl RequestFromBackers { } impl RequestChunksFromValidators { - fn new(n_validators: u32) -> Self { + fn new( + n_validators: u32, + erasure_task_tx: futures::channel::mpsc::Sender, + ) -> Self { let mut shuffling: Vec<_> = (0..n_validators).map(ValidatorIndex).collect(); shuffling.shuffle(&mut rand::thread_rng()); @@ -299,20 +338,29 @@ impl RequestChunksFromValidators { shuffling: shuffling.into(), received_chunks: HashMap::new(), requesting_chunks: FuturesUndead::new(), + erasure_task_tx, } } fn is_unavailable(&self, params: &RecoveryParams) -> bool { is_unavailable( - self.received_chunks.len(), + self.chunk_count(), self.requesting_chunks.total_len(), self.shuffling.len(), params.threshold, ) } + fn chunk_count(&self) -> usize { + self.received_chunks.len() + } + + fn insert_chunk(&mut self, validator_index: ValidatorIndex, chunk: ErasureChunk) { + self.received_chunks.insert(validator_index, chunk); + } + fn can_conclude(&self, params: &RecoveryParams) -> bool { - self.received_chunks.len() >= params.threshold || self.is_unavailable(params) + self.chunk_count() >= params.threshold || self.is_unavailable(params) } /// Desired number of parallel requests. @@ -329,7 +377,7 @@ impl RequestChunksFromValidators { // 4. We request more chunks to make up for it ... let max_requests_boundary = std::cmp::min(N_PARALLEL, threshold); // How many chunks are still needed? - let remaining_chunks = threshold.saturating_sub(self.received_chunks.len()); + let remaining_chunks = threshold.saturating_sub(self.chunk_count()); // What is the current error rate, so we can make up for it? let inv_error_rate = self.total_received_responses.checked_div(self.error_count).unwrap_or(0); @@ -430,7 +478,7 @@ impl RequestChunksFromValidators { validator_index = ?chunk.index, "Received valid chunk", ); - self.received_chunks.insert(chunk.index, chunk); + self.insert_chunk(chunk.index, chunk); } else { metrics.on_chunk_request_invalid(); self.error_count += 1; @@ -488,7 +536,7 @@ impl RequestChunksFromValidators { gum::debug!( target: LOG_TARGET, candidate_hash = ?params.candidate_hash, - received_chunks_count = ?self.received_chunks.len(), + received_chunks_count = ?self.chunk_count(), requested_chunks_count = ?self.requesting_chunks.len(), threshold = ?params.threshold, "Can conclude availability for a candidate", @@ -530,7 +578,7 @@ impl RequestChunksFromValidators { validator_index = ?chunk.index, "Found valid chunk on disk" ); - self.received_chunks.insert(chunk.index, chunk); + self.insert_chunk(chunk.index, chunk); } else { gum::error!( target: LOG_TARGET, @@ -557,7 +605,7 @@ impl RequestChunksFromValidators { target: LOG_TARGET, candidate_hash = ?params.candidate_hash, erasure_root = ?params.erasure_root, - received = %self.received_chunks.len(), + received = %self.chunk_count(), requesting = %self.requesting_chunks.len(), total_requesting = %self.requesting_chunks.total_len(), n_validators = %params.validators.len(), @@ -575,20 +623,41 @@ impl RequestChunksFromValidators { // If received_chunks has more than threshold entries, attempt to recover the data. // If that fails, or a re-encoding of it doesn't match the expected erasure root, // return Err(RecoveryError::Invalid) - if self.received_chunks.len() >= params.threshold { + if self.chunk_count() >= params.threshold { let recovery_duration = metrics.time_erasure_recovery(); - return match polkadot_erasure_coding::reconstruct_v1( - params.validators.len(), - self.received_chunks.values().map(|c| (&c.chunk[..], c.index.0 as usize)), - ) { + // Send request to reconstruct available data from chunks. + let (avilable_data_tx, available_data_rx) = channel(); + self.erasure_task_tx + .send(ErasureTask::Reconstruct( + params.validators.len(), + std::mem::take(&mut self.received_chunks), + avilable_data_tx, + )) + .await + .map_err(|_| RecoveryError::ChannelClosed)?; + + let available_data_response = + available_data_rx.await.map_err(|_| RecoveryError::ChannelClosed)?; + + return match available_data_response { Ok(data) => { - if reconstructed_data_matches_root( - params.validators.len(), - ¶ms.erasure_root, - &data, - &metrics, - ) { + // Send request to re-encode the chunks and check merkle root. + let (reencode_tx, reencode_rx) = channel(); + self.erasure_task_tx + .send(ErasureTask::Reencode( + params.validators.len(), + params.erasure_root, + data, + reencode_tx, + )) + .await + .map_err(|_| RecoveryError::ChannelClosed)?; + + let reencode_response = + reencode_rx.await.map_err(|_| RecoveryError::ChannelClosed)?; + + if let Some(data) = reencode_response { gum::trace!( target: LOG_TARGET, candidate_hash = ?params.candidate_hash, @@ -746,9 +815,12 @@ where match from_backers.run(&self.params, &mut self.sender).await { Ok(data) => break Ok(data), Err(RecoveryError::Invalid) => break Err(RecoveryError::Invalid), + Err(RecoveryError::ChannelClosed) => + break Err(RecoveryError::ChannelClosed), Err(RecoveryError::Unavailable) => self.source = Source::RequestChunks(RequestChunksFromValidators::new( self.params.validators.len() as _, + self.erasure_task_tx.clone(), )), } }, @@ -838,6 +910,7 @@ impl TryFrom> for CachedRecovery { // We don't want to cache unavailable state, as that state might change, so if // requested again we want to try again! Err(RecoveryError::Unavailable) => Err(()), + Err(RecoveryError::ChannelClosed) => Err(()), } } } @@ -904,9 +977,9 @@ async fn launch_recovery_task( response_sender: oneshot::Sender>, metrics: &Metrics, recovery_strategy: &RecoveryStrategy, + erasure_task_tx: futures::channel::mpsc::Sender, ) -> error::Result<()> { let candidate_hash = receipt.hash(); - let params = RecoveryParams { validator_authority_keys: session_info.discovery_keys.clone(), validators: session_info.validators.clone(), @@ -943,12 +1016,21 @@ async fn launch_recovery_task( let phase = backing_group .and_then(|g| session_info.validator_groups.get(g)) - .map(|group| Source::RequestFromBackers(RequestFromBackers::new(group.clone()))) + .map(|group| { + Source::RequestFromBackers(RequestFromBackers::new( + group.clone(), + erasure_task_tx.clone(), + )) + }) .unwrap_or_else(|| { - Source::RequestChunks(RequestChunksFromValidators::new(params.validators.len() as _)) + Source::RequestChunks(RequestChunksFromValidators::new( + params.validators.len() as _, + erasure_task_tx.clone(), + )) }); - let recovery_task = RecoveryTask { sender: ctx.sender().clone(), params, source: phase }; + let recovery_task = + RecoveryTask { sender: ctx.sender().clone(), params, source: phase, erasure_task_tx }; let (remote, remote_handle) = recovery_task.run().remote_handle(); @@ -980,6 +1062,7 @@ async fn handle_recover( response_sender: oneshot::Sender>, metrics: &Metrics, recovery_strategy: &RecoveryStrategy, + erasure_task_tx: futures::channel::mpsc::Sender, ) -> error::Result<()> { let candidate_hash = receipt.hash(); @@ -1024,6 +1107,7 @@ async fn handle_recover( response_sender, metrics, recovery_strategy, + erasure_task_tx, ) .await, None => { @@ -1061,6 +1145,7 @@ async fn query_chunk_size( rx.await.map_err(error::Error::CanceledQueryFullData) } + #[overseer::contextbounds(AvailabilityRecovery, prefix = self::overseer)] impl AvailabilityRecoverySubsystem { /// Create a new instance of `AvailabilityRecoverySubsystem` which never requests the @@ -1106,10 +1191,65 @@ impl AvailabilityRecoverySubsystem { let mut state = State::default(); let Self { recovery_strategy, mut req_receiver, metrics } = self; + let (erasure_task_tx, erasure_task_rx) = futures::channel::mpsc::channel(16); + let mut erasure_task_rx = erasure_task_rx.fuse(); + + // `ThreadPoolBuilder` spawns the tasks using `spawn_blocking`. For each worker there will be a `mpsc` channel created. + // Each of these workers take the `Receiver` and poll it in an infinite loop. + // All of the sender ends of the channel are sent as a vec which we then use to create a `Cycle` iterator. + // We use this iterator to assign work in a round-robin fashion to the workers in the pool. + // + // How work is dispatched to the pool from the recovery tasks: + // - Once a recovery task finishes retrieving the availability data, it needs to reconstruct from chunks and/or + // re-encode the data which are heavy CPU computations. + // To do so it sends an `ErasureTask` to the main loop via the `erasure_task` channel, and waits for the results + // over a `oneshot` channel. + // - In the subsystem main loop we poll the `erasure_task_rx` receiver. + // - We forward the received `ErasureTask` to the `next()` sender yielded by the `Cycle` iterator. + // - Some worker thread handles it and sends the response over the `oneshot` channel. + + // Create a thread pool with 2 workers. + let mut to_pool = ThreadPoolBuilder::build( + // Pool is guaranteed to have at least 1 worker thread. + NonZeroUsize::new(2).expect("There are 2 threads; qed"), + metrics.clone(), + &mut ctx, + ) + .into_iter() + .cycle(); + loop { let recv_req = req_receiver.recv(|| vec![COST_INVALID_REQUEST]).fuse(); pin_mut!(recv_req); futures::select! { + erasure_task = erasure_task_rx.next() => { + match erasure_task { + Some(task) => { + let send_result = to_pool + .next() + .expect("Pool size is `NonZeroUsize`; qed") + .send(task) + .await + .map_err(|_| RecoveryError::ChannelClosed); + + if let Err(err) = send_result { + gum::warn!( + target: LOG_TARGET, + ?err, + "Failed to send erasure coding task", + ); + } + }, + None => { + gum::debug!( + target: LOG_TARGET, + "Erasure task channel closed", + ); + + return Err(SubsystemError::with_origin("availability-recovery", RecoveryError::ChannelClosed)) + } + } + } v = ctx.recv().fuse() => { match v? { FromOrchestra::Signal(signal) => if handle_signal( @@ -1135,6 +1275,7 @@ impl AvailabilityRecoverySubsystem { response_sender, &metrics, &recovery_strategy, + erasure_task_tx.clone(), ).await { gum::warn!( target: LOG_TARGET, @@ -1194,3 +1335,92 @@ impl AvailabilityRecoverySubsystem { } } } + +// A simple thread pool implementation using `spawn_blocking` threads. +struct ThreadPoolBuilder; + +const MAX_THREADS: NonZeroUsize = match NonZeroUsize::new(4) { + Some(max_threads) => max_threads, + None => panic!("MAX_THREADS must be non-zero"), +}; + +impl ThreadPoolBuilder { + // Creates a pool of `size` workers, where 1 <= `size` <= `MAX_THREADS`. + // + // Each worker is created by `spawn_blocking` and takes the receiver side of a channel + // while all of the senders are returned to the caller. Each worker runs `erasure_task_thread` that + // polls the `Receiver` for an `ErasureTask` which is expected to be CPU intensive. The larger + // the input (more or larger chunks/availability data), the more CPU cycles will be spent. + // + // For example, for 32KB PoVs, we'd expect re-encode to eat as much as 90ms and 500ms for 2.5MiB. + // + // After executing such a task, the worker sends the response via a provided `oneshot` sender. + // + // The caller is responsible for routing work to the workers. + #[overseer::contextbounds(AvailabilityRecovery, prefix = self::overseer)] + pub fn build( + size: NonZeroUsize, + metrics: Metrics, + ctx: &mut Context, + ) -> Vec> { + // At least 1 task, at most `MAX_THREADS. + let size = std::cmp::min(size, MAX_THREADS); + let mut senders = Vec::new(); + + for index in 0..size.into() { + let (tx, rx) = futures::channel::mpsc::channel(8); + senders.push(tx); + + if let Err(e) = ctx + .spawn_blocking("erasure-task", Box::pin(erasure_task_thread(metrics.clone(), rx))) + { + gum::warn!( + target: LOG_TARGET, + err = ?e, + index, + "Failed to spawn a erasure task", + ); + } + } + senders + } +} + +// Handles CPU intensive operation on a dedicated blocking thread. +async fn erasure_task_thread( + metrics: Metrics, + mut ingress: futures::channel::mpsc::Receiver, +) { + loop { + match ingress.next().await { + Some(ErasureTask::Reconstruct(n_validators, chunks, sender)) => { + let _ = sender.send(polkadot_erasure_coding::reconstruct_v1( + n_validators, + chunks.values().map(|c| (&c.chunk[..], c.index.0 as usize)), + )); + }, + Some(ErasureTask::Reencode(n_validators, root, available_data, sender)) => { + let metrics = metrics.clone(); + + let maybe_data = if reconstructed_data_matches_root( + n_validators, + &root, + &available_data, + &metrics, + ) { + Some(available_data) + } else { + None + }; + + let _ = sender.send(maybe_data); + }, + None => { + gum::debug!( + target: LOG_TARGET, + "Erasure task channel closed. Node shutting down ?", + ); + }, + } + } +} diff --git a/node/network/availability-recovery/src/tests.rs b/node/network/availability-recovery/src/tests.rs index b9c5abee191f..26a99e91a5e2 100644 --- a/node/network/availability-recovery/src/tests.rs +++ b/node/network/availability-recovery/src/tests.rs @@ -1584,7 +1584,9 @@ fn invalid_local_chunk_is_ignored() { fn parallel_request_calculation_works_as_expected() { let num_validators = 100; let threshold = recovery_threshold(num_validators).unwrap(); - let mut phase = RequestChunksFromValidators::new(100); + let (erasure_task_tx, _erasure_task_rx) = futures::channel::mpsc::channel(16); + + let mut phase = RequestChunksFromValidators::new(100, erasure_task_tx); assert_eq!(phase.get_desired_request_count(threshold), threshold); phase.error_count = 1; phase.total_received_responses = 1; @@ -1593,20 +1595,20 @@ fn parallel_request_calculation_works_as_expected() { let dummy_chunk = ErasureChunk { chunk: Vec::new(), index: ValidatorIndex(0), proof: Proof::dummy_proof() }; - phase.received_chunks.insert(ValidatorIndex(0), dummy_chunk.clone()); + phase.insert_chunk(ValidatorIndex(0), dummy_chunk.clone()); phase.total_received_responses = 2; // With given error rate - still saturating: assert_eq!(phase.get_desired_request_count(threshold), threshold); for i in 1..9 { - phase.received_chunks.insert(ValidatorIndex(i), dummy_chunk.clone()); + phase.insert_chunk(ValidatorIndex(i), dummy_chunk.clone()); } phase.total_received_responses += 8; // error rate: 1/10 // remaining chunks needed: threshold (34) - 9 // expected: 24 * (1+ 1/10) = (next greater integer) = 27 assert_eq!(phase.get_desired_request_count(threshold), 27); - phase.received_chunks.insert(ValidatorIndex(9), dummy_chunk.clone()); + phase.insert_chunk(ValidatorIndex(9), dummy_chunk.clone()); phase.error_count = 0; // With error count zero - we should fetch exactly as needed: - assert_eq!(phase.get_desired_request_count(threshold), threshold - phase.received_chunks.len()); + assert_eq!(phase.get_desired_request_count(threshold), threshold - phase.chunk_count()); } diff --git a/node/subsystem-types/src/errors.rs b/node/subsystem-types/src/errors.rs index d633ac2ef959..44136362a69e 100644 --- a/node/subsystem-types/src/errors.rs +++ b/node/subsystem-types/src/errors.rs @@ -75,6 +75,9 @@ pub enum RecoveryError { /// A requested chunk is unavailable. Unavailable, + + /// Erasure task channel closed, usually means node is shutting down. + ChannelClosed, } impl std::fmt::Display for RecoveryError { @@ -82,6 +85,7 @@ impl std::fmt::Display for RecoveryError { let msg = match self { RecoveryError::Invalid => "Invalid", RecoveryError::Unavailable => "Unavailable", + RecoveryError::ChannelClosed => "ChannelClosed", }; write!(f, "{}", msg) From bb9ddd70c8e336e44cfa86b86ba1ed188a7edeb8 Mon Sep 17 00:00:00 2001 From: Maksym Hlukhovtsov <1177472+mordamax@users.noreply.github.com> Date: Tue, 4 Jul 2023 13:41:31 +0100 Subject: [PATCH 52/56] Update pr-custom-review.yml 3 Core-devs to approve (#7453) --- .github/pr-custom-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pr-custom-review.yml b/.github/pr-custom-review.yml index bb715c4adf44..136c9e75ff2d 100644 --- a/.github/pr-custom-review.yml +++ b/.github/pr-custom-review.yml @@ -23,7 +23,7 @@ rules: include: .* # excluding files from 'Runtime files' and 'CI files' rules exclude: ^runtime/(kusama|polkadot)/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^(?!.*\.dic$|.*spellcheck\.toml$)scripts/ci/.*|^\.github/.* - min_approvals: 2 + min_approvals: 3 teams: - core-devs From 032d3eb1e491624cc55f351607f87f3016e4c956 Mon Sep 17 00:00:00 2001 From: cheme Date: Tue, 4 Jul 2023 18:17:21 +0200 Subject: [PATCH 53/56] Kusama state version switch and migration. (#7015) * State version switch and migration init * fix * migration declaration (last position, westend was first) * revert unrelated cargo fmt * move to unrelease * fmt? * fmt * Change size of processing per blocks * Dispatch error --- Cargo.lock | 1 + runtime/kusama/Cargo.toml | 3 ++ runtime/kusama/src/lib.rs | 75 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 78 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index b8bca8772e47..e8b429169e6e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3853,6 +3853,7 @@ dependencies = [ "pallet-society", "pallet-staking", "pallet-staking-runtime-api", + "pallet-state-trie-migration", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", diff --git a/runtime/kusama/Cargo.toml b/runtime/kusama/Cargo.toml index 43faa286eacb..f22c7e888484 100644 --- a/runtime/kusama/Cargo.toml +++ b/runtime/kusama/Cargo.toml @@ -73,6 +73,7 @@ pallet-session = { git = "https://github.com/paritytech/substrate", branch = "ma pallet-society = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-state-trie-migration = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-staking-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } @@ -173,6 +174,7 @@ std = [ "pallet-society/std", "pallet-staking/std", "pallet-staking-runtime-api/std", + "pallet-state-trie-migration/std", "pallet-timestamp/std", "pallet-tips/std", "pallet-treasury/std", @@ -290,6 +292,7 @@ try-runtime = [ "pallet-session/try-runtime", "pallet-society/try-runtime", "pallet-staking/try-runtime", + "pallet-state-trie-migration/try-runtime", "pallet-timestamp/try-runtime", "pallet-tips/try-runtime", "pallet-treasury/try-runtime", diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 797d50eb75d5..fa2993053b01 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -140,7 +140,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { #[cfg(feature = "disable-runtime-api")] apis: sp_version::create_apis_vec![[]], transaction_version: 23, - state_version: 0, + state_version: 1, }; /// The BABE epoch configuration at genesis. @@ -1340,6 +1340,26 @@ impl pallet_nomination_pools::Config for Runtime { type MaxPointsToBalance = MaxPointsToBalance; } +parameter_types! { + // The deposit configuration for the singed migration. Specially if you want to allow any signed account to do the migration (see `SignedFilter`, these deposits should be high) + pub const MigrationSignedDepositPerItem: Balance = 1 * CENTS; + pub const MigrationSignedDepositBase: Balance = 20 * CENTS * 100; + pub const MigrationMaxKeyLen: u32 = 512; +} + +impl pallet_state_trie_migration::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type SignedDepositPerItem = MigrationSignedDepositPerItem; + type SignedDepositBase = MigrationSignedDepositBase; + type ControlOrigin = EnsureRoot; + type SignedFilter = frame_support::traits::NeverEnsureOrigin; + + // Use same weights as substrate ones. + type WeightInfo = pallet_state_trie_migration::weights::SubstrateWeight; + type MaxKeyLen = MigrationMaxKeyLen; +} + construct_runtime! { pub enum Runtime where Block = Block, @@ -1456,6 +1476,9 @@ construct_runtime! { Auctions: auctions::{Pallet, Call, Storage, Event} = 72, Crowdloan: crowdloan::{Pallet, Call, Storage, Event} = 73, + // State trie migration pallet, only temporary. + StateTrieMigration: pallet_state_trie_migration = 98, + // Pallet for sending XCM. XcmPallet: pallet_xcm::{Pallet, Call, Storage, Event, Origin, Config} = 99, @@ -1534,6 +1557,7 @@ pub mod migrations { /// Unreleased migrations. Add new ones here: pub type Unreleased = ( + init_state_migration::InitMigrate, pallet_society::migrations::MigrateToV2, pallet_im_online::migration::v1::Migration, ); @@ -2478,3 +2502,52 @@ mod remote_tests { }); } } + +mod init_state_migration { + use super::Runtime; + use frame_support::traits::OnRuntimeUpgrade; + use pallet_state_trie_migration::{AutoLimits, MigrationLimits, MigrationProcess}; + #[cfg(feature = "try-runtime")] + use sp_runtime::DispatchError; + #[cfg(not(feature = "std"))] + use sp_std::prelude::*; + + /// Initialize an automatic migration process. + pub struct InitMigrate; + impl OnRuntimeUpgrade for InitMigrate { + #[cfg(feature = "try-runtime")] + fn pre_upgrade() -> Result, DispatchError> { + frame_support::ensure!( + AutoLimits::::get().is_none(), + DispatchError::Other("Automigration already started.") + ); + Ok(Default::default()) + } + + fn on_runtime_upgrade() -> frame_support::weights::Weight { + if MigrationProcess::::get() == Default::default() && + AutoLimits::::get().is_none() + { + // We use limits to target 600ko proofs per block and + // avg 800_000_000_000 of weight per block. + // See spreadsheet 4800_400 in + // https://raw.githubusercontent.com/cheme/substrate/try-runtime-mig/ksm.ods + AutoLimits::::put(Some(MigrationLimits { item: 4_800, size: 204800 * 2 })); + log::info!("Automatic trie migration started."); + ::DbWeight::get().reads_writes(2, 1) + } else { + log::info!("Automatic trie migration not started."); + ::DbWeight::get().reads(2) + } + } + + #[cfg(feature = "try-runtime")] + fn post_upgrade(_state: Vec) -> Result<(), DispatchError> { + frame_support::ensure!( + AutoLimits::::get().is_some(), + DispatchError::Other("Automigration started.") + ); + Ok(()) + } + } +} From c47cd0e59b00ed7b4732fb7646ca8af2a92c1e7a Mon Sep 17 00:00:00 2001 From: Squirrel Date: Tue, 4 Jul 2023 21:47:36 +0100 Subject: [PATCH 54/56] less openssl, more rust (#7460) --- Cargo.lock | 97 --------------------------- node/zombienet-backchannel/Cargo.toml | 2 +- 2 files changed, 1 insertion(+), 98 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e8b429169e6e..aa9c0be97b59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2431,21 +2431,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "fork-tree" version = "3.0.0" @@ -3386,19 +3371,6 @@ dependencies = [ "tokio-rustls 0.24.1", ] -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -5066,24 +5038,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "netlink-packet-core" version = "0.4.2" @@ -5330,50 +5284,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" -[[package]] -name = "openssl" -version = "0.10.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "openssl-probe" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" -[[package]] -name = "openssl-sys" -version = "0.9.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "orchestra" version = "0.0.5" @@ -9095,12 +9011,10 @@ dependencies = [ "http-body", "hyper", "hyper-rustls 0.23.0", - "hyper-tls", "ipnet", "js-sys", "log", "mime", - "native-tls", "once_cell", "percent-encoding", "pin-project-lite 0.2.9", @@ -9110,7 +9024,6 @@ dependencies = [ "serde_json", "serde_urlencoded", "tokio", - "tokio-native-tls", "tokio-rustls 0.23.2", "tower-service", "url", @@ -12671,16 +12584,6 @@ dependencies = [ "syn 2.0.16", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-retry" version = "0.3.0" diff --git a/node/zombienet-backchannel/Cargo.toml b/node/zombienet-backchannel/Cargo.toml index f0959c4b43dc..0b6bf70611eb 100644 --- a/node/zombienet-backchannel/Cargo.toml +++ b/node/zombienet-backchannel/Cargo.toml @@ -15,7 +15,7 @@ tokio-tungstenite = "0.17" futures-util = "0.3.23" lazy_static = "1.4.0" parity-scale-codec = { version = "3.6.1", features = ["derive"] } -reqwest = "0.11" +reqwest = { version = "0.11", features = ["rustls-tls"], default-features = false } thiserror = "1.0.31" gum = { package = "tracing-gum", path = "../gum/" } serde = { version = "1.0", features = ["derive"] } From 42cee48f640334ceeec231fd0d4d7f74abd9a6f4 Mon Sep 17 00:00:00 2001 From: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Date: Wed, 5 Jul 2023 07:48:05 +0200 Subject: [PATCH 55/56] add nomination pools and voters list to staking proxy (#7448) --- runtime/kusama/src/lib.rs | 4 +++- runtime/polkadot/src/lib.rs | 4 +++- runtime/westend/src/lib.rs | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index fa2993053b01..a43793e6c216 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -1018,7 +1018,9 @@ impl InstanceFilter for ProxyType { c, RuntimeCall::Staking(..) | RuntimeCall::Session(..) | RuntimeCall::Utility(..) | - RuntimeCall::FastUnstake(..) + RuntimeCall::FastUnstake(..) | + RuntimeCall::VoterList(..) | + RuntimeCall::NominationPools(..) ) }, ProxyType::NominationPools => { diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index d0836745cab4..58c538610415 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -1035,7 +1035,9 @@ impl InstanceFilter for ProxyType { c, RuntimeCall::Staking(..) | RuntimeCall::Session(..) | RuntimeCall::Utility(..) | - RuntimeCall::FastUnstake(..) + RuntimeCall::FastUnstake(..) | + RuntimeCall::VoterList(..) | + RuntimeCall::NominationPools(..) ) }, ProxyType::NominationPools => { diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index 1cc32c3b7d7a..d14545560045 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -841,7 +841,9 @@ impl InstanceFilter for ProxyType { c, RuntimeCall::Staking(..) | RuntimeCall::Session(..) | RuntimeCall::Utility(..) | - RuntimeCall::FastUnstake(..) + RuntimeCall::FastUnstake(..) | + RuntimeCall::VoterList(..) | + RuntimeCall::NominationPools(..) ) }, ProxyType::NominationPools => { From d124d9932302fd003668ce02feff75e1de7768d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Wed, 5 Jul 2023 10:08:09 +0200 Subject: [PATCH 56/56] Companion for Substrate#14511 (#7459) * Companion for Substrate#14511 https://github.com/paritytech/substrate/pull/14511 * Make benchmarking build without any native runtime * Fix warning * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <> --- Cargo.lock | 577 +++++++++++------- cli/src/command.rs | 34 +- node/service/src/benchmarking.rs | 27 +- node/service/src/chain_spec.rs | 2 - node/service/src/lib.rs | 6 - .../test-parachains/adder/collator/src/cli.rs | 8 +- .../undying/collator/src/cli.rs | 8 +- 7 files changed, 387 insertions(+), 275 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aa9c0be97b59..7d467a068f6e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -487,6 +487,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" version = "0.13.0" @@ -517,7 +523,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "hash-db", "log", @@ -1455,6 +1461,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "crypto-bigint" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" +dependencies = [ + "generic-array 0.14.6", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.6" @@ -1688,6 +1706,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "der-parser" version = "7.0.0" @@ -1819,6 +1847,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer 0.10.3", + "const-oid", "crypto-common", "subtle", ] @@ -1968,10 +1997,24 @@ version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der", - "elliptic-curve", - "rfc6979", - "signature", + "der 0.6.0", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0997c976637b606099b9985693efa3581e84e41f5c11ba5255f88711058ad428" +dependencies = [ + "der 0.7.7", + "digest 0.10.6", + "elliptic-curve 0.13.5", + "rfc6979 0.4.0", + "signature 2.1.0", + "spki 0.7.2", ] [[package]] @@ -1980,7 +2023,7 @@ version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ - "signature", + "signature 1.6.4", ] [[package]] @@ -2023,18 +2066,37 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ - "base16ct", - "crypto-bigint", - "der", + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.0", "digest 0.10.6", - "ff", + "ff 0.12.1", "generic-array 0.14.6", - "group", + "group 0.12.1", "hkdf", "pem-rfc7468", - "pkcs8", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.2", + "digest 0.10.6", + "ff 0.13.0", + "generic-array 0.14.6", + "group 0.13.0", + "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.1", "subtle", "zeroize", ] @@ -2329,6 +2391,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "fiat-crypto" version = "0.1.20" @@ -2434,7 +2506,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", ] @@ -2457,7 +2529,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "frame-support-procedural", @@ -2482,7 +2554,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "Inflector", "array-bytes", @@ -2530,7 +2602,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2541,7 +2613,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2558,7 +2630,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "frame-system", @@ -2574,9 +2646,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "15.2.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a893ede8dde2293e94dacf9c8f5db5d0506cd909257a8f0ac2b7d610baf50c" +checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" dependencies = [ "cfg-if", "parity-scale-codec", @@ -2587,7 +2659,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-recursion", "futures", @@ -2608,19 +2680,19 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "bitflags", "environmental", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", + "k256", "log", "macro_magic", "parity-scale-codec", "paste", "scale-info", - "secp256k1", "serde", "smallvec", "sp-api", @@ -2642,7 +2714,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "Inflector", "cfg-expr", @@ -2660,7 +2732,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2672,7 +2744,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "proc-macro2", "quote", @@ -2682,7 +2754,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-executive", @@ -2709,7 +2781,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "frame-system", @@ -2721,7 +2793,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "cfg-if", "frame-support", @@ -2740,7 +2812,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -2755,7 +2827,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "sp-api", @@ -2764,7 +2836,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "parity-scale-codec", @@ -2946,7 +3018,7 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "chrono", "frame-election-provider-support", @@ -2973,6 +3045,7 @@ checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -3063,7 +3136,18 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "ff", + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", "rand_core 0.6.4", "subtle", ] @@ -3764,6 +3848,19 @@ dependencies = [ "jsonrpsee-types", ] +[[package]] +name = "k256" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" +dependencies = [ + "cfg-if", + "ecdsa 0.16.7", + "elliptic-curve 0.13.5", + "once_cell", + "sha2 0.10.2", +] + [[package]] name = "keccak" version = "0.1.0" @@ -4842,7 +4939,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "futures", "log", @@ -4861,7 +4958,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "anyhow", "jsonrpsee", @@ -5358,8 +5455,8 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ - "ecdsa", - "elliptic-curve", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", "sha2 0.10.2", ] @@ -5369,8 +5466,8 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ - "ecdsa", - "elliptic-curve", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", "sha2 0.10.2", ] @@ -5387,7 +5484,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5402,7 +5499,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "frame-system", @@ -5418,7 +5515,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "frame-system", @@ -5432,7 +5529,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5456,7 +5553,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5476,7 +5573,7 @@ dependencies = [ [[package]] name = "pallet-bags-list-remote-tests" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-election-provider-support", "frame-remote-externalities", @@ -5495,7 +5592,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5510,7 +5607,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "frame-system", @@ -5529,7 +5626,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -5553,7 +5650,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5571,7 +5668,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5590,7 +5687,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5607,7 +5704,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5624,7 +5721,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5642,7 +5739,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5665,7 +5762,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5678,7 +5775,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5696,7 +5793,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "docify", "frame-benchmarking", @@ -5715,7 +5812,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5738,7 +5835,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5754,7 +5851,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5774,7 +5871,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5791,7 +5888,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5808,7 +5905,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5827,7 +5924,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5844,7 +5941,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5860,7 +5957,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5876,7 +5973,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "frame-system", @@ -5893,7 +5990,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5913,7 +6010,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -5924,7 +6021,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "frame-system", @@ -5941,7 +6038,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5965,7 +6062,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5982,7 +6079,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -5997,7 +6094,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6015,7 +6112,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6030,7 +6127,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6049,7 +6146,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6066,7 +6163,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "frame-system", @@ -6087,7 +6184,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6103,7 +6200,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6122,7 +6219,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6145,7 +6242,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6156,7 +6253,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "log", "sp-arithmetic", @@ -6165,7 +6262,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "sp-api", @@ -6174,7 +6271,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6191,7 +6288,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6206,7 +6303,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6224,7 +6321,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6243,7 +6340,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-support", "frame-system", @@ -6259,7 +6356,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6275,7 +6372,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6287,7 +6384,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6304,7 +6401,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6319,7 +6416,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6335,7 +6432,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6350,7 +6447,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-benchmarking", "frame-support", @@ -6681,8 +6778,18 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der", - "spki", + "der 0.6.0", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.7", + "spki 0.7.2", ] [[package]] @@ -9050,11 +9157,21 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ - "crypto-bigint", + "crypto-bigint 0.4.9", "hmac 0.12.1", "zeroize", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle", +] + [[package]] name = "ring" version = "0.16.20" @@ -9442,7 +9559,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "log", "sp-core", @@ -9453,7 +9570,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "futures", @@ -9481,7 +9598,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "futures", "futures-timer", @@ -9504,7 +9621,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9519,7 +9636,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9538,7 +9655,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9549,7 +9666,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "chrono", @@ -9588,7 +9705,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "fnv", "futures", @@ -9615,7 +9732,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "hash-db", "kvdb", @@ -9641,7 +9758,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "futures", @@ -9666,7 +9783,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "fork-tree", @@ -9701,7 +9818,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "futures", "jsonrpsee", @@ -9723,7 +9840,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "async-channel", @@ -9757,7 +9874,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "futures", "jsonrpsee", @@ -9776,7 +9893,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9789,7 +9906,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "ahash 0.8.2", "array-bytes", @@ -9829,7 +9946,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "finality-grandpa", "futures", @@ -9849,7 +9966,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "futures", @@ -9872,7 +9989,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -9894,7 +10011,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -9906,7 +10023,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "anyhow", "cfg-if", @@ -9923,7 +10040,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "ansi_term", "futures", @@ -9939,7 +10056,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -9953,7 +10070,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "async-channel", @@ -9994,7 +10111,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-channel", "cid", @@ -10014,7 +10131,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "bitflags", @@ -10031,7 +10148,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "ahash 0.8.2", "futures", @@ -10049,7 +10166,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "async-channel", @@ -10070,7 +10187,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "async-channel", @@ -10104,7 +10221,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "futures", @@ -10122,7 +10239,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "bytes", @@ -10151,7 +10268,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10160,7 +10277,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "futures", "jsonrpsee", @@ -10191,7 +10308,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10210,7 +10327,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "http", "jsonrpsee", @@ -10225,7 +10342,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "futures", @@ -10251,7 +10368,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "directories", @@ -10316,7 +10433,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "log", "parity-scale-codec", @@ -10327,7 +10444,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "clap 4.2.5", "fs4", @@ -10341,7 +10458,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10360,7 +10477,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "futures", "libc", @@ -10379,7 +10496,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "chrono", "futures", @@ -10398,7 +10515,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "ansi_term", "atty", @@ -10427,7 +10544,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10438,7 +10555,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "futures", @@ -10464,7 +10581,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "futures", @@ -10480,7 +10597,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-channel", "futures", @@ -10607,10 +10724,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ - "base16ct", - "der", + "base16ct 0.1.1", + "der 0.6.0", "generic-array 0.14.6", - "pkcs8", + "pkcs8 0.9.0", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.7", + "generic-array 0.14.6", + "pkcs8 0.10.2", "subtle", "zeroize", ] @@ -10894,6 +11025,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "signature" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +dependencies = [ + "digest 0.10.6", + "rand_core 0.6.4", +] + [[package]] name = "simba" version = "0.8.0" @@ -11004,7 +11145,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "hash-db", "log", @@ -11024,7 +11165,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "Inflector", "blake2", @@ -11038,7 +11179,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "scale-info", @@ -11051,7 +11192,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "integer-sqrt", "num-traits", @@ -11065,7 +11206,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "scale-info", @@ -11078,7 +11219,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "sp-api", "sp-inherents", @@ -11089,7 +11230,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "futures", "log", @@ -11107,7 +11248,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "futures", @@ -11122,7 +11263,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "parity-scale-codec", @@ -11139,7 +11280,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "parity-scale-codec", @@ -11158,7 +11299,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11177,7 +11318,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "finality-grandpa", "log", @@ -11195,7 +11336,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "scale-info", @@ -11207,7 +11348,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "bitflags", @@ -11251,7 +11392,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "blake2b_simd", "byteorder", @@ -11264,7 +11405,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "quote", "sp-core-hashing", @@ -11274,7 +11415,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11283,7 +11424,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "proc-macro2", "quote", @@ -11293,7 +11434,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "environmental", "parity-scale-codec", @@ -11304,7 +11445,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11318,7 +11459,7 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "bytes", "ed25519", @@ -11343,7 +11484,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "lazy_static", "sp-core", @@ -11354,7 +11495,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", @@ -11366,7 +11507,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11375,7 +11516,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11386,7 +11527,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11404,7 +11545,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "scale-info", @@ -11418,7 +11559,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "sp-api", "sp-core", @@ -11428,7 +11569,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "backtrace", "lazy_static", @@ -11438,7 +11579,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "rustc-hash", "serde", @@ -11448,7 +11589,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "either", "hash256-std-hasher", @@ -11470,7 +11611,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11488,7 +11629,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "Inflector", "proc-macro-crate", @@ -11500,7 +11641,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "scale-info", @@ -11514,7 +11655,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "scale-info", @@ -11527,7 +11668,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "hash-db", "log", @@ -11548,7 +11689,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "scale-info", @@ -11565,12 +11706,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11583,7 +11724,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "parity-scale-codec", @@ -11596,7 +11737,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "sp-std", @@ -11608,7 +11749,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "sp-api", "sp-runtime", @@ -11617,7 +11758,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "parity-scale-codec", @@ -11632,7 +11773,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "ahash 0.8.2", "hash-db", @@ -11655,7 +11796,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11672,7 +11813,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11683,7 +11824,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11696,7 +11837,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "parity-scale-codec", "scale-info", @@ -11732,7 +11873,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", - "der", + "der 0.6.0", +] + +[[package]] +name = "spki" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +dependencies = [ + "base64ct", + "der 0.7.7", ] [[package]] @@ -11927,12 +12078,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -11951,7 +12102,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "hyper", "log", @@ -11963,7 +12114,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "jsonrpsee", @@ -11976,7 +12127,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -11993,7 +12144,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "array-bytes", "async-trait", @@ -12019,7 +12170,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "futures", "substrate-test-utils-derive", @@ -12029,7 +12180,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12040,7 +12191,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "ansi_term", "build-helper", @@ -12944,7 +13095,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#444bc4f897405fd864f1b8fbe7cdf3f3dbb33d81" +source = "git+https://github.com/paritytech/substrate?branch=master#29ef4775d673178d6674864299a5341abb78be75" dependencies = [ "async-trait", "clap 4.2.5", @@ -13736,7 +13887,7 @@ dependencies = [ "ccm", "curve25519-dalek 3.2.0", "der-parser 8.1.0", - "elliptic-curve", + "elliptic-curve 0.12.3", "hkdf", "hmac 0.10.1", "log", @@ -13748,11 +13899,11 @@ dependencies = [ "rcgen 0.9.3", "ring", "rustls 0.19.1", - "sec1", + "sec1 0.3.0", "serde", "sha-1 0.9.8", "sha2 0.9.8", - "signature", + "signature 1.6.4", "subtle", "thiserror", "tokio", diff --git a/cli/src/command.rs b/cli/src/command.rs index 4cf06f254b0d..6184a8349234 100644 --- a/cli/src/command.rs +++ b/cli/src/command.rs @@ -18,7 +18,7 @@ use crate::cli::{Cli, Subcommand}; use frame_benchmarking_cli::{BenchmarkCmd, ExtrinsicFactory, SUBSTRATE_REFERENCE_HARDWARE}; use futures::future::TryFutureExt; use log::info; -use sc_cli::{RuntimeVersion, SubstrateCli}; +use sc_cli::SubstrateCli; use service::{ self, benchmarking::{benchmark_inherent_data, RemarkBuilder, TransferKeepAliveBuilder}, @@ -168,38 +168,6 @@ impl SubstrateCli for Cli { }, }) } - - fn native_runtime_version(spec: &Box) -> &'static RuntimeVersion { - #[cfg(feature = "kusama-native")] - if spec.is_kusama() { - return &service::kusama_runtime::VERSION - } - - #[cfg(feature = "westend-native")] - if spec.is_westend() { - return &service::westend_runtime::VERSION - } - - #[cfg(feature = "rococo-native")] - if spec.is_rococo() || spec.is_wococo() || spec.is_versi() { - return &service::rococo_runtime::VERSION - } - - #[cfg(not(all( - feature = "rococo-native", - feature = "westend-native", - feature = "kusama-native" - )))] - let _ = spec; - - #[cfg(feature = "polkadot-native")] - { - return &service::polkadot_runtime::VERSION - } - - #[cfg(not(feature = "polkadot-native"))] - panic!("No runtime feature (polkadot, kusama, westend, rococo) is enabled") - } } fn set_default_ss58_version(spec: &Box) { diff --git a/node/service/src/benchmarking.rs b/node/service/src/benchmarking.rs index 7d2bae88e5f3..6955bc6d9690 100644 --- a/node/service/src/benchmarking.rs +++ b/node/service/src/benchmarking.rs @@ -16,10 +16,8 @@ //! Code related to benchmarking a [`crate::Client`]. -use codec::Encode; use polkadot_primitives::AccountId; use sc_client_api::UsageProvider; -use sp_core::{Pair, H256}; use sp_keyring::Sr25519Keyring; use sp_runtime::OpaqueExtrinsic; @@ -93,6 +91,12 @@ macro_rules! identify_chain { #[cfg(not(feature = "westend-native"))] { + let _ = $nonce; + let _ = $current_block; + let _ = $period; + let _ = $genesis; + let _ = $signer; + Err("`westend-native` feature not enabled") } }, @@ -183,6 +187,7 @@ impl frame_benchmarking_cli::ExtrinsicBuilder for TransferKeepAliveBuilder { .unwrap_or(2) as u64; let genesis = self.client.usage_info().chain.best_hash; let current_block = 0; + let _dest = self.dest.clone(); identify_chain! { self.chain, @@ -193,7 +198,7 @@ impl frame_benchmarking_cli::ExtrinsicBuilder for TransferKeepAliveBuilder { signer, { runtime::RuntimeCall::Balances(runtime::BalancesCall::transfer_keep_alive { - dest: self.dest.clone().into(), + dest: _dest.into(), value: runtime::ExistentialDeposit::get(), }) }, @@ -207,10 +212,12 @@ fn polkadot_sign_call( nonce: u32, current_block: u64, period: u64, - genesis: H256, + genesis: sp_core::H256, acc: sp_core::sr25519::Pair, ) -> OpaqueExtrinsic { + use codec::Encode; use polkadot_runtime as runtime; + use sp_core::Pair; let extra: runtime::SignedExtra = ( frame_system::CheckNonZeroSender::::new(), @@ -259,9 +266,11 @@ fn westend_sign_call( nonce: u32, current_block: u64, period: u64, - genesis: H256, + genesis: sp_core::H256, acc: sp_core::sr25519::Pair, ) -> OpaqueExtrinsic { + use codec::Encode; + use sp_core::Pair; use westend_runtime as runtime; let extra: runtime::SignedExtra = ( @@ -309,10 +318,12 @@ fn kusama_sign_call( nonce: u32, current_block: u64, period: u64, - genesis: H256, + genesis: sp_core::H256, acc: sp_core::sr25519::Pair, ) -> OpaqueExtrinsic { + use codec::Encode; use kusama_runtime as runtime; + use sp_core::Pair; let extra: runtime::SignedExtra = ( frame_system::CheckNonZeroSender::::new(), @@ -359,10 +370,12 @@ fn rococo_sign_call( nonce: u32, current_block: u64, period: u64, - genesis: H256, + genesis: sp_core::H256, acc: sp_core::sr25519::Pair, ) -> OpaqueExtrinsic { + use codec::Encode; use rococo_runtime as runtime; + use sp_core::Pair; let extra: runtime::SignedExtra = ( frame_system::CheckNonZeroSender::::new(), diff --git a/node/service/src/chain_spec.rs b/node/service/src/chain_spec.rs index 9d76f9c8ce61..19bd0ce381fc 100644 --- a/node/service/src/chain_spec.rs +++ b/node/service/src/chain_spec.rs @@ -27,7 +27,6 @@ use pallet_im_online::sr25519::AuthorityId as ImOnlineId; feature = "polkadot-native", feature = "kusama-native", feature = "westend-native", - feature = "rococo-native" ))] use pallet_staking::Forcing; use polkadot_primitives::{AccountId, AccountPublic, AssignmentId, ValidatorId}; @@ -57,7 +56,6 @@ use sp_runtime::traits::IdentifyAccount; feature = "polkadot-native", feature = "kusama-native", feature = "westend-native", - feature = "rococo-native" ))] use sp_runtime::Perbill; #[cfg(any( diff --git a/node/service/src/lib.rs b/node/service/src/lib.rs index 4e22736aeba0..ed5e5361085e 100644 --- a/node/service/src/lib.rs +++ b/node/service/src/lib.rs @@ -18,12 +18,6 @@ #![deny(unused_results)] -#[cfg(any( - feature = "polkadot-native", - feature = "kusama-native", - feature = "westend-native", - feature = "rococo-native" -))] pub mod benchmarking; pub mod chain_spec; mod fake_runtime_api; diff --git a/parachain/test-parachains/adder/collator/src/cli.rs b/parachain/test-parachains/adder/collator/src/cli.rs index 7a73ce5c61a4..9a865d75b606 100644 --- a/parachain/test-parachains/adder/collator/src/cli.rs +++ b/parachain/test-parachains/adder/collator/src/cli.rs @@ -17,7 +17,7 @@ //! Polkadot CLI library. use clap::Parser; -use sc_cli::{RuntimeVersion, SubstrateCli}; +use sc_cli::SubstrateCli; /// Sub-commands supported by the collator. #[derive(Debug, Parser)] @@ -105,10 +105,4 @@ impl SubstrateCli for Cli { }, }) } - - fn native_runtime_version( - _spec: &Box, - ) -> &'static RuntimeVersion { - &polkadot_service::rococo_runtime::VERSION - } } diff --git a/parachain/test-parachains/undying/collator/src/cli.rs b/parachain/test-parachains/undying/collator/src/cli.rs index 8f5da7bf1bce..ab37fe20eebb 100644 --- a/parachain/test-parachains/undying/collator/src/cli.rs +++ b/parachain/test-parachains/undying/collator/src/cli.rs @@ -17,7 +17,7 @@ //! Polkadot CLI library. use clap::Parser; -use sc_cli::{RuntimeVersion, SubstrateCli}; +use sc_cli::SubstrateCli; /// Sub-commands supported by the collator. #[derive(Debug, Parser)] @@ -127,10 +127,4 @@ impl SubstrateCli for Cli { }, }) } - - fn native_runtime_version( - _spec: &Box, - ) -> &'static RuntimeVersion { - &polkadot_service::rococo_runtime::VERSION - } }